1 === release 1.13.91 ===
3 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
7 * gstreamer-vaapi.doap:
11 === release 1.13.90 ===
13 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
18 * gstreamer-vaapi.doap:
22 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24 * gst/vaapi/gstvaapipostproc.c:
25 vaapipostproc: change how the metadata is copied
26 Instead of copying the metada in prepare_output_buffer() vmethod,
27 it is done in append_output_buffer_metadata() thus deinterlaced
28 buffers could also have the proper metas.
29 GstVideoCropMeta now it is copied internally and it is decided via
30 transform_meta() vmethod.
31 A new internal method, copy_metadata() was added to handle VPP
32 transformation where non-GstVideoVaapiMeta metas were lost.
34 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
36 * gst/vaapi/gstvaapipostproc.c:
37 postproc: Copy meta data from input to output
38 This will ensure that meta data without memory tags will be copied. This
39 was noticed when testing ROI.
40 https://bugzilla.gnome.org/show_bug.cgi?id=768248
42 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
44 * tests/elements/test-roi.c:
45 tests: element: rewrite ROI test
46 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
47 than injecting GstEvents. These meta are added as a pad probe in
50 * Use of navigation messages to control de test
51 * Use signal watch for processing messages
52 * Change to H265 rather than H264 since current intel-vaapi-driver
53 only supports ROI on kabylake.
54 TODO: add a parameter to change the encoder/decoder to test.
55 https://bugzilla.gnome.org/show_bug.cgi?id=768248
57 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
59 * gst-libs/gst/vaapi/gstvaapicontext.c:
60 * gst-libs/gst/vaapi/gstvaapiencoder.c:
61 * gst-libs/gst/vaapi/gstvaapiencoder.h:
62 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
63 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
64 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
65 libs: encoder: reimplement ROI using meta
66 Check input buffers for ROI metas and pass them to VA. Also added a
67 new "default-roi-delta-qp" property in order to tell the encoder what
68 delta QP should be applied to ROI by default.
69 Enabled it for H264 and H265 encoders.
70 https://bugzilla.gnome.org/show_bug.cgi?id=768248
72 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
74 * gst-libs/gst/vaapi/gstvaapiencoder.c:
75 * gst-libs/gst/vaapi/gstvaapiencoder.h:
76 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
77 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
78 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
79 https://bugzilla.gnome.org/show_bug.cgi?id=768248
81 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
83 * tests/simple-encoder.c:
84 Revert "tests: simple-encoder: add an option to set ROI"
85 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
86 https://bugzilla.gnome.org/show_bug.cgi?id=768248
88 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
90 * gst/vaapi/gstvaapiencode.c:
91 * gst/vaapi/gstvaapiencode_h264.c:
92 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
93 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
94 https://bugzilla.gnome.org/show_bug.cgi?id=768248
96 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
98 * gst/vaapi/gstvaapipluginbase.c:
99 plugins: copy input buffer metas
100 When importing buffers to a VA-base buffer, it is required to copy
101 the metas in the original buffer, otherwise information will be
102 lost, such as GstVideoRegionOfInterestMeta.
103 https://bugzilla.gnome.org/show_bug.cgi?id=768248
105 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
107 * gst-libs/gst/vaapi/gstvaapisurface.c:
108 libs: surface: cast to uintptr_t pointer
109 According to Debian package auto-building, uintptr_t is not an
110 unsigned long in i386 arch, raising an "incompatible pointer type"
112 This patch adds a casting for compiler's satisfaction in i386.
114 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
116 * gst-libs/gst/vaapi/gstvaapiencoder.c:
117 libs: encoder: add zero as valid value for periodic keyframe.
118 Enabled zero as valid value for keyframe-period property.
119 https://bugzilla.gnome.org/show_bug.cgi?id=793829
121 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
123 * gst-libs/gst/vaapi/gstvaapiencoder.c:
124 libs: encoder: code-style fix
126 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
128 * gst/vaapi/gstvaapidecode.c:
129 vaapidecode: generate system allocated buffers
130 Generate system allocated output buffers when downstream doesn't
131 support GstVideoMeta.
132 The VA buffer content is copied to the new output buffer, and it
133 replaces the VA buffer.
134 https://bugzilla.gnome.org/show_bug.cgi?id=785054
136 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
138 * gst/vaapi/gstvaapipostproc.c:
139 vaapipostproc: handle system allocated buffers when required
140 When downstream can't handle GstVideoMeta it is required to send
141 system allocated buffers.
142 The system allocated buffers are produced in prepare_output_buffer()
143 vmethod if downstream can't handl GstVideoMeta.
144 At transform() vmethod if the buffer is a system allocated buffer,
145 a VA buffer is instanciated and replaces the out buffer. Later
146 the VA buffer is copied to the system allocate buffer and it
147 replaces the output buffer.
148 https://bugzilla.gnome.org/show_bug.cgi?id=785054
150 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
152 * gst/vaapi/gstvaapipluginbase.c:
153 * gst/vaapi/gstvaapipluginbase.h:
154 plugins: add gst_vaapi_copy_va_buffer()
155 This helper function aims to copy buffers with VA memory to dumb
156 buffers, when GstVideoMeta is not available dowstream.
157 https://bugzilla.gnome.org/show_bug.cgi?id=785054
159 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
161 * gst/vaapi/gstvaapipluginbase.c:
162 * gst/vaapi/gstvaapipluginbase.h:
163 plugins: add COPY_OUTPUT_FRAME flag
164 This patch add the member copy_output_frame and set it TRUE when
165 when downstream didn't request GstVideoMeta API, the caps are raw
166 and the internal allocator is the VA-API one.
167 https://bugzilla.gnome.org/show_bug.cgi?id=785054
169 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
171 * gst/vaapi/gstvaapipluginbase.c:
172 * gst/vaapi/gstvaapipluginbase.h:
173 plugins: store the first downstream allocator if available
174 The allocator will be required if we need to allocate a buffer
175 to store the frame with the expected strides.
176 https://bugzilla.gnome.org/show_bug.cgi?id=785054
178 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
180 * gst/vaapi/gstvaapivideobufferpool.c:
181 * gst/vaapi/gstvaapivideobufferpool.h:
182 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
183 This function will inform the element if it shall copy the generated
184 buffer by the pool to a system allocated buffer before pushing it
186 https://bugzilla.gnome.org/show_bug.cgi?id=785054
188 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
190 * gst/vaapi/gstvaapivideobufferpool.c:
191 vaapibufferpool: don't change config when forcing video meta
192 VA-API based buffer might need a video meta because of different
193 strides. But when donwstream doesn't support video meta we need to
194 force the usage of video meta.
195 Before we changed the buffer pool configuration, but actually this
196 is a hack and we cannot rely on that for downstream.
197 This patch add a check fo raw video caps and allocator is VA-API,
198 then the option is enabled without changing the pool configuration.
199 In this case the element is responsible to copy the frame to a
200 simple buffer with the expected strides.
201 https://bugzilla.gnome.org/show_bug.cgi?id=785054
203 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
205 * gst/vaapi/gstvaapipostproc.c:
206 vaapipostproc: set discont flag at vpp deinterlacing
207 When deinterlacing with VPP the discont flag was not forwarded to
208 the new created buffer. This patch sets the discont flag if input
211 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
213 * gst/vaapi/gstvaapivideobufferpool.h:
214 vaapibufferpool: remove wrong gcc annotation
216 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
218 * gst-libs/gst/vaapi/gstvaapiencoder.c:
219 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
220 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
221 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
222 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
223 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
224 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
225 libs: encoder: h264,h265: extend max periodic keyframe.
226 Increased max values of periodic key frame for h26x codecs.
227 This allow more fine tunning of encoder that in certian scenario
228 want higher periodic key frame.
229 For example: it doesn't want a key frame each 10 seconds but
231 https://bugzilla.gnome.org/show_bug.cgi?id=786320
233 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
239 === release 1.13.1 ===
241 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
246 * gstreamer-vaapi.doap:
250 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
252 * gst/vaapi/Makefile.am:
253 vaapi: dist new header
255 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
257 * gst/vaapi/gstvaapi.c:
258 vaapi: register vaapisink as marginal on wayland
259 vaapsink, when used with the Intel VA-API driver, tries to display
260 surfaces with format NV12, which are handled correctly by
261 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
263 This shall be solved either by COGL or by making the driver to paint
264 RGB surfaces. In the meanwhile, let's just demote vaapisink as
265 marginal when the Wayland environment is detected, no matter if it is
267 https://bugzilla.gnome.org/show_bug.cgi?id=775698
269 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
271 * gst/vaapi/gstvaapipluginutil.c:
272 plugins: update mesa's vendor string in whitelist
273 Mesa has updated its VA-API Gallium driver vendor string:
274 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
275 This patch tries to cover both, the old and the new one.
276 https://bugzilla.gnome.org/show_bug.cgi?id=793386
278 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
281 meson: make version numbers ints and fix int/string comparison
282 WARNING: Trying to compare values of different types (str, int).
283 The result of this is undefined and will become a hard error
284 in a future Meson release.
286 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
288 * gst/vaapi/gstvaapipluginbase.c:
289 plugins: handle vaapi allocator in allocation query
290 In propose_allocation() if the numer of allocation params is zero, the
291 system's allocator is added first, and lastly the native VA-API
293 In decide_allocation(), the allocations params in query are travered,
294 looking for a native VA-API allocator. If it is found, it is reused as
295 src pad allocator. Otherwise, a new allocator is instantiated and
296 appended in the query.
297 https://bugzilla.gnome.org/show_bug.cgi?id=789476
299 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
301 * gst/vaapi/gstvaapivideomemory.h:
302 vaapivideomemory: remove unused macro
303 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
304 was never used, since the native VA-API allocator name has been
305 GST_VAAPI_VIDEO_MEMORY_NAME.
306 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
307 https://bugzilla.gnome.org/show_bug.cgi?id=789476
309 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
311 * gst/vaapi/gstvaapisink.c:
312 vaapisink: don't mask button events for foreign windows
313 Don't subscribe to button press events when using a foreing window,
314 because the user created window would trap those events, preveting the
316 https://bugzilla.gnome.org/show_bug.cgi?id=791615
318 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
321 autotools: use -fno-strict-aliasing where supported
322 https://bugzilla.gnome.org/show_bug.cgi?id=769183
324 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
327 meson: use -fno-strict-aliasing where supported
328 https://bugzilla.gnome.org/show_bug.cgi?id=769183
330 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
332 * gst/vaapi/gstvaapi.c:
333 vaapi: add NULL-sentinel to kernel_names
334 The array needs to be NULL-terminated according to the
335 gst_plugin_add_dependency() documentation.
337 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
339 * gst/vaapi/gstvaapipostprocutil.c:
340 vaapipostproc: remove spurious code
341 This assignation is dead code, since gst_video_info_from_caps() set
343 https://bugzilla.gnome.org/show_bug.cgi?id=790149
345 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
347 * gst/vaapi/gstvaapipostprocutil.c:
348 vaapipostproc: if no p-a-r in out caps define a range
349 Instead of copying the pixel-aspect-ratio from the sink caps, define
350 an open range for the src caps pixel-aspect-ratio. Later it will be
352 https://bugzilla.gnome.org/show_bug.cgi?id=790149
354 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
356 * gst/vaapi/gstvaapisink.c:
357 vaapisink: check for display's color-balance properties
358 Check for display's color-balance properties, available by the VA-API
359 driver, before setting them.
360 Also logs an info message of those unavailable properties.
361 https://bugzilla.gnome.org/show_bug.cgi?id=792638
363 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
365 * gst/vaapi/gstvaapipluginbase.c:
366 plugins: re-using buffer pool breaks renegotiation
367 at propose_allocation() we should not reuse the proposed buffer,
368 because it could break renegotiation.
369 https://bugzilla.gnome.org/show_bug.cgi?id=792620
371 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
373 * gst/vaapi/gstvaapipluginbase.c:
374 plugins: use g_clear_object() to unref sinkpad_buffer_pool
375 https://bugzilla.gnome.org/show_bug.cgi?id=792620
377 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
379 * gst-libs/gst/vaapi/meson.build:
380 build: meson: add missing GstGL dependency
382 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
384 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
385 libs: utils: egl: add missing guards for GstGL
387 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
389 * gst/vaapi/gstvaapipluginbase.c:
390 plugins: remove dmabuf-import hack
391 Remove the hack to check if an upstream element has enabled the
392 property io-mode enabled as dmabuf-import.
393 https://bugzilla.gnome.org/show_bug.cgi?id=792034
395 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
397 * gst-libs/gst/vaapi/Makefile.am:
398 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
399 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
400 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
401 libs: egl: utils: use eglGetPlatformDisplay()
402 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
403 eglGetDisplay() is rather fragile, and it is recommended to use
404 eglGetPlatformDisplay() when possible.
405 In order to do that, this patch uses the helper in GstGL. If
406 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
408 https://bugzilla.gnome.org/show_bug.cgi?id=790493
410 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
412 * gst/vaapi/gstvaapipostproc.c:
413 vaapipostproc: lock ensure_filter with postproc_lock
414 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
415 and allowed_sinkpad_caps. This can race with copying these caps in
416 gst_vaapipostproc_transform_caps and lead to segfaults.
417 The gst_vaapipostproc_transform_caps function already locks
418 postproc_lock before copying the caps. Make sure that calls to
419 gst_vaapipostproc_ensure_filter also acquire this lock.
420 https://bugzilla.gnome.org/show_bug.cgi?id=791404
422 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
424 * tests/test-filter.c:
425 tests: test-filter: fix dereference before null check
426 Null-checking op_info suggests that it may be null, but it has already
427 been dereferenced on all paths leading to the check.
428 There may be a null pointer dereference, or else the comparison
429 against null is unnecessary.
431 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
434 tests: y4mreader: fix string state checkup
435 str cannot be null in that moment, but it may be the end of string.
437 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
440 tests: y4mreader: use int for fgetc
441 Assigning the return value of fgetc to char truncates its value.
442 It will not be possible to distinguish between EOF and a valid
445 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
448 tests: y4mreader: fix incompatible cast
449 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
450 they are dereferenced as a wider long (64 bits, signed). This may lead
451 to memory corruption.
453 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
456 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
458 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
461 Automatic update of common submodule
462 From e8c7a71 to 3fa2c9e
464 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
466 * gst/vaapi/gstvaapivideocontext.c:
467 videoconvert: gst_element_post_message() is transfer full on msg
468 For this reson we need not to unref the message, even if it failed.
470 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
472 * gst/vaapi/gstvaapivideocontext.c:
473 Revert "vaapivideocontext: possible memleak when no bus attached"
474 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
476 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
478 * tests/elements/test-vaapicontext.c:
479 test: vaapicontext: process have-context bus message
481 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
483 * tests/elements/test-vaapicontext.c:
484 test: vaapicontext: app context is not persistent
486 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
488 * gst/vaapi/gstvaapipluginbase.c:
489 * gst/vaapi/gstvaapivideocontext.c:
490 * gst/vaapi/gstvaapivideocontext.h:
491 vaapivideocontext: only vaapisink process app context
492 gst.vaapi.app.Display context is made for applications that will
493 provide the VA display and the native display to used by the
494 pipeline, when are using vaapisink as overlay. There are no use
495 case for encoders, decoders, neither for the postprocessor.
496 In the case of the vaapisink, it shall query for gst.vaapi.Display
497 upstream first, and then, if there is no reply,
498 gst.vaapi.app.Display context will be posted in the bus for the
499 application. If the application replies, a GstVaapiDisplay object
500 is instantiated given the context info, otherwise a
501 GstVaapiDisplay is created with the normal algorithm to guess the
502 graphics platform. Either way, the instantiated GstVaapiDisplay
503 is propagated among the pipeline and the have-message bus message.
504 Also only vaapisink will process the gst.vaapi.app.Display, if
505 and only if, it doesn't have a display already set. This is
506 caused because if vaapisink is in a bin (playsink, for example)
507 the need-context is posted twice, leading to an error state.
508 https://bugzilla.gnome.org/show_bug.cgi?id=790999
510 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
512 * gst/vaapi/gstvaapivideocontext.c:
513 vaapivideocontext: log the name of GstVaapiDisplay
514 https://bugzilla.gnome.org/show_bug.cgi?id=790999
516 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
518 * gst/vaapi/gstvaapivideocontext.c:
519 vaapivideocontext: possible memleak when no bus attached
520 https://bugzilla.gnome.org/show_bug.cgi?id=790999
522 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
524 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
525 libs: window: wayland: remove unused header include
526 Remove wayland-client.h include since there is no exposed symbols from
529 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
531 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
532 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
533 libs: encoder: h264,h265: guard rate control's macroblock
534 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
536 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
539 Automatic update of common submodule
540 From 3f4aa96 to e8c7a71
542 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
544 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
545 libs: encoder: h264: Add Hierarchical-B encode
546 Frames are encoded as different layers. Frame in a particular
547 layer will use pictures in lower or same layer as references.
548 Which means decoder can drop the frames in upper layer but still
549 decode lower layer frames.
550 B-frames, except the one in top most layer, are reference frames.
551 All the base layer frames are I or P.
552 eg: with 3 temporal layers
556 T1, T2, T3: Temporal Layers
559 T1: I0->P4 , P4->P8 etc..
561 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
562 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
563 https://bugzilla.gnome.org/show_bug.cgi?id=788918
565 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
567 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
568 libs: encoder: h264: Add Hierarchical-P encode
569 Frames are encoded as different layers. A frame in a particular
570 layer will use pictures in lower or same layer as references.
571 Which means decoder can drop the frames in upper layer but still
572 decode lower layer frames.
573 eg: with 3 temporal layers
577 T1, T2, T3: Temporal Layers
579 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
580 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
581 https://bugzilla.gnome.org/show_bug.cgi?id=788918
583 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
585 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
586 libs: encoder: h264: Fix frame_num generation
587 The frame_num generation was not correctly implemented.
588 According to h264 spec, frame_num should get incremented
589 for each frame if previous frame is a referece frame.
590 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
591 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
592 https://bugzilla.gnome.org/show_bug.cgi?id=788918
594 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
596 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
597 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
598 libs: encoder: h264: Add new property "prediction-type"
599 Adds new property "prediction-type" to select different reference
600 picture selection modes like hierarchical-p, hierarchical-b etc.
601 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
602 https://bugzilla.gnome.org/show_bug.cgi?id=788918
604 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
606 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
607 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
608 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
609 Adds some basic building blocks to ease the implementation
610 of hierarchical prediction modes.
611 -- add an utility method to find temporal level of each frame
612 -- define max_ref_frame count based on temporal level count
613 -- add temporal_level_div[] for finding temporal level each frame
615 -- find ip_period based on temporal level count
616 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
617 https://bugzilla.gnome.org/show_bug.cgi?id=788918
619 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
621 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
622 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
623 libs: encoder: h264: Add property "temporal-levels"
624 Adds new property "temporal-levels" to select the number of
625 temporal levels to be included in the encoded stream.
626 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
627 https://bugzilla.gnome.org/show_bug.cgi?id=788918
629 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
631 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
632 libs: encoder: objects: Add a reference flag
633 We can have p-frame as non-ref and also b-frame as ref
634 which are not supported yet. Reference flag
635 is the first machinery needed for more advanced
636 reference picture selection modes.
637 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
638 https://bugzilla.gnome.org/show_bug.cgi?id=788918
640 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
642 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
643 libs: surface: egl: add comment
644 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
645 where the creation of surfaces from GEM fd may fail.
646 https://bugzilla.gnome.org/show_bug.cgi?id=773453
648 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
650 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
651 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
652 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
653 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
654 Adds a new function that changes the internal EGL display to the
655 current one (eglGetCurrentDisplay()) and sets the current context
656 too (eglGetCurrentContext()).
657 This new function is called by gst_vaapi_texture_egl_create() updating
658 the GstVaapiDisplayEGL with the current EGL display.
659 https://bugzilla.gnome.org/show_bug.cgi?id=773453
661 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
663 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
664 libs: texture: egl: update EGL display and context
665 It is required to use the context of the calling thread when wrapping
666 a foreign texture. According the documentation of
667 GstVideoGLTextureUploadMeta:
668 "The caller of gst_video_gl_texture_upload_meta_upload() must
669 have OpenGL set up and call this from a thread where it is valid
670 to upload something to an OpenGL texture."
671 This patch updates the EGL display and context in GstVaapiDisplay
672 instance to the one used by te renderer that uploads the texture.
673 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
674 https://bugzilla.gnome.org/show_bug.cgi?id=773453
676 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
678 * gst/vaapi/gstvaapipluginbase.c:
679 plugins: centralize assignation of GL objects
680 Add plugin_set_gst_gl() where the GstGL objects are assigned.
681 https://bugzilla.gnome.org/show_bug.cgi?id=773453
683 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
685 * gst/vaapi/gstvaapipluginbase.c:
686 plugins: set GL objects if ensured
687 Only set the GL display and GL other context if they are ensured.
688 https://bugzilla.gnome.org/show_bug.cgi?id=773453
690 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
692 * gst/vaapi/gstvaapipluginbase.c:
693 plugins: set GL objects if context is handled
694 Only set the GL display and GL other context if they are extracted
695 correctly from the gstreamer's context.
696 https://bugzilla.gnome.org/show_bug.cgi?id=773453
698 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
700 * gst/vaapi/gstvaapipluginbase.c:
701 plugins: fix memory leak when GL context is created
702 When the GL display and context are created inside an VAAPI element
703 the created GL context is leaked.
704 https://bugzilla.gnome.org/show_bug.cgi?id=773453
706 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
708 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
709 libs: display: egl: free leaked memory
710 The EGL VAAPI display forgot to release the egl display, context and
711 proxied VAAPI display.
712 https://bugzilla.gnome.org/show_bug.cgi?id=773453
714 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
716 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
717 libs: texture: egl: code style
718 https://bugzilla.gnome.org/show_bug.cgi?id=773453
720 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
722 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
723 libs: surface: egl: error message if no extension
724 Instead of silently fail to export the image if there is not available
725 the EGL_MESA_drm_image, log an error message. Also a code refactoring
727 https://bugzilla.gnome.org/show_bug.cgi?id=773453
729 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
731 * gst/vaapi/gstvaapipluginbase.c:
732 plugins: direct rendering on memory:VASurface
733 As buffers negotiated with memory:VASurface caps feature can also be
734 mapped, they can also be configured to use VA derived images, in other
735 words "direct rendering".
736 Also, because of the changes in dmabuf allocator as default allocator,
737 the code for configuring the direct rendering was not clear.
738 This patch cleans up the code and enables direct rendering when the
739 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
740 even then the memory:VASurface cap feature is negotiated.
741 https://bugzilla.gnome.org/show_bug.cgi?id=786054
743 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
745 * gst/vaapi/gstvaapipluginbase.c:
746 * gst/vaapi/gstvaapipluginutil.c:
747 plugins: only dmabuf on srcpad if downstream
748 Set if source pad can handle dmabuf only if the GstGL context comes
750 It is possible to know that at two moments:
751 1\ In the case of GstGLTextureUpload caps feature is negotiated and
752 downstream pool reports back gst.gl.GstGLContext.
753 2\ When GstGLContext is found as GstContext from dowstream.
754 https://bugzilla.gnome.org/show_bug.cgi?id=788503
756 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
758 * gst/vaapi/gstvaapivideocontext.c:
759 vaapivideocontext: add inline documentation
760 Document function gst_vaapi_find_gl_local_context().
761 https://bugzilla.gnome.org/show_bug.cgi?id=788503
763 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
765 * gst/vaapi/gstvaapipluginutil.c:
766 * gst/vaapi/gstvaapivideocontext.c:
767 * gst/vaapi/gstvaapivideocontext.h:
768 vaapivideocontext: return the direction of gl context
769 In function gst_vaapi_find_gl_context() add a direction parameter to
770 return back the direction where the GstGL context was found.
771 This is going to be useful when checking if downstream can import
772 dmabuf-based buffers.
773 https://bugzilla.gnome.org/show_bug.cgi?id=788503
775 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
777 * gst/vaapi/gstvaapipluginbase.c:
778 * gst/vaapi/gstvaapipluginbase.h:
779 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
780 This patch refactors the code by adding the function
781 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
782 GstGLContext can handle dmabuf-based buffers.
783 The function is exposed publicly since it is intended to be used later
784 at GstVaapiDisplay instantiation.
785 https://bugzilla.gnome.org/show_bug.cgi?id=788503
787 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
789 * gst/vaapi/gstvaapiencode.c:
790 vaapiencode: allow to set property on runtime
791 Tis patch, allows some properties that we want to be set on
792 runtime. (eg. bitrate)
793 Note that all properties are under control by num_codedbuf_queued.
794 https://bugzilla.gnome.org/show_bug.cgi?id=786321
796 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
798 * gst-libs/gst/vaapi/gstvaapiencoder.c:
799 libs: encoder: allow to set bitrate on runtime
800 In case of streaming, controlling bitrate dynamically for encoder might be
801 important to manage quality of the streaming.
802 This patch is to support such a scenario.
803 https://bugzilla.gnome.org/show_bug.cgi?id=786321
805 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
807 * gst/vaapi/gstvaapi.c:
808 * gst/vaapi/gstvaapi.h:
809 * gst/vaapi/gstvaapidecodebin.c:
810 vaapidecodebin: Register element if no VPP support is available too
811 VPP support is only needed for advanced deinterlacing, which is not
812 enabled by default either. Error out if it is selected but VPP is not
813 supported, and otherwise just work without VPP support.
814 https://bugzilla.gnome.org/show_bug.cgi?id=788758
816 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
818 * gst/vaapi/gstvaapipluginutil.c:
819 Avoid infinite loop when vaapi_create_display fails
820 Which might be the case when using, for example, xvfb.
822 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
824 * gst-libs/gst/vaapi/gstvaapiutils.c:
825 libs: utils: log warn if display fail
826 gstreamer-vaapi initializes the display by trial-and-error, thus
827 logging an error message if the display initialisation fails the user
828 may be weary of the error message in the screen, if using VA-API 1.0
829 This commit set the VA error log handler to GStreamer warning level
830 while calling vaInitialize() and set it to error after that.
831 https://bugzilla.gnome.org/show_bug.cgi?id=783169
833 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
835 * gst/vaapi/gstvaapipluginutil.c:
836 plugins: try to create test display in order
837 When creating the test display for querying capabilites, it try in
838 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
839 since they are either composited with X11 or Wayland.
840 The reason for this is to reduce the posibility of failure that could
841 blacklist the plugin.
842 https://bugzilla.gnome.org/show_bug.cgi?id=782212
844 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
846 * gst-libs/gst/vaapi/gstvaapidisplay.c:
847 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
848 libs: display: delay getting screen resolution
849 Instead of extracting the screen resolution at GstVaapiDisplay
850 creation, this patch delay it until the screen size is requested for
852 https://bugzilla.gnome.org/show_bug.cgi?id=782212
854 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
856 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
857 libs: display: egl: avoid two vaDisplay instantiates
858 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
859 or Wayland. Nonetheless it created another vaDisplay for it, instead
860 of using the wrapped one.
861 This patch enables the reuse of the wrapped vaDisplay avoiding
863 https://bugzilla.gnome.org/show_bug.cgi?id=782212
865 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
867 * gst-libs/gst/vaapi/gstvaapidisplay.c:
868 * gst-libs/gst/vaapi/gstvaapidisplay.h:
869 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
870 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
871 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
872 libs: display: remove display_type from display info
873 Since it's no required to pass the display type in the display info,
874 the structure member is removed.
875 https://bugzilla.gnome.org/show_bug.cgi?id=782212
877 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
879 * gst-libs/gst/vaapi/gstvaapidisplay.c:
880 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
881 libs: display: remove display_type member
882 It is not used any more since GstVaapiDisplay was ported as a
883 GstObject-based. This information is part of the class information.
884 https://bugzilla.gnome.org/show_bug.cgi?id=782212
886 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
888 * gst-libs/gst/vaapi/gstvaapidisplay.c:
889 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
890 libs: display: remove parent member
891 Parent was a crumb left from display cache.
892 https://bugzilla.gnome.org/show_bug.cgi?id=782212
894 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
896 * gst/vaapi/gstvaapi.c:
897 vaapi: Also register vaapipostproc without VPP support
898 It can still do simple deinterlacing then.
900 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
902 * gst/vaapi/gstvaapipostproc.c:
903 vaapipostproc: Allow running without VPP support
904 We returned FALSE from ::start() if VPP support is not available, but it
905 is only really needed for complex filters and during transform we check
906 for that. For simple deinterlacing it is not needed.
908 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
910 * gst/vaapi/gstvaapipostproc.c:
911 vaapipostproc: use scoped variable for return value
912 Instead of reusing a parameter variable for the return value of
913 gst_vaapipostproc_transform_caps(), this patch uses the function
914 scoped pointer. Thus, the code is cleaner.
915 https://bugzilla.gnome.org/show_bug.cgi?id=785706
917 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
919 * gst/vaapi/gstvaapipostproc.c:
920 vaapipostproc: removed unused parameter
921 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
922 helper function since the it is not used.
923 https://bugzilla.gnome.org/show_bug.cgi?id=785706
925 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
927 * gst/vaapi/gstvaapipostproc.c:
928 vaapipostproc: use scoped variable for return value
929 Instead of reusing a parameter variable for the return value of
930 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
931 pointer. Thus, the code is cleaner.
932 https://bugzilla.gnome.org/show_bug.cgi?id=785706
934 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
936 * gst/vaapi/gstvaapipluginutil.h:
937 plugins: memory:DMABuf only handles planar formats
938 When glimagesink negotiates the caps feature memory:DMABuf the
939 exported dmabufs buffers with NV12 format are not well rendered, thus
941 https://bugzilla.gnome.org/show_bug.cgi?id=788229
943 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
945 * gst/vaapi/gstvaapiencode.c:
946 vaapiencode: flush pending frames before set format
947 Flush pending frames, if any, in the internal encorder, before setting
948 the new negotiated format.
949 https://bugzilla.gnome.org/show_bug.cgi?id=786173
951 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
953 * gst/vaapi/gstvaapidecode.c:
954 vaapidecode: drain pending frames before set format
955 Drain pending frames, if any, in the internal decoder before setting
956 the new negotiated format.
957 https://bugzilla.gnome.org/show_bug.cgi?id=786173
959 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
961 * tests/test-display.c:
962 tests: display: use GObject getter
963 Instead of using the gst_vaapi_display_get_property(), this patch
964 replaces it with g_object_get_property() to dump the available VA
966 https://bugzilla.gnome.org/show_bug.cgi?id=788058
968 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
970 * gst/vaapi/gstvaapisink.c:
971 vaapisink: use GObject setter and getter
972 Instead of using gst_vaapi_display_set_property() or
973 gst_vaapi_display_get_property(), this patch set replace it usage
974 with g_object_set() or g_object_get().
975 Also the internal helper cb_set_value() is removed since it is not
977 https://bugzilla.gnome.org/show_bug.cgi?id=788058
979 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
981 * gst-libs/gst/vaapi/gstvaapidisplay.c:
982 libs: display: initialize value if they are not yet
983 This is a difference between the GObject API and the GstVaapi one: the
984 GValue passed to get a property value, in GObject has to be
985 initialized with g_value_init(), but in GstVaapi is has not.
986 In order to overcome this mismatch, this patch call g_value_init()
987 internally only in the passed one is not already initialized.
988 https://bugzilla.gnome.org/show_bug.cgi?id=788058
990 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
992 * gst-libs/gst/vaapi/gstvaapidisplay.c:
993 libs: display: optimize properties setters and getters
994 Shuffled some code to avoid to find the properties descriptor in the
995 array twice, adding the internal functions _set_property() and
997 https://bugzilla.gnome.org/show_bug.cgi?id=788058
999 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1001 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1002 libs: display: install properties in class
1003 Install the properties in the class as a normal GObject. Implement
1004 set_property() and get_property() vmethods.
1005 https://bugzilla.gnome.org/show_bug.cgi?id=788058
1007 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1009 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1010 libs: display: remove gst_vaapi_display_properties_init()
1011 Remove gst_vaapi_display_properties_init() since it can be unrolled in
1012 gst_vaapi_display_class_init()
1013 https://bugzilla.gnome.org/show_bug.cgi?id=788058
1015 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1017 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1018 libs: display: remove libgstvaapi_init_once()
1019 It is not required since it can be unrolled in
1020 gst_vaapi_display_class_init()
1021 https://bugzilla.gnome.org/show_bug.cgi?id=788058
1023 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1025 * tests/test-display.c:
1026 tests: test-display: remove display cache tests
1027 Since commit ec3e10f6, display cache was removed. This patch removes
1028 this leftovers in the display test.
1030 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
1032 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1033 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1034 libs: decoder: h264/h265: decode codec data only if opened
1035 Fixes regression introduced by commit 2eb2b26a.
1036 There is a use case when the decoder set the src caps and immediatly
1037 tries to process the media codec_data, this happens before decoder is
1038 even opened, thus priv->parser is not instantiated yet.
1039 https://bugzilla.gnome.org/show_bug.cgi?id=787818
1041 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1043 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1044 * gst-libs/gst/vaapi/gstvaapiencoder.h:
1045 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1046 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1047 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1048 libs: encoder: change mbbrc from uint to enum
1049 Instead of handling the macroblock bitrate control as a integer, this
1050 patch changes it as a enum, which is more self documented in the
1052 https://bugzilla.gnome.org/show_bug.cgi?id=787855
1054 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
1056 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1057 Fix a typo in the prop string for compliance-mode
1059 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1061 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1062 libs: encoder: don't unref properties
1063 This patch fixes a regression introduced in commit 148f867c, since the
1064 props variable is set to object's member variable
1065 encoder->properties. And it is set in the instance initialization,
1066 thus it will not be leaked.
1067 https://bugzilla.gnome.org/show_bug.cgi?id=787733
1069 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
1071 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1072 * gst/vaapi/gstvaapiencode.c:
1073 vaapiencode/libs: encoder: fix leaks of properties
1074 https://bugzilla.gnome.org/show_bug.cgi?id=786321
1076 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1078 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1079 libs: decoder: at update_caps() decode codec_data
1080 When updating the caps in decoder, if the caps has codec_data (avC
1081 format), it has to be parsed to update the state of the decoder.
1082 https://bugzilla.gnome.org/show_bug.cgi?id=786173
1084 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
1086 * gst-libs/gst/vaapi/gstvaapicontext.c:
1087 libs: context: fix wrong counter of the array of attributes
1088 The counter value passed to vaCreateConfig is always +1.
1089 This is a regression caused by commit e42ec3ad.
1090 The present patch fixes wrong counting of the array of attributes.
1091 https://bugzilla.gnome.org/show_bug.cgi?id=787613
1093 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
1095 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1096 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1097 libs: encoder: h265: support I/P/B QP setting seperatedly
1098 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
1100 and set slice_qp_delta for each frame according to the value provided.
1101 https://bugzilla.gnome.org/show_bug.cgi?id=785923
1103 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
1105 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1106 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
1107 libs: encoder: h264: support I/P/B QP setting seperatedly
1108 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
1110 and set slice_qp_delta for each frame according to the value provided.
1111 In addition, remove the limitation of (<= 4) when setting
1113 https://bugzilla.gnome.org/show_bug.cgi?id=785923
1115 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
1117 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1118 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1119 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
1120 Creates new variable for QP for I frame and keep it at configuration and
1121 use this for pic_init_qp and slice_qp_delta setting.
1122 Since changing min qp doesn't make sense, keep min qp as is.
1123 https://bugzilla.gnome.org/show_bug.cgi?id=785923
1125 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
1127 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1128 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1129 libs: encoder: h265: Add mbbrc property
1130 This property supports Macroblock level Bitrate Control as the
1131 following (same as h264 encoder):
1135 https://bugzilla.gnome.org/show_bug.cgi?id=785917
1137 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
1139 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1140 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
1141 libs: encoder: h264: Add mbbrc property
1142 This property supports Macroblock level Bitrate Control as the
1147 https://bugzilla.gnome.org/show_bug.cgi?id=785917
1149 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
1151 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1152 libs: encoder: h265: add multi reference support
1153 This is doing the same as h264 encoder as the following:
1154 Using num_ref_frames provided and the result of the Query
1155 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
1156 and perform encoding with multi reference frames as the following:
1157 1\ The num_ref_frames is being considered as the number of
1158 reference picture list0
1159 2\ Encoder adds 1 reference frame more to the reference picture list1
1160 internally if b-frame encoding.
1161 3\ If num_ref_frames is bigger than the number of refrence frames
1162 supported in the driver, it will be lowered.
1163 Also this patch includes:
1164 - Set num_negative_pics and num_positive_pics according to the number of
1166 - Set delta_poc according to the number of refs.
1167 - Increase max_dec_pic_buffering according to the number of refs
1168 - Change max_num_reorder_pics according to num of bframes
1169 https://bugzilla.gnome.org/show_bug.cgi?id=783804
1171 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
1173 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1174 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1175 libs: encoder: h265: add refs property
1176 Users can provide the number of reference frame by this property,
1177 which is exaclty same as h264.
1178 The value of the property will be considered as the number of
1179 reference picture list0 and will add 1 reference frame more to the
1180 reference picture list1 internally if b-frame encoding.
1181 If the value provided is bigger than the number of refrence frames
1182 supported in the driver, it will be lowered.
1183 The maximum value is aligned to the value of the driver supported now.
1184 https://bugzilla.gnome.org/show_bug.cgi?id=783804
1186 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
1188 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1189 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1190 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
1191 Follows the specification as below:
1192 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
1193 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
1194 element num_ref_idx_l0_active_minus1 is present for P and B slices and
1195 that the syntax element num_ref_idx_l1_active_minus1 is present for B
1197 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
1198 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
1200 https://bugzilla.gnome.org/show_bug.cgi?id=783804
1202 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
1204 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1205 libs: encoder: h265: keep idr_period equal to keyframe period
1206 Remove FIXME code, which makes previous assignation spurious.
1207 This also means to make idr_period equal to keyframe period,
1208 which is same as h264 encoder.
1209 https://bugzilla.gnome.org/show_bug.cgi?id=783804
1211 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1213 * gst/vaapi/gstvaapipluginbase.c:
1214 Request minimum buffer even if need_pool is FALSE
1215 When tee is used, it will not request a pool, but still it wants to
1216 know how many buffers are required.
1217 https://bugzilla.gnome.org/show_bug.cgi?id=730758
1219 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
1221 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
1222 libs: encoder: h264_fei: VA-API 1.0 compat
1223 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
1225 https://bugzilla.gnome.org/show_bug.cgi?id=787322
1226 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
1228 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1230 * gst/vaapi/gstvaapisink.c:
1231 vaapisink: Fix rendering in drm display
1232 Make sure vaapisink create a va surface backed buffer pool and all
1233 required attributes get assigned correctly for drm display type.
1234 This is needed to make the below pipeline working:
1235 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
1236 width=320 height=240 framerate=30/1 ! vaapisink display=drm
1237 https://bugzilla.gnome.org/show_bug.cgi?id=786954
1239 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1241 * tests/Makefile.am:
1242 * tests/test-fei-enc-in.c:
1243 * tests/test-fei-enc-out.c:
1244 FEI: Add test applications to showcase fei use case
1245 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
1247 ./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
1248 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
1250 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
1251 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
1252 from saved files is still not working
1254 Wang, Yi <yi.a.wang@intel.com>
1255 Leilei <leilei.shang@intel.com>
1256 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
1257 xiaominc <xiaomin.chen@intel.com>
1258 Li, Jing B <jing.b.li@intel.com>
1259 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1260 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1262 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1264 * gst/vaapi/Makefile.am:
1265 * gst/vaapi/gstvaapi.c:
1266 * gst/vaapi/gstvaapiencode_h264_fei.c:
1267 * gst/vaapi/gstvaapiencode_h264_fei.h:
1268 FEI: plugin: Add vaapih264feienc element
1269 A new FEI based encoder element for h264 is added: vaapih264feienc
1270 FEI is a an extension to VA-API which is providing low level
1271 advanced control over different stages of encoding.
1272 Extending vaapih264enc with fei support is possible, but it will
1273 make the code too much complicated and will be difficult
1274 to debug. So adding the new encoder element, but keeping
1275 the rank as 0 , vaapih264enc will stay as the primary
1276 encoder for normal use cases.
1277 The vaaih264feienc is mainly useful for customers who want to play
1278 with MotionVectors and Macroblock Predictions. Also user can
1279 do one stage of encoding(eg: only the Motion Vector Calculation)
1280 in software and offload trasformation/entroy-coding etc to
1281 Hardware (which is what PAK module is doing) using FEI element.
1282 vaapih264feienc can work in different modes using fei-mode properoty
1283 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
1284 Important Note: ENC only mode won't produce any encoded data which is expected.
1285 But ENC alwys requires the output of PAK in order to do the inter-prediction
1286 over reconstructed frames.
1287 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
1288 upstream element providing those buffers, PAK only won't work as expected.
1289 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
1290 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
1291 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
1292 separately in vaapih264feienc.
1294 Wang, Yi <yi.a.wang@intel.com>
1295 Leilei <leilei.shang@intel.com>
1296 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
1297 xiaominc <xiaomin.chen@intel.com>
1298 Li, Jing B <jing.b.li@intel.com>
1299 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1300 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1301 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1303 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
1305 * gst/vaapi/gstvaapiencode.c:
1306 * gst/vaapi/gstvaapiencode.h:
1307 FEI: plugin: Add virtual methods to base encode
1308 Two new virtual methods are added to gstvaapiencode.
1309 load_control_data(): load the FEI input buffers set by the upstream elements
1310 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
1311 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1312 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1313 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1315 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
1317 * gst/vaapi/Makefile.am:
1318 * gst/vaapi/gstvaapifeivideometa.c:
1319 * gst/vaapi/gstvaapifeivideometa.h:
1320 FEI: plugin: Add fei specific video meta
1321 GstVaapiFeiVideoMeta holds the below fei codec objects:
1322 GstVaapiEncFeiMbCode
1324 GstVaapiEncFeiMvPredictor
1325 GstVaapiEncFeiMbControl
1327 GstVaapiEncFeiDistortion
1328 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1329 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1330 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1332 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1334 * gst-libs/gst/vaapi/Makefile.am:
1335 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
1336 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
1337 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
1338 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
1339 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
1340 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
1341 FEI: libs: Add FEI encoder
1342 Adding FEI encoder to core lib.
1343 The code is splitted into three session:
1344 1: gstvaapiencoder_h264_fei.{h,c}
1345 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
1346 All the modes ENC, PAK and ENC_PAK are running based
1347 the code in these files.
1348 2: gstvaapifeienc_h264.{h,c}
1349 Abstract implementation intended for ENC (only VME) operation.
1350 3: gstvaapifeipak_h264.{h,c}
1351 Abstrct implementation intended for PAK (only the PAK module)
1352 Right now ENC_PAK, ENC and PAK are running based on code
1353 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
1354 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
1355 needed if user request for ENC+PAK mode operation.
1356 ENC+PAK: Here we need to invoke two sequence of
1357 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
1358 first for the ENC only and the second for PAK only.
1359 Each mode associated with separate context ,but same pool of surfaces are
1360 shared between the modes.
1361 This is more useful once we have custom BRC algorithms.
1363 Wang, Yi <yi.a.wang@intel.com>
1364 Leilei <leilei.shang@intel.com>
1365 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
1366 xiaominc <xiaomin.chen@intel.com>
1367 Li, Jing B <jing.b.li@intel.com>
1368 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1369 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1371 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1373 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
1374 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
1375 FEI: libs: Add fei codec objects to GstVaapiEncPicture
1376 All the codec objects(vaapi buffers) supposed to be
1377 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
1378 for each frame, follow the same design for FEI too.
1379 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1380 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1382 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1384 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
1385 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
1386 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
1387 FEI: libs: Add fei codec objects in codedbufferproxy
1388 MbCode, MV and Distortion buffers (fei codec objects)
1389 can be treated as output of different fei modes based user request.
1390 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
1391 can be dumped as output in ENC_PAK mode for analysis purpose.
1392 So treating them as a part of CodedBufferProxy too.
1393 Here we avoided Qp, MbControl and MvPredictor codec objects since
1394 there is no practical use case of treating them as "output buffers".
1396 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
1397 xiaominc <xiaomin.chen@intel.com>
1398 Leilei <leilei.shang@intel.com>
1399 Li, Jing B <jing.b.li@intel.com>
1400 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1401 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1403 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1405 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
1406 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
1407 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
1408 FEI: libs: Add fei codec objects to surface proxy
1409 Add fei codec objects to surface proxy since handling the
1410 fei buffers(codec objects here) external to gstvaapisurfaceproxy
1411 will make the code complicated. Especially considering the behavior
1412 of encoder where the input frame order from upstream and output
1413 frame order to the downstream are not sequential.
1415 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
1416 xiaominc <xiaomin.chen@intel.com>
1417 Leilei <leilei.shang@intel.com>
1418 Li, Jing B <jing.b.li@intel.com>
1419 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1420 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1422 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1424 * gst-libs/gst/vaapi/Makefile.am:
1425 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
1426 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
1427 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
1428 FEI: Add codec objects for fei usecase
1429 There are 6 new va buffer types, each defined as a specific codec object.
1430 Borrowed the code from gstvaapicodecobject , but made a clear separation
1431 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
1432 feicodecobjects can be shared between elements and also can be accessed
1433 from different thread.
1434 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
1435 object is not shared between elements.So we utilize the already
1436 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
1437 in gstvaapfei_objects_priv.h in order to have a better
1440 -- Probably we need _locked_map() and _unlocked_map()
1441 -- Context can be associated with PreEnc(not just Enoder)
1442 once we have the proper support inplace, but for now we don't have
1443 PreEnc support, so should be safe enough to use GstVaapiEncoder.
1444 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1445 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1447 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1449 * gst-libs/gst/vaapi/Makefile.am:
1450 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
1451 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
1452 FEI: libs: add H264 fei specific utility functions
1453 Added enum/flag type definitions for a number of FEI
1454 input and output parameters.
1455 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
1456 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1457 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1458 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
1459 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1461 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1463 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1464 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1465 FEI: libs: Add virtual method for secondary context creation.
1466 Add a new vitrual method ensure_secondary_context to the
1467 base encoder which is only required for the FEI entrypoint, that too
1468 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
1469 supported directly by libva or driver, but this can be enabled
1470 from the middleware.
1471 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
1472 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
1473 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
1474 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1475 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1476 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1478 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1480 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1481 FEI: libs: make sure the default context creation works as expected.
1482 Current code always guess the entrypoint during init phase in case
1483 if there is no entrypoint already configured in GstVaapiContextInfo.
1484 Make sure FEI Entrypoint is not messing up with this logic.
1485 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1486 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1488 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1490 * gst-libs/gst/vaapi/gstvaapicontext.c:
1491 * gst-libs/gst/vaapi/gstvaapicontext.h:
1492 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1493 FEI: libs: Add FEI functional mode configuration
1494 FEI Entrypoint can work in either one of the 3 different modes:
1495 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
1496 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
1497 functioal mode configuration.
1498 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1499 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1501 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1503 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1504 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1505 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1506 FEI: libs: Add FEI Entrypoint mapping
1507 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
1508 for VAEntrypointFEI.
1509 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1510 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1512 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1515 FEI: Add support for FEI conditional build
1516 FEI(Flexible Encoding Infrastructure) is an extension
1517 to VA API. Define USE_H264_FEI_ENCODER based on
1518 fei header file and required structures availability.
1519 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1520 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1522 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
1524 * gst/vaapi/gstvaapidecode.c:
1525 vaapidecode: force add h264 SVC profiles in caps
1526 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
1528 https://bugzilla.gnome.org/show_bug.cgi?id=732266
1529 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1531 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
1533 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1534 libs: decoder: h264: decode SVC base layer only
1535 Drops non-base NALs when the base-only property is set to TRUE.
1536 This modifies the behavior for MVC streams with base-only too: All the
1537 non-base units are dropped before they are decoded instead of dropping
1538 the non-base frames.
1539 The relevant part from the H264 spec is:
1540 > Decoders that conform to one or more of the profiles specified in
1541 Annex A rather than the profiles specified in Annexes G or H shall
1542 ignore (remove from the bitstream and discard) the contents of all NAL
1543 units with nal_unit_type equal to 14, 15, or 20.
1544 To eliminate side effects from the offending units:
1545 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
1547 - The NAL parsing is skipped and their flags are set to
1548 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
1549 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
1550 use them even if they are flagged to be skipped. Subset SPS's and slice
1551 extension units are not stored there either.
1552 https://bugzilla.gnome.org/show_bug.cgi?id=732266
1553 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1555 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
1557 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1558 libs: decoder: h264: check nalu validity in parser info finalize
1559 https://bugzilla.gnome.org/show_bug.cgi?id=732266
1560 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1562 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1564 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1565 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1566 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1567 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1568 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1569 libs: encoder: remove unused cast macro
1570 Remove internal macro to cast structure that are already declared
1573 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1575 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
1576 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1577 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
1578 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
1579 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
1580 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
1581 Revert "libs: encoders: remove unused cast macros"
1582 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
1584 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1586 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
1587 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1588 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
1589 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
1590 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
1591 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
1592 libs: encoders: remove unused cast macros
1593 They are only used inside the code, where another macro is defined.
1594 Thus these exported macros have no use.
1596 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1598 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1599 libs: decoder: h264: improve code-style
1600 https://bugzilla.gnome.org/show_bug.cgi?id=786173
1602 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1604 * gst-libs/gst/vaapi/gstvaapicompat.h:
1605 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1606 libs: encoder: h264: handle deprecated enum
1607 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
1608 instead VAEncPackedHeaderRawData should be used.
1609 This patch creates a compatibility symbol,
1610 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
1612 https://bugzilla.gnome.org/show_bug.cgi?id=784398
1614 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1616 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1617 * gst-libs/gst/vaapi/gstvaapiutils.c:
1618 libs: guard deprecated symbols
1619 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
1620 guards the H.264 baseline usage. Consider this commit as a
1621 continuation of commit e0e0a474
1622 https://bugzilla.gnome.org/show_bug.cgi?id=784398
1624 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1628 * meson_options.txt:
1629 Revert "build: check for libva-2.0"
1630 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
1631 https://bugzilla.gnome.org/show_bug.cgi?id=784398
1633 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1635 * gst-libs/gst/vaapi/gstvaapicompat.h:
1636 * gst-libs/gst/vaapi/gstvaapicontext.c:
1637 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1638 libs: macro to get a renamed value in VA-API 1.0
1639 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
1640 renamed one member from roi_value_is_qp_delat to
1641 roi_value_is_qp_delta, which is the correct name.
1642 In order to keep back compatibility a macro has added to access this
1644 https://bugzilla.gnome.org/show_bug.cgi?id=784398
1646 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1648 * gst/vaapi/gstvaapipluginbase.h:
1649 * gst/vaapi/gstvaapipluginutil.c:
1650 plugins: include main gstgl header
1651 Instead including particular gstgl header files in a header file
1652 that doesn't export a gstgl symbol, the main gstgl header file is
1653 included in gstvaapipluginutil.c where the symbols are used.
1654 https://bugzilla.gnome.org/show_bug.cgi?id=786597
1656 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1658 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1659 libs: encoder: h264: fix enum namespace
1661 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
1664 Automatic update of common submodule
1665 From 48a5d85 to 3f4aa96
1667 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1669 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1670 libs: encoder: h264: remove spurious assignation
1672 An assigned value that is never used may represent unnecessary
1673 computation, an incorrect algorithm, or possibly the need for cleanup
1675 ip_period is assigned first to be rewritter inmediatly after. The
1676 first assignation is spurious.
1678 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
1680 * gst/vaapi/gstvaapidecode.c:
1681 vaapidecode: fix mismatch of the return type
1682 https://bugzilla.gnome.org/show_bug.cgi?id=786307
1684 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1686 * gst-libs/gst/vaapi/Makefile.am:
1687 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
1688 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
1689 * gst-libs/gst/vaapi/gstvaapiutils.h:
1690 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
1691 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
1692 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
1693 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
1694 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
1695 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
1696 * gst-libs/gst/vaapi/meson.build:
1697 libs: remove unused header
1698 Since libgstvaapi is not distributed, there is no need to check for
1699 private header inclusion. Thus removing it.
1700 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1702 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1704 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
1705 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
1706 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1707 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
1708 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
1709 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
1710 libs: utils: move gstvaapisurface.h to private headers
1711 Since the utils don't expose API defined in gstvaapisource.h, it is
1712 moved to their private headers where they are used.
1713 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1715 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1717 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
1718 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
1719 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1720 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1721 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
1722 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
1723 libs: utils: remove va.h include in header
1724 And include gstvaapicompat.h in the C files, since the VA-API is not
1725 exposed in the headers.
1726 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1728 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1730 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1731 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1732 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1733 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1734 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1735 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1736 libs: encoder: remove va.h include
1737 Since it is already managed by gstvaapicompat.h
1738 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1740 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1742 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
1743 * gst-libs/gst/vaapi/gstvaapicompat.h:
1744 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
1745 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
1746 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1747 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1748 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1749 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1750 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1751 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1752 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1753 * gst-libs/gst/vaapi/gstvaapifilter.c:
1754 * gst-libs/gst/vaapi/gstvaapiutils.c:
1756 build: consolidate the VA sub API includes
1757 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
1758 since they are all already included in va.h after VA-API 0.38.
1759 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1761 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1765 build: check for va_vpp.h
1766 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
1767 allow us to handle the inclusion of the header better.
1768 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1770 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
1773 meson: don't export symbols by default
1774 Only plugin entry points should be exported.
1776 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1778 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1779 libs: decoder: h265: remove spurious code
1781 Logically dead code: The indicated dead code may have performed some
1782 action; that action will never occur.
1783 By using pointer arithmetic is impossible to get NULL.
1785 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1787 * gst-libs/gst/vaapi/gstvaapicontext.c:
1788 libs: context: use attribs index instead pointers
1790 Out-of-bounds write. This could cause an immediate crash or incorrect
1792 Coverity basically found that it is possible to assign more than 4
1793 attribs in the array.
1794 In my opinion this was produced because code pattern used pointer
1795 arithmetic, which is not readable nor maintainable.
1796 This patch refactors config_create() to use an array index rather than
1797 pointer arithmetic. Also a run-time check for index size was added.
1799 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1801 * gst/vaapi/gstvaapiencode_h264.c:
1802 vaapiencode: h264: remove spurious code
1804 An unsigned value can never be negative, so this test will always
1805 evaluate the same way.
1806 As len is guint32, there is no need to check it if it is equal or
1809 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1811 * gst/vaapi/gstvaapidecode.c:
1812 vaapidecode: initialize variable
1814 The variable will contain an arbitrary value left from earlier
1816 Variable base_only is fetched from base-only property, and it may be
1817 not assigned. It needs to be initialized.
1819 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1821 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1822 libs: windows: wayland: fail if cannot remove last frame
1824 If the function returns an error value, the error value may be
1825 mistaken for a normal value.
1826 If g_atomic_pointer_compare_and_exchange() fails because the frame is
1827 not the last one, the function fails. Thus, logging an info message.
1829 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1831 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
1832 libs: utils: glx: check return value
1834 If the function returns an error value, the error value may be
1835 mistaken for a normal value.
1836 Function sscanf returns the number of assignations done. Validate this
1837 return value with the number of expected variables to match.
1839 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1841 * gst-libs/gst/vaapi/gstvaapiobject.c:
1842 libs: vaapi: object: remove unrequired NULL check
1844 Dereference after null check: Either the check against null is
1845 unnecessary, or there may be a null pointer dereference.
1846 Variable klass has been validated as non-NULL several time before in
1847 gst_vaapi_object_new() function, so there is no need to check it
1850 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1852 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1853 libs: encoder: h265: remove spurious assignation
1855 An assigned value that is never used may represent unnecessary
1856 computation, an incorrect algorithm, or possibly the need for cleanup
1858 ip_period is assigned first to be rewritter inmediatly after. The
1859 first assignation is spurious.
1861 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1863 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1864 libs: encoder: h264: fix copy & paste error
1866 The copied code will not have its intended effect.
1867 This is a bug from commit cdaf15b2, where the intention is to
1868 initialize RefPicList1 while setting RefPicList0.
1870 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1872 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1873 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1874 libs: encoder: h265: fix possible integer overflow
1876 Unintentional integer overflow. The expression's value may not be what
1877 the programmer intended, because the expression is evaluated using a
1878 narrow (i.e. few bits) integer type.
1879 Cast operator to guint64 before computation to avoid narrowing.
1882 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1884 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
1885 libs: decoder: mpeg4: fail if return value is not OK
1887 An assigned value that is never used may represent unnecessary
1888 computation, an incorrect algorithm, or possibly the need for cleanup
1890 In the return value of decode_slice() or
1891 gst_mpeg4_parse_video_packet_header() are not success, thus fail
1892 decode_packet() function.
1894 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1896 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1897 libs: decoder: h265: check for null
1899 Dereference after null check: Either the check against null is
1900 unnecessary, or there may be a null pointer dereference.
1901 While looking for hte lowest poc, according to rest of the code, the
1902 picture in the dbp (decoded picture buffer) might be NULL, thus we
1903 could check for a NULL picture before assigned as found.
1904 Also, split a comma operator because it is considered as a bad
1905 practice because it possible side effects.
1907 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1909 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1910 libs: decoder: h265: untaint loop control variable
1912 Scalars (for example, integers) are not properly
1913 bounds-checked (sanitized) before being used as array or pointer
1914 indexes, loop boundaries, or function arguments are considered as
1916 In this case, num_nals were not checked before used as loop control.
1918 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1920 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1921 libs: decoder: h264: remove unrequired NULL check
1923 Dereference after null check: Either the check against null is
1924 unnecessary, or there may be a null pointer dereference.
1925 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
1926 prev_picture could be NULL, that's why the code did a null check. But,
1927 since commit 52adebe7, the previous reference frames are tracked, thus
1928 there is no need to check null anymore.
1930 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
1932 * gst/vaapi/gstvaapidecode.c:
1933 vaapidecode: fix gst_caps_new_simple call
1934 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1936 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
1938 * gst/vaapi/gstvaapidecode.c:
1939 vaapidecode: force add h264 MVC profiles in caps
1940 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
1942 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1944 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
1946 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1947 libs: decoder: h264: decode MVC base view only
1948 If processed SPS has mvc profile and the configuration is set to
1949 base-only, the frame is drop.
1950 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1952 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
1954 * gst/vaapi/gstvaapidecode.c:
1955 * gst/vaapi/gstvaapidecode_props.c:
1956 vaapidecode: set h264 base-only to decoder
1957 Set the base-only value when property is set and the internal
1958 decoder is already instantiated or when the internal decoder
1960 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1962 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
1964 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1965 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
1966 libs: decoder: h264: add setter for base-only mode
1967 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1969 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
1971 * gst/vaapi/gstvaapidecode_props.c:
1972 * gst/vaapi/gstvaapidecode_props.h:
1973 vaapidecode_props: h264: add base-only property
1974 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1976 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1978 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
1979 libs: encoder: h264: missing property enum documentation
1981 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
1983 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1984 libs: encoder: h264: add multi reference support
1985 Using num_ref_frames provided and the result of the Query
1986 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
1987 and perform encoding with multi reference frames as the following:
1988 1\ The num_ref_frames is being considered as the number of
1989 reference picture list0
1990 2\ Encoder adds 1 reference frame more to the reference picture list1
1991 internally if b-frame encoding.
1992 3\ If num_ref_frames is bigger than the number of refrence frames
1993 supported in the driver, it will be lowered.
1994 https://bugzilla.gnome.org/show_bug.cgi?id=783803
1996 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
1998 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1999 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2000 libs: encoder: h264: add refs property
2001 Users can provide the number of reference frame by this property.
2002 The value of the property will be considered as the number of
2003 reference picture list0 and will add 1 reference frame more to the
2004 reference picture list1 internally if b-frame encoding.
2005 If the value provided is bigger than the number of refrence frames
2006 supported in the driver, it will be lowered.
2007 https://bugzilla.gnome.org/show_bug.cgi?id=783803
2009 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
2011 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2012 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2013 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
2014 This function will query VAConfigAttribEncMaxRefFrames to get the
2015 maximum number of reference frames supported in the driver.
2016 This will be used for h264/h265 encoding.
2017 https://bugzilla.gnome.org/show_bug.cgi?id=783803
2019 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2021 * gst/vaapi/gstvaapiencode_h265.c:
2022 vaapiencode: h265: compare an unsigned int if not zero
2023 An unsigned value can never be negative, so this test (greater than
2024 zero) will always evaluate the same way. Thus change it to just if
2027 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2029 * gst/vaapi/gstvaapipluginbase.c:
2030 plugins: check gst_gl_ensure_element_data() return value
2031 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
2032 the return value of gst_gl_ensure_element_data(). The result is a code
2035 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2037 * gst/vaapi/gstvaapipluginutil.c:
2038 plugins: avoid dead code detection
2039 By using #elif macro, the static code analysis would stop to detect
2040 these lines as dead code. Also it is inforced the mutually exclusive
2043 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2045 * gst/vaapi/gstvaapivideobufferpool.c:
2046 vaapivideobufferpool: don't shift by negative since it's undefined
2047 The function g_bit_nth_lsf() may return -1 if the request bit position
2048 is not avaible. Thus, this patch check if the return value is not -1
2049 in order to continue.
2051 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2053 * gst/vaapi/gstvaapisink.c:
2054 vaapisink: fix memory leak
2056 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2058 * gst/vaapi/gstvaapipostprocutil.c:
2059 vaapipostproc: fix memory leaks
2061 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
2063 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2064 libs: display: when appending formats change pointers to indexes
2065 Thus, it fixes an invalid read when YV12 or I420 are not supported by
2067 https://bugzilla.gnome.org/show_bug.cgi?id=785085
2069 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2071 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2072 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2073 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
2074 Added a new property "compliance-mode", which default is the normal
2075 strict compliant mode.
2076 The second mode, "restrict-buf-alloc", is to limit the coded buffer
2077 allocation size to improve performance in some specific Intel
2078 platforms (there is asignificant performance improvement in parallel
2079 encodings). Under this new mode, we use the MinCR field in A.3.1 for
2080 pre-calculating the coded-buffer size.
2081 https://bugzilla.gnome.org/show_bug.cgi?id=784590
2083 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2085 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
2086 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
2087 libs: utils_h264: Extend LevelLimit table with MinCR field
2088 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
2090 https://bugzilla.gnome.org/show_bug.cgi?id=784590
2092 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2094 * gst-libs/gst/vaapi/gstvaapiutils.c:
2095 libs: utils: libva 1.0 changed the logging
2096 The logging mechanism in libva has changed it's functions
2097 signatures. This patch updates that for libva versions >= 1.0
2098 https://bugzilla.gnome.org/show_bug.cgi?id=784398
2100 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2102 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2103 libs: decoder: h264: libva 1.0 deprecated baseline
2104 libva 1.0 deprecated H.264 baseline profile and FMO support
2106 https://bugzilla.gnome.org/show_bug.cgi?id=784398
2108 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2112 * meson_options.txt:
2113 build: check for libva-2.0
2114 Check for libva-2.0 since libva's developers decided to increase the
2115 library's version number.
2116 https://bugzilla.gnome.org/show_bug.cgi?id=784398
2118 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2122 build: blacklist only libva 0.99.0
2123 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
2124 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
2126 https://bugzilla.gnome.org/show_bug.cgi?id=784398
2128 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2130 * gst-libs/gst/vaapi/meson.build:
2131 build: meson: remove gstvaapidisplaycache.c
2132 This is a missing bit of commit ec3e10f6
2134 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2137 configure: do not break configure if gtk+-3.0 devel missing
2138 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
2139 set USE_GTK=0 if gtk+-3.0 is not available.
2140 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
2141 Author: Hyunjun Ko <zzoon@igalia.com>
2142 Date: Wed Jul 5 15:59:43 2017 +0900
2143 tests: elements: add testsuite of vaapi context
2144 ...configure fails if gtk+-3.0 development files are missing.
2145 The "with_gtk" option defaults to "check" in configure.ac
2146 which implies that if it is not explicitly requested then
2147 configure will only enable it if it's available on the system.
2148 However, the PKG_CHECK_MODULES rule that get's activated on
2149 "check" condition did not provide default when gtk+-3.0 devel
2150 packages are not found on the system. Thus, it resulted in
2152 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
2153 https://bugzilla.gnome.org/show_bug.cgi?id=785452
2155 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
2158 * tests/elements/Makefile.am:
2159 * tests/elements/test-vaapicontext.c:
2160 tests: elements: add testsuite of vaapi context
2161 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2162 https://bugzilla.gnome.org/show_bug.cgi?id=766704
2164 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
2166 * gst/vaapi/gstvaapisink.c:
2167 vaapisink: fail if surface display is different
2168 Replacing GstVaapiDisplay during rendering might be hiding problems
2169 at some cases, even though it's safe currently since we use cache
2171 Play safe by failing if this happens.
2172 https://bugzilla.gnome.org/show_bug.cgi?id=766704
2174 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
2176 * gst/vaapi/gstvaapivideocontext.c:
2177 * gst/vaapi/gstvaapivideocontext.h:
2178 videocontext: support "gst.vaapi.app.Display" context
2179 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
2180 and native display of their backend.
2182 - display : pointer of VADisplay
2183 - x11-display : pointer of X11 display (Display *), if they're using.
2184 This patch creates GstVaapidisplayX11 if information provided through
2185 "gst.vaapi.app.Display"
2186 https://bugzilla.gnome.org/show_bug.cgi?id=766704
2188 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
2190 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2191 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2192 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
2193 Implements new API function so that users could create GstVaapiDisplay
2194 with their own VADisplay within a native display as backend.
2195 https://bugzilla.gnome.org/show_bug.cgi?id=766704
2197 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
2199 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2200 libs: display: pass display info when foreign display
2201 When creating a GstVaapiDisplay using a foreign VADisplay, and render
2202 with that display, it also requires native display of the backend.
2203 https://bugzilla.gnome.org/show_bug.cgi?id=766704
2205 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2207 * gst-libs/gst/vaapi/Makefile.am:
2208 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2209 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2210 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
2211 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
2212 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2213 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
2214 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
2215 libs: display: remove cache
2216 Remove a bunch of code that handles the VADisplay cache, since the
2217 context sharing should be doing this correctly.
2218 https://bugzilla.gnome.org/show_bug.cgi?id=747946
2220 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
2222 * tests/elements/Makefile.am:
2223 * tests/elements/test-vaapipostproc.c:
2224 tests: elements: add test for vaapipostproc
2225 https://bugzilla.gnome.org/show_bug.cgi?id=754885
2227 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
2229 * gst/vaapi/gstvaapipostproc.c:
2230 postproc: reconfigure when width or height changes
2231 https://bugzilla.gnome.org/show_bug.cgi?id=754885
2233 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2235 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2236 libs: encoder: vp9: array terminated in zeros
2237 There is a crash when setting ref-pic-mode since the #GEnumValue
2238 array is not terminated with a structured with all memvers being
2240 https://bugzilla.gnome.org/show_bug.cgi?id=785032
2242 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2244 * gst/vaapi/gstvaapiencode_h264.c:
2245 vaapiencode: h264: add plugin documentation
2246 Comment how the profile is set and other parameters.
2248 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
2250 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2251 libs: decoder: h264: push frames as soon as possible
2252 Push frames downstream as soon as possible instead of waiting until
2253 they are ejected from the DPB.
2254 This patch makes the decoder not comply with the H.264 specification,
2255 but it is required for some video cameras.
2256 https://bugzilla.gnome.org/show_bug.cgi?id=762509
2257 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2259 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2261 * gst/vaapi/gstvaapidecode_props.c:
2262 vaapidecode_props: h264: set low-latency in decoder
2263 Set the low-latency property if the H264 decoder is already
2264 instantiated, thus you could change the behavior in run-time.
2265 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2267 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2269 * gst/vaapi/gstvaapidecode.c:
2270 vaapidecode: set h264 low latency to decoder
2271 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2273 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2275 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2276 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2277 libs: decoder: h264: add getter/setter for low latency mode
2278 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2280 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2282 * gst/vaapi/gstvaapidecode_props.c:
2283 * gst/vaapi/gstvaapidecode_props.h:
2284 vaapidecode_props: h264: add low latency property
2285 Adding support for private data.
2286 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2288 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2290 * gst/vaapi/Makefile.am:
2291 * gst/vaapi/gstvaapidecode.c:
2292 * gst/vaapi/gstvaapidecode_props.c:
2293 * gst/vaapi/gstvaapidecode_props.h:
2294 * gst/vaapi/meson.build:
2295 vaapidecode_props: add skeleton for h264 decoder properties
2296 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2298 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2300 * gst/vaapi/gstvaapidecode.c:
2301 vaapidecode: properties callback in decoders map
2302 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2304 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
2307 meson: find python3 via python3 module
2308 https://bugzilla.gnome.org/show_bug.cgi?id=783198
2310 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
2312 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2313 libs: encoder: h264: submit sps in case of IDR picture
2314 If the picture is IDR, also submit a SPS header.
2315 This means when frame number reaches to keyframe-period or an force
2316 key unit event arrives, we insert SPS/PPS again.
2317 https://bugzilla.gnome.org/show_bug.cgi?id=776712
2319 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
2321 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2322 libs: encoder: h264: set the frame as IDR if forced key unit
2323 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
2324 the `frame-lost` event in the case of streaming, such as RTP.
2325 In case of this event, it is needed to start new GOP rather than just
2327 https://bugzilla.gnome.org/show_bug.cgi?id=776712
2329 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2331 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2332 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2333 libs: encoder: h264: insert AU delimiter
2334 Insert an AUD as the first NAL of each encoded frame.
2335 Some applications require Access Unit Delimiter for decoding the
2337 The AU delimeter insertion is done only when the aud parameter is
2338 TRUE (by default is disabled). The reason of this it is because this
2339 header is only available from Intel Gen9 and the VA intel driver
2340 should be 1.8 or superior. Otherwise, the output will be corrupted.
2341 https://bugzilla.gnome.org/show_bug.cgi?id=776712
2342 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
2344 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
2346 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2347 libs: encoder: h264: initialize all elements of view_ids
2348 Currently when num_views is changed by multiview-mode on sink caps, it produces
2349 wrong MVC encoded stream since the array view_ids is not set properly according
2350 to changed num_views.
2351 So this patch initializes all of the array sequentially to handle this case.
2352 Side effect is not going to happen by this patch since this array is being
2353 handled by num_views.
2354 https://bugzilla.gnome.org/show_bug.cgi?id=784321
2356 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
2358 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2359 Revert "encoder: h264: Use high profile by default"
2360 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
2361 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2363 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
2365 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2366 libs: encoder: h264: set profile via capsfilter
2367 Until now, the encoder ignored the profile in src caps and chose one
2368 according with the given parameters. But the encoder must honor the
2369 profile specifed in src caps.
2370 This patch do that, and if the encoder needs to choose the profile,
2371 it will do it by following these rules:
2372 1\ If given parameters are not compatible with given profile, the
2373 encoder will bail out with an error.
2374 2\ The encoder will choose the higher profile indicated in the
2376 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2378 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
2380 * gst/vaapi/gstvaapiencode_h264.c:
2381 vaapiencode: h264: set profile to src caps
2382 So far vaapi encoder does not set profile to src caps. This patch makes it
2383 setting profile to src caps, which is determined by itself.
2384 In addition, if encoder chose different profile, which is not negotiated with
2385 downstream, we should set compatible profile to make negotiation working.
2386 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2388 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2390 * gst/vaapi/gstvaapiencode_h264.c:
2391 * gst/vaapi/gstvaapiencode_h264.h:
2392 vaapiencode: h264: verify if requested profile is supported
2393 Check if the requested profile in source caps, is supported by the
2394 VA driver. If it is not, an info log message is send saying that
2395 another (compatible?) profile will be used.
2396 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2398 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2400 * gst/vaapi/gstvaapiencode_h264.c:
2401 vaapiencode: h264: improve set_config() vmethod
2402 First check if downstream requests ANY caps. If so, byte-stream is
2403 used and the profile will be choose by the encoder. If dowstream
2404 requests EMPTY caps, the negotiation will fail.
2405 Lately, byte-stream and profile are looked in the allowed caps.
2406 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2408 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2410 * gst/vaapi/gstvaapiencode_h264.c:
2411 vaapiencode: h264: check for avc in set_config()
2412 The check for avc stream format was done in the vaapi encoder's
2413 vmethod get_caps(), but that is wrong since it has to be check
2414 when encoder set_format().
2415 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2417 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
2419 * gst/vaapi/gstvaapipostprocutil.c:
2420 vaapipostproc: set multivew-mode flags to src caps
2421 vaapipostproc didn't negotiate the proper multiview caps losing
2422 downstream information.
2423 This patch enables the playing of MVC encoded stream by setting
2424 the proper multiview mode/flags and views to src caps, according
2426 https://bugzilla.gnome.org/show_bug.cgi?id=784320
2428 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
2430 * gst/vaapi/gstvaapipostproc.c:
2431 vaapipostproc: add support for DMABuf caps feature
2432 https://bugzilla.gnome.org/show_bug.cgi?id=755072
2433 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
2435 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2437 * gst/vaapi/gstvaapidecode.c:
2438 vaapidecode: add support for DMABuf caps feature
2439 https://bugzilla.gnome.org/show_bug.cgi?id=755072
2440 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
2442 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2444 * gst/vaapi/gstvaapipluginbase.c:
2445 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
2446 Instantiate all dmabuf allocator for src pad buffer pool if the
2447 src caps ask for memory:DMABuf feature.
2448 https://bugzilla.gnome.org/show_bug.cgi?id=755072
2450 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
2452 * gst/vaapi/gstvaapipluginutil.c:
2453 * gst/vaapi/gstvaapipluginutil.h:
2454 vaapipluginutil: add support for DMABuf caps feature
2455 https://bugzilla.gnome.org/show_bug.cgi?id=755072
2456 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
2457 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
2458 vaapipluginutil: add support for DMABuf caps feature
2460 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2462 * gst/vaapi/gstvaapipluginbase.c:
2463 vaapipluginbase: dmabuf memory map trial for raw caps
2464 Only push dmabuf-based buffers with raw caps if gst_memory_map()
2465 succeeds. Otherwise, use the the vaapi surfaces allocator.
2466 https://bugzilla.gnome.org/show_bug.cgi?id=755072
2467 https://bugzilla.gnome.org/show_bug.cgi?id=774649
2468 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
2470 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2472 * gst/vaapi/gstvaapivideomemory.c:
2473 * gst/vaapi/gstvaapivideomemory.h:
2474 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
2475 This new method checks the specified allocator can create GstMemory that can
2477 https://bugzilla.gnome.org/show_bug.cgi?id=755072
2479 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2481 * gst/vaapi/gstvaapivideobufferpool.c:
2482 vaapivideobufferpool: fix regression with video metas
2483 There is another regression with 7a206923 when setting the video
2484 info for the video meta, it should be the one from the image's
2485 allocator rather from the allocation caps.
2487 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
2488 ! tee ! videoconvert ! videoscale \
2489 ! video/x-raw, width=1920, height=1080 ! xvimagesink
2491 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2493 * gst/vaapi/gstvaapipluginbase.c:
2494 * gst/vaapi/gstvaapivideobufferpool.c:
2495 plugins: update buffer size with the one reported by allocator
2496 There is a regression in 7a206923, since the buffer pool ditches all
2497 the buffers generated by them because the pool config size is
2498 different of the buffer's size.
2500 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
2501 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
2502 --gst-debug=GST_PERFORMANCE:5
2503 The allocator may update the buffer size according to the VA surface
2504 properties. In order to do this, the video info is modified when the
2505 allocator is created, which reports through the allocation info the
2506 updated size, and set it to the pool config.
2508 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
2510 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2511 libs: decoder: h264: initialize active_sps/pps in reset
2512 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
2513 they introduced regression in seek.
2514 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
2515 But since the commits landed, it doesn't drop P-frame and does try to
2516 decode it continuously because active_sps is still alive. See ensure_sps function.
2517 But there are prev_frames and prev_ref_frames reset already, then it
2519 So it's necessary to reset active_sps/pps also in reset method.
2520 https://bugzilla.gnome.org/show_bug.cgi?id=783726
2522 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2524 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2525 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2526 libs: encoder: fix compilation with old versions of libva
2527 There are some symbols that are not used when compiling with old
2528 version of libva and those generates a compilation error.
2529 Original-patch-by: Matt Staples <staples255@gmail.com>
2531 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2533 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2534 libs: encoder: Fix the quality level clamping
2535 Change the hard-coded range of quality-level from {1-8} to {1-7},
2536 since it is the range Intel Open source driver supports.
2537 Also perform the range clamping only if the user provided
2538 quality-level is greater than the max-range suppored by the driver,
2539 because there could be non-intel drivers giving lower value than
2540 the hard-coded max value 7.
2541 https://bugzilla.gnome.org/show_bug.cgi?id=783567
2543 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2545 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2546 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2547 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2548 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2549 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2550 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2551 libs: encoder: log out the name of the profile
2552 Instead of printing a number, it is more readable to log out, in
2553 case of error, the name of the failing profile.
2555 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
2557 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2558 libs: encoder: h264: changes raw number of profile to macro name of its
2559 Changes raw number of profile to macro name of its to improve readability.
2560 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2562 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2564 * gst/vaapi/gstvaapivideobufferpool.c:
2565 vaapivideobufferpool: remove allocation_vinfo private attribute
2566 There is no need to keep this attribute internally since it is
2567 already managed by the allocator.
2568 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2570 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2572 * gst/vaapi/gstvaapivideobufferpool.c:
2573 vaapivideobufferpool: refactor set_config()
2574 Refactor the set_config() virtual method considering a cleaner
2575 approach to allocator instanciation, if it it not set or if it is
2576 not valid for the pool.
2577 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2579 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2581 * gst/vaapi/gstvaapipluginbase.c:
2582 * gst/vaapi/gstvaapivideobufferpool.c:
2583 * gst/vaapi/gstvaapivideomemory.c:
2584 * gst/vaapi/gstvaapivideomemory.h:
2585 plugins: distinguish allocation and negotiation caps
2586 The vaapi video decoders might have different allocation caps from
2587 the negotiation caps, thus the GstVideoMeta shall use the negotiation
2588 caps, not the allocation caps.
2589 This was done before reusing gst_allocator_get_vaapi_video_info(),
2590 storing there the negotiation caps if they differ from the allocation
2591 ones, but this strategy felt short when the allocator had to be reset
2592 in the vaapi buffer pool, since we need both.
2593 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
2594 gst_allocator_get_vaapi_negotiated_video_info() to store the
2595 negotiated video info in the allocator, and distinguish it from
2596 the allocation video info.
2597 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2599 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2601 * gst/vaapi/gstvaapivideomemory.c:
2602 * gst/vaapi/gstvaapivideomemory.h:
2603 vaapivideomemory: rename qdata quarks and ids
2604 Also the parameter names were renamed to reflect their origin
2606 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2608 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2610 * gst/vaapi/gstvaapivideobufferpool.c:
2611 vaapivideobufferpool: rename local variables
2612 Renamed local video info structure names in set_config() vitual
2613 method. The purpose of their renaming is to clarify the origin
2614 of those structures, whether come from passed caps parameter
2615 (new_allocation_vinfo) or from the configured allocator
2617 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2619 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2621 * gst/vaapi/gstvaapivideobufferpool.c:
2622 vaapivideobufferpool: rename video info structures
2623 Renamed private GstVideoInfo structure video_info to allocation_vinfo
2624 and alloc_info to negotiated_vinfo.
2625 The purpose of these renaming is to clarify the origin and purpose of
2626 these private variables:
2627 video_info (now allocation_vinfo) comes from the bufferpool
2628 configuration. It describes the physical video resolution to be
2629 allocated by the allocator, which may be different from the
2631 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
2632 the pipeline. It represents how the frame is going to be mapped
2633 using the video meta.
2634 In Intel's VA-API backend, the allocation_vinfo resolution is
2635 bigger than the negotiated_info.
2636 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2638 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2640 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2641 libs: encoder: set framerate if bigger than 0/1
2642 Just set the framerate parameter if the framerate numerator and
2643 denominator are bigger than zero.
2644 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
2646 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
2647 https://bugzilla.gnome.org/show_bug.cgi?id=783532
2649 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2651 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2652 libs: encoder: bitrate target percentage calculation
2653 If the rate control is set to Constant Bit Rate (CBR) the target
2654 percentage is 100%, otherwise is 70%
2656 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2658 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2659 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2660 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2661 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2662 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2663 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2664 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
2665 Centralize the common configuration for the Rate Control parameter,
2666 thus can be overloaded per each specific encoder.
2668 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2670 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2671 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2672 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2673 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2674 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2675 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2676 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
2677 Since the framerate VA parameter is calculated equally among all the
2678 encoders, it is better to handle it in the base encoder class.
2680 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2682 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2683 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2684 libs: encoder: vp9: Adds CBR and VBR Encoding support
2685 https://bugzilla.gnome.org/show_bug.cgi?id=766832
2686 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
2687 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2689 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
2691 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2692 libs: encoder: vp8: Adds VBR Encoding support
2693 https://bugzilla.gnome.org/show_bug.cgi?id=778732
2695 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
2697 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2698 libs: encoder: h265: Adds VBR Encoding support
2699 Enables Variable BitRate mode, which does set FrameRate and RateControl
2701 https://bugzilla.gnome.org/show_bug.cgi?id=778732
2703 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
2705 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2706 libs: encoder: Describes more detail about the bitrate property
2707 https://bugzilla.gnome.org/show_bug.cgi?id=778732
2709 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2711 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2712 libs: encoder: h265: add rate control parameter
2713 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2715 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2717 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2718 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2719 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2720 libs: encoder: h264,h265,mpeg2: add framerate parameter
2721 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2723 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2725 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2726 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2727 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2728 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2729 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
2730 Instead of recalculating the miscellaneous buffer parameters for
2731 every buffer, it is only done once, when the encoder is configured.
2732 And for every buffer, the same structures are just copied.
2733 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2735 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2737 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2738 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2739 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2740 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2741 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2742 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2743 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
2744 This is patch pretends to decouple the assignation of the values
2745 in the parameter structures and the VA buffer's parameters setting.
2746 It may lead to some issues since HRD, framerate or controlrate may
2747 not be handled by the specific encoder, but they are set in
2748 the VA buffer's parameters.
2749 I leave as it because this patch is just a transitional patch.
2750 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2752 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2754 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2755 libs: encoder: vp8: fix frame rate calculation
2756 According to the VA documentation:
2757 The framerate is specified as a number of frames per second,
2758 as a fraction. The denominator of the fraction is given in
2759 the top half (the high two bytes) of the framerate field, and
2760 the numerator is given in the bottom half (the low two bytes).
2761 For example, if framerate is set to (100 << 16 | 750), this is
2762 750 / 100, hence 7.5fps.
2763 If the denominator is zero (the high two bytes are both zero)
2764 then it takes the value one instead, so the framerate is just
2765 the integer in the low 2 bytes.
2766 This patch fixes the the framerate calculation in vp8 encoder
2768 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2770 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2772 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2773 libs: encoder: vp8: refactor FrameRate parameter
2774 Move frame-rate parameter from ensure_misc_params() to
2775 ensure_contro_rate_param() since it only has meaning when the
2776 control rate is either VBR or CBR.
2777 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2779 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2781 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2782 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2783 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2784 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2785 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
2786 Move the Hypothetical Reference Decoder (HRD) parameter, from
2787 ensure_misc_params() to ensure_control_rate_params(), since it
2788 only shall be defined when the control rate is either VBR or CBR.
2789 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2791 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2793 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2794 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2795 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2796 libs: encoder: h264,vp8,mpeg2: refactor control rate
2797 Instead of filling the control rate param in ensure_misc_params(),
2798 this patch refactor it out, as a first step to merge the same code
2799 for all the encoders.
2800 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2802 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2804 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2805 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2806 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2807 libs: encoder: h264, h265, mpeg2: remove assert
2808 Remove spurious asserts for misc parameters. If they cannot be
2809 allocated, FALSE is already returned.
2811 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2813 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2814 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2815 libs: encoder: use VA quality level structure
2816 Instead of using a proxy to story the buffer quality level, the
2817 encoder now uses the native VA structure, which is copied to the
2818 dynamically allocated VAEncMiscParameterBuffer.
2819 This approach is computationally less expensive.
2821 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2823 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2824 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
2825 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2826 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2827 libs: standardize the FIXME comment
2828 This is a trivial patch that makes homogeneous the FIXME tag in
2830 For more info about these comment style:
2831 http://wiki.c2.com/?FixmeComment
2833 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
2835 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2836 libs: encoder: vp8: set quality level regardless of rate control mode
2837 https://bugzilla.gnome.org/show_bug.cgi?id=782957
2839 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2841 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2842 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2843 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2844 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2845 libs: encoder: check for maximum number of slices
2846 Right now, H264 and HEVC can set as a property the number of slices to
2847 process. But each driver can set a maximum number of slices, depending
2848 on the supported profile & entry point.
2849 This patch verifies the current num_slices to process against the maximum
2850 permitted by the driver and the media size.
2851 https://bugzilla.gnome.org/show_bug.cgi?id=780955
2853 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2855 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
2856 libs: utils: mark functions as internals
2857 The functions in this header are internal to the library.
2859 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2861 * gst-libs/gst/vaapi/gstvaapicontext.h:
2862 libs: context: add missing documentation
2863 Document the region-of-interest configuration variables.
2865 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2867 * tests/elements/test-vaapisink.c:
2868 tests: elements: vaapisink: handle nav events
2869 The test app can now handle navigation events to rotate the
2872 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2874 * tests/elements/test-vaapisink.c:
2875 tests: elements: clean up vaapisink test
2876 - Use gst_element_send_event() instead of gst_pad_push_event()
2877 - don't zero App structure
2878 - check for pipeline parsing error
2879 - only get vaapisink for property set
2881 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
2883 * gst/vaapi/gstvaapisink.c:
2884 vaapisink: keep handle_events flag except that if user want to set
2885 When state of vaapisink is changed from PLAYING to NULL, the handle_events
2886 flag is set to FALSE, and never recovered, and then event thread is never
2888 So we should allow to set the flag only when users try it.
2889 https://bugzilla.gnome.org/show_bug.cgi?id=782543
2891 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
2893 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2894 libs: window: x11: fix src rect info when using vpp
2895 Since we started using VPP in VaapiWindowX11, we need to care about
2896 the case that src rect and window's size are different.
2897 So, once VPP has converted to other format, we should honor the
2898 size of the VPP's surface as source rect. Otherwise, it is cropped
2899 according the previous size of the source rect.
2900 https://bugzilla.gnome.org/show_bug.cgi?id=782542
2902 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2904 * gst/vaapi/gstvaapipluginutil.c:
2905 plugins: remove par from caps negotiation
2906 https://bugzilla.gnome.org/show_bug.cgi?id=781759
2908 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
2910 * tests/elements/Makefile.am:
2911 * tests/elements/test-roi.c:
2912 tests: elements: add an example for ROI
2913 This implements a pipleint to recognize difference between ROI and non-ROI.
2914 See comments in this code in detail.
2915 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2916 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2918 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
2920 * gst/vaapi/gstvaapiencode.c:
2921 * gst/vaapi/gstvaapiencode_h264.c:
2922 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
2923 Handles new custom event GstVaapiEncoderRegionOfInterest
2924 to enable/disable a ROI region.
2925 Writes a way to use new event to document.
2926 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2927 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2929 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
2931 * tests/simple-encoder.c:
2932 tests: simple-encoder: add an option to set ROI
2933 $ simple-encoder -r inputfile.y4m
2934 And you'll got an output file in H264 with two regions of interest.
2935 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2936 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2938 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
2940 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2941 libs: encoder: h264: set ROI params during encoding
2942 Set ROI params during encoding each frame, which are set via
2943 gst_vaapi_encoder_add_roi ()
2944 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2945 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2947 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
2949 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2950 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2951 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2952 libs: encoder: add api gst_vaapi_encoder_add/del_roi
2953 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
2954 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2956 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
2958 * gst-libs/gst/vaapi/gstvaapicontext.c:
2959 * gst-libs/gst/vaapi/gstvaapicontext.h:
2960 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2961 libs: encoder/context: query region of interest support
2962 Queries if the driver supports "Region of Interest" (ROI) during the config
2964 This attribute conveys whether the driver supports region-of-interest (ROI)
2965 encoding, based on user provided ROI rectangles. The attribute value is
2966 partitioned into fields as defined in the VAConfigAttribValEncROI union.
2967 If ROI encoding is supported, the ROI information is passed to the driver
2968 using VAEncMiscParameterTypeROI.
2969 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2970 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2972 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2974 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
2975 libs: encoder: fix a comment
2977 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2979 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2980 libs: encoder: guard quality level configuration
2981 The quality level appeared in VA-API 0.36. So let's guard its
2984 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2986 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2987 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2988 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2989 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2990 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2991 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
2992 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2993 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2994 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2995 encoders: add quality level tuning
2996 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
2997 in gstreamer-vaapi encoders:
2998 The encoding quality could be set through this structure, if the
2999 implementation supports multiple quality levels. The quality level set
3000 through this structure is persistent over the entire coded sequence, or
3001 until a new structure is being sent. The quality level range can be queried
3002 through the VAConfigAttribEncQualityRange attribute. A lower value means
3003 higher quality, and a value of 1 represents the highest quality. The quality
3004 level setting is used as a trade-off between quality and speed/power
3005 consumption, with higher quality corresponds to lower speed and higher power
3007 The quality level is set by the element's parameter "quality-level" with a
3008 hard-coded range of 1 to 8.
3009 Later, when the encoder is configured in run time, just before start
3010 processing, the quality level is scaled to the codec range. If
3011 VAConfigAttribEncQualityRange is not available in the used VA backend, then
3012 the quality level is set to zero, which means "disabled".
3013 All the available codecs now process this parameter if it is available.
3014 https://bugzilla.gnome.org/show_bug.cgi?id=778733
3015 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3017 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
3023 === release 1.12.0 ===
3025 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
3030 * gstreamer-vaapi.doap:
3034 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3036 * gst/vaapi/gstvaapidecodebin.c:
3037 Revert "vaapidecodebin: fix element's classification"
3038 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
3040 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
3044 build: Require libva < 0.99.0
3045 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
3046 fail to configure instead of failing late in the build.
3047 This libva is bundled in msdk[1] and it is ahead in time with
3048 respect the official and open source libva[2]. GStreamer-VAAPI
3049 only supports the latter for now.
3050 1. https://software.intel.com/en-us/media-sdk/download
3051 2. https://github.com/01org/libva/
3052 https://bugzilla.gnome.org/show_bug.cgi?id=781866
3054 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
3056 * gst/vaapi/gstvaapidecodebin.c:
3057 vaapidecodebin: fix element's classification
3058 This bin should have similar classification as decodebin which is
3059 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
3061 Signed-off-by: Victor Toso <victortoso@redhat.com>
3062 https://bugzilla.gnome.org/show_bug.cgi?id=782063
3064 === release 1.11.91 ===
3066 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
3071 * gstreamer-vaapi.doap:
3075 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3077 * gst/vaapi/gstvaapipluginutil.c:
3078 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
3079 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
3081 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3083 * gst/vaapi/gstvaapipluginutil.c:
3084 plugins: reject pixel-aspect-ratio with value 0/1
3085 Do not negotiate a pixel-aspect-ratio of 0/1.
3086 https://bugzilla.gnome.org/show_bug.cgi?id=781759
3088 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3090 * gst/vaapi/gstvaapipostprocutil.c:
3091 * gst/vaapi/gstvaapisink.c:
3092 plugins: handle pixel-aspect-ratio with value 0/1
3093 When downstream negotiates a pixel-aspect-ratio of 0/1, the
3094 calculations for resizing and formatting in vaapipostproc and
3095 vaapisink, respectively, failed, and thus the pipeline.
3096 This patch handles this situation by converting p-a-r of 0/1 to
3097 1/1. This is how other sinks, such as glimagesink, work.
3098 https://bugzilla.gnome.org/show_bug.cgi?id=781759
3100 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
3102 * gst/vaapi/gstvaapivideobufferpool.c:
3103 vaapivideobufferpool: fix leak of created allocator
3104 Since it's created by itself, it should be unref-counted
3105 after gst_buffer_pool_config_set_allocator call. Afterwards,
3106 this allocator will be ref-counted again when assigning to priv->allocator.
3107 https://bugzilla.gnome.org/show_bug.cgi?id=781577
3109 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3111 * gst/vaapi/gstvaapivideobufferpool.c:
3112 vaapivideobufferpool: create or reconfig allocator
3113 Sometimes a video decoder could set different buffer pool
3114 configurations, because their frame size changes. In this case we
3115 did not reconfigure the allocator.
3116 This patch enables this use case, creating a new allocator inside
3117 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
3118 If so, it is just reconfigured, since it doesn't have a surface pool.
3119 https://bugzilla.gnome.org/show_bug.cgi?id=781577
3121 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3123 * tests/elements/Makefile.am:
3124 test: elements: fix compilation flags
3125 This issue was spotten on bug #766704
3126 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
3128 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
3130 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3131 libs: windows: wayland: fix leak if failure of sync
3132 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
3134 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
3135 This surface is not attached to anything at this moment, so we should release
3137 https://bugzilla.gnome.org/show_bug.cgi?id=781695
3139 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
3142 Automatic update of common submodule
3143 From 60aeef6 to 48a5d85
3145 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
3147 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3148 libs: window: wayland: mark frames as done
3149 When the frame listener callbacks 'done', the number of pending
3150 frames are decreased. Nonetheless, there might be occasions where
3151 the buffer listener callbacks 'release', without calling previously
3152 frame's 'done'. This leads to problem with
3153 gst_vaapi_window_wayland_sync() operation.
3154 This patch marks as done those frames which were callbacked, but if
3155 the buffer callbacks 'release' and associated frame is not marked
3156 as 'done' it is so, thus the number of pending frames keeps correct.
3157 https://bugzilla.gnome.org/show_bug.cgi?id=780442
3158 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3160 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3162 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3163 libs: window: wayland: don't sync at destroy()
3164 Don't call gst_vaapi_window_wayland_sync() when destroying the
3165 wayland window instance, since it might lead to a lock at
3166 gst_poll_wait() when more than one instances of vaapisink are
3167 rendering in the same pipeline, this is because they share the
3169 Since now all the frames are freed we don't need to freed the
3170 private last_frame, since its address is invalid now.
3171 https://bugzilla.gnome.org/show_bug.cgi?id=780442
3172 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
3174 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
3176 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3177 libs: window: wayland: null buffer at destroy()
3178 Fix leakage of the last wl buffer.
3179 VAAPI wayland sink needs to send a null buffer while destruction,
3180 it assures that all the wl buffers are released. Otherwise, the last
3181 buffer's callback might be not called, which leads to leak of
3183 This was inspired by gstwaylandsink.
3184 https://bugzilla.gnome.org/show_bug.cgi?id=774029
3185 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3187 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
3189 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3190 libs: window: wayland: rt event queue at destroy()
3191 The proxy object of wl_buffer for the last frame remains in the
3192 wl_map. Even though we call wl_buffer_destroy() in
3193 frame_release_callback(), the proxy object remains without being
3194 removed, since proxy object is deleted when wayland server sees the
3195 delete request and sends 'delete_id' event.
3196 We need to call roundtrip before destroying event_queue so that the
3197 proxy object is removed. Otherwise, it would be mess up as receiving
3198 'delete_id' event from previous play, when playing in the next
3199 va/wayland window with the same wl_display connection.
3200 https://bugzilla.gnome.org/show_bug.cgi?id=773689
3201 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3203 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3205 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3206 libs: window: wayland: cancel read at poll message
3207 Always call wl_display_cancel_read() when an errno is set, but
3208 different to EAGAIN or EINTR.
3209 https://bugzilla.gnome.org/show_bug.cgi?id=780442
3211 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
3213 * gst/vaapi/gstvaapidecodebin.c:
3214 * gst/vaapi/gstvaapidecodebin.h:
3215 vaapidecodebin: skips configuration once it's done
3216 Skips configuration of creation of vpp/capsfilter and link them once it's done.
3217 Otherwise, it always fails when it's trying to re-start playback.
3218 https://bugzilla.gnome.org/show_bug.cgi?id=781573
3220 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3222 * gst/vaapi/gstvaapipostprocutil.c:
3223 vaapipostproc: fixes for memory leaks
3224 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
3225 requires to clear the used GValue to avoid a memory leak.
3227 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3229 * gst/vaapi/gstvaapipluginbase.c:
3230 * gst/vaapi/gstvaapipluginbase.h:
3231 plugins: enable direct rendering with envvar
3232 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
3233 performance in some Intel platforms (Haswell, for example) but in others
3234 (Skylake) is the opposite.
3235 In order to have some control, the patch enables the direct rendering
3236 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
3237 Also it seems to generating some problems with gallium/radeon backend.
3239 https://bugzilla.gnome.org/show_bug.cgi?id=775848
3241 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
3243 * gst/vaapi/gstvaapidecode.c:
3244 vaapidecode: Don't renegotiate on every flush
3245 If caps don't actually change, don't update the
3246 decoder and don't set the do_renego flag forcing
3247 downstream renegotiation
3248 https://bugzilla.gnome.org/show_bug.cgi?id=781142
3250 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
3252 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3253 h264 decoder: Implement reset() for faster flush
3254 Implement a custom reset() function for faster flushes
3255 that just clear the reference pictures but don't reallocate
3256 the DPB or clear out SPS/PPS
3257 https://bugzilla.gnome.org/show_bug.cgi?id=781142
3259 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
3261 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3262 * gst-libs/gst/vaapi/gstvaapidecoder.h:
3263 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3264 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3265 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
3266 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
3267 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
3268 * gst/vaapi/gstvaapidecode.c:
3269 Implement decoder reset on flush, rather than recreating
3270 Clear decoders out on a flush but keep the same instance,
3271 rather than completely recreating them. That avoids
3272 unecessarily freeing and recreating surface pools
3273 and contexts, which can be quite expensive
3274 https://bugzilla.gnome.org/show_bug.cgi?id=781142
3276 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3278 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3279 libs: window: don't add an unused function
3280 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
3281 a function that is never used, thus when compiling we might see
3282 this warning (clang):
3283 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
3284 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
3286 https://bugzilla.gnome.org/show_bug.cgi?id=759533
3288 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3290 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3291 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
3292 libs: window: remove surface_format member
3293 Since we always convert to NV12, there is no need to keep a
3294 variable for that. Let us hard code it.
3295 https://bugzilla.gnome.org/show_bug.cgi?id=759533
3297 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
3299 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3300 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3301 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
3302 libs: window: x11/wayland: use new api for conversion
3303 Since gst_vaapi_window_vpp_convert_internal is created,
3304 GstVaapiWindowX11/Wayland can use it for conversion.
3305 Note that once it chooses to use vpp, it's going to use vpp
3306 until the session is finished.
3307 https://bugzilla.gnome.org/show_bug.cgi?id=759533
3309 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
3311 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3312 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
3313 libs: window: add gst_vaapi_window_vpp_convert_internal()
3314 If a backend doesn't support specific format, we can use vpp for conversion
3315 and make it playing.
3316 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
3317 so that GstVaapiWindowX11 could use it.
3318 https://bugzilla.gnome.org/show_bug.cgi?id=759533
3320 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
3322 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3323 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
3324 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3325 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3326 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
3327 libs: window: x11/wayland: chaining up to GstVaapiWindow
3328 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
3329 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
3330 https://bugzilla.gnome.org/show_bug.cgi?id=759533
3332 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
3334 * gst/vaapi/gstvaapipluginutil.c:
3335 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
3336 When these definitions are false, they are undef in the
3337 preprocessor, not a defined value of 0. When they are unset the
3339 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
3340 https://bugzilla.gnome.org/show_bug.cgi?id=780948
3342 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
3345 Automatic update of common submodule
3346 From 39ac2f5 to 60aeef6
3348 === release 1.11.90 ===
3350 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
3355 * gstreamer-vaapi.doap:
3359 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3361 * gst/vaapi/gstvaapiencode_h265.c:
3362 vaapiencode: h265: add main-10 in caps template
3363 This patch adds h265's main-10 profile in encoder src caps template.
3364 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3366 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3368 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3369 libs: encoder: h265: chroma and luma with format
3370 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
3371 parameter buffer, shall be the color format bit depth minus 8, 10-8
3372 which is 2. Also for bit_depth_chroma_minus8.
3373 This patch gets the negotiated sink caps format and queries its
3374 luma's depth and uses that value to fill the mentioned parameters.
3375 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3377 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3379 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3380 libs: encoder: admit YUV420_10BPP as valid chroma
3381 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
3383 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3385 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3387 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3388 libs: encoder: h265: ensures profile given format
3389 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
3390 configured color format is P010_10LE.
3391 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
3392 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3394 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3396 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3397 libs: encode: merge all possible surface formats
3398 When the function gst_vaapi_encoder_get_surface_formats() was added
3399 it was under the assumption that any VA profile of the specific codec
3400 supported the same format colors. But it is not, for example the
3401 profiles that support 10bit formats.
3402 In other words, different VA profiles of a same codec may support
3403 different color formats in their upload surfaces.
3404 In order to expose all the possible color formats, if no profile is
3405 specified via source caps, or if the encoder doesn't have yet a
3406 context, all the possible VA profiles for the specific codec are
3407 iterated and their color formats are merged.
3408 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3410 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3412 * gst/vaapi/gstvaapiencode.c:
3413 * gst/vaapi/gstvaapiencode.h:
3414 * gst/vaapi/gstvaapiencode_h264.c:
3415 * gst/vaapi/gstvaapiencode_h265.c:
3416 vaapiencode: add get_profile() vmethod
3417 This new virtual method, get_profile(), if implemented by specific
3418 encoders, will return the VA profile potentially determined by the
3420 Also it is implemented by h264 and h265 encoders, which are the main
3421 users of this vmethod.
3422 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3424 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3426 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3427 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3428 * gst/vaapi/gstvaapiencode.c:
3429 libs: encoder: pass profile to get_surface_formats()
3430 In order to get the supported surface formats within a specific
3431 profile this patch adds the GstVaapiProfile as property to
3432 gst_vaapi_encoder_get_surface_formats().
3433 Currently the extracted formats are only those related with the
3434 default profile of the element's codec.
3435 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3437 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3439 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3440 libs: encoder: dummy context for get_surface_formats()
3441 Instead of creating (if it doesn't exist, yet) the encoder's context
3442 the method gst_vaapi_encoder_get_surface_formats() now it creates
3443 dummy contexts, unless the encoder has it already created.
3444 The purpose of this is to avoid setting a encoder's context with a
3446 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3448 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3450 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3451 libs: encoder: refactor init_context_info()
3452 In order to generate vaapi contexts iterative, the function
3453 init_context_info() is refactored to pass, as parameters the
3454 GstVaapiContextInfo and the GstVaapiProfile.
3455 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3457 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3459 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3460 * gst-libs/gst/vaapi/gstvaapiutils.c:
3461 * gst-libs/gst/vaapi/gstvaapiutils.h:
3462 libs: encoder: initialize chroma_type
3463 Instead of initialize the chroma_type with a undefined value, which
3464 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
3465 this patch queries the VA config, given the received
3466 GstVaapiContextInfo's parameters, and gets the first response.
3467 In order to get the GstVaapiChromaType value, also it was needed to
3468 add a new utility function: to_GstVaapiChromaType(), which, given a
3469 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
3470 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3472 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3474 * gst/vaapi/gstvaapiencode.c:
3475 vaapiencode: enhance logs of negotiated caps
3476 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3478 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
3480 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3481 libs: encoder: vp9: Fix initialization of ref_list
3482 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
3483 'memset' used with length equal to number of elements without
3484 multiplication by element size [-Werror=memset-elt-size]
3485 https://bugzilla.gnome.org/show_bug.cgi?id=780947
3487 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3489 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3490 encoder: h264: Fix Backward ReferencePicture flag setting
3491 This is a regression introduced by e829b62 which
3492 override the reference flags and caused issues with
3493 latest intel-vaapi-driver.
3495 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3497 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3498 libs: encoder: h265: fix code style
3499 Trivial patch to remove a double ';' as end of instruction.
3501 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3503 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3504 encoder: h264: Fix B frame encoding artifacts
3505 The current implementation is updating the POC values only
3506 in Slice parameter Buffer.But we are not filling the
3507 picture order count and reference flags in VAPictureH264
3508 while populating VA Picture/Slice structures.The latest
3509 intel-vaapi-driver is directly accessing the above fields
3510 from VAPicutreH264 provided as RefPicLists, which resulted
3511 some wrong maths and prediction errors in driver.
3512 https://bugzilla.gnome.org/show_bug.cgi?id=780620
3514 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3516 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3517 libs: encoder: h265: remove unused macro definition
3518 Since the h265 encoder doesn't use GValueArray, there is no need to
3519 disable the Glib deprecation warnings, thus removing the macro
3522 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3524 * gst/vaapi/gstvaapidecode.c:
3525 * gst/vaapi/gstvaapiencode.c:
3526 * gst/vaapi/gstvaapipostproc.c:
3527 * gst/vaapi/gstvaapisink.c:
3528 plugins: when debug disabled, default category is NULL
3529 As in gstreamer-vaapi a common base class is used, the specific
3530 default category is passed to the base-plugin initializator, thus
3531 the log messages are categorized with the used plugin.
3532 Nonetheless, when the gst-debug is disabled in compilation time,
3533 it is needed to pass NULL to the base-plugin initializator. This
3535 https://bugzilla.gnome.org/show_bug.cgi?id=780302
3537 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
3539 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3540 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3541 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
3542 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
3543 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
3544 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
3545 unit length and data to a bitwriter.
3546 Note that this helper function applies EPB (Emulation Prevention
3547 Bytes), since otherwise produced codec_data might be broken when
3548 decoder/parser considering EPB, starts parsing.
3549 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
3550 describes the emulation_prevention_three_byte.
3551 https://bugzilla.gnome.org/show_bug.cgi?id=778750
3552 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3554 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
3556 * gst-libs/gst/vaapi/Makefile.am:
3557 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3558 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3559 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
3560 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
3561 * gst-libs/gst/vaapi/meson.build:
3562 libs: utils: h26x: create vaapiutils_h26x
3563 Since there is duplicated code in h264/265 encoder, we could
3564 refactor it to avoid duplicated code.
3565 https://bugzilla.gnome.org/show_bug.cgi?id=778750
3566 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3568 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
3570 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3571 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3572 libs: encoder: h264/5: fix wrong return value
3573 https://bugzilla.gnome.org/show_bug.cgi?id=778750
3575 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
3577 * gst/vaapi/gstvaapiencode_h264.c:
3578 * gst/vaapi/gstvaapiencode_h265.c:
3579 docs: h264/h265: put parser to the example pipeline
3580 https://bugzilla.gnome.org/show_bug.cgi?id=778749
3582 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
3584 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3585 libs: encoder: h265: fix reserved length of bits
3586 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
3587 https://bugzilla.gnome.org/show_bug.cgi?id=778749
3589 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
3591 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
3592 * tests/test-display.c:
3593 O_CLOEXEC needs _GNU_SOURCE defined
3595 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
3596 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
3597 2.12, one can obtain their definitions by defining either
3598 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
3599 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
3600 2.11 and earlier, one obtains the definitions by defining
3602 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
3603 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
3604 gstreamer-vaapi with the uClibc C library.
3605 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
3606 https://bugzilla.gnome.org/show_bug.cgi?id=779953
3608 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3611 README: fix "Sources" section
3612 Update the URL where the release source tarballs can be downloaded.
3614 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
3617 README: fix "Reporting bugs" section
3618 The "Reporting bugs" section gives
3619 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
3620 link to report a bug, but this link says "Sorry, entering a bug into the
3621 product gstreamer-vaapi has been disabled.".
3622 This commit fixes the URL to point to the proper location, and also
3623 removes the following paragraph that is no longer correct.
3624 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
3625 https://bugzilla.gnome.org/show_bug.cgi?id=779954
3627 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3629 * gst/vaapi/gstvaapipluginutil.c:
3630 plugins: retry to create the VA display
3631 Particularly in GNOME Wayland, the negotiated or created GL context
3632 defines a GLX environment, but VAAPI fails to create a GLX VA
3633 display because there is no a DRI2 connection.
3634 This patch retries to create the VA display if VA cannot create one
3635 with the GL context parameters. Now using the old list of display
3637 This should also work in the case of systems with two GPU, when the
3638 non-VAAPI has the graphics environment, and the VAAPI-enabled one
3639 shall work headless.
3640 https://bugzilla.gnome.org/show_bug.cgi?id=772838
3642 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
3644 * gst/vaapi/gstvaapipostproc.c:
3645 vaapipostproc: texture upload if driver supports GL
3646 Removes GstVideoGLTextureUploadMeta caps feature if the driver
3647 doesn't support opengl.
3648 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3649 https://bugzilla.gnome.org/show_bug.cgi?id=772838
3651 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3653 * gst/vaapi/gstvaapidecode.c:
3654 vaapidecode: texture upload if driver supports GL
3655 When the allowed source pad caps are generated, the GLTextureUpload caps are
3656 only inserted if the driver support OpenGL.
3657 https://bugzilla.gnome.org/show_bug.cgi?id=772838
3659 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3662 configure: Add missing compiler flags
3663 The AC_CHECK_HEADERS macro was failing to locate some headers, in
3664 particular the va_enc_* headers due to missing compiler flags.
3665 https://bugzilla.gnome.org/show_bug.cgi?id=779101
3666 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3668 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
3670 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3671 libs: window: wayland: handle more VAStatus to use vpp
3672 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
3673 we should consider more returned VAStatus to use vpp.
3674 https://bugzilla.gnome.org/show_bug.cgi?id=779400
3676 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
3678 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3679 libs: encoder: ensure profile when context initialization
3680 We can't be sure that encoder's profile is assgined already or not
3681 at context initialization.
3682 https://bugzilla.gnome.org/show_bug.cgi?id=779120
3684 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
3686 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3687 libs: encoder: set rate control info only when query succeed
3688 Currently, it set rate control information even when query fails.
3689 In addition, it doesn't update any more since the flag
3690 got_rate_control_mask is set to TRUE.
3691 https://bugzilla.gnome.org/show_bug.cgi?id=779120
3693 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
3696 meson: Update version
3698 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
3703 === release 1.11.2 ===
3705 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
3710 * gstreamer-vaapi.doap:
3713 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3715 * gst/vaapi/gstvaapiencode.c:
3716 vaapiencode: merge tags for downstream's info
3717 Add encoder and codec name and the bitrate into the output for
3718 informational purposes. Some muxers or application use it as
3720 https://bugzilla.gnome.org/show_bug.cgi?id=778781
3722 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3724 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3725 libs: encoder: caps can change at any time
3726 The encoder should be able to change its caps even it is already
3727 processing a stream.
3728 This is suppose to happen after a flush so the codedbuf_queue should
3730 https://bugzilla.gnome.org/show_bug.cgi?id=775490
3732 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3734 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3735 libs: encoder: h265: bail if nal unit type fails
3736 Bail out if the NAL unit type is not recognized.
3737 https://bugzilla.gnome.org/show_bug.cgi?id=778782
3739 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3741 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3742 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3743 libs: decoder: h264,h265 avoid uninitialized variable
3744 Configuring GCC to verify possible usage of uninitialized variables,
3745 shows that found_index might be used without previous assignation.
3746 This patch assigns a initial value to found_index, also avoid a
3747 branching when returning the result value.
3748 https://bugzilla.gnome.org/show_bug.cgi?id=778782
3750 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
3753 * gst-libs/gst/vaapi/Makefile.am:
3754 * gst/vaapi/gstvaapidecode.c:
3755 * gst/vaapi/gstvaapidecodebin.c:
3756 build: rename USE_HEVC_DECODER to USE_H265_DECODER
3757 Rename to be consistent with H.264 and also H.265 encoder. The
3758 meson build assumed this was already consistently named, and so
3759 previously was not able to actually build the H.265 decoder.
3760 https://bugzilla.gnome.org/show_bug.cgi?id=778576
3762 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
3765 meson: gstreamer-codecparsers is a required dep
3766 Just like in configure.ac.
3768 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
3771 meson: dist meson build files
3772 Ship meson build files in tarballs, so people who use tarballs
3773 in their builds can start playing with meson already.
3775 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
3777 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3778 libs: encoder: vp8: add CBR encoding mode
3779 This patch enables the Constant BitRate encoding mode in VP8 encoder.
3780 Basically it adds the configuration parameters required by libva to
3782 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3783 https://bugzilla.gnome.org/show_bug.cgi?id=749950
3785 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
3787 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3788 libs: encoder: vp8: fix bitrate calculation
3789 Base encoder's unit of bitrate is in Kbps. We should honor it so
3790 we use the value of bitrate in VA, in which is expressed in bps.
3791 https://bugzilla.gnome.org/show_bug.cgi?id=749950
3793 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3795 * gst/vaapi/gstvaapipluginbase.c:
3796 plugins: fix build when gcc
3797 In commit a8e482f9 we added a function without parameters, but gcc
3800 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
3802 * gst-libs/gst/base/meson.build:
3803 * gst-libs/gst/meson.build:
3804 * gst-libs/gst/vaapi/meson.build:
3805 * gst-libs/meson.build:
3807 * gst/vaapi/meson.build:
3809 * meson_options.txt:
3810 vaapi: add meson build
3811 https://bugzilla.gnome.org/show_bug.cgi?id=778250
3813 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
3816 * gst-libs/gst/vaapi/Makefile.am:
3817 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3818 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
3819 make: remove gstvaapiversion.h generation
3820 https://bugzilla.gnome.org/show_bug.cgi?id=778250
3822 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
3824 * gst/vaapi/gstvaapipluginbase.c:
3825 plugins: use linear storage if not the same device
3826 When dmabuf is negotiated downstream and decoding and rendering are
3827 not done on the same device, the layout has to be linear in order for
3828 the memory to be shared accross devices, since each device has its
3829 own way to do tiling.
3830 Right now this code is rather just a to-do comment, since we are not
3831 fetching the device ids.
3832 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3834 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
3836 * gst-libs/gst/vaapi/gstvaapiutils.c:
3837 libs: utils: add HEVC profiles representation
3838 https://bugzilla.gnome.org/show_bug.cgi?id=778318
3840 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
3842 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3843 libs: decoder: h264: reduce frame number of gaps
3844 Reduce frame num gaps so that we don't have to create unnecessary
3845 dummy pictures, just throw them away.
3846 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3847 https://bugzilla.gnome.org/show_bug.cgi?id=777506
3849 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3851 * gst/vaapi/gstvaapidecode.c:
3852 vaapidecode: don't GLTextureUpload if dmabuf
3853 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
3854 element can handle dmabuf-based buffers, avoiding its negotiation.
3856 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
3858 * gst/vaapi/gstvaapidecode.c:
3859 vaapidecode: make pool to export decoder's surface
3860 Use new -base API gst_video_decoder_allocate_output_frame_full() to
3861 pass the current proxy/surface to the pool.
3862 The pool will will export thins given surface instead of exporting a
3863 brand new surface that will never be filled in with meaningfull data.
3864 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3866 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3868 * gst/vaapi/gstvaapipluginbase.c:
3869 plugins: decoder can negotiate dmabuf downstream
3871 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
3873 * gst/vaapi/gstvaapivideobufferpool.c:
3874 vaapivideobufferpool: override acquire_buffer()
3875 Overriding the vmethod acquire_buffer() it is possible to attach the
3876 right GstMemory to the current acquired buffer.
3877 As a matter of fact, this acquired buffer may contain any instantiated
3878 GstFdmemory, since this buffer have been popped out from the buffer
3879 pool, which is a FIFO queue. So there is no garantee that this buffer
3880 matches with the current processed surface. Evenmore, the VA driver
3881 might not use a FIFO queue. Therefore, it is no way to guess on the
3883 In short, acquire_buffer on the VA driver and on the buffer pool return
3884 none matching data, we have to manually attach the right GstFdMemory to
3885 the acquired GstBuffer. The right GstMemory is the one associated with
3886 the current surface.
3887 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3889 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
3891 * gst/vaapi/gstvaapivideobufferpool.c:
3892 * gst/vaapi/gstvaapivideomemory.c:
3893 vaapivideomemory: export surface if it is provided
3894 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
3895 had to create that surface. Now it can also export an already provided
3896 surface. It is useful to export decoder's surfaces (from VA context).
3897 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3899 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
3901 * gst/vaapi/gstvaapivideobufferpool.h:
3902 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
3903 Useful to let the pool know the current surface proxy when calling
3904 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
3905 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3907 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
3909 * gst-libs/gst/vaapi/gstvaapisurface.c:
3910 * gst-libs/gst/vaapi/gstvaapisurface.h:
3911 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
3912 These functions are useful when a dmabuf-based memory is instantiated in
3913 order to relate the generated buffer @proxy with the processed @surface.
3914 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3916 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
3918 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3919 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
3920 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3921 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
3922 This patch adds a GstMemory as a variable member of the buffer proxy,
3923 because we will need to associate the buffer proxy with the memory
3924 which exposes it. Later, we will know which memory, in the video buffer
3925 pool, is attached to the processed surface.
3926 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3928 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
3930 * gst/vaapi/gstvaapipostproc.c:
3931 vaapipostproc: don't GLTextureUpload if dmabuf
3932 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
3933 element can handle dmabuf-based buffers, avoiding its negotiation.
3934 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
3935 feature if can dmabuf"
3936 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3938 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3940 * gst/vaapi/gstvaapipluginbase.c:
3941 plugins: enable DMAbuf allocator to downstream
3942 If the negotiated caps are raw caps and downstream supports the
3943 EGL_EXT_image_dma_buf_import extension, then the created allocator
3944 is the DMAbuf, configured to downstream.
3945 At this moment, the only element which can push dmabuf-based buffers
3946 to downstream, is vaapipostproc.
3948 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3950 * gst/vaapi/gstvaapipluginbase.c:
3951 * gst/vaapi/gstvaapipluginbase.h:
3952 plugins: check if negotiate dmabuf with downstream
3953 In order to enable, in the future, dmabuf-based buffers, the vaapi base
3954 plugin needs to check if downstream can import dmabuf buffers.
3955 This patch checks if downstream can handle dmabuf, by introspecting the
3956 shared GL context. If the GL context is EGL/GLES2 and have the extension
3957 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
3958 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
3960 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
3962 * gst/vaapi/gstvaapivideomemory.c:
3963 vaapivideomemory: release proxy's data if downstream
3964 The surface created for downstream is going to be filled by VAAPI
3965 elements. So, the driver needs write access on that surface.
3966 This patch releases the derived image held by the proxy, thus the
3967 surface is unmarked as busy.
3968 This is how it has to be done as discussed on libva mailing list.
3969 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3971 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
3973 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3974 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
3975 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
3976 Adds an API to request the user's data release in the buffer proxy.
3977 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3979 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
3981 * gst/vaapi/gstvaapipluginbase.c:
3982 * gst/vaapi/gstvaapivideomemory.c:
3983 * gst/vaapi/gstvaapivideomemory.h:
3984 vaapivideomemory: add direction to dmabuf allocator
3985 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
3986 we later could do different thing when the allocated memory is for
3987 upstream or dowstream, as required by VA-API.
3988 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3990 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
3992 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
3993 libs: utils: return NULL if failed to get surface formats
3994 Thus, when generating the allowed caps, the element will throw a
3995 warning and it will use its caps template.
3996 This behavior might be a bug in the VA driver.
3997 https://bugzilla.gnome.org/show_bug.cgi?id=775490
3999 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4001 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4002 Revert "vaapidisplay: mark X11 display as compatible with EGL"
4003 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
4005 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
4007 * gst/vaapi/gstvaapipostproc.c:
4008 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
4009 A value of width/height property should be set to out caps,
4010 if negotiation had been going properly.
4011 So we can use srcpad_info when making decision of scaling.
4012 https://bugzilla.gnome.org/show_bug.cgi?id=778010
4014 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4016 * gst/vaapi/gstvaapidecode.c:
4017 * gst/vaapi/gstvaapiencode.c:
4018 * gst/vaapi/gstvaapipluginutil.c:
4019 * gst/vaapi/gstvaapipluginutil.h:
4020 * gst/vaapi/gstvaapipostproc.c:
4021 * gst/vaapi/gstvaapisink.c:
4022 plugins: handle GL params through context query
4023 If the element instantiated the GL display and context, they should
4024 handle them too through the context query.
4025 https://bugzilla.gnome.org/show_bug.cgi?id=777409
4027 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4029 * gst/vaapi/gstvaapipluginbase.c:
4030 * gst/vaapi/gstvaapipluginbase.h:
4031 * gst/vaapi/gstvaapipluginutil.c:
4032 plugins: create a GL context on certain conditions
4033 If a GstVaapiDisplay is not found in the GStreamer context sharing,
4034 then VAAPI elements look for a local GstGLContext in gst context
4035 sharing mechanism ('gst.gl.local.context').
4036 If this GstGLContext not found either then, only the VAAPI decoders
4037 and the VAAPI post-processor, will try to instantiate a new
4039 If a valid GstGLContext is received, then a new GstVaapiDisplay will
4040 be instantiated with the platform, API and windowing specified by the
4041 instantiated GstGLContext.
4042 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
4043 https://bugzilla.gnome.org/show_bug.cgi?id=777409
4045 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4047 * gst/vaapi/gstvaapivideocontext.c:
4048 vaapivideocontext: context type can be rejected
4049 Instead of calling g_return_val_if_fail() to check the context type, we
4050 should use a normal conditional, since it is possible that other context types
4051 can arrive and try to be assigned. Otherwise a critical log message is
4053 This happens when we use playbin3 with vaapipostproc as video-filter.
4054 https://bugzilla.gnome.org/show_bug.cgi?id=777409
4056 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4058 * gst/vaapi/gstvaapipostprocutil.c:
4059 vaapipostproc: use sink caps par if not requested
4060 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
4062 https://bugzilla.gnome.org/show_bug.cgi?id=777395
4064 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4066 * gst/vaapi/gstvaapipostproc.c:
4067 * gst/vaapi/gstvaapipostprocutil.c:
4068 vaapipostproc: set interlace mode
4069 if the vaapipostproc is configured to not do deinterlacing, the
4070 interlace-mode in the src caps should be the same as the input caps.
4071 https://bugzilla.gnome.org/show_bug.cgi?id=777395
4073 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4075 * gst/vaapi/gstvaapisink.c:
4076 vaapisink: fix gcc compiler warning
4077 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
4079 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4081 * gst/vaapi/gstvaapisink.c:
4082 vaapisink: don't use member variable outside lock
4083 Thus a race condition segfault is avoided.
4084 Original-patch-by: Matt Staples <staples255@gmail.com>
4085 https://bugzilla.gnome.org/show_bug.cgi?id=777146
4087 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4089 * gst/vaapi/gstvaapipluginbase.c:
4090 * gst/vaapi/gstvaapipostproc.c:
4091 plugins: avoid log flood when activating pool
4092 Every time a new buffer is allocated, the pool is activated. This
4093 doesn't impact in performance since gst_buffer_pool_set_active()
4094 checks the current state of the pool. Nonetheless it logs out a
4095 message if the state is the same, and it floods the logging subsystem
4097 To avoid this log flooding first the pool state is checked before
4100 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4102 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4103 * gst-libs/gst/vaapi/gstvaapidecoder.h:
4104 * gst/vaapi/gstvaapidecode.c:
4105 * gst/vaapi/gstvaapidecode.h:
4106 vaapidecode: update internal decoder sink caps
4107 When a new sink caps arrive the internal decoder state is updated
4108 and, if it is, request a downstream renegotiation.
4109 Previously, when new caps arrived the whole decoder where destroyed
4110 and recreated. Now, if the caps are compatible or has the same codec,
4111 the internal decoder is kept, but a downstream renegotiation is
4113 https://bugzilla.gnome.org/show_bug.cgi?id=776979
4115 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
4120 === release 1.11.1 ===
4122 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
4127 * gstreamer-vaapi.doap:
4130 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4132 * gst-libs/gst/vaapi/gstvaapiutils.c:
4133 vaapi: bump ifdef to API 0.40.0 for log redirect
4134 vaSetInfoCallback() is not released yet. It is going to appear in
4137 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
4139 * gst-libs/gst/vaapi/gstvaapiutils.c:
4140 vaapiutils: Fix compilation with latest and previous libva releases
4141 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
4144 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4146 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4147 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
4148 * gst-libs/gst/vaapi/gstvaapiutils.c:
4149 * gst-libs/gst/vaapi/gstvaapiutils.h:
4150 libs: display: redirect logging at initialize
4151 Redirect libva's logs to GStreamer logging mechanism. This is
4152 particularly useful when VA is initialized, because it always logs
4153 out the drivers details.
4154 In order to achieve this a new helper function was added as a wrapper
4155 for the vaInitialize() function.
4156 https://bugzilla.gnome.org/show_bug.cgi?id=777115
4158 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
4160 * gst/vaapi/gstvaapipluginbase.c:
4161 plugins: provide at least two buffers in sink pool
4162 Adds two buffers as the default value of minimum buffer.
4163 This would be used when creating and proposing vaapi bufferpool for
4164 sink pad, hence the upstream element will keep, at least, these two
4166 https://bugzilla.gnome.org/show_bug.cgi?id=775203
4167 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4169 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
4171 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4172 libs: decoder: h264: don't update cloned attributes
4173 If the frame is a cloned picture, its PTS comes from its parent
4174 picture. In addition, the base decoder doesn't set a valid PTS to
4175 the frame corresponding to the cloned picture.
4176 https://bugzilla.gnome.org/show_bug.cgi?id=774254
4178 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4180 * gst/vaapi/gstvaapivideomemory.c:
4181 vaapivideomemory: check for display
4182 This patch fixes the check of display, rather than check for the
4183 meta, which it is known it exists.
4185 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4187 * gst/vaapi/gstvaapivideomemory.c:
4188 * gst/vaapi/gstvaapivideomemory.h:
4189 vaapivideomemory: rename dmabuf allocator parameters
4190 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
4191 'surface_alloc_flags' respectively. The purpose of this change is
4192 to auto-document those parameters.
4193 Also, aligned to this patch, the local 'alloc_info' variable was
4194 renamed as 'surface_info', because it stores the possible surface's
4195 video info, not the allocate one.
4197 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4199 * gst/vaapi/gstvaapivideomemory.c:
4200 * gst/vaapi/gstvaapivideomemory.h:
4201 vaapivideomemory: rename vip to alloc_info parameter
4202 In order to auto-document the code, this patch renames the 'vip'
4203 parameter in the functions related to gst_vaapi_video_allocator_new ()
4204 to 'alloc_info', since it declares the allocation video info from
4205 the vaapi buffer pool.
4207 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4209 * gst/vaapi/gstvaapivideomemory.c:
4210 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
4211 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
4212 the video format string.
4214 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4216 * gst/vaapi/gstvaapivideomemory.c:
4217 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
4218 gst_vaapi_surface_new_with_format() is a wrapper for
4219 gst_vaapi_surface_new_full (). In this case, the former is simpler
4220 than the first. This patch changes that.
4222 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
4224 * gst/vaapi/gstvaapipostproc.c:
4225 vaapipostproc: notify if src pad caps changed
4226 If src pad caps have changed, it needs to notify it downstream. In
4227 addition, do not set passthrough if they have changed.
4228 Otherwise, transform sometimes starts processing before caps change.
4229 The passthrough value will be set in fixate later in this case.
4230 https://bugzilla.gnome.org/show_bug.cgi?id=775204
4232 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4234 * gst/vaapi/gstvaapidecodebin.c:
4235 vaapidecodebin: capsfilter to optimize negotiation
4236 Add a capsfilter forcing the caps
4237 "video/x-raw(memory:VASurface), format=(string)NV12" between the
4238 queue and the vaapipostproc so no renegotiation is required.
4239 https://bugzilla.gnome.org/show_bug.cgi?id=776175
4241 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
4243 * gst/vaapi/gstvaapivideomemory.c:
4244 vaapivideomemory: fail surface/image configuration
4245 To detect and handle errors during allocator_configure_surface_info()
4246 and allocator_conigure_image_info().
4247 https://bugzilla.gnome.org/show_bug.cgi?id=776084
4248 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4250 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
4252 * gst/vaapi/gstvaapisink.c:
4253 vaapisink: ensures raw caps at start()
4254 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
4255 race conditions at get_caps(), especially with multiple src elements.
4256 https://bugzilla.gnome.org/show_bug.cgi?id=776303
4258 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4260 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
4261 libs: surface: fix error handling code style
4263 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4265 * gst/vaapi/gstvaapivideomemory.c:
4266 vaapivideomemory: add gst_video_info_update_from_surface()
4267 With this function is possible to refactor and remove duplicated code
4268 between dmabuf configuration and direct rendering/uploading
4271 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4273 * gst/vaapi/gstvaapivideomemory.c:
4274 vaapivideomemory: no log object at initialization
4275 When an instance of GstVaapiVideoAllocator fails at initializing, the
4276 log message should not include the allocator's object, because it is
4277 going to be unrefed.
4279 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4281 * gst/vaapi/gstvaapidecode.c:
4282 vaapidecode: lock stream when setting caps
4284 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4286 * gst/vaapi/gstvaapidecode.c:
4287 Revert "vaapidecode: implement negotiate() vmethod"
4288 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
4289 videodecode's negotiate() vmethod is also called when events arrive,
4290 but this would mean that the proper configuration of sink pad might
4291 not be complete, thus we should not update the src pad.
4292 Let's keep the old non-vmethod negotitate().
4294 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4296 * gst/vaapi/gstvaapi.c:
4297 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
4298 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
4300 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
4302 * gst/vaapi/gstvaapiencode.c:
4303 * gst/vaapi/gstvaapiencode.h:
4304 vaapiencode: get surface formats in get_caps()
4305 Query for the supported surface formats in config at get_caps() vmethod.
4306 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4307 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4309 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
4311 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4312 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4313 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
4314 This method will return the valid surface formats in the current
4315 config. If the are no VAConfig it is created with the information
4317 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4318 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4320 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
4322 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4323 libs: encoder: split set_context_info()
4324 Split set_context_info() adding init_context_info() which only
4325 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
4326 required for VAConfig.
4327 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4328 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4330 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
4332 * gst-libs/gst/vaapi/gstvaapicontext.c:
4333 libs: context: skip VAContext if no frame size
4334 If GstVaapiContextInfo has just initial information, without frame's
4335 width and height, skip the creation of the VAContext, just keep the
4337 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4338 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4340 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
4342 * gst-libs/gst/vaapi/gstvaapicontext.c:
4343 libs: context: split context_create()
4344 Split the funcion context_create() into context_create() and
4346 Decoupling VAConfig and VAContext during context creation, we could
4347 query the VAConfig for the supported surface's formats without creating
4349 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4351 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4353 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
4354 libs: drm: find render node in hybrid system
4355 Originally the drm backend only tried to open the first render node
4356 found. But in hybrid system this first render node might not support
4357 VA-API (propietary Nvidia driver, for example).
4358 This patch tries all the available nodes until a finding one with a
4359 VA-API supported driver.
4360 https://bugzilla.gnome.org/show_bug.cgi?id=774811
4361 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
4362 Reza Razavi <reza@userful.com>
4364 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4366 * gst/vaapi/gstvaapivideomemory.c:
4367 vaapivideomemory: refactor code for readability
4368 Added the inlined function allocator_configure_pools() moving out code
4369 from gst_vaapi_video_allocator_new() to make clear that it is a
4370 post-initalization of the object.
4372 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4374 * gst/vaapi/gstvaapivideomemory.c:
4375 vaapivideomemory: log error if not VA image
4376 Log an error message if the test image for surface downloading
4377 cannot be allocated or mapped.
4379 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4381 * gst/vaapi/gstvaapivideomemory.c:
4382 vaapivideomemory: remove unused macros
4383 These macros are not used. Let us remove them.
4385 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4387 * gst/vaapi/gstvaapivideomemory.c:
4388 * gst/vaapi/gstvaapivideomemory.h:
4389 vaapivideomemory: rename video for allocation_info
4390 Since video_info stores the GstVideoInfo of the allocation caps,
4391 it is clear if we rename it as allocation_info, to distinguish it
4392 later from negotiation_info.
4394 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
4396 * gst/vaapi/gstvaapivideomemory.c:
4397 * gst/vaapi/gstvaapivideomemory.h:
4398 vaapivideomemory: add real GstVaapiDmaBufAllocator
4399 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
4400 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
4401 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
4402 from GstDmaBufAllocator.
4403 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4404 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4406 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
4408 * gst/vaapi/gstvaapivideomemory.c:
4409 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
4410 Add a helper function to initialize the gst_debug_vaapivideomemory,
4411 to use it either by the GstVaapiVideoAllocatorClass or
4412 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
4413 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
4414 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4416 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
4418 * gst/vaapi/gstvaapiencode.c:
4419 vaapiencode: release internal encoder at stop()
4420 As the internal encoder is created at start(), let's release it at
4421 stop() vmethod, to be consistent.
4422 gst_vaapiencode_destroy() is called since it also resets the input and
4423 output states, which is something that the base class does internally
4424 after calling stop() vmethod.
4425 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4426 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4428 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
4431 Automatic update of common submodule
4432 From f49c55e to 39ac2f5
4434 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
4436 * gst/vaapi/gstvaapiencode.c:
4437 vaapiencode: call ensure_encoder() at start()
4438 Currently, specific encoder is created during set_format(). This might
4439 lead to race condition when creating profiles with multiple encoders.
4440 This patch moves ensure_encoder() call to start() vmethod to ensure
4441 avoiding the race condition.
4442 https://bugzilla.gnome.org/show_bug.cgi?id=773546
4444 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4446 * gst/vaapi/gstvaapidecodebin.c:
4447 vaapidecodebin: bring back dynamic configuration
4448 In commit ca0c3fd6 we remove the dynamic configuration if the bin
4449 because we assumed that the bin will be always static as it is
4451 Nonetheless we were wrong, because it is possible to request, with a
4452 property, to avoid the use of the post-processor.
4453 Since we want to add a way to disable the post-processor through
4454 environment variables, this remove feature is required again.
4455 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
4456 postprocessor inside of the vaapidecodebin is disabled, then
4457 vaapidecodebin is an alias of the old vaapidecode.
4458 https://bugzilla.gnome.org/show_bug.cgi?id=775041
4460 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4462 * gst/vaapi/gstvaapidecode.c:
4463 vaapidecode: implement negotiate() vmethod
4464 Instead of decorating the negotiate() method, let us override it,
4465 so the stream is locked while called.
4466 https://bugzilla.gnome.org/show_bug.cgi?id=775040
4468 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
4471 common: use https protocol for common submodule
4472 https://bugzilla.gnome.org/show_bug.cgi?id=775110
4474 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
4476 * gst-libs/gst/vaapi/Makefile.am:
4477 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
4478 In case libva-wayland has its headers not installed in default
4479 locations (like /usr/include), the build fails to include "wayland-client.h":
4480 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
4481 In file included from gstvaapidisplay_wayland.h:27:0,
4482 from gstvaapidisplay_egl.c:35:
4483 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
4484 #include <wayland-client.h>
4485 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
4486 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
4487 for libva-wayland.pc in configure and use this in other places as well. It is thus only
4488 correct and consequent, to do it also at this spot.
4489 https://bugzilla.gnome.org/show_bug.cgi?id=773946
4491 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4493 * gst/vaapi/gstvaapivideocontext.c:
4494 vaapivideocontext: log a message if no bus
4495 Raise a warning if there is no bus when the element tries to post a
4498 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4500 * gst/vaapi/gstvaapisink.c:
4501 vaapisink: create display at open()
4502 Instead of creating the VA display before setting the bus to the
4503 element, it is created when the element is opened.
4504 Basically, this commit is a revert of
4505 5e5d62cac79754ba60057fc2516135aad8d7de35
4506 That was done when the GStreamer's context sharing was not mature
4507 enough as now. There is no reason to keep this hack.
4509 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4511 * gst/vaapi/gstvaapidecode.c:
4512 vaapidecode: don't add video crop meta
4513 Since the differentiation of negotiation caps and allocation caps,
4514 there is no need to add a video crop meta with the negotiation caps.
4516 https://bugzilla.gnome.org/show_bug.cgi?id=773948
4518 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4520 * gst/vaapi/gstvaapivideobuffer.c:
4521 * gst/vaapi/gstvaapivideometa.c:
4522 * gst/vaapi/gstvaapivideometa.h:
4523 remove the video converter from vaapi buffer meta
4524 Since all the video converter were deprecated in gstreamer-1.2, we don't need
4525 to handle them anymore in the vaapi's buffer meta.
4526 This patch removes its usage and the buffer meta's API for that.
4527 https://bugzilla.gnome.org/show_bug.cgi?id=745728
4529 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4531 * gst/vaapi/gstvaapipluginbase.c:
4532 plugins: destroy source pad allocator and pool
4533 First, deactivate source pad pool when the out caps change, and if so,
4534 destroy texture map, the source pad allocator and pool only if the
4535 new caps are different from the ones already set.
4537 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4539 * gst/vaapi/gstvaapipluginbase.c:
4540 plugins: don't destroy sink pad allocator
4541 Don't destroy sink pad allocator at _set_caps() because it will be done at
4542 ensure_sinkpad_buffer_pool() if it is required.
4544 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4546 * gst/vaapi/gstvaapipluginbase.c:
4547 plugins: first validate the out caps
4548 When calling _set_caps() first validate the out caps before doing
4551 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4553 * gst/vaapi/gstvaapidecode.c:
4554 vaapidecode: negotiate after destroying allocator
4555 This is related with bug 758907 when no vaapipostproc is used (no
4556 vaapidecodebin). In order to negotiate downstream we need to destroy
4557 the source pad allocator, otherwise the same allocated buffers are
4558 used, failing the mapping.
4560 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4562 * gst/vaapi/gstvaapivideomemory.c:
4563 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
4564 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
4565 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
4567 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4569 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4571 * gst/vaapi/gstvaapipluginbase.c:
4572 plugins: update the src pad allocator video info
4573 Update the size, stride and offset of the source pad allocator video
4574 info, so the pool could set the correct GstVideoMeta
4575 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4577 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4579 * gst/vaapi/gstvaapivideomemory.c:
4580 vaapivideomemory: add missing documentation
4581 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4583 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4585 * gst/vaapi/gstvaapipluginbase.c:
4586 plugins: use early return without goto
4587 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4589 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4591 * gst/vaapi/gstvaapipluginbase.c:
4592 * gst/vaapi/gstvaapivideomemory.c:
4593 * gst/vaapi/gstvaapivideomemory.h:
4594 plugins: add allocator to allocation query
4595 This patch adds the created allocator to the allocation query either
4596 in decide_allocation() and propose_allocation() vmehtods.
4597 With it, there's no need to set the modified allocator's size in the
4599 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4601 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
4603 * gst/vaapi/gstvaapivideobufferpool.c:
4604 vaapivideobufferpool: set correct buffer size
4605 We should set the correct buffer size when we are configuring the pool,
4606 otherwise the buffer will be discarded when it returns to the pool.
4607 Indeed when the ref-count of a buffer reaches zero, its pool will queue
4608 it back (and ref it) if, and only if, the buffer size matches the
4609 configured buffer size on the pool.
4610 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
4611 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4613 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4615 * gst/vaapi/gstvaapivideomemory.c:
4616 vaapivideomemory: check for memory allocator
4617 When calling gst_vaapi_video_memory_copy() the allocator of the memory
4618 to copy should be allocated by the vaapi allocator.
4619 This patch does this verification.
4621 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4623 * gst/vaapi/gstvaapivideomemory.c:
4624 vaapivideomemory: code style fixes
4625 A cosmetic commit for enhance readability of the casts and method
4628 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4630 * gst/vaapi/gstvaapivideomemory.c:
4631 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
4632 Instead of having a gst_vaapi_video_memory_free() that is only going to
4633 be called by gst_vaapi_video_allocator_free(), let's just remove the first
4634 and merged into the second.
4636 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4638 * gst/vaapi/gstvaapivideomemory.c:
4639 vaapivideomemory: avoid virtual methods casting
4640 Use the expected virtual method signatures for readability.
4642 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4644 * gst/vaapi/gstvaapivideomemory.c:
4645 vaapivideomemory: remove unimplemented methods
4646 Remove unimplemented method for allocator mem_share() and mem_is_span().
4648 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4650 * gst/vaapi/gstvaapivideomemory.c:
4651 vaapivideomemory: fail if frame map can't get plane
4652 If map() vmethod in GstVideMeta cannot get the plane data, return false,
4653 thus the caller will not try to read invalid memory.
4654 https://bugzilla.gnome.org/show_bug.cgi?id=774213
4656 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4658 * gst/vaapi/gstvaapivideomemory.c:
4659 * gst/vaapi/gstvaapivideomemory.h:
4660 vaapivideomemory: lock map and unmap operations
4661 In order to avoid race condition when two threads call map/unmap the same
4662 VA surface, this patch mutex these operations.
4663 https://bugzilla.gnome.org/show_bug.cgi?id=774213
4665 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4667 * gst/vaapi/gstvaapivideomemory.c:
4668 vaapivideomemory: refactor vaapi memory unmapping
4669 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
4670 gst_vaapi_video_memory_unmap() when unmapping.
4671 This patch refactors both methods adding the common function
4672 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
4674 Additionally, only when mapping flag has the WRITE bit, it set the image as
4675 current, which was done in gst_video_meta_map_vaapi_memory() but no in
4676 gst_vaapi_video_memory_map().
4677 In order to make this, the mapping flags were required, so instead of
4678 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
4679 https://bugzilla.gnome.org/show_bug.cgi?id=774213
4681 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4683 * gst/vaapi/gstvaapivideomemory.c:
4684 vaapivideomemory: refactor vaapi memory mapping
4685 There were duplicated code in gst_video_meta_map_vaapi_memory() and
4686 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
4687 This patch refactors both methods adding the common function
4689 Additionally, only when flag has the READ bit it calls
4690 ensure_images_is_current(), which was done in
4691 gst_video_meta_map_vaapi_memory() but no in
4692 gst_vaapi_video_memory_map().
4693 https://bugzilla.gnome.org/show_bug.cgi?id=772151
4695 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4697 * gst/vaapi/gstvaapidecode.c:
4698 vaapidecode: unref allowed_sinkpad_caps at close()
4699 The variable member allowed_sinkpad_caps is constructed querying the
4700 current VA display. Bearing that in mind, the variable shall be freed
4701 when the VA display changes or is removed.
4702 This patch moves the freeing of allowed_sinkpad_caps to close(), when
4703 the VA display is freed.
4705 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
4707 * gst/vaapi/gstvaapisink.c:
4708 vaapisink: finish event thread at stop()
4709 The thread that handles window's events should be finished during
4710 pipeline's shutdown, otherwise it will remain alive during pipeline
4711 re-activation, leading to unexpected problems.
4712 This patch fixes failures of intensive_state_change scenario of
4714 https://bugzilla.gnome.org/show_bug.cgi?id=774241
4716 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4718 * gst/vaapi/gstvaapipostproc.c:
4719 vaapipostproc: enhance debug message
4720 "gst_pad_push" is not a good description of the event.
4722 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
4724 * gst/vaapi/gstvaapipostproc.c:
4725 postproc: honor gst_pad_push() return value
4726 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
4727 deadlock during seek.
4728 This patch returns the same error of gst_pad_push() and log out the
4730 https://bugzilla.gnome.org/show_bug.cgi?id=774030
4732 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4734 * gst/vaapi/gstvaapidecode.c:
4735 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
4736 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
4737 compiled with out EGL/GLX support: it shall not support
4738 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
4739 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
4740 allowed src caps for vaapedecode if EGL/GLX.
4742 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4744 * gst/vaapi/gstvaapivideomemory.c:
4745 vaapivideomemory: increment map counter only if succeeded
4746 Previously the frame map counter increased independently if the map succeeded
4747 or not. This leaded to critical messages and crashes if the frame was unable
4748 to be mapped, but the counter increased.
4749 This patch increases the map counter only if the map operation occurred.
4750 https://bugzilla.gnome.org/show_bug.cgi?id=773939
4752 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4754 * gst/vaapi/gstvaapipluginbase.c:
4755 plugins: set negotiation caps in src allocator
4756 When the allocator is created, it stores the allocation caps. But sometimes
4757 the "allocation caps" may be different from the "negotiation caps".
4758 In this case, the allocator should store the negotiation caps since they
4759 are the ones used for frame mapping with GstVideoMeta.
4760 When vaapispostproc is used, this is not a problem since the element is assume
4761 to resize. But when using a vaapi decoder only, with a software renderer, it
4763 https://bugzilla.gnome.org/show_bug.cgi?id=773323
4765 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4767 * gst/vaapi/gstvaapidecode.c:
4768 * gst/vaapi/gstvaapidecode.h:
4769 vaapidecode: generate source pad caps
4770 Just as vaapipostproc, VA decoder's context can be queried to get the possible
4771 raw formats, so, the src caps can negotiate the exact caps that the context
4774 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4776 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4777 * gst-libs/gst/vaapi/gstvaapidecoder.h:
4778 libs: decoder: add _get_surface_formats()
4779 This function exposes the available formats of the surfaces in the the current
4780 context to the plugins.
4782 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4784 * gst-libs/gst/vaapi/gstvaapicontext.c:
4785 * gst-libs/gst/vaapi/gstvaapicontext.h:
4786 libs: context: ensure context formats
4787 This patch ensures to get the formats, as filter does, available in the
4788 decoder / encoder context.
4789 The context fills up the array as soon it is created, otherwise the pipeline
4790 could get stalled (perhaps this is a bug in my HSW backend).
4791 https://bugzilla.gnome.org/show_bug.cgi?id=752958
4793 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4795 * gst-libs/gst/vaapi/gstvaapifilter.c:
4796 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4797 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4798 libs: move get_surface_formats to utils_core
4799 The query of all the supported formats for a VA config were only used by the
4800 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
4801 negotiate a suitable raw format with downstream, we need to query these
4802 formats against the decoder's config.
4803 This patch is the first step: moves the code in filter's ensure_image() to a
4804 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
4805 shared later by the decoder.
4806 https://bugzilla.gnome.org/show_bug.cgi?id=752958
4808 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4810 * gst/vaapi/gstvaapipluginbase.c:
4811 plugins: remove set_sinkpad_dmabuf_allocator()
4812 Since when the sink pad allocator is created, it is decided if the required
4813 one is vaapi allocator or dmabuf allocator, there is no need to force its set
4816 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4818 * gst/vaapi/gstvaapipluginbase.c:
4819 plugins: ensure display when getting raw caps
4820 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
4821 meanwhile it is transforming caps. The problem is that stop() calls
4822 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
4823 the va display is used in tranform_caps() when it is extracting the possible
4824 format conversions. This display disappearing generates warning messages.
4825 This patch holds a local reference of va display at ensure_allowed_raw_caps()
4826 hence it doesn't go away meanwhile it is used, even if the
4827 gst_vaapi_plugin_base_close() is called in other thread.
4828 https://bugzilla.gnome.org/show_bug.cgi?id=773593
4830 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4832 * gst/vaapi/gstvaapiencode_h264.c:
4833 * gst/vaapi/gstvaapiencode_h265.c:
4834 plugins: fix code style for errors
4836 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4838 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4839 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
4840 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
4841 * gst-libs/gst/vaapi/gstvaapicontext.c:
4842 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
4843 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4844 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
4845 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4846 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4847 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
4848 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
4849 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
4850 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
4851 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
4852 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4853 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
4854 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4855 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4856 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4857 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4858 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4859 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4860 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4861 * gst-libs/gst/vaapi/gstvaapifilter.c:
4862 * gst-libs/gst/vaapi/gstvaapiimage.c:
4863 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
4864 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
4865 * gst-libs/gst/vaapi/gstvaapipixmap.c:
4866 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
4867 * gst-libs/gst/vaapi/gstvaapisurface.c:
4868 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
4869 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
4870 * gst-libs/gst/vaapi/gstvaapitexture.c:
4871 * gst-libs/gst/vaapi/gstvaapiutils.c:
4872 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4873 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
4874 * gst-libs/gst/vaapi/gstvaapiwindow.c:
4875 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
4876 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
4877 libs: fix code style for errors
4879 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4881 * gst/vaapi/gstvaapipluginbase.c:
4882 * gst/vaapi/gstvaapivideocontext.c:
4883 plugins: update GstGL deprecated symbol
4884 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
4886 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4888 * gst/vaapi/gstvaapipluginbase.c:
4889 plugins: direct render when raw video
4890 Enable the direct rendering with linear surfaces if the negotiated src caps
4891 are video/x-raw without features.
4892 Pass also the caps, since they are needed to know the requested caps features.
4894 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4896 * gst/vaapi/gstvaapipluginbase.c:
4897 plugins: move src allocator error to instantiator
4898 Just as we did in ensure_sinkpad_allocator(), let's move the error message
4899 into the ensure_srcpad_allocator() from the caller,
4900 gst_vaapi_plugin_base_decide_allocation()
4902 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4904 * gst/vaapi/gstvaapipluginbase.c:
4905 plugins: enable direct upload if raw video
4906 Enable the direct upload with linear surfaces if the negotiated sink caps are
4907 video/x-raw without features.
4909 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4911 * gst/vaapi/gstvaapipluginutil.c:
4912 * gst/vaapi/gstvaapipluginutil.h:
4913 pluginutil: add gst_caps_is_video_raw()
4915 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4917 * gst/vaapi/gstvaapipluginbase.c:
4918 plugins: receive caps in ensure_sinkpad_allocator()
4919 Instead of receiving the GstVideoInfo structure as parameter, get the original
4920 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
4921 which allocator instantiate.
4923 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4925 * gst/vaapi/gstvaapivideomemory.c:
4926 vaapivideomemory: destroy derived image at unmap
4927 If the allocator was configured to use direct upload or rendering, the
4928 generated derived image created at mapping needs to be destroyed after
4929 unmapping, because, in order to process the surface, it should not be marked
4930 as "busy" by the driver.
4932 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4934 * gst/vaapi/gstvaapivideomemory.c:
4935 vaapivideomemory: enhance logs for direct modes
4936 Print, conditionally, only the enabled direct mode.
4938 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4940 * gst/vaapi/gstvaapivideomemory.c:
4941 * gst/vaapi/gstvaapivideomemory.h:
4942 vaapivideomemory: add direct upload flag
4943 Adds the direct-upload flag in the GstVaapiVideoAllocator and
4944 GstVaapiVideoMemory.
4945 It still doesn't apply any functional change.
4947 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4949 * gst/vaapi/gstvaapipluginbase.c:
4950 * gst/vaapi/gstvaapivideomemory.c:
4951 * gst/vaapi/gstvaapivideomemory.h:
4952 vaapivideomemory: set direct rendering at run-time
4953 The way to experiment with the direct rendering is through and internal
4954 compiler pre-processor flag.
4955 The current change set enables a way to specified at run-time, as a flag
4956 passed to the allocator at instanciation time.
4958 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4960 * gst/vaapi/gstvaapivideomemory.c:
4961 vaapivideomemory: log in perf category when copy
4962 Log in performance category when the derive image handling fails, falling back
4965 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4967 * gst/vaapi/gstvaapivideomemory.c:
4968 vaapivideomemory: error log is derive image fails
4969 Instead of a silently failure of the derive image, this patch log an error
4970 message according to the failure.
4972 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4974 * gst/vaapi/gstvaapivideomemory.c:
4975 vaapivideomemory: store surface alloc flags in qdata
4976 For sake of consistency, we should add the requested surface allocation flags
4977 to the object's qdata structure.
4979 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4981 * gst/vaapi/gstvaapivideomemory.c:
4982 vaapivideomemory: category init when object define
4983 Move the Gstreamer debug category initialize to the GObject definition.
4985 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4987 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
4988 libs: vaapitexturemap: trivial code-style fix
4990 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4992 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
4993 libs: display: egl: avoid recreate native display
4994 Instead of passing the native descriptor of the display, just pass the received
4995 GstVaapiDisplay and reuse it.
4997 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4999 * gst/vaapi/gstvaapipluginbase.c:
5000 plugins: log the GstVaapiDisplay name
5001 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
5002 name. Log it instead of the memory address.
5004 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
5006 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
5007 libs: window: egl: pass native va display
5008 When creating a GstVaapiWindowEGL, it also creates native window by its own
5009 native display. It should pass the native display, either X11 or Wayland.
5010 https://bugzilla.gnome.org/show_bug.cgi?id=768266
5012 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
5014 * gst-libs/gst/vaapi/gstvaapidebug.h:
5015 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5016 * gst-libs/gst/vaapi/gstvaapidisplay.h:
5017 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
5018 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
5019 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
5020 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5021 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
5022 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
5023 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
5024 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
5025 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
5026 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
5027 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5028 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
5029 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5030 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
5031 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
5032 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
5033 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
5034 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
5035 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
5036 * gst/vaapi/gstvaapivideocontext.c:
5037 libs: display: GstVaapiDisplay as GstObject descendant
5038 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
5039 instead of GstVaapiMiniObject. In this way we can use all the available
5040 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
5041 In addition, a new debug category for GstVaapiDisplay is created to make it
5042 easier to trace debug messages. It is named "vaapidisplay" and it transverse
5043 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
5044 This patch is a step forward to expose GstVaapiDisplay for users in a future
5046 https://bugzilla.gnome.org/show_bug.cgi?id=768266
5047 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5049 === release 1.11.0 ===
5051 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
5056 === release 1.10.0 ===
5058 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
5063 * gstreamer-vaapi.doap:
5066 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5068 * gst/vaapi/gstvaapidecodebin.c:
5069 vaapidecodebin: resurrect disable-vpp property
5070 https://bugzilla.gnome.org/show_bug.cgi?id=773589
5072 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5074 * gst/vaapi/gstvaapidecodebin.c:
5075 vaapidecodebin: name the internal queue
5076 https://bugzilla.gnome.org/show_bug.cgi?id=773589
5078 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5080 * gst/vaapi/gstvaapidecodebin.c:
5081 * gst/vaapi/gstvaapidecodebin.h:
5082 vaapidecodebin: remove unused variables
5083 Since vaapipostproc is only registered if the driver supports it, all the
5084 support for dynamic loading were removed. Though some leftovers remained.
5085 https://bugzilla.gnome.org/show_bug.cgi?id=773589
5087 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5089 * docs/plugins/Makefile.am:
5090 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5091 * docs/plugins/running.xml:
5092 docs: document environment variables
5093 https://bugzilla.gnome.org/show_bug.cgi?id=773544
5095 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5097 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5098 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5099 * gst/vaapi/Makefile.am:
5100 * gst/vaapi/gstvaapidecode.c:
5101 * gst/vaapi/gstvaapidecodebin.c:
5102 * gst/vaapi/gstvaapidecodedoc.c:
5103 docs: replace vaapidecode with each codec
5104 In the spirit of the codec split, this patch removes the documentation of
5105 vaapidecode and adds a page per each possible decoder.
5106 Nonetheless, only those available in the compilation system are going to be
5107 instrospected, because the rest are not registered.
5109 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5111 * gst/vaapi/gstvaapipluginutil.c:
5112 * gst/vaapi/gstvaapivideobuffer.c:
5113 * gst/vaapi/gstvaapivideometa.c:
5114 docs: add missing long descriptions
5116 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5118 * gst/vaapi/gstvaapipostproc.c:
5119 vaapipostproc: use GST_*_OBJECT when possible
5120 Since we can have several vaapipostproc operating in a pipeline, it is useful
5121 to know which one is generating the logging message.
5122 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5124 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5126 * gst/vaapi/gstvaapidecode.c:
5127 * gst/vaapi/gstvaapidecode.h:
5128 vaapidecode: rename member to allowed_sinkpad_caps
5129 vaapidecode has a member named allowed_caps, but this name is not enough
5130 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
5131 No functional changes were included.
5132 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5134 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5136 * gst/vaapi/gstvaapiencode_h264.c:
5137 * gst/vaapi/gstvaapiencode_h265.c:
5138 * gst/vaapi/gstvaapisink.c:
5139 * gst/vaapi/gstvaapivideomemory.c:
5140 * gst/vaapi/gstvaapivideometa.c:
5141 * gst/vaapi/gstvaapivideometa_texture.c:
5142 plugins: fix code style for errors
5143 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5145 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5147 * gst/vaapi/gstvaapivideomemory.c:
5148 vaapivideomemory: comment style
5149 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5151 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5153 * gst/vaapi/gstvaapivideomemory.c:
5154 * gst/vaapi/gstvaapivideomemory.h:
5155 vaapivideomemory: rename input parameter
5156 In order to clarify the use of flag as input parameter, it is renamed to
5157 surface_alloc_flag, since it is used when creating a VA surface with certain
5159 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5161 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5163 * gst/vaapi/gstvaapidecode.c:
5164 vaapidecode: rename element description
5165 So encoders and decoders have similar descriptions.
5166 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5168 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5170 * gst/vaapi/gstvaapiencode_h264.c:
5171 * gst/vaapi/gstvaapiencode_h265.c:
5172 vaapiencode: h264, h265: rename codec name
5173 So encoder and decoders have the same codec name.
5174 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5176 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5178 * gst/vaapi/gstvaapipluginbase.c:
5179 plugins: simplify code
5180 Merge two lines of variable declarations.
5181 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5183 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
5185 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5186 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
5187 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
5188 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
5189 libs: minor correction for logical consistency
5190 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
5191 use its methods, even though it doesn't change functionality.
5192 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
5193 GstVaapiObject, hence its methods shall be used.
5194 https://bugzilla.gnome.org/show_bug.cgi?id=772554
5196 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
5198 * gst/vaapi/gstvaapivideomemory.c:
5199 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
5200 In short GstFdMemory is configured to call close when using
5202 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5204 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5207 * gst-libs/gst/vaapi/Makefile.am:
5208 build: clean up the dlopen usage
5210 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5212 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5213 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5214 encoder: h264,h265: fix regression in offset count
5215 In commit dc35dafa a bug was introduced because I assumed that
5216 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
5217 https://bugzilla.gnome.org/show_bug.cgi?id=772259
5219 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5224 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5226 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5227 libs: display: egl: remove unused header include
5228 The header gmodule.h is not used since the library dynamic loading for EGL
5229 display was removed.
5230 https://bugzilla.gnome.org/show_bug.cgi?id=772599
5232 === release 1.9.90 ===
5234 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
5240 * gstreamer-vaapi.doap:
5243 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
5245 * gst/vaapi/gstvaapidecode.c:
5246 * gst/vaapi/gstvaapidecodebin.c:
5247 * gst/vaapi/gstvaapiencode_h264.c:
5248 * gst/vaapi/gstvaapiencode_h265.c:
5249 * gst/vaapi/gstvaapiencode_jpeg.c:
5250 * gst/vaapi/gstvaapiencode_mpeg2.c:
5251 * gst/vaapi/gstvaapiencode_vp8.c:
5252 * gst/vaapi/gstvaapipostproc.c:
5253 * gst/vaapi/gstvaapisink.c:
5254 vaapi: use new gst_element_class_add_static_pad_template()
5255 https://bugzilla.gnome.org/show_bug.cgi?id=763083
5256 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5258 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
5260 * gst/vaapi/gstvaapipluginbase.c:
5261 plugins: reset textures at negotiation/shutdown
5262 When caps reconfiguration is called, the new downstream frame size might be
5263 different. Thus, if the downstream caps change,the display's texture map is
5265 In addition, during pipeline shutdown, textures in texture map have to be
5266 released, since each one have a reference to the GstVaapiDisplay object, which
5267 is a dangerous circular reference.
5268 https://bugzilla.gnome.org/show_bug.cgi?id=769293
5269 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5271 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
5273 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5274 * gst-libs/gst/vaapi/gstvaapidisplay.h:
5275 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5276 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
5277 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
5278 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
5279 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
5280 * gst/vaapi/gstvaapivideometa_texture.c:
5281 libs: display{egl,glx}: cache GstVaapiTextures
5282 instances when created and reuse
5283 This patch improves performance when glimagesink uploads a GL texture.
5284 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
5285 instance of GstVaapiTextureMap, so our internal texture structure can be found
5286 by matching the GL texture id for each frame upload process, avoiding the
5287 internal texture structure creation and its following destruction.
5288 https://bugzilla.gnome.org/show_bug.cgi?id=769293
5289 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5291 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
5293 * gst-libs/gst/vaapi/Makefile.am:
5294 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
5295 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
5296 libs: vaapitexturemap: implement GstVaapiTextureMap
5297 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
5298 reused. Internally it is a hash table.
5299 Note that it is GstObject based rather than GstVaapiObject, as part of the future
5300 converstion to GstObject of most of the code.
5301 https://bugzilla.gnome.org/show_bug.cgi?id=769293
5302 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5304 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
5306 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5307 encoder: vp8: Increase the allocation size for coded buffer
5308 We are not getting enough compression for some streams and
5309 encoded frame end up with more size than allocated.
5310 Assuming a compression ratio of 4, which should be good enough
5311 for holding the frames.
5312 https://bugzilla.gnome.org/show_bug.cgi?id=771528
5314 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
5316 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5317 encoder: vp9: Fix refresh frame flag setting
5318 While doing the mode-1 referece picture selection,
5319 the circular buffer logic was not correctly setting the
5320 refresh frame flags as per VP9 spec.
5321 Make sure refresh_flag[0] get updated correclty after
5322 each cycle of GST_VP9_REF_FRAMES.
5323 https://bugzilla.gnome.org/show_bug.cgi?id=771507
5325 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5327 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5328 vaapidecode: codec_data minimal size is 7
5329 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
5330 stream, not in the codec_data, so the size of codec_data might be 7.
5331 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
5332 https://bugzilla.gnome.org/show_bug.cgi?id=771441
5334 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5336 * gst/vaapi/gstvaapidecode.c:
5337 vaapidecode: reset decoder hard when set_format()
5338 set_format() is called by upstream when the stream capabilites has changed.
5339 Before, if the new stream is compatible with the old one the VA decoder was
5340 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
5341 when the upstreamer parsers gets more details of the stream, such as the
5342 framerate. Hence, when the src caps are negotiates, the further sink caps
5343 updates are ignored.
5344 This patch forces the VA decoder destroying and recreation when set_format()
5346 https://bugzilla.gnome.org/show_bug.cgi?id=770921
5348 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
5351 configure: Depend on gstreamer 1.9.2.1
5353 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5355 * gst/vaapi/gstvaapivideomemory.c:
5356 Revert "vaapivideomemory: load VA Image when mapping to write"
5357 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
5359 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
5362 Automatic update of common submodule
5363 From b18d820 to f980fd9
5365 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
5368 Automatic update of common submodule
5369 From f49c55e to b18d820
5371 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
5373 * gst/vaapi/gstvaapipluginbase.c:
5374 plugins: set allocator's image size to sinkpad bufferpool
5375 Otherwise the buffer is always ditched by the bufferpool, losing performance.
5376 https://bugzilla.gnome.org/show_bug.cgi?id=771035
5378 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5380 * gst-libs/gst/vaapi/gstvaapisurface.c:
5381 libs: surface: ensure composite overlay is not bigger
5382 Ensure the composition overlay rectangle (subtitles) is not bigger than
5383 the surface where it is going to be composited and rendered.
5384 https://bugzilla.gnome.org/show_bug.cgi?id=766978
5386 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
5388 * gst/vaapi/gstvaapivideomemory.c:
5389 vaapivideomemory: load VA Image when mapping to write
5390 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
5391 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
5393 https://bugzilla.gnome.org/show_bug.cgi?id=766978
5395 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5397 * gst/vaapi/gstvaapidecode.c:
5398 vaapidecode: merge vc1 and wmv3 elements
5399 This patch merges vaapivc1dec and vaapiwmv3dec into a single
5400 vaapivc1dec. Also, removed the WMVA format, since it is not
5402 https://bugzilla.gnome.org/show_bug.cgi?id=734093
5404 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5406 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
5407 decoder: vc1: fails only on advanced profile
5408 In commit 2eb4394 the frame coding mode was verified for progressive
5409 regardless the profile. But the FCM is only valid in the advanced
5410 profile. This patch checks for the advanced profile before verifying FCM for
5412 https://bugzilla.gnome.org/show_bug.cgi?id=769250
5414 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5416 * gst/vaapi/gstvaapi.c:
5417 vaapi: DISPLAY envvar as dependency
5418 In a multiple video cards system, a X11 environment may have different VA
5419 capabilities. This patch tracks the DISPLAY environment variable to
5420 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
5421 https://bugzilla.gnome.org/show_bug.cgi?id=770357
5423 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
5425 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
5426 decoder: vc1: Fail only on actual interlaced frames
5427 In the earlier patch:
5428 f31d9f3 decoder: vc1: Print error on interlaced content
5429 Decoding would error out if the interlace flag was set in the
5430 sequence bdu. This isn't quite right because a video can have this
5431 flag set and yet not have any interlaced pictures.
5432 Here instead we error out when either parsing a field bdu or
5433 decoding a frame bdu which has fcm set to anything other than
5435 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
5436 https://bugzilla.gnome.org/show_bug.cgi?id=769250
5438 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
5443 === release 1.9.2 ===
5445 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
5450 * gstreamer-vaapi.doap:
5453 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
5455 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
5456 decoder: vc1: Print error on interlaced content
5457 Interlaced video is as yet unsupported in the vc1 element. Print
5458 an error to make that more obvious.
5459 https://bugzilla.gnome.org/show_bug.cgi?id=769250
5461 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5463 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5464 encoder: h264: fix C90 mixed declarations and code
5465 Commit 4259d1a introduced this compilation error. This patch fixes it.
5467 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5469 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5470 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5471 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5472 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5473 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
5474 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
5475 to avoid overflows, underflows and loss of precision.
5476 https://bugzilla.gnome.org/show_bug.cgi?id=768458
5478 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5480 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5481 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5482 vaapiencode: h264,h265: validate fps numerator
5483 Validate that fps numerator is non-zero so it can be used to calculate
5484 the duration of the B frame.
5485 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
5486 order to aviod overflows, underflows and loss of precision.
5487 https://bugzilla.gnome.org/show_bug.cgi?id=768458
5489 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
5491 * gst/vaapi/gstvaapi.c:
5492 encoders: demote to RANK_NONE since not fit for autoplugging yet
5493 Encoders claim to support a whole bunch of input formats but then
5494 just error out if the format is not actually supported, even if
5495 there's a converter in front. This means they're not fit for
5496 autoplugging in encodebin or camerabin yet and therefore should
5497 not have a rank. People can still use them in custom pipelines.
5498 https://bugzilla.gnome.org/show_bug.cgi?id=769266
5500 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5502 * gst/vaapi/gstvaapipluginbase.c:
5503 plugins: check dmabuf-import for sink pad allocator
5504 Check earlier if upstream video source has activated the dmabuf-import
5505 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
5508 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5510 * gst/vaapi/gstvaapipluginbase.c:
5511 plugins: reset allocators if video info changed
5512 If the frame size or format, change, the allocators are reset, so a new ones
5513 can be created with the new video info.
5515 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5517 * gst/vaapi/gstvaapipluginbase.c:
5518 plugins: remove sink pad allocator if caps change
5519 If the negotiated sinkpad caps change, destroy the assignated allocator,
5520 because it is not valid anymore.
5522 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5524 * gst/vaapi/gstvaapipluginutil.c:
5525 * gst/vaapi/gstvaapipluginutil.h:
5526 pluginutil: const params to gst_video_info_changed()
5527 Since they are not modified, we should mark them as const.
5529 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5531 * gst/vaapi/gstvaapipluginbase.c:
5532 * gst/vaapi/gstvaapivideomemory.c:
5533 * gst/vaapi/gstvaapivideomemory.h:
5534 gstvaapivideomemory: allocator's image size getter
5535 Add the method gst_allocator_get_vaapi_image_size() for the
5536 GstVaapiVideoAllocator, which gets the size of the allocated images with the
5538 This method replaces the direct call to the allocator's image info when the
5541 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
5543 * gst/vaapi/gstvaapipluginbase.c:
5544 plugins: update buffer pool size with new allocator's image size
5545 Depends on media, video size is sometimes updated with new allocator.
5546 It leads to dismatch between bufferpool's set size and real allocated buffer size.
5547 In this case, it causes every buffer is freed during release in bufferpool,
5548 which should be reused. This affects performance.
5549 https://bugzilla.gnome.org/show_bug.cgi?id=769248
5551 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5554 configure: remove gmodule-2.0 EGL dependency
5555 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
5556 thus the dependency to gmodule-2.0 is not mandatory anymore.
5558 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
5561 configure: Fix non-fatal PKG_CHECK_MODULES invocations
5562 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
5563 the package is missing, but action-if-not-found was given as an empty
5564 string which still causes the default action to run, which halts
5566 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
5567 https://bugzilla.gnome.org/show_bug.cgi?id=769237
5569 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5571 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5572 libs: egl: remove dynamic library loading code
5573 Since the upstream of gstreamer-vaapi, the library is not a public shared
5574 object anymore. But the EGL support depended on this dynamic library, so the
5575 EGL support was broken.
5576 This patch removes the dynamic library loading code and instantiates the
5577 EGL display using either X11 or Wayland if available.
5578 https://bugzilla.gnome.org/show_bug.cgi?id=767203
5580 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5582 * gst/vaapi/gstvaapi.c:
5583 * gst/vaapi/gstvaapidecode.c:
5584 * gst/vaapi/gstvaapidecode.h:
5585 vaapidecode: register only the available decoders
5586 In order to register only the available decoders, this patch queries the
5587 created test VA display, which uses the currently used back-end (X11, Wayland,
5588 DRM, …) on the used display device.
5589 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5591 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5593 * gst/vaapi/gstvaapi.c:
5594 * gst/vaapi/gstvaapipluginutil.c:
5595 * gst/vaapi/gstvaapipluginutil.h:
5596 vaapi: register only the available encoders
5597 In order to register only the available encoders, this patch queries the
5598 created test VA display, which uses the currently used back-end (X11,
5599 Wayland, DRM, …) on the used display device.
5600 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5602 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5604 * gst/vaapi/gstvaapidecode.c:
5605 * gst/vaapi/gstvaapidecodebin.c:
5606 vaapidecode: split all the codecs
5607 Split the vaapidecode to all the supported codecs with the format
5609 vaapidecode is stil registered as a GObject type, but not as a
5610 GStreamer feature, so it can be used internally by vaapidecodebin without
5611 changing its code too much.
5612 https://bugzilla.gnome.org/show_bug.cgi?id=734093
5614 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5616 * gst/vaapi/gstvaapidecodebin.c:
5617 vaapidecodebin: simplify the code
5618 Since the elements dependant of the VA video processor are now only registered
5619 if it is available, vaapidecodebin code can be simplified a lot, removing all
5620 the code required to check if the VA video processor was available.
5621 https://bugzilla.gnome.org/show_bug.cgi?id=768899
5623 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5625 * gst/vaapi/gstvaapidecode.c:
5626 vaapidecode: delay the GstVaapiDisplay instantiating
5627 Delay the GstVaapiDisplay instantiating until when changing the state from
5628 READY to PAUSE. In this way the element has more chances to find an already
5629 created GstVaapiDisplay, or a GL context, in the pipeline.
5630 https://bugzilla.gnome.org/show_bug.cgi?id=766206
5632 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5634 * gst/vaapi/gstvaapipluginutil.c:
5635 pluginutil: set GLX display type
5636 The function gst_vaapi_create_display_from_gl_context() cretes a
5637 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
5638 when the GL platform was GLX, but a plain X11 VA display.
5639 This patch fixes that, by querying the GL platform earlier.
5640 https://bugzilla.gnome.org/show_bug.cgi?id=766206
5642 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5644 * gst/vaapi/gstvaapipluginbase.c:
5645 * gst/vaapi/gstvaapivideocontext.c:
5646 * gst/vaapi/gstvaapivideocontext.h:
5647 plugins: add gst_vaapi_plugin_base_find_gl_context()
5648 Using the GstContext mechanism, it is possible to find if the pipeline
5649 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
5650 meta. This is interesting because we could negotiate system memory caps
5651 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
5652 https://bugzilla.gnome.org/show_bug.cgi?id=766206
5654 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5656 * gst/vaapi/gstvaapipluginbase.c:
5657 * gst/vaapi/gstvaapipluginbase.h:
5658 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
5659 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
5662 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5664 * gst/vaapi/gstvaapipluginbase.h:
5665 plugins: remove common change_state() vmethod
5666 Remove the common change_state() vmethod for all the plugins, since no one is
5669 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5671 * gst/vaapi/gstvaapidecode.c:
5672 vaapidecode: remove change_state() vmethod
5673 Since the driver checkup is done at registering, there is no need to do it
5674 when changing the element state from NULL to READY. This patch remove this
5675 vmethod from vaapidecode.
5677 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5679 * gst/vaapi/gstvaapi.c:
5680 vaapi: register vaapipostproc only if supported
5681 Query the GstVaapiDisplay to know if the driver supports video
5682 postprocessing. If does, then register vaapipostproc and vaapidecodebin
5684 This patch will simplify the design of vaapidecodebin.
5685 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5687 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5689 * gst/vaapi/gstvaapi.c:
5690 vaapi: don't register if VA driver is unsupported
5691 Using the test VA display, the driver name is queried, and if it is not
5692 white-listed, the plugin rejects to register any element.
5693 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5695 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5697 * gst/vaapi/gstvaapipluginbase.c:
5698 * gst/vaapi/gstvaapipluginutil.c:
5699 * gst/vaapi/gstvaapipluginutil.h:
5700 plugins: add gst_vaapi_driver_is_whitelisted()
5701 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
5702 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
5703 when registering the plugin's feature set with the test VA display.
5704 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5706 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5708 * gst/vaapi/gstvaapi.c:
5709 vaapi: instantiate a VA display when registering
5710 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
5711 features, if it fails, no gstreamer-vaapi element is registering.
5712 The purpose of this patch is to avoid a situation where the user has
5713 gstreamer-vaapi installed but their VA-API setup is not functional, which may
5714 lead to unexpected behavior.
5715 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5717 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5720 * gst/vaapi/gstvaapi.c:
5721 vaapi: declare external dependencies
5722 There are two main external dependencies that define the feature set of this
5723 plugin: a) the kernel and b) the VA driver
5724 This patch tracks both dependencies, if any of them change, GStreamer will
5725 re-inspect the plugin.
5726 The kernel is tracked through the device files /dev/dri/card*
5727 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
5728 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
5729 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
5730 since they modify the driver lookup.
5731 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
5732 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5734 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5736 * gst/vaapi/gstvaapidecode.c:
5737 vaapidecode: remove unneeded initializations
5738 GObject's memory is set to zero, so there is no need to initialize to zero or
5739 NULL it's class variables.
5741 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5743 * gst/vaapi/gstvaapipluginbase.h:
5744 plugins: remove undefined macros
5746 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5748 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5749 Revert "gstvaapisurface_drm: release image when done"
5750 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
5751 372a03a9e38acbf435eb80bf31d9a9844069e504.
5752 While the dmabuf handle is exported, the derive image must exist, otherwise
5753 the image's VA buffer is invalid, thus the dmabuf handle is never released,
5754 leading into a file descriptors leak.
5756 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5758 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5759 encoder: h265: fix code-style
5761 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5763 * gst/vaapi/gstvaapipostproc.c:
5764 vaapipostproc: update filters at color balance
5765 This is a fix for a regression of previous commit, which updates the filters
5766 only when the property is set, because it is also required to update the
5767 filter when the color balance interface change its values.
5769 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
5771 * gst/vaapi/gstvaapipostproc.c:
5772 * gst/vaapi/gstvaapipostproc.h:
5773 vaapipostproc: make it enable/disable pass-through mode
5774 In case that sink caps and src caps are same, and no filtering parameter set,
5775 pass-through mode is enabled.
5776 If new filtering parameter is set during playback, it makes it reconfiguring,
5777 so that pass-through mode is changed
5778 In addition, updating filter is performed during reconfiguration, if needed.
5779 https://bugzilla.gnome.org/show_bug.cgi?id=751876
5781 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
5783 * gst-libs/gst/vaapi/gstvaapifilter.c:
5784 * gst-libs/gst/vaapi/gstvaapifilter.h:
5785 * gst/vaapi/gstvaapipostproc.c:
5786 vaapipostproc: checking and updating filter parameter only when it's set
5787 This patch is to avoid checking filter value at every frame.
5788 https://bugzilla.gnome.org/show_bug.cgi?id=751876
5790 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
5792 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5793 decoder: h265: handle the SEI NAL units included in codec_data
5794 The prefix/suffix SEI nal units can appear in codec_data too
5795 which weren't handled before. Parse these SEI headers to
5797 https://bugzilla.gnome.org/show_bug.cgi?id=768544
5799 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5801 * docs/plugins/Makefile.am:
5802 build: doc: do not redefine MAINTAINERCLEANFILES
5803 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
5804 overload it, the files should be added.
5806 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
5808 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5809 encoder: h264: Fix MVC encode while enabling dct8x8
5810 Pack the transform_8x8_mode_flag and other necessary rbsp data
5811 in packed_pps header for MVC encode.
5812 https://bugzilla.gnome.org/show_bug.cgi?id=768647
5814 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5816 * gst/vaapi/gstvaapisink.c:
5817 vaapisink: demote a debug message to trace
5818 Reduces noise when debugging.
5820 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
5822 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5823 wayland: Error check before using cached wl_display
5824 A planar(or some other) buffer allocation may fail on the driver, then
5825 the wayland connection becomes invalid, not able to send request or
5826 receive any event. So we need to set up a new wayland connection if
5827 there's an error detected on the cached wl_display.
5828 https://bugzilla.gnome.org/show_bug.cgi?id=768761
5829 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5831 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
5834 Automatic update of common submodule
5835 From ac2f647 to f49c55e
5837 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5839 * gst/vaapi/gstvaapiencode.c:
5840 vaapiencode: demote a log to trace level
5841 Removes noise when debugging.
5843 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
5845 * gst/vaapi/gstvaapiencode.c:
5846 vaapiencode: implement flush() vmethod
5847 In order to handle correctly seek and other operations, vaapiencode should
5848 flush all the remaining data from the encoder without pushing it downstream.
5849 This patch implements the flush() vmethod, only after of pausing the
5850 source pad task, and restarting it again after the flush stop.
5851 https://bugzilla.gnome.org/show_bug.cgi?id=767176
5852 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5854 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5856 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
5857 decoder: vc1: flush dpb only if opened
5858 Flush the decode picture buffer, if and only if, the decoder is
5859 started. Otherwise the dpb structure might be NULL.
5860 https://bugzilla.gnome.org/show_bug.cgi?id=742922
5862 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
5864 * gst/vaapi/gstvaapidecode.c:
5865 * gst/vaapi/gstvaapidecode.h:
5866 vaapidecode: drop non-keyframe in reverse playback
5867 To avoid surface-exhausted situation during reverse playback,
5868 drop frames except for key frame.
5869 Also, to avoid the corruption of the parser state, flush() vmethod
5870 doesn't destroy the VA decoder when playing in reverse.
5871 https://bugzilla.gnome.org/show_bug.cgi?id=742922
5872 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5874 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5876 * gst/vaapi/gstvaapidecode.c:
5877 vaapidecode: unref output frame earlier
5878 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
5879 unref that extra reference earlier making the code simpler to follow.
5880 https://bugzilla.gnome.org/show_bug.cgi?id=768652
5882 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5884 * gst/vaapi/gstvaapidecode.c:
5885 vaapidecode: remove gst_vaapidecode_internal_flush()
5886 As gst_vaapidecode_finish() is the only callee of
5887 gst_vaapidecode_internal_flush(), it is better to inline it.
5888 https://bugzilla.gnome.org/show_bug.cgi?id=768652
5890 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5892 * gst/vaapi/gstvaapidecode.c:
5893 vaapidecode: flush output adapter at drain()
5894 Calling drain() vmethod means "decode any data it can at this point, but that
5895 more data may arrive after". Hence, vaapidecode should check if there is data
5896 in the output adapter and process them, without destroying the decoded picture
5898 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
5899 was refactored into a new function gst_vaapidecode_flush_output_adapter().
5900 https://bugzilla.gnome.org/show_bug.cgi?id=768652
5902 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5904 * gst/vaapi/gstvaapidecode.c:
5905 vaapidecode: call purge at flush()
5906 Calling flush() vmethod means "to flush all remaining data from the decoder
5907 without pushing it downstream".
5908 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
5909 gst_video_decoder_have_frame() if there is still something in the input
5910 adapter, which may push buffers to downstream by calling handle_frame().
5911 This patch changes this behavior by calling gst_vaapidecode_purge() rather
5912 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
5913 decoder and releases all the rest of decoded frames.
5914 https://bugzilla.gnome.org/show_bug.cgi?id=768652
5916 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5918 * tests/elements/Makefile.am:
5919 * tests/elements/test-vaapisink.c:
5920 test: elements: remove spurious linkage
5921 Element tests only need to link against gstreamer libraries.
5923 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
5926 configure: Require GLib >= 2.40 like everywhere else
5928 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
5933 === release 1.9.1 ===
5935 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
5941 * gstreamer-vaapi.doap:
5944 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5946 * tests/elements/test-vaapisink.c:
5947 tests: elements: rotate orientation event
5949 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
5952 * tests/Makefile.am:
5953 * tests/elements/Makefile.am:
5954 * tests/elements/test-vaapisink.c:
5955 tests: elements: Add testsuite for vaapisink
5956 https://bugzilla.gnome.org/show_bug.cgi?id=765798
5958 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
5960 * gst-libs/gst/vaapi/gstvaapitypes.h:
5961 * gst-libs/gst/vaapi/gstvaapivalue.c:
5962 * gst/vaapi/gstvaapisink.c:
5963 * gst/vaapi/gstvaapisink.h:
5964 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
5965 https://bugzilla.gnome.org/show_bug.cgi?id=765798
5967 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5969 * gst/vaapi/gstvaapipostproc.c:
5970 vaapipostproc: return caps template if no display
5971 This patch is a fix for my bad review of commit 6d73ca8d. The element should
5972 be able to return the available raw caps handled by the VA display, but that
5973 only should happen when there a VA display. If there's none, the element
5974 should use the caps template.
5975 https://bugzilla.gnome.org/show_bug.cgi?id=768161
5977 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
5979 * gst/vaapi/gstvaapipostproc.c:
5980 vaapipostproc: don't require a vaapi display for all caps queries
5981 This delays the requirement of having a GstVaapiDisplay until later
5982 https://bugzilla.gnome.org/show_bug.cgi?id=768161
5984 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5986 * gst-libs/gst/vaapi/gstvaapiutils.c:
5987 utils: report VP9 profiles
5988 Add VP9Profile0-3 name mapping.
5990 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5992 * gst/vaapi/gstvaapi.c:
5993 vaapi: nest includes under USE_ENCODER macro
5994 This is a missed changeset from commit 1c05c53, since also header includes
5997 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5999 * gst/vaapi/gstvaapi.c:
6000 vaapi: nest encoders under USE_ENCODER macro
6001 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
6002 macro, it is clearer to nest them, showing explicitly the dependency relation.
6004 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6006 * gst/vaapi/gstvaapivideocontext.c:
6007 vaapivideocontext: check if query context is NULL
6008 Under certain conditions the element might receive a positive context query
6009 but without a context instance. This situation will lead to a segmentation
6010 fault when traversing the context list in the pipeline.
6011 https://bugzilla.gnome.org/show_bug.cgi?id=767946
6013 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6015 * gst-libs/gst/vaapi/Makefile.am:
6016 * gst-libs/gst/vaapi/glibcompat.h:
6017 * gst-libs/gst/vaapi/sysdeps.h:
6018 remove unused glibcompat.h
6019 glibcompat.h is no longer doing anything. Remove it.
6020 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6021 https://bugzilla.gnome.org/show_bug.cgi?id=767886
6023 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6025 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6026 encoder: h264: Use high profile by default
6027 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
6028 by default. This will cause the default profile to be high instead
6029 of baseline. In most situations this is the right decision, and
6030 the profile can still be lowered in the case of caps restrictions.
6031 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6032 https://bugzilla.gnome.org/show_bug.cgi?id=757941
6034 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6036 * gst/vaapi/gstvaapidecodebin.c:
6037 vaapidecodebin: element warning if missing element
6038 Raise an element warning if a required element is not available, thus the
6039 pipeline will post a warning message and the application will be informed.
6041 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
6043 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6044 decoder: h265: fix to release all dpb pictures
6045 Without this, all dpb pictures are not released during flush,
6046 because we used the global dpb_count variable for checking the
6047 dpb fullness which get decremented in dpb_remove_index()
6048 routine during each loop iteration.
6049 https://bugzilla.gnome.org/show_bug.cgi?id=767934
6051 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6054 Automatic update of common submodule
6055 From ac2f647 to f363b32
6057 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
6059 * gst/vaapi/gstvaapidecode.c:
6060 * gst/vaapi/gstvaapipostproc.c:
6061 vaapi: fix minor leaks
6062 https://bugzilla.gnome.org/show_bug.cgi?id=767868
6064 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6066 * gst/vaapi/gstvaapi.c:
6067 vaapi: remove an already included header
6068 gst/gst.h is already included in gstcompat.h
6070 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6072 * gst/vaapi/gstvaapidecodebin.c:
6073 vaapidecodebin: add vp9 in sink pad template
6075 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6077 * gst/vaapi/gstvaapisink.c:
6078 vaapisink: return caps template if no display
6079 If vaapisink received a caps query before getting a VA display, it returned
6080 only the surfaces related caps. This behavior broke the autovideosink
6082 This patch returns the pad's template caps if no VA display, otherwise the
6083 caps are crafted as before.
6084 https://bugzilla.gnome.org/show_bug.cgi?id=767699
6086 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6088 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6089 decoder: vp9: Update comment about context resets
6090 Clarify that vaapi context resets are never needed for vp9, but
6091 that ensure_context() needs called when the size increases so that
6092 new surfaces can be allocated.
6093 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6094 https://bugzilla.gnome.org/show_bug.cgi?id=767474
6096 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6098 * gst-libs/gst/vaapi/gstvaapicontext.c:
6099 * gst-libs/gst/vaapi/gstvaapicontext.h:
6100 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6101 gstvaapicontext: control reset_on_resize with option
6102 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6103 https://bugzilla.gnome.org/show_bug.cgi?id=767474
6105 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6107 * gst/vaapi/gstvaapivideobufferpool.c:
6108 vaapivideobufferpool: add video meta to config when needed
6109 In cases where we know the video meta must be present, add it to
6110 the pool configuration.
6111 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6112 https://bugzilla.gnome.org/show_bug.cgi?id=766184
6114 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6116 * gst/vaapi/gstvaapipluginbase.c:
6117 plugins: retry pool config
6118 if gst_buffer_pool_set_config returns FALSE, check the modified
6119 config and retry set_config if the config is still acceptable.
6120 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6121 https://bugzilla.gnome.org/show_bug.cgi?id=766184
6123 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6125 * gst/vaapi/gstvaapivideomemory.h:
6126 vaapivideomemory: internal attributes to methods
6127 Mark as internal the functions used by VA-API dmabuf allocator.
6129 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6131 * gst/vaapi/gstvaapipluginbase.c:
6132 plugins: remove precondition for decide_allocation()
6133 There's no need to check for the display in the plugin object when
6134 decide_allocation() vmethod is called, because the display will created or
6135 re-created along the method execution.
6137 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6139 * gst/vaapi/gstvaapipluginbase.c:
6140 plugins: avoid possible memory leaks
6141 Get the pool config just before use it, to avoid a memory leak if the
6142 allocator cannot be instantiated. Similarly, return FALSE if the configuration
6143 cannot be set, avoid keep a not used allocator in the pool.
6145 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6147 * gst/vaapi/gstvaapipluginbase.c:
6148 plugins: use GstParentBufferMeta
6149 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
6150 use the GStreamer's GstParentBufferMeta.
6151 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6153 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6155 * gst/vaapi/gstvaapipluginbase.c:
6156 plugins: cache VASurfaces from dmabufs
6157 This patch avoids the creation of a VASurface each time a new input buffer is
6158 processed, caching them in the input buffer itself.
6159 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6161 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6163 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
6164 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
6165 * gst/vaapi/gstvaapipluginbase.c:
6166 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
6167 Instead of passing the data already in GstVideoInfo, let's just pass the
6168 GstVideoInfo structure.
6169 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6171 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6173 * gst/vaapi/gstvaapipluginbase.c:
6174 * gst/vaapi/gstvaapipluginbase.h:
6175 plugins: use an unique allocator per pad
6176 Instead of instantiating an allocator per vaapivideobufferpool, only one
6177 allocator is instantiated per element's pad and shared among future pools.
6178 If the pad's caps changes, the allocator is reset.
6179 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6181 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6183 * gst/vaapi/gstvaapipluginbase.c:
6184 * gst/vaapi/gstvaapivideobufferpool.c:
6185 * gst/vaapi/gstvaapivideobufferpool.h:
6186 vaapivideobufferpool: share options flag with pluginbase
6187 Originally, vaapivideobufferpool has a set of boolean variables for the
6188 buffer configuration options.
6189 This pach changes these boolean variables for a single bitwise, just as
6190 it is used in pluginbase. Hence, the internal enum was moved to
6191 vaapivideobufferpool header.
6192 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6194 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6196 * gst/vaapi/gstvaapipluginbase.c:
6197 plugins: add gst_vaapi_plugin_base_create_pool()
6198 This patch refactors the code in pluginbase in order to centralize the buffer
6199 pool instantiation. As the buffer pool config may have different options, these
6200 are gathered using a bitwise flag.
6201 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6203 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6205 pluginbase negotiates allocator with bufferpool
6206 Originally vaapivideobufferpool instantiates its own allocator regardless the
6207 received configuration, and it relies in custom configuration options to
6208 choose which kind of allocator instantiate.
6209 This patch transfers the responsibility of the allocator instantiate to
6210 vaapipluginbase and pass it to the vaapivideobufferpool through its
6212 * gst/vaapi/gstvaapipluginbase.c
6213 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
6214 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
6215 bufferpool configuration
6216 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
6218 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
6219 allocator in bufferpool configuration
6220 * gst/vaapi/gstvaapivideobufferpool.c
6221 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
6222 allocator, process the received one through its configuration.
6223 * gst/vaapi/gstvaapivideobufferpool.h: removed
6224 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
6225 * gst/vaapi/gstvaapivideomemory.c
6226 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
6227 allocator with the vaapi qdata.
6228 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6230 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6232 * gst/vaapi/gstvaapivideobufferpool.c:
6233 vaapivideobufferpool: keep only current video info
6234 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
6235 the current one, the negotiated. The old one is not needed at all.
6236 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6238 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6240 * gst/vaapi/gstvaapipluginbase.c:
6241 * gst/vaapi/gstvaapipluginutil.c:
6242 * gst/vaapi/gstvaapipluginutil.h:
6243 * gst/vaapi/gstvaapivideomemory.c:
6244 pluginutil: add gst_video_info_force_nv12_if_encoded()
6245 This lines repeat a couple times in the code, so it would be better to put it
6247 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6249 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6251 * gst/vaapi/gstvaapipluginutil.c:
6252 * gst/vaapi/gstvaapipluginutil.h:
6253 * gst/vaapi/gstvaapipostproc.c:
6254 * gst/vaapi/gstvaapivideobufferpool.c:
6255 pluginutil: add gst_video_info_changed() helper
6256 This function is shared among different elements, so let factorized it.
6257 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6259 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
6261 * gst/vaapi/gstvaapipostprocutil.c:
6262 vaapipostproc: Add colorimetry attributes to src caps
6263 https://bugzilla.gnome.org/show_bug.cgi?id=766596
6265 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
6267 * gst/vaapi/gstvaapidecode.c:
6268 vaapidecode: remove chroma-site and colorimetry from src caps
6269 https://bugzilla.gnome.org/show_bug.cgi?id=766596
6271 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6273 * gst/vaapi/gstvaapipostproc.c:
6274 * gst/vaapi/gstvaapipostproc.h:
6275 vaapipostproc: add postproc_lock to protect data members
6276 Add a mutex to postproc to protect concurrent access to data members.
6277 Previously set_caps() could release the allowed_srcpad_caps while
6278 transform_caps was in the middle of using it.
6279 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6280 https://bugzilla.gnome.org/show_bug.cgi?id=766940
6282 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6284 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
6285 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
6286 encoder: vp9: Add simple algorithms for reference picture selection
6287 Added two modes(as properties) for reference picture selection:
6288 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
6289 and LastRef is pointing to the previous frame.
6290 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
6291 and n-2 th frame as AltRef
6292 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6294 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6296 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
6297 encoder: vp9: Define Max frame width and height
6298 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6300 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6302 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
6303 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
6304 encoder: vp9: Add more propertis for tuning encode quality
6305 Added three tuning properties:
6308 3: luma ac quant-table index
6309 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6311 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6313 * gst/vaapi/Makefile.am:
6314 * gst/vaapi/gstvaapi.c:
6315 * gst/vaapi/gstvaapiencode_vp9.c:
6316 * gst/vaapi/gstvaapiencode_vp9.h:
6317 Add vp9 encode element to "vaapi" plugin
6318 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6320 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6322 * gst-libs/gst/vaapi/Makefile.am:
6323 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
6324 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
6325 Add vp9 encoder support in libgstvaapi
6326 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6328 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6331 build: Add check for VP9 encode API support in libva
6332 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6334 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6336 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
6337 gstvaapisurface_drm: fix internal documentation
6339 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6341 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
6342 gstvaapisurface_drm: fix code-style
6344 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6346 * gst/vaapi/gstvaapipluginbase.c:
6347 plugins: remove unused header
6348 Remove the include of gst/allocators/allocators.h since it is not used.
6350 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6352 * gst/vaapi/gstvaapivideobufferpool.h:
6353 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
6354 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
6355 keep compatibility definition.
6356 This patch removes the definition of
6357 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
6358 gst-plugins-base version 1.2.2
6360 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6362 * gst/vaapi/gstvaapipluginbase.c:
6363 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
6364 This is a helper function to improve the readability of
6365 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
6368 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6370 * gst/vaapi/gstvaapipluginbase.c:
6371 plugins: deactivate buffer pool before unref
6372 This buffer pool may still be processing buffers when a caps renegotiation is
6373 done. This one-liner patch deactivates the pool to drain it before it
6376 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6378 * gst/vaapi/gstvaapipluginbase.c:
6379 plugins: no sinkpad bufferpool when decoder
6380 Right now, the decoders create a buffer pool for their sink pad which is not
6381 used at all, because the decoders have never proposed it to upstream.
6382 This patch avoids the buffer pool instantiating when the element inherits from
6383 the GstVideoDecoder class.
6385 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6387 * gst/vaapi/gstvaapipluginbase.c:
6388 plugins: avoid to get/set pool config twice
6389 This patch is a bit of optimization, since the bufferpool configuration is get
6390 when the pool is created. Hence, we only need to request it when the pool from
6391 the allocation query is reused.
6393 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6395 * gst/vaapi/gstvaapipluginbase.c:
6396 plugins: destroy pool earlier if non-vaapi
6397 If the offered pool in decide_allocation() vmethod doesn't have the
6398 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
6399 so it could be created later.
6401 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6403 * gst/vaapi/gstvaapivideobufferpool.c:
6404 vaapivideobufferpool: split caps validation
6405 When validating the caps from bufferpool config, this patch distinguishes the
6406 error from no caps received (NULL) from the invalid caps (cannot be converted
6407 into GstVideoInfo structure).
6409 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6411 * gst/vaapi/gstvaapidecode.c:
6412 * gst/vaapi/gstvaapipluginbase.c:
6413 plugins: check for caps in query earlier
6414 Check for caps as soon gst_query_parse_allocation() returns.
6416 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6418 * gst/vaapi/gstvaapipluginbase.c:
6419 * gst/vaapi/gstvaapipluginbase.h:
6420 plugins: remove unused variables
6421 This variables stopped to be used since commit 001a5c63, which removed the
6424 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6426 * gst/vaapi/gstvaapipluginbase.c:
6427 plugins: fix potential memleak from commit 9159328
6428 If gst_video_info_from_caps() fails it is required to unref the instantiated
6431 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6433 * gst/vaapi/gstvaapipostproc.c:
6434 vaapipostproc: handle if gst_video_info_from_caps() fails
6435 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
6438 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6440 * gst/vaapi/gstvaapipluginbase.c:
6441 plugins: handle if gst_video_info_from_caps() fails
6442 Let's play safe and return error if, somehow, the received caps are wrong.
6444 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6446 * gst/vaapi/gstvaapipluginbase.c:
6447 plugins: relate errors to instance
6448 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
6449 will show the name of the vaapipluginbase instance that failed.
6450 Also, the code-style is fixed, where some error labels need to be surrounded
6453 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6455 * gst/vaapi/gstvaapipluginbase.c:
6456 * gst/vaapi/gstvaapipluginutil.c:
6457 * gst/vaapi/gstvaapisink.c:
6458 plugins: use GstVideoInfo accessors
6459 Instead of access to GstVideInfo members directly, use their accessors
6460 macros. This patch makes more resistance to future changes in GStreamer core.
6462 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6464 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
6465 * gst/vaapi/gstvaapipluginbase.c:
6466 * gst/vaapi/gstvaapipostproc.c:
6467 * tests/simple-encoder.c:
6468 remove spurious gst_video_info_init()
6469 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
6470 gst_video_info_init(), hence it is not required to call it before them. This
6471 patch removes these spurious calls.
6473 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6475 * gst/vaapi/gstvaapipluginbase.c:
6476 vaapipluginbase: code-style: rename goto label
6477 The error labels have error_ prefix, but this one.
6479 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6481 * gst/vaapi/gstvaapivideomemory.c:
6482 vaapivideomemory: use allocator custom alloc flag
6483 Instead of a dummy alloc() vmethod, the allocator instance set the flag
6484 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
6485 gst_allocator_alloc() on the allocator.
6487 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6489 * gst/vaapi/gstvaapivideobufferpool.c:
6490 vaapivideobufferpool: relate errors to instance
6491 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
6492 the vaapivideobufferpool instance that failed.
6494 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6496 * gst/vaapi/gstvaapipluginbase.c:
6497 plugins: remove gst_vaapi_plugin_base_set_pool_config()
6498 This function helper make sense for GStreamer 1.2, but it is not helpful for
6499 greater version since the validation is already done in the API implementation.
6500 Thus, it is removed.
6502 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6504 * gst/vaapi/gstvaapipluginbase.c:
6505 gstvaapipluginbase: Fix typo in doc
6507 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6509 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6510 encoder : h264: Disable b-frame encode in low-power mode
6511 This is a workaround since vaapi-intel-driver doesn't have
6512 support for B-frame encode when utilizing low-power-enc
6514 Fixme :We should query the VAConfigAttribEncMaxRefFrames
6515 instead of blindly disabling b-frame support and set b/p frame count,
6516 buffer pool size etc based on the query result.
6517 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6519 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6521 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6522 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
6523 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
6524 Remove the duplicate property "low-power-enc" and use the
6525 tune property for enabling low power encoding mode.
6526 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6528 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6530 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6531 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
6532 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6534 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6536 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6537 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6538 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
6539 encoder: h264: Add support of low power/high performance encoding mode
6540 Added a new property "low-power-enc" for enabling low power
6541 encoding mode. Certain encoding tools may not be available
6542 with the VAEntrypointEncSliceLP.
6543 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6545 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6547 * gst-libs/gst/vaapi/gstvaapitypes.h:
6548 * gst-libs/gst/vaapi/gstvaapiutils.c:
6549 * gst-libs/gst/vaapi/gstvaapivalue.c:
6550 Add mapping for Macroblock level rate control (VA_RC_MB)
6552 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6554 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6555 gstvaapidisplay: Add VAEntrypointEncSliceLP support
6556 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6558 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6560 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6561 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6562 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
6563 This is for implementations that supports low_power/high_performance
6564 variant for slice level encode.
6565 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6567 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6569 * gst/vaapi/gstvaapipostprocutil.c:
6570 vaapipostproc: negotiate frame size fixation
6571 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
6572 using the sink caps, also it use the next capsfilter.
6573 This code is a shameless copy of gst_video_scale_fixate_caps() from
6574 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
6575 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6577 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
6579 * gst/vaapi/gstvaapipostprocutil.c:
6580 vaapipostproc: don't use GstVideoInfo for src caps
6581 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
6582 this patch enables the first step for caps negotiation with a possible
6583 following caps filter.
6584 _get_preferred_caps() will traverse the possible src caps looking for the one
6585 wit the preferred feature and the preferred color format. Then the color
6586 format, the frame size and the frame rate are fixated.
6587 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6589 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6591 * gst/vaapi/gstvaapipostproc.c:
6592 * gst/vaapi/gstvaapipostprocutil.c:
6593 * gst/vaapi/gstvaapipostprocutil.h:
6594 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
6595 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
6596 No functional changes.
6597 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6599 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6601 * gst/vaapi/gstvaapipostproc.c:
6602 vaapipostproc: simplify code
6603 Change a convoluted snippet to find the preferred color format in the peer
6605 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6607 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6609 * gst/vaapi/gstvaapipostproc.c:
6610 vaapipostproc: use othercaps for preferred caps
6611 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
6612 from fixate_caps() vmethod to find the preferred caps feature and color
6614 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6616 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
6618 * gst/vaapi/gstvaapipostproc.c:
6619 vaapipostproc: add fixate_caps() vmethod
6620 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
6621 implements the fixate_caps() vmethod and moves code around.
6622 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6624 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6626 * gst/vaapi/Makefile.am:
6627 * gst/vaapi/gstvaapipostproc.c:
6628 * gst/vaapi/gstvaapipostprocutil.c:
6629 * gst/vaapi/gstvaapipostprocutil.h:
6630 vaapipostproc: set early properties restrictions
6631 When running transform_caps() vmethod, returning the srcpad caps, the caps are
6632 early restricted to the element properties set: width, height, format and
6634 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
6636 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6638 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6640 * gst/vaapi/gstvaapipostproc.c:
6641 vaapipostproc: log the caps transformation
6642 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6644 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6646 * gst/vaapi/gstvaapipostproc.c:
6647 vaapipostproc: no GLTextureUpload in sinkpad
6648 As the vaapipostproc does not process frames with the VideoGLTextureUpload
6649 meta, the feature is removed from the sink pad template.
6650 https://bugzilla.gnome.org/show_bug.cgi?id=765931
6652 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
6654 * gst/vaapi/gstvaapivideobufferpool.c:
6655 vaapibufferpool: do not create texture upload meta if dmabuf
6656 https://bugzilla.gnome.org/show_bug.cgi?id=755072
6658 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6661 build: update git.mk
6663 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6665 * gst/vaapi/gstvaapipluginbase.h:
6666 plugin: fix macro processor check
6667 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
6668 defined in config.h, but it would be 0 or 1 depending on the configure output.
6669 https://bugzilla.gnome.org/show_bug.cgi?id=765702
6671 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6673 * tests/test-display.c:
6674 tests: display: guard possible unused variables
6675 https://bugzilla.gnome.org/show_bug.cgi?id=765702
6677 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6683 * tests/simple-decoder.c:
6684 * tests/test-decode.c:
6685 * tests/test-display.c:
6686 * tests/test-filter.c:
6687 * tests/test-h264.c:
6688 * tests/test-jpeg.c:
6689 * tests/test-mpeg2.c:
6690 * tests/test-mpeg4.c:
6691 * tests/test-subpicture-data.c:
6692 * tests/test-subpicture.c:
6693 * tests/test-surfaces.c:
6694 * tests/test-textures.c:
6696 * tests/test-windows.c:
6697 tests: inforce gstreamer code-style
6699 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6701 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6702 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
6703 It seems driver requires enablement of cu_qp_delta_enabled_flag
6704 for modifying QP values to controll the CBR mode bitrate.
6705 https://bugzilla.gnome.org/show_bug.cgi?id=749852
6707 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6709 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6710 encoder: h265: Add CBR Encoding support
6711 https://bugzilla.gnome.org/show_bug.cgi?id=749852
6713 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
6715 * gst-libs/gst/vaapi/gstvaapisurface.c:
6716 gstvaapisurface: explicitely clear TILING flag if dmabuf
6717 https://bugzilla.gnome.org/show_bug.cgi?id=755072
6719 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
6721 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
6722 gstvaapisurface_drm: release image when done
6723 Otherwise intel-vaapi-driver will fail to process the exported surface because
6724 it will find it is currently derived, so considered as busy.
6725 https://bugzilla.gnome.org/show_bug.cgi?id=755072
6727 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
6729 * gst/vaapi/gstvaapipostproc.c:
6730 vaapipostproc: already have a surface proxy if dmabuf
6731 https://bugzilla.gnome.org/show_bug.cgi?id=755072
6733 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
6735 * gst/vaapi/gstvaapipostproc.c:
6738 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6740 * gst/vaapi/gstvaapidecode.c:
6741 * gst/vaapi/gstvaapipluginbase.c:
6742 * gst/vaapi/gstvaapipluginbase.h:
6743 vaapidecode: search driver in whitelist
6744 If the backend driver vendor string is not in a white-list, and the
6745 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
6746 change it state from NULL to READY, hence the auto-plug mechanism will look
6747 for another decoder.
6748 This patch assumes the GstContext has already being shared along the pipeline
6749 and the element has a valid GstVaapiDisplay instance.
6750 https://bugzilla.gnome.org/show_bug.cgi?id=764673
6752 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6754 * gst/vaapi/gstvaapidecode.c:
6755 * gst/vaapi/gstvaapiencode.c:
6756 * gst/vaapi/gstvaapipluginbase.c:
6757 * gst/vaapi/gstvaapipluginbase.h:
6758 * gst/vaapi/gstvaapipostproc.c:
6759 * gst/vaapi/gstvaapisink.c:
6760 plugins: rework set_context() vmethod definition
6761 In bug 757598 was added the set_context() vmethod chain up in
6762 GstVaapiPluginBase. But it is buggy, since the parent_class address is
6763 assigned to the last element which called gst_vaapi_plugin_base_class_init().
6764 No error has shown up since none of the element's base classes redefined
6765 set_context() vmethod from GstElement, so always the correct function was
6766 called. Still this code is wrong and this patch make it right.
6767 Since set_context() is the same code, a macro is used to implement that code
6768 in all the gst-vaapi elements.
6769 https://bugzilla.gnome.org/show_bug.cgi?id=765368
6771 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6773 * gst/vaapi/gstvaapipostproc.c:
6774 vaapipostproc: resize if negotiated and allocation caps are different
6775 Since commit 859a2b2, in vaapidecode, allocation query can be different from
6776 the negotiated caps.
6777 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
6778 resize the frame to the negotiated, if and only if, some other parameter is
6779 activated to avoid the passthrough. If it is not, the surface won't be mapped
6780 into a image. If not, the image won't be resized and the output buffer would be
6782 This patch will break the passthrough if the allocation query is different
6783 from the negotiation caps, forcing the resizing.
6784 https://bugzilla.gnome.org/show_bug.cgi?id=765095
6786 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6788 * gst/vaapi/gstvaapidecode.c:
6789 vaapidecode: improve code readability
6790 No functional changes.
6792 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6794 * gst/vaapi/gstvaapidecode.c:
6795 vaapidecode: move GstCapsFeatures near to its use
6796 Move the handling of the GstCapsFeatures just after it is used, in order to
6797 avoid handling its memory.
6799 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6801 * gst/vaapi/gstvaapidecode.c:
6802 vaapidecode: caps negotiation checks
6803 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
6804 compiled with GL support.
6806 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6808 * gst/vaapi/gstvaapidecode.c:
6809 * gst/vaapi/gstvaapipluginbase.c:
6810 * gst/vaapi/gstvaapipluginbase.h:
6811 * gst/vaapi/gstvaapipostproc.c:
6812 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
6814 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6816 * gst/vaapi/gstvaapidecode.c:
6817 vaapidecode: bail early if not caps in decide_allocation()
6819 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6821 * gst/vaapi/gstvaapidecode.c:
6822 * gst/vaapi/gstvaapipluginbase.c:
6823 * gst/vaapi/gstvaapipluginutil.c:
6824 * gst/vaapi/gstvaapipluginutil.h:
6825 * gst/vaapi/gstvaapipostproc.c:
6826 plugin: use allowed caps filter from element
6827 Instead of using the srcpad template caps for filtering the peer caps, the
6828 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
6829 for the element's allowed caps.
6830 With this modification, the vaapipostproc element simplifies a bit its code.
6831 https://bugzilla.gnome.org/show_bug.cgi?id=765223
6833 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6835 * gst/vaapi/gstvaapidecode.c:
6836 * gst/vaapi/gstvaapipluginbase.c:
6837 * gst/vaapi/gstvaapipluginutil.c:
6838 * gst/vaapi/gstvaapipluginutil.h:
6839 * gst/vaapi/gstvaapipostproc.c:
6840 plugin: remove function parameter
6841 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
6842 saved if the out format is used for both: in and out. Thus the code is more
6844 https://bugzilla.gnome.org/show_bug.cgi?id=765223
6846 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6848 * gst/vaapi/gstvaapidecode.c:
6849 vaapidecode: warns if driver will do color conversions
6850 If the downstream feature is system memory, the surface has to be mapped,
6851 hence a warning message is logged saying that the driver has to do color
6852 conversions. This might be troublesome because not all the color conversion
6853 combinations are supported by the VA-API drivers, and there is not a reliable
6854 way to know them before hand.
6855 https://bugzilla.gnome.org/show_bug.cgi?id=765223
6857 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6859 * gst/vaapi/gstvaapipluginutil.c:
6860 plugin: honour negotiated format
6861 Instead of setting the requested format by the caller, the function
6862 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
6863 the negotiated format.
6864 A new helper function was added: gst_vaapi_find_preferred_format(), which,
6865 given the format list from the negotiated caps, will choose the best one, if
6866 possible, given the native format.
6867 https://bugzilla.gnome.org/show_bug.cgi?id=765223
6869 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6871 * gst/vaapi/gstvaapipluginutil.c:
6872 plugin: simplify caps feature selection
6873 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
6874 Instead of intersecting custom caps to find the preferred feature, the peer
6875 caps are traversed in order to find the preferred feature, according to an
6876 ordered feature priority list.
6877 In the case of GLTextureUploadMeta, the colour format is computed using
6878 GstVideoInfo of the selected fixed caps.
6879 https://bugzilla.gnome.org/show_bug.cgi?id=765223
6881 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6883 * gst/vaapi/gstvaapidecode.c:
6884 vaapidecode: use macros for GstVideoInfo
6885 Instead of accessing directly to the members of the structure, use the macros.
6887 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6889 * gst/vaapi/gstvaapidecode.c:
6890 vaapidecode: refactor is_display_resolution_changed()
6891 Make the comparisons more readable and simple.
6892 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6894 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6896 * gst/vaapi/gstvaapidecode.c:
6897 * gst/vaapi/gstvaapidecode.h:
6898 vaapidecode: keep only display_{width,height}
6899 Instead of keeping the structure GstVideoInfo when we are using its width and
6900 height, we only keep these two guints.
6901 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6903 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6905 * gst/vaapi/gstvaapidecode.c:
6906 vaapidecode: decoded_info is valid at src caps update
6907 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
6908 is called, then we don't need to verify or replace it with the sinkpad info
6910 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6912 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6914 * gst/vaapi/gstvaapidecode.c:
6915 vaapidecode: always a valid format in decoded_info
6916 Always set a valid format in decoded_info class variable.
6917 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6919 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6921 * gst/vaapi/gstvaapidecode.c:
6922 vaapidecode: code style fixes
6923 No functional changes.
6924 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6926 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6928 * gst/vaapi/gstvaapidecode.c:
6929 vaapidecode: init {decoded,display}_info at open()
6930 It is required to initialize {decoded,display}_info variables when the decoder
6931 is open, not only at instance initialization.
6932 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6934 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6936 * gst/vaapi/gstvaapidecode.c:
6937 * gst/vaapi/gstvaapidecode.h:
6938 vaapidecode: remove spurious class variables
6939 active, do_pool_renego and do_outstate_renego class variables were used to
6940 indicate when negotiate downstream once, but now that each time a new surface
6941 resolution is pop out a renegotation verified, these variable are not required
6943 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6945 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6947 * gst/vaapi/gstvaapidecode.c:
6948 * gst/vaapi/gstvaapipluginbase.c:
6949 * gst/vaapi/gstvaapipluginbase.h:
6950 * gst/vaapi/gstvaapipostproc.c:
6951 remove custom allocation query
6952 When resolving bug 753914, a custom allocation query was added, overlapping
6953 the responsibilities of GstVideoDecoder.
6954 But with the merge of the patches from bug 764421 this overlapping was not
6955 required anymore. This patch restores this situation setting the
6956 allocation_caps in the GstVideoCodecState when needed.
6957 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6959 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
6962 Automatic update of common submodule
6963 From 6f2d209 to ac2f647
6965 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6967 * gst/vaapi/gstvaapidecode.c:
6968 * gst/vaapi/gstvaapidecodebin.c:
6969 * gst/vaapi/gstvaapipostproc.c:
6970 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
6971 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
6972 their caps templates if they were not compiled either with GLX or EGL support.
6974 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6976 * gst/vaapi/gstvaapipluginutil.c:
6977 plugins: fix compilation when EGL/GLX is disabled
6978 The compiler might complain of gst_vaapi_create_display_from_handle() being
6979 unused if both EGL and GLX are disabled. This patch avoid that compilation
6982 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
6984 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
6985 libs: fix deleting a GstVaapiCodedBufferPool object
6986 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
6987 Otherwise it is not called when the pool is destroyed and all objects
6988 referenced by the GstVaapiVideoPool are never released.
6989 https://bugzilla.gnome.org/show_bug.cgi?id=764993
6991 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6993 * gst-libs/gst/vaapi/gstvaapisurface.c:
6994 surface: destroy derived image
6995 If gst_vaapi_image_new_with_image() fails, the created derived image should be
6996 destroyed, otherwise the surface cannot be processed because is being used.
6997 https://bugzilla.gnome.org/show_bug.cgi?id=764607
6999 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7001 * gst/vaapi/gstvaapidecode.c:
7002 vaapidecode: add stop function
7003 Clear any status on the current stream:
7004 stored frames, caps and decoder configuration
7005 https://bugzilla.gnome.org/show_bug.cgi?id=763460
7007 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7009 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7010 decoder: vp9: Align with the ABI changes in vp9 codecparser
7011 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
7012 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
7013 These fields are only present in keyframe or intra-only frame, no need to
7014 duplicate them for inter-frames.
7015 https://bugzilla.gnome.org/show_bug.cgi?id=764082
7017 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7019 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7020 decoder: vp9 : Add 10bit decoding support (Profile2)
7021 https://bugzilla.gnome.org/show_bug.cgi?id=764082
7023 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7025 * gst-libs/gst/vaapi/gstvaapiprofile.c:
7026 * gst-libs/gst/vaapi/gstvaapiprofile.h:
7027 gstvaapiporfile: Add more VP9 profile definitions
7028 https://bugzilla.gnome.org/show_bug.cgi?id=764082
7030 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7034 build: possibility to disable tests
7035 The configuration option --disable-examples will disable the compilation of
7036 the sample apps in tests/ directory.
7038 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7040 * gst/vaapi/gstvaapiencode_h264.c:
7041 * gst/vaapi/gstvaapiencode_h265.c:
7042 * gst/vaapi/gstvaapiencode_jpeg.c:
7043 * gst/vaapi/gstvaapiencode_mpeg2.c:
7044 * gst/vaapi/gstvaapiencode_vp8.c:
7045 * gst/vaapi/gstvaapipluginutil.h:
7046 * gst/vaapi/gstvaapisink.c:
7047 unify caps template for VAAPI encoders and decoders
7048 There is no difference in VAAPI surface caps between encoders and decoders.
7049 Thus, the patch makes a simplification by removing encoders specific caps and
7050 shares the same definition of VAAPI surfaces caps for all the elements.
7052 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7054 * gst/vaapi/gstvaapidecode.c:
7055 vaapidecode: move gst_vaapidecode_negotiate() code
7056 With it we can remove a function declaration, making the code a bit
7058 https://bugzilla.gnome.org/show_bug.cgi?id=764316
7060 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7062 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
7063 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
7064 * gst/vaapi/gstvaapidecode.c:
7065 docs: generate vaapijpegdec documentation
7066 https://bugzilla.gnome.org/show_bug.cgi?id=764314
7068 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7070 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7071 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
7072 The array_completeness, reserved bit and num_nal_units fields
7073 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
7074 but not for each occurance of similar headers.
7075 https://bugzilla.gnome.org/show_bug.cgi?id=764274
7077 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7079 * gst-libs/gst/vaapi/video-format.c:
7080 video-format: Keep the HW order preference while mapping to GstVideoFormats
7082 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7084 * gst/vaapi/gstvaapidecode.c:
7085 * gst/vaapi/gstvaapipluginbase.c:
7086 * gst/vaapi/gstvaapipluginutil.c:
7087 * gst/vaapi/gstvaapipluginutil.h:
7088 * gst/vaapi/gstvaapivideomemory.c:
7089 gst/vaapi: keep precedence for NV12 over I420
7090 Use NV12 as default "assumption" format all over.
7091 NV12 is the default high priority format used my most of the
7094 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7096 * gst/vaapi/gstvaapidecode.c:
7097 vaapidecode: Use video format derived from decoded surface as default src pad format
7098 Use the surface format derived from first decoded surface
7099 to negotiate the downstream video format capabilities.
7100 https://bugzilla.gnome.org/show_bug.cgi?id=759181
7102 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
7104 * gst-libs/gst/vaapi/gstvaapiimage.c:
7105 * gst-libs/gst/vaapi/video-format.c:
7106 * gst/vaapi/gstvaapidecode.c:
7107 * gst/vaapi/gstvaapipluginutil.h:
7108 * gst/vaapi/gstvaapisink.c:
7109 Add P010 video format support
7110 The P010 video format is the native format used by the vaapi intel driver
7111 for HEVCMain10 decode . Add support for planes and images of this video format.
7112 https://bugzilla.gnome.org/show_bug.cgi?id=759181
7114 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
7116 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
7117 libs: x11: allows 30-bit colour depth
7118 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
7119 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
7120 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
7122 https://bugzilla.gnome.org/show_bug.cgi?id=764256
7124 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7126 * gst/vaapi/gstvaapivideometa_texture.c:
7127 gltextureupload: use an array for texture type
7128 Instead of using a single value for the texture type, use an array with 4
7129 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
7131 https://bugzilla.gnome.org/show_bug.cgi?id=764231
7133 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7135 * gst/vaapi/gstvaapidecode.c:
7136 * gst/vaapi/gstvaapipluginbase.c:
7137 vaapidecode: Fix decide_allocation handling
7138 Set the already configured pool in decide_allocation query
7139 in cases where pool renegotiation is not required.
7140 https://bugzilla.gnome.org/show_bug.cgi?id=753914
7142 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7144 * gst/vaapi/gstvaapidecode.c:
7145 vaapidecode: Derive and save the decoded surface format
7146 After the decoding of first frame, try to extract the exact
7147 decoded surface format using vaDeriveImage and keep this
7148 as the format in decoded_info.
7149 https://bugzilla.gnome.org/show_bug.cgi?id=753914
7151 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7153 * gst/vaapi/gstvaapidecode.c:
7154 * gst/vaapi/gstvaapidecode.h:
7155 * gst/vaapi/gstvaapipluginbase.c:
7156 * gst/vaapi/gstvaapipluginbase.h:
7157 * gst/vaapi/gstvaapipostproc.c:
7158 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
7159 -- Maintaing decoded surface resoluton and actual display resoultion separately
7160 -- Before pushing every frames downstream, check for the requirement of pool negoation and
7161 output_state negotiation: This is needed to avoid multiple issuses with cropping,
7162 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
7163 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
7164 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
7165 This is slight overhead, but safe enough. Optimization could be possible though.
7166 https://bugzilla.gnome.org/show_bug.cgi?id=753914
7168 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7170 * gst/vaapi/gstvaapidecode.c:
7171 vaapidecode: Delay the output format setting until we have a decoded surface
7172 This will help to consoidate the out caps negotiation to a single place,
7173 which will make the code simpler, allows to get the exact decoded format
7174 if needed and the selected chroma type too.
7175 https://bugzilla.gnome.org/show_bug.cgi?id=753914
7177 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7179 * gst/vaapi/gstvaapidecode.h:
7180 vaapidecode: GST_VAAPIDECODE macro is a cast
7181 This patch is the continuation of commit 1e1d3b1d because the function
7182 gst_vaapidecode_get_type() got undefined since then.
7183 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
7184 structure. The rest of the GObject handling macros were deleted too.
7186 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
7191 === release 1.8.0 ===
7193 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
7198 * gstreamer-vaapi.doap:
7201 === release 1.7.91 ===
7203 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
7208 * gstreamer-vaapi.doap:
7211 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7213 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7214 decoder: h265: Fix offset calculation in codec_data parsing
7215 https://bugzilla.gnome.org/show_bug.cgi?id=762922
7217 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7219 * gst/vaapi/gstvaapidecodebin.c:
7220 vaapidecodebin: don't handle jpeg decoding
7221 As JPEG decoder has been split and demoted, it cannot be handled by
7223 Added a fixme comment regarding the future removal of vaapidecode.
7224 https://bugzilla.gnome.org/show_bug.cgi?id=734093
7226 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7228 * gst/vaapi/gstvaapidecode.c:
7229 vaapidecode: split out jpeg decoder
7230 Split, as a different element, the JPEG decoder.
7231 https://bugzilla.gnome.org/show_bug.cgi?id=734093
7233 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7235 * gst/vaapi/gstvaapi.c:
7236 * gst/vaapi/gstvaapidecode.c:
7237 * gst/vaapi/gstvaapidecode.h:
7238 vaapidecode: register decoder with internal GType
7239 Don't expose the the vaapidecode GType, instead expose a function
7240 which will register element.
7241 This is the first step to split the decoder by codecs.
7242 https://bugzilla.gnome.org/show_bug.cgi?id=734093
7244 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7246 * gst/vaapi/gstvaapidecode.c:
7247 vaapidecode: remove unused function declaration
7248 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
7249 code-style of the other pre-declared functions.
7251 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7253 * docs/plugins/Makefile.am:
7254 build: git ignore gtkdoc generated files
7256 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7259 build: handle git ignore in m4 directory
7261 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7263 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7264 vaapidecoder_h265: plug leak of h265 parsing info
7265 If something goes wrong while parsing, the info object is
7267 https://bugzilla.gnome.org/show_bug.cgi?id=763121
7269 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7271 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7272 vaapidecoder_h264: plug leak of h264 parsing info
7273 If something goes wrong while parsing, the info object is
7275 https://bugzilla.gnome.org/show_bug.cgi?id=763121
7277 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
7279 * gst/vaapi/gstvaapipluginutil.c:
7280 plugins: fix gstgl and vaapi memory leaks
7281 1\ Unref gl_display and gl_window as soon they are not needed.
7282 2\ Remove an unneeded display type check, since is handled by
7283 gst_vaapi_created_display_from_handle()
7284 3\ Unref vaapi's display if the display cannot be bind to a GL API.
7285 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7286 https://bugzilla.gnome.org/show_bug.cgi?id=763354
7288 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
7290 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7291 vaapidisplay: Fix uninitialized value error for VA attribute
7292 https://bugzilla.gnome.org/show_bug.cgi?id=763362
7294 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7296 * gst/vaapi/gstvaapidecode.c:
7297 * gst/vaapi/gstvaapiencode.c:
7298 plugins: proxy information from downstream caps
7299 Propagate to upstream the downstream information, such as fps, par, etc.
7300 This will fix several "getcaps" critical warnings in gst-validate.
7301 https://bugzilla.gnome.org/show_bug.cgi?id=763300
7303 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7305 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7306 decoder: vp9: Assign values for profile and bit_depth from frame header
7307 bit_depth field has added only in VA-API 0.39.0, added version check.
7309 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
7312 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
7313 https://bugzilla.gnome.org/show_bug.cgi?id=763067
7315 === release 1.7.90 ===
7317 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
7322 * gstreamer-vaapi.doap:
7325 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
7328 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
7330 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7332 * gst/vaapi/gstvaapidecode.c:
7333 vaapidecode: intersect with filter in getcaps()
7334 In commit 6034734d I forgot to add the caps filter intersection in the
7335 getcaps() vmethod generating a regression when a capsfilter is set in the
7337 This commit adds the caps filter intersection.
7339 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
7341 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7342 Add memset to initialize value for VAEncSliceParameterBufferJPEG
7343 https://bugzilla.gnome.org/show_bug.cgi?id=762850
7345 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
7348 Automatic update of common submodule
7349 From b64f03f to 6f2d209
7351 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7356 build: add m4 directory
7357 Instead of rely on the automatic creation of m4 directory by aclocal, we
7358 already control it. Later we could create our own m4 scripts in order to
7359 unclutter configure.ac
7360 https://bugzilla.gnome.org/show_bug.cgi?id=762528
7362 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
7364 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7365 decoder: hevc: Fill dependent slice segment headers while parsing
7366 Copy the data into the dependent slice segment header from the
7367 corresponding independent slice segment header during parsing.
7368 Previously the reference to the "previous" independent header was
7369 held through the parsing phase and then dereferenced during the
7370 decoding phase. This caused all dependent headers to be populated
7371 with the data of the AU's last independent header instead of the
7372 proper corresponding header.
7373 https://bugzilla.gnome.org/show_bug.cgi?id=762352
7375 - Reworded commit message
7377 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7379 * gst/vaapi/gstvaapidecode.c:
7380 vaapidecode: use video decoder getcaps()
7381 The usage of getcaps() vmethod is preferred than to handle manually the sink's
7383 In order to avoid function declarations, this patch moves the class_init()
7384 method to the end of the file.
7386 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7388 * gst/vaapi/gstvaapipluginbase.c:
7389 plugins: remove deprecated code
7390 Since we are only supporting current GStreamer version, since 1.3
7391 gst_buffer_pool_config_add_option() checks if the option to add is
7392 already set. There is no need to do it ourselves.
7394 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7396 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7397 vaapidecoder_h265: fix parsing of NALU aligned data
7398 Don't assume the whole buffer is a single NAL, instead look for the
7399 next start code in case there are multiple NALs per buffer.
7400 https://bugzilla.gnome.org/show_bug.cgi?id=762328
7402 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7404 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7405 vaapidecoder_h264: fix parsing of NALU aligned data
7406 Don't assume the whole buffer is a single NAL, instead look for the
7407 next start code in case there are multiple NALs per buffer.
7408 https://bugzilla.gnome.org/show_bug.cgi?id=762328
7410 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
7412 * gst/vaapi/gstvaapisink.c:
7413 vaapisink: Fix event,pad,structure memory leaks
7414 https://bugzilla.gnome.org/show_bug.cgi?id=762229
7416 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
7418 * gst/vaapi/gstvaapipluginbase.c:
7419 Add icamerasrc as dmabuf capable peer element
7420 icamerasrc is another gstreamer plugin using to capture RAW
7421 frames from camera device. It is based on libcamhal library.
7422 There are some properties available to control icamera behavior.
7423 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
7424 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
7425 https://bugzilla.gnome.org/show_bug.cgi?id=759481
7426 Fixme: This is the similar workaround we done for v4l2src.
7427 The workaround will be removed once we fix #755072
7429 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
7431 * gst/vaapi/gstvaapipluginbase.c:
7432 vaapipluginbase: Fix structure memory leak
7433 config structure is not being freed in all cases
7434 https://bugzilla.gnome.org/show_bug.cgi?id=762172
7436 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
7438 * gst/vaapi/gstvaapidecode.c:
7439 vaapidecode: Fix videocodec state memory leak
7440 When state is not NULL and either width/height of video info is 0, then state leaks
7441 https://bugzilla.gnome.org/show_bug.cgi?id=762173
7443 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
7445 * gst/vaapi/gstvaapisink.c:
7446 vaapisink: post message for application for unhandled keyboard/mouse events
7447 Makes (most) keyboard shortcuts work in gst-play-1.0 when
7448 the video window has focus.
7450 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
7452 * gst/vaapi/gstvaapidecode.c:
7453 vaapidecode: Fix capsfeature memory leak
7454 https://bugzilla.gnome.org/show_bug.cgi?id=762116
7456 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
7458 * gst/vaapi/gstvaapisink.c:
7459 vaapisink: Fix capsfeature memory leak
7460 caps feature allocated is not being freeing in some cases
7461 https://bugzilla.gnome.org/show_bug.cgi?id=762111
7463 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
7466 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
7467 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
7468 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
7469 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7470 * gst-libs/gst/vaapi/gstvaapifilter.c:
7471 * gst/vaapi/gstvaapidecodebin.c:
7472 * gst/vaapi/gstvaapipluginutil.c:
7473 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
7475 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
7478 configure: Fix setting of extra compiler warning flags
7480 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7482 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
7483 libs: fix build error
7484 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
7485 functions are used only when libva's API version is greater than 0.36.0
7486 This patch guards those functions completely rather than just their
7487 content. The patch is a continuation of commit 38f8fea4
7488 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
7489 https://bugzilla.gnome.org/show_bug.cgi?id=762055
7491 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
7493 * tests/simple-encoder.c:
7494 tests: simple-encoder: fix build error
7495 argument mismatch of gsize with 'long unsigned int'
7496 https://bugzilla.gnome.org/show_bug.cgi?id=762055
7498 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7500 * gst/vaapi/gstvaapisink.c:
7501 vaapisink: Fix wrong caps advertising
7502 The get_caps() should only report the supported formats.
7503 https://bugzilla.gnome.org/show_bug.cgi?id=761147
7505 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7508 Automatic update of common submodule
7509 From e97c9bb to b64f03f
7511 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7513 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
7514 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
7515 * gst/vaapi/gstvaapi.c:
7516 * gst/vaapi/gstvaapiencode_h264.c:
7517 * gst/vaapi/gstvaapiencode_h265.c:
7518 * gst/vaapi/gstvaapiencode_jpeg.c:
7519 * gst/vaapi/gstvaapiencode_mpeg2.c:
7520 * gst/vaapi/gstvaapiencode_vp8.c:
7521 rename encoders to vaapi{codec}enc
7522 Trying to comply with GStreamer's element names, this patch renames the
7523 encoders using the name format vaapi{codec}enc.
7524 In this way, the plugin documentation is linked correctly.
7525 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7527 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7530 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
7531 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7533 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7536 build: remove vp9 parser check
7537 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
7538 the check of the parser, as we did for the others.
7539 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7541 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7546 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7548 === release 1.6.0 ===
7550 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7555 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7557 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
7558 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7559 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7560 libs: fix compiler warnings
7561 After setting the release flags, the compiler warns about a couple
7562 initialized variables.
7563 Also marked a couple of set variables as unused, because they are only
7565 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7567 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7569 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
7570 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
7571 * gst/vaapi/gstvaapidecode.c:
7572 * gst/vaapi/gstvaapidecodebin.c:
7573 * gst/vaapi/gstvaapiencode_h264.c:
7574 * gst/vaapi/gstvaapiencode_h265.c:
7575 * gst/vaapi/gstvaapiencode_jpeg.c:
7576 * gst/vaapi/gstvaapiencode_mpeg2.c:
7577 * gst/vaapi/gstvaapiencode_vp8.c:
7578 * gst/vaapi/gstvaapipostproc.c:
7579 * gst/vaapi/gstvaapisink.c:
7580 docs: update plugin documentation
7581 Update all the documentation of elements of the vaapi plugin.
7582 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7584 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7589 * docs/plugins/Makefile.am:
7590 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
7591 * docs/plugins/gstreamer-vaapi-plugins.types:
7592 * docs/reference/Makefile.am:
7593 * docs/reference/plugins/Makefile.am:
7594 * docs/reference/plugins/plugins-sections.txt:
7595 * docs/reference/plugins/plugins.types:
7596 * docs/version.entities.in:
7597 resurrect gtk-doc machinery
7598 Our auto-generated documentation has been a bit neglected. This patch replaces
7599 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
7600 plugins, elements and libraries.
7601 This patch also re-enables documentation generation.
7602 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7604 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7610 use gst-common submodule
7611 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
7612 GStreamer common submodule.
7613 The documentation generation has been disable temporarily since it needs a
7614 major rework, which will be done in the following commit.
7615 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7617 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7621 add gst-common submodule
7622 Pointing to branch 1.6
7623 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7625 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7627 * gstreamer-vaapi.doap:
7629 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
7630 describe software projects, in particular free and open source software.
7631 The description is used in GStreamer as in many other open source projects.
7632 This patch adds the doap description of this project.
7633 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7635 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7637 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
7638 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7639 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
7640 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
7641 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
7642 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
7643 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
7644 * gst-libs/gst/vaapi/gstvaapiimage.c:
7645 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
7646 * gst-libs/gst/vaapi/gstvaapipixmap.c:
7647 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
7648 * gst-libs/gst/vaapi/gstvaapiprofile.c:
7649 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
7650 libs: humongous code style fix
7651 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
7652 umbrella, we need to comply with the project's code style. This meant to
7653 change a lot of code.
7654 It was decided to use a single massive patch to update the code style.
7655 I would like to apologize with the original developers of this code because of
7656 the history breakage.
7657 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7659 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7661 * gst-libs/gst/vaapi/gstvaapicontext.c:
7662 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7663 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7664 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7665 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7666 * gst/vaapi/gstvaapivideomemory.c:
7667 libs: small refactors to enhance the code style
7668 As gst-indent generated ugly code in these cases, this patch changes the used
7669 idiomatic into other one.
7670 No functional changes were introduced.
7671 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7673 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7675 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
7676 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
7677 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
7678 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7679 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7680 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
7681 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
7682 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7683 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7684 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7685 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7686 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
7687 * gst-libs/gst/vaapi/gstvaapifilter.c:
7688 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
7689 * gst-libs/gst/vaapi/gstvaapisurface.c:
7690 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
7691 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7692 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
7693 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
7694 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
7695 * gst-libs/gst/vaapi/gstvaapiwindow.c:
7696 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
7697 libs: small code style fixes
7698 This a set of small code style fixes detected as-is by gst-indent.
7699 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7701 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7703 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
7704 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
7705 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
7706 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
7707 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7708 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
7709 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
7710 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
7711 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7712 libs: trivial comment style fixes
7713 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7715 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7717 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
7718 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
7719 libs: avoid gst-indent mess up
7720 Guard pieces of code to avoid gst-ident to mess up the following code.
7721 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7723 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7725 * gst/vaapi/gstvaapidecode.c:
7726 * gst/vaapi/gstvaapidecodebin.c:
7727 * gst/vaapi/gstvaapipluginutil.c:
7728 * gst/vaapi/gstvaapisink.c:
7729 * gst/vaapi/gstvaapivideomemory.c:
7730 plugins: fix code style
7731 Minor code style changes by executing gst-indent in gst/vaapi directory.
7732 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7734 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7736 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7737 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7738 Fix some more compiler warning
7739 Two (false) compiler warnings about variables potentially
7740 being used uninitialized, and one about a variable being
7742 https://bugzilla.gnome.org/show_bug.cgi?id=759192
7744 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
7746 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7747 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
7748 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7749 * gst-libs/gst/vaapi/gstvaapifilter.c:
7750 * gst/vaapi/gstvaapidecode.c:
7751 * gst/vaapi/gstvaapipluginbase.c:
7752 * gst/vaapi/gstvaapipluginutil.c:
7753 * gst/vaapi/gstvaapipostproc.c:
7754 * tests/simple-encoder.c:
7755 * tests/test-filter.c:
7756 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
7757 Declare variables at the beginning of a code block, which
7758 is how it's done in GStreamer.
7759 https://bugzilla.gnome.org/show_bug.cgi?id=759192
7761 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7763 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7764 decoder: vp9: Fix crop rectangle setting
7765 Align with software vp9dec behaviour: Add crop rectangle
7766 only if display_width/display_height is less than the
7767 frame_hdr->width/frame_hdr->height
7769 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7771 * gst/vaapi/gstvaapidecode.c:
7772 vaapidecode: Fix renegotiation for resolution change
7773 Always renegotiate the pool if the immediate frame which going
7774 to be pushed has a different un-cropped resolution than the already
7777 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7779 * gst/vaapi/gstvaapipluginbase.h:
7780 plugins: use the same pre-processor macro
7781 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
7782 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
7783 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
7784 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
7786 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7788 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7790 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7791 decoder: update a deprecated function
7792 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
7793 deprecated since GStreamer 1.0.
7794 This patch replace it with gst_adapter_prev_pts()
7795 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7797 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7800 build: honor configure's cache
7801 The user might enable --config-cache when calling configure script. If so, our
7802 configuration variables will not be correctly calculated.
7803 This patch extracts the value of our variables either from the cache or from
7804 the operation result.
7805 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7807 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7810 build: use common version variables
7811 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7813 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7816 build: hard-code an unneeded macro
7817 That macro is required for EGL's dynamic module loading, but since
7818 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
7819 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
7820 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7822 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7825 build: refactorization of dependency tracking
7826 This patch tries to avoid branching in configure.ac using a more functional
7827 approach in macros usage.
7828 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7830 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7833 build: check for OpenGL either GLX or EGL are requested
7834 Refactor some code in configure.ac to centralize $enable_opengl definition.
7835 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7837 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7840 build: indent and add square braces
7841 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7843 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7846 build: upgrade autotools version dependency
7847 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7849 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7852 build: enhance string comparisons
7853 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
7854 the string is empty or undefined.
7855 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7857 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7860 build: remove unused variables
7861 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7863 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7866 build: remove check for old version of gstreamer
7867 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7869 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7872 build: remove GStreamer's parsers checks
7873 This patch removes almost all the parsers check since they are already in place,
7874 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
7875 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7877 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7880 * gst/vaapi/Makefile.am:
7881 build: add gstreamer-pbutils dependency
7882 This dependency was added in gstvaapidecodebin with the call
7883 gst_missing_element_message_new().
7884 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7886 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7889 build: fix variable declaration
7890 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7892 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7894 * gst-libs/gst/vaapi/Makefile.am:
7895 build: fix when HEVC decoder is disabled
7896 This a very pathological situation: when we have a HEVC encoder but not a HEVC
7898 The encoder needs functions that are only available when the decoder is
7900 This patch moves the utils functions into the generic sources, such as the
7902 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7904 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7906 * gst/vaapi/Makefile.am:
7907 build: remove unused EGL specific sources
7908 These Makefile variables are not used at all.
7909 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7911 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7913 * gst/vaapi/Makefile.am:
7914 build: remove check for GStreamer 1.2
7915 Since we are working for current stable GStreamer 1.6
7916 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7918 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7920 * gst/vaapi/gstvaapiparse.h:
7921 Remove more video parser crufts
7922 This header is not used anymore since it declares parsers that are
7923 already in GStreamer 1.6
7924 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7926 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
7929 * docs/reference/Makefile.am:
7930 * docs/reference/libs/Makefile.am:
7931 * docs/reference/libs/libs-docs.xml.in:
7932 * docs/reference/libs/libs-overrides.txt:
7933 * docs/reference/libs/libs-sections.txt:
7934 docs: remove library documentation which is non-public now
7935 https://bugzilla.gnome.org/show_bug.cgi?id=759192
7937 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
7941 * debian.upstream/Makefile.am:
7942 * debian.upstream/changelog.in:
7943 * debian.upstream/compat:
7944 * debian.upstream/control.in:
7945 * debian.upstream/copyright:
7946 * debian.upstream/gstreamer-vaapi-doc.install.in:
7947 * debian.upstream/gstreamer-vaapi.install.in:
7948 * debian.upstream/rules:
7949 Remove debian.upstream packaging
7950 https://bugzilla.gnome.org/show_bug.cgi?id=759192
7952 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7954 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7955 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7956 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7957 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7958 * gst-libs/gst/vaapi/gstvaapiprofile.c:
7959 * gst/vaapi/gstcompat.h:
7960 * gst/vaapi/gstvaapi.c:
7961 * gst/vaapi/gstvaapidecode.c:
7962 * gst/vaapi/gstvaapiencode.c:
7963 * gst/vaapi/gstvaapipluginbase.c:
7964 * gst/vaapi/gstvaapipluginbase.h:
7965 * gst/vaapi/gstvaapipluginutil.c:
7966 * gst/vaapi/gstvaapisink.c:
7967 Remove old gst version guards
7968 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
7969 all the old GStreamer version guards.
7970 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7972 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7974 * gst/vaapi/gstvaapiparse.c:
7975 Remove video parser crufts
7976 We forgot to remove gstvaapiparse.c when we removed all the videoparser
7978 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7980 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7982 * docs/reference/libs/Makefile.am:
7983 * docs/reference/plugins/Makefile.am:
7984 * gst-libs/gst/vaapi/Makefile.am:
7985 * gst/vaapi/Makefile.am:
7986 * tests/Makefile.am:
7987 libs: remove versioning
7988 Since we don't install libraries anymore, it makes no sense to keep
7989 versioning them according to the gstreamer's version.
7990 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7992 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7995 * debian.upstream/Makefile.am:
7996 * debian.upstream/control.in:
7997 * debian.upstream/libgstvaapi-dev.install.in:
7998 * debian.upstream/libgstvaapi-drm.install.in:
7999 * debian.upstream/libgstvaapi-glx.install.in:
8000 * debian.upstream/libgstvaapi-wayland.install.in:
8001 * debian.upstream/libgstvaapi-x11.install.in:
8002 * debian.upstream/libgstvaapi.install.in:
8003 * gst-libs/gst/vaapi/Makefile.am:
8004 * tests/Makefile.am:
8005 libs: make libraries no installables
8006 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8008 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8010 * debian.upstream/libgstvaapi-dev.install.in:
8011 * gst-libs/gst/vaapi/Makefile.am:
8012 Do not install libgstvaapi headers
8013 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8015 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8019 * patches/Makefile.am:
8020 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
8021 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
8022 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
8023 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
8024 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
8025 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
8026 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
8027 * patches/videoparsers/Makefile.am:
8028 * patches/videoparsers/series.frag:
8029 Remove videoparser patches
8031 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8035 * debian.upstream/libgstvaapi-dev.install.in:
8036 * pkgconfig/Makefile.am:
8037 * pkgconfig/gstreamer-vaapi-drm.pc.in:
8038 * pkgconfig/gstreamer-vaapi-glx.pc.in:
8039 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
8040 * pkgconfig/gstreamer-vaapi-x11.pc.in:
8041 * pkgconfig/gstreamer-vaapi.pc.in:
8042 Remove pkg-config files
8043 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8045 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8052 * gst-libs/gst/Makefile.am:
8053 * gst-libs/gst/codecparsers/Makefile.am:
8054 * gst-libs/gst/vaapi/Makefile.am:
8055 * gst/vaapi/Makefile.am:
8056 Remove codecparsers submodule
8057 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8059 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8064 * debian.upstream/libgstvaapi.install.in:
8066 * ext/libvpx/Makefile.am:
8067 * ext/libvpx/gstlibvpx.c:
8068 * ext/libvpx/gstlibvpx.h:
8069 * ext/libvpx/libgstcodecparsers_vpx.vers:
8070 * ext/libvpx/sources.frag:
8071 * ext/libvpx/upstream:
8072 * gst-libs/gst/codecparsers/Makefile.am:
8073 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
8074 Remove libvpx submodule
8075 We will be using upstream codecparsers always.
8076 No more internal libvpx !
8078 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8081 build: fix check for GstJpegParser
8082 Right now the local JPEG parser is always compiled because the check for the
8083 upstreamed version is broken: it looks for an non existent symbol:
8085 This patch changes that check for< GstJpegFrameHdr.
8086 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8088 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
8090 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
8091 wayland: free the frame in frame_release_callback()
8092 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
8093 decouple wl_buffer from frame).
8094 Otherwise the frame may be overwritten while it is still used by the
8096 The frame done callback (frame_done_callback()) is called, when the
8097 compositor is done processing the frame and hands it to the hardware.
8098 The buffer release callback (frame_release_callback()) is called when the
8099 buffer memory is no longer used.
8100 This can be quite some time later: E.g. if weston (with the DRM backend)
8101 puts the buffer on a hardware plane, then then buffer release callback is
8102 called when the kernel is done with the buffer. This is usually when the
8103 next frame is shown, so most likely after the frame done callback for the
8105 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
8106 destroy()" the mentioned possible leak should no longer be a problem, so
8107 reverting this change should cause no leaking buffers.
8108 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8109 https://bugzilla.gnome.org/show_bug.cgi?id=758848
8110 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8112 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8114 * gst/vaapi/gstvaapipostproc.c:
8115 vaapipostproc: check ANY caps at transform_caps()
8116 When transforming downstream caps we should check for ANY caps from peer pad,
8117 otherwise we get a segmentation fault.
8118 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8119 https://bugzilla.gnome.org/show_bug.cgi?id=759893
8121 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8123 * gst/vaapi/gstvaapisink.c:
8124 vaapisink: ignore frame if its upload failed
8125 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
8126 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
8127 ignored by the vaapisink, leading to a segmentation fault.
8128 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
8129 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
8130 segmentation fault, but doing and effort to continue rendering. This is
8131 the same behavior of ximagesink.
8132 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8133 https://bugzilla.gnome.org/show_bug.cgi?id=759332
8135 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
8138 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
8139 https://bugzilla.gnome.org/show_bug.cgi?id=759184
8141 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8143 * gst-libs/gst/vaapi/gstvaapicontext.c:
8144 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8145 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
8146 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
8147 Add 10 HEVC 10 bit decoding support
8148 Only supporting vaapidecode ! vaapisink combination for now.
8149 Missing dependencies:
8150 1: No support for P010 video format in GStreamer
8151 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
8152 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
8153 through GstVideoMeta.
8154 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
8155 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
8156 of the surfaces is implementation (driver) defined, which is P010.
8158 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8160 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
8161 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
8162 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
8163 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
8164 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
8165 chroam type and dimensions. The underlying format of the surfaces is
8166 implementation (driver) defined.
8168 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8170 * gst-libs/gst/vaapi/gstvaapisurface.h:
8171 * gst-libs/gst/vaapi/gstvaapiutils.c:
8172 Add definitions for YUV420 with more than 8 bits per channel
8174 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8176 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8177 gstvaapiporfile: Fix string representation of HEVCMain10 profile
8179 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8182 Bump version for development
8184 === release 0.7.0 ===
8186 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8191 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8196 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8201 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8206 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8208 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
8209 texture: detect GL version and use the proper API
8210 When receiving the texture from the application or the video sink, we must
8211 know it size and border. To query the texture the API has changed according to
8212 the OpenGL version used in the GL context of the application/vsink.
8213 This patch checks the current context API type and queries the texture
8214 according to this detected API.
8215 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8216 https://bugzilla.gnome.org/show_bug.cgi?id=753099
8218 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8220 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
8221 texture: check for expected target and format
8222 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
8223 formats GL_RGBA or GL_BGRA.
8224 This patch adds a debugging verification of those values.
8225 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8226 https://bugzilla.gnome.org/show_bug.cgi?id=753099
8228 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8230 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
8231 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
8232 libs: add gl3_bind_texture_2d()
8233 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
8234 needed. In particular, the Intel's Mesa implementation complains if it is
8236 This patch add a new binding function for 2D textures, without enabling
8237 gl3_bind_texture_2d()[2].
8238 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
8239 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
8240 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8241 https://bugzilla.gnome.org/show_bug.cgi?id=753099
8243 2015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8245 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
8246 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
8247 libs: add gl_get_current_api()
8248 In order to know which OpenGL API use, we must detect the API type of current
8249 context. This patch adds the function gl_get_current_api() which returns the
8251 This function is an adaptation of gst_gl_context_get_current_gl_api() from
8253 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8254 https://bugzilla.gnome.org/show_bug.cgi?id=753099
8256 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8259 * gst-libs/gst/vaapi/Makefile.am:
8260 build: Add gmodule dependency for libgstvaapi_egl
8261 https://bugzilla.gnome.org/show_bug.cgi?id=756259
8263 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8265 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
8266 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
8267 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
8268 * patches/videoparsers/series.frag:
8269 patches/videoparsers: h264: Disable passthorugh mode enabling
8270 This is a quick fix for regression introduced by the upstream
8271 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
8272 The patch is disabling the passthrough mode, otherwise it will
8273 break multi-layer mvc stream parsing.
8274 https://bugzilla.gnome.org/show_bug.cgi?id=758656
8276 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8278 * gst/vaapi/Makefile.am:
8279 * patches/videoparsers/Makefile.am:
8280 * patches/videoparsers/series.frag:
8281 build: add gsth265parse patches conditionally
8282 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
8283 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
8285 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8286 https://bugzilla.gnome.org/show_bug.cgi?id=755525
8288 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8290 * gst/vaapi/Makefile.am:
8291 build: declare correctly parse lib built files
8292 This is a continuation of commit fc8a0d12
8293 When declaring BUILT_SOURCES, those files should not be distributed. This
8294 patch avoids the distribution of the generated source code.
8295 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8296 https://bugzilla.gnome.org/show_bug.cgi?id=755525
8298 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8300 * ext/libvpx/sources.frag:
8301 build: libvpx: Add missing source file
8303 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8305 * gst/vaapi/gstvaapipostproc.c:
8306 vaapipostproc: Correctly detect the caps change
8307 This is a quick fix for regression introuduced by the
8308 commit 757833230bc73b8e3b4e31649e4618ba802bea51
8309 With out this, the gst_vaapipostproc_create() will
8311 https://bugzilla.gnome.org/show_bug.cgi?id=758543
8313 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8315 * ext/libvpx/Makefile.am:
8316 * ext/libvpx/sources.frag:
8317 build: libvpx: update the sources lists
8318 `make dist` broke since commit f06798 (libvpx: Update the submodule to
8319 libvpx-1.4.0) because the sources.frag does not contain all the module
8321 This patch updates thoroughly the sources.
8322 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8323 https://bugzilla.gnome.org/show_bug.cgi?id=755525
8325 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8327 * gst/vaapi/gstvaapipostproc.c:
8328 vaapipostproc: don't set caps change at first set
8329 When the source caps change, the filter is destroyed and recreated.
8330 Nonetheless, this happens every time the vaapipostproc starts, since the caps
8331 change detection algorithm does not take in consideration when the caps are
8333 This patch intents to be an optimization, to avoid a useless filter
8334 destroy-creation cycle when the sources caps are set for first time.
8335 The new helper function video_info_update() is a refactorization to avoid
8337 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8338 https://bugzilla.gnome.org/show_bug.cgi?id=758007
8340 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8342 * gst/vaapi/gstvaapipostproc.c:
8343 vaapipostproc: params video_info_changed() callers
8344 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
8345 swapped the the order. This didn't raise problems since the comparison of both
8346 structures were not affected by its semantics.
8347 But still it would be better to fix this to keep the coherence of the code.
8348 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8349 https://bugzilla.gnome.org/show_bug.cgi?id=758007
8351 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8353 * gst/vaapi/Makefile.am:
8354 build: declare real built files
8355 When runnig the `make dist` target from a clean tree, it fails because
8356 if could not find the copied files from codecparsers submodule.
8357 They weren't copied because they weren't declared as built sources.
8358 This patch removes the stamp mechanism and use the actual file list to copy
8359 as the built sources. Also it fixes the duplication of the parser files.
8360 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8361 https://bugzilla.gnome.org/show_bug.cgi?id=755525
8363 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8365 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8366 decoder: vp9: Fix last/golden/altref frame index setting
8367 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
8368 based on what ever reference frame indices encoded in frame header.
8370 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8372 * debian.upstream/rules:
8373 debian: remove custom parallel compilation
8374 In order to build a debian package with upstream source, the user should
8377 cp -a debian.upstream debian
8378 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
8379 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
8380 way to make a parallel build (-j8 in this case).
8381 This commit removes the script in debian/rules that detects the number of
8382 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
8384 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8385 https://bugzilla.gnome.org/show_bug.cgi?id=754087
8387 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8389 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8390 decoder: vp9: Fix PTS calculation of cloned frames
8392 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8394 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8395 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
8396 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
8397 gstvaapidecoder base calss is reponsible for handling those frames later on.
8398 No need for explicit verification of frame header's show_frame in order to
8399 do picture outputing.
8401 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8403 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8404 decoder: vp9: Fix ref picture update while doing repeat frame
8405 Don't try to do frame decoding and reference picture update
8406 while receiving a vp9 frame having show_existing_frame flag
8409 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8411 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8412 decoder: vp9: Add repeat-frame display handling
8413 If vp9 frame header come up with show_existing_frame flag set,
8414 we should duplicate the existing decoded frame as current frame to
8417 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8419 * gst/vaapi/gstvaapidecodebin.c:
8420 vaapidecodebin: add me as element co-author
8421 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8422 https://bugzilla.gnome.org/show_bug.cgi?id=757957
8424 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8426 * gst/vaapi/gstvaapidecodebin.c:
8427 vaapidecodebin: try to get display from decoder
8428 Rather than create a dummy display, if none has propagated as a context, we
8429 should try to get the one from vaapidecode.
8430 As the bin is already in READY state, the vaapidecode should be also in that
8431 state. That means that the contexts have been negotiated, and it should have
8433 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8434 https://bugzilla.gnome.org/show_bug.cgi?id=757957
8436 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8438 * gst/vaapi/gstvaapidecodebin.c:
8439 * gst/vaapi/gstvaapidecodebin.h:
8440 vaapidecodebin: add postprocessor dynamically
8441 The former approach to left the bin unfinished has some problems: the context
8442 cannot be shared because the vaapidecode is unlinked in many cases, leading to
8443 creating a VADisplay twice.
8444 Initially the bin is fully functional, constructed as
8445 (-----------------------------------)
8447 | (-------------) (-------) |
8448 |<--| vaapidecode |--->| queue |--->|
8449 | (-------------) (-------) |
8450 (-----------------------------------)
8451 When the context is shared and the VADisplay has VPP capabilities, before
8452 changing to READY state, the bin is reconfigured dynamically, adding the
8453 vaapipostproc element afeter the queue:
8454 (--------------------------------------------------------)
8456 | (-------------) (-------) (---------------) |
8457 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
8458 | (-------------) (-------) (---------------) |
8459 (--------------------------------------------------------)
8460 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8461 https://bugzilla.gnome.org/show_bug.cgi?id=757957
8463 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8465 * gst/vaapi/gstvaapidecodebin.c:
8466 vaapidecodebin: delay the bin configuration
8467 Delay the bin configuration until changing to READY state. This is because we
8468 should add the vaapipostproc element until the vaapidecode has emitted the
8469 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
8471 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8472 https://bugzilla.gnome.org/show_bug.cgi?id=757957
8474 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8476 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8477 decoder: vp9: Add crop rectangle support.
8478 Set crop rectange if:
8479 There is display_width and display_height which is different from actual width/height
8481 The changed resolution is less than the actual configured dimension of surfaces
8483 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8485 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8486 decoder: vp9: Fix the context and surface pool reset for multi resolution video
8487 Unlike other decoders, vp9 decoder doesn't need to reset the
8488 whole context and surfaces for each resolution change. Context
8489 reset only needed if resolution of any frame is greater than
8490 what actullay configured. There are streams where a bigger
8491 resolution set in ivf header or webm header but actual resolution
8492 of all frames are less. Also it is possible to have inter-prediction
8493 between these multi resolution frames.
8495 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8497 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8498 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
8499 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
8500 Preliminary fix for supproting multi resolution video decode.
8502 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8504 * gst/vaapi/gstvaapidecode.c:
8505 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
8507 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8509 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8510 decoder: vp9: Set lossless flag from frame header
8512 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8515 codecparsers: Update to gst-vaapi-branch d9f25
8516 d9f2527: codecparsers: vp9: Set lossless flag in frame header
8518 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8520 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8521 libs: vp9: remove unused symbols
8522 clang complains about a couple variables and one label which were not
8523 used. This patch removes them.
8524 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8525 https://bugzilla.gnome.org/show_bug.cgi?id=757958
8527 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8530 codecparsers: Update to gst-vaapi-branch da251bb
8531 da251bb: codecparsers: vp9: Optimize the memory allocation
8532 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
8534 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8536 * gst/vaapi/gstvaapipluginbase.c:
8537 * gst/vaapi/gstvaapipluginbase.h:
8538 plugin: guard pointers to pad query functions
8539 Since gstreamer 1.4 is not required to have pad query functions if the query
8541 This patch guards out the pad query functions for gstreamer < 1.4
8542 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8543 https://bugzilla.gnome.org/show_bug.cgi?id=757629
8545 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8547 * gst/vaapi/gstvaapiencode.c:
8548 vaapiencode: use pad query vmethods
8549 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
8550 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
8551 while keeps support for previous versions of gstreamer.
8552 This patch is relevant since GstVideoEncoder takes care of other queries that
8553 we are currently ignoring.
8554 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8555 https://bugzilla.gnome.org/show_bug.cgi?id=757629
8557 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8559 * gst/vaapi/gstvaapidecode.c:
8560 vaapidecode: return pad's template caps if no display
8561 A caps query can occur before the element has a display. In that case, the
8562 element can return its pad's template. But when the element already has a
8563 display, and the caps probe fails, the element shall return an empty caps, so
8564 the auto-plug could try with another decoder.
8565 If the element has a display and the caps probe works, then the computed caps
8567 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8568 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8570 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8572 * gst/vaapi/gstvaapidecode.c:
8573 * gst/vaapi/gstvaapisink.c:
8574 plugins: don't create display at caps query
8575 Caps query can happen before the element has a bus. The display creation should
8576 be should occur on the context negotiation, when the bus is already configured.
8577 Then at caps query no display should be created.
8578 Instead of force the display creation, we graciously fail the allowed_caps()
8580 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
8581 basetransform descendant, seems to be not affected by this, nor the encoders.
8582 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8583 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8585 2015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8587 * gst/vaapi/gstvaapidecode.c:
8588 * gst/vaapi/gstvaapiencode.c:
8589 * gst/vaapi/gstvaapipluginutil.c:
8590 * gst/vaapi/gstvaapipluginutil.h:
8591 * gst/vaapi/gstvaapipostproc.c:
8592 * gst/vaapi/gstvaapisink.c:
8593 plugins: fix context query handling
8594 The current context query handling design is flawed: the function
8595 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
8596 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
8597 pad query function should handle differently each case.
8598 This patch changes the gst_vaapi_reply_to_query() for
8599 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
8600 to match the correct context query handling.
8601 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8602 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8604 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8606 * gst/vaapi/gstvaapipluginutil.c:
8607 plugin: don't lose previous context at query
8608 When processing the GST_CONTEXT_QUERY we should not lose the previous
8609 context in the query, we should only add our display structure.
8610 This patch copies the old context, if it is there, and stamp our display on
8611 it. Otherwise, a new context is created.
8612 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8613 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8615 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8617 * gst/vaapi/gstvaapivideocontext.c:
8618 * gst/vaapi/gstvaapivideocontext.h:
8619 vaapivideocontext: add gst_vaapi_video_context_set_display()
8620 This function set the display to an already created context. This function is
8621 going to be used later.
8622 Also, gst_vaapi_video_context_new_with_display() now uses this function.
8623 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8624 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8626 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8628 * gst/vaapi/gstvaapipluginutil.c:
8629 * gst/vaapi/gstvaapivideocontext.c:
8630 * gst/vaapi/gstvaapivideocontext.h:
8631 plugins: check if display is set in sync
8632 Since the context messages are sync'ed, the display assignation happens in the
8633 same thread, hence we can know if the display was found or not as soon we call
8635 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
8636 as a new parameter, the address of the plugin's display, and reports back if
8637 the display was found and set.
8638 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8639 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8641 2015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8643 * gst/vaapi/gstvaapipluginutil.c:
8644 * gst/vaapi/gstvaapivideocontext.c:
8645 plugins: set display through context
8646 Instead of setting the display to the plugin directly after its creation, do
8647 it through the gstreamer's context mechanism, avoiding double assignations.
8648 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8649 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8651 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8653 * gst/vaapi/gstvaapivideocontext.c:
8654 vaapivideocontext: rename context structure
8655 The context structure is named "display" which is too generic. The contrary
8656 happens, for example, with GstGL, what uses the same name as the context, and
8657 its logs make more sense.
8658 This patch renames the context structure with the same name as the
8659 context, thus GST_PTR_FORMAT can pretty print it.
8660 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8662 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8664 * gst/vaapi/gstvaapivideocontext.c:
8665 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
8666 First, refactorized run_context_query() into _gst_context_run_query(), adding
8667 a new parameter: the pad direction, in order to simplify the code.
8668 Second, added a new helper function: _gst_context_query(), which is a generic
8669 context query function. It isolates the operation of running the query and
8670 sets the context if found, also it enhances the logs.
8671 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
8672 future this helper function will be merged into the core libraries of
8674 Finally, gst_vaapi_video_context_prepare() was rewritten to use
8675 _gst_context_query().
8676 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8677 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8679 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8681 * gst/vaapi/gstvaapivideocontext.c:
8682 vaapivideocontext: refactor context category debug
8683 Refactor the extraction GST_CAT_CONTEXT logging using a only once
8684 initializator, so we could get the debug category from different code
8686 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8687 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8689 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8691 * gst/vaapi/gstvaapivideocontext.c:
8692 gstvaapivideocontext: fix indentation
8693 gst-indent does not handle correctly some expression like function
8694 declaration with attributes, breaking the following expressions.
8695 This patch makes gst-indent to ignore the attributed function
8696 declartion so the followed function definition is not mangled, such
8697 as happened in commit b4154a
8698 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8699 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8701 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8703 * gst/vaapi/gstvaapipluginbase.c:
8704 plugin: chain up set_context() vmethod
8705 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
8706 the parent class in order to broadcast all its contexts when the element
8707 is added into a bin:
8708 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
8709 There is no need to guard the call, because before GStreamer 1.7, the
8710 set_context() vmethod was NULL in the element class, hence the conditional
8712 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8713 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8715 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8717 * tests/simple-encoder.c:
8718 tests: simple-encoder: remove dead code
8719 The caps creation for codec state configuration is not used. Let's remove it.
8720 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8722 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8724 * gst/vaapi/gstvaapidecodebin.c:
8725 vaapidecodebin: fix a leaked display instance
8726 The display returned by gst_vaapi_video_context_get_display() increments the
8727 references. Thus, we have to unref the returned display.
8728 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8729 https://bugzilla.gnome.org/show_bug.cgi?id=757595
8731 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8733 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
8734 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
8735 libs: remove unneeded headers
8736 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
8737 required to include them in the header. It is not also required to include
8738 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
8739 exposes their structures (e.g. GLXPixmap).
8740 Nonetheless, glext.h neither glxext.h are required to include, they are
8741 already included conditionally by gl.h and glx.h, respectively.
8742 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8743 https://bugzilla.gnome.org/show_bug.cgi?id=757577
8745 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8748 codecparsers: Update to gst-vaapi-branch 0ea6792
8749 0ea6792: codecparsers: vp9: Add header comments
8750 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
8752 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8754 * gst/vaapi/gstvaapidecode.c:
8755 VP9: plugins: Add VP9 decoder
8757 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8759 * gst-libs/gst/vaapi/Makefile.am:
8760 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8761 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
8762 VP9: libgstvaapi: Add VP9 decoder
8764 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8766 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8767 * gst-libs/gst/vaapi/gstvaapiprofile.h:
8768 VP9: gstvaapiprofile: Add profile definitions
8770 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8773 VP9: build: Check availability of vp9 decoder APIs
8775 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8779 * gst-libs/gst/codecparsers/Makefile.am:
8780 VP9: Allow building vp9 codecparser internally
8782 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8785 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
8786 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
8787 e7d9217: codecparser: h264: initialize parsing structures
8788 403d400: codecparser: h265: initialize parsing structures
8790 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8793 configure.ac: don't use an undefined variable
8794 If the environment lacks of gstreamer development packages, this error will
8795 be reported to the user: "gstreamer- was not found"
8796 This is because we are using an undefined variable in the printed message. The
8797 fix simple changes the variable for the hard-coded string "1.0".
8798 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8799 https://bugzilla.gnome.org/show_bug.cgi?id=757283
8801 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8803 * gst/vaapi/gstvaapidecode.c:
8804 vaapidecode: relax guards for memory:VASurface capsfeature
8805 Though caps features are supported since GStreamer 1.2, there are some
8806 issues with the features caps negotiation in that version. Nonetheless,
8807 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
8808 feature negotiation is relaxed for GStreamer 1.4.
8809 The guard is the same as in vaapisink's caps template.
8810 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8811 https://bugzilla.gnome.org/show_bug.cgi?id=756686
8813 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8815 * gst/vaapi/gstvaapidecode.c:
8816 vaapidecode: decide allocation doesn't update srccaps
8817 The received caps query will bring the already negotiated caps, so they are
8818 not expected to change.
8819 This patch removes this verification which is dead code path.
8820 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8821 https://bugzilla.gnome.org/show_bug.cgi?id=756686
8823 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8825 * gst/vaapi/gstvaapidecode.c:
8826 * gst/vaapi/gstvaapipluginutil.c:
8827 * gst/vaapi/gstvaapipluginutil.h:
8828 vaapidecode: use caps to check the features
8829 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
8830 expensive, we check the caps from the allocation query, to check the
8832 In order to do this verification a new utility function has been implemented:
8833 gst_vaapi_caps_feature_contains().
8834 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
8835 have been refactorized.
8836 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8837 https://bugzilla.gnome.org/show_bug.cgi?id=756686
8839 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8841 * gst/vaapi/gstvaapidecode.c:
8842 vaapidecode: set format before decide allocation
8843 There is a regression from commit 3d8e5e. It was expected the buffer pool
8844 allocation occur before the caps negotiation, but it is not.
8845 This patch fixes this regression: the caps negotiation is done regardless the
8846 allocation query from downstream.
8847 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8848 https://bugzilla.gnome.org/show_bug.cgi?id=756686
8850 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
8853 build: check for patch and fix yasm check
8854 Add configure checking for GNU patch tools and fixed configure
8855 checking YASM to correct sequence.
8856 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
8857 https://bugzilla.gnome.org/show_bug.cgi?id=756690
8859 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8861 * ext/libvpx/Makefile.am:
8862 build: Remove disable-md5 option for libvpx build
8863 The configure option --disable-md5 was provided in libvpx-1.3.0 which
8864 has been removed in 1.4.0.
8866 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8868 * ext/libvpx/upstream:
8869 libvpx: Update the submodule to libvpx-1.4.0
8870 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
8872 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8875 configure: mark support for GStreamer 1.2 as obsolete.
8876 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
8877 Our goal is to support the last two stable versions of GStreamer which
8878 are 1.4 and 1.6 at the moment.
8879 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
8880 release and will get rid of those in 0.8.
8882 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8884 * gst/vaapi/gstvaapidecode.c:
8885 vaapidecode: Fix buffer copy assertion
8886 Don't try to copy the NULL buffer-codec_data.
8888 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8891 build: allow builds against GStreamer 1.7.x
8892 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8894 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8896 * gst/vaapi/gstcompat.h:
8897 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
8898 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
8899 add an implementation if gstreamer-vaapi is linked to previous versions.
8900 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8902 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8904 * gst/vaapi/gstvaapidecode.c:
8905 vaapidecode: simplify copy of GstVideoCodecState
8906 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8908 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8910 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
8911 * patches/videoparsers/series.frag:
8912 patches/videoparsers: h265parser: more API fences
8913 Add more API fences according with its version and refresh the patch.
8914 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8915 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8917 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8919 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
8920 * patches/videoparsers/series.frag:
8921 patches/videoparsers: h265parser: rename patch keeping number
8922 Refresh the patch and rename it in order to keep the patch number.
8923 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8924 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8926 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8928 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
8929 patches/videoparsers: h264parser: more API fences and refresh
8930 Add more API fences according with its version and refresh the patch.
8931 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8932 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8934 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8936 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
8937 * patches/videoparsers/series.frag:
8938 patches/videoparsers: h264parser: fix description and refresh
8939 Fix a typo in the patch description and refresh it in order to avoid the
8940 creation of .orig files and break the distcheck target.
8941 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8942 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8944 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8946 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
8947 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
8948 patches/videoparsers: h264parser: refresh patches
8949 In order to avoid the creation of .orig files and break the distcheck target.
8950 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8951 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8953 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8955 * gst/vaapi/Makefile.am:
8956 build: link libgstvaapi_parse against codec parser
8957 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
8958 when running configure.
8959 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
8960 need it if builtin codec parsers are disabled.
8961 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
8962 compilation. If builtin codec parsers are enable, this variable is null, so it
8963 should work using libgstvaapi, as normal.
8964 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8965 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8967 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8970 build: verify for H264 MVC and H265 SPS
8971 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
8972 the required symbols for those were added in GStreamer 1.5
8973 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
8974 parsers, the compilation fails, because the lack of those symbols.
8975 This patch verifies if the installed H264 and H265 parsers have those symbols. If
8976 they do not, the specific built in codec parsers are enabled and used.
8977 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8978 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8980 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8982 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8983 decoder: h264: initialize PPS's slice_group_id
8984 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
8985 so it contains random data.
8986 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
8987 pointer uninitialized, leading to a segmentation fault when the memory is
8989 This patch prevents this by initializing the slice_group_id before the PPS
8991 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8992 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8994 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
8996 * gst/vaapi/gstvaapidecode.c:
8997 vaapidecode: proper numerator and denominator for forced latency framerate
8998 https://bugzilla.gnome.org/show_bug.cgi?id=755040
9000 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9003 codecparsers: Update to gst-vaapi-branch commit f9e284b
9004 dae1a84: h264parse/h265parse: Fix negotiation crash
9005 45a9f8a: codecparsers: h265 : Fix default scaling list values
9006 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
9007 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9009 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9011 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9012 decoder: hevc: Don't flush dpb for EOS/EOB nal
9013 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
9014 the dpb_add() itself will handle the flusing(if needed) of dpb
9015 for end of sequence and end of bitstream.
9016 https://bugzilla.gnome.org/show_bug.cgi?id=754010
9018 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9020 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9021 decoder: hevc: Fix the dpb_add() based on C.5.2.3
9022 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
9023 just after the PicLatencyCnt setting of existing dpb frames.
9024 https://bugzilla.gnome.org/show_bug.cgi?id=754010
9026 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9028 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9029 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
9030 This fix is based on the V3 vesion of spec which was missing in older versions.
9031 When the current picture has PicOutputFlag equal to 1, for each picture in the
9032 DPB that is marked as "needed for output" and follows the current picture in output order,
9033 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
9034 https://bugzilla.gnome.org/show_bug.cgi?id=754010
9036 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9038 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9039 decoder: h265: Fix indentation
9041 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
9043 * gst-libs/gst/vaapi/gstvaapidecoder.c:
9044 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9045 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
9046 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9047 * gst/vaapi/gstvaapidecode.c:
9048 * gst/vaapi/gstvaapipluginutil.c:
9049 multiview: initial attempt at stereo/multiview support
9050 Add support for marking caps and buffers for multiview or
9051 stereoscopic output.
9052 https://bugzilla.gnome.org/show_bug.cgi?id=750835
9054 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9056 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9057 decoder: hevc: remove unused functions
9058 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9059 https://bugzilla.gnome.org/show_bug.cgi?id=754250
9061 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9063 * gst/vaapi/gstvaapidecode.c:
9064 vaapidecode: remove (another) unused variable
9065 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9067 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9069 * gst/vaapi/gstvaapidecode.c:
9070 vaapidecode: remove unused variable
9071 Thus silence the compilation warnings.
9073 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9075 * gst/vaapi/gstvaapidecode.c:
9076 vaapidecode: compilation fix
9077 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
9078 compilation where the toolchain uses restrictive flags as clang.
9079 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9081 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9083 * gst/vaapi/gstvaapidecode.c:
9084 vaapidecode: renegotiate if caps are not equal
9085 The use of gst_caps_is_always_compatible() for this optimization may lead to
9086 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
9087 if it is required a re-negotiation.
9088 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9089 https://bugzilla.gnome.org/show_bug.cgi?id=750835
9091 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9093 * gst/vaapi/gstvaapidecode.c:
9094 * gst/vaapi/gstvaapidecode.h:
9095 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
9096 Delaying the pool re-negotiation untill we push all decoded (and queued)
9097 frames downstream. Otherwise for the multi-resolution videos, the
9098 GstVideoVideoMemory will be having wrong resolution and which leads
9099 to nasty behaviours, especially when using software renderers.
9100 sample media file: RAP_B_Bossen_1.bin
9102 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
9103 get the final resoultion 416x240.
9104 Starting from 25 th frame, the resolution will change to 416x240. But parser
9105 elements won't report this since the effective croped resolution is same in
9106 both cases. Here the core libgstvaapi will detect this through it's internal
9107 parsing and do all context/pool destory/reset stuffs. Also it will notify this
9108 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
9109 immediately, this will not sync with the resolution of already decoded and queued
9110 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
9111 software renderer). So we have to delay the pool renegotiation in vaapidecode,
9112 untill we push all decoded frames downstream.
9113 https://bugzilla.gnome.org/show_bug.cgi?id=753914
9115 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9117 * gst/vaapi/gstvaapidecode.c:
9118 vaapidecode: Always keep a copy of input codec state
9119 Currently we are sharing the input GstVideoCodecState with
9120 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
9121 each caps change. This is troublesome in many cases, for eg: if
9122 resoultion changes with in a singe stream. Because, when ever there
9123 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
9124 fields with new resolution, but since we are using the same codecstate (ref)
9125 in gstvaapidecode.c, the caps check for input caps change will always fail.
9126 https://bugzilla.gnome.org/show_bug.cgi?id=753914
9128 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9130 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9131 decoder: hevc: Fix the scaling list scan order
9132 The default scan order of scaling lists are up-right-diagonal
9133 as per hevc specification. Use the newly implemented
9134 uprightdiagonal_to_raster conversion codecparser APIs to
9135 get the the scaling_list values in raster order, which is
9136 what the VA intel driver requires.
9138 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9140 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9141 decoder: hevc: sync with the codecparser changes
9142 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
9143 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
9145 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9147 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
9148 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
9150 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9153 codecparsers: Update to gst-vaapi-branch commit 69550f1
9154 c207c6d: codecparsers: h265: Fix tile row and column parsing
9155 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
9156 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
9157 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
9158 2f0932b: h264parse: Clear SPS info after processing
9159 f57d6b0: videoparsers: enable accept-template flag
9161 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9163 * debian.upstream/control.in:
9164 debian: add yasm as build dependency
9165 As the compilation of libvpx (for vp8 parser) is enabled by default,
9166 yasm is required by default too.
9167 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9169 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
9171 * debian.upstream/rules:
9172 debian: remove --with-gstreamer-api option
9173 It is no longer valid in gstreamer-vaapi.
9174 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
9175 [removed unused GST_API_VERSION variable]
9176 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9177 https://bugzilla.gnome.org/show_bug.cgi?id=753618
9179 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9181 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9182 wayland: rename is_cancelled to sync_failed
9183 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
9184 sense. This commit renames this variable to sync_failed.
9186 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
9188 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9189 wayland: Don't return GST_FLOW_ERROR on flushing
9190 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
9191 return FALSE which makes gst_vaapi_window_wayland_render() return
9192 FALSE which ends up posting an ERROR message in
9193 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
9195 https://bugzilla.gnome.org/show_bug.cgi?id=753598
9197 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9199 * gst/vaapi/gstvaapi.c:
9200 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
9201 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
9203 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9205 * gst/vaapi/gstvaapidecodebin.c:
9206 vaapidecodebin: check for postproc instance
9207 If the VPP's deinterlace-method is set, first we should check if the postproc
9208 is already instanced to set it. Otherwise we just store it until the VPP is
9210 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9211 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9213 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9215 * gst/vaapi/gstvaapidecodebin.c:
9216 * gst/vaapi/gstvaapipluginutil.c:
9217 * gst/vaapi/gstvaapipluginutil.h:
9218 vaapidecodebin: ensure VPP before going to READY
9219 There are sometimes that the VA-API display context is not shared among the
9220 pipeline, but it is important to know it before going to READY state (when the
9221 pipeline is already linked).
9222 One instance of this case is this:
9223 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
9224 This patch adds a new function in gstvaapipluginutil called
9225 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
9226 display, which only will be used for verify if the VAEntrypointVideoProc is
9227 available by the hardware. Afterwards, it should be unrefed.
9228 If the vaapidecodebin is going to READY state, and the element still doesn't
9229 know if VPP is available, the last resort is to create a new instance of the
9230 VA-API display and test for it.
9231 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9233 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9235 * gst/vaapi/gstvaapidecodebin.c:
9236 vaapidecodebin: post an error message if fails
9237 If the construction of the bin fails, post an error message in the bus.
9238 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9239 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9241 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9243 * gst/vaapi/gstvaapidecodebin.c:
9244 * gst/vaapi/gstvaapidecodebin.h:
9245 vaapidecodebin: has_vpp as a tri-state variable
9246 has_vpp can be UNKNOWN while the context message hasn't being received.
9247 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9248 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9250 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9252 * gst/vaapi/gstvaapivideomemory.c:
9253 gstvaapivideomemory: native format with no derived image
9254 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
9255 info based on the derived image configuration.
9256 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9257 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9259 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9261 * gst-libs/gst/vaapi/video-format.c:
9262 * gst-libs/gst/vaapi/video-format.h:
9263 * gst/vaapi/gstvaapivideomemory.c:
9264 surface pool config based on video info
9265 First added the function gst_vaapi_video_format_get_best_native(), which
9266 returns the best native format that matches a particular chroma type:
9267 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
9268 RGB32 chroma and encoded format map to NV12 too.
9269 That format is used to configure, initially, the surface's pool for the
9271 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9272 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9274 2015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9276 * gst/vaapi/gstvaapivideomemory.c:
9277 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
9278 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9279 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9281 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
9283 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9284 gstvaapiencoder: validate chroma according to the VA's RT format
9285 Before, only YUV420 color space where supported. With this patch, the
9286 encoder is queried to know the supported formats and admits YUV422
9287 color space if its available.
9288 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9289 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9291 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9293 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9294 decoder: hevc: Add calculation of WpOffsetHalfRangeC
9295 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
9296 prediction weight table values with out using any hard coding.
9297 Fixme: We don't have parser API for sps_range_extension, so
9298 assumed zero value for high_precision_offsets_enabled_flag.
9299 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9301 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9303 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9304 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
9305 Based on ITU-T rec H265(4/2015): 7-56
9306 This was a wrong equation in rec H265 (4/2013): 7-44...
9307 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9309 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9311 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9312 decoder: hevc: Fix default value assignment of pred_weight_table
9314 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9316 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9317 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
9318 Assign only if ChromaArrayType != 0..
9319 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9321 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9324 codecparsers: Update to gst-vaapi-branch commit 1c70432
9325 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
9326 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
9327 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9329 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9332 codecparsers: Update to gst-vaapi-branch commit c18b8ad
9333 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
9334 a033083: videoparsers: h265: Fix the frame start detection code
9335 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9337 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9339 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9340 decoder: hevc: Add SEI parsing
9341 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9343 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9345 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9346 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
9347 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
9348 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
9349 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
9350 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
9351 is TRUE. Assuming them as MAIN profile for now.
9352 https://bugzilla.gnome.org/show_bug.cgi?id=753226
9353 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9355 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9357 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
9358 patches/videoparsers: Fix the wrong source file path
9359 This is something wrongly typed in commit 6d7b631
9361 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9364 codecparsers: Update to gst-vaapi-branch commit b8d8be4
9365 ee7e81b: h264parse: Don't discard first AU delimiter
9366 3690fb9: h264parse: Add more NAL types for debugging output
9367 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
9368 ace61048: h265parse: expose compatible profiles to downstream
9369 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9371 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9373 * gst/vaapi/gstvaapipluginutil.c:
9374 * gst/vaapi/gstvaapivideocontext.c:
9375 * gst/vaapi/gstvaapivideocontext.h:
9376 gstvaapivideocontext: remove unused parameter
9377 gst_vaapi_video_context_prepare() received an unused parameter. This patch
9378 removes it and the structure passed by the caller.
9379 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
9380 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9382 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9384 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9385 decoder: hevc: Fix decoding of stream when it has temporal sublayers
9386 We are calculating the dpb size based on max_dec_pic_buffering.
9387 But if there are more than one temporal sublayers, we are supposed
9388 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
9389 size calculation (Assuming HighestTid as max_sub_layers_minus).
9390 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
9391 https://bugzilla.gnome.org/show_bug.cgi?id=753226
9392 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9394 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9396 * gst/vaapi/gstvaapidecode.c:
9397 * gst/vaapi/gstvaapidecodebin.c:
9398 * gst/vaapi/gstvaapiencode_h264.c:
9399 * gst/vaapi/gstvaapiencode_h265.c:
9400 * gst/vaapi/gstvaapiencode_jpeg.c:
9401 * gst/vaapi/gstvaapiencode_mpeg2.c:
9402 * gst/vaapi/gstvaapiencode_vp8.c:
9403 * gst/vaapi/gstvaapipluginutil.h:
9404 * gst/vaapi/gstvaapipostproc.c:
9405 * gst/vaapi/gstvaapisink.c:
9406 refactor vaapi caps strings for pad templates
9407 Refactor the main vaapi caps strings into three macros:
9408 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
9409 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
9410 Those are in gstvaapipluginutil.h so all the elements could use them, instead
9411 of re-declaring them every time.
9412 No functional changes.
9413 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9415 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9417 * gst/vaapi/gstvaapipostproc.c:
9418 gstvaapipostproc: fix code style
9419 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9421 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9423 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9424 decoder: hevc: Fix the decoding of dependent slice segment
9425 Decoding process for reference picture list construction needs to be
9426 invoked only for P and B slice and the value for slice_type of dependent slice
9427 segment should be taken from the previous independent slice segment header
9429 https://bugzilla.gnome.org/show_bug.cgi?id=753226
9430 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9432 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
9434 * gst/vaapi/gstvaapipluginbase.c:
9435 plugins: reduce the noise of warnings
9436 Those messagse should be attached to the object, also the lack of
9437 caps is not an error, in particular in the case of JPEG encoding.
9438 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9439 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9441 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9443 * gst-libs/gst/vaapi/gstvaapicontext.c:
9444 gstvaapicontext: fix the JPEG encoder attribs value
9445 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
9446 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
9447 assigns the returned value to the attribute.
9448 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9449 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9451 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
9453 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9454 gstvaapiencoder: framerate 0/1 is valid too
9455 Framerate 0/1 is valid, and it is particularly useful for picture
9456 encoding, such as jpeg. This patch makes the encoder to admit that
9458 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9459 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9461 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9463 * gst/vaapi/gstvaapipostproc.c:
9464 vaapipostroc: GLTextureUploadMeta in sink template
9465 Advertise GLTextureUploadMeta in sink caps template.
9466 https://bugzilla.gnome.org/show_bug.cgi?id=752130
9468 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9470 * gst/vaapi/Makefile.am:
9471 * gst/vaapi/gstvaapiencode.c:
9472 * gst/vaapi/gstvaapipluginbase.c:
9473 * gst/vaapi/gstvaapipluginbase.h:
9474 * gst/vaapi/gstvaapipostproc.c:
9475 * gst/vaapi/gstvaapisink.c:
9476 * gst/vaapi/gstvaapiuploader.c:
9477 * gst/vaapi/gstvaapiuploader.h:
9478 remove gstvaapiuploader
9479 Working on bug #744042 I realized that the gstvaapiuploader is practically not
9481 This patch removes the gstvaapiuploader and add the method
9482 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
9483 the system can handle, which is used by vaapisink and vaapipostproc.
9484 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9485 https://bugzilla.gnome.org/show_bug.cgi?id=752777
9487 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9489 * gst/vaapi/gstvaapidecode.c:
9490 vaapidecode: don't lost GLTextureUpload on seek
9491 When seeking, the decoder is reset, but the buffer pool is not
9492 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
9493 pool has the GLTextureUpload meta.
9494 The decoder knows that GLTextureUpload meta was negotiated in
9495 decide_allocation(), but this method is not called when seeking.
9496 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9497 https://bugzilla.gnome.org/show_bug.cgi?id=752929
9499 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9501 * gst/vaapi/gstvaapipluginutil.c:
9502 plugins: don't use gst_pad_get_allowed_caps()
9503 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
9504 decoders, that is OK, but in the case of the postproc might lead loops,
9505 since the gst_base_transform_query_caps() forwards the query upstream
9507 Instead of gst_pad_get_allowed_caps() we only query the peer with
9508 gst_pad_peer_query_caps() using the pad's template as filter.
9509 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9510 https://bugzilla.gnome.org/show_bug.cgi?id=752558
9512 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9517 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9519 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
9520 * patches/videoparsers/series.frag:
9521 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
9522 All API/ABI changes for S3D/MVC are added in 1.5, backporting
9523 them to older verison is not recommended.
9524 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9526 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9528 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
9529 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
9531 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9533 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9534 decoder: jpeg: Align with new API/ABI changes in codecparser
9535 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9537 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9540 codecparsers: Update to gst-vaapi-branch commit 800bdb2
9541 ed13220: mpegvideometa: add meta transform function
9542 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
9543 7a51722: codecparsers: jpeg: fix docs for table parsing functions
9544 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
9545 387a39d: codecparsers: jpeg: fix up API
9546 db9d6a9: codecparsers: jpeg: tweak API a little
9547 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
9548 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
9549 4658c30: codecparsers: jpeg: fix calculation of segment size
9550 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
9551 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
9552 9422464: h264parse: fix typo in log message
9553 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
9554 77704ce: nalutils: trivial patch to check if
9555 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
9556 7862f95: Revert "codecparsers: remove ignored increment of return"
9557 54017b1: h264parse: Add support for passing stereoscopic/multiview info
9558 8667ee4: h264parse: Don't switch to passthrough on set_caps()
9559 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9561 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9563 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9564 decoder: h264: track previous reference frames.
9565 Improve closure of gaps in frame_num by strictly following and trying
9566 to fill them with previous reference frames. So, they are now tracked
9567 thus avoiding insertion of dummy ("greenish") frames.
9569 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9571 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9572 decoder: h264: fix integration of second field into the DPB.
9573 If the new picture to be added to the DPB is not a first field, then
9574 it shall be the second field of the previous picture that was added
9576 This removes the need for dpb_find_picture() now that we track the
9577 immediately preceding decoded picture, in decode order.
9579 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9581 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9582 decoder: h264: fix closure of "other-field" gap.
9583 When a dummy "other-field" is inserted, it is assumed to inherit the
9584 reference flags from the first field, and the sliding window decoded
9585 reference picture marking process is also executed so that corrupted
9586 frames are moved out as early as possible.
9587 While doing so, we also try to output frames that now contain a single
9588 valid field picture, prior to inserting any other picture into the DPB.
9589 Note: this may be superfluous currently based on the fact that dpb_add()
9590 combines the two most recent pairable fields, but this process would be
9591 further simplified later on.
9593 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9595 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9596 decoder: h264: track corrupted frames.
9597 Mark the picture as "corrupted" if it is reconstructed from corrupted
9598 references or if those references are fake, e.g. resulting from lost
9600 This is useful for notifying the upper layer, or downstream elements,
9601 that the decoded frame may contain artefacts.
9602 https://bugzilla.gnome.org/show_bug.cgi?id=703921
9604 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9606 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
9607 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
9608 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
9609 * gst/vaapi/gstvaapidecode.c:
9610 decoder: add initial infrastructure for marking corrupted output.
9611 Add initial infrastructure in core codec library and vaapidecode to mark
9612 corrupted frames as such. A corrupted frame is such a frame that was
9613 reconstructed from invalid references for instance.
9614 https://bugzilla.gnome.org/show_bug.cgi?id=751434
9615 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9617 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9620 Bump version for development
9622 === release 0.6.0 ===
9624 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9629 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9634 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9636 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9637 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
9638 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
9639 Right now there is not a primary ranked parser for vc1 and the demuxers
9640 delivers caps without specifying the profile. This situation is not an issue
9641 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
9642 explicit profile defined in the negotiated caps.
9643 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
9644 negotiation admits caps subsets try outs.
9645 This patch solves the issue ignoring the profile negotiation in the caps. For
9646 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
9647 done without the vc1 parser, such as happens in gstreamer 1.5.
9648 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9650 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9652 * gst/vaapi/gstvaapi.c:
9653 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
9654 Unfortunately vaapidecodebin element is not seems to be stable
9655 enough for autoplugging ahead of vaapidecode.
9656 Lowering the rank for now (cosidering the immediate 0.6 release).
9657 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
9658 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9660 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9662 * gst-libs/gst/vaapi/Makefile.am:
9663 build: Add missing CFLAGS to Makefile.am
9665 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9667 * gst-libs/gst/vaapi/gstvaapifilter.c:
9668 gstvaapifilter: Only register STE property if it supported by corresponding VA library
9669 Fix the regression introduced in commit eb465fb.
9670 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
9671 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9673 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9675 * gst/vaapi/gstvaapipostproc.c:
9676 vaapipostproc: no format convert on GL tex upload meta
9677 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
9678 color format of the buffer.
9679 https://bugzilla.gnome.org/show_bug.cgi?id=748184
9681 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9683 * gst-libs/gst/vaapi/gstvaapifilter.c:
9684 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
9685 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
9686 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9688 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9690 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9691 encoder:h265: Fix the check for packed-header support
9692 Use VA_ENC_PACKED_HEADER_* definition for checking.
9693 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9695 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9697 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9698 encoder:h264: Fix the check for packed-header support
9699 Use VA_ENC_PACKED_HEADER_* definition for checking.
9700 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9702 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9704 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9705 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
9706 One buffering_period() SEI message shall be present in every IDR access unit
9707 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
9708 use a non-CQP mode, e.g. CBR. In other words, when
9709 nal_hrd_parameters_present_flag is set to 1.
9710 One picture_timing() SEI messages shall be present in every access unit
9711 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
9712 https://bugzilla.gnome.org/show_bug.cgi?id=722734
9713 https://bugzilla.gnome.org/show_bug.cgi?id=751831
9714 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9716 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9718 * gst/vaapi/gstvaapidecodebin.c:
9719 vaapidecodebin: notify if vpp is disabled
9720 When the system is aware that VPP is not available by the VA driver,
9721 it would be useful to notify to the user that the disable-vpp property
9723 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9725 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9727 * gst/vaapi/gstvaapidecodebin.c:
9728 * gst/vaapi/gstvaapidecodebin.h:
9729 vaapidecodebin: enable vpp if it is available
9730 Instead of creating and adding VPP into the bin at setup, we wait until
9731 we are sure the VA driver supports it. We know that when the VA video
9732 context is received by the bin. Afterwards, it is decided to instanciate
9733 and link the VPP or not.
9734 This is more efficient and safer than waiting the VPP to fail and then
9736 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9738 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9740 * tests/test-display.c:
9741 * tests/test-windows.c:
9742 tests: Fix compilation while enabling egl as the only renderer in build
9743 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
9745 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9748 configure: fix the build while enabling egl as the only renderer
9750 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9753 libs: Bump library major version
9755 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9757 * gst/vaapi/gstvaapi.c:
9758 * gst/vaapi/gstvaapidecodebin.c:
9759 * gst/vaapi/gstvaapiencode.c:
9760 * gst/vaapi/gstvaapiencode_jpeg.c:
9761 * gst/vaapi/gstvaapipluginbase.c:
9762 * gst/vaapi/gstvaapipluginutil.c:
9763 * gst/vaapi/gstvaapipostproc.c:
9764 * gst/vaapi/gstvaapivideobufferpool.c:
9765 * gst/vaapi/gstvaapivideocontext.c:
9766 * gst/vaapi/gstvaapivideomemory.c:
9767 * gst/vaapi/gstvaapivideometa.c:
9768 gst/vaapi: Switch to upstreram like indentation.
9769 gst-indent for all gst/vaapi/*.c source files
9771 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9773 * gst/vaapi/gstvaapidecodebin.c:
9774 * gst/vaapi/gstvaapidecodebin.h:
9775 vaapidecodebin: Add property to disable VPP
9776 Adding a new propery "disable-vpp", enabling it will prevent
9777 the insertion of vaapipostproc child element.
9778 This is helpful in debugging, specifically to narrow-down the
9779 vaapidecodebin/vaapipostproc related negotiation issues.
9780 No support for run-time disabling for now.
9781 https://bugzilla.gnome.org/show_bug.cgi?id=745901
9783 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9785 * gst/vaapi/gstvaapipostproc.c:
9786 vaapipostproc: Fix wrong selection of passthrough mode.
9787 The Current code path is falling back to passthorugh mode if there is no
9788 vpp property set by the user explictily. But we should not use the
9789 passthrough mode if the negotiated src pad caps have a differnt color space
9790 format than sink pad caps (Even though the user didn't set the format property
9792 https://bugzilla.gnome.org/show_bug.cgi?id=748184
9793 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9795 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9797 * gst/vaapi/gstvaapipostproc.c:
9798 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
9799 This is a workaround to deal with the va-intel-driver for non-native
9800 formats while doing advanced deinterlacing. The format of reference surfaces must
9801 be same as the format used by the driver internally for motion adaptive
9802 deinterlacing and motion compensated deinterlacing.
9803 A permanent solution could be to do the color space conversion internally
9804 for reference surfaces.
9805 https://bugzilla.gnome.org/show_bug.cgi?id=730925
9806 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9808 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
9810 * gst/vaapi/gstvaapisink.c:
9811 Work around ABBA deadlock between vaapisink and vaapipostproc
9812 vaapisink takes the display lock, then does a gst_buffer_replace which can
9813 take the lock on the gst_vaapi_video_pool.
9814 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
9815 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
9816 surfaces, which means that gst_vaapi_surface_create is
9817 called. gst_vaapi_surface_create takes the display lock.
9818 If vaapisink and vaapipostproc are in different threads, and this happens,
9819 you get a deadlock. vaapisink holds the display lock, and wants the
9820 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
9821 and wants the display lock.
9822 Work around this by releasing the display lock in vaapisink around the
9824 https://bugzilla.gnome.org/show_bug.cgi?id=738249
9825 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
9826 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9828 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
9830 * gst/vaapi/gstvaapidecodebin.c:
9831 * gst/vaapi/gstvaapidecodebin.h:
9832 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
9833 https://bugzilla.gnome.org/show_bug.cgi?id=745901
9835 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9837 * gst/vaapi/gstvaapipostproc.c:
9838 vaapipostproc: log negotiated caps
9840 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9842 * gst/vaapi/gstvaapipostproc.c:
9843 vaapipostproc: remove useless debug message
9845 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9847 * gst/vaapi/gstvaapidecode.c:
9848 vaapidecode: log negotiated src/sink caps
9850 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9852 * gst/vaapi/gstvaapisink.c:
9853 vaapisink: error handling if rendering fails
9854 This patch enhance the code path when an error is found when rendering a
9856 If the video meta doesn't contain a surface proxy or a surface, a warning
9858 If the rendering backend fails, a error message is posted in the bus.
9859 https://bugzilla.gnome.org/show_bug.cgi?id=749382
9861 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9863 * gst/vaapi/gstvaapisink.c:
9864 vaapisink: Fix the conditional pad template creation.
9866 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9868 * tests/Makefile.am:
9869 build: Don't build simple-encoder test program if there is no VA Encoding support
9870 This will fix the build error against older VA-APIs <= 0.32
9872 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9874 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
9875 * gst-libs/gst/vaapi/gstvaapicompat.h:
9876 Fix build error for older VA-API versions
9877 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
9878 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
9881 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9883 * gst/vaapi/gstvaapisink.c:
9884 vaapisink: Fix the capsfeature advertisement in padtemplate
9885 This fixes the regression introduced in 64acc74.
9886 If a pad supports multiple set of capsfeatures, it needs to add
9887 multiple equal structures with different feature sets to the caps.
9888 Because caps structures with the same name but with a non-equal
9889 set of caps features are not compatible.
9890 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
9891 https://bugzilla.gnome.org/show_bug.cgi?id=750095
9893 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
9895 * gst/vaapi/gstvaapisink.c:
9896 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
9897 https://bugzilla.gnome.org/show_bug.cgi?id=750095
9898 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9899 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9901 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
9903 * gst/vaapi/gstvaapipluginbase.c:
9904 vaapipluginbase: Override downstream allocation reply if no pool
9905 If the downstream replied without a pool, then override it.
9906 https://bugzilla.gnome.org/show_bug.cgi?id=748559
9908 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9910 * gst/vaapi/gstvaapipostproc.c:
9911 * gst/vaapi/gstvaapipostproc.h:
9912 vaapipostproc: add color balance interface
9913 https://bugzilla.gnome.org/show_bug.cgi?id=720376
9915 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9917 * gst-libs/gst/vaapi/gstvaapifilter.c:
9918 * gst-libs/gst/vaapi/gstvaapifilter.h:
9919 * gst/vaapi/gstvaapipostproc.c:
9920 * gst/vaapi/gstvaapipostproc.h:
9921 vaapipostproc: add skin tone enhancement
9922 Added the 'skin-tone-enhancement' property to vaapostproc.
9923 https://bugzilla.gnome.org/show_bug.cgi?id=744088
9925 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9927 * docs/reference/libs/libs-docs.xml.in:
9928 doc: add VA-API reference in freedesktop
9930 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9932 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
9933 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
9934 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
9935 patches/videoparsers: rebase all the h264parse patches
9936 In order to avoid the creation of .orig files and break the distcheck target
9938 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9940 * ext/libvpx/Makefile.am:
9941 build: don't build in parallel libvpx
9942 This fixes the distcheck -j XX target.
9944 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9946 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9947 encoder: jpeg: Fix the packed header generation
9948 This is a work-around to satisfy the va-intel-driver.
9949 Normalize the quality factor and scale QM values (only for packed header
9950 generation) similar to what VA-Intel driver is doing . Otherwise the
9951 generated packed headers will be wrong, since the driver itself is
9952 scaling the QM values using the normalized quality factor.
9953 https://bugzilla.gnome.org/show_bug.cgi?id=748335
9954 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9956 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9958 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9959 decoder: h264: fix uninitialized variables in avcC mode.
9960 Fix uninitialized variables when decoding SPS and PPS NAL units from
9961 "codec-data" buffers. This is particularly important when seeking ops
9962 are involved, and the new persistent states are used more often.
9963 https://bugzilla.gnome.org/show_bug.cgi?id=750094
9965 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9967 * gst/vaapi/gstvaapidecode.c:
9968 vaapidecode: remove unneeded casting
9969 And a code-style fix
9971 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9973 * gst/vaapi/gstvaapidecode.c:
9974 vaapidecode: calculate decoding latency
9975 This is a naïve approach to the calculation of the VA-API decoding latency. It
9976 takes into consideration when the frame-rate has some insane value.
9977 https://bugzilla.gnome.org/show_bug.cgi?id=740419
9979 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
9982 configure: Compiling against libgstgl requires libgstvideo
9983 Fix detection of the GstGL helper headers in uninstalled
9986 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9988 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9989 encoder: hevc: Fix the size over-flow for encoded buffer.
9990 The approximation of 6 times compression ratio migh not
9991 work in all cases. Especially when enabling I frames.
9992 Provide large enough size for coded-buffer creation.
9994 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9996 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9997 encoder: vp8: Fix the size over-flow for encoded buffer.
9998 The approximation of 4 times compression ratio will not
9999 work in all cases. Especially when enabling I frames.
10000 Provide large enough size for coded-buffer creation.
10002 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10004 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10005 encoder: hevc: fix bug in multi slice encoding.
10006 This is a work-around for satisfying the VA-Intel driver.
10007 The driver only support slices begin from CTU row start address.
10008 Multi-Slice encoding also requires a fix in va-intel-driver:
10009 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
10010 https://bugzilla.gnome.org/show_bug.cgi?id=749854
10011 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10013 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10015 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10016 decoder: h264: add initial support for loss of pictures.
10017 Implement decoding process for gaps in frame_num (8.5.2). This
10018 also somewhat supports unintentional loss of pictures.
10019 https://bugzilla.gnome.org/show_bug.cgi?id=745048
10020 https://bugzilla.gnome.org/show_bug.cgi?id=703921
10021 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
10022 [fixed derivation of POC, ensured clone is valid for reference,
10023 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
10024 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10026 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10028 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10029 decoder: h264: add support for missing first field.
10030 Try to identify missing first fields too, thus disregarding any
10031 intermediate gaps in frames. We also assume that we keep the same
10032 field sequence, i.e. if previous frames were in top-field-first
10033 (TFF) order, then so are subsequent frames.
10034 Note that insertion of dummy first fields need to operate in two
10035 steps: (i) create the original first field that the current field
10036 will inherit from, and (ii) submit that field into the DPB prior
10037 to initializing the current (other) field POC values but after any
10038 reference flag was set. i.e. copy reference flags from the child
10039 (other field) to the parent (first field).
10040 https://bugzilla.gnome.org/show_bug.cgi?id=745048
10042 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10044 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10045 decoder: h264: add support for missing second field.
10046 Interlaced H.264 video frames always have two fields to decode and
10047 display. However, in some cases, e.g. packet loss, one of the field
10048 can be missing. This perturbs the reference picture marking process,
10049 whereby the number of references available in DPB no longer matches
10050 the expected value.
10051 This patch adds initial support for missing field within a decoded
10052 frame. The current strategy taken is to find out the nearest field,
10053 by POC value, and with the same parity.
10054 https://bugzilla.gnome.org/show_bug.cgi?id=745048
10056 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10058 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10059 decoder: h264: improve tracking of "top-field-first" flag.
10060 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
10061 does not mandate it. This will be useful for tracking missing fields, and
10062 also for more correct _split_fields() implementation for frames in the DPB.
10064 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10066 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10067 decoder: h264: skip all pictures prior the first I-frame.
10068 Don't try to decode pictures until the first I-frame is received within
10069 the currently active sequence. There is no point is decoding and then
10070 displaying frames with artifacts.
10072 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10074 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10075 decoder: h264: fix processing of EOSEQ NAL.
10076 Fix decoding of end_of_seq() NAL unit so that to not submit the current
10077 picture for decoding again. This is pretty vintage code that dates back
10078 before the existing of the whole decoder units machinery.
10079 One issue that could be arising if that code was kept is that we could
10080 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
10081 Once without the decode_only flag set, and once with that flag set. The
10082 end result is that the GstVideoDecoder would release the codec frame
10083 twice, thus releasing stale data.
10084 In short, the piece of code that is removed by this patch is for once
10085 completely obsolete for a while, and secondly error-prone in corner
10088 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
10090 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10091 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10092 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
10093 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
10094 decoder: add utility function to clone picture objects.
10095 https://bugzilla.gnome.org/show_bug.cgi?id=703921
10096 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
10097 [added cosmetic changes, fixed propagation of "one-field" flag to
10098 children, fixed per-codec clone modes (h264)]
10099 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10101 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
10103 * gst/vaapi/Makefile.am:
10104 build: don't compile HEVC encoder if not supported
10106 (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
10107 https://bugzilla.gnome.org/show_bug.cgi?id=749954
10108 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
10109 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10111 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
10113 * gst-libs/gst/vaapi/gstvaapicompat.h:
10114 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10115 HEVC: decode: add missing va_dec_hevc header
10116 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
10117 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10118 https://bugzilla.gnome.org/show_bug.cgi?id=749953
10120 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10122 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10123 mpeg2: fix PTS cache for GOP start.
10124 If the GOP temporal sequence number (TSN) is interpolated from a valid
10125 PTS, then we need to compensate that PTS corresponding to the start of
10126 GOP with the next picture to be decoded, which shall be an I-frame,
10127 based on its sequence number.
10128 https://bugzilla.gnome.org/show_bug.cgi?id=748676
10130 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10132 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10133 mpeg2: avoid crash when seeking with debug logs
10134 Move down the debug message when the state of the decoder is verified
10135 so the slice header is not NULL.
10137 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
10139 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10140 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
10141 Reset state and add some checks for safe state to avoid a crash and
10142 a warning after the decoder is destroyed/recreated during a seek.
10144 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10146 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
10147 * patches/videoparsers/series.frag:
10148 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
10149 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10151 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10153 * ext/codecparsers:
10154 codecparsers: Update to gst-vaapi-branch commit 20ee952
10155 b7dded3: h264parse: don't consider unknown stream-format as avc
10156 5110ad9: h264parse: fix up handling of input caps corner cases
10157 e51db3e: h264parse: Remove dead code
10158 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
10159 8482957: h265parse: Fix profile, tier and level setting in caps
10160 4649acb: h265parse: Fix the memory freeing of stored VPS nals
10161 f2beeb7: h265parse: Fix source caps to report cropped dimensions
10162 6886a31: h264parse: Fix profile and level setting in caps
10163 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
10164 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
10165 53074fc: build: Upgrade GStreamer dependency to 1.0
10166 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10168 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10170 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10171 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
10172 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10174 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10176 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10177 HEVC: decode: Update Cropping Rectangle
10178 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10180 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10182 * gst/vaapi/Makefile.am:
10183 * gst/vaapi/gstvaapi.c:
10184 * gst/vaapi/gstvaapiencode_h265.c:
10185 * gst/vaapi/gstvaapiencode_h265.h:
10186 HEVC_Encode: Add HEVC(h265) Encoder plugin
10187 https://bugzilla.gnome.org/show_bug.cgi?id=748874
10188 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10190 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10192 * gst-libs/gst/vaapi/Makefile.am:
10193 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10194 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
10195 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
10196 https://bugzilla.gnome.org/show_bug.cgi?id=748874
10197 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10199 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10202 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
10203 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10204 https://bugzilla.gnome.org/show_bug.cgi?id=748874
10206 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10208 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
10209 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
10210 gstvaapiutils_h265: Add H265 Tier specific utility functions
10211 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
10212 -- New API: gst_vaapi_utils_h265_get_tier_string()
10213 https://bugzilla.gnome.org/show_bug.cgi?id=748874
10214 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10216 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10218 * docs/reference/plugins/Makefile.am:
10219 doc: conditional linking for scanner
10220 Add x11 library only if it is enabled.
10221 https://bugzilla.gnome.org/show_bug.cgi?id=749018
10223 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10225 * docs/reference/plugins/plugins.types:
10226 doc: fix scanner compilation warning
10227 https://bugzilla.gnome.org/show_bug.cgi?id=749018
10229 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10231 * docs/reference/libs/libs-docs.xml.in:
10232 * docs/reference/libs/libs-sections.txt:
10233 doc: update sections and symbols
10234 https://bugzilla.gnome.org/show_bug.cgi?id=749018
10236 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10240 * debian.upstream/Makefile.am:
10241 * docs/Makefile.am:
10242 * docs/reference/Makefile.am:
10243 * docs/reference/libs/Makefile.am:
10244 * docs/reference/plugins/Makefile.am:
10246 * ext/libvpx/Makefile.am:
10248 * gst-libs/Makefile.am:
10249 * gst-libs/gst/Makefile.am:
10250 * gst-libs/gst/base/Makefile.am:
10251 * gst-libs/gst/codecparsers/Makefile.am:
10252 * gst-libs/gst/vaapi/Makefile.am:
10254 * gst/vaapi/Makefile.am:
10255 * patches/Makefile.am:
10256 * patches/videoparsers/Makefile.am:
10257 * pkgconfig/Makefile.am:
10258 * tests/Makefile.am:
10260 This patch handles dinamically the gitignore files with git.mk[1].
10261 Removed the automake variable MAINTAINERCLANFILES in most of the
10262 Makefile.am files since now it is handled by the top one.
10263 1. https://github.com/behdad/git.mk/blob/master/git.mk
10264 https://bugzilla.gnome.org/show_bug.cgi?id=749321
10266 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10268 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10269 wayland: sync() when destroy()
10270 Before pushing a the new frame, the render() method calls sync() to flush the
10271 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
10272 to a memory leak too.
10273 This patch calls sync() in the destroy() to flush the pending frames before
10274 destroying the window.
10275 Also a is_cancelled flag is added. This flag tells to not flush the event
10276 queue again since the method failed previously or were cancelled by the user.
10277 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10279 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
10281 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10282 * gst-libs/gst/vaapi/gstvaapiwindow.h:
10283 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10284 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10285 * gst/vaapi/gstvaapisink.c:
10286 vaapisink: implement unlock/unlock_stop for wayland
10287 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
10288 shutting down. This can happen e.g. if the wayland compositor exits while
10289 the pipeline is running.
10291 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
10292 * splitted the patch removing wl_display_dispatch_queue()
10293 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10294 https://bugzilla.gnome.org/show_bug.cgi?id=747492
10295 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10297 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10300 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10301 wayland: wl_display_dispatch_queue() can block forever.
10302 wl_display_dispatch_queue() might prevent the pipeline from shutting
10303 down. This can happen e.g. if the wayland compositor exits while the
10304 pipeline is running.
10305 This patch replaces it with these steps:
10306 - With wl_display_prepare_read() all threads announce their intention
10308 - wl_display_read_events() is thread save. On threads reads, the other
10309 wait for it to finish.
10310 - With wl_display_dispatch_queue_pending() each thread dispatches its
10312 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
10313 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
10314 * stripped out the unlock() unlock_stop() logic
10315 * stripped out the poll handling
10316 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10317 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10318 https://bugzilla.gnome.org/show_bug.cgi?id=747492
10320 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10322 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10323 wayland: rename frame for last_frame
10324 Since frame in the private data means the last frame sent, it would
10325 semantically better use last_frame.
10326 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
10328 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10330 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10332 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10333 wayland: use a counter as sync flag
10334 Wayland window has a pointer to the last pushed frame and use it to set the
10335 flag for stopping the queue dispatch loop. This may lead to memory leaks,
10336 since we are not keeping track of all the queued frames structures.
10337 This patch removes the last pushed frame pointer and change the binary flag
10338 for an atomic counter, keeping track of number of queued frames and use it for
10339 the queue dispatch loop.
10340 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10342 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10344 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10345 wayland: decouple wl_buffer from frame
10346 This patch takes out the wayland's buffer from the the frame structure. The
10347 buffer is queued to wayland and destroyed in the "release" callback. The
10348 frame is freed in the surface's "done" callback.
10349 In this way a buffer may be leaked but not the whole frame structure.
10350 - surface 'done' callback is used to throttle the rendering operation and to
10351 unallocate the frame, but not the buffer.
10352 - buffer 'release' callback is used to destroy wl_buffer.
10353 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
10355 * kept the the event_queue for buffer's proxy
10356 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10357 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10359 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10361 * gst/vaapi/gstvaapisink.c:
10362 vaapisink: fix indentation
10364 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10366 * debian.upstream/Makefile.am:
10367 * ext/libvpx/Makefile.am:
10368 * gst-libs/gst/vaapi/Makefile.am:
10369 * gst/vaapi/Makefile.am:
10370 * tests/Makefile.am:
10371 build: fix make distcheck
10372 This patch fixes several issues found when running the `make distcheck`
10374 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
10376 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
10378 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
10379 - The make target distcleancheck failed because some autogenerated files
10380 were not handled with the DISTCLEANFILES variable.
10381 Note: `make distcheck -jXX` is not currently supported.
10383 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10385 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
10386 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
10387 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
10388 h264parse: update patches with upstream
10389 These patches didn't applied cleanly, breaking the `make distcleancheck`
10390 target. Re-sync'ed the patches against the current git's submodule.
10392 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10394 * tests/simple-encoder.c:
10395 tests: simple-encoder: fix build warnings on 64-bit platforms.
10396 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
10397 importantly fix warnings spitted out during build on 64-bit platforms.
10398 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
10399 g_warning ("Invalid VAAPI buffer size (%d)", size);
10401 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
10402 g_warning ("Failed to create output buffer of size %d", size);
10405 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10407 * gst/vaapi/gstvaapipluginbase.c:
10408 * gst/vaapi/gstvaapipluginutil.c:
10409 * gst/vaapi/gstvaapipluginutil.h:
10410 * gst/vaapi/gstvaapivideocontext.h:
10411 plugins: remove gstreamer-0.10 crumbs
10412 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
10413 Still, its definition was still in the code. This patch removes it.
10414 https://bugzilla.gnome.org/show_bug.cgi?id=749113
10416 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10418 * tests/Makefile.am:
10419 * tests/simple-encoder.c:
10420 * tests/y4mreader.c:
10421 * tests/y4mreader.h:
10422 tests: add simple-encoder program
10423 This patch adds a simple-encoder test program that uses libgstvaapi for video
10424 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
10425 format. That can be from a regular file or standard input when the input
10427 Usage: simple-encoder [options]* <source>
10429 --output|-o output file name
10430 --codec|-c codec to use for video encoding
10431 --bitrate|-b desired bitrate (kbps)
10432 By default, and as an initial patch, the encoded stream shall conform to the
10433 minimally supported profile. That is "Constrained Baseline Profile" for H.264
10434 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
10435 generated by libgstvaapi.
10436 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
10437 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
10438 * general code clean-up
10439 * removed the yuv reader thread
10440 * re-wrote the y4m file parser
10441 * updated used API fixed some wrong usage
10442 * fixed a lot of memory leaks
10443 * added the bitrate setting
10444 * keep fps' numerator and denominator
10445 * simplified the thread control
10446 * removed custom logging and use glib
10447 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10448 https://bugzilla.gnome.org/show_bug.cgi?id=719528
10450 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10452 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10453 libs: trivial documentation fix
10454 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
10455 are not errors, so they do not have the ERROR namespace.
10456 This patch fixes this typo in documentation.
10458 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
10460 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10461 window: Correct prototype to match implementation
10462 On s390x, guintptr and GstVaapiID are not compatible types. The
10463 implementation of gst_vaapi_window_new_internal() and all its callers
10464 seem to assume that its third argument is a GstVaapiID, while the
10465 header gives it guintptr type.
10466 https://bugzilla.gnome.org/show_bug.cgi?id=744559
10468 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10470 * gst/vaapi/gstvaapidecode.c:
10471 * gst/vaapi/gstvaapidecodebin.c:
10472 vaapidecode: add guards for disabled codecs.
10473 Fix link when building plugin elements without HEVC support. e.g. don't
10474 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
10475 support HEVC enabled in libgstvaapi.
10476 Also, drop disabled codecs from static template caps. Add the missing
10477 HEVC static template caps into vaapidecodebin too.
10479 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10482 * gst-libs/gst/vaapi/glibcompat.h:
10483 build: upgrade glib dependency to 2.32
10484 Since bug #745728 was fixed the oldest supported version of GStreamer is
10485 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
10487 This patch changes the required version of glib in configure.ac and removes
10488 the hacks in glibcompat.h
10489 https://bugzilla.gnome.org/show_bug.cgi?id=748698
10491 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10493 * gst/vaapi/gstvaapipluginbase.c:
10494 plugins: check if the pool config is already set
10495 In commit 97b768, a regression for GStreamer 1.2 was introduced:
10496 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
10497 config option is already set. This patch adds an inline function to
10498 first verify if the option is not in the pool config berfore add it.
10500 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10502 * gst/vaapi/gstvaapipostproc.c:
10503 vaapipostproc: tune up a couple of log messages
10504 In order to reduce the noise, the query type log was downgrade from INFO to
10505 DEBUG, and the shared display address log message is assigned to the object.
10507 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10509 * gst/vaapi/gstvaapipluginbase.c:
10510 plugins: check gst_buffer_pool_set_config()
10511 Check the return value of gst_buffer_pool_set_config(). If it fails an error
10512 message is posted in the bus.
10514 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10516 * gst/vaapi/gstvaapipluginbase.c:
10517 plugins: more specific log message
10518 Be more specific in the log message about the reason of creating a new pool.
10520 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10522 * gst/vaapi/gstvaapipluginbase.c:
10523 plugins: delete unused variable
10524 need_pool is a boolean variable extracted from the allocation query, but it is
10525 not used afterwards.
10527 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
10529 * gst/vaapi/gstvaapipluginbase.c:
10530 vaapipluginbase: Update the pool if there was no pool in the downstream reply
10531 Fix regression introduced by bd866479, the query after decide_allocation()
10532 always needs a pool in the first slot.
10533 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10534 https://bugzilla.gnome.org/show_bug.cgi?id=748559
10536 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
10538 * gst/vaapi/gstvaapivideobufferpool.c:
10539 videopool: Free members before chaining up finalize
10540 The finalize function in GObject frees the object memory, so
10541 everything else needs to have been freed before.
10542 https://bugzilla.gnome.org/show_bug.cgi?id=748563
10544 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
10546 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
10547 wayland: don't leak the registry proxy
10548 Release the registry proxy when closing the display.
10549 https://bugzilla.gnome.org/show_bug.cgi?id=748564
10551 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10553 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10554 wayland: refactor _sync() method and rename callback
10555 This patch only intends to improve readability: in the method
10556 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
10558 Also renames the frame_redraw_callback() callback into frame_done_callback(),
10559 which is a bit more aligned to Wayland API.
10561 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
10563 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10564 wayland: free frame in buffer release callback
10565 The Wayland compositor may still use the buffer when the frame done
10566 callback is called.
10567 This patch destroys the frame (which contains the buffer) until the
10568 release callback is called. The draw termination callback only controls
10569 the display queue dispatching.
10570 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10571 https://bugzilla.gnome.org/show_bug.cgi?id=747492
10573 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10575 * gst/vaapi/gstvaapidecode.c:
10576 vaapidecode: refactor gst_vaapidecode_internal_flush()
10577 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
10578 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
10579 shares the same error message of gst_vaapidecode_internal_flush() when flush
10582 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10584 * gst/vaapi/gstvaapidecode.c:
10585 vaapidecode: refactor gst_vaapidecode_destroy()
10586 Add the method gst_vaapidecode_purge(). This method releases the
10587 flushed frames from the decoder.
10588 This new method add more readablity to gst_vaapidecode_destroy()
10590 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
10592 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10593 * gst/vaapi/gstvaapidecode.c:
10594 vaapidecode: Tell the base class about released frames on close
10595 The base class needs to be informed about frames that were still queued
10596 in the decoder on release, otherwise they are leaked.
10597 https://bugzilla.gnome.org/show_bug.cgi?id=747999
10599 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10601 * gst/vaapi/gstvaapidecode.c:
10602 vaapidecode: reduce logging noise
10603 When a frame is rejected by downstream, the message is logged twice. This
10604 patch removes one of those logging messages.
10605 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
10606 the log message from error to info.
10608 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
10610 * gst/vaapi/gstvaapidecode.c:
10611 vaapidecode: Use the GstVideoDecoder error reporting function
10612 This way, the decoder won't stop on the first decoding error,
10613 in most cases it can recover after some glitchiness.
10614 https://bugzilla.gnome.org/show_bug.cgi?id=744620
10616 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
10618 * gst/vaapi/gstvaapipluginbase.c:
10619 vaapipluginbase: The allocation query can return without a pool
10620 It is possible to return the min/max/size without actually providing
10621 a pool. This way the source knows how many buffers downstream needs.
10622 https://bugzilla.gnome.org/show_bug.cgi?id=748076
10624 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10627 * gst/vaapi/Makefile.am:
10628 * gst/vaapi/gstvaapiparse.c:
10629 * gst/vaapi/gstvaapiparse.h:
10630 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
10631 * patches/videoparsers/series.frag:
10632 plugins: Add h265 videoparser element "vaapiparse_h265"
10633 This is a mirror of h265parse element in upstream gst-plugins-bad.
10634 There could be additional patches but all should go to upstream.
10635 This is for making development faster.
10636 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
10638 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10640 * ext/codecparsers:
10641 codecparsers: Update to gst-vaapi-branch commit 43a0368
10642 45f1c28: codecparser: h265: Fix nal unit size checking
10643 f25987b: codecparser: h265: Calculate crop rectangle dimensions
10644 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
10645 4c8ec41: Add h265 videoparser plugin source files
10647 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10650 autogen: drop videoutils submodule.
10652 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10654 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10655 decoder: hevc: cosmetics.
10656 Mostly coding style updates. Avoid integer signess inconsistencies.
10657 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
10659 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10661 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10662 decoder: hevc: Add Support for tiled video decoding
10663 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
10664 the tile column width and tile row height should be calculated.
10665 Equations: 6-1, 6-2
10666 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
10668 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10670 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10671 decoder: hevc: Fix decoding when there are RASL pictures present.
10672 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
10673 -- Fix PicOutputFlag setting for RASL picture
10674 -- Fix prev_poc_lsb/prev_poc_msb calculation
10675 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
10676 -- Fixed couple of crashes and added cosmetics
10678 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
10680 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
10681 display: drm: fix race condition setting device type
10682 There is a race condition where g_drm_device_type can be left set to
10683 DRM_DEVICE_RENDERNODES when it shouldn't.
10684 If thread 1 comes in and falls into the last else statement setting up both
10685 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
10686 it sets g_drm_device_type = RENDERNODES.
10687 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
10688 up that type to be tried but then encounters the lock and has to wait until the
10689 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
10690 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
10691 attempts will only try RENDERNODES.
10692 So to avoid this situation I have simply moved the acquisition of the lock higher
10693 up in the attached patch.
10694 https://bugzilla.gnome.org/show_bug.cgi?id=747914
10696 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
10698 * gst/vaapi/gstvaapipostproc.c:
10699 vaapipostproc: Don't create filter on caps query
10700 The problem with this is that creating the filter causes the display to
10701 be selected, and the caps query happens while linking the element. So,
10702 if the downstream or upstream element is using a specific display
10703 object, it won't be propagated correctly to the postproc as it already
10704 has a display at this point.
10705 https://bugzilla.gnome.org/show_bug.cgi?id=747945
10707 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
10709 * gst-libs/gst/vaapi/gstvaapivideopool.c:
10710 videopool: Release lock while allocating new object
10711 The video pool can be accessed with the display lock held, for example,
10712 when releasing a buffer from inside vaapisink_render, but allocating
10713 a new object can may also take the display lock. Which means a possible
10715 https://bugzilla.gnome.org/show_bug.cgi?id=747944
10717 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10719 * gst/vaapi/gstvaapisink.c:
10720 vaapisink: use GstVideoSink vmethod show_frame()
10721 vaapisink inherits from GstVideoSink, in order to use its functionality (such
10722 as ::show-preroll-frame property), we should use its vmethod show_frame(),
10723 rather than call ourselves render() and preroll().
10725 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10727 * gst/vaapi/gstvaapisink.c:
10728 * gst/vaapi/gstvaapisink.h:
10729 vaapisink: add 'handoff' signal
10730 This patch adds the signal ::handoff and the property signal-handoffs. If the
10731 property is set TRUE, the signal ::handoff is emitted just after the buffer is
10733 Based on Zhao Halley <halley.zhao@intel.com>
10734 https://bugzilla.gnome.org/show_bug.cgi?id=747905
10736 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10738 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10739 HEVC: silence the compiler
10740 Fixed a couple of clang complains.
10742 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
10744 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10745 wayland: destroy vpp buffer pool on resize
10746 Otherwise the old buffers with the old size are used.
10747 https://bugzilla.gnome.org/show_bug.cgi?id=747491
10749 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10752 * gst-libs/gst/vaapi/Makefile.am:
10753 build: don't compile HEVC if not supported
10754 HEVC decoding was added recently libva-1.5.
10755 This patch avoids HEVC decoding support in libgstvaapi if it is not available
10756 in the installed libva.
10757 https://bugzilla.gnome.org/show_bug.cgi?id=747831
10759 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10761 * gst/vaapi/gstvaapidecode.c:
10762 vaapidecode: Update Author name in plugin metadata
10764 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10766 * gst/vaapi/gstvaapidecode.c:
10767 plugins: Add HEVC decoder
10768 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10770 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10772 * gst-libs/gst/vaapi/Makefile.am:
10773 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10774 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
10775 HEVC: Add HEVC(h265) decoder to core libgstvaapi
10776 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10778 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10780 * gst-libs/gst/vaapi/Makefile.am:
10781 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
10782 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
10783 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
10784 HEVC: Add codec utility methods to core libgstvaapi
10785 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10787 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10789 * gst-libs/gst/vaapi/gstvaapiprofile.c:
10790 * gst-libs/gst/vaapi/gstvaapiprofile.h:
10791 HEVC: gstvaapiprofile: Add profile definitions
10792 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10794 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10797 HEVC: build: Check availability of h265 decoder APIs
10798 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10800 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10804 * gst-libs/gst/codecparsers/Makefile.am:
10805 HEVC: Allow to build h265 codecparser internally
10806 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10808 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10810 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
10811 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
10812 * gst-libs/gst/vaapi/gstvaapisurface.c:
10813 guard buffer export API if not available
10814 The support for buffer exports in VA-API was added in version 0.36. These
10815 interfaces are for interop with EGL, OpenCL, etc.
10816 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
10817 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
10818 This patch guards all the buffer exports handling (and dmabuf allocator) if
10819 the detected VA-API version is below 0.36.
10820 https://bugzilla.gnome.org/show_bug.cgi?id=746405
10822 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10824 * ext/codecparsers:
10825 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
10826 767bf22: codecparsers: h265: add helpers to convert quantization matrices
10827 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
10828 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
10829 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
10830 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
10832 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
10834 * gst/vaapi/gstvaapidecode.c:
10835 vaapidecode: unref video codec frame twice
10836 We get one reference when the frame is passed to decode_handle_frame()
10837 and create another one in gst_vaapi_decoder_push_frame().
10838 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
10839 Here the frame is always released twice:
10840 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
10841 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
10842 In gst_vaapidecode_reset_full() both references to the frame must be
10844 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10845 https://bugzilla.gnome.org/show_bug.cgi?id=743226
10847 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10849 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
10850 libs: remove unused variables
10851 clang reports these unused variables. Let's get rid of them.
10852 This patch is a missing part of commit c82e5173
10853 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10855 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10857 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10858 decoder: mpeg4: remove an spurious comparison
10859 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
10860 less than zero. Hence this pre-condition test is a no-op. This patch removes
10862 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10864 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10866 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10867 encoder: h264: casts slice_param->slice_type
10868 slice_type in slice_param is defined as (char *), but it is compared against a
10869 signed integer. clang complains about this comparison.
10870 This patch casts the variable.
10871 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10873 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10875 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10876 encoder: avoid GstVaapiCodedBuffer redefinition
10877 The symbol GstVaapiCodedBuffer is already defined in
10878 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
10879 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
10880 This patch removes that redefinition.
10881 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10883 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10885 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
10886 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10887 libs: remove unused variables
10888 clang reports these unused variables. Let's get rid of them.
10889 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10891 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10893 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10894 encoder: mpeg2: use fabsf() instead of abs()
10895 The member value in frame_rate_tab is float, the result of the abs() function
10896 should be float too. But abs() only manages integers.
10897 This patch replaces abs() with fabsf() to handle correctly the possible floats
10899 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10901 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10903 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10904 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10905 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
10906 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10907 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10908 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
10909 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
10910 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
10911 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10913 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10918 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10922 Changing source code download links from https://gitorious to https://github
10923 -- gitmodules: Change gstreamer-codecparsers submodule source download link
10924 -- README: Change the gstreamer-vaapi webpage link
10926 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10928 * ext/codecparsers:
10929 codecparsers: update to gst-vaapi-branch commit 1f792e4
10930 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
10931 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
10932 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
10933 2b92a67: h264parse: reset the parser information when caps changes
10934 05eee86: codecparsers: Indent file
10935 e27a38b: codecparsers: Add READ_UE_MAX macro
10936 2036471: Constify some static arrays everywhere
10938 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10940 * gst/vaapi/gstvaapivideoconverter_glx.c:
10941 * gst/vaapi/gstvaapivideoconverter_x11.c:
10942 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
10944 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10946 * gst/vaapi/gstvaapidecode.c:
10947 * gst/vaapi/gstvaapidecodebin.c:
10948 * gst/vaapi/gstvaapiencode_h264.c:
10949 * gst/vaapi/gstvaapiencode_jpeg.c:
10950 * gst/vaapi/gstvaapiencode_mpeg2.c:
10951 * gst/vaapi/gstvaapiencode_vp8.c:
10952 * gst/vaapi/gstvaapipluginbase.c:
10953 * gst/vaapi/gstvaapipluginutil.c:
10954 * gst/vaapi/gstvaapipluginutil.h:
10955 * gst/vaapi/gstvaapipostproc.c:
10956 * gst/vaapi/gstvaapisink.c:
10957 * gst/vaapi/gstvaapivideobuffer.c:
10958 * gst/vaapi/gstvaapivideobufferpool.c:
10959 * gst/vaapi/gstvaapivideocontext.c:
10960 * gst/vaapi/gstvaapivideocontext.h:
10961 * gst/vaapi/gstvaapivideoconverter_glx.h:
10962 * gst/vaapi/gstvaapivideoconverter_x11.h:
10963 * gst/vaapi/gstvaapivideomemory.h:
10964 * gst/vaapi/gstvaapivideometa_texture.c:
10965 Removal of gstreamer-1.0 support
10966 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
10967 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
10968 This patch removes all the pre-processor conditional code compilation guarded
10970 Thus, all the video converters were removed too.
10971 https://bugzilla.gnome.org/show_bug.cgi?id=745728
10972 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10973 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10975 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10977 * gst-libs/gst/vaapi/gstcompat.h:
10978 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10979 * gst-libs/gst/vaapi/gstvaapiprofile.c:
10980 * gst-libs/gst/vaapi/sysdeps.h:
10981 * gst/vaapi/gstcompat.h:
10982 * gst/vaapi/gstvaapi.c:
10983 * gst/vaapi/gstvaapidecode.c:
10984 * gst/vaapi/gstvaapidecodebin.c:
10985 * gst/vaapi/gstvaapiencode.c:
10986 * gst/vaapi/gstvaapiencode_h264.c:
10987 * gst/vaapi/gstvaapiencode_jpeg.c:
10988 * gst/vaapi/gstvaapiencode_mpeg2.c:
10989 * gst/vaapi/gstvaapiencode_vp8.c:
10990 * gst/vaapi/gstvaapiparse.c:
10991 * gst/vaapi/gstvaapipluginbase.c:
10992 * gst/vaapi/gstvaapipluginutil.c:
10993 * gst/vaapi/gstvaapipostproc.c:
10994 * gst/vaapi/gstvaapisink.c:
10995 * gst/vaapi/gstvaapiuploader.c:
10996 * gst/vaapi/gstvaapivideobuffer.c:
10997 * gst/vaapi/gstvaapivideobufferpool.c:
10998 * gst/vaapi/gstvaapivideocontext.c:
10999 * gst/vaapi/gstvaapivideoconverter_glx.c:
11000 * gst/vaapi/gstvaapivideoconverter_x11.c:
11001 * gst/vaapi/gstvaapivideomemory.c:
11002 * gst/vaapi/gstvaapivideometa.c:
11003 * gst/vaapi/gstvaapivideometa_texture.c:
11005 update and move gstcompat.h
11006 The purpose of gstcompat.h is to couple the API differences among
11007 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
11008 in this compatibility layer shall be removed.
11009 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
11010 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
11011 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
11012 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
11013 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
11014 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11015 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11016 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11018 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11021 * gst/vaapi/Makefile.am:
11022 autotools: remove gstreamer-1.0 support
11023 This patch only removes the support of gstreamer-1.0 in the autotools
11024 scripts. No other files are touched.
11025 In the automake file all the converters were deprecated.
11026 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11027 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11028 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11030 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11035 Remove the gstreamer-videoutils submodule
11037 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11040 * gst-libs/gst/Makefile.am:
11041 * gst-libs/gst/vaapi/Makefile.am:
11042 * gst-libs/gst/video/Makefile.am:
11043 * gst/vaapi/Makefile.am:
11044 * tests/Makefile.am:
11045 Remove libgstvaapi-videoutils.so
11046 This library was intended to add the base classes for video decoders which
11047 where not included in gstreamer-0.10.
11048 Since the support of gstreamer-0.10 is deprecated those classes are not
11049 required, thus the whole library is removed.
11050 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11051 https://bugzilla.gnome.org/show_bug.cgi?id=732666
11052 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11054 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11057 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
11058 * gst-libs/gst/vaapi/gstvaapiutils.c:
11059 * tests/test-subpicture.c:
11060 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
11061 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
11062 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
11063 deprecated these guards are not required.
11064 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11065 https://bugzilla.gnome.org/show_bug.cgi?id=732666
11066 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11068 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11070 * gst-libs/gst/vaapi/gstcompat.h:
11071 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
11072 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11073 * gst-libs/gst/vaapi/gstvaapiimage.c:
11074 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
11075 * gst-libs/gst/vaapi/video-format.c:
11076 * gst-libs/gst/vaapi/video-format.h:
11077 * gst/vaapi/gstvaapi.c:
11078 * gst/vaapi/gstvaapidecode.c:
11079 * gst/vaapi/gstvaapidecodebin.c:
11080 * gst/vaapi/gstvaapidownload.c:
11081 * gst/vaapi/gstvaapidownload.h:
11082 * gst/vaapi/gstvaapiencode.c:
11083 * gst/vaapi/gstvaapiencode_h264.c:
11084 * gst/vaapi/gstvaapiencode_jpeg.c:
11085 * gst/vaapi/gstvaapiencode_mpeg2.c:
11086 * gst/vaapi/gstvaapiencode_vp8.c:
11087 * gst/vaapi/gstvaapiparse.c:
11088 * gst/vaapi/gstvaapipluginbase.c:
11089 * gst/vaapi/gstvaapipluginbase.h:
11090 * gst/vaapi/gstvaapipluginutil.c:
11091 * gst/vaapi/gstvaapipluginutil.h:
11092 * gst/vaapi/gstvaapipostproc.c:
11093 * gst/vaapi/gstvaapisink.c:
11094 * gst/vaapi/gstvaapiupload.c:
11095 * gst/vaapi/gstvaapiupload.h:
11096 * gst/vaapi/gstvaapiuploader.c:
11097 * gst/vaapi/gstvaapivideobuffer.c:
11098 * gst/vaapi/gstvaapivideoconverter_glx.c:
11099 * gst/vaapi/gstvaapivideoconverter_x11.c:
11100 * gst/vaapi/gstvaapivideometa.c:
11101 * gst/vaapi/gstvaapivideometa.h:
11102 * tests/test-filter.c:
11103 * tests/test-subpicture.c:
11104 Removal of gstreamer-0.10 support
11105 This patch removes all the pre-processor conditional code compilation guarded
11106 for gstreamer-0.10.
11107 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11108 https://bugzilla.gnome.org/show_bug.cgi?id=732666
11109 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11111 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11114 * debian.upstream/control.in:
11115 * gst-libs/gst/video/Makefile.am:
11116 * gst/vaapi/Makefile.am:
11117 autotools: remove gstreamer-0.10 support
11118 This patch only removes the support of gstreamer-0.10 in the autotools
11119 scripts. No other files are touched.
11120 The configuration parameter --gstreamer-api was deleted since now it is always
11122 The verification of vmethod query in GstBaseSinkClass was removed since it was
11123 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
11125 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
11127 The automake files were changed accordingly.
11128 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
11129 https://bugzilla.gnome.org/show_bug.cgi?id=732666
11130 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11131 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11133 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11135 * gst/vaapi/gstvaapidecode.c:
11136 vaapidecode: add drain() vmethod
11137 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
11138 class. This patch implements this new method.
11139 https://bugzilla.gnome.org/show_bug.cgi?id=742922
11140 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11141 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11143 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11145 * gst/vaapi/gstvaapidecode.c:
11146 vaapidecode: remove vmethod reset()
11147 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
11148 this patch removes the method reset() which was deprecated in GStreamer 1.2.
11149 https://bugzilla.gnome.org/show_bug.cgi?id=742922
11150 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11151 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11153 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11155 * gst/vaapi/gstvaapidecode.c:
11156 vaapidecode: handle flush() vmethod
11157 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
11158 and flush() was added.
11159 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
11160 superior. Otherwise, reset() is set.
11161 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
11162 was renamed to gst_vaapidecode_internal_flush().
11163 2) The new vmethod flush() always do a hard full reset.
11164 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
11165 gather all collected data with gst_video_decoder_have_frame()
11166 https://bugzilla.gnome.org/show_bug.cgi?id=742922
11167 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11168 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11170 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11172 * gst/vaapi/gstvaapidecode.c:
11173 vaapidecode: call the correct query function
11174 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
11175 a bug was introduced: when calling the parent's query function of the
11176 src pad, the one of the sink pad is called instead. This patch fixes
11178 https://bugzilla.gnome.org/show_bug.cgi?id=746248
11180 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11183 gitmodules: Use https:// url instead of git:// for submodules.
11184 Gitorious is failing to clone repositories over git:// url.
11186 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
11188 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11189 vaapidisplay: mark X11 display as compatible with EGL
11190 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
11191 gst-launch-1.0 ... ! vaapidecode ! glimagesink
11192 https://bugzilla.gnome.org/show_bug.cgi?id=745902
11193 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11195 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
11197 * gst/vaapi/gstvaapidecode.c:
11198 vaapidecode: Don't crash if a buffer outlives the decoder
11199 Sometimes, for example, when switching video streams but keeping
11200 the same sink, the surface will be released after the decoder is
11201 stopped and replaced. This caused a crash because the release
11202 callback was called on an invalid pointer.
11203 The patch adding an additional reference to the decoder object in the buffer.
11204 https://bugzilla.gnome.org/show_bug.cgi?id=745189
11205 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
11206 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11208 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11210 * gst/vaapi/gstvaapidecode.c:
11211 vaapidecode: clean-ups (indentation, drop unused variables)
11213 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11215 * gst/vaapi/gstvaapidecode.c:
11216 vaapidecode: use the query virtual methods in 1.4
11217 GstVideoDecoder, the base class of vaapidecode, added support for
11218 pad queries as virtual methods. This patch enables the use of that
11219 support, while keeping support for lower versions of gstreamer.
11220 This patch is important because GstVideoDecoder takes care of other
11221 queries that might be important in the pipeline managing.
11222 v2: 1) rebase to current master
11223 2) fix indentation with gst-indent
11224 3) simplify the patch layout
11225 4) fix the context query
11226 5) initialise the filter to NULL
11227 6) improve the query log message for gst-1.2
11228 https://bugzilla.gnome.org/show_bug.cgi?id=744406
11230 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11232 * gst/vaapi/gstvaapipostproc.c:
11233 * gst/vaapi/gstvaapipostproc.h:
11234 vaapipostproc: always activate buffer pool
11235 The vaapipostproc has a proxy flag to know if the the buffer pool is
11236 already active. But this fails in some situations where it is needed
11237 to renegotiate the buffer pool.
11238 This patch removes that flag so the renegotiation is done whenever is
11240 https://bugzilla.gnome.org/show_bug.cgi?id=745535
11242 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11244 * gst/vaapi/gstvaapisink.c:
11245 vaapisink: fix minor memory leak in debug mode.
11246 The gst_video_colorimetry_to_string() function returns a newly created
11247 string that represents the GstVideoColorimetry value. So, that needs
11248 to be released after usage, in e.g. GST_DEBUG().
11250 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11252 * gst/vaapi/gstvaapidecodebin.h:
11253 vaapidecodebin: Avoid usage of "__" prefix in macro names
11254 Avoiding "__" prefix usage in Header File Guards as per
11255 C standard recommendation.
11257 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11259 * gst/vaapi/gstvaapi.c:
11260 plugins: Disable vaapidecodebin for GStreamer < 1.4
11261 There are autoplugging issues in GStreamer-1.2.
11262 Lets disable vaapidecodebin untill we get some workarounds for this.
11264 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11266 * gst/vaapi/Makefile.am:
11267 * gst/vaapi/gstvaapi.c:
11268 * gst/vaapi/gstvaapidecodebin.c:
11269 * gst/vaapi/gstvaapidecodebin.h:
11270 plugins: Add a vaapidecodebin element
11271 Add a "vaapidecodebin" element to vaapi plugins.
11272 Child Elements: "vaapidecode ! queue ! vaapipostproc"
11273 The Reasons for implementing a new bin element:
11274 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
11275 with out any dependency to upstream gstreamer.
11276 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
11277 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
11278 Also customers using older gstreamer versions (1.2 and 1.4) will get the
11279 benefit of autoplugging, hardware accelerated deinterlacing support etc.
11280 -- Help to maintain a single thread implementation in vaapidecode.
11281 This will result a dead-lock free vaapidecode in most of the cases.
11282 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
11283 https://bugzilla.gnome.org/show_bug.cgi?id=745216
11285 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11287 * gst/vaapi/gstvaapidecode.c:
11288 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
11290 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
11292 * gst/vaapi/gstvaapidecode.c:
11293 * gst/vaapi/gstvaapidecode.h:
11294 vaapidecode: Switch back to Single thread implementation
11295 Because the decoder uses the thread from handle_frame() to decode a frame,
11296 the src pad task creates an unsolveable AB-BA deadlock between
11297 handle_frame() waiting for a free surface and decode_loop() pushing
11298 decoded frames out.
11299 Instead, have handle_frame() take responsibility for pushing surfaces,
11300 and remove the deadlock completely. If you need a separate thread
11301 downstream, you can insert a queue between vaapidecode and its downstream
11303 Another justification for the single thread implementation is,
11304 there are two many point of locking in gstreamer-vaapi's current
11305 implementation which can lead to deadlocks.
11306 https://bugzilla.gnome.org/show_bug.cgi?id=742605
11307 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
11308 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11309 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11311 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11313 * gst/vaapi/gstvaapipluginbase.c:
11314 plugins: fix detection of upstream v4l2src element.
11315 Improve check for upstream element that requires DMABUF buffer pool,
11316 e.g. v4l2src element. In particular, make sure to traverse through
11317 any additional capsfilter for instance.
11318 Note: the traversal to the top-most upstream element could be made
11319 more generic, but we are insofar only interested in supporting pipes
11320 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
11321 specification for a desired video camera format, or resolution.
11323 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11325 * gst/vaapi/gstvaapivideomemory.c:
11326 plugins: fix allocation of DMABUF memory.
11327 The dmabuf allocator would close the DMABUF handle passed in the init
11328 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
11329 to avoid a double close, ultimately in the underlying driver that owns
11332 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11334 * gst/vaapi/gstvaapidecode.c:
11335 vaapidecode: keep src caps and output state in sync
11336 vaapidecode keeps an output state that use the format
11337 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
11338 for a correct negotiation.
11339 I don't see the rational behind this decoupling, it looks like
11340 unnecessary complexity. This patch simplify this logic keeping
11341 in sync the output state and the src caps.
11342 This patch improves the readability of the function
11343 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
11344 the patch validates if the buffer pool has the configuration for
11345 the GL texture upload meta, in order to set the caps feature
11346 meta:GLTextureUpload. Otherwise, the I420 format is set back.
11347 https://bugzilla.gnome.org/show_bug.cgi?id=744618
11348 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11349 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11351 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11353 * gst/vaapi/gstvaapidecode.c:
11354 vaapidecode: upload meta only if feature and allocation
11355 When vaapidecode finishes the decoding of a frame and pushes it,
11356 if, in the decide_allocation() method, it is determined if the
11357 next element supports the GL texture upload meta feature, the
11358 decoder adds the buffer's meta.
11359 Nonetheless, in the same spirit of the commit 71d3ce4d, the
11360 determination if the next element supports the GL texture upload
11361 meta needs to check both the preferred caps feature *and* if the
11362 allocation query request the API type.
11363 This patch, first removes the unused variable need_pool, and
11364 determines the attribute has_texture_upload_meta using the
11365 preferred caps feature *and* the allocation query.
11366 Also, the feature passed to GstVaapPluginBase is not longer
11367 determined by has_texture_upload_meta, but by the computed
11369 https://bugzilla.gnome.org/show_bug.cgi?id=744618
11370 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11371 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11373 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11375 * gst/vaapi/gstvaapidecode.c:
11376 * gst/vaapi/gstvaapidecode.h:
11377 * gst/vaapi/gstvaapipluginutil.c:
11378 * gst/vaapi/gstvaapipluginutil.h:
11379 vaapidecode: delayed src caps negotiation
11380 Currently the src caps are set immediately after the sink caps are set, but in
11381 that moment the pipeline might not fully constructed and the video sink has
11382 not negotiated its supported caps and features. As a consequence, in many cases
11383 of playback, the least optimized caps feature is forced. This is partially the
11384 responsible of bug #744039.
11385 Also, vaapidecode doesn't attend the reconfigure events from downstream,
11386 which is a problem too, since the video sink can be changed with different
11388 This patch delays the src caps, setting them until the first frame arrives to
11389 the decoder, assuming until that very moment the whole pipeline is already
11390 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
11391 as a consequence of a reconfiguration event from downstream.
11392 A key part of this patch is the new GstVaapiCapsFeature
11393 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
11394 doesn't have a peer yet. Also, for a better report of the caps allowed
11395 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
11396 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
11397 v3: move the input_state unref to close(), since videodecoder resets at
11398 some events such as navigation.
11399 v4: a) the state_changed() callback replaces the input_state if the media
11400 changed, so this case is also handled.
11401 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
11402 always the input_state, the parameter were removed.
11403 c) there were a lot of repeated code handling the input_state, so I
11404 refactored it with the function gst_vaapi_decode_input_state_replace().
11405 https://bugzilla.gnome.org/show_bug.cgi?id=744618
11406 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11407 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11409 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11411 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11412 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
11413 encoder: h264: add support for more than 2 views
11414 Add support for H.264 MVC Multiview High profile encoding with
11415 more than 2 views. All views within the same accesss unit are
11416 provided in increasing order of view order index (VOIdx).
11417 Upto 10 view are supported for now.
11418 A new property "view-ids" has been provided for the plugins to
11419 set the view ids (which is an array of guint values) to be used
11421 https://bugzilla.gnome.org/show_bug.cgi?id=732453
11423 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11425 * gst/vaapi/gstvaapipluginbase.c:
11426 plugins: upload meta only if feature and allocation
11427 Working on bug #743687, I realized that vaapidecode always adds to its buffer
11428 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
11429 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
11430 Nevertheless, there are occasions where the query has the API type, but the
11431 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
11432 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
11433 buffer pool configuration, and adds its buffer's meta to each output buffer,
11434 even if the negotiated caps feature is memory:SystemMemory with I420 color
11436 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
11437 that relates caps <-> GL upload method. If it receives a buffer with color
11438 format I420, it assumes that it doesn't have a texture upload meta, because
11439 only those with RGB color format has it. Our buffers, with I420 format, say
11440 that they have the upload meta too. In that case the mapped method is a dummy
11441 one which does nothing. I reported this issue in bug #744039 (the patch,
11442 obviously, was rejected).
11443 This patch workarounds the problem: the buffer pool's configuration option
11444 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
11445 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
11446 caps feature is meta:GstVideoGLTextureUploadMeta.
11447 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
11448 in all they seem to work correctly.
11449 https://bugzilla.gnome.org/show_bug.cgi?id=744618
11450 [adapted to fit current EGL changes]
11451 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11453 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11455 * gst-libs/gst/vaapi/gstvaapitexture.c:
11456 * gst-libs/gst/vaapi/gstvaapitexture.h:
11457 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
11458 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
11459 * gst/vaapi/gstvaapivideometa_texture.c:
11460 plugins: add support for GstVideoGLTextureOrientation.
11461 Add support for GstVideoGLTextureOrientation modes. In particular,
11462 add orientation flags to the GstVaapiTexture wrapper and the GLX
11463 implementations. Default mode is that texture memory is laid out
11464 with top lines first, left row first. Flags indicate whether the
11465 X or Y axis need to be inverted.
11467 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11469 * gst/vaapi/gstvaapidecode.c:
11470 * gst/vaapi/gstvaapipluginbase.c:
11471 * gst/vaapi/gstvaapipluginutil.c:
11472 * gst/vaapi/gstvaapipluginutil.h:
11473 * gst/vaapi/gstvaapipostproc.c:
11474 * gst/vaapi/gstvaapivideometa_texture.c:
11475 plugins: add support for BGRA textures.
11476 Some frameworks (EFL) expect BGRA textures for storage. However,
11477 adding support for that broadly into GStreamer framework implies
11478 two kinds of hacks: (i) libgstgl helpers currently do not support
11479 BGRA textures correctly, (ii) we need to better parse downstream
11480 suggested caps and intersect them with what the VA plugin elements
11481 can offer to them for GL texturing.
11483 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11485 * gst/vaapi/gstvaapipluginutil.c:
11486 plugins: fix support for Wayland/EGL running alongside X11.
11487 When multiple display servers are available, the glimagesink element
11488 (from GStreamer 1.4) may not be able to derive a global display in
11489 Wayland. Rather, a "window"-specific display is created. In this case,
11490 the GstGLDisplay handle available through GstGLContext is invalid.
11491 So, try to improve heuristics for display server characterisation in
11492 those particular situations.
11494 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11497 * gst/vaapi/Makefile.am:
11498 * gst/vaapi/gstvaapidecode.c:
11499 * gst/vaapi/gstvaapipluginbase.c:
11500 * gst/vaapi/gstvaapipluginutil.c:
11501 * gst/vaapi/gstvaapivideobufferpool.c:
11502 * gst/vaapi/gstvaapivideometa_texture.c:
11503 plugins: add initial support for EGL.
11504 Add initial support for EGL through GstVideoGLTextureUploadMeta.
11505 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
11506 downstream supplied GstGLContext configuration, i.e. use its native
11507 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
11508 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
11510 https://bugzilla.gnome.org/show_bug.cgi?id=741079
11512 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11514 * gst/vaapi/gstvaapivideometa_texture.c:
11515 plugins: track video texture size changes.
11516 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
11517 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
11518 now update the texture size from the GstVideoMeta, if any, or reset
11519 to some defaults otherwise.
11521 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11523 * gst/vaapi/gstvaapipluginbase.c:
11524 * gst/vaapi/gstvaapipluginbase.h:
11525 * gst/vaapi/gstvaapipluginutil.c:
11526 plugins: ensure VA display matches GL context expectations.
11527 If a GstGLContext is supplied by the downstream element, then make
11528 sure that the VA plugin element gets a compatible display to what
11529 is requested by the GL context. e.g. re-allocate a VA/GLX display
11530 when a GLX context is provided by the downstream element.
11532 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11535 * gst/vaapi/Makefile.am:
11536 * gst/vaapi/gstvaapipluginbase.c:
11537 * gst/vaapi/gstvaapipluginbase.h:
11538 plugins: record downstream GstGLContext.
11539 Record GL context supplied by downstream elements. This can be useful,
11540 and further needed, to enforce run-time check that the GL context is
11541 compatible for use by libgstvaapi. e.g. check that we don't create a
11542 VA/GLX display for EGL/X11 contexts.
11543 https://bugzilla.gnome.org/show_bug.cgi?id=725643
11544 Original-path-by: Matthew Waters <ystreet00@gmail.com>
11546 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11548 * tests/Makefile.am:
11551 Add initial support for EGL to tests. The new EGL backend can be selected
11552 through the --egl command line option. The OpenGL|ES version can further
11553 be selected with the --gles-version command line option, where the default
11554 of 0 means "desktop" OpenGL.
11556 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11558 * gst-libs/gst/vaapi/Makefile.am:
11559 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
11560 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
11561 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
11562 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
11563 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
11564 egl: add windowing support.
11565 This provides for some basic EGL window abstraction.
11567 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11569 * gst-libs/gst/vaapi/Makefile.am:
11570 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
11571 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
11572 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
11573 egl: add texture abstraction.
11574 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
11575 or import a foreign allocated one, while still allowing updates from a
11578 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11580 * gst-libs/gst/vaapi/Makefile.am:
11581 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
11582 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
11583 egl: allow for EGLImage imports into VA Surfaces.
11584 Add helpers to import EGLImage objects into VA surfaces. There are
11585 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
11586 which allows for implicit conversion from EGLImage to a VA surface
11587 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
11588 which exactly wraps the source EGLImage, typically in RGBA format
11589 with linear storage.
11590 Note: in case of (i), the EGLImage can be disposed right after the
11591 VA surface creation call, unlike in (ii) where the user shall ensure
11592 that the EGLImage is live until the associated VA surface is no longer
11594 https://bugzilla.gnome.org/show_bug.cgi?id=743847
11596 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11599 * gst-libs/gst/vaapi/Makefile.am:
11600 * gst-libs/gst/vaapi/egl_compat.h:
11601 * gst-libs/gst/vaapi/egl_vtable.h:
11602 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11603 * gst-libs/gst/vaapi/gstvaapidisplay.h:
11604 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
11605 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
11606 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
11607 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
11608 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
11609 * gst-libs/gst/vaapi/ogl_compat.h:
11610 Add initial support for EGL.
11611 Add initial support for EGL to libgstvaapi core library. The target
11612 display server and the desired OpenGL API can be programmatically
11613 selected at run-time.
11614 A comprehensive set of EGL utilities are provided to support those
11615 dynamic selection needs, but also most importantly to ensure that
11616 the GL command stream is executed from within a single thread.
11617 https://bugzilla.gnome.org/show_bug.cgi?id=743846
11619 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11621 * gst-libs/gst/vaapi/gstvaapivalue.c:
11622 libs: initialize GValues in a thread-safe manner.
11624 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11626 * gst-libs/gst/vaapi/gstvaapivalue.c:
11627 libs: re-indent all GValue related source code.
11629 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11631 * gst/vaapi/gstvaapidecode.c:
11632 vaapidecode: partially revert 0777f35.
11633 Reset the VA decoder after updating the base plugin caps, and most
11634 importantly, after GstVideoDecoder negotiation. The reason behind
11635 this is that the negotiation could trigger a last decide_allocation()
11636 where we could actually derive a new GstVaapiDisplay to use from the
11637 downstream element. e.g. GLX backend.
11639 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11641 * gst/vaapi/gstvaapidecode.c:
11642 vaapidecode: Caps query should return the list of all supported caps.
11643 Query caps filtering should be always done on top of allowed caps instead
11644 of existing fixed caps on a particular pad.
11645 This fixes the mvc stream decoding when there is a base view(high profile)
11646 and non-base view(stereo-high profile).
11648 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11650 * gst/vaapi/gstvaapidecode.c:
11651 vaapidecode: intersect filter from query caps
11652 According to documentation[1] when receiving a GST_QUERY_CAPS
11653 the return value should be all formats that this elements supports,
11654 taking into account limitations of peer elements further downstream
11655 or upstream, sorted by order of preference, highest preference first.
11656 This patch add those limitations intersecting with the received
11657 filter in the query. Also takes into account the already negotiated
11658 caps. Also adds the processing of the query on the SRC pad.
11659 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
11660 https://bugzilla.gnome.org/show_bug.cgi?id=744406
11662 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11664 * gst-libs/gst/vaapi/Makefile.am:
11665 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11666 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11667 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11668 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11669 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
11670 * gst/vaapi/gstvaapivideomemory.c:
11671 Fix compiler warnings
11672 This patch fixes some warnings that gcc 4.9 reports.
11673 https://bugzilla.gnome.org/show_bug.cgi?id=744411
11675 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11677 * gst/vaapi/gstvaapidecode.c:
11678 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
11679 Hence the function name is shown in the gst-inspect-1.0 information
11680 rather than the memory address.
11681 https://bugzilla.gnome.org/show_bug.cgi?id=744330
11683 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11685 * gst/vaapi/gstvaapidecode.c:
11686 vaapidecode: log flow error name
11687 https://bugzilla.gnome.org/show_bug.cgi?id=744387
11689 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11691 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
11692 VC1: decoder: Ignore VC1 user BDU's
11693 Don't return error if the processed BDU is a user one, just ignore them.
11694 https://bugzilla.gnome.org/show_bug.cgi?id=741237
11695 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11697 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
11699 * gst/vaapi/gstvaapidecode.c:
11700 * gst/vaapi/gstvaapipluginbase.c:
11701 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
11702 This is required in GStreamer, elements should never return
11703 GST_FLOW_ERROR without posting an ERROR message on the bus.
11704 https://bugzilla.gnome.org/show_bug.cgi?id=744620
11706 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11708 * gst/vaapi/Makefile.am:
11709 * gst/vaapi/gstvaapi.c:
11710 * gst/vaapi/gstvaapiencode_vp8.c:
11711 * gst/vaapi/gstvaapiencode_vp8.h:
11712 plugins: Add VP8 Encoder
11714 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11716 * gst-libs/gst/vaapi/Makefile.am:
11717 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11718 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
11719 Add VP8 Encoder to core libgstvaapi.
11721 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11724 configure: Add Check for VP8 Encoding API
11726 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
11728 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
11729 decoder: vc1: Rounding control handling for VC1 simple and Main profile
11730 Added rounding control handling for VC1 simple and Main profile
11731 based on VC1 standard spec: section 8.3.7
11732 https://bugzilla.gnome.org/show_bug.cgi?id=743958
11733 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
11734 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11736 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11738 * gst/vaapi/Makefile.am:
11739 build: fix make dist when certain conditionals not met.
11740 Fix typo which was preventing the inclusion of jpeg encoder
11741 source files from make dist (when there is no jpeg encoder
11742 API support in libva).
11744 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11746 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
11747 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
11748 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
11749 use native YUV420 format (which is i420) as default.
11751 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11753 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11754 encoder: Only support YUV420 native format as input for now
11755 Practically we should be able to support more formats, for eg:
11756 JPEG Encoder can support YUV422, RGBA and all.
11757 But this is causing more issues which need proper fix here and there.
11759 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
11761 * gst-libs/gst/vaapi/gstvaapidecoder.h:
11762 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
11763 * gst/vaapi/gstvaapidecode.c:
11764 vaapidecode: Check the condition after taking the lock
11765 Otherwise the condition could become true before the lock
11766 is taken and the g_cond_signal() could be called
11767 before the g_cond_wait(), so the g_cond_wait() is never
11769 https://bugzilla.gnome.org/show_bug.cgi?id=740645
11771 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11773 * gst/vaapi/Makefile.am:
11774 * gst/vaapi/gstvaapi.c:
11775 * gst/vaapi/gstvaapiencode_jpeg.c:
11776 * gst/vaapi/gstvaapiencode_jpeg.h:
11777 plugins: Add JPEG encoder element
11779 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11781 * gst-libs/gst/vaapi/gstvaapicontext.c:
11782 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
11784 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11786 * gst-libs/gst/vaapi/gstvaapicontext.c:
11787 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
11788 Don't add the VAConfigAttribRateControl to the attribute list using
11789 for the vaCreateConfig if it is not supported by the driver.
11791 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11793 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11794 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
11796 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11798 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11799 gstvaapiencoder: Fix crash when handling rate control mask
11800 Having a ratecontrol_mask equal to zero is not a bug, but the driver
11801 might not be supporting any kind of rate control mechanisms.
11804 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11806 * gst-libs/gst/vaapi/Makefile.am:
11807 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
11808 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
11809 encoder: Add JPEG Encoder
11811 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11813 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
11814 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
11815 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
11817 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11819 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11820 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11821 * gst-libs/gst/vaapi/gstvaapiprofile.c:
11822 * gst-libs/gst/vaapi/gstvaapiprofile.h:
11823 Encode: Add support for Picture level Entrypoint
11824 This is useful for JPEG encoding which is utilizing picture level
11825 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
11827 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11830 configure: Add Check for JPEG encoding API
11832 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11837 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11840 Bump version for development.
11842 === release 0.5.10 ===
11844 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11849 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11854 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11856 * gst/vaapi/gstvaapivideometa_texture.c:
11857 Fix compilation error if there is no GL/gl.h header file installed
11859 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11861 * gst/vaapi/gstvaapivideomemory.h:
11862 plugins: drop leftover declaration.
11863 GstVaapiVideoMemory quark is not needed any more, and the actual
11864 implementation was already removed bfore the merge. i.e. this is
11865 an oversight for a hunk that was not meant to be pushed.
11867 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11869 * gst/vaapi/gstvaapipluginbase.c:
11870 * gst/vaapi/gstvaapivideobufferpool.c:
11871 * gst/vaapi/gstvaapivideobufferpool.h:
11872 * gst/vaapi/gstvaapivideomemory.c:
11873 * gst/vaapi/gstvaapivideomemory.h:
11874 plugins: add support for dma_buf exports (v4l2src).
11875 Allow v4l2src element to connected to vaapipostproc or vaapisink when
11876 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
11877 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
11878 to "dmabuf" could work, but with more demanding driver or kernel reqs.
11879 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
11880 with --without-libv4l2.
11881 https://bugzilla.gnome.org/show_bug.cgi?id=743635
11883 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
11886 * gst/vaapi/Makefile.am:
11887 * gst/vaapi/gstvaapipluginbase.c:
11888 plugins: add support for dma_buf imports.
11889 Allow imports of v4l2 buffers into VA surfaces for further operation
11890 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
11891 https://bugzilla.gnome.org/show_bug.cgi?id=735362
11892 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
11893 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11895 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11897 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11898 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
11899 surface: add support for GEM buffer imports.
11900 Add support for GEM buffer imports. This is useful for VA/EGL interop
11901 with legacy Mesa implementations, or when it is desired or required to
11902 support outbound textures for instance.
11903 https://bugzilla.gnome.org/show_bug.cgi?id=736718
11905 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11907 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11908 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
11909 surface: add support for dma_buf imports.
11910 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
11911 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
11912 resulting VA surface owns the supplied buffer handle.
11913 https://bugzilla.gnome.org/show_bug.cgi?id=735362
11915 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11917 * gst-libs/gst/vaapi/gstvaapisurface.c:
11918 * gst-libs/gst/vaapi/gstvaapisurface.h:
11919 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
11920 surface: add initial support for foreign buffer imports.
11921 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
11922 create a VA surface from an external buffer provided throug the
11923 new GstVaapiBufferProxy object.
11925 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11927 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11928 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11929 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11930 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
11931 surface: add support for GEM buffer exports.
11932 Add support for GEM buffer exports. This will only work with VA drivers
11933 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
11934 to support interop with EGL and the "Desktop" GL specification. Indeed,
11935 the EXT_image_dma_buf_import extension is not going to be supported in
11936 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
11938 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
11939 in Desktop OpenGL context.
11940 https://bugzilla.gnome.org/show_bug.cgi?id=736717
11942 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11944 * gst-libs/gst/vaapi/Makefile.am:
11945 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11946 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11947 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11948 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
11949 surface: add support for dma_buf exports.
11950 Use the new VA buffer export APIs to allow for a VA surface to be
11951 exposed as a plain PRIME fd. This is in view to simplifying interop
11952 with EGL or OpenCL for instance.
11953 https://bugzilla.gnome.org/show_bug.cgi?id=735364
11955 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11957 * gst-libs/gst/vaapi/Makefile.am:
11958 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11959 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11960 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11961 Add abstraction for exported VA buffers.
11962 The VA buffer export APIs work for a particular lifetime starting from
11963 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
11964 it could be much more convenient to support implicit releases by simply
11965 having a refcount reaching zero.
11966 https://bugzilla.gnome.org/show_bug.cgi?id=736721
11968 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11970 * gst-libs/gst/vaapi/Makefile.am:
11971 Add missing header file to Makefile
11972 Add gstvaapitexture_glx.h to Makefile.am
11974 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11976 * gst-libs/gst/vaapi/gstvaapicontext.c:
11977 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
11978 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
11979 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11980 * gst/vaapi/gstvaapipostproc.c:
11981 * gst/vaapi/gstvaapiuploader.c:
11982 * gst/vaapi/gstvaapivideobufferpool.c:
11983 * gst/vaapi/gstvaapivideomemory.c:
11984 * gst/vaapi/gstvaapivideomemory.h:
11985 * tests/test-surfaces.c:
11986 videopool: add optional flags for surface pool allocation.
11987 Reword surface pool allocation helpers so that to allow for a simple
11988 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
11989 somewhat more elaborated/flexible form with optional allocation flags
11990 and precise GstVideoInfo specification.
11991 This is an API/ABI change, and SONAME version needs to be bumped.
11993 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11995 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
11996 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
11997 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
11998 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
11999 * gst-libs/gst/vaapi/gstvaapivideopool.c:
12000 * gst-libs/gst/vaapi/gstvaapivideopool.h:
12001 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
12002 videopool: re-indent all GstVaapiVideoPool related source code.
12004 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12006 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12007 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
12008 window: add toplevel display indirection for visualid and colormap.
12009 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
12010 the best suitable window visual id and colormap. This is an indirection in
12011 view to supporting EGL and custom/generic replacements.
12013 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12015 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12016 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12017 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
12018 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
12019 window: add toplevel API to determine the colormap.
12020 Add GstVaapiWindowClass::get_colormap() hook to help determine the
12021 currently active colormap bound to the supplied window, or actually
12022 create it if it does not already exist yet.
12024 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12026 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
12027 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
12028 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12029 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12030 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
12031 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
12032 window: add toplevel API to determine a visual id.
12033 Add GstVaapiWindowClass::get_visual_id() function hook to help find
12034 the best suitable visual id for the supplied window. While doing so,
12035 also simplify the process by which an X11 window is created with a
12036 desired Visual, i.e. now use a visual id instead of a Visual object.
12038 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12040 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12041 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12042 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12043 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12044 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12045 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12046 * gst-libs/gst/vaapi/gstvaapiwindow.h:
12047 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
12048 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12049 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12050 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12051 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
12052 window: add generic helper to create windows.
12053 Add a new generic helper function gst_vaapi_window_new() to create
12054 a window without having the caller to check for the display type
12055 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
12056 to create windows, and the actual backend implementation fills it in.
12057 Add new generic helper functions gst_vaapi_texture_new_wrapped()
12058 This is a simplification in view to supporting EGL.
12060 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12062 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12063 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12064 * gst-libs/gst/vaapi/gstvaapitexture.c:
12065 * gst/vaapi/gstvaapivideometa_texture.c:
12066 display: add utility function to check for OpenGL rendering.
12067 Add gst_vaapi_display_has_opengl() helper function to help determining
12068 whether the display can support OpenGL context to be bound to it, i.e.
12069 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
12071 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12073 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12074 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12075 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12076 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12077 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12078 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12079 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12080 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12081 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12082 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12083 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12084 * gst/vaapi/gstvaapipluginutil.c:
12085 * gst/vaapi/gstvaapivideobuffer.c:
12086 * gst/vaapi/gstvaapivideometa_texture.c:
12087 display: refine the meaning of display type.
12088 Make gst_vaapi_display_get_display_type() return the actual VA display
12089 type. Conversely, add a gst_vaapi_display_get_class_type() function to
12090 return the type of the GstVaapiDisplay instance. The former is used to
12091 identify the display server onto which the application is running, and
12092 the latter to identify the original object class.
12094 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12096 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12097 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12098 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12099 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12100 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12101 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12102 display: cosmetics (helper macros, new internal API names).
12103 Add more helper macros to the top-level GstVaapiDisplay interfaces.
12104 Rename a few others used internally for improved consistency.
12106 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12108 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12109 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12110 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
12111 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
12112 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
12113 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12114 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12115 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
12116 display: record native display object.
12117 Record the underlying native display instance into the toplevel
12118 GstVaapiDisplay object. This is useful for fast lookups to the
12119 underlying native display, e.g. for creating an EGL display.
12121 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12123 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12124 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12125 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
12126 display: use a recursive mutex for the display cache.
12127 Use a recursive mutex for the display cache so that a 3rdparty display
12128 object could be initialized during the initialization of the parent
12131 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12133 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12134 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12135 * gst-libs/gst/vaapi/gstvaapitexture.c:
12136 * gst-libs/gst/vaapi/gstvaapitexture.h:
12137 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
12138 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12139 texture: add generic helper to create textures.
12140 Add new generic helper functions gst_vaapi_texture_new_wrapped()
12141 and gst_vaapi_texture_new() to create a texture without having
12142 the caller to uselessly check for the display type himself. i.e.
12143 internally, there is now a GstVaapiDisplayClass hook to create
12144 textures, and the actual backend implementation fills it in.
12145 This is a simplification in view to supporting EGL.
12147 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12149 * gst-libs/gst/vaapi/Makefile.am:
12150 * gst-libs/gst/vaapi/gstvaapitexture.c:
12151 * gst-libs/gst/vaapi/gstvaapitexture.h:
12152 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
12153 * gst-libs/gst/vaapi/gstvaapitexture_glx.h:
12154 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12155 * gst/vaapi/gstvaapivideoconverter_glx.c:
12156 * gst/vaapi/gstvaapivideometa_texture.c:
12157 * tests/test-textures.c:
12158 texture: move to core libgstvaapi base library.
12159 GstVaapiTexture is a generic abstraction that could be moved to the
12160 core libgstvaapi library. While doing this, no extra dependency needs
12161 to be added. This means that a GstVaapitextureClass is now available
12162 for any specific code that needs to be added, e.g. creation of the
12163 underlying GL texture objects, or backend dependent ways to upload
12164 a surface to the texture object.
12165 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
12167 https://bugzilla.gnome.org/show_bug.cgi?id=736715
12169 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12172 * gst-libs/gst/vaapi/Makefile.am:
12173 * gst-libs/gst/vaapi/gstvaapicompat.h:
12174 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12175 * gst-libs/gst/vaapi/gstvaapitexture.c:
12176 texture: drop support for VA/GLX interfaces.
12177 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
12178 ease of use, but they had other caveats to deal with. It's now better
12179 to move on to legacy mode, whereby VA/GLX interop is two be provided
12180 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
12181 https://bugzilla.gnome.org/show_bug.cgi?id=736711
12183 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12185 * gst-libs/gst/vaapi/gstvaapitexture.c:
12186 * gst-libs/gst/vaapi/gstvaapitexture.h:
12187 * gst/vaapi/gstvaapivideoconverter_glx.c:
12188 * gst/vaapi/gstvaapivideometa_texture.c:
12189 * tests/test-textures.c:
12190 texture: add support for cropping rectangle during transfer.
12191 The gst_vaapi_texture_put_surface() function is missing a crop_rect
12192 argument that would be used during transfer for cropping the source
12193 surface to the desired dimensions.
12194 Note: from a user point-of-view, he should create the GstVaapiTexture
12195 object with the cropped size. That's the default behaviour in software
12196 decoding pipelines that we need to cope with.
12197 This is an API/ABI change, and SONAME version needs to be bumped.
12198 https://bugzilla.gnome.org/show_bug.cgi?id=736712
12200 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12202 * gst-libs/gst/vaapi/gstvaapitexture.c:
12203 * gst-libs/gst/vaapi/gstvaapitexture.h:
12204 texture: re-indent all GstVaapiTexture related source code.
12206 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12208 * gst-libs/gst/vaapi/gstvaapisurface.c:
12209 * gst-libs/gst/vaapi/gstvaapisurface.h:
12210 surface: add more fine-grained allocation helper.
12211 Add new gst_vaapi_surface_new_full() helper function that allocates
12212 VA surface from a GstVideoInfo template in argument. Additional flags
12213 may include ways to
12214 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
12215 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
12216 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
12218 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12220 * gst-libs/gst/vaapi/gstvaapisurface.c:
12221 * gst-libs/gst/vaapi/gstvaapisurface.h:
12222 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
12223 surface: re-indent all GstVaapiSurface related source code.
12225 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12227 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12228 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
12229 surfaceproxy: add helper to create a wrapped surface object.
12230 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
12231 a proxy. The main use case for that is to convey additional information
12232 at the proxy level that would not be suitable to the plain surface.
12234 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12236 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12237 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
12238 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
12239 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
12241 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12244 libs: bump library major version.
12246 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12248 * gst-libs/gst/vaapi/gstvaapitypes.h:
12249 libs: re-introduce a GST_VAAPI_ID_INVALID value.
12250 Re-introduce a GST_VAAPI_ID_INVALID value that represents
12251 a non-zero and invalid id. This is useful to have a value
12252 that is still invalid for cases where zero could actually
12255 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12257 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
12258 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
12259 libs: expose GstVaapiMiniObject APIs to all backends.
12260 Make it possible to have all libgstvaapi backends (libs) access to a
12261 common GstVaapiMiniObject API and implementation. This is a minor step
12262 towards full exposure when needed, but restrict it to libgstvaapi at
12265 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12267 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
12268 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
12269 * gst-libs/gst/vaapi/gstvaapiobject.c:
12270 * gst-libs/gst/vaapi/gstvaapiobject.h:
12271 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
12272 libs: re-indent all GstVaapiObject related source code.
12273 Re-indent and provide additional minor cosmetical changes to the
12274 GstVaapiMiniObject and GstVaapiObject source files.
12276 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
12278 * gst/vaapi/gstvaapipluginutil.c:
12279 pluginutil: Fix clearing of subtitle overlay
12280 dvbsuboverlay signals no subtitles present by not setting
12281 GstVideoOverlayCompositionMeta on a buffer.
12282 Detect this, and remove subtitles whenever we have no overlay composition to
12284 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
12286 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
12288 * gst/vaapi/gstvaapipostproc.c:
12289 vaapipostproc: clear state on stop
12290 Otherwise restarting may fail because the state of vaapipluginbase and
12291 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
12292 initailization and not call gst_vaapi_plugin_base_set_caps()
12294 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
12296 * gst/vaapi/gstvaapidecode.c:
12297 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
12299 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12301 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12302 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
12303 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
12304 since the vaaapi context creation (gstvaapicontext.c) can still use the
12305 default chroma type which is YUV420.
12306 https://bugzilla.gnome.org/show_bug.cgi?id=743567
12307 https://bugzilla.gnome.org/show_bug.cgi?id=743035
12309 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12311 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
12312 * patches/videoparsers/series.frag:
12313 h264parse: drop patches merged upstream.
12314 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
12316 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12318 * ext/codecparsers:
12319 codecparsers: update to gst-vaapi-branch commit d3b5c1b
12320 8194cac: h264parse: parse SPS subset
12321 64b7f52: h264parse: expose stereo-high profile
12322 774360a: h264parse: add initial support for MVC NAL units
12323 258478f: h264parser: fix stack smashing
12325 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12327 * gst/vaapi/gstvaapivideometa_texture.c:
12328 Fix compilation error if there is no GL/gl.h header file installed
12330 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12332 * gst/vaapi/gstvaapidecode.c:
12333 vaapidecode: commit updated srcpad caps to base plugin.
12334 Make sure that the GstVaapiPluginBase instance receives the new src
12335 pad caps whenever they get updated from within the GstVaapiDecoder
12337 This also ensures that downstream elements receive correctly sized
12338 SW decoded buffers if needed.
12339 https://bugs.tizen.org/jira/browse/TC-114
12341 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12343 * gst/vaapi/gstvaapidecode.c:
12344 vaapidecode: always reset decoder on ::set_format().
12345 Split GstVideoDecoder::set_format() handler to first update the sink
12346 pad caps and reset the active VA decoder instance based on those, and
12347 then update the src pad caps whenever possible, e.g. when the caps
12348 specify a valid video resolution.
12350 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12352 * gst/vaapi/gstvaapivideomemory.c:
12353 vaapivideomemory: don't crash when trying to allocate 0x0 images.
12354 In some occasions, a buffer pool is created for pre-initialization
12355 purposes regardless of whether a valid image size is available or
12356 not. However, during actual decode stage, the vaapidecode element
12357 is expected to update the srcpad caps with the new dimensions, thus
12358 also triggering a reset of the underlying bufferpool.
12360 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12362 * ext/codecparsers:
12363 codecparsers: update to gst-vaapi-branch commit 191cb2f
12364 347605a: h264parse: expose compatible profiles to downstream
12365 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
12366 24a3126: Revert "h264parse: expose compatible profiles to downstream"
12367 8661740: h264parse: expose compatible profiles to downstream
12368 8b7ef3f: codecparsers: fix some compiler warnings
12370 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12372 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12373 encoder: h264: Fix the period between I/P frames
12374 If the key-frame period is set as one, then ip_period shuld be zero
12375 https://bugzilla.gnome.org/show_bug.cgi?id=734992
12377 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12379 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12380 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
12381 https://bugzilla.gnome.org/show_bug.cgi?id=734993
12383 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12385 * gst/vaapi/gstvaapisink.c:
12386 vaapisink: Protect the X11 API invokations with proper locking
12387 https://bugzilla.gnome.org/show_bug.cgi?id=739808
12389 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12391 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12392 encoder: h264: fix pixel-aspect-ratio in encoded stream.
12393 Really report sample aspect ratio (SAR) as present, and make it match
12394 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
12395 really make sure VUI parameter aspect_ratio_info_present_flag is set
12396 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
12397 This is a leftover from git commit a12662f.
12398 https://bugzilla.gnome.org/show_bug.cgi?id=740360
12400 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12402 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
12403 decoder: mpeg4: fix uninitialized variables.
12404 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
12405 GST_MPEG4_USER_DATA so that a parse error would result in skipping
12406 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
12407 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
12409 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12411 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12412 encoder: h264: fix profile limits.
12413 Fix ensure_profile_limits() to lower profile to the desired limits,
12414 only if the latter are actually known and the profile needed to be
12417 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12419 * gst/vaapi/gstvaapipostproc.c:
12420 vaapipostproc: fix out caps for GLMemory.
12421 If the best downstream capsfeature turns out to be GLMemory, then make
12422 sure to propagate RGBA video format in caps to that element. This fixes
12423 the following pipeline: ... ! vaapipostproc ! glimagesink.
12425 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12427 * gst/vaapi/gstvaapipostproc.c:
12428 vaapipostproc: fix check for compatible src pad capsfilters.
12429 When an explicit output video format is selected, from an src pad
12430 capsfilter, make sure that the downstream element actually supports
12431 that format. In particular, fix crash with the following pipelines:
12432 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
12433 XXX is a format not supported by xvimagesink.
12434 While doing so, also reduce the set of src pad filter caps to the
12435 actual set of allowed src pad caps.
12437 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12439 * gst/vaapi/gstvaapipostproc.c:
12440 * gst/vaapi/gstvaapipostproc.h:
12441 * gst/vaapi/gstvaapiuploader.c:
12442 * gst/vaapi/gstvaapiuploader.h:
12443 plugins: re-indent all video processing related source code.
12445 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12447 * gst/vaapi/gstvaapivideomemory.c:
12448 plugins: further fixes to the new "current" storage tracker.
12449 The ensure_surface() and ensure_image() functions shall only relate
12450 to the underlying backing store. The actual current flags are to be
12451 updated only through ensure_{surface,image}_is_current() or very other
12452 particular cases in GstMemory hooks.
12454 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12456 * gst/vaapi/gstvaapivideomemory.c:
12457 plugins: fix "current" video memory flags.
12458 If the surface proxy is updated into the GstVaapiVideoMemory, then
12459 it is assumed it is the most current representation of the current
12460 video frame. Likewise, make a few more arrangements to have the
12461 "current " flags set more consistently.
12463 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12465 * gst/vaapi/gstvaapivideomemory.c:
12466 * gst/vaapi/gstvaapivideomemory.h:
12467 * gst/vaapi/gstvaapivideometa.c:
12468 plugins: ensure VA surface is current prior to using it.
12469 When interacting with SW elements, the buffers and underlying video
12470 memory could be mapped as read/write. However, we need to use those
12471 buffers again as plain VA surfaces, we have to make sure the VA image
12472 is thus committed back to VA surface memory.
12473 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
12475 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12477 * gst/vaapi/gstvaapivideomemory.c:
12478 plugins: enable memory maps for read & write.
12479 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
12480 buffers can be further processed in-place, e.g. with a textoverlay.
12481 https://bugzilla.gnome.org/show_bug.cgi?id=704078
12482 [ported to current git master branch, amended commit message]
12483 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12485 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12487 * gst/vaapi/gstvaapidecode.c:
12488 * gst/vaapi/gstvaapipluginutil.c:
12489 * gst/vaapi/gstvaapipluginutil.h:
12490 * gst/vaapi/gstvaapipostproc.c:
12491 plugins: preserve framerate when updating src caps video format.
12492 In the current implementation, gst_video_info_set_format() would reset
12493 the whole GstVideoInfo structure first, prior to setting video format
12494 and size. So, coleteral information like framerate or pixel-aspect-
12496 Provide and use a unique gst_video_info_change_format() for overcome
12497 this issue, i.e. only have it change the format and video size, and
12498 copy over the rest of the fields.
12499 https://bugzilla.gnome.org/show_bug.cgi?id=734665
12501 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12503 * gst/vaapi/gstvaapi.c:
12504 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
12505 This is for helping decodebin to autoplug the vaapidecode element.
12506 Decodebin is selecting decoder elements only based on rank and caps.
12507 Without overriding the autoplug-* signals there is no way to autoplug
12508 HW decoders inside decodebin. An easier soulution is to raise the
12509 rank of vaapidecode, so that it gets selected first.
12510 https://bugzilla.gnome.org/show_bug.cgi?id=739332
12512 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12514 * gst-libs/gst/vaapi/gstvaapiprofile.c:
12515 * gst/vaapi/gstvaapidecode.c:
12516 vaapidecode: only expose supported profiles when needed.
12517 JPEG and VP8 codecs do not really support the concept of "profile". So,
12518 don't try to expose any set that wouldn't be supported by jpegparse, or
12519 ivfparse for instance.
12520 https://bugzilla.gnome.org/show_bug.cgi?id=739713
12521 https://bugzilla.gnome.org/show_bug.cgi?id=739714
12523 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12525 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12526 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
12527 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
12528 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
12529 decoder: h264: add initial support for repeat-first-field (RFF) flag.
12530 Use the SEI pic_timing() message to track and propagate down the repeat
12531 first field (RFF) flag. This is only initial support as there is one
12532 other condition that could induce the RFF flag, which is not handled
12535 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12537 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12538 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
12539 Fix the decoding process for picture order count type 0 when the previous
12540 picture had a memory_management_control_operation = 5. In particular, fix
12541 the actual variable type for prev_pic_structure to hold the full bits of
12542 the picture structure.
12543 In practice, this used to work though, due to the underlying type used to
12544 express a gboolean.
12546 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12548 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12549 decoder: h264: fix detection of top-field-first (TFF) flag.
12550 Use the SEI pic_timing() message to track the pic_struct variable when
12551 present, or infer it from the regular slice header flags field_pic_flag
12552 and bottom_field_flag. This fixes temporal sequence ordering when the
12553 output pictures are to be displayed.
12554 https://bugzilla.gnome.org/show_bug.cgi?id=739291
12556 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12558 * ext/codecparsers:
12559 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
12560 1241840 h264: fix derivation of MaxPicNum variable
12561 3bd718e h264: fix GstH264ParserResult documentation typo
12562 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
12563 b08e4be h264parse: don't unnecesarily set src_caps
12565 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12567 * gst/vaapi/gstvaapipostproc.c:
12568 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
12569 Added the same Klass specifications used in other upstream
12570 video postprocessing elements like videoconvert, videoscale,
12571 videobalance and deinterlace.
12572 An example use case is for this is to help the playsink
12573 to autoplug the hardware accelerated deinterlacer.
12575 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12577 * gst/vaapi/gstvaapipostproc.c:
12578 vaapipostproc: Tweak the output video format setting to enable the autoplugging
12579 This is a workaround until auto-plugging is fixed when
12580 format=ENCODED + memory:VASurface caps feature are provided.
12581 Use the downstream negotiated video format as the output video format
12582 if the user didn't ask for the colorspace conversion explicitly.
12583 Usecase: This will help to connect elements like videoscale, videorate etc
12585 https://bugzilla.gnome.org/show_bug.cgi?id=739443
12587 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12589 * gst/vaapi/gstvaapipostproc.c:
12590 * gst/vaapi/gstvaapipostproc.h:
12591 vaapipostproc: allow user defined scaling mode.
12592 Add new "scale-method" property to expose the scaling mode to use during
12593 video processing. Note that this is only a hint, and the actual behaviour
12594 may differ from implementation (VA driver) to implementation.
12596 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12598 * gst-libs/gst/vaapi/gstvaapifilter.c:
12599 * gst-libs/gst/vaapi/gstvaapifilter.h:
12600 * gst-libs/gst/vaapi/gstvaapiutils.c:
12601 * gst-libs/gst/vaapi/gstvaapiutils.h:
12602 filter: add initial support for high quality scaling.
12603 Add support for video scaling options in VPP pipelines. Only the
12604 DEFAULT mode is bound to exist. Others might be folded into that
12607 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12609 * gst-libs/gst/vaapi/gstvaapifilter.c:
12610 * gst-libs/gst/vaapi/gstvaapifilter.h:
12611 filter: re-indent all GstVaapiFilter related source code.
12613 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12615 * ext/codecparsers:
12616 codecparsers: update to gst-vaapi-branch commit f9d3bde.
12617 2218b02 h264parse: expose parsed profile and level to downstream
12618 3dbfab4 h264parse: return flushing if we get chained while being set to READY
12619 d40fa8b h264: fix frame packing SEI parsing
12620 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
12621 b3e022e h264: initialize some fields of pic_timing structure
12622 a70661d vc1: fix expected level in sequence-layer parsing unit test
12623 6cee88d vc1: fix level values for simple/main profile
12624 356c189 vc1: add unit test for sequence-layer parsing
12625 ab9f641 vc1: take care of endianness when parsing sequence-layer
12626 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
12628 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12630 * gst/vaapi/gstvaapidecode.c:
12631 vaapidecode: Expose the supported profiles as caps to upstream
12632 This will allows the playbin to fallback to Software Decoder
12633 if the Hardware Decoder does not support a particular profile.
12634 https://bugzilla.gnome.org/show_bug.cgi?id=730997
12636 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12638 * gst/vaapi/gstvaapiencode.c:
12639 * gst/vaapi/gstvaapiencode.h:
12640 * gst/vaapi/gstvaapiencode_h264.c:
12641 encode: Attach the codec-data to out caps only based on negotiated caps
12642 Attach the codec_data to out_caps only if downstream needed.
12643 For eg: h264 encoder doesn't need to stuff codec_data to the
12644 src caps if the negotiated caps has a stream format of byte-stream.
12645 https://bugzilla.gnome.org/show_bug.cgi?id=734902
12647 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12650 configure: echoing installation prefix path
12652 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12654 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12655 display: add support for DRM Render-Nodes.
12656 Add support for DRM Render-Nodes. This is a new feature that appeared
12657 in kernel 3.12 for experimentation purposes, but was later declared
12658 stable enough in kernel 3.15 for getting enabled by default.
12659 This allows headless usages without authentication at all, i.e. usages
12660 through plain ssh connections is possible.
12662 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12664 * gst/vaapi/gstvaapisink.c:
12665 vaapisink: clean-ups (indentation, drop unused variables).
12667 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12670 * gst/vaapi/gstvaapisink.c:
12671 vaapisink: fix GstNavigation "key-press" / "key-release" events.
12672 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
12673 to a KeySym. In particular, there is no such Window argument. Also
12674 make sure to check for, and use, the correct <X11/XKBlib.h> header
12675 where that new function is defined. Otherwise, default to the older
12676 XKeycodeToKeysym() function.
12678 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12680 * gst/vaapi/gstvaapisink.c:
12681 vaapisink: fix GstNavigation "mouse-move" event.
12682 Really use the motion event coordinates to propagate the "mouse-move"
12683 event to upper layer, instead of those from a button event. Those are
12684 technically the same though.
12686 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12688 * gst/vaapi/gstvaapisink.c:
12689 vaapisink: implement the GstNavigation interface
12690 This is useful for things like DVD menus, where key/mouse events
12691 would need to be forwarded from the upstream sink element.
12692 https://bugzilla.gnome.org/show_bug.cgi?id=711479
12694 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
12696 * gst/vaapi/gstvaapipluginbase.c:
12697 vaapipostproc: fix deinterlacing from non VA memory buffers.
12698 When we copy a buffer because we're moving it into VA-API memory, we
12699 need to copy flags. Otherwise, interlaced YUV buffers from a capture
12700 source (e.g. V4L2) don't get flagged as interlaced.
12701 https://bugzilla.gnome.org/show_bug.cgi?id=726270
12702 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
12703 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
12704 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12706 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12708 * gst/vaapi/gstvaapipostproc.c:
12709 vaapipostproc: add support for GLTextureUploadMeta output.
12710 This allows for vaapipostproc to be chained to the glimagesink element
12712 https://bugzilla.gnome.org/show_bug.cgi?id=735231
12714 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12716 * gst/vaapi/gstvaapipluginutil.c:
12717 * gst/vaapi/gstvaapipluginutil.h:
12718 * gst/vaapi/gstvaapipostproc.c:
12719 vaapipostproc: add support for "download" capability.
12720 Allow implicit conversions to raw video formats, while still keeping
12721 VA surfaces underneath. This allows for chaining the vaapipostproc
12722 element to a software-only element that takes care of maps/unmaps.
12724 https://bugzilla.gnome.org/show_bug.cgi?id=720174
12726 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12728 * gst/vaapi/gstvaapipostproc.c:
12729 * gst/vaapi/gstvaapipostproc.h:
12730 vaapipostproc: use pooled vaapi video meta.
12731 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
12732 video buffer allocation. Also optimize copy of additional metadata info
12733 into the resulting video buffer: only copy the video cropping info and
12734 the source surface proxy.
12735 https://bugzilla.gnome.org/show_bug.cgi?id=720311
12736 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12737 [fixed proxy leak, fixed double free on error, optimized meta copy]
12738 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12740 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12742 * gst/vaapi/gstvaapipostproc.c:
12743 vaapipostproc: fix passthrough mode.
12744 If no explicit output surface format is supplied try to keep the one
12745 supplied through the sink pad caps. This avoids a useless copy, even
12746 if things are kept in GPU memory.
12747 This is a performance regression from git commit dfa70b9.
12749 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12751 * gst/vaapi/gstvaapipostproc.c:
12752 * gst/vaapi/gstvaapipostproc.h:
12753 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
12754 https://bugzilla.gnome.org/show_bug.cgi?id=720311
12755 [used new infrastructure through base decide_allocation() impl]
12756 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12758 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12760 * gst/vaapi/gstvaapipostproc.c:
12761 vaapipostproc: enable advanced deinterlacing with same format.
12762 If only advanced deinterlacing is requested, i.e. deinterlacing is
12763 the only active algorithm to apply with source and output surface
12764 formats being the same, then make sure to enable VPP processing.
12765 Otherwise, allow fallback to bob-deinterlacing with simple rendering
12768 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12770 * gst/vaapi/gstvaapivideomemory.c:
12771 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
12772 https://bugzilla.gnome.org/show_bug.cgi?id=735156
12774 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12776 * gst/vaapi/gstvaapipluginbase.c:
12777 * gst/vaapi/gstvaapipluginutil.c:
12778 plugins: fix memory leaks.
12780 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12782 * gst/vaapi/gstvaapidecode.c:
12783 * gst/vaapi/gstvaapipluginbase.c:
12784 * gst/vaapi/gstvaapipluginbase.h:
12785 plugins: factor out decide_allocation() hook.
12786 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
12787 feature argument can be used to force a bufferpool with a specific kind
12790 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12792 * gst/vaapi/gstvaapivideobufferpool.c:
12793 * gst/vaapi/gstvaapivideobufferpool.h:
12794 * gst/vaapi/gstvaapivideomemory.c:
12795 plugins: allow bufferpool to not allocate vaapi video meta.
12796 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
12797 can be used to disable early allocations of vaapi video metas on buffers,
12798 thus delagating that to the bufferpool user.
12800 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12802 * gst/vaapi/gstvaapivideobuffer.c:
12803 * gst/vaapi/gstvaapivideobuffer.h:
12804 * gst/vaapi/gstvaapivideobufferpool.c:
12805 * gst/vaapi/gstvaapivideobufferpool.h:
12806 * gst/vaapi/gstvaapivideocontext.c:
12807 * gst/vaapi/gstvaapivideocontext.h:
12808 * gst/vaapi/gstvaapivideoconverter_glx.c:
12809 * gst/vaapi/gstvaapivideoconverter_glx.h:
12810 * gst/vaapi/gstvaapivideoconverter_x11.c:
12811 * gst/vaapi/gstvaapivideoconverter_x11.h:
12812 * gst/vaapi/gstvaapivideomemory.c:
12813 * gst/vaapi/gstvaapivideomemory.h:
12814 * gst/vaapi/gstvaapivideometa.c:
12815 * gst/vaapi/gstvaapivideometa.h:
12816 * gst/vaapi/gstvaapivideometa_texture.c:
12817 * gst/vaapi/gstvaapivideometa_texture.h:
12818 plugins: re-indent all GstVaapiVideo* related source code.
12820 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12822 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12823 surfaceproxy: fix copy to propagate view_id.
12824 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
12825 fixing random frames skipped when vaapipostproc element is used in
12826 passthrough mode. In that mode, GstMemory is copied, thus including
12827 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
12829 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12831 * gst/vaapi/gstvaapipostproc.c:
12832 vaapipostproc: fix detection of output surface format changes.
12833 Default to I420 format for output surfaces so that to match the usual
12834 GStreamer pipelines. Though, internally, we could still opt for NV12
12835 surface formats, i.e. default format=ENCODED is a hint for that, thus
12836 delegating the decision to the VA driver.
12838 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12840 * gst/vaapi/gstvaapipostproc.c:
12841 vaapipostproc: fix construction of allowed sink pad caps.
12842 Fix construction of the set of caps allowed on the sink pad to filter
12843 out unsupported raw video caps with GStreamer >= 1.2.
12845 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12847 * gst/vaapi/gstvaapipostproc.c:
12848 * gst/vaapi/gstvaapipostproc.h:
12849 vaapipostproc: improve heuristics for detecting native VA surfaces.
12850 Use the new gst_caps_has_vaapi_surface() helper function to detect
12851 whether the sink pad caps contain native VA surfaces, or not, i.e.
12853 Also rename is_raw_yuv to get_va_surfaces to make the variable more
12854 explicit as we just want a way to differentiate raw video caps from
12855 VA surfaces actually.
12857 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12859 * gst/vaapi/gstvaapipostproc.c:
12860 vaapipostproc: disable discontinuity detection code.
12861 The "discontinuity" tracking code, whereby lost frames are tentatively
12862 detected, is inoperant if the sink pad buffer timestamps are not right
12864 This is a temporary workaround until the following bug is fixed:
12865 https://bugzilla.gnome.org/show_bug.cgi?id=734386
12867 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12869 * gst/vaapi/gstvaapipostproc.c:
12870 vaapipostproc: fix heuristic for detecting discontinuity.
12871 In order to make the discontinuity detection code useful, we need to
12872 detect the lost frames in the history as early as the previous frame.
12873 This is because some VA implementations only support one reference
12874 frame for advanced deinterlacing.
12875 In practice, turn the condition for detecting new frame that is beyond
12876 the previous frame from field_duration*2 to field_duration*3, i.e.
12877 nothing received for the past frame and a half because of possible
12878 rounding errors when calculating the field-duration either in this
12879 element (vaapipostproc), or from the upstream element (parser element).
12880 This is a regression introduced with commit faefd62.
12881 https://bugzilla.gnome.org/show_bug.cgi?id=734135
12883 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12885 * gst/vaapi/gstvaapipluginbase.c:
12886 * gst/vaapi/gstvaapipluginbase.h:
12887 plugins: fix detection of raw video caps.
12888 Use the new gst_caps_has_vaapi_surface() helper function to better
12889 detect raw video caps, and in particular those from RGB colorspace.
12890 https://bugzilla.gnome.org/show_bug.cgi?id=734665
12892 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12894 * gst/vaapi/gstvaapipluginutil.c:
12895 * gst/vaapi/gstvaapipluginutil.h:
12896 plugins: add helper for detecting VA surfaces in caps.
12897 Introduce new gst_caps_has_vaapi_surface() helper function to detect
12898 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
12899 implies a check for memory:VASurface caps features, and format=ENCODED
12900 for earlier versions of GStreamer.
12902 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
12904 * gst/vaapi/gstvaapidecode.c:
12905 vaapidecode: start the decoder task again after finishing
12906 This allows the element to accept data again after draining without
12907 a hard reset or caps change happening in between.
12908 https://bugzilla.gnome.org/show_bug.cgi?id=734616
12910 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
12912 * gst/vaapi/gstvaapidecode.c:
12913 vaapidecode: unlock condition variables before shutting down the element
12914 Otherwise threads might wait for them, causing the shutdown of the element
12915 to deadlock on the streaming thread.
12916 https://bugzilla.gnome.org/show_bug.cgi?id=734616
12918 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
12920 * gst/vaapi/gstvaapidecode.c:
12921 vaapidecode: reset decoder_finish variable after stopping the decoder thread
12922 Otherwise the element is not usable again after draining/EOS.
12923 https://bugzilla.gnome.org/show_bug.cgi?id=734616
12925 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
12927 * gst/vaapi/gstvaapidecode.c:
12928 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
12929 This otherwise results in unnecessary error messages.
12930 https://bugzilla.gnome.org/show_bug.cgi?id=734616
12932 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12934 * gst-libs/gst/vaapi/Makefile.am:
12935 * gst/vaapi/Makefile.am:
12936 build: fix with --no-undefined linker flags.
12937 https://bugzilla.gnome.org/show_bug.cgi?id=729352
12939 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
12941 * gst/vaapi/gstvaapisink.c:
12942 * gst/vaapi/gstvaapisink.h:
12943 vaapisink: add support for GstColorBalance interface.
12944 https://bugzilla.gnome.org/show_bug.cgi?id=722390
12945 [fixed channel names, simplified range factor, fixed memory leak]
12946 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12948 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
12950 * gst/vaapi/gstvaapisink.c:
12951 * gst/vaapi/gstvaapisink.h:
12952 vaapisink: add support for colorbalance adjustment.
12953 https://bugzilla.gnome.org/show_bug.cgi?id=722390
12954 [fixed and simplified tracking of colorbalance value changes]
12955 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12957 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12959 * gst/vaapi/gstvaapisink.c:
12960 vaapisink: improve installation of properties.
12961 Simplify the creation and installation process of properties, by first
12962 accumulating them into a g_properties[] array, and next calling into
12963 g_object_class_install_properties().
12964 Also add missing docs and flags to some properties.
12966 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12968 * gst/vaapi/gstvaapisink.c:
12969 * gst/vaapi/gstvaapisink.h:
12970 vaapisink: code clean-ups.
12971 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
12972 helper macro and use it wherever we know the object is a GstBaseSink or
12973 any base class. Drop explicit initializers for values that have defaults
12976 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12978 * gst/vaapi/gstvaapisink.c:
12979 * gst/vaapi/gstvaapisink.h:
12980 vaapisink: re-indent all GstVaapiSink related source code.
12982 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12984 * gst/vaapi/gstvaapisink.c:
12985 * gst/vaapi/gstvaapisink.h:
12986 vaapisink: introduce separate backends.
12987 Introduce new backends vtable so that to have clean separation between
12988 display dependent code and common base code. That's a "soft" separation,
12989 we don't really need dedicated objects.
12990 https://bugzilla.gnome.org/show_bug.cgi?id=722248
12992 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12994 * gst/vaapi/gstvaapisink.c:
12995 * gst/vaapi/gstvaapisink.h:
12996 vaapisink: drop unused "synchronous" mode.
12997 Support for X11 "synchronous" mode was never implemented, and was only
12998 to be useful for debugging. Drop that altogether, that's not going to
12999 be useful in practice.
13000 https://bugzilla.gnome.org/show_bug.cgi?id=733985
13002 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13004 * gst/vaapi/gstvaapisink.c:
13005 * gst/vaapi/gstvaapisink.h:
13006 vaapisink: drop unused variables.
13007 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
13008 variables. They got merged into the GstVaapiPluginBase object.
13010 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13012 * gst/vaapi/gstvaapisink.c:
13013 * gst/vaapi/gstvaapisink.h:
13014 vaapisink: drop GLX rendering and fancy effects.
13015 Rendering with GLX in vaapisink is kind of useless nowadays, including
13016 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
13017 deprecated in favor of EGL, or more direct buffer sharing with actual
13019 Should testing of interop with GLX be needed, one could still be using
13020 the modern cluttersink or glimagesink elements.
13021 https://bugzilla.gnome.org/show_bug.cgi?id=733984
13023 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
13025 * gst/vaapi/gstvaapisink.c:
13026 * gst/vaapi/gstvaapisink.h:
13027 vaapisink: listen to window size changes on X11.
13028 Allow dynamic changes to the window, e.g. performed by the user, and
13029 make sure to refresh its contents, while preserving aspect ratio.
13030 In practice, Expose and ConfigureNotify events are tracked in X11
13031 display mode by default. This occurs in a separte event thread, and
13032 this is similar to what xvimagesink does. Any of those events will
13033 trigger a reconfiguration of the window "soft" size, subsequently
13034 the render-rect when necessary, and finally _expose() the result.
13035 The default of handle_events=true can be changed programatically via
13036 gst_x_overlay_handle_events().
13037 Thanks to Fabrice Bellet for rebasing the patch.
13038 https://bugzilla.gnome.org/show_bug.cgi?id=711478
13039 [dropped XInitThreads(), cleaned up the code a little]
13040 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13042 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13044 * gst/vaapi/gstvaapidecode.c:
13045 vaapidecode: decode and output all pending frames on normal EOS.
13046 The gst_vaapidecode_decode_loop() function is called within a separate
13047 task to fetch and output all frames that were decoded so far. So, if
13048 the decoder_loop_status is forcibly set to EOS when _finish() is called,
13049 then we are bound to exist the task without submitting the pending
13051 If the downstream element error'ed out, then the gst_pad_push() would
13052 propagate up an error and so we will get it right for cutting off
13053 _finish() early in that case.
13054 This is a regression from 6003596.
13055 https://bugzilla.gnome.org/show_bug.cgi?id=733897
13057 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13060 Bump version for development.
13062 === release 0.5.9 ===
13064 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13069 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13074 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
13076 * gst/vaapi/gstvaapidecode.c:
13077 vaapidecode: properly return from decode loop on downstream errors.
13078 Fixes a hang/race on shutdown where _decode_loop() had already completed
13079 its execution and _finish() was waiting on a GCond for decode_loop()
13080 to complete. Also fixes the possible race where _finish() is called
13081 but _decode_loop() endlessly returns before signalling completion
13082 iff the decoder instance returns GST_FLOW_OK.
13083 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
13084 https://bugzilla.gnome.org/show_bug.cgi?id=733897
13085 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
13086 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13088 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13094 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13096 * gst/vaapi/gstvaapisink.c:
13097 vaapisink: fix GstVideoOverlay::expose() implementation.
13098 Now that we always track the currently active video buffer, it is
13099 not necessary to automatically increase its reference since this is
13100 implicitly performed in ::show_frame() through the get_input_buffer()
13101 helper from GstVaapiPluginBase class.
13102 This is a regression from a26df80.
13104 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13106 * gst/vaapi/gstvaapidecode.c:
13107 * gst/vaapi/gstvaapipluginutil.c:
13108 vaapidecode: simplify bufferpool configuration.
13109 Rework the logics behind the configuration of an adequate bufferpool,
13110 especially when OpenGL meta or additional capsfeatures are needed.
13111 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
13112 and that is not system memory, is now selected by default.
13114 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13116 * gst/vaapi/gstvaapidecode.c:
13117 vaapidecode: fix auto-plugging of vaapisink element.
13118 Make sure to propagate memory:VASurface capsfeature to srcpad caps
13119 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
13120 core currently miss additional patches available in 1.5-git (1.6).
13121 This is a temporary workaround.
13123 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13126 configure: allow builds against GStreamer git (1.5.x).
13127 https://bugzilla.gnome.org/show_bug.cgi?id=733688
13129 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13132 configure: fix build with GStreamer 1.4.0 release.
13134 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13137 * debian.upstream/Makefile.am:
13138 * debian.upstream/control.in:
13139 debian: fix packaging for new naming scheme.
13141 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13146 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13149 configure: mark support for GStreamer < 1.2 as deprecated.
13150 Supporting anything thing below GStreamer 1.2 is asking for trouble
13151 for keeping up with the required facilities to make efficient pipelines.
13152 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
13155 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13158 configure: mark support for GStreamer 0.10 as obsolete.
13159 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
13160 and may actually be removed altogether for a future release. There is
13161 no real point to maintain a build for such an ancient GStreamer version
13162 that is not even supported upstream.
13164 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13166 * gst/vaapi/gstvaapisink.c:
13167 * gst/vaapi/gstvaapisink.h:
13168 vaapisink: allow a specific view component to be displayed.
13169 If a multiview stream is decoded, multiple view components are submitted
13170 as is downstream. It is the responsibility of the sink element to display
13171 the required view components. By default, always select the frame buffer
13172 that matches the view-id of the very first frame to be displayed.
13173 However, introduce a "view-id" property to allow the selection of a
13174 specific view component of interest to display.
13176 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13178 * gst/vaapi/gstvaapisink.c:
13179 vaapisink: always keep the last displayed buffer around.
13180 Always record the VA surface that is currently being rendered, no matter
13181 the fact we are using texturedblit or overlay. That's because in some
13182 occasions, we need to refresh or resize the displayed contents based on
13183 new events. e.g. user-resized window.
13184 Besides, it's simpler to track the last video buffer in GstVaapiSink than
13185 through the base sink "last-sample".
13187 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13189 * gst/vaapi/gstvaapipluginbase.c:
13190 * gst/vaapi/gstvaapipluginbase.h:
13191 * gst/vaapi/gstvaapipluginutil.c:
13192 * gst/vaapi/gstvaapisink.c:
13193 vaapisink: add support for "display-name" property.
13194 Add a "display-name" property to vaapisink so that the end user could
13195 select the desired output. Keep "display-name" in-line with the existing
13196 "display" (GstVaapiDisplayXXX type).
13197 So, for X11 or GLX, the "display-name" is the usual display name as we
13198 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
13199 for wl_display_connect(); and for DRM, the "display-name" is actually the
13201 https://bugzilla.gnome.org/show_bug.cgi?id=722247
13203 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13205 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
13206 window: make gst_vaapi_window_reconfigure() thread-safe.
13207 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
13208 thread-safe by default, so that upper layer users don't need to handle
13211 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
13213 * gst-libs/gst/vaapi/gstvaapiwindow.c:
13214 * gst-libs/gst/vaapi/gstvaapiwindow.h:
13215 window: allow for updating size from current geometry.
13216 Add gst_vaapi_window_reconfigure() interface to force an update of
13217 the GstVaapiWindow "soft" size, based on the current geometry of the
13218 underlying native window.
13219 This can be useful for instance to synchronize the window size when
13220 the user changed it.
13221 Thanks to Fabrice Bellet for rebasing the patch.
13222 [changed interface to gst_vaapi_window_reconfigure()]
13223 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13225 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13227 * gst-libs/gst/vaapi/gstvaapiwindow.c:
13228 * gst-libs/gst/vaapi/gstvaapiwindow.h:
13229 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
13230 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
13231 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
13232 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
13233 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
13234 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
13235 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
13236 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
13237 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
13238 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
13239 window: re-indent all GstVaapiWindow related source code.
13241 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13243 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13244 * gst-libs/gst/vaapi/gstvaapidisplay.h:
13245 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
13246 display: add interface to retrieve the display name.
13247 Add gst_vaapi_display_get_display_name() helper function to determine
13248 the name associated with the underlying native display. Note that for
13249 raw DRM backends, the display name is actually the device path.
13251 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13253 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
13254 display: fix comparison of X11 display names.
13255 Make sure to not only compare display host names, but also the actual
13256 display number. The screen number does not need to be checked at this
13259 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13261 * gst/vaapi/gstvaapidecode.c:
13262 * gst/vaapi/gstvaapivideobufferpool.c:
13263 vaapidecode: add support for VideoAlignment bufferpool option.
13264 Always add VideoAlignment bufferpool option if the downstream element
13265 expects its own pool to be used but does not offer it through a proper
13266 propose_allocation() implementation for instance, and that the ALLOCATION
13267 query does not expose the availability of the Video Meta API.
13268 This fixes propagation of video buffer stride information to Firefox.
13270 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13272 * gst/vaapi/gstvaapivideomemory.c:
13273 vaapivideomemory: always prefer native VA surface formats.
13274 Make sure to always prefer native internal formats for the VA surfaces
13275 that get allocated. Also disable "direct-rendering" mode in this case.
13276 This is needed so that to make sure that anything that gets out of the
13277 decoder, or anything that gets into the encoder, is in native format
13278 for the hardware, and thus the driver doesn't need to perform implicit
13279 conversions in there. Interop with SW elements is still available with
13280 fast implementations of VA imaging APIs.
13282 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13284 * gst/vaapi/gstvaapivideomemory.c:
13285 vaapivideomemory: disallow memory shares across buffers, use a copy.
13286 Forbid shares of GstMemory instances, and rather make copy of it. This
13287 effectively copies the GstMemory structure and enclosed metadata, but
13288 this does not copy the VA surface contents itself. It should though.
13289 This fixes preroll and makes sure to not download garbage for the first
13290 frame when a SW rendering sink is used.
13292 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13294 * gst/vaapi/gstvaapivideomemory.c:
13295 * gst/vaapi/gstvaapivideomemory.h:
13296 vaapivideomemory: use an image pool to cache objects.
13297 Use an image pool to hold VA images to be used for downloads/uploads
13298 of contents for the associated surface.
13299 This is an optmization for size. So, instead of creating as many VA
13300 images as there are buffers (then VA surfaces) allocated, we only
13301 maintain a minimal set of live VA images, thus preserving memory
13304 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13306 * gst/vaapi/gstvaapivideomemory.c:
13307 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
13308 Disable read-write mappings if "direct-rendering" is not supported.
13309 Since the ordering of read and write operations is not specified,
13310 this would require to always download the VA surface on _map(), then
13311 commit the temporary VA image back to the VA surface on _unmap().
13312 Some SW decoding plug-in elements still use R/W mappings though.
13313 https://bugzilla.gnome.org/show_bug.cgi?id=733242
13315 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13317 * gst/vaapi/gstvaapivideomemory.c:
13318 vaapivideomemory: minor code clean-ups.
13319 Fix error messages introduced in the previous commit for the _map()
13320 imaplementation. Also use the new get_image_data() helper function
13321 to determine the base pixels data buffer from a GstVaapiImage when
13322 updating the video info structure from it.
13324 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13326 * gst/vaapi/gstvaapivideomemory.c:
13327 * gst/vaapi/gstvaapivideomemory.h:
13328 vaapivideomemory: add support for raw pixels mappings.
13329 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
13330 cases where the buffer pool is allocated without VideoMeta API, thus
13331 individual planes cannot be mapped.
13332 This is initial support for Firefox >= 30.
13333 https://bugzilla.gnome.org/show_bug.cgi?id=731886
13335 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13337 * gst/vaapi/gstvaapivideomemory.c:
13338 vaapivideomemory: fix determination of the surface pool format.
13339 While creating the vaapi video allocator, make sure the associated
13340 surface pool has correct format instead of defaulting to NV12 video
13341 format even though there is no direct rendering support.
13342 https://bugzilla.gnome.org/show_bug.cgi?id=732691
13344 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13346 * gst/vaapi/gstvaapivideomemory.c:
13347 vaapivideomemory: fix association of surface to proxy.
13348 Make sure to always update the VA surface pointer whenever the proxy
13349 changes. This used to only work when the VA surface is written to, in
13350 interop with SW element ("upload" feature), and this now fixes cases
13351 when the VA surface is needed for reading, in interop with SW element
13352 ("download" feature).
13354 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13356 * gst/vaapi/gstvaapidecode.c:
13357 * gst/vaapi/gstvaapipluginutil.c:
13358 * gst/vaapi/gstvaapivideomemory.c:
13359 plugins: expose I420 format for interop with SW elements.
13360 Always expose I420 format by default when the VA surface could be
13361 mapped for interoperability with non harware accelerated elements.
13362 However, the default behaviour remains the auto-plugging of vaapi
13363 elements, down to the sink.
13364 Side effect: "direct-rendering" mode is also disabled most of the
13365 times as plain memcpy() from uncached speculative write combining
13366 memory is not going to be efficient enough.
13368 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13370 * gst/vaapi/gstvaapidecode.c:
13371 * gst/vaapi/gstvaapivideomemory.c:
13372 plugins: allow download capability to vaapidecode element.
13373 Fix support for VA surface download capability in vaapidecode element
13374 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
13375 but also the libva-intel-driver while performing hardware accelerated
13376 conversions from the native VA surface format (NV12) to the desired
13377 output VA image format.
13378 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
13379 https://bugzilla.gnome.org/show_bug.cgi?id=733243
13381 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
13383 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
13384 decoder: mpeg4: fix picture decoder return value for skipped frames.
13385 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
13386 when a frame should be skipped, so the stream processing is not stalled.
13387 https://bugzilla.gnome.org/show_bug.cgi?id=733324
13389 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
13391 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
13392 decoder: mpeg2: respect any input PTS provided for a frame.
13393 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
13394 frame timestamps within a GOP, even when it's been fed input PTS for
13396 That leads to incorrect output timestamps in some situations - for example
13397 live playback where input timestamps have been scaled based on arrival time
13398 from the network and don't exactly match the framerate.
13399 https://bugzilla.gnome.org/show_bug.cgi?id=732719
13401 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13403 * gst-libs/gst/vaapi/gstvaapiobject.c:
13404 GstVaapiObject: make gst_vaapi_object_new() more robust.
13405 Forbid GstVaapiObject to be created without an associated klass spec.
13406 It is mandatory that the subclass implements an adequate .finalize()
13407 hook, so it shall provide a valid GstVaapiObjectClass.
13408 https://bugzilla.gnome.org/show_bug.cgi?id=722757
13409 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
13410 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13412 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13414 * gst-libs/gst/vaapi/gstvaapiobject.c:
13415 GstVaapiObject: initialize the derived object data with init() hook.
13416 Call the subclass .init() function in gst_vaapi_object_new(), if
13417 needed. The default behaviour is to zero initialize the subclass
13418 object data, then the .init() function can be used to initialize
13419 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
13420 Also fix the gst_vaapi_object_new() description, which was merely
13421 copied from GstVaapiMiniObject.
13422 https://bugzilla.gnome.org/show_bug.cgi?id=722757
13423 [changed to always zero initialize the subclass]
13424 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13426 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
13428 * gst/vaapi/gstvaapidecode.c:
13429 vaapidecode: make decoder work with playbin
13430 When playbin/decodebin builds the pipeline, it puts decoders and sinks
13431 into different bins and forwards the queries from bins to bins. So in
13432 the initials steps the pipeline is built iteratively by playbin and
13435 [filesrc] -> [typefind]
13436 [filesrc] -> [typefind] -> [demuxer]
13437 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
13438 At this point the decoder is asked for its SRC caps and it will make a
13439 choice based on what gst_pad_peer_query_caps() returns. The problem is
13440 that the caps returns at that point includes caps features like ANY,
13441 essentially because playbin can plug in additional elements like
13442 videoscale, videoconv or deinterlace.
13443 This patch adds a another call to
13444 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
13445 allocation, to make sure we asks the downstream elements when the
13446 entire pipeline has been built.
13447 https://bugzilla.gnome.org/show_bug.cgi?id=731645
13449 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13451 * gst/vaapi/gstvaapipostproc.c:
13452 vaapipostproc: don't let tmp_rect go out of scope.
13453 A compiler change showed me that tmp_rect went out of scope before
13454 it was used. Move it to the beginning of the function instead.
13455 https://bugzilla.gnome.org/show_bug.cgi?id=726363
13456 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13457 [added guards for GStreamer 0.10 builds]
13458 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13460 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13465 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13469 Drop references to deprecated plugins (vaapiupload, vaapidownload),
13470 mention that support for GStreamer 0.10 is deprecated, make overview
13471 more descriptive in certain aspects.
13473 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13478 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13482 build: mention that support for GStreamer 0.10 is deprecated.
13484 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13487 * gst/vaapi/gstvaapidecode.c:
13488 build: fix for GStreamer 0.10.
13490 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13492 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
13493 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
13494 * patches/videoparsers/series.frag:
13495 build: fix for GStreamer 1.0.x.
13497 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13499 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13500 decoder: h264: detect incorrectly paired fields in frames.
13501 When a DPB flush is required, e.g. at a natural and of stream or issued
13502 explicitly through an IDR, try to detect any frame left in the DPB that
13503 is interlaced but does not contain two decoded fields. In that case, mark
13504 the picture as having a single field only.
13505 This avoids a hang while decoding tv_cut.mkv.
13507 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13509 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13510 decoder: h264: simplify the DPB output process.
13511 Simplify the dpb_output() function to exclusively rely on the frame store
13512 buffer to output, since this is now always provided. Besides, also fix
13513 cases where split fields would not be displayed.
13514 This is a regression from f48b1e0.
13516 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13518 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
13519 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
13520 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
13521 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
13522 * patches/videoparsers/series.frag:
13523 h264parse: drop patches merged upstream.
13524 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
13525 0005-h264parse-introduce-new-state-tracking-variables.patch
13526 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
13527 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
13529 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13531 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13532 decoder: h264: fix memory leak in PPS.
13533 Cope with latest changes from codecparsers/h264. It is now required
13534 to explicitly clear the GstH264PPS structure as it could contain
13535 additional allocations (slice_group_ids).
13537 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13539 * ext/codecparsers:
13540 codecparsers: update to gst-vaapi-branch commit 2d53b69.
13541 c4ace00 h264parse: fix collection of access units to preserve config headers
13542 0f9f7c9 h264parse: improve conditions for skipping NAL units
13543 9ffb25c h264parse: introduce new state tracking variables
13544 64955d3 h264parse: fix and optimize NAL collection function
13545 13cd2a3 h264: clarifications and documentation fixes
13546 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
13547 18f0de0 h264: fix memory leak in GstH264PPS
13548 fdcb54c h264: fix typo in GstH264VUIParams description
13549 fd4dae9 vp8: move up built-in range decoder private data
13551 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13553 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
13554 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
13555 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
13556 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
13557 decoder: propagate MVC metadata ("view-id", head of multiview set).
13558 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
13559 bundle", and really expresses the first view component of a multi
13560 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
13562 Likewise, new API is exposed to retrieve the associated "view-id".
13564 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13566 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
13567 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
13568 decoder: propagate "one-field" flags.
13569 Allow decoders to set the "one-field" attribute when the decoded frame
13570 genuinely has a single field, or if the second field was mis-decoded but
13571 we still want to display the first field.
13573 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13575 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
13576 decoder: output decoded frames only once.
13577 Make sure to output the decoded picture, and push the associated
13578 GstVideoCodecFrame, only once. The frame fully represents what needs
13579 to be output, included for interlaced streams. Otherwise, the base
13580 GstVideoDecoder class would release the frame twice.
13581 Anyway, the general process is to output decoded frames only when
13582 they are complete. By complete, we mean a full frame was decoded or
13583 both fields of a frame were decoded.
13585 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13587 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13588 decoder: h264: decode current picture earlier.
13589 Slightly optimize decoding process by submitting the current VA surface
13590 for decoding earlier to the hardware, and perform the reference picture
13591 marking process and DPB update process afterwards.
13592 This is a minor optimization to let the video decode engine kick in work
13593 earlier, thus improving parallel resources utilization.
13595 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13597 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13598 decoder: h264: fix output of second field when first field is not in DPB.
13599 Fix decoding of interlaced streams where a first field (e.g. B-slice)
13600 was immediately output and the current decoded field is to be paired
13601 with that former frame, which is no longer in DPB.
13602 https://bugzilla.gnome.org/show_bug.cgi?id=701340
13604 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13606 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13607 decoder: h264: slightly optimize the process to detect new pictures.
13608 Optimize the process to detect new pictures or start of new access
13609 units by checking if the previous NAL unit was the end of a picture,
13610 or the end of the previous access unit.
13612 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13614 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13615 decoder: h264: handle access unit ("au") optimization.
13616 Optimize parsing when buffers are supplied with access unit alignment.
13617 This helps determining faster when the end of an access unit is reached.
13619 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13621 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13622 decoder: h264: fix tracking of DPB size changes.
13623 Add support for MVC streams with multiple SPS and subset SPS headers
13624 emitted regularly, e.g. at around every I-frame. Track the maximum
13625 number of views in ensure_context() and really reset the DPB size to
13626 the expected value, always. i.e. even if it decreased. dpb_reset()
13627 only cares of ensuring the DPB allocation.
13629 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13631 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13632 decoder: h264: fix the DPB compaction process.
13633 Fix the compaction process when the DPB is cleared for a specific
13634 view, i.e. fix the process of filling in the holes resulting from
13635 removing frame buffers matching the current picture.
13637 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13639 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13640 encoder: h264: generate new SPS only when codec config changed.
13641 It is not necessary to periodically send SPS or subset SPS headers.
13642 This is up to the upper layer (e.g. transport layer) to decide on
13643 if/how to periodically submit those. For now, only generate new SPS
13644 or subset SPS headers when the codec config changed.
13645 Note: the upper layer could readily determine the config headers
13646 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
13647 https://bugzilla.gnome.org/show_bug.cgi?id=732083
13648 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13650 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13652 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13653 encoder: h264: track encoder config changes.
13654 Track and report when encoder configuration changed. For now, this covers
13655 resolution, profile/level and bitrate changes.
13657 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13659 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13660 encoder: h264: add pixel-aspect-ratio to VUI parameters.
13661 Report sample aspect ratio (SAR) as present, and make it match what
13662 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
13663 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
13665 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13667 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13668 encoder: h264: fix number of anchor and non-anchor reference pictures.
13669 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
13670 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
13673 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13675 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13676 encoder: h264: fix timing_info_present_flag value in subset SPS.
13677 When the seq_parameter_set_data() syntax structure is present in a subset
13678 sequence parameter set and vui_parameters_present_flag is equal to 1, then
13679 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
13681 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13683 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13684 encoder: h264: add cpbBrNalFactor values for MVC profiles.
13686 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13688 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
13689 h264parse: fix detection of access unit boundaries for MVC.
13690 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
13691 this function is used to determine access unit boundaries, i.e. that
13692 is the key function for alignment=au output format generation.
13694 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13696 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
13697 * patches/videoparsers/series.frag:
13698 h264parse: fix collection of access units to preserve config headers.
13699 Always use a GstAdapter when collecting access units (alignment="au")
13700 in either byte-stream or avcC format. This is required to properly
13701 preserve config headers like SPS and PPS when invalid or broken NAL
13702 units are subsequently parsed.
13703 More precisely, this fixes scenario like:
13704 <SPS> <PPS> <invalid-NAL> <slice>
13705 where we used to reset the output frame buffer when an invalid or
13706 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
13707 preventing the next slice unit to be decoded, should this also
13708 represent any valid data.
13709 https://bugzilla.gnome.org/show_bug.cgi?id=732203
13711 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13713 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
13714 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
13715 * patches/videoparsers/series.frag:
13716 h264parse: improve conditions for skipping NAL units.
13717 Carefully track cases when skipping broken or invalid NAL units is
13718 necessary. In particular, always allow NAL units to be processed
13719 and let that gst_h264_parse_process_nal() function decide on whether
13720 the current NAL needs to be dropped or not.
13721 This fixes parsing of streams with SEI NAL buffering_period() message
13722 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
13723 SPS NAL unit, among other cases too.
13724 Practical examples from the H.264 AVC conformance suite include
13725 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
13726 when parsing in stream-format=byte-stream,alignment=au mode.
13727 https://bugzilla.gnome.org/show_bug.cgi?id=732203
13729 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13731 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
13732 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
13733 * patches/videoparsers/series.frag:
13734 h264parse: introduce new state tracking variables.
13735 Improve parser state tracking by introducing new flags reflecting
13736 it: "got-sps", "got-pps" and "got-slice". This is an addition for
13737 robustness purposes.
13738 Older have_sps and have_pps variables are kept because they have
13739 a different meaning. i.e. they are used for deciding on when to
13740 submit updated caps or not, and rather mean "have new SPS/PPS to
13743 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13745 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
13746 * patches/videoparsers/series.frag:
13747 h264parse: default to byte-stream/nalu format (Annex B).
13748 Always default to stream-format=byte-stream,alignment=nalu if avcC
13749 format was not detected. This is the natural stream format specified
13750 in the standard (Annex.B): a series of NAL units prefixed with the
13752 https://bugzilla.gnome.org/show_bug.cgi?id=732167
13754 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13756 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
13757 * patches/videoparsers/series.frag:
13758 h264parse: fix and optimize NAL collection function.
13759 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
13760 NAL unit. We don't want to parse the full NAL unit, but only the
13761 header bytes and possibly the first RBSP byte for identifying the
13762 first_mb_in_slice syntax element.
13763 Also fix check for failure when returning from that function. The
13764 only success condition for that is GST_H264_PARSER_OK, so use it.
13765 https://bugzilla.gnome.org/show_bug.cgi?id=732154
13767 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13769 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13770 encoder: h264: fix NAL unit types in packed headers.
13771 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
13772 slice header (nal_unit_type = 1 or 5) only for the base view. In non
13773 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
13774 is required, with an appropriate nal_unit_header_mvc_extension() in
13775 the NAL header bytes.
13776 https://bugzilla.gnome.org/show_bug.cgi?id=732083
13778 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13780 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13781 encoder: h264: add missing field in packed Subset SPS header.
13782 Write the missing num_level_values_signalled_minus1 syntax element
13783 into the packed header for subset sequence parameter set.
13784 https://bugzilla.gnome.org/show_bug.cgi?id=732083
13786 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13788 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13789 decoder: h264: fix marking of non-reference picture into DPB.
13790 Fix search for a picture in the DPB that has a lower POC value than
13791 the current picture. The dpb_find_lowest_poc() function will return
13792 a picture with the lowest POC in DPB and that is marked as "needed
13793 for output", but an additional check against the actual POC value
13794 of the current picture is needed.
13795 This is a regression from 1c46990.
13796 https://bugzilla.gnome.org/show_bug.cgi?id=732130
13798 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13800 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13801 decoder: h264: fix DPB clear when no decoding actually started.
13802 Fix dpb_clear() to clear previous frame buffers only if they actually
13803 exist to begin with. If the decoder bailed out early, e.g. when it
13804 does not support a specific profile, that array of previous frames
13805 might not be allocated beforehand.
13807 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13809 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13810 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
13811 * gst/vaapi/gstvaapidecode.c:
13812 decoder: h264: add support for NALU "alignment" optimization.
13813 We can avoid scanning for start codes again if the bitstream is fed
13814 in NALU chunks. Currently, we always scan for start codes, and keep
13815 track of remaining bits in a GstAdapter, even if, in practice, we
13816 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
13818 https://bugzilla.gnome.org/show_bug.cgi?id=723284
13819 [use gst_adapter_available_fast() to determine the top buffer size]
13820 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13822 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13824 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13825 decoder: h264: fix caps to report interlace-mode accordingly.
13826 The `vaapipostproc' element could never determine if the H.264 stream
13827 was interlaced, and thus always assumed it to be progressive. Fix the
13828 H.264 decoder to report interlace-mode accordingly, thus allowing the
13829 vaapipostproc element to automatically enable deinterlacing.
13831 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13833 * gst/vaapi/gstvaapipostproc.c:
13834 vaapipostproc: don't crash with dynamic framerate (0/1).
13835 Avoid reaching an assert if dynamic framerates (0/1) are used. One
13836 way to solve this problem is to just stick field_duration to zero.
13837 However, this means that, in presence of interlaced streams, the
13838 very first field will never be displayed if precise presentation
13839 timestamps are honoured.
13840 https://bugzilla.gnome.org/show_bug.cgi?id=729604
13842 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13844 * gst/vaapi/gstvaapipostproc.c:
13845 vaapipostproc: create filter surface pool if it does not exist yet.
13846 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
13847 recreating filter_pool. Unfortunately, this also meant it didn't create
13848 it if it did not exist.
13849 Fix it to always create the buffer pool if it does not exist.
13850 https://bugzilla.gnome.org/show_bug.cgi?id=723834
13851 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13853 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
13855 * gst/vaapi/gstvaapipostproc.c:
13856 vaapipostproc: reset deinterlacer state when there is a discontinuity.
13857 Reset deinterlacer state, i.e. past reference frames used for advanced
13858 deinterlacing, when there is some discontinuity detected in the course
13859 of processing source buffers.
13860 This fixes support for advanced deinterlacing when a seek occurred.
13861 https://bugzilla.gnome.org/show_bug.cgi?id=720375
13862 [fixed type of pts_diff variable, fetch previous buffer PTS from the
13863 history buffer, reduce heuristic for detecting discontinuity]
13864 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13866 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13868 * gst/vaapi/gstvaapipostproc.c:
13869 vaapipostproc: add support for crop regions in VPP mode.
13870 Apply video cropping regions stored in GstVideoCropMeta, or in older
13871 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
13872 the crop meta are already propagated to the output buffers.
13873 https://bugzilla.gnome.org/show_bug.cgi?id=720730
13875 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13877 * gst/vaapi/gstvaapipostproc.c:
13878 vaapipostproc: make deinterlace-mode behave as expected.
13879 deinterlace-mode didn't behave in the way you'd expect if you have
13880 past experience of the deinterlace element. There were two bugs:
13881 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
13882 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
13883 Fix these up, and add assertions and error messages to detect cases that
13885 https://bugzilla.gnome.org/show_bug.cgi?id=726361
13886 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13887 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13889 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
13891 * gst/vaapi/gstvaapidecode.c:
13892 vaapidecode: do not discard video info props when the format changed.
13893 gst_video_info_set_format() does not preserve video info properties. In
13894 order to keep important information in the caps such as interlace mode,
13895 framerate, pixel aspect ratio, ... we need to manually copy back those
13896 properties after setting the new video format.
13897 https://bugzilla.gnome.org/show_bug.cgi?id=722276
13899 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
13901 * gst/vaapi/gstvaapidecode.c:
13902 vaapidecode: plug a memory leak.
13903 It can happen that there is a pool provided that does not advertise
13904 the vappivideometa. We should unref that pool before using our own.
13905 Discovered with vaapidecode ! {glimagesink,cluttersink}
13906 https://bugzilla.gnome.org/show_bug.cgi?id=724957
13907 [fixed compilation by adding the missing semi-colon]
13908 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13910 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13912 * gst/vaapi/gstvaapidecode.c:
13913 vaapidecode: parse source data until a frame is obtained.
13914 Parse any pending data until a complete frame is obtained. This is a
13915 memory optimization to avoid expansion of video packets stuffed into
13916 the GstAdapter, and a fix to EOS condition to detect there is actually
13917 pending data that needs to be decoded, and subsequently output.
13918 https://bugzilla.gnome.org/show_bug.cgi?id=731831
13920 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13922 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13923 encoder: h264: fix multiple slices support in packed headers mode.
13924 Handle packedi slice headers and packed raw data on a per-slice basis,
13925 which is necessary for multi slice encoding.
13927 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13929 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
13930 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
13931 encoder: add infrastructure for per-slice handling of packed headers.
13932 The packed slice header and packed raw data need to be paired with
13933 the submission of VAEncSliceHeaderParameterBuffer. So handle them
13934 on a per-slice basis insted of a per-picture basis.
13935 [removed useless initializer]
13936 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13938 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13940 * gst/vaapi/gstvaapisink.c:
13941 vaapisink: fix initialization with "drm" display type.
13942 Force early initializatin of the GstVaapiDisplay so that to make sure
13943 that the sink element display object is presented first to upstream
13944 elements, as it will be correctly featuring the requested display type
13946 Otherwise, we might end up in situations where a VA/X11 display is
13947 initialized in vaapidecode, then we try VA/DRM display in vaapisink
13948 (as requested by the "display" property), but this would cause a failure
13949 because we cannot acquire a DRM display that was previously acquired
13950 through another backend (e.g. VA/X11).
13952 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13954 * gst/vaapi/gstvaapipluginbase.c:
13955 plugins: fix initialization with foreign context.
13956 When a new display is settled through GstElement::set_context() (>= 1.2),
13957 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
13958 associated display type.
13960 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13965 * gst/vaapi/Makefile.am:
13966 * gst/vaapi/gstvaapiparse.c:
13967 * gst/vaapi/gstvaapiparse.h:
13968 * patches/Makefile.am:
13969 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
13970 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
13971 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
13972 * patches/videoparsers/Makefile.am:
13973 * patches/videoparsers/series.frag:
13974 plugins: add built-in video parsers as "vaapiparse" element.
13975 The built-in video parsers elements are built into a single DSO named
13976 libgstvaapi_parse.so. The various video parsers could be accessed as
13978 For now, this only includes a modified version of h264parse so that to
13979 support H.264 MVC encoded streams.
13981 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13983 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13984 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
13985 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
13986 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
13988 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13990 * ext/codecparsers:
13991 codecparsers: update to gst-vaapi-branch commit d6325ac.
13992 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
13993 d2f965a h264parse: set field_pic_flag when parsing a slice header
13994 24c15b8 Import h264parse
13995 a9283e5 bytereader: Use concistant derefence method
13996 a8252c6 bytereader: Use pointer instead of index access
13997 b1bebfc Import GstBitReader and GstByteReader
13998 2f58788 h264: recognize SVC NAL units
13999 4335da5 h264: fix SPS copy code for MVC
14000 cf9b6dc h264: fix quantization matrix conversion routine names
14001 b11ce2a h264: add gst_h264_video_calculate_framerate()
14002 126dc6f add C++ guards for MPEG-4 and VP8 parsers
14004 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14006 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14007 decoder: h264: factor out DPB pruning for MVC.
14008 Factor out the removal process of unused inter-view only reference
14009 pictures from the DPB, prior to the possible insertion of the current
14011 Ideally, the compiler could still opt for generating two loops. But
14012 at least, the code is now clearer for maintenance.
14014 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14016 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14017 decoder: h264: clean-ups.
14018 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
14019 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
14021 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14023 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14024 decoder: h264: improve pruning of unused MVC inter-view frames.
14025 Improve process for the removal of pictures from DPB before possible
14026 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
14027 reference components. In particular, handle cases where picture to be
14028 inserted is not the last one of the access unit and if it was already
14029 output and is no longer marked as used for reference, including for
14030 decoding next view components within the same access unit.
14032 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14034 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14035 decoder: h264: improve DPB bumping process for MVC.
14036 While invoking the DPB bumping process in presence of many views,
14037 it could be necessary to output previous pictures that are ready,
14038 in a whole. i.e. emitting all view components from the very first
14039 view order index zero to the very last one in its original access
14040 unit; and not starting from the view order index of the picture
14041 that caused the DPB bumping process to be invoked.
14042 As a reminder, the maximum number of frames in DPB for MultiView
14043 High profile with more than 2 views is not necessarily a multiple
14044 of the number of views.
14045 This fixes decoding of MVCNV-4.264.
14047 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14049 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14050 decoder: h264: fix inter-view references array growth.
14051 Let the utility layer handle dynamic growth of the inter-view pictures
14052 array. By definition, setting a new size to the array will effectively
14053 grow the array, but would also fill in the newly created elements with
14054 empty entries (NULL), thus also increasing the reported length, which
14057 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14059 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14060 decoder: h264: reduce ReferenceFrames entries to the essential set.
14061 When decoding Multiview High profile streams with a large number of
14062 views, it is not possible to make the VAPictureParameterBufferH264.
14063 ReferenceFrames[] array hold the complete DPB, with all possibly
14064 active pictures to be used for inter-view prediction in the current
14066 So reduce the scope of the ReferenceFrames[] array to only include
14067 the set of reference pictures that are going to be used for decoding
14068 the current picture. Basically, this is a union of all RefPicListX[]
14069 array, for all slices constituting the decoded picture.
14071 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14073 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14074 decoder: h264: fix MVC inter-view prediction process.
14075 The inter-view reference components and inter-view only reference
14076 components that are included in the reference picture lists shall
14077 be considered as not being marked as "used for short-term reference"
14078 or "used for long-term reference". This means that reference flags
14079 should all be removed from VAPictureH264.flags.
14080 This fixes decoding of MVCNV-2.264.
14082 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14084 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14085 decoder: h264: fix detection of profile changes for MVC.
14086 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
14087 be careful to detect profiles changes and not reset the underlying
14088 VA context erroneously. In MVC situations, we could indeed get a
14089 profile_idc change for every SPS that gets activated, alternatively
14090 (base-view -> non-base view -> base-view, etc.).
14091 An improved fix would be to characterize the exact profile to use
14092 once and for all when SPS NAL units are parsed. This would also
14093 allow for fallbacks to a base-view decoding only mode.
14095 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14097 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14098 encoder: h264: drop extraneous definitions.
14099 Re-use definitions from the codecparser headers instead of duplicating
14100 them here again. That covers NALU definitions and slice types.
14102 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14104 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14105 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
14106 https://bugzilla.gnome.org/show_bug.cgi?id=727418
14108 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14110 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14111 encoder: h264: don't allow CABAC with Extended profile.
14112 The H.264 specification does not support CABAC entropy coding for the
14114 https://bugzilla.gnome.org/show_bug.cgi?id=727418
14116 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14118 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14119 encoder: h264: use packed headers mode for MVC encoding.
14120 Exclusively use VA drivers that support raw packed headers for encoding.
14121 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
14122 provides for better compatibility accross the various VA drivers and HW
14123 generations since no particular API is needed beyond what readily exists.
14125 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14127 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14128 encoder: h264: add support for packed slice headers.
14129 https://bugzilla.gnome.org/show_bug.cgi?id=722905
14131 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14133 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14134 encoder: h264: store subset sps to generate the codec-data
14135 Store the SubsetSPS nal unit which we need for MVC specific
14136 codec_data generation.
14138 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14140 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14141 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
14142 Since we are encoding each view independently from each other, we
14143 need a higher number of pre-allocated surfaces to be used as the
14144 reconstructed frames. For Stereo High profile encoding, this means
14145 to effectively double the number of frames to be stored in the DPB.
14147 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
14149 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14150 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
14151 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
14152 * gst/vaapi/gstvaapiencode_h264.c:
14153 encoder: h264: add initial support for H.264 Stereo High profile.
14154 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
14155 for non-base-view streams encoding, and the usual SPS, PPS and Slice
14156 NALs for base-view encoding.
14157 The H.264 Stereo High profile encoding mode will be turned on when the
14158 "num-views" parameter is set to 2. The source (raw) YUV frames will be
14159 considered as Left/Right view, alternatively.
14160 Each of the two views has its own frames reordering pool and reference
14161 frames list management system. Inter-view references are not supported
14162 yet, so the views are encoded independently from each other.
14163 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
14164 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
14165 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14167 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
14169 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14170 encoder: h264: wrap pools for refs and frames reordering.
14171 Create structures to maintain the reference frames list (RefPool) and
14172 frames reordering (ReorderPool) logic.
14173 This is a prerequisite for H.264 MVC support.
14174 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
14176 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
14178 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14179 encoder: h264: add provisional support for subset SPS headers.
14180 Add provisions to write subset SPS headers to the bitstream in view
14181 to supporting the H.264 MVC specification.
14182 This assumes the libva "staging" branch is in use.
14183 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
14185 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
14187 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14188 * gst-libs/gst/vaapi/gstvaapiutils.c:
14189 utils: add H.264 MVC profiles.
14190 Add "MultiView High" and "Stereo High" definitions.
14191 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
14192 [require VA-API >= 0.35.2 for MVC profiles]
14193 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14195 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14197 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14198 * gst-libs/gst/vaapi/gstvaapiutils.c:
14199 utils: only enable VP8 profiles for newer VA-API versions.
14200 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
14201 involving VP8 codec on earlier versions of the API.
14203 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14205 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14206 decoder: h264: compute view ids only once per slice.
14207 Optimize lookups of view ids / view order indices by caching the result
14208 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
14209 terribly simplifies is_new_access_unit() and find_first_field() functions.
14211 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14213 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14214 decoder: h264: add support for MVC interlaced streams.
14215 Fix support for MVC Stereo High profile streams with interlaced frames.
14216 Also improve the detection logic of the first field.
14218 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14220 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14221 decoder: h264: add MVC profiles compatibility logic.
14222 Add safe fallbacks for MVC profiles:
14223 - all MultiView High profile streams with 2 views at most can be decoded
14224 with a Stereo High profile compliant decoder ;
14225 - all Stereo High profile streams with only progressive views can be
14226 decoded with a MultiView High profile compliant decoder ;
14227 - all drivers that support slice-level decoding could normally support
14228 MVC profiles when the DPB holds at most 16 frames.
14230 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14232 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14233 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
14234 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
14235 decoder: h264: add initial support for MVC.
14236 https://bugzilla.gnome.org/show_bug.cgi?id=721772
14238 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14240 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14241 decoder: h264: dynamically allocate the DPB.
14242 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
14243 for supporting the MVC allocation requirements.
14245 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14247 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14248 decoder: h264: fix detection of access unit boundaries.
14249 In order to have a stricter conforming implementation, we need to carefully
14250 detect access unit boundaries. Additional operations could be necessary to
14251 perform at those boundaries.
14253 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14255 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14256 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
14257 Detect the first VCL NAL unit of a picture for MVC, based on the
14258 view_id as per H.7.4.1.2.4. Note that we only need to detect new
14260 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14262 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14264 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14265 decoder: h264: properly handle Prefix NAL units.
14266 Always cache the previous NAL unit so that we could check whether
14267 there is a Prefix NAL unit immediately preceding the current slice
14268 or IDR NAL unit. In that case, the NAL unit metadata is copied into
14269 the current NAL unit. Otherwise, some default values are inferred,
14270 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
14271 [infer default values for slice if previous NAL was not a Prefix]
14272 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14274 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
14276 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14277 decoder: h264: add support for MVC base views.
14278 Allow decoding for base views of MVC encoded streams. For now, just skip
14279 the slice extension and prefix NAL units, and skip non-base view frames.
14280 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
14281 [fixed memory leak, improved check for MVC NAL units]
14282 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14284 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14286 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14287 decoder: h264: simplify storage of decoded picture into DPB.
14288 Factor out process by which the decoded picture with the lowest POC
14289 is found, and possibly output. Likewise, the storage and marking of
14290 a reference decoded, or non-reference decoded picture, into the DPB
14291 could also be simplified as they mostly share the same operations.
14293 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14295 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14296 decoder: h264: minor clean-ups.
14297 Make init_picture_ref_lists() more consistent with other functions
14298 related to the reference marking process by supplying the current
14299 picture as argument.
14301 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14303 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14304 * gst-libs/gst/vaapi/gstvaapidisplay.h:
14305 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
14306 display: add utility function to query VA driver name.
14307 Add gst_vaapi_display_get_vendor_string() helper function to query
14308 the underlying VA driver name. The display object owns the resulting
14309 string, so it shall not be deallocated.
14310 That function is thread-safe. It could be used for debugging purposes,
14313 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14315 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14316 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
14317 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
14318 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
14319 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
14320 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
14321 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
14322 display: make cache maintenance really MT-safe.
14323 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
14324 environments. This makes sure the display cache is also consistent
14325 during the whole display creation process. In the former implementation,
14326 there were risks that display cache got updated in another thread.
14328 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14330 * gst-libs/gst/vaapi/gstvaapicontext.c:
14331 context: allow dynamic growth of VA surfaces pool.
14332 Add support for dynamic growth of the VA surfaces pool. For decoding,
14333 this implies the recreation of the underlying VA context, as per the
14334 requirement from VA-API. Besides, only increases are supported, not
14337 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14339 * gst-libs/gst/vaapi/gstvaapicontext.c:
14340 context: reset VA context if VA surfaces set changed.
14341 It is a requirement from VA-API specification that the VA context got
14342 from vaCreateContext(), for decoding purposes, binds the supplied set
14343 of VA surfaces. This means that if the set of VA surfaces is to be
14344 changed for the current decode session, then the VA context needs to
14345 be recreated with the new set of VA surfaces.
14347 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14349 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14350 decoder: h264: fix assignment of LongTermFrameIdx.
14351 Complement fix committed as e95a42e.
14352 The H.264 AVC standard has to say: if the field is part of a reference
14353 frame or a complementary reference field pair, and the other field of
14354 the same reference frame or complementary reference field pair is also
14355 marked as "used for long-term reference", the reference frame or
14356 complementary reference field pair is also marked as "used for long-term
14357 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
14358 This fixes decoding of MR9_BT_B in strict mode.
14359 https://bugs.freedesktop.org/show_bug.cgi?id=64624
14360 https://bugzilla.gnome.org/show_bug.cgi?id=724518
14362 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14364 * gst-libs/gst/vaapi/gstvaapicontext.c:
14365 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14366 * gst-libs/gst/vaapi/gstvaapiutils.c:
14367 * gst-libs/gst/vaapi/gstvaapiutils.h:
14368 decoder: h264: properly support grayscale formats.
14369 Request the correct chroma format for decoding grayscale streams.
14370 i.e. make lookups of the VA chroma format more generic, thus possibly
14371 supporting more formats in the future.
14372 This means that, if a VA driver doesn't support grayscale formats,
14373 it is now going to fail. We cannot safely assume that maybe grayscale
14374 was implemented on top of some YUV 4:2:0 with the chroma components
14377 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
14379 * gst-libs/gst/vaapi/gstvaapifilter.c:
14380 * gst-libs/gst/vaapi/gstvaapifilter.h:
14381 * tests/test-filter.c:
14382 build: fix source file modes.
14383 A few source files are marked executable in error - fix them
14384 https://bugzilla.gnome.org/show_bug.cgi?id=723748
14385 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
14387 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14390 * gst-libs/gst/vaapi/Makefile.am:
14391 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14392 * gst/vaapi/gstvaapidecode.c:
14393 build: fix conditional compilation of VP8 decoder.
14394 https://bugzilla.gnome.org/show_bug.cgi?id=729170
14395 [added check for VASliceParameterBufferBase fields]
14396 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14398 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14400 * gst-libs/gst/codecparsers/Makefile.am:
14401 build: fix make dist for codecparsers.
14403 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14405 * ext/codecparsers:
14406 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
14407 h264: fix parsing of slice groups for map type = 2
14409 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14411 * ext/codecparsers:
14412 codecparsers: update to gst-vaapi branch commit f44edfc.
14413 h264: fix derivation of default scaling lists
14415 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
14417 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14418 decoder: h264: fix long-term reference picture marking process.
14419 Fix reference picture marking process with memory_management_control_op
14420 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
14421 picture, or the current picture.
14422 This fixes decoding of FRExt_MMCO4_Sony_B.
14423 https://bugs.freedesktop.org/show_bug.cgi?id=64624
14424 https://bugzilla.gnome.org/show_bug.cgi?id=724518
14425 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
14426 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14428 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14430 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14431 decoder: h264: fix initialization of RefPicLists for multiple slices.
14432 The initialization of reference picture lists (8.2.4.2) applies to all
14433 slices. So, the RefPicList0/1 lists need to be constructed prior to
14434 each slice submission to the HW decoder.
14435 This fixes decoding of video sequences where frames are encoded with
14436 multiple slices of different types, e.g. 4 slices in this order I, P,
14437 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
14438 https://bugzilla.gnome.org/show_bug.cgi?id=724518
14440 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
14442 * ext/codecparsers:
14443 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14444 decoder: h264: skip SPS extension and auxiliary slice NALs.
14445 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
14446 are present in a video, decoders shall perform the (optional) decoding
14447 process specified for these NAL units or shall ignore them (7.4.1).
14448 Implement option 2 (skip) for now, as alpha composition is not
14449 supported yet during the decoding process.
14450 This fixes decoding of the primary coded video in alphaconformanceG.
14451 https://bugzilla.gnome.org/show_bug.cgi?id=703928
14452 https://bugzilla.gnome.org/show_bug.cgi?id=728869
14453 https://bugzilla.gnome.org/show_bug.cgi?id=724518
14454 [skip NAL units earlier, i.e. at parsing time]
14455 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14457 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
14459 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14460 decoder: h264: fix slice data bit offset with MVC NAL units.
14461 When MVC slice NAL units (coded slice extension and prefix NAL) are
14462 present, the number of NAL header bytes is 3, not 1 as usual.
14463 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
14464 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14466 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14468 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14469 decoder: h264: fix activation of picture and sequence parameters.
14470 At the time the first VCL NAL unit of a primary coded picture is found,
14471 and if that NAL unit was parsed to be an SPS or PPS, then the entries
14472 in the parser may have been overriden. This means that, when the picture
14473 is to be decoded, slice_hdr->pps could point to an invalid (the next)
14475 So, one way to solve this problem is to not use the parser PPS and
14476 SPS info but rather maintain our own activation chain in the decoder.
14477 https://bugzilla.gnome.org/show_bug.cgi?id=724519
14478 https://bugzilla.gnome.org/show_bug.cgi?id=724518
14480 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14482 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14483 decoder: h264: retain SEI messages until the end of frame.
14484 Retain the SEI messages that were parsed from the access unit until we
14485 have completely decoded the current frame. This is done so that we can
14486 peek at that data whenever necessary during decoding. e.g. for exposing
14487 3D stereoscopic information at a later stage.
14489 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14491 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14492 decoder: h264: add support for grayscale encoded clips.
14493 Fix support for grayscale encoded video clips, and possibly others if
14494 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
14495 the decision that a surface with the desired chroma format is not
14496 supported to the actual VA driver implementation.
14497 https://bugzilla.gnome.org/show_bug.cgi?id=728144
14499 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14501 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14502 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
14503 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14504 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14505 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14506 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14507 decoder: default to YUV 4:2:0 VA surfaces.
14508 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
14509 make sure all codecs use YUV 4:2:0 output format for now, by default.
14511 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14513 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14514 * gst-libs/gst/vaapi/gstvaapidecoder.h:
14515 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
14516 decoder: re-indent GstVaapiDecoder base object.
14518 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14520 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14521 encoder: derive chroma type from video format.
14522 Cope with previous VA context change to derive the correct surface chroma
14523 type from the input video format.
14525 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14527 * gst-libs/gst/vaapi/gstvaapicontext.c:
14528 * gst-libs/gst/vaapi/gstvaapicontext.h:
14529 context: add support for non-YUV 4:2:0 formats.
14530 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
14531 for the upper layer to specify the desired chroma type. If the chroma
14532 type field is not set (or yields zero), then YUV 4:2:0 format is used
14535 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14537 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14538 vp8: fix per-segment deblocking filter level in relative mode.
14539 Fix possible bug when a per-segment deblocking filter level value
14540 needs to be set in non-absolute mode, i.e. when the loop filter update
14541 value is negative in delta mode.
14542 Also clamp the resulting filter level value to 0..63 range.
14544 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14546 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14547 vp8: fix check for disabling the loop filter (again).
14548 Improve condition to disable the loop filter. The previous heuristic
14549 used to check all filter levels, for all segments. It turns out that
14550 only the base filter_level value defined in the frame header needs
14552 This fixes 00-comprehensive-013.
14554 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14556 * gst-libs/gst/codecparsers/Makefile.am:
14557 * gst/vaapi/Makefile.am:
14558 build: fix make dist with certain conditionals not met.
14559 Fix generation of source tarballs when certain conditionals are not
14560 met. e.g. always include all buildable codecparsers sources in the
14561 distribution tarball, fix plug-in element sources set to include X11
14564 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14567 build: add missing files for GStreamer 0.10.
14568 Add missing GstVideoEncoder implementation files to fix build with ancient
14569 GStreamer 0.10 stack.
14570 https://bugzilla.gnome.org/show_bug.cgi?id=723964
14572 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14575 build: add missing files for VP8 bitstream parser.
14576 Fix make dist for building the VP8 bitstream parser.
14578 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14581 * ext/libvpx/Makefile.am:
14582 * gst-libs/gst/codecparsers/Makefile.am:
14583 vp8: allow compilation without the built-in libvpx.
14584 The built-in libvpx serves multiple purposes, among which the most
14585 important ones could be: track the most up-to-date, and optimized,
14586 range decoder; allow for future hybrid implementations (non-VLD);
14587 and have a completely independent range decoder implementation.
14589 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14591 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14592 vp8: propagate PTS from demux frame.
14593 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
14594 or parser would already have determined the PTS from a previous stage.
14596 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14599 * debian.upstream/libgstvaapi.install.in:
14600 * ext/libvpx/Makefile.am:
14601 * ext/libvpx/sources.frag:
14602 * gst-libs/gst/codecparsers/Makefile.am:
14603 vp8: fix compilation with built-in libvpx.
14604 Apply correct patch from fd.o #722760 to fix several issues: update the
14605 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
14608 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14614 * ext/libvpx/Makefile.am:
14615 * ext/libvpx/gstlibvpx.c:
14616 * ext/libvpx/gstlibvpx.h:
14617 * ext/libvpx/libgstcodecparsers_vpx.vers:
14618 * ext/libvpx/sources.frag:
14619 * ext/libvpx/upstream:
14620 * gst-libs/gst/codecparsers/Makefile.am:
14621 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
14622 vp8: use range decoder from libvpx.
14623 Add libvpx submodule that tracks the upstream version 1.3.0. This is
14624 needed to build a libgstcodecparsers_vpx.so library with all symbols
14625 placed into the GSTREAMER namespace.
14627 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14629 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14630 vp8: fix check for disabling the loop filter.
14632 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
14636 * gst-libs/gst/codecparsers/Makefile.am:
14637 * gst-libs/gst/vaapi/Makefile.am:
14638 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
14639 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
14640 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
14641 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
14642 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14643 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
14644 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14645 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14646 * gst/vaapi/gstvaapidecode.c:
14647 Add initial VP8 decoder.
14648 https://bugzilla.gnome.org/show_bug.cgi?id=722761
14649 [complete overhaul, fixed support for resolution changes]
14650 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14652 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14654 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14655 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
14656 The gst_h264_parse_parse_sei() function now returns an array of SEI
14657 messages, instead of a single SEI message. Reason: it is allowed to
14658 have several SEI messages packed into a single SEI NAL unit, instead
14659 of multiple NAL units.
14661 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14663 * ext/codecparsers:
14664 codecparsers: update to gst-vaapi-branch commit a454f86.
14665 b2eb5f6 vp8: rename dboolhuff symbols
14666 b74a881 vp8: add GStreamer native utilities
14667 2940ac6 add VP8 bitstream parser
14669 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14671 * ext/codecparsers:
14672 codecparsers: update to gst-vaapi-branch commit d459bc5.
14673 d459bc5 h264: set framerate even for interlaced videos
14674 c78b82c h264: add support for Recovery Point SEI message
14675 7693bac h264: add support for Frame Packing Arrangement SEI message
14676 31fafa7 h264: add support for Stereo Video Information SEI message
14677 8b113a6 h264: parse seq_parameter_set_mvc_extension()
14678 040f9b8 h264: parse MVC syntax elements
14679 cc18ef3 h264: add nal_reader_skip_long() helper
14680 7e76a48 h264: fix slice_header() parsing for MVC
14681 caf46d8 h264: add gst_h264_parse_nalu_header() helper
14682 f75074e h264: add gst_h264_parse_sps_data() helper
14683 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
14684 4e36737 h264: fix skipping of unsupported SEI messages
14685 5300766 h264: fix SEI buffering_period() parsing
14687 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14689 * ext/codecparsers:
14690 * gst-libs/gst/codecparsers/Makefile.am:
14691 codecparsers: update to gst-vaapi-branch commit 8fadf40.
14692 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
14693 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
14694 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
14695 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
14696 8ec5816 h265: Fix segfault when parsing HRD parameter
14697 5b1730f h265: Fix segfault when parsing VPS
14698 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
14699 7ba641d h265: Fix debug output
14700 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
14702 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14704 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14705 decoder: h264: fix robustness patch for bytestream format.
14706 Fix parser and decoder state to sync at the right locations. This is
14707 because we could reset the parser state, while the decoder state was
14708 not copied yet, e.g. when parsing several NAL units from multiple frames
14709 whereas the current frame was not decoded yet.
14710 This is a regression brought in by commit 6fe5496.
14712 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14715 * pkgconfig/Makefile.am:
14716 * pkgconfig/gstreamer-vaapi-drm.pc.in:
14717 * pkgconfig/gstreamer-vaapi-glx.pc.in:
14718 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
14719 * pkgconfig/gstreamer-vaapi-x11.pc.in:
14720 build: fix pkgconfig file names (again).
14721 It turns out it is more convenient to have only pkgconfig files named
14722 after the installed GStreamer API version (1.0) instead of using all
14723 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
14724 altogether anyway, so align pkgconfig file names to that.
14726 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14728 * debian.upstream/libgstvaapi-dev.install.in:
14729 * gst-libs/gst/vaapi/Makefile.am:
14730 * pkgconfig/gstreamer-vaapi.pc.in:
14731 build: fix packaging for GStreamer 1.2.
14732 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
14733 the pkgconfig version (1.0) instead of the intended API version (1.2).
14734 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
14735 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
14737 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14740 Bump version for development.
14742 === release 0.5.8 ===
14744 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14746 * debian.upstream/control.in:
14747 debian: fix trailing whitespace in description.
14749 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14751 * debian.upstream/control.in:
14752 * debian.upstream/copyright:
14753 debian: fix package description.
14754 Try to improve package description for the compiled plug-in elements
14755 available in there. e.g. only display vaapidownload and vaapiupload
14756 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
14757 encoding is enabled, etc.
14758 Also increase the copyright notice date.
14760 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14762 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14763 build: fix warnings on 64-bit platforms.
14765 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14767 * gst-libs/gst/vaapi/gstvaapicontext.c:
14768 * gst-libs/gst/vaapi/gstvaapiutils.c:
14769 build: fix for older versions of VA-API (< 0.34.0).
14770 Fix build with older versions of VA-API (< 0.34.0), or versions without
14771 good enough headers for encoding support for instance.
14773 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14779 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14783 VA-API up to 0.34.0 is actually supported. Mention new video encoding
14784 support. Update copyright years, list of supported Intel HD Graphics
14787 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14792 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14794 * tests/test-filter.c:
14795 tests: test-filter: fix "deinterlace" option parse.
14796 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
14797 string was provided, i.e. if it remained set to NULL.
14799 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14801 * gst-libs/gst/vaapi/Makefile.am:
14802 * gst-libs/gst/vaapi/gstvaapicontext.c:
14803 * gst-libs/gst/vaapi/gstvaapicontext.h:
14804 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14805 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
14806 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
14807 libs: factor out usages of vaGetConfigAttributes().
14808 Add gst_vaapi_get_config_attribute() helper function that takes a
14809 GstVaapiDisplay and the rest of the arguments with VA types. The aim
14810 is to have thread-safe VA helpers by default.
14812 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14814 * gst-libs/gst/vaapi/gstvaapiutils.c:
14815 * gst-libs/gst/vaapi/gstvaapiutils.h:
14816 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
14817 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
14818 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
14819 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
14820 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
14821 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
14822 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
14823 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14824 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
14825 libs: re-indent all source code related to VA utilities.
14827 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14829 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
14830 libs: add missing file (libgstvaapi_priv_check.h).
14832 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14834 * gst-libs/gst/vaapi/gstvaapicontext.c:
14835 * gst-libs/gst/vaapi/gstvaapicontext.h:
14836 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14837 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14838 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
14839 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
14840 encoder: notify the encoder of the submitted packed headers.
14841 Make sure to configure the encoder with the set of packed headers we
14842 intend to generate and submit. i.e. make selection of packed headers
14843 to submit more robust.
14845 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14847 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14848 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14849 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
14850 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
14851 encoder: fix and factor out check for supported rate-control modes.
14852 Cache the first compatible GstVaapiProfile found if the encoder is not
14853 configured yet. Next, factor out the code to check for the supported
14854 rate-control modes by moving out vaGetConfigAttributes() to a separate
14855 function, while also making sure that the attribute type is actually
14856 supported by the encoder.
14857 Also fix the default set of supported rate control modes to not the
14858 "none" variant. It's totally useless to expose it at this point.
14860 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14862 * gst-libs/gst/vaapi/gstvaapicontext.c:
14863 * gst-libs/gst/vaapi/gstvaapicontext.h:
14864 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14865 context: move rate-control mode to encoder specific config.
14866 Move usage-specific config out of the common GstVaapiContextInfo.
14867 Create a specialized config for encoding and move rate-control mode
14870 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14872 * gst-libs/gst/vaapi/gstvaapicontext.c:
14873 * gst-libs/gst/vaapi/gstvaapicontext.h:
14874 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14875 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14876 context: introduce concept of usage.
14877 Introduce GstVaapiContextUsage so that to explicitly determine the
14878 usage of a VA context. This is useful in view to simplifying the
14879 creation of VA context for VPP too.
14881 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14883 * gst-libs/gst/vaapi/gstvaapicontext.c:
14884 context: fix get_attribute() value result.
14885 Unknown attributes, or attributes that are not supported for the given
14886 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
14887 So, return failure in this case.
14889 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14891 * gst-libs/gst/vaapi/Makefile.am:
14892 * gst-libs/gst/vaapi/gstvaapicontext.c:
14893 * gst-libs/gst/vaapi/gstvaapicontext.h:
14894 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
14895 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
14896 * gst-libs/gst/vaapi/gstvaapisurface.c:
14897 context: move overlay composition to separate files.
14898 Move GstVideoOverlayComposition handling to separate source files.
14899 This helps keeing GstVaapiContext core implementation to the bare
14900 minimal, i.e. simpy helpers to create a VA context and handle pool
14901 of associated VA surfaces.
14903 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14905 * gst-libs/gst/vaapi/gstvaapicontext.c:
14906 * gst-libs/gst/vaapi/gstvaapicontext.h:
14907 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14908 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14909 context: clean-ups. Strip down APIs.
14910 Improve documentation and debug messages. Clean-up APIs, i.e. strip
14911 them down to the minimal set of interfaces. They are private, so no
14912 need expose getters for instance.
14914 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14916 * gst-libs/gst/vaapi/gstvaapicontext.c:
14917 * gst-libs/gst/vaapi/gstvaapicontext.h:
14918 context: re-indent all GstVaapiContext related source code.
14920 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14922 * gst-libs/gst/vaapi/Makefile.am:
14923 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
14924 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
14925 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
14926 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
14927 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
14928 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
14929 * gst-libs/gst/vaapi/gstvaapiutils.h:
14930 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
14931 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
14932 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
14933 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
14934 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
14935 libs: check that private headers remain private.
14936 Make sure that libgstvaapi private headers remain internally used to
14937 build libgstvaapi libraries only. All header dependencies were reviewed
14938 and checks for IN_LIBGSTVAAPI definition were added accordingly.
14939 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
14942 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14945 Bump library major version.
14946 Bump the library major version due to API/ABI changes that occurred in
14947 the imaging API. In particular, GstVaapiDisplay interfaces no longer
14948 expose any GstCaps but provide GArray based ones e.g. to determine the
14949 set of supported decode/encode profiles.
14951 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14953 * gst-libs/gst/vaapi/glibcompat.h:
14954 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
14955 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
14956 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14957 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
14958 * gst-libs/gst/vaapi/gstvaapicontext.c:
14959 * gst-libs/gst/vaapi/gstvaapicontext.h:
14960 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14961 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14962 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
14963 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
14964 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
14965 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14966 * gst-libs/gst/vaapi/gstvaapiencoder.h:
14967 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14968 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
14969 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
14970 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
14971 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
14972 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
14973 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
14974 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
14975 * gst-libs/gst/vaapi/gstvaapifilter.c:
14976 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
14977 * gst-libs/gst/vaapi/gstvaapisurface.c:
14978 * gst-libs/gst/vaapi/gstvaapisurface.h:
14979 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
14980 * gst-libs/gst/vaapi/gstvaapitypes.h:
14981 * gst-libs/gst/vaapi/gstvaapiutils.c:
14982 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
14983 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
14984 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
14985 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
14986 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
14987 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
14988 * gst-libs/gst/vaapi/gstvaapivalue.c:
14989 * gst-libs/gst/vaapi/gstvaapivalue.h:
14990 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
14991 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
14992 * gst/vaapi/gstvaapidecode.c:
14993 * gst/vaapi/gstvaapiencode.c:
14994 * gst/vaapi/gstvaapiencode.h:
14995 * gst/vaapi/gstvaapiencode_h264.c:
14996 * gst/vaapi/gstvaapiencode_h264.h:
14997 * gst/vaapi/gstvaapiencode_mpeg2.c:
14998 * gst/vaapi/gstvaapiencode_mpeg2.h:
14999 * gst/vaapi/gstvaapipluginbase.c:
15000 * gst/vaapi/gstvaapipluginutil.c:
15001 * gst/vaapi/gstvaapipluginutil.h:
15002 * gst/vaapi/gstvaapipostproc.c:
15003 * gst/vaapi/gstvaapipostproc.h:
15004 * gst/vaapi/gstvaapisink.c:
15005 * gst/vaapi/gstvaapisink.h:
15006 * gst/vaapi/gstvaapivideometa_texture.c:
15007 * tests/simple-decoder.c:
15008 legal: update copyright notice dates.
15010 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15012 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15013 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15014 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15015 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15016 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15017 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
15018 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15019 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15020 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
15021 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15022 * gst/vaapi/gstvaapiencode.c:
15023 * gst/vaapi/gstvaapiencode.h:
15024 * gst/vaapi/gstvaapiencode_h264.c:
15025 * gst/vaapi/gstvaapiencode_h264.h:
15026 * gst/vaapi/gstvaapiencode_mpeg2.c:
15027 * gst/vaapi/gstvaapiencode_mpeg2.h:
15028 legal: add per-file authorship information.
15030 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15032 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15033 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15034 decoder: fix video codec frame number in standalone mode.
15035 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
15036 stream in standalone mode. While we are at it, improve the debugging
15037 messages to also include that frame number.
15039 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
15041 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15042 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
15043 decoder: fix crash on invalid pointer for GST_DEBUG().
15044 When decoding failed, or that the frame was dropped, the associated
15045 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
15046 message needs to check whether the proxy is actually present or not.
15047 https://bugzilla.gnome.org/show_bug.cgi?id=722403
15048 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
15049 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15051 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15053 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15054 encoder: h264: disable NAL HRD parameters for now.
15055 Don't emit NAL HRD parameters for now in the SPS headers because the
15056 SEI buffering_period() and picture_timing() messages are not handled
15057 yet. Some additional changes are necessary to get it right.
15058 https://bugzilla.gnome.org/show_bug.cgi?id=722734
15060 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15062 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15063 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15064 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15065 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
15066 encoder: h264: fix default CPB buffer size.
15067 Fix default CPB buffer size to something more reasonable (1500 ms)
15068 and that still fits the level limits. This is a non configurable
15069 property for now. The initial CPB removal delay is also fixed to
15071 https://bugzilla.gnome.org/show_bug.cgi?id=722087
15073 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15075 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15076 encoder: h264: fix bitrate encoding for HRD conformance.
15077 Round down the calculated, or supplied, bitrate (kbps) into a multiple
15078 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
15079 that to have less losses in precision. Likewise, don't round up because
15080 that could be a strict constraint imposed by the user.
15082 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15084 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15085 encoder: h264: fix level lookup constraints wrt. bitrate.
15086 Fix the level calculation involving bitrate limits. Since we are
15087 targetting NAL HRD conformance, the check against MaxBR from the
15088 Table A-1 limits shall involve cpbBrNalFactor depending on the
15091 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15093 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15094 encoder: h264: submit sequence parameter only once.
15095 Submit sequence parameter buffers only once, or when the bitstream
15096 was reconfigured in a way that requires such. Always submit packed
15097 sequence parameter buffers at I-frame period, if the VA driver needs
15099 https://bugzilla.gnome.org/show_bug.cgi?id=722737
15101 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15103 * gst-libs/gst/vaapi/gstvaapicontext.c:
15104 * gst-libs/gst/vaapi/gstvaapicontext.h:
15105 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15106 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15107 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15108 encoder: h264: only submit packed headers when required.
15109 Make sure to submit the packed headers only if the underlying VA driver
15110 requires those. Currently, only handle packed sequence and picture
15112 https://bugzilla.gnome.org/show_bug.cgi?id=722737
15114 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15116 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15117 encoder: h264: fix ip_period value in sequence parameter.
15118 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
15119 between the I-frame and the next P-frame. So, this also accounts for
15120 any additional B-frame in the middle of it.
15121 This fixes rate control heuristics for certain VA drivers.
15122 https://bugzilla.gnome.org/show_bug.cgi?id=722735
15124 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15126 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15127 encoder: h264: fix level when bitrate is automatically computed.
15128 Fix level characterisation when the bitrate is automatically computed
15129 from the active coding tools. i.e. ensure the bitrate once the profile
15130 is completely characterized but before the level calculation process.
15132 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15134 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15135 encoder: h264: clean-ups.
15136 Document and rename a few functions here and there. Drop code that
15137 caps num_bframes variable in reset_properties() since they shall
15138 have been checked beforehand, during properties initialization.
15140 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15142 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15143 encoder: h264: clean-up bitwriter related utilities.
15144 Clean-up GstBitWriter related utility functions and simplify notations.
15145 While we are at it, also make bitstream writing more robust should an
15146 overflow occur. We could later optimize for writing headers capped to
15147 their maximum possible size by using the _unchecked() helper variants.
15149 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15151 * gst-libs/gst/vaapi/Makefile.am:
15152 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15153 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15154 encoder: h264: completely remove private headers.
15155 Drop private header since it was originally used to expose internals
15156 to the plugin element. The proper interface is now the properties API,
15157 thus rendering private headers totally obsolete.
15159 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15161 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15162 encoder: h264: fix PPS header packing with profile < high.
15163 Fix PPS header packing when profile is below High since 8x8 transform
15164 mode and scaling lists are High Profile features.
15166 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15168 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15169 encoder: h264: always emit VUI parameters for framerate.
15170 Always emit VUI parameters for timing_info, which includes framerate
15173 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15175 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15176 encoder: h264: really fix frame cropping rectangle calculation.
15177 Make frame cropping rectangle calculation future proof, i.e. exactly
15178 follow the specification (7-18) to (7-21), and subsampling definitions
15180 https://bugzilla.gnome.org/show_bug.cgi?id=722089
15181 https://bugzilla.gnome.org/show_bug.cgi?id=722238
15183 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
15185 * gst/vaapi/gstvaapisink.c:
15186 * gst/vaapi/gstvaapisink.h:
15187 vaapisink: set csc render flags from sinkpad caps.
15188 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
15189 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
15191 https://bugzilla.gnome.org/show_bug.cgi?id=722255
15192 [factored out code, added SMPTE240M, handle per-buffer flags]
15193 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15195 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15197 * gst-libs/gst/vaapi/gstvaapisurface.h:
15198 * gst-libs/gst/vaapi/gstvaapiutils.c:
15199 * gst/vaapi/gstvaapipostproc.c:
15200 surface: rework render flags.
15201 Pack render flags per category and provide more flags into the color
15202 standard category. In particular, cover for SMPTE-240M.
15204 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
15206 * gst-libs/gst/vaapi/gstvaapifilter.c:
15207 * gst/vaapi/gstvaapipostproc.c:
15208 * gst/vaapi/gstvaapipostproc.h:
15209 vaapipostproc: add support for colorbalance filters.
15210 Add support for hue, saturation, brightness and constrat adjustments.
15211 Also fix cap info local copy to match the really expected cap subtype
15213 https://bugzilla.gnome.org/show_bug.cgi?id=720376
15214 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15216 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
15218 * gst/vaapi/gstvaapipostproc.c:
15219 vaapipostproc: fix support for "sharpen" filter.
15220 Fix copy/paste error when submitting the "sharpen" value to the
15221 GstVaapiFilter instance.
15222 https://bugzilla.gnome.org/show_bug.cgi?id=720375
15223 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15225 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
15228 * pkgconfig/gstreamer-vaapi-drm.pc.in:
15229 * pkgconfig/gstreamer-vaapi-glx.pc.in:
15230 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15231 * pkgconfig/gstreamer-vaapi-x11.pc.in:
15232 * pkgconfig/gstreamer-vaapi.pc.in:
15233 pkgconfig: plugin dir should use PKG version not API version.
15234 Fix the pluginsdir and includedir variables in the generated pkgconfig
15235 (.pc) files. The location needs to be built with the PKG version in
15236 mind instead of the API version.
15237 While we are at it, also fix the PKG version for GStreamer >= 1.3.
15238 https://bugzilla.gnome.org/show_bug.cgi?id=720820
15239 [additional fixes for includedir and pkg requirements]
15240 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15242 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
15244 * gst/vaapi/gstvaapisink.c:
15245 vaapisink: fix display initialization in GstVideoOverlay implementation.
15246 When gst_vaapisink_video_overlay_set_window_handle() is called early,
15247 before the pipeline has been set to PLAYING, the display has not yet
15248 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
15249 up-to-date. For this reason the foreign XID is not attached.
15250 Now _ensure_display() is called earlier.
15251 https://bugzilla.gnome.org/show_bug.cgi?id=722244
15252 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15254 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15256 * gst/vaapi/gstvaapisink.c:
15257 vaapisink: expose the raw video formats in static caps template.
15258 Expose all raw video formats in the static caps template since the
15259 vaapisink is supporting raw data. We will get the exact set of formats
15260 supported by the driver dynamically through the _get_caps() routine.
15261 https://bugzilla.gnome.org/show_bug.cgi?id=703271
15262 https://bugzilla.gnome.org/show_bug.cgi?id=720737
15263 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15265 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
15267 * gst/vaapi/gstvaapidecode.c:
15268 vaapidecode: query downstream caps features like GLTextureUploadMeta.
15269 Fix vaapidecode to correctly report caps features downstream, when
15270 a custom pipeline is built manually.
15271 https://bugzilla.gnome.org/show_bug.cgi?id=719372
15272 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15274 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
15276 * gst/vaapi/gstvaapidecode.c:
15277 vaapidecode: add system memory caps to template caps.
15278 Since vaapidecode provides buffer that can be mapped as regular memory,
15279 those caps should be added to the template caps. That only applies to
15281 https://bugzilla.gnome.org/show_bug.cgi?id=720608
15282 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15284 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
15286 * gst/vaapi/gstvaapidecode.c:
15287 vaapidecode: fix hang on SIGINT.
15288 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
15289 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
15290 locked. This fixes a deadlock on state change from PAUSED to READY.
15291 https://bugzilla.gnome.org/show_bug.cgi?id=720584
15292 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15294 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
15296 * gst/vaapi/gstvaapiencode.c:
15297 vaapiencode: fix possible hang on SIGINT.
15298 vaapiencode might hang when the pipeline is stopped without any EOS,
15299 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
15300 running and locked. This fixes a possible deadlock on state change
15301 from PAUSED to READY.
15302 https://bugzilla.gnome.org/show_bug.cgi?id=720584
15303 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15305 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15307 * gst/vaapi/gstvaapiencode.c:
15308 vaapiencode: fix typo in error message.
15309 Fix incomplete error message in gst_vaapiencode_push_frame().
15311 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15313 * gst/vaapi/gstvaapipluginutil.c:
15314 * gst/vaapi/gstvaapipluginutil.h:
15315 plugins: add helpers to create video caps with features.
15316 Add gst_vaapi_video_format_new_template_caps_with_features() helper
15317 function to add the supplied caps feature string on GStreamer >= 1.2.
15318 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
15319 the "best" caps feature to use for the supplied pad. In practice, we
15320 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
15321 and finally the system memory caps.
15322 https://bugzilla.gnome.org/show_bug.cgi?id=719372
15324 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
15326 * gst/vaapi/gstvaapivideometa_texture.c:
15327 plugins: don't apply overlay composition in GLTextureUpload function.
15328 The GLTextureUpload function is not in charge of doing the overlay
15329 composition if any.
15330 https://bugzilla.gnome.org/show_bug.cgi?id=721859
15331 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15333 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15335 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15336 encoder: re-order submission of VA objects.
15337 Change the submission order of VA objects so that to make that process
15338 more logical. i.e. submit sequence parameter first, if any; next the
15339 packed headers associated to sequece, picture or slices; and finally
15340 the actual picture and associated slices.
15342 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15344 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15345 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15346 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15347 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15348 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
15349 encoder: clean-up objects.
15350 Various clean-ups to improve consistency and readability: rename some
15351 variables, drop unused macro definitions, drop initialization of vars
15352 that are zero-initialized from the base class, drop un-necessary casts,
15353 allocate GPtrArrays with a destroy function.
15355 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15357 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15358 encoder: h264: fix frame cropping rectangle calculation.
15359 Fix frame cropping rectangle calculation to handle horizontal resolutions
15360 that don't match a multiple of 16 pixels, but also the vertical resolution
15361 that was incorrectly computed for progressive sequences too.
15362 https://bugzilla.gnome.org/show_bug.cgi?id=722089
15364 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15366 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15367 encoder: h264: improve automatic bitrate calculation.
15368 For non "Constant-QP" modes, we could provide more reasonable heuristics
15369 for the target bitrate. In general, 48 bits per macroblock with all the
15370 useful coding tools enable looks safe enough. Then, this rate is raised
15371 by +10% to +15% for each coding tool that is disabled.
15372 https://bugzilla.gnome.org/show_bug.cgi?id=719699
15374 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15376 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15377 encoder: h264: support "high-compression" tuning option.
15378 Add support for "high-compression" tuning option. First, determine the
15379 largest supported profile by the hardware. Next, check any target limit
15380 set by the user. Then, enable each individual coding tool based on the
15381 resulting profile_idc value to use.
15382 https://bugzilla.gnome.org/show_bug.cgi?id=719696
15384 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15386 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15387 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15388 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15389 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15390 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
15391 * gst/vaapi/gstvaapiencode_h264.c:
15392 encoder: h264: allow target decoder constraints.
15393 Allow user to precise the largest profile to use for encoding due
15394 to target decoder constraints. For instance, if CABAC entropy coding
15395 mode is requested by "constrained-baseline" profile only is desired,
15396 then an error is returned during codec configuration.
15397 Also make sure that the suitable profile we derived actually matches
15398 what the HW can cope with.
15399 https://bugzilla.gnome.org/show_bug.cgi?id=719694
15401 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15403 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15404 encoder: h264: refine size of coded buffer.
15405 Refine the heuristic to determine the maximum size of a coded buffer
15406 to account for the exact number of slices. set_context_info() is the
15407 last step during codec reconfiguration, no additional change is done
15408 afterwards, so re-using the num_slices field here is fine.
15409 https://bugzilla.gnome.org/show_bug.cgi?id=719953
15411 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
15413 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15414 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15415 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15416 encoder: h264: expose more coding tools.
15417 Add new H.264 coding tools to improve compression:
15418 - "cabac": enable CABAC entropy coding (default: FALSE);
15419 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
15420 https://bugzilla.gnome.org/show_bug.cgi?id=719693
15421 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15423 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15425 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15426 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15427 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15428 encoder: h264: derive profile and level from active coding tools.
15429 Automatically derive the minimum profile and level to be used for
15430 encoding, based on the activated coding tools. The encoder will
15431 be trying to generate a bitstream that has the best chances to be
15432 decoded on most platforms by default.
15433 Also change the default profile to "constrained-baseline" so that
15434 to ensure maximum compatibility when the stream is decoded.
15435 https://bugzilla.gnome.org/show_bug.cgi?id=719691
15437 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15439 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15440 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15441 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15442 encoder: h264: fix hardware profile lookup.
15443 Fix lookup for a suitable HW profile, as to be used by the underlying
15444 hardware, based on heuristics that lead to characterize the SW profile,
15445 i.e. the one used by the SW level encoding logic.
15446 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
15447 as they should respectively match the baseline and main profile.
15448 https://bugzilla.gnome.org/show_bug.cgi?id=719827
15450 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15452 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15453 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15454 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15455 encoder: h264: support only the byte-stream format.
15456 The libgstvaapi core encoders are meant to support raw bitstreams only.
15457 Henceforth, we are always producing a stream in "byte-stream" format.
15458 However, the "codec-data" buffer which holds SPS and PPS headers is
15459 always available. The "lengthSizeMinusOne" field is always set to 3
15460 so that in-place "byte-stream" format to "avc" format conversion could
15463 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15465 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15466 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15467 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15468 * gst/vaapi/gstvaapiencode_h264.c:
15469 encoder: h264: clean-ups.
15470 Various clean-ups to improve consistency and readability: rename some
15471 variables, drop unused macro definitions, drop initialization of vars
15472 that are zero-initialized from the base class, drop un-necessary casts.
15474 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15476 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15477 encoder: mpeg2: fix hardware profile lookup.
15478 Fix lookup for a suitable HW profile, as to be used by the underlying
15479 hardware, based on heuristics that lead to characterize the SW profile,
15480 i.e. the one used by the SW level encoding logic.
15482 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15484 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15485 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15486 encoder: mpeg2: derive profile and level from active coding tools.
15487 Automatically derive the minimum profile and level to be used for
15488 encoding, based on the activated coding tools. Improve lookup for
15489 the best suitable level with the new MPEG-2 helper functions.
15490 Also change the default profile to "simple" so that to ensure maximum
15491 compatibility when the stream is decoded.
15492 https://bugzilla.gnome.org/show_bug.cgi?id=719703
15494 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15496 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15497 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
15498 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15499 encoder: mpeg2: clean-ups.
15500 Various clean-ups to improve consistency and readability: drop unused
15501 macro definitions, drop initialization of vars that are zero-initialized
15502 from the base class, drop un-necessary casts.
15504 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15506 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15507 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15508 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15509 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15510 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15511 encoder: add tuning options API.
15512 Add encoder "tune" option to override the default behaviour that is to
15513 favor maximum decoder compatibility at the expense of lower compression
15515 Expected tuning options to be developed are:
15516 - "high-compression": improve compression, target best-in-class decoders;
15517 - "low-latency": tune for low-latency decoding;
15518 - "low-power": tune for encoding in low power / resources conditions.
15520 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15522 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15523 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15524 encoder: fix bitrate units to match kbps.
15525 Bitrate is expressed in kilobits per second (kbps). So, this exactly
15526 means in multiple of 1000 bits, not 1024 bits.
15527 https://bugzilla.gnome.org/show_bug.cgi?id=722086
15529 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15531 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15532 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15533 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15534 encoder: clean-ups.
15535 Drop obsolete and unused macros. Add a few doc comments. Slightly
15536 improve indentation of a few leftovers.
15538 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15540 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15541 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15542 * gst-libs/gst/vaapi/gstvaapivalue.c:
15543 * gst-libs/gst/vaapi/gstvaapivalue.h:
15544 encoder: filter out the supported set of rate-control properties.
15545 Only expose the exact static set of supported rate-control properties
15546 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
15547 only support CQP rate control, then only add it the the exposed enum
15549 Add helper macros and functions to build a GType for an enum subset.
15551 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15553 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15554 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15555 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15556 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15557 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15558 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15559 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
15560 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15561 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15562 encoder: add keyframe period API.
15563 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
15564 user control the maximum distance between two keyframes. This new
15565 property can only be set prior to gst_vaapi_encoder_set_codec_state().
15566 A value of zero for "keyframe-period" gets it re-evaluated to the
15567 actual framerate during encoder reconfiguration.
15569 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15571 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15572 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15573 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15574 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15575 encoder: improve codec reconfiguration.
15576 Improve codec reconfiguration to be performed only through a single
15577 function. That is, remove the _set_context_info() hook as subclass
15578 should not alter the parent GstVaapiContextInfo itself. Besides, the
15579 VA context is constructed only at the final stages of reconfigure().
15581 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15583 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15584 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
15585 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15586 encoder: fix possible memory leak of coded buffer pools.
15587 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
15588 buffer pool only if the coded buffer size actually changed.
15590 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15592 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15593 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15594 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15595 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15596 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15597 * gst/vaapi/gstvaapiencode.c:
15598 * gst/vaapi/gstvaapiencode.h:
15599 encoder: add video codec-state API.
15600 Add interface to communicate the encoder resolution and related info
15601 like framerate, interlaced vs. progressive, etc. This new interface
15602 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
15603 but rather use GstVideoCodecState.
15604 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
15605 point for codec config. This means that the encoder is reconfigured
15606 there to match the latest properties.
15608 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15610 * gst/vaapi/gstvaapiencode.c:
15611 vaapiencode: don't crash on NULL encoder on _finish().
15612 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
15613 if it was not created in the first place. Return "not-negotiated" error
15614 since this means we did not even reach GstVideoEncoder::set_format(),
15615 where the encoder could have been created.
15616 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
15617 and that we failed to negotiate either pad.
15618 https://bugzilla.gnome.org/show_bug.cgi?id=719704
15620 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15622 * gst/vaapi/gstvaapiencode.c:
15623 * gst/vaapi/gstvaapiencode.h:
15624 * gst/vaapi/gstvaapiencode_h264.c:
15625 vaapiencode: use more GstVaapiPluginBase facilities.
15626 Avoid duplication of pad references or query functions since they are
15627 provided through the GstVaapiPluginBase object.
15629 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15631 * gst/vaapi/gstvaapiencode.c:
15632 * gst/vaapi/gstvaapiencode.h:
15633 * gst/vaapi/gstvaapiencode_h264.c:
15634 * gst/vaapi/gstvaapiencode_h264.h:
15635 * gst/vaapi/gstvaapiencode_mpeg2.c:
15636 vaapiencode: fix negotiation process of output caps.
15637 The specified caps in gst_video_encoder_set_output_state() function
15638 arguments should not contain any resolution, pixel-aspect-ratio,
15639 framerate, codec-data et al. Those rather should be set through the
15640 returned GstVideoCodecState. This means that output caps creation
15641 could be delayed until before gst_video_encoder_finish_frame() is
15643 This greatly simplifies the GstVideoEncoder::set_format() callback
15646 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15648 * gst/vaapi/gstvaapiencode.c:
15649 vaapiencode: make GstVaapiEncode an abstract type.
15650 Make base GstVaapiEncode class an abstract type so that we cannot
15651 create an instance from it without going through any of the codec
15652 specific derived class.
15654 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15656 * gst/vaapi/gstvaapiencode.c:
15657 * gst/vaapi/gstvaapiencode.h:
15658 * gst/vaapi/gstvaapiencode_h264.c:
15659 * gst/vaapi/gstvaapiencode_mpeg2.c:
15660 vaapiencode: rename a few member functions.
15661 Rename a few member functions to make them more consistent:
15662 - alloc_encoder(): now reduced to allocate the encoder object only;
15663 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
15665 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15667 * gst/vaapi/gstvaapiencode.c:
15668 * gst/vaapi/gstvaapiencode.h:
15669 * gst/vaapi/gstvaapiencode_h264.c:
15670 * gst/vaapi/gstvaapiencode_h264.h:
15671 * gst/vaapi/gstvaapiencode_mpeg2.c:
15672 vaapiencode: update for new properties API.
15673 Update MPEG-2 and H.264 encode elements to cope with the new core
15674 libgstvaapi properties API. i.e. all configurable properties are now
15675 directly handled at the GstVaapiEncoder level.
15676 Besides, this also makes sure to not use or modify the GstVaapiEncoder
15677 private definitions directly. Private data need to remain private.
15678 https://bugzilla.gnome.org/show_bug.cgi?id=719529
15680 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15682 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15683 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15684 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15685 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15686 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15687 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
15688 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15689 encoder: add properties API.
15690 Add interface to communicate configurable properties to the encoder.
15691 This covers both the common ones (rate-control, bitrate), and the
15692 codec specific properties.
15693 https://bugzilla.gnome.org/show_bug.cgi?id=719529
15695 2014-01-06 18:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15697 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15698 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15699 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15700 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15701 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15702 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15703 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15704 * gst/vaapi/gstvaapiencode.c:
15705 * gst/vaapi/gstvaapiencode_h264.c:
15706 * gst/vaapi/gstvaapiencode_mpeg2.c:
15707 encoder: add bitrate API.
15708 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
15709 the bitrate for encoding. Currently, changing this parameter is only
15710 valid before the first frame is encoded. Should the value be modified
15711 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
15713 https://bugzilla.gnome.org/show_bug.cgi?id=719529
15715 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15717 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15718 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15719 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15720 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15721 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15722 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15723 * gst-libs/gst/vaapi/gstvaapitypes.h:
15724 * gst/vaapi/gstvaapiencode.c:
15725 * gst/vaapi/gstvaapiencode.h:
15726 * gst/vaapi/gstvaapiencode_h264.c:
15727 * gst/vaapi/gstvaapiencode_mpeg2.c:
15728 encoder: add rate control API.
15729 Add gst_vaapi_encoder_set_rate_control() interface to request a new
15730 rate control mode for encoding. Changing the rate control mode is
15731 only valid prior to encoding the very first frame. Afterwards, an
15732 error ("operation-failed") is issued.
15733 https://bugzilla.gnome.org/show_bug.cgi?id=719529
15735 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15737 * gst/vaapi/gstvaapiencode.c:
15738 * gst/vaapi/gstvaapiencode_h264.c:
15739 * gst/vaapi/gstvaapiencode_mpeg2.c:
15740 vaapiencode: fix indentation.
15742 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15744 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15745 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15746 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15747 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15748 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15749 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15750 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15751 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15752 * gst/vaapi/gstvaapiencode.h:
15753 encoder: fix indentation.
15755 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15757 * gst-libs/gst/vaapi/Makefile.am:
15758 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
15759 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
15760 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
15761 utils: add new MPEG-2 helper functions.
15762 Add various helper functions to convert profile, level, chroma formats
15763 from gstreamer-vaapi world and the MPEG-2 specification world.
15765 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15767 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15768 utils: h264: don't use fatal asserts.
15769 Replace g_assert() with a g_debug() so that to not make the program
15770 abort when an unsupported value is supplied.
15772 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15774 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15775 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
15776 utils: h264: add helpers for profile and level string mappings.
15777 Add profile and level helper functions to convert to/from strings.
15779 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15781 * gst-libs/gst/vaapi/Makefile.am:
15782 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15783 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15784 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
15785 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
15786 utils: h264: expose levels in public header.
15787 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
15788 H.264 levels in there. The additional helper functions are meant
15789 to be private for now.
15791 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15793 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
15794 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
15795 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15796 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
15797 codec: add helper macros to maintain object refcount.
15798 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
15799 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
15801 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15803 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15804 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
15805 codec: re-indent decoder objects.
15807 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15809 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
15810 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
15811 codec: re-indent base codec objects.
15813 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
15815 * gst/vaapi/gstvaapipluginbase.c:
15816 plugins: do not free debug category in finalize method.
15817 Fixes a crash when multiple vaapidecode elements are finalized since
15818 the debug category is created once in the class init method.
15819 This is a regression from git commit 7e58d60.
15820 https://bugzilla.gnome.org/show_bug.cgi?id=721390
15821 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15823 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15825 * gst-libs/gst/vaapi/glibcompat.h:
15826 * tests/simple-decoder.c:
15827 tests: simple-decoder: don't use deprecated g_thread_create().
15828 Use g_thread_try_new() instead of the deprecated g_thread_create()
15829 function. Provide compatibility glue for any GLib version < 2.31.2.
15831 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15833 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15834 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
15835 * gst-libs/gst/vaapi/gstvaapisurface.c:
15836 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15837 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
15838 * gst/vaapi/gstvaapiencode.c:
15839 Fix printf()-like formats.
15840 Fix formts for various GST_DEBUG et al. invocations. More precisely,
15841 make size_t arguments use the %zu format specifier accordingly; force
15842 XID formats to be a 32-bit unsigned integer; and fix the format used
15843 for gst_vaapi_create_surface_with_format() error cases since we have
15844 been using strings nowadays.
15846 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15848 * gst-libs/gst/vaapi/video-format.c:
15849 * gst-libs/gst/vaapi/video-format.h:
15850 utils: format: drop unused helper functions.
15851 The following helper functions are no longer used, thus are removed:
15852 - gst_vaapi_video_format_from_structure()
15853 - gst_vaapi_video_format_from_caps()
15854 - gst_vaapi_video_format_to_caps()
15856 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15858 * gst-libs/gst/vaapi/video-format.c:
15859 * gst-libs/gst/vaapi/video-format.h:
15860 utils: re-indent GstVideoFormat related helpers.
15862 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15864 * gst/vaapi/gstvaapidownload.c:
15865 download: use GstVideoInfo facilities to build output caps.
15866 Use standard GstVideoInfo related functions to build the output caps,
15867 thus directly preserving additional fields as needed, instead of
15868 manually copying them over through gst_vaapi_append_surface_caps().
15869 Also ensure that the input caps are fixated first.
15871 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15873 * gst/vaapi/gstvaapidownload.c:
15874 * gst/vaapi/gstvaapipluginutil.c:
15875 * gst/vaapi/gstvaapipluginutil.h:
15876 * gst/vaapi/gstvaapiuploader.c:
15877 plugins: factor out construction of template caps.
15878 Add new helper functions to build video template caps.
15879 - gst_vaapi_video_format_new_template_caps():
15880 create GstCaps with size, frame rate and PAR to full range
15881 - gst_vaapi_video_format_new_template_caps_from_list():
15882 try to create a "simplified" list from the supplied formats
15884 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15886 * gst/vaapi/gstvaapipluginutil.c:
15887 * gst/vaapi/gstvaapipluginutil.h:
15888 * gst/vaapi/gstvaapipostproc.c:
15889 plugins: factor out construction of GValue from GstVideoFormat.
15890 Add new helper functions to build GValues from GstVideoFormat:
15891 - gst_vaapi_value_set_format():
15892 build a GValue from the supplied video format
15893 - gst_vaapi_value_set_format_list():
15894 build a GValue list from the supplied array of video formats
15896 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15898 * gst/vaapi/gstvaapipluginutil.c:
15899 * gst/vaapi/gstvaapipluginutil.h:
15900 * gst/vaapi/gstvaapivideocontext.c:
15901 * gst/vaapi/gstvaapivideocontext.h:
15902 plugins: re-indent common and video context creation utils.
15904 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15906 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15907 * gst-libs/gst/vaapi/gstvaapidisplay.h:
15908 * gst/vaapi/gstvaapidecode.c:
15909 * tests/test-display.c:
15910 display: don't use GstCaps for decode or encode profiles list.
15911 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
15912 more convenient APIs that return an array of GstVaapiProfile instead
15913 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
15915 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15917 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15918 * gst-libs/gst/vaapi/gstvaapidisplay.h:
15919 * gst/vaapi/gstvaapidownload.c:
15920 * gst/vaapi/gstvaapiuploader.c:
15921 * tests/test-display.c:
15922 display: don't use GstCaps for image or subpicture formats list.
15923 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
15924 returned GstCaps, with more convenient APIs that return an array of
15925 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
15927 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15929 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15930 * gst-libs/gst/vaapi/gstvaapidisplay.h:
15931 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
15932 display: allocate queried resources on-demand.
15933 Allocate the set of decoders or encoders on-demand, when they are
15934 queried. Likewise for VA display attributes, image and subpicture
15937 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15939 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15940 * gst-libs/gst/vaapi/gstvaapidisplay.h:
15941 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
15942 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
15943 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
15944 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
15945 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
15946 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
15947 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
15948 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
15949 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
15950 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
15951 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
15952 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
15953 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
15954 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
15955 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
15956 display: re-indent all GstVaapiDisplay related source code.
15958 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15960 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15961 * gst-libs/gst/vaapi/gstvaapiprofile.h:
15962 utils: add helper functions to get codec or profile name.
15964 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15966 * gst/vaapi/gstvaapipostproc.c:
15967 * gst/vaapi/gstvaapipostproc.h:
15968 * gst/vaapi/gstvaapiuploader.c:
15969 plugins: fix permissions for certain files.
15970 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
15973 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
15975 * gst/vaapi/gstvaapivideometa_texture.c:
15976 plugins: implement GLTextureUploadMeta user data copy.
15977 Makes the copies of a buffer reference their own GLTextureUploadMeta
15978 user data and prevent the original buffer accessing already freed
15979 memory if its copies has been released and freed.
15980 https://bugzilla.gnome.org/show_bug.cgi?id=720336
15981 [Propagate the original meta texture to the copy too]
15982 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15984 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15986 * gst/vaapi/gstvaapiencode.c:
15987 * gst/vaapi/gstvaapiencode.h:
15988 * gst/vaapi/gstvaapipluginbase.c:
15989 * gst/vaapi/gstvaapipluginbase.h:
15990 * gst/vaapi/gstvaapipostproc.c:
15991 * gst/vaapi/gstvaapipostproc.h:
15992 * gst/vaapi/gstvaapisink.c:
15993 * gst/vaapi/gstvaapisink.h:
15994 plugins: factor out support for raw YUV buffers on sink pads.
15995 Factor out propose_allocation() hooks, creation of video buffer pool
15996 for the sink pad, conversion from raw YUV buffers to VA surface backed
15997 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
15998 with the new GstVaapiPluginBase abilities.
16000 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16002 * gst-libs/gst/vaapi/gstcompat.h:
16003 * gst/vaapi/gstvaapidecode.c:
16004 * gst/vaapi/gstvaapidecode.h:
16005 * gst/vaapi/gstvaapidownload.c:
16006 * gst/vaapi/gstvaapipluginbase.c:
16007 * gst/vaapi/gstvaapipluginbase.h:
16008 * gst/vaapi/gstvaapipostproc.c:
16009 * gst/vaapi/gstvaapipostproc.h:
16010 * gst/vaapi/gstvaapisink.c:
16011 * gst/vaapi/gstvaapiupload.c:
16012 plugins: factor out pad caps.
16014 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16016 * gst/vaapi/gstvaapidecode.c:
16017 * gst/vaapi/gstvaapidownload.c:
16018 * gst/vaapi/gstvaapiencode.c:
16019 * gst/vaapi/gstvaapipluginbase.c:
16020 * gst/vaapi/gstvaapipostproc.c:
16021 * gst/vaapi/gstvaapisink.c:
16022 * gst/vaapi/gstvaapiupload.c:
16023 plugins: factor out video context sharing code.
16025 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16027 * gst/vaapi/gstvaapidecode.c:
16028 * gst/vaapi/gstvaapidownload.c:
16029 * gst/vaapi/gstvaapiencode.c:
16030 * gst/vaapi/gstvaapipluginbase.c:
16031 * gst/vaapi/gstvaapipluginbase.h:
16032 * gst/vaapi/gstvaapipostproc.c:
16033 * gst/vaapi/gstvaapisink.c:
16034 * gst/vaapi/gstvaapiupload.c:
16035 plugins: factor out GstImplementsInterface.
16037 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16039 * gst-libs/gst/vaapi/gstvaapidisplay.c:
16040 * gst-libs/gst/vaapi/gstvaapidisplay.h:
16041 * gst/vaapi/gstvaapipluginbase.c:
16042 * gst/vaapi/gstvaapipluginutil.c:
16043 plugins: check type of display obtained from neighbours.
16044 Fix display creation code to check that any display obtained from a
16045 neighbour actually has the type we expect. Note: if display type is
16046 set to "any", we can then accept any VA display type.
16048 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16050 * gst/vaapi/gstvaapidecode.c:
16051 * gst/vaapi/gstvaapidownload.c:
16052 * gst/vaapi/gstvaapiencode.c:
16053 * gst/vaapi/gstvaapipluginbase.c:
16054 * gst/vaapi/gstvaapipluginbase.h:
16055 * gst/vaapi/gstvaapipluginutil.c:
16056 * gst/vaapi/gstvaapipluginutil.h:
16057 * gst/vaapi/gstvaapipostproc.c:
16058 * gst/vaapi/gstvaapisink.c:
16059 * gst/vaapi/gstvaapisink.h:
16060 * gst/vaapi/gstvaapiupload.c:
16061 plugins: factor out display creation process.
16062 Move common VA display creation code to GstVaapiPluginBase, with the
16063 default display type remaining "any". Also add a "display-changed"
16064 hook so that subclasses could perform additional tasks when/if the
16065 VA display changed, due to a new display type request for instance.
16066 All plug-ins are updated to cope with the new internal APIs.
16068 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16070 * gst/vaapi/Makefile.am:
16071 * gst/vaapi/gstvaapidecode.c:
16072 * gst/vaapi/gstvaapidecode.h:
16073 * gst/vaapi/gstvaapidownload.c:
16074 * gst/vaapi/gstvaapidownload.h:
16075 * gst/vaapi/gstvaapiencode.c:
16076 * gst/vaapi/gstvaapiencode.h:
16077 * gst/vaapi/gstvaapipluginbase.c:
16078 * gst/vaapi/gstvaapipluginbase.h:
16079 * gst/vaapi/gstvaapipostproc.c:
16080 * gst/vaapi/gstvaapipostproc.h:
16081 * gst/vaapi/gstvaapisink.c:
16082 * gst/vaapi/gstvaapisink.h:
16083 * gst/vaapi/gstvaapiupload.c:
16084 * gst/vaapi/gstvaapiupload.h:
16085 plugins: add new base object, store display in there.
16086 Introduce a new GstVaapiPluginBase object that will contain all common
16087 data structures and perform all common tasks. First step is to have a
16088 single place to hold VA displays.
16089 While we are at it, also make sure to store and subsequently release
16090 the appropriate debug category for the subclasses.
16092 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16094 * gst-libs/gst/vaapi/gstvaapiobject.h:
16095 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
16096 * gst/vaapi/gstvaapivideometa_texture.c:
16097 * gst/vaapi/gstvaapivideometa_texture.h:
16098 plugins: fix GLTextureUploadMeta to work with different texture ids.
16099 The GLTextureUploadMeta implementation assumed that for each upload()
16100 sequence, the supplied texture id is always the same as the one that
16101 was previously cached into the underlying GstVaapiTexture. Cope with
16102 any texture id change the expense to recreate the underlying VA/GLX
16104 https://bugzilla.gnome.org/show_bug.cgi?id=719643
16106 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16108 * gst/vaapi/gstvaapidecode.c:
16109 * gst/vaapi/gstvaapivideobufferpool.c:
16110 * gst/vaapi/gstvaapivideometa_texture.c:
16111 plugins: allow builds without GLX enabled for GStreamer 1.2.
16112 Don't try to build GLTextureUploadMeta related code if GLX is not
16113 enabled during GStreamer >= 1.2 builds.
16115 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
16117 * gst/vaapi/gstvaapidecode.c:
16118 * gst/vaapi/gstvaapivideobufferpool.c:
16119 * gst/vaapi/gstvaapivideobufferpool.h:
16120 * gst/vaapi/gstvaapivideometa_texture.c:
16121 * gst/vaapi/gstvaapivideometa_texture.h:
16122 plugins: request GLTextureUpload meta on buffers in the buffer pool.
16123 Requesting the GLTextureUpload meta on buffers in the bufferpool
16124 prevents such metas from being de-allocated when buffers are released
16126 This is particulary useful in terms of performance when using the
16127 GLTextureUploadMeta API since the GstVaapiTexture associated with
16128 the target texture is stored in the meta.
16129 https://bugzilla.gnome.org/show_bug.cgi?id=712558
16130 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16132 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16134 * gst/vaapi/gstvaapivideometa_texture.c:
16135 plugins: robustify GstVideoGLTextureUploadMeta implementation.
16136 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
16137 when the GstVaapiTexture associated with the supplied texture id could
16140 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16142 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16143 h264: improve robustness when packets are missing.
16144 Improve robustness when some expected packets where not received yet
16145 or that were not correctly decoded. For example, don't try to decode
16146 a picture if there was no valid frame headers parsed so far.
16147 https://bugs.freedesktop.org/show_bug.cgi?id=57902
16149 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16151 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16152 decoder: h264: fix decoding of BA3_SVA_C.264.
16153 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
16154 extended profile specifications. However, the SPS header has the
16155 constraint_set1_flag syntax element set to 1. This means that, if
16156 a Main profile compliant decoder is available, then it should be
16157 able to decode this stream.
16158 This changes makes it possible to fall-back from Extended profile
16159 to Main profile if constraint_set1_flag is set to 1.
16160 https://bugzilla.gnome.org/show_bug.cgi?id=720190
16162 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16164 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16165 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
16166 utils: h264: add more profiles.
16167 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
16168 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
16169 multiview profiles (H.10.1.1, H.10.1.2).
16170 Document "Constrained Baseline" and "High 10" profiles.
16172 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16174 * ext/codecparsers:
16175 codecparsers: update to gst-vaapi-branch commit e7d0e18.
16176 e7d0e18 h264: complete set of NAL unit types
16178 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
16180 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16181 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16182 decoder: h264: add support for constrained baseline profile.
16183 Recognize streams marked as conforming to the "Constrained Baseline
16184 Profile". If VA driver supports that as is, fine. Otherwise, fallback
16185 to baseline, main or high profile.
16186 Constrained Baseline Profile conveys coding tools that are common
16187 to baseline profile and main profile.
16188 https://bugzilla.gnome.org/show_bug.cgi?id=719947
16189 [Added fallbacks to main and high profiles]
16190 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16192 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16194 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16195 decoder: h264: fix decoding of scaling lists.
16196 The GStreamer codecparser layer now parses the scaling lists in zigzag
16197 scan order, as expected, so that to match the original bitstream layout
16198 and specification. However, further convert the scaling lists into
16199 raster scan order to fit the existing practice in most VA drivers.
16200 https://bugzilla.gnome.org/show_bug.cgi?id=706406
16202 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16204 * ext/codecparsers:
16205 codecparsers: update to gst-vaapi-branch commit 177c73b.
16206 a7e3255 add H.265 (HEVC) bitstream parser
16207 177c73b h264: fix picture level scaling lists derivation (rule B)
16208 14733f1 h264: fix parsing of VCL HRD parameters
16209 59a0b47 h264: store quantization matrices in zig-zag order
16210 ffb6e26 h264: add helpers to convert quantization matrices
16211 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
16212 719d1b0 mpeg2: turn internal consistency check into a g_assert()
16213 5241d8e all: remove some unused functions
16214 18eb312 all: fix for GST_DISABLE_GST_DEBUG
16215 963c04a all: make warnings more meaningful
16217 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16219 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16220 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
16221 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
16222 utils: add helpers for H.264 levels.
16223 - gst_vaapi_utils_h264_get_level():
16224 Returns GstVaapiLevelH264 from H.264 level_idc value
16225 - gst_vaapi_utils_h264_get_level_idc():
16226 Returns H.264 level_idc value from GstVaapiLevelH264
16227 - gst_vaapi_utils_h264_get_level_limits():
16228 Returns level limits as specified in Table A-1 of the H.264 standard
16229 - gst_vaapi_utils_h264_get_level_limits_table():
16230 Returns the Table A-1 specification
16232 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16234 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16235 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16236 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
16237 utils: add new H.264 profiles.
16238 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
16239 and helper functiions.
16241 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16243 utils: add new H.264 helper functions.
16245 - gst_vaapi_utils_h264_get_profile():
16246 Returns GstVaapiProfile from H.264 profile_idc value
16247 - gst_vaapi_utils_h264_get_profile_idc():
16248 Returns H.264 profile_idc value from GstVaapiProfile
16250 - gst_vaapi_utils_h264_get_chroma_type():
16251 Returns GstVaapiChromaType from H.264 chroma_format_idc value
16252 - gst_vaapi_utils_h264_get_chroma_format_idc():
16253 Returns H.264 chroma_format_idc value from GstVaapiChromaType
16255 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
16257 * gst-libs/gst/base/Makefile.am:
16258 * gst-libs/gst/vaapi/Makefile.am:
16259 Fix missing files in distribution tarball.
16260 https://bugzilla.gnome.org/show_bug.cgi?id=719776
16261 [Additional fixes and clean-ups]
16262 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16264 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16266 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16267 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16268 encoder: fix computation of max coded buffer size (again).
16269 The previous fix was only valid to express the maximum size of the
16270 macroblock layer, i.e. without any headers. Now, also account for
16271 the slice headers and top picture header, but also any other header
16272 we might stuff into the VA coded buffer, e.g. sequence headers.
16274 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16276 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16277 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16278 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16279 encoder: fix computation of max coded buffer size.
16280 Fix coded buffer size for each codec. A generic issue was that the
16281 number of macroblocks was incorrectly computed. The second issue was
16282 specific to MPEG-2 were the max number of bits per macroblock, and
16283 as defined by the standard, was incorrectly mapped to the (lower)
16284 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
16286 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16288 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16289 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16290 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16291 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16292 encoder: simplify VA context initialization process.
16293 Change get_context_info() into a set_context_info() function that
16294 initializes common defaults into the base class, thus allowing the
16295 subclasses to specialize the context info further on.
16296 The set_context_info() hook is also the location where additional
16297 context specific data could be initialized. At this point, we are
16298 guaranteed to have valid video resolution size and framerate. i.e.
16299 gst_vaapi_encoder_set_format() was called beforehand.
16301 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
16303 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16304 encoder: fix mpeg2 compilation error.
16305 https://bugzilla.gnome.org/show_bug.cgi?id=719746
16306 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16308 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16310 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16311 * gst-libs/gst/vaapi/gstvaapiencoder.h:
16312 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16313 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16314 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16315 * gst/vaapi/gstvaapiencode.c:
16316 encoder: clean-ups and document public APIs.
16317 Clean public APIs up so that to better align with the decoder APIs.
16318 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
16319 return the VA coded buffer proxy. Also provide useful documentation
16320 for the public APIs.
16322 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16324 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16325 * gst-libs/gst/vaapi/gstvaapiencoder.h:
16326 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16327 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
16328 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
16329 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
16330 through GstVaapiCodedBufferProxy user-data facility.
16331 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
16333 Partial fix for the following report:
16334 https://bugzilla.gnome.org/show_bug.cgi?id=719530
16336 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16338 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16339 * gst-libs/gst/vaapi/gstvaapiencoder.h:
16340 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16341 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16342 * gst/vaapi/gstvaapiencode.c:
16343 encoder: refactor status codes.
16344 Drop obsolete or unused status codes. Align some status codes with the
16345 decoder counterparts.
16347 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16349 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16350 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16351 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
16352 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16353 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
16354 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16355 encoder: fix subclassing process.
16356 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
16357 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
16358 thus avoiding useless run-time checks. Also simplify the subclass
16359 initialization process to be less error prone.
16361 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16363 encoder: rework GstVaapiCodedBuffer and related proxy.
16364 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
16365 public and private interfaces. Besides, the map/unmap APIs should not
16366 be exposed as is but appropriate accessors should be provided instead.
16367 * GstVaapiCodedBuffer: VA coded buffer abstraction
16368 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
16369 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
16370 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
16371 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
16372 the specified max size, and bound to the supplied encoder
16373 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
16374 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
16375 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
16376 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
16377 Rationale: more optimized transfer functions might be provided in the
16378 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
16379 https://bugzilla.gnome.org/show_bug.cgi?id=719775
16381 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16383 * gst/vaapi/gstvaapidecode.c:
16384 * gst/vaapi/gstvaapiencode.c:
16385 * gst/vaapi/gstvaapipostproc.c:
16386 * gst/vaapi/gstvaapisink.c:
16387 plugins: fix reference leaks of VA display objects.
16388 Fix GstElement::set_context() implementation for all plug-in elements
16389 to avoid leaking an extra reference to the VA display, thus preventing
16390 correct cleanup of VA resources in GStreamer 1.2 builds.
16392 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16394 * gst/vaapi/gstvaapipluginutil.c:
16395 * gst/vaapi/gstvaapivideocontext.c:
16396 plugins: simplify gst_vaapi_ensure_display().
16397 Return earlier if the creation of a VA display failed. Likewise, simplify
16398 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
16401 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16403 * gst/vaapi/gstvaapivideomemory.c:
16404 plugins: fix memory leaks through GstVideoMeta maps.
16405 When GstVideoMeta maps were used, the supporting functions incorrectly
16406 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
16407 always increasing the associated GstMemory reference count and giving
16408 zero chance to actually release that, and subsequently the VA display.
16410 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16412 * gst-libs/gst/vaapi/gstvaapifilter.c:
16413 * gst/vaapi/gstvaapiencode_h264.c:
16414 * gst/vaapi/gstvaapiencode_mpeg2.c:
16415 * gst/vaapi/gstvaapipostproc.c:
16416 * gst/vaapi/gstvaapisink.c:
16417 * gst/vaapi/gstvaapiuploader.c:
16418 plugins: use G_PARAM_STATIC_STRINGS.
16419 This avoids a few string copies during initialization.
16421 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16423 * gst/vaapi/gstvaapivideometa.c:
16424 plugins: simplify VA video meta to only reference surface proxies.
16425 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
16426 now allocated from a surface pool. This also means that the local
16427 reference to the VA surface is also gone, as it could be extracted
16428 from the associated surface proxy.
16430 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16432 * gst/vaapi/gstvaapivideobuffer.c:
16433 * gst/vaapi/gstvaapivideobuffer.h:
16434 * gst/vaapi/gstvaapivideometa.c:
16435 * gst/vaapi/gstvaapivideometa.h:
16436 plugins: drop obsolete functions.
16437 Drop the following functions that are not longer used:
16438 - gst_vaapi_video_buffer_new_with_surface()
16439 - gst_vaapi_video_meta_new_with_surface()
16440 - gst_vaapi_video_meta_set_surface()
16441 - gst_vaapi_video_meta_set_surface_from_pool()
16443 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16445 * gst/vaapi/gstvaapivideometa.c:
16446 plugins: allow VA video meta to be allocated from surface proxy pools.
16447 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
16448 from surface pools instead of plain VA surfaces. This is to simplify
16449 allocations now that surface proxies are created from a surface pool.
16451 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16453 * docs/reference/libs/libs-sections.txt:
16454 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
16455 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
16456 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
16457 surfaceproxy: add copy function.
16458 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
16459 proxy with the same information from the parent proxy, except that the
16460 user-defined destroy notify function is not copied over.
16461 The underlying VA surface is pushed back to the video pool only when
16462 the last reference to the parent surface proxy is released.
16464 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16466 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
16467 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
16468 * gst/vaapi/gstvaapiencode.c:
16469 vaapiencode: optimize _handle_frame() to avoid extra allocation.
16470 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
16471 and in particular the GstVaapiEncObjUserData object. i.e. directly use
16472 the VA surface proxy from the source buffer. This also makes the user
16473 data attached to the GstVideoCodecFrame more consistent between both
16474 the decoder and encoder plug-in elements.
16476 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16478 * gst/vaapi/gstvaapiencode.c:
16479 vaapiencode: fix memory leaks in _push_frame() on error.
16480 Simplify gst_vaapiencode_push_frame(), while also removing the call
16481 to gst_video_encoder_negotiate() since this is implicit in _finish()
16482 if caps changed. Also fixed memory leaks that occured on error.
16484 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16486 * gst/vaapi/gstvaapiencode.c:
16487 * gst/vaapi/gstvaapiencode.h:
16488 * gst/vaapi/gstvaapiencode_h264.c:
16489 * gst/vaapi/gstvaapiencode_h264.h:
16490 * gst/vaapi/gstvaapiencode_mpeg2.c:
16491 vaapiencode: additional clean-ups.
16492 Constify pointers wherever possible. Drop unused variables, and use
16493 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
16494 to correctly report errors, especially when in-place conversion from
16495 bytestream to avcC format failed.
16497 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16499 * gst/vaapi/gstvaapiencode.c:
16500 * gst/vaapi/gstvaapiencode.h:
16501 * gst/vaapi/gstvaapiencode_h264.c:
16502 * gst/vaapi/gstvaapiencode_h264.h:
16503 * gst/vaapi/gstvaapiencode_mpeg2.c:
16504 * gst/vaapi/gstvaapiencode_mpeg2.h:
16505 vaapiencode: move common properties to base class.
16506 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
16507 base class. The actual range of supported rate control modes is currently
16508 implemented as a plug-in element hook. This ought to be determined from
16509 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
16511 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16513 * gst/vaapi/gstvaapiencode_h264.c:
16514 * gst/vaapi/gstvaapiencode_mpeg2.c:
16515 vaapiencode: fix plugin description and debug name.
16516 Align the plug-in debug category to its actual name. i.e. enable debug
16517 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
16518 the plug-in element description to make it more consistent with other
16521 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16524 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16525 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16526 * gst-libs/gst/video/Makefile.am:
16527 * gst/vaapi/gstvaapiencode.c:
16528 * gst/vaapi/gstvaapiencode.h:
16529 * gst/vaapi/gstvaapiencode_h264.c:
16530 * gst/vaapi/gstvaapiencode_mpeg2.c:
16531 vaapiencode: add initial support for GStreamer 0.10.
16533 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16535 * gst-libs/gst/vaapi/gstcompat.h:
16536 libs: add more GstBuffer compat glue for GStreamer 0.10.
16537 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
16538 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
16541 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16544 * gst-libs/gst/video/Makefile.am:
16545 libs: always use built-in videoutils for GStreamer 0.10.
16546 GStreamer 0.10.36 is the latest and ultimate version to be released
16547 from the GStreamer 0.10 branch. i.e. no further releases are to be
16548 made. So, we can safely enable the built-in videoutils replacement
16549 now that they are in sync with the 0.10 branch.
16551 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16554 videoutils: update to master commit d4a15a5.
16555 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
16556 86096cc videodecoder: minor cosmetic changes to align a bit more with master
16557 b4b8b52 videodecoder: allow parse function to not use all data on adapter
16558 2145495 videodecoder: warn if frame list gets long
16559 36c3753 videodecoder: Also use the object lock to protect the output_state
16560 518c93d videodecoder: fix seeking again
16561 185fb63 video: Correct usage of the base class stream lock
16562 170e944 videodecoder: Expose _negotiate function
16564 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
16567 * gst-libs/gst/vaapi/Makefile.am:
16568 * tests/Makefile.am:
16569 Fix build with GStreamer >= 1.3.
16570 http://bugzilla.gnome.org/show_bug.cgi?id=715183
16571 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16573 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16576 configure: disable encoders with GStreamer 0.10.
16577 Don't try to build video encoders for GStreamer 0.10. Support code is
16578 not there yet, and probably will never for such an ancient version.
16580 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16582 * gst/vaapi/gstvaapiencode.c:
16583 vaapiencode: fix error handling while allocating output buffers.
16584 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
16585 unmap the coded buffer prior to returning an error.
16587 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16589 * gst/vaapi/gstvaapiencode.c:
16590 vaapiencode: fix error handling in _finish() hook.
16591 Fix GstVideoEncoder::finish() implementation to really return possible
16592 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
16594 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16596 * gst/vaapi/gstvaapiencode.c:
16597 * gst/vaapi/gstvaapiencode.h:
16598 * gst/vaapi/gstvaapiencode_h264.c:
16599 * gst/vaapi/gstvaapiencode_h264.h:
16600 * gst/vaapi/gstvaapiencode_mpeg2.c:
16601 * gst/vaapi/gstvaapiencode_mpeg2.h:
16602 vaapiencode: minor clean-ups.
16603 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
16604 the GObject type system. We are guaranteed to only deal with the same
16605 plug-in element object.
16607 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16609 * gst/vaapi/gstvaapiencode.c:
16610 * gst/vaapi/gstvaapiencode_h264.c:
16611 * gst/vaapi/gstvaapiencode_mpeg2.c:
16612 vaapiencode: fix support for raw YUV sink buffers.
16613 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
16614 The most efficient way to do so is to let the vaapiencode elements
16615 allocate a buffer pool, and subsequently buffers from it. This means
16616 that upstream elements are expected to honour downstream pools.
16617 If upstream elements insist on providing their own allocated buffers
16618 to the vaapiencode elements, then it possibly would be more efficient
16619 to insert a vaapipostproc element before the vaapiencode element.
16620 This is because vaapipostproc currently has better support than other
16621 elements for "foreign" raw YUV buffers.
16623 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16625 * gst/vaapi/gstvaapiencode.c:
16626 vaapiencode: fix support for GStreamer 1.2.
16628 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
16630 * gst/vaapi/gstvaapiencode.c:
16631 * gst/vaapi/gstvaapiencode_h264.c:
16632 * gst/vaapi/gstvaapiencode_mpeg2.c:
16633 vaapiencode: initial port to GStreamer 1.2.
16634 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16636 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
16638 * gst/vaapi/Makefile.am:
16639 * gst/vaapi/gstvaapi.c:
16640 * gst/vaapi/gstvaapiencode_mpeg2.c:
16641 * gst/vaapi/gstvaapiencode_mpeg2.h:
16642 plugins: add mpeg2 encoder element.
16643 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
16644 is called "vaapiencode_mpeg2".
16646 - rate-control: rate control mode (default: cqp - constant QP)
16647 - bitrate: desired bitrate in kbps (default: auto-calculated)
16648 - key-period: maximal distance between two key frames (default: 30)
16649 - max-bframes: number of B-frames between I and P (default: 2)
16650 - quantizer: constant quantizer (default: 8)
16651 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16653 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
16655 * gst/vaapi/Makefile.am:
16656 * gst/vaapi/gstvaapi.c:
16657 * gst/vaapi/gstvaapiencode_h264.c:
16658 * gst/vaapi/gstvaapiencode_h264.h:
16659 plugins: add h264 encoder element.
16660 Add GstVaapiEncodeH264 element object. The actual plug-in element
16661 is called "vaapiencode_h264".
16663 - rate-control: rate control mode (default: none)
16664 - bitrate: desired bitrate in kbps (default: auto-calculated)
16665 - key-period: maximal distance between two key frames (default: 30)
16666 - num-slices: number of slices per frame (default: 1)
16667 - max-bframes: number of B-frames between I and P (default: 0)
16668 - min-qp: minimal quantizer (default: 1)
16669 - init-qp: initial quantizer (default: 26)
16670 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16672 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
16674 * gst/vaapi/Makefile.am:
16675 * gst/vaapi/gstvaapiencode.c:
16676 * gst/vaapi/gstvaapiencode.h:
16677 plugins: add base encoder element.
16678 vaapiencode element is based on GstVideoEncoder APIs.
16679 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16681 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
16683 * gst-libs/gst/vaapi/Makefile.am:
16684 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16685 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
16686 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
16687 encoder: add mpeg2 encoder.
16688 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
16689 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16691 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
16693 * gst-libs/gst/vaapi/Makefile.am:
16694 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16695 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
16696 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
16697 encoder: add h264 encoder.
16698 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16700 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
16703 * gst-libs/gst/vaapi/Makefile.am:
16704 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16705 * gst-libs/gst/vaapi/gstvaapiencoder.h:
16706 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
16707 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
16708 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16709 Add initial infrastructure for video encoding.
16710 Add initial API for video encoding: only basic interfaces and small
16711 encoder objects are implemented so far.
16712 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16714 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
16717 * gst-libs/gst/Makefile.am:
16718 * gst-libs/gst/base/Makefile.am:
16719 * gst-libs/gst/base/gstbitwriter.c:
16720 * gst-libs/gst/base/gstbitwriter.h:
16721 * gst-libs/gst/vaapi/Makefile.am:
16722 libs: add generic bitstream writer.
16723 GstBitWriter provides a bit writer that can write any number of bits
16724 to a pre-allocated memory buffer. Helper functions are also provided
16725 to write any number of bits from 8, 16, 32 and 64 bit variables.
16726 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16728 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
16730 * gst-libs/gst/vaapi/gstvaapicontext.c:
16731 * gst-libs/gst/vaapi/gstvaapicontext.h:
16732 libs: add support for rate-control to GstVaapiContext.
16733 Extend GstVaapiContextInfo structure to hold the desired rate control
16734 mode for encoding purposes. For decoding purposes, this field is not
16735 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
16736 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16738 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
16740 * gst-libs/gst/vaapi/gstvaapitypes.h:
16741 * gst-libs/gst/vaapi/gstvaapiutils.c:
16742 * gst-libs/gst/vaapi/gstvaapiutils.h:
16743 * gst-libs/gst/vaapi/gstvaapivalue.c:
16744 * gst-libs/gst/vaapi/gstvaapivalue.h:
16745 libs: add rate-control attributes.
16746 Add GstVaapiRateControl types and GType values in view to supporting
16747 rate controls for encoding. This is meant to be used for instance in
16749 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16751 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16754 Bump version for development.
16756 === release 0.5.7 ===
16758 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16760 * gst/vaapi/Makefile.am:
16761 build: fix for Wayland headers not in standard include dirs.
16762 Fix build when Wayland headers don't live in plain system include dirs
16763 like /usr/include but rather in /usr/include/wayland for instance.
16764 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
16765 https://bugzilla.gnome.org/show_bug.cgi?id=712282
16767 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
16769 * gst-libs/gst/vaapi/Makefile.am:
16770 build: link libgstvaapi-wayland against videoutils.
16771 This library is using symbols that don't exist in GStreamer 0.10 so
16772 it needs to link to built-in implementation (libgstvaapi-videoutils).
16773 https://bugzilla.gnome.org/show_bug.cgi?id=712282
16774 Signed-off-by: Ross Burton <ross.burton@intel.com>
16775 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16777 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16779 * gst-libs/gst/vaapi/gstvaapifilter.c:
16780 * gst/vaapi/gstvaapipostproc.c:
16781 vaapostproc: fix memory leaks.
16782 Destroy VPP output surface pool on exit. Also avoid a possible crash
16783 in double-free situation caused by insufficiently reference counted
16784 array of formats returned during initialization.
16786 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16788 * gst/vaapi/gstvaapipostproc.c:
16789 * gst/vaapi/gstvaapipostproc.h:
16790 vaapipostproc: fix and optimize advanced deinterlacing mode.
16791 Fix advanced deinterlacing modes with VPP to track only up to 2 past
16792 reference buffers. This used to be 3 past reference buffers but this
16793 doesn't fit with the existing decode pipeline that only has 4 extra
16795 Also optimize references tracking to be only enabled when needed, i.e.
16796 when advanced deinterlacing mode is used. This means that we don't
16797 need to track past references for basic bob or weave deinterlacing.
16799 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16801 * gst/vaapi/gstvaapipostproc.c:
16802 vaapipostproc: fix "mixed" mode deinterlacing.
16803 In "mixed" interlaced streams, the buffer contains additional flags that
16804 specify whether the frame contained herein is interlaced or not. This means
16805 that we can alternatively get progressive or interlaced frames. Make sure
16806 to disable deinterlacing at the VPP level when the source buffer is no longer
16809 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16811 * gst/vaapi/gstvaapipostproc.c:
16812 vaapipostproc: fix memory leaks with advanced deinterlacing.
16813 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
16814 of past buffers. Completely reset the deinterlace state, thus destroying
16815 any buffer currently held, on _start(), _stop() and _destroy().
16817 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16821 - GStreamer 1.2 APIs are supported ;
16822 - Video Processing (VA/VPP) features.
16824 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16827 README: update for GStreamer >= 1.0.x and VPP features.
16829 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16831 * gst-libs/gst/vaapi/glibcompat.h:
16832 * gst-libs/gst/vaapi/gstvaapicontext.h:
16833 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
16834 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
16835 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
16836 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
16837 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
16838 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
16839 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
16840 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
16841 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
16842 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16843 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
16844 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
16845 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
16846 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
16847 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
16848 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
16849 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
16850 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
16851 * gst-libs/gst/vaapi/gstvaapiimage.c:
16852 * gst-libs/gst/vaapi/gstvaapiimage.h:
16853 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
16854 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
16855 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
16856 * gst-libs/gst/vaapi/gstvaapiobject.c:
16857 * gst-libs/gst/vaapi/gstvaapiobject.h:
16858 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
16859 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16860 * gst-libs/gst/vaapi/gstvaapisurface.h:
16861 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
16862 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
16863 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
16864 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
16865 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
16866 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
16867 * gst-libs/gst/vaapi/gstvaapitexture.c:
16868 * gst-libs/gst/vaapi/gstvaapitexture.h:
16869 * gst-libs/gst/vaapi/gstvaapitypes.h:
16870 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
16871 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
16872 * gst-libs/gst/vaapi/gstvaapivalue.c:
16873 * gst-libs/gst/vaapi/gstvaapivalue.h:
16874 * gst-libs/gst/vaapi/gstvaapivideopool.c:
16875 * gst-libs/gst/vaapi/gstvaapivideopool.h:
16876 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
16877 * gst-libs/gst/vaapi/gstvaapiwindow.c:
16878 * gst-libs/gst/vaapi/gstvaapiwindow.h:
16879 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
16880 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
16881 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
16882 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
16883 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
16884 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
16885 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
16886 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
16887 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
16888 * gst/vaapi/gstvaapi.c:
16889 * gst/vaapi/gstvaapidecode.h:
16890 * gst/vaapi/gstvaapidownload.h:
16891 * gst/vaapi/gstvaapipluginutil.c:
16892 * gst/vaapi/gstvaapipluginutil.h:
16893 * gst/vaapi/gstvaapipostproc.h:
16894 * gst/vaapi/gstvaapisink.h:
16895 * gst/vaapi/gstvaapivideoconverter_glx.h:
16899 * tests/test-display.c:
16900 * tests/test-jpeg.c:
16901 * tests/test-jpeg.h:
16902 * tests/test-mpeg4.c:
16903 * tests/test-mpeg4.h:
16904 * tests/test-surfaces.c:
16905 * tests/test-windows.c:
16906 legal: update copyright notice dates.
16908 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16910 * gst-libs/gst/vaapi/glibcompat.h:
16911 * gst-libs/gst/vaapi/gstcompat.h:
16912 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
16913 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
16914 * gst-libs/gst/vaapi/gstvaapicompat.h:
16915 * gst-libs/gst/vaapi/gstvaapicontext.c:
16916 * gst-libs/gst/vaapi/gstvaapicontext.h:
16917 * gst-libs/gst/vaapi/gstvaapidebug.h:
16918 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16919 * gst-libs/gst/vaapi/gstvaapidecoder.h:
16920 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
16921 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
16922 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16923 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
16924 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16925 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
16926 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
16927 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
16928 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
16929 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
16930 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
16931 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
16932 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16933 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
16934 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
16935 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
16936 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
16937 * gst-libs/gst/vaapi/gstvaapidisplay.c:
16938 * gst-libs/gst/vaapi/gstvaapidisplay.h:
16939 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
16940 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
16941 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
16942 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
16943 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16944 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
16945 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
16946 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
16947 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
16948 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
16949 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
16950 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
16951 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
16952 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
16953 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
16954 * gst-libs/gst/vaapi/gstvaapifilter.c:
16955 * gst-libs/gst/vaapi/gstvaapifilter.h:
16956 * gst-libs/gst/vaapi/gstvaapiimage.c:
16957 * gst-libs/gst/vaapi/gstvaapiimage.h:
16958 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
16959 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
16960 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
16961 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
16962 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
16963 * gst-libs/gst/vaapi/gstvaapiobject.c:
16964 * gst-libs/gst/vaapi/gstvaapiobject.h:
16965 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
16966 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
16967 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
16968 * gst-libs/gst/vaapi/gstvaapipixmap.c:
16969 * gst-libs/gst/vaapi/gstvaapipixmap.h:
16970 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
16971 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
16972 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
16973 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16974 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16975 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
16976 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
16977 * gst-libs/gst/vaapi/gstvaapisurface.c:
16978 * gst-libs/gst/vaapi/gstvaapisurface.h:
16979 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
16980 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
16981 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
16982 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
16983 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
16984 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
16985 * gst-libs/gst/vaapi/gstvaapitexture.c:
16986 * gst-libs/gst/vaapi/gstvaapitexture.h:
16987 * gst-libs/gst/vaapi/gstvaapitypes.h:
16988 * gst-libs/gst/vaapi/gstvaapiutils.c:
16989 * gst-libs/gst/vaapi/gstvaapiutils.h:
16990 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
16991 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16992 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
16993 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
16994 * gst-libs/gst/vaapi/gstvaapivalue.c:
16995 * gst-libs/gst/vaapi/gstvaapivalue.h:
16996 * gst-libs/gst/vaapi/gstvaapivideopool.c:
16997 * gst-libs/gst/vaapi/gstvaapivideopool.h:
16998 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
16999 * gst-libs/gst/vaapi/gstvaapiwindow.c:
17000 * gst-libs/gst/vaapi/gstvaapiwindow.h:
17001 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
17002 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
17003 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
17004 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
17005 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17006 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17007 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
17008 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
17009 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
17010 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
17011 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
17012 * gst-libs/gst/vaapi/sysdeps.h:
17013 * gst-libs/gst/vaapi/video-format.c:
17014 * gst-libs/gst/vaapi/video-format.h:
17015 * gst/vaapi/gstvaapi.c:
17016 * gst/vaapi/gstvaapidecode.c:
17017 * gst/vaapi/gstvaapidecode.h:
17018 * gst/vaapi/gstvaapidownload.c:
17019 * gst/vaapi/gstvaapidownload.h:
17020 * gst/vaapi/gstvaapipluginutil.c:
17021 * gst/vaapi/gstvaapipluginutil.h:
17022 * gst/vaapi/gstvaapipostproc.c:
17023 * gst/vaapi/gstvaapipostproc.h:
17024 * gst/vaapi/gstvaapisink.c:
17025 * gst/vaapi/gstvaapisink.h:
17026 * gst/vaapi/gstvaapiupload.c:
17027 * gst/vaapi/gstvaapiupload.h:
17028 * gst/vaapi/gstvaapiuploader.c:
17029 * gst/vaapi/gstvaapiuploader.h:
17030 * gst/vaapi/gstvaapivideobuffer.c:
17031 * gst/vaapi/gstvaapivideobuffer.h:
17032 * gst/vaapi/gstvaapivideobufferpool.c:
17033 * gst/vaapi/gstvaapivideobufferpool.h:
17034 * gst/vaapi/gstvaapivideocontext.c:
17035 * gst/vaapi/gstvaapivideocontext.h:
17036 * gst/vaapi/gstvaapivideoconverter_glx.c:
17037 * gst/vaapi/gstvaapivideoconverter_glx.h:
17038 * gst/vaapi/gstvaapivideoconverter_x11.c:
17039 * gst/vaapi/gstvaapivideoconverter_x11.h:
17040 * gst/vaapi/gstvaapivideomemory.c:
17041 * gst/vaapi/gstvaapivideomemory.h:
17042 * gst/vaapi/gstvaapivideometa.c:
17043 * gst/vaapi/gstvaapivideometa.h:
17044 * gst/vaapi/gstvaapivideometa_texture.c:
17045 * gst/vaapi/gstvaapivideometa_texture.h:
17054 * tests/simple-decoder.c:
17055 * tests/test-decode.c:
17056 * tests/test-decode.h:
17057 * tests/test-display.c:
17058 * tests/test-filter.c:
17059 * tests/test-h264.c:
17060 * tests/test-h264.h:
17061 * tests/test-jpeg.c:
17062 * tests/test-jpeg.h:
17063 * tests/test-mpeg2.c:
17064 * tests/test-mpeg2.h:
17065 * tests/test-mpeg4.c:
17066 * tests/test-mpeg4.h:
17067 * tests/test-surfaces.c:
17068 * tests/test-textures.c:
17069 * tests/test-vc1.c:
17070 * tests/test-vc1.h:
17071 * tests/test-windows.c:
17072 legal: add per-file authorship information.
17073 Credit original authors on a per-file basis as we cannot expect people
17074 to know all country-specific rules, or bother browsing through the git
17077 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17083 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17088 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17090 * gst-libs/gst/vaapi/gstvaapidecoder.h:
17091 decoder: don't include obsolete headers.
17092 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
17093 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
17096 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17098 * gst/vaapi/Makefile.am:
17099 * gst/vaapi/gstvaapi.c:
17100 * gst/vaapi/gstvaapipostproc.c:
17101 vaapipostproc: add initial support for GStreamer 1.2.
17102 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
17103 right now so that to cope with auto-plugging issues/regressions. e.g.
17104 this happens when the correct set of expected caps are being exposed.
17105 This means that, currently, the proposed caps are not fully accurate.
17107 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
17109 * gst/vaapi/gstvaapipostproc.c:
17110 * gst/vaapi/gstvaapipostproc.h:
17111 vaapipostproc: add support for denoise and sharpen filters.
17112 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17114 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17116 * gst/vaapi/gstvaapipostproc.c:
17117 * gst/vaapi/gstvaapipostproc.h:
17118 vaapipostproc: add support for advanced deinterlacing.
17119 Add initial support for advanced deinterlacing. The history buffer
17120 size is arbitrarily set to 3 references for now.
17122 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17124 * gst/vaapi/gstvaapipostproc.c:
17125 vaapipostproc: fix deinterlacing with VPP.
17126 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
17127 for the first field. Render flags were supplied instead of the actual
17128 deinterlacing flags (deint_flags).
17130 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17132 * gst/vaapi/gstvaapipostproc.c:
17133 vaapipostproc: fix transform caps.
17134 Fix GstBaseTransform::transform_caps() implementation to always return
17135 the complete set of allowed sink pad caps (unfixated) even if the src
17136 pad caps we are getting are fixated. Rationale: there are just so many
17137 possible combinations, and it was wrong to provide a unique set anyway.
17138 As a side effect, this greatly simplifies the ability to derive src pad
17139 caps from fixated sink pad caps.
17141 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
17143 * docs/reference/libs/libs-sections.txt:
17144 * gst-libs/gst/vaapi/gstvaapifilter.c:
17145 * gst-libs/gst/vaapi/gstvaapifilter.h:
17146 filter: add helper to specify references for deinterlacing.
17147 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
17148 list of surfaces used for forward or backward reference in advanced
17149 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
17150 The list of surfaces used as deinterlacing references shall be live
17151 until the next call to gst_vaapi_filter_process().
17152 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17154 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17156 * gst-libs/gst/vaapi/gstvaapifilter.c:
17157 * gst-libs/gst/vaapi/gstvaapifilter.h:
17158 * gst-libs/gst/vaapi/gstvaapiutils.c:
17159 * gst/vaapi/gstvaapipostproc.c:
17160 * tests/test-filter.c:
17161 filter: fix semantics of deinterlacing flags.
17162 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
17163 flag is meant to specify the organization of reference frames used in
17164 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
17165 to specify that the top-field of the supplied input surface is to be
17166 used for deinterlacing. Conversely, if not set, this means that the
17167 bottom field of the supplied input surface will be used instead.
17169 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17171 * docs/reference/libs/libs-sections.txt:
17172 * gst-libs/gst/vaapi/gstvaapifilter.c:
17173 * gst-libs/gst/vaapi/gstvaapifilter.h:
17174 filter: add helpers to check for supported/active operation.
17175 Add a couple of helper functions:
17176 - gst_vaapi_filter_has_operation(): checks whether the VA driver
17177 advertises support for the supplied operation ;
17178 - gst_vaapi_filter_use_operation(): checks whether the supplied
17179 operation was already enabled to its non-default value.
17181 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17183 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
17184 libs: fix GstVaapiSurfaceProxy destroy notify call site.
17185 The user-defined destroy notify function is meant to be called only when
17186 the surface proxy was fully released, i.e. once it actually released the
17187 VA surface back to the underlying pool.
17189 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
17191 * gst-libs/gst/vaapi/gstvaapivideopool.c:
17192 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
17193 libs: make GstVaapiVideoPool thread-safe.
17194 https://bugzilla.gnome.org/show_bug.cgi?id=707108
17195 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17197 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
17199 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17200 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
17201 libs: robustify decoder objects and surface proxy initialization.
17202 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
17203 sequences to have the expected default values set beforehand in case of an
17204 error raising up further during creation. i.e. make it possible to cleanly
17205 destroy those partially initialized objects.
17206 https://bugzilla.gnome.org/show_bug.cgi?id=707108
17207 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17209 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17211 * gst/vaapi/gstvaapidecode.c:
17212 vaapidecode: fix decoder flush.
17213 There are situations where gst_video_decoder_flush() is called, and
17214 this subsequently produces a gst_video_decoder_reset() that kills the
17215 currently active GstVideoCodecFrame. This means that it no longer
17216 exists by the time we reach GstVideoDecoder::finish() callback, thus
17217 possibly resulting in a crash if we assumed spare data was still
17218 available for decode (current_frame_size > 0).
17219 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
17220 that means a flush, thus performing the actual operations there like
17221 calling gst_video_decoder_have_frame() if pending data is available.
17223 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17225 * gst/vaapi/gstvaapidecode.c:
17226 * gst/vaapi/gstvaapidecode.h:
17227 vaapidecode: fix dead-locks with decoder task.
17228 Review all interactions between the main video decoder stream thread
17229 and the decode task to derive a correct sequence of operations for
17230 decoding. Also avoid extra atomic operations that become implicit under
17231 the GstVideoDecoder stream lock.
17233 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
17235 * gst/vaapi/gstvaapidecode.c:
17236 vaapidecode: fix hard reset for seek cases.
17237 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
17238 and completely purge any decoded output frame that may come out from
17239 it. At this stage, the GstVaapiDecoder shall be in a complete clean
17240 state to start decoding over new buffers.
17241 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17243 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
17245 * gst/vaapi/gstvaapidecode.c:
17246 * gst/vaapi/gstvaapidecode.h:
17247 vaapidecode: drop decode timeout, always wait for a free surface.
17248 vaapidecode used to wait up to one second past the expected time of
17249 presentation for the last decoded frame. This is not realistic in
17250 practice when it comes to video pause/resume. Changed behaviour to
17251 unconditionnally wait for a free VA surface prior to continuing the
17252 decoding. The decode task will continue pushing the output frames to
17253 the downstream element while also reporting errors at the same time
17254 to the main thread.
17255 https://bugzilla.gnome.org/show_bug.cgi?id=707108
17256 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17258 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17260 * gst/vaapi/gstvaapidecode.c:
17261 vaapidecode: fix srcpad caps for GStreamer 1.2.
17262 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
17263 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
17264 that it relied on possibly un-initialized data. Fix srcpad caps to be
17265 initialized from a sanitized copy of GstVideoDecoder output state caps.
17266 Note: the correct way to expose the srcpad caps triggers an additional
17267 issue in core GStreamer auto-plugging capabilities as the correct caps
17268 to be exposed should be format=ENCODED with memory:VASurface caps feature
17269 at the minimum. In some situations, we could determine the underlying
17270 VA surface format, but this is not always possible. e.g. cases where it
17271 is not allowed to expose the underlying VA surface data, or when the
17272 VA driver implementation cannot actually provide such information.
17274 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17276 * gst/vaapi/gstvaapidecode.c:
17277 * gst/vaapi/gstvaapisink.c:
17278 plugins: streamline VA formats exposed in caps to a realistic set.
17279 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
17280 output formats for GStreamer 1.2 in caps to a realistic subset. This
17281 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
17282 underlying VA surface format, or if it is actually not allowed to get
17283 access to the surface contents.
17285 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17287 * gst/vaapi/gstvaapidecode.c:
17288 * gst/vaapi/gstvaapisink.c:
17289 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
17290 Fix vaapidecode srcpad caps to only expose RGBA video format for the
17291 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
17292 so far. Besides, drop this meta from the vaapisink sinkpad caps since
17293 we really don't support that for rendering.
17294 https://bugzilla.gnome.org/show_bug.cgi?id=711828
17296 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17299 configure: automatically detect GStreamer API version.
17300 Automatically detect GStreamer API version. The --with-gstreamer-api
17301 configure option now defaults to "autodetect" and configure then tries
17302 to derive the GStreamer API version from the highest version based on
17303 what pkg-config --modversion would report.
17304 https://bugzilla.gnome.org/show_bug.cgi?id=711657
17306 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
17308 * gst/vaapi/gstvaapipostproc.c:
17309 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
17310 Fix raw YUV data uploaded as in the following pipeline:
17311 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
17312 The main reason why it failed was that the videoparse element simply
17313 allocates GstBuffer with raw data chunk'ed off the sink pad without
17314 any prior knowledge of the actual frame info. i.e. it basically just
17315 calls gst_adapter_take_buffer().
17316 We could avoid the extra copy performed in vaapipostproc if the videoparse
17317 element was aware of the downstream pool and bothers copying line by
17318 line, for each plane. This means that, for a single frame per buffer,
17319 the optimizatin will be to allocate the video buffer downstream, map
17320 it, and copy each line that is coming through until we need to fills
17321 in the successive planes.
17322 Still, optimized raw YUV uploads already worked with the following:
17323 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
17324 https://bugzilla.gnome.org/show_bug.cgi?id=711250
17325 [clean-ups, fixed error cases to unmap and unref outbuf]
17326 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17328 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17330 * gst/vaapi/gstvaapipostproc.c:
17331 vaapipostproc: try to downgrade deinterlace-method when needed.
17332 If the currently selected deinterlacing method is not supported by the
17333 underlying hardware, then try to downgrade the method to a supported one.
17334 At the minimum, basic bob-deinterlacing shall always be supported.
17336 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17338 * gst/vaapi/gstvaapipostproc.c:
17339 vaapipostproc: add initial support for deinterlacing with VPP.
17340 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
17341 this only covers bob-deinterlacing when the output pixel format is
17344 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17346 * gst/vaapi/gstvaapipostproc.c:
17347 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
17348 The size argument for GstBaseTransform::transform_size() hook is a
17349 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
17351 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17353 * gst/vaapi/gstvaapipostproc.c:
17354 * gst/vaapi/gstvaapipostproc.h:
17355 vaapipostproc: add initial support for scaling.
17356 Add initial support for basic scaling with size specified through the
17357 "width" and "height" properties. If either user-provided dimension is
17358 zero and "force-aspect-ratio" is set to true (the default), then the
17359 other dimension is scaled to preserve the aspect ratio.
17361 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17363 * gst/vaapi/gstvaapipostproc.c:
17364 * gst/vaapi/gstvaapipostproc.h:
17365 vaapipostproc: add initial support for color conversion.
17366 If VPP is available, we always try to implicitly convert the source
17367 buffer to the "native" surface format for the underlying accelerator.
17368 This means that no optimization is performed yet to propagate raw YUV
17369 buffers to the downstream element as is, if VPP is available. i.e. it
17370 will always cause a color conversion.
17372 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17374 * gst/vaapi/gstvaapipostproc.c:
17375 vaapipostproc: fix bug when user disabled deinterlacing.
17376 Fix pipeline error / hang when the user disabled deinterlacing through
17377 the deinterlace-mode=disabled property setting.
17379 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17381 * gst/vaapi/gstvaapipostproc.c:
17382 * gst/vaapi/gstvaapipostproc.h:
17383 vaapipostproc: factor out operations to be applied into flags.
17384 Even if we only support deinterlacing for now, use flags to specify
17385 which filters are to be applied to each frame we receive in transform().
17386 This is preparatory work for integrating new filters.
17388 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17390 * gst/vaapi/gstvaapipostproc.c:
17391 * gst/vaapi/gstvaapipostproc.h:
17392 vaapipostproc: add support for raw YUV video source buffers.
17393 Allow video processing from raw YUV buffers coming from the sink pad,
17394 while still producing a VA surface for the downstream elements.
17396 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17398 * gst/vaapi/gstvaapipluginutil.c:
17399 * gst/vaapi/gstvaapipluginutil.h:
17400 * gst/vaapi/gstvaapipostproc.c:
17401 vaapipostproc: add support for "mixed" interlace mode.
17402 Add support for "mixed" interlace-mode, whereby the video frame buffer
17403 shall be deinterlaced only if its flags mention that's actually an
17404 interlaced frame buffer.
17406 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17408 * gst-libs/gst/vaapi/gstcompat.h:
17409 * gst/vaapi/gstvaapipostproc.c:
17410 * gst/vaapi/gstvaapipostproc.h:
17411 * gst/vaapi/gstvaapivideobuffer.c:
17412 * gst/vaapi/gstvaapivideobuffer.h:
17413 vaapipostproc: rework plug-in element.
17414 Rewrite the vaapipostproc plug-in element so that it derives from
17415 GstBaseTransform, thus simplifying the caps negotiation process.
17417 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17419 * gst/vaapi/gstvaapivideobufferpool.c:
17420 * gst/vaapi/gstvaapivideomemory.c:
17421 * gst/vaapi/gstvaapivideomemory.h:
17422 plugins: fix and optimize check for buffer pool allocator params.
17423 Reset the buffer pool allocator only if the config caps changed in a
17424 sensible way: format or resolution change. i.e. don't bother with
17425 other caps like colorimetry et al. as this doesn't affect the way to
17426 allocate VA surfaces or images.
17428 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17430 * gst/vaapi/gstvaapivideomemory.c:
17431 plugins: enable memory maps for read & write with direct-rendering.
17432 Enable read and write mappings only if direct-rendering is supported.
17433 Otherwise, this means that we may need to download data from the VA
17434 surface first for correctness, even if the VA surface doesn't need to
17435 be read at all. i.e. sometimes, READWRITE mappings are meant for
17436 surfaces that are written to first, and read afterwards for further
17438 https://bugzilla.gnome.org/show_bug.cgi?id=704078
17440 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17442 * gst/vaapi/gstvaapivideomemory.c:
17443 plugins: fix check for direct-rendering support.
17444 Fix check for direct-rendering if the creation of VA surfaces with
17445 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
17446 that we tried to allocate a VA surface based on the corresponding
17447 chroma type. i.e. in that particular case, we have to make sure that
17448 the derived image has actually the expected format.
17450 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17452 * gst/vaapi/gstvaapivideobufferpool.c:
17453 * gst/vaapi/gstvaapivideomemory.c:
17454 * gst/vaapi/gstvaapivideomemory.h:
17455 plugins: fix buffer pool reset_buffer() to reset memory resources.
17456 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
17457 memory resources, and more particularly the VA surface proxy. Most
17458 importantly, the GstVaapiVideoMeta is retained. Cached surface in
17459 memory are released, thus triggering a new allocation the next time
17460 we need to map the buffer.
17462 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17464 * gst/vaapi/gstvaapivideomemory.c:
17465 * gst/vaapi/gstvaapivideomemory.h:
17466 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
17467 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
17468 pool stored in the parent VA memory allocator.
17469 This fixes the following scenario:
17470 - VA video buffer 1 is allocated from a buffer pool
17471 - Another video buffer is created, and inherits info from buffer 1
17472 - Buffer 1 is released, thus pushing it back to the buffer pool
17473 - New buffer alloc request comes it, this yields buffer 1 back
17474 - At this stage, buffers 1 and 2 still share the same underlying VA
17475 surface, but buffer 2 was already submitted downstream for further
17476 processing, thus conflicting with additional processing we were
17477 about to perform on buffer 1.
17478 Maybe the core GstBufferPool implementation should have been fixed
17479 instead to actually make sure that the returned GstBuffer memory we
17480 found from the pool is writable?
17482 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17484 * gst/vaapi/gstvaapiuploader.c:
17485 plugins: create a proxy for GstVaapiUploader allocated buffers.
17486 Always make sure to allocate a VA surface proxy for GstVaapiUploader
17487 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
17489 This fixes cases where we want to retain the underlying surface longer,
17490 instead of releasing it back to the surface pool right away.
17492 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17494 * gst/vaapi/gstvaapidecode.c:
17495 * gst/vaapi/gstvaapipluginutil.c:
17496 * gst/vaapi/gstvaapipluginutil.h:
17497 * gst/vaapi/gstvaapipostproc.c:
17498 plugins: add helper function to disable deinterlacing in caps.
17499 Add gst_caps_set_interlaced() helper function that would reset the
17500 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
17501 interlaced field to "false" for GStreamer 0.10.
17503 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17505 * gst-libs/gst/vaapi/gstvaapifilter.c:
17506 filter: fix memory leak of VPP operations.
17507 Fix ensure_operations() to release the VPP operations array if non
17508 NULL, prior to returning to the caller. The former function was also
17509 renamed to a more meaningful get_operations() since the caller owns
17510 the returned array that needs to be released.
17512 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
17514 * gst-libs/gst/vaapi/gstvaapifilter.c:
17515 filter: fix first-time operation lookup.
17516 Fix first-time operation lookup through find_operation() if the set
17517 of supported operations was not initially determined through the
17518 gst_vaapi_filter_get_operations() helper function.
17519 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17521 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
17523 * gst-libs/gst/vaapi/gstvaapifilter.c:
17524 filter: fix colorbalance related subtypes.
17525 Fix intiialization of GstVaapiFilterOpData for colorbalance related
17526 operations. In particular, fill in the va_subtype field accordingly.
17527 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17529 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17531 * gst-libs/gst/vaapi/gstvaapifilter.c:
17532 filter: fix VA-API 0.34.0 symbol guards.
17533 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
17534 that need to be guarded for libva 0.34 and 0.33, respectively.
17535 https://bugzilla.gnome.org/show_bug.cgi?id=709102
17536 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17538 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17540 * gst/vaapi/gstvaapidecode.c:
17541 * gst/vaapi/gstvaapipluginutil.c:
17542 * gst/vaapi/gstvaapisink.c:
17543 plugins: hanle the context query in any pad.
17544 Also this patch simplifies the code, since now the query is common for the
17545 decoder and the sink.
17546 https://bugzilla.gnome.org/show_bug.cgi?id=709200
17548 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17550 * gst/vaapi/gstvaapivideocontext.c:
17551 plugins: query upstream element for a GstContext.
17552 Fix gst_vaapi_video_context_prepare() to also query upstream elements
17553 for a valid GstContext. Improve comments regarding the steps used to
17554 lookup or build that context, thus conforming to the GstContext API
17556 https://bugzilla.gnome.org/show_bug.cgi?id=709112
17557 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17559 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17562 * debian.upstream/control.in:
17563 Fix detection and packaging of GStreamer 1.2.x builds.
17564 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
17565 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
17566 purposes, update the versioning to -1.2 suffix instead.
17568 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17570 * gst/vaapi/Makefile.am:
17571 * gst/vaapi/gstvaapidecode.c:
17572 * gst/vaapi/gstvaapidecode.h:
17573 * gst/vaapi/gstvaapisink.c:
17574 * gst/vaapi/gstvaapivideometa_texture.c:
17575 * gst/vaapi/gstvaapivideometa_texture.h:
17576 plugins: add support for GstVideoGLTextureUploadMeta.
17577 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
17578 requested, and more specifically under a GLX configuration, then add
17579 the GstVideoGLTextureUploadMeta to the output buffer.
17580 https://bugzilla.gnome.org/show_bug.cgi?id=703236
17581 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17583 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17585 * gst/vaapi/gstvaapidecode.c:
17586 * gst/vaapi/gstvaapisink.c:
17587 * gst/vaapi/gstvaapivideomemory.h:
17588 plugins: add support for GstCaps features.
17589 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
17590 as expressed in caps, to the more standard use of caps features. i.e.
17591 add "memory:VASurface" feature attribute to the associated caps.
17592 https://bugzilla.gnome.org/show_bug.cgi?id=703271
17593 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17595 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17597 * gst/vaapi/gstvaapidecode.c:
17598 * gst/vaapi/gstvaapisink.c:
17599 plugins: improve ::query() debugging messages.
17600 Fix gst_vaapidecode_query() to correctly display the query type name,
17601 instead of randomly displaying that we shared the underlying display.
17602 Also add debug info for the GstVaapiSink::query() handler, i.e. the
17603 supplied query type name actually.
17604 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17606 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17608 * gst/vaapi/gstvaapidecode.c:
17609 * gst/vaapi/gstvaapisink.c:
17610 plugins: add support for GstContext API.
17611 Add support for the new GstContext API from GStreamer 1.2.x.
17612 - implement the GstElement::set_context() hook ;
17613 - reply to the `context' query from downstream elements.
17614 https://bugzilla.gnome.org/show_bug.cgi?id=703235
17615 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17617 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17619 * gst/vaapi/Makefile.am:
17620 * gst/vaapi/gstvaapipluginutil.c:
17621 * gst/vaapi/gstvaapivideocontext.c:
17622 * gst/vaapi/gstvaapivideocontext.h:
17623 plugins: add compat layer for GstVideoContext.
17624 Add thin compatibility layer for the deprecated GstVideoContext API.
17625 For GStreamer API >= 1.2, this involves the following two functions:
17626 - gst_vaapi_video_context_prepare(): queries if a context is already
17627 set in the pipeline ;
17628 - gst_vaapi_video_context_propagate(): propagates the newly-created
17629 context to the rest of the pipeline.
17630 https://bugzilla.gnome.org/show_bug.cgi?id=703235
17631 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17633 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17636 * gst/vaapi/Makefile.am:
17637 * gst/vaapi/gstvaapi.c:
17638 * gst/vaapi/gstvaapidecode.c:
17639 * gst/vaapi/gstvaapipluginutil.c:
17640 * gst/vaapi/gstvaapisink.c:
17641 * gst/vaapi/gstvaapivideobuffer.c:
17642 plugins: initial port to GStreamer 1.2.
17643 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
17644 is rather minimalistic so that to test the basic functionality.
17645 Disable vaapipostproc plugin for now as further polishing is needed.
17646 Also disable GstVideoContext interface support since this API is now
17647 gone in 1.2.x. This is preparatory work for GstContext support.
17648 https://bugzilla.gnome.org/show_bug.cgi?id=703235
17649 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17651 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17653 * tests/simple-decoder.c:
17654 tests: simple-decoder: fix for non-X11 backends.
17655 Don't try to create pixmaps if we have not requested that feature. This
17656 fixes execution for non-X11 backends, and most specifically DRM video
17659 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17661 * ext/codecparsers:
17662 codecparsers: update to gst-vaapi-branch commit b33bd32.
17663 b33bd32 jpeg: fix and optimize scan for next marker code
17665 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17667 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17668 jpeg: fix calculation of MCU count.
17669 Fix calculation of MCU count for image sizes that are not a multiple
17670 of 8 pixels in either dimension, but also for non-common sampling
17671 factors like 4:2:2 in non-interleaved mode.
17673 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17675 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17676 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17677 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17678 jpeg: add support for multiscan images.
17679 Add support for images with multiple scans per frame. The Huffman table
17680 can be updated before SOS, and thus possibly requiring multiple uploads
17681 of Huffman tables to the VA driver. So, the latter must be able to cope
17682 with multiple VA buffers of type 'huffman-table' and with the correct
17685 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17687 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17688 jpeg: improve robustness when packets are missing.
17689 Improve robustness when some expected packets where not received yet
17690 or that were not correctly decoded. For example, don't try to decode
17691 a picture if there was no valid frame headers.
17693 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17695 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17696 jpeg: minor clean-ups.
17697 Improve debugging and error messages. Rename a few variables to fit the
17698 existing naming conventions. Change some fatal asserts to non-fatal
17701 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17703 * gst-libs/gst/vaapi/gstvaapidecoder.c:
17704 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17705 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
17706 jpeg: rework and optimize parser.
17707 Split the input buffer data into decoder units that represent a JPEG
17708 segment. Handle scan decoder unit specifically so that it can include
17709 both the scan header (SOS) but also any other ECS or RSTi segment.
17710 That way, we parse the input buffer stream only once at the gst-vaapi
17711 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
17712 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
17713 determine segment boundaries and decode them.
17714 In practice, this is a +15 to +25% performance improvement.
17716 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
17718 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17719 jpeg: handle comment segments.
17720 Fix decode_buffer() function to gracefully skip comment (COM) segments.
17721 This fixes decoding of streams generated by certain cameras, e.g. like
17722 the Logitech Pro C920.
17723 https://bugzilla.gnome.org/show_bug.cgi?id=708208
17724 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
17726 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17728 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17729 jpeg: fix determination of image bounds.
17730 Look for the exact image bounds characterised by the <SOI> and <EOI>
17731 markers. Use the gst_jpeg_parse() codec parser utility function to
17732 optimize the lookup for the next marker segment.
17733 https://bugzilla.gnome.org/show_bug.cgi?id=707447
17735 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
17737 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17738 jpeg: fix calculation of offset to next marker segment.
17739 Fix calculation of the offset to the next marker segment since the
17740 correction of the codecparser part to match the API specification.
17741 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
17742 of the segment minus any marker prefix.
17743 https://bugzilla.gnome.org/show_bug.cgi?id=707447
17744 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
17746 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17748 * ext/codecparsers:
17749 codecparsers: update to gst-vaapi-branch commit 23c7dde.
17750 23c7dde jpeg: fix calculation of segment size
17752 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17755 Bump version for development.
17757 === release 0.5.6 ===
17759 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17765 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17770 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
17773 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17774 configure: fix detection of VA/JPEG decoding API.
17775 Fix detection of VA/JPEG decoding API with non-standard libva packages.
17776 More precisely, some packages were shipping with a <va/va.h> header that
17777 did not include <va/va_dec_jpeg.h>.
17778 https://bugzilla.gnome.org/show_bug.cgi?id=706055
17779 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17781 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
17783 * gst/vaapi/gstvaapisink.c:
17784 vaapisink: ensure the uploader is setup for upstream allocated buffers.
17785 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
17786 is setup in case upstream elements allocate buffers themselves without
17787 honouring our GstVaapiSink::bufer_alloc() hook.
17788 In particular, this fixes support for OGG video streams with WebKit.
17789 https://bugzilla.gnome.org/show_bug.cgi?id=703934
17790 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17792 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17794 * gst/vaapi/gstvaapisink.c:
17795 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
17796 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
17799 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17801 * gst/vaapi/gstvaapisink.c:
17802 * gst/vaapi/gstvaapisink.h:
17803 vaapisink: handle raw buffers not created from VA video buffer pool.
17804 Handle raw video buffers that were not created from a VA video buffer
17805 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
17806 builds instead of the GstVaapiUploader.
17807 https://bugs.freedesktop.org/show_bug.cgi?id=55818
17809 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17811 * gst/vaapi/gstvaapidecode.c:
17812 vaapidecode: remove extraneous size information from allowed caps.
17813 Fix _getcaps() implementation to not report codecs with size information
17814 filled in the returned caps. That's totally useless nowadays. Ideally,
17815 this is a hint to insert a video parser element, thus allowing future
17816 optimizations, but this is not a strict requirement for gstreamer-vaapi,
17817 which is able to parse the elementary bitstreams itself.
17818 https://bugzilla.gnome.org/show_bug.cgi?id=704734
17820 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
17822 * gst/vaapi/gstvaapidecode.c:
17823 * gst/vaapi/gstvaapidecode.h:
17824 vaapidecode: submit the last frame from output adapter to decoder.
17825 If there is no frame delimiter at the end of the stream, e.g. no
17826 end-of-stream or end-of-sequence marker, and that the current frame
17827 was fully parsed correctly, then assume that last frame is complete
17828 and submit it to the decoder.
17829 https://bugzilla.gnome.org/show_bug.cgi?id=705123
17830 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
17831 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17833 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17835 * gst/vaapi/gstvaapidecode.c:
17836 * gst/vaapi/gstvaapidecode.h:
17837 vaapidecode: push all decoded frames from within the task.
17838 Make sure to push all decoded frames from the task so that the unlying
17839 VA surfaces could all be rendered from the same thread.
17841 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17843 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17844 wayland: render the raw surface if VPP failed.
17845 As a last resort, if video processing capabilities (VPP) are not available,
17846 or they did not produce anything conclusive enough, then try to fallback to
17847 the original rendering code path whereby the whole VA surface is rendered
17848 as is, no matter of video cropping or deinterlacing requests.
17849 Note: under those conditions, the visual outcome won't be correct but at
17850 least, something gets displayed instead of bailing out.
17852 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17854 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17855 wayland: add supporting for video processing.
17856 Try to use VA/VPP processing capabilities to handle video cropping and
17857 additional rendering flags that may not be directly supported by the
17858 underlying hardware when exposing a suitable Wayland buffer for the
17859 supplied VA surface. e.g. deinterlacing, different color primaries than
17862 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17864 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17865 wayland: add new frame redraw infrastructure.
17866 Update the frame redraw infrastructure with a new FrameState stucture
17867 holds all the necessary information used to display the next pending
17869 While we are at it, delay the sync operation down to when it is actually
17870 needed. That way, we keep performing additional tasks meanwhile.
17872 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17874 * docs/reference/libs/libs-sections.txt:
17875 * gst-libs/gst/vaapi/gstvaapifilter.c:
17876 * gst-libs/gst/vaapi/gstvaapifilter.h:
17877 filter: allow specification of render target regions.
17878 Add support for rendering the source surface to a particular region within
17879 the supplied target surface. The default background color is black.
17881 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17883 * gst/vaapi/gstvaapivideobuffer.c:
17884 decode: fix creation of GLX video buffers for GStreamer 0.10.
17885 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
17886 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
17888 This fixes support for cluttersink with GStreamer 0.10 builds.
17890 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17892 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17893 mpeg2: disable video cropping as picture_display_extension() is missing.
17894 Disable video cropping in MPEG-2 codec because it is partially implemented
17895 and actually because nobody implements it that way, and the standard spec
17896 does not specify the display process either anyway.
17897 Most notably, there are two possible use cases for sequence_display_extension()
17898 horizontal_display_size & vertical_display_size: (i) guesstimating the
17899 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
17900 in conjunction with picture_display_extension() information.
17901 https://bugzilla.gnome.org/show_bug.cgi?id=704848
17903 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17905 * gst/vaapi/gstvaapisink.c:
17906 * gst/vaapi/gstvaapisink.h:
17907 vaapisink: allow scaling to ignore aspect ratio.
17908 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
17909 which allows you to say that you don't want the sink to respect aspect
17910 ratio. Add the same property to vaapisink.
17911 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
17912 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
17914 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
17916 * gst/vaapi/gstvaapisink.c:
17917 vaapisink: fix memory leak of GstVaapiUploader instance.
17918 Make sure gst_vaapisink_ensure_uploader() checks for the existence
17919 of a former GstVaapiUploader instance prior to forcibly creating a
17921 https://bugzilla.gnome.org/show_bug.cgi?id=703980
17923 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
17925 * gst/vaapi/gstvaapisink.c:
17926 vaapisink: fix get_caps() implementation for GStreamer 1.0.
17927 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
17928 by honouring the filter caps argument. More precisely, this fixes the
17929 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
17930 https://bugzilla.gnome.org/show_bug.cgi?id=705192
17931 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
17932 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17934 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17936 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
17937 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
17938 This fixes the following issue:
17939 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
17940 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
17941 'GstVaapiDecoderMpeg4Class'
17942 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
17943 'GstVaapiDecoderMpeg4Class' was here
17944 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
17945 make[5]: Leaving directory
17946 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
17947 https://bugzilla.gnome.org/show_bug.cgi?id=705148
17949 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17951 * tests/test-filter.c:
17952 tests: filter: add support for deinterlacing.
17953 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
17954 deinterlacing filter. However, if --deinterlace option is not set but the
17955 --deinterlace-flags option is set with "top-field-first", then the very
17956 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
17958 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
17960 * tests/test-filter.c:
17961 tests: filter: add support for denoising and sharpening.
17962 Add --denoise option to enable noise reduction with the level specified
17963 as the option value (float). Likewise, add --sharpen option to enable
17965 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17967 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17969 * tests/test-filter.c:
17970 tests: filter: add support for frame cropping.
17971 Add support for frame cropping through the --crop-rect|-c argument.
17972 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
17973 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
17975 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17977 * tests/test-filter.c:
17978 tests: filter: dump supported operations and formats.
17980 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
17982 * tests/Makefile.am:
17983 * tests/test-filter.c:
17984 tests: add initial test for video processing.
17985 Add minimal test case for video processing: scaling and color format
17987 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17989 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
17991 * docs/reference/libs/libs-sections.txt:
17992 * gst-libs/gst/vaapi/gstvaapifilter.c:
17993 * gst-libs/gst/vaapi/gstvaapifilter.h:
17994 * gst-libs/gst/vaapi/gstvaapiutils.c:
17995 * gst-libs/gst/vaapi/gstvaapiutils.h:
17996 * gst/vaapi/gstvaapipostproc.c:
17997 * gst/vaapi/gstvaapipostproc.h:
17998 filter: add initial support for deinterlacing.
17999 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
18000 the selected field from the input surface is kept for the target surface.
18001 Setting gst_vaapi_filter_set_deinterlacing() method argument to
18002 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
18003 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
18004 to libgstvaapi core library.
18005 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18007 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
18009 * docs/reference/libs/libs-sections.txt:
18010 * gst-libs/gst/vaapi/gstvaapifilter.c:
18011 * gst-libs/gst/vaapi/gstvaapifilter.h:
18012 filter: add support for color balance adjustment.
18013 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
18014 and contrast. The respective range for each filter shall be the same as
18015 for the VA display attributes.
18016 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18018 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
18020 * docs/reference/libs/libs-sections.txt:
18021 * gst-libs/gst/vaapi/gstvaapifilter.c:
18022 * gst-libs/gst/vaapi/gstvaapifilter.h:
18023 filter: add support for sharpening.
18024 Sharpening is configured with a float value. The supported range is
18025 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
18027 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18029 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
18031 * docs/reference/libs/libs-sections.txt:
18032 * gst-libs/gst/vaapi/gstvaapifilter.c:
18033 * gst-libs/gst/vaapi/gstvaapifilter.h:
18034 filter: add support for denoising.
18035 Noise reduction is configured with a float value. The supported range
18036 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
18038 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18040 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18042 * docs/reference/libs/libs-sections.txt:
18043 * gst-libs/gst/vaapi/gstvaapifilter.c:
18044 * gst-libs/gst/vaapi/gstvaapifilter.h:
18045 filter: add support for frame cropping.
18046 Frame cropping is defined with a GstVaapiRectangle value. The default
18047 behaviour is to treat the source surface as a whole
18049 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18051 * gst-libs/gst/vaapi/gstvaapifilter.c:
18052 filter: add helper functions.
18053 Add helper functions to ensure an operation VA buffer is allocated to
18054 the right size; that filter caps get parsed and assigned to the right
18055 operation too; and that float parameters are correctly scaled to fit
18056 the reported range from the VA driver.
18058 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18061 * docs/reference/libs/libs-docs.xml.in:
18062 * docs/reference/libs/libs-sections.txt:
18063 * gst-libs/gst/vaapi/Makefile.am:
18064 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18065 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
18066 * gst-libs/gst/vaapi/gstvaapifilter.c:
18067 * gst-libs/gst/vaapi/gstvaapifilter.h:
18068 Add initial infrastructure for video processing.
18069 Add initial API for video processing: only scaling and color format
18070 conversion operations are supported.
18072 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18074 * gst-libs/gst/vaapi/video-format.c:
18075 * gst-libs/gst/vaapi/video-format.h:
18076 libs: add gst_vaapi_video_format_from_string() helper.
18077 Add gst_vaapi_video_format_from_string() helper function to convert from
18078 a video format string representation to a suitable GstVideoFormat. This
18079 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
18080 builds, and a proper iteration over all GstVideoFormat string representations
18081 otherwise for earlier GStreamer 0.10.x builds.
18083 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18085 * gst-libs/gst/vaapi/video-format.c:
18086 * gst-libs/gst/vaapi/video-format.h:
18087 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
18088 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
18089 VA fourcc value to a suitable GstVideoFormat.
18091 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18093 * gst-libs/gst/vaapi/gstvaapivalue.c:
18094 * gst-libs/gst/vaapi/gstvaapivalue.h:
18095 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
18096 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
18097 structures as a standard GType. This could be useful to have them
18098 described as a GValue later on.
18100 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18102 * docs/reference/libs/libs-docs.xml.in:
18103 * docs/reference/libs/libs-sections.txt:
18104 * gst-libs/gst/vaapi/Makefile.am:
18105 * gst-libs/gst/vaapi/gstvaapicontext.h:
18106 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
18107 libs: drop some public APIs.
18108 Don't expose GstVaapiContext APIs and make them totally private to
18109 libgstvaapi core library. That API would also tend to disappear in
18110 a future revision. Likewise, don't expose GstVaapiDisplayCache API
18111 but keep symbols visible so that the various render backends could
18112 share a common display cache implementation in libgstvaapi.
18113 Try to clean-up the documentation from any stale entry too.
18115 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18119 tests: image: allow creation of images with interleaved patterns.
18120 Add image_generate_full() function to create interleaved color rectangles.
18121 If flags is zero, the whole frame is generated with a unique pattern. If
18122 flags is non-zero, then each field is handled individually.
18124 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18127 tests: image: fix conversion from RGB to YUV.
18128 Fix RGB to YUV conversion to preserve full data range.
18130 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18133 tests: image: try to upload images through vaDeriveImage() too.
18134 On some platforms, vaPutImage() would fail even if it does not involve
18135 color format conversion or scaling, whereas copying raw pixels through
18136 vaDeriveImage() could work instead.
18138 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18141 tests: image: add support for packed YUV formats.
18142 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
18144 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18147 tests: image: fix generation of I420/YV12 images.
18148 U/V planes were reversed, thus producing invalid images.
18150 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18153 tests: image: fix string representation for GstVideoFormat.
18155 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18157 * docs/reference/libs/libs-sections.txt:
18158 * gst-libs/gst/vaapi/Makefile.am:
18159 * gst-libs/gst/vaapi/gstvaapiimage.c:
18160 * gst-libs/gst/vaapi/gstvaapiimage.h:
18161 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
18162 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18163 * gst-libs/gst/vaapi/gstvaapisurface.c:
18164 image: clean image API up.
18165 Don't expose functions that reference a GstVaapiImageRaw, those are
18166 meant to be internal only for implementing subpictures sync. Also add
18167 a few private definitions to avoid functions calls for retrieving
18168 image size and format information.
18170 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18172 * docs/reference/libs/libs-sections.txt:
18173 * gst-libs/gst/vaapi/gstvaapiimage.c:
18174 * gst-libs/gst/vaapi/gstvaapiimage.h:
18175 image: add gst_vaapi_image_copy() helper.
18176 Add gst_vaapi_image_copy() helper function to copy images of same format
18179 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18181 * gst/vaapi/gstvaapivideoconverter_x11.c:
18182 plugins: handle video cropping in X11 pixmap converter.
18183 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
18184 we could decode from the stream.
18186 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18188 * gst/vaapi/Makefile.am:
18189 * gst/vaapi/gstvaapivideobuffer.c:
18190 * gst/vaapi/gstvaapivideoconverter_glx.c:
18191 * gst/vaapi/gstvaapivideoconverter_x11.c:
18192 * gst/vaapi/gstvaapivideoconverter_x11.h:
18193 plugins: add support for "x11-pixmap" video converter type.
18194 Install a new video converter that supports X11 pixmap targets for X11
18195 backends only, or make the GLX converter creation function chain up to
18196 the X11 converter whenever requested.
18198 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18200 * tests/simple-decoder.c:
18201 tests: simple-decoder: add support for pixmap API.
18202 Add support for the new render-to-pixmap API. Avoid flickering on
18203 platforms supporting video overlay by keeping up to 2 intermediate
18206 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18208 * tests/simple-decoder.c:
18209 tests: simple-decoder: add support for video cropping.
18210 Handle video cropping information attached to a VA surface proxy.
18212 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18216 * tests/test-decode.c:
18217 tests: add support for render-to-pixmap.
18218 Add --pixmap option to test-decode so that to allow copies of VA
18219 surface to an intermediate pixmap and rendering from that pixmap.
18220 Only X11 backends are supported for now.
18222 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18225 * gst-libs/gst/vaapi/Makefile.am:
18226 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
18227 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
18228 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
18229 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
18230 x11: implement pixmap rendering with RENDER extension.
18231 Use hardware accelerated XRenderComposite() function, from the RENDER
18232 extension, to blit a pixmap to screen. Besides, this can also support
18233 cropping and scaling.
18235 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18237 * docs/reference/libs/libs-docs.xml.in:
18238 * docs/reference/libs/libs-sections.txt:
18239 * gst-libs/gst/vaapi/Makefile.am:
18240 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
18241 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
18242 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
18243 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
18244 x11: implement pixmap API.
18245 Implement the new render-to-pixmap API. The only supported pixmap format
18246 that will work is xRGB, with native byte ordering. Others might work but
18247 they were not tested.
18249 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18251 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
18252 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
18253 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
18254 x11: update x11_get_geometry() helper function with depth output.
18255 Allow x11_get_geometry() utility function to also return the depth
18256 assigned to the X drawable.
18258 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18260 * docs/reference/libs/libs-docs.xml.in:
18261 * docs/reference/libs/libs-sections.txt:
18262 * gst-libs/gst/vaapi/Makefile.am:
18263 * gst-libs/gst/vaapi/gstvaapipixmap.c:
18264 * gst-libs/gst/vaapi/gstvaapipixmap.h:
18265 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
18266 * gst-libs/gst/vaapi/gstvaapiwindow.c:
18267 * gst-libs/gst/vaapi/gstvaapiwindow.h:
18268 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
18269 Add initial Pixmap API.
18270 Add API to transfer VA urfaces to native pixmaps. Also add an API to
18271 render a native pixmap, for completeness. In general, rendering to
18272 pixmap would only be useful to certain VA drivers and use cases on
18273 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
18276 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18278 * docs/reference/libs/libs-sections.txt:
18279 * gst-libs/gst/vaapi/gstvaapiimage.c:
18280 * gst-libs/gst/vaapi/gstvaapisurface.c:
18281 * gst-libs/gst/vaapi/video-format.c:
18282 * gst-libs/gst/vaapi/video-format.h:
18283 libs: add and expose gst_vaapi_video_format_to_string() helper.
18284 This is just a wrapper over gst_video_format_to_string() for older
18285 GStreamer 0.10 builds.
18287 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
18289 * gst/vaapi/gstvaapipluginutil.c:
18290 plugins: fix display type comparison in gst_vaapi_create_display().
18291 After the code got moved to create the gst_vaapi_create_display() helper,
18292 this comparison was not updated to dereference the newly-created
18293 pointer, so the code was comparing the pointer itself to the type, and
18294 therefore failing to retrieve the VA display.
18295 This fixes the following error (and gets gst-vaapi decoding again):
18296 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
18297 https://bugzilla.gnome.org/show_bug.cgi?id=704410
18298 Signed-off-by: Emilio López <emilio@elopez.com.ar>
18300 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18303 Bump version for development.
18305 === release 0.5.5 ===
18307 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18309 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18310 mpeg2: don't output dummy pictures.
18311 Mark dummy pictures as output already so that we don't try to submit
18312 them to the upper layer since this is purely internal / temporary
18313 picture for helping the decoder.
18315 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18317 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
18318 decoder: dispose GstVideoCodecFrame earlier.
18319 Once the picture was output, it is no longer necessary to keep an extra
18320 reference to the underlying GstVideoCodecFrame. So, we can release it
18321 earlier, and maybe subsequently release the associate surface proxy
18324 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18330 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18332 * docs/reference/libs/libs-sections.txt:
18333 * gst-libs/gst/vaapi/Makefile.am:
18334 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18335 * gst-libs/gst/vaapi/gstvaapiimage.c:
18336 * gst-libs/gst/vaapi/gstvaapisurface.c:
18337 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
18338 * gst-libs/gst/vaapi/video-format.c:
18339 * gst-libs/gst/vaapi/video-format.h:
18340 * gst/vaapi/gstvaapidownload.c:
18341 * gst/vaapi/gstvaapiuploader.c:
18343 * tests/test-display.c:
18344 Fix new video format API.
18345 Fix new internal video format API, based on GstVideoFormat, to not
18346 clobber with system symbols. So replace the gst_video_format_* prefix
18347 with gst_vaapi_video_format_ prefix, even if the format type remains
18350 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18353 Bump library major version.
18354 Bump the library major version due to API/ABI changes that occurred in
18355 the imaging API. In particular, GstVaapiImageFormat type was replaced
18356 with the standard GstVideoFormat type. All dependent APIs were updated
18357 to match this change.
18359 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18364 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18366 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
18367 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
18368 decoder: fix memory leak when processing interlaced pictures.
18369 Fix memory leak when processing interlaced pictures and that occurs
18370 because the first field, represented as a GstVideoCodecFrame, never
18371 gets released. i.e. when the picture is completed, this is generally
18372 the case when the second field is successfully decoded, we need to
18373 propagate the GstVideoCodecFrame of the first field to the original
18374 GstVideoDecoder so that it could reclaim memory.
18375 Otherwise, we keep accumulating the first fields into GstVideoDecoder
18376 private frames list until the end-of-stream is reached. The frames
18377 are eventually released there, but too late, i.e. too much memory
18378 may have been consumed.
18379 https://bugzilla.gnome.org/show_bug.cgi?id=701257
18381 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18383 * gst/vaapi/gstvaapipluginutil.c:
18384 plugins: simlpify gst_vaapi_create_display() helper.
18385 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
18386 performs the necessary validation checks for the underlying VA display
18387 prior to returning to the caller. So, if an error occurred, then NULL is
18388 really returned in that case.
18390 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18392 * gst/vaapi/gstvaapipluginutil.c:
18393 plugins: add gst_vaapi_create_display() helper.
18394 https://bugzilla.gnome.org/show_bug.cgi?id=703235
18395 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18397 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18399 * gst/vaapi/gstvaapivideobufferpool.c:
18400 plugins: don't reallocate pool allocator for the same caps.
18401 If the video buffer pool config doesn't have new caps, then it's not
18402 necessary to reinstantiate the allocator. That could be a costly
18403 operation as we could do some extra heavy checking in there.
18405 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18407 * gst/vaapi/gstvaapivideomemory.c:
18408 plugins: fix ref counting of GstVaapiVideoMemory allocator.
18409 Fix reference counting issue whereby gst_memory_init() does not hold
18410 an extra reference to the GstAllocator. So, there could be situations
18411 where the last instance of GstVaapiVideoAllocator gets released before
18412 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
18414 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18416 * gst/vaapi/gstvaapiuploader.c:
18417 vaapiupload: use implicit color conversion to NV12.
18418 Always perform conversion of sources buffers to NV12 since this is
18419 the way we tested for this capability in ensure_allowed_caps(). This
18420 also saves memory bandwidth for further rendering. However, this may
18421 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
18423 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18425 * gst-libs/gst/vaapi/gstvaapivideopool.c:
18426 pool: fix deallocation of video pools.
18427 The queue of free objects to used was deallocated with g_queue_free_full().
18428 However, this convenience function shall only be used if the original queue
18429 was allocated with g_queue_new(). This caused memory corruption, eventually
18430 leading to a crash.
18431 The correct solution is to pair the g_queue_init() with the corresponding
18432 g_queue_clear(), while iterating over all free objects to deallocate them.
18434 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
18436 * gst/vaapi/gstvaapidownload.c:
18437 vaapidownload: fix src caps format error.
18438 This fixes direct linking of vaapidownload element to xvimagesink with
18439 VA drivers supporting vaGetImage() from the native VA surface format to
18440 a different VA image format. i.e. color conversion during download.
18441 http://bugzilla.gnome.org/show_bug.cgi?id=703937
18442 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18444 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18446 * gst/vaapi/gstvaapidownload.c:
18447 vaapidownload: fix debug string for image formats.
18448 The image is now expressed as a standard GstVideoFormat, which is not
18449 a FOURCC but rather a regular enum value.
18450 This is a regression introduced in commit 09397fa.
18452 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
18454 * gst-libs/gst/vaapi/gstvaapiimage.c:
18455 image: add support for raw YUY2/UYVY image copies.
18456 Implement raw image copies for YUY2 format. Add support for UYVY format
18457 too, with the same copy function as for YUY2. Even though components
18458 ordering differs, copying line strides is essentially the same.
18459 https://bugzilla.gnome.org/show_bug.cgi?id=703939
18460 https://bugzilla.gnome.org/show_bug.cgi?id=703940
18461 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18463 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18465 * gst/vaapi/gstvaapiuploader.c:
18466 plugins: clean-up video uploader helper.
18467 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
18468 were already negotiated beforehand, and they are not used from the
18469 buffer in upstream elements.
18470 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
18471 represented as a GstVideoInfo.
18473 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18475 * gst/vaapi/gstvaapiuploader.c:
18476 plugins: use GstVideoInfo in video uploader helper.
18478 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18480 * gst/vaapi/gstvaapivideomemory.c:
18481 plugins: allow creation of VA surfaces with explicit pixel format.
18482 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
18483 with an explicit pixel format. This allows for direct rendering to
18484 VA surface memory from a software decoder.
18486 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18488 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
18489 surface: fix surface pool creation with an explicit pixel format.
18490 Fix creation of surface pool objects to honour explicit pixel format
18491 specification. If this operation is not supported, then fallback to
18492 the older interface with chroma format.
18494 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18496 * gst-libs/gst/vaapi/gstvaapisurface.c:
18497 surface: try to determine the underlying VA surface format.
18498 If a VA surface was allocated with the chroma-format interface, try to
18499 determine the underlying pixel format on gst_vaapi_surface_get_format(),
18500 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
18502 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18504 * docs/reference/libs/libs-sections.txt:
18505 * gst-libs/gst/vaapi/gstvaapisurface.c:
18506 * gst-libs/gst/vaapi/gstvaapisurface.h:
18507 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
18508 surface: allow creation with explicit pixel format.
18509 Make it possible to create VA surfaces with a specific pixel format.
18510 This is a new capability brought in by VA-API >= 0.34.0. If that
18511 capability is not built-in (e.g. using VA-API < 0.34.0), then
18512 gst_vaapi_surface_new_with_format() will return NULL.
18514 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18516 * docs/reference/libs/libs-sections.txt:
18517 * gst-libs/gst/vaapi/video-format.c:
18518 * gst-libs/gst/vaapi/video-format.h:
18519 surface: add helper function to get chroma type from GstVideoFormat.
18520 Add gst_video_format_get_chroma_type() helper function to determine
18521 the GstVaapiChromaType from a standard GStreamer video format. It is
18522 possible to reconstruct that from GstVideoFormatInfo but it is much
18523 simpler (and faster?) to use the local GstVideoFormatMap table.
18525 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18527 * gst-libs/gst/vaapi/gstvaapisurface.c:
18528 * gst-libs/gst/vaapi/gstvaapisurface.h:
18529 * gst-libs/gst/vaapi/gstvaapiutils.c:
18530 * gst-libs/gst/vaapi/gstvaapiutils.h:
18531 surface: add new chroma formats.
18532 Add new chroma formats available with VA-API >= 0.34.0. In particular,
18533 this includes "RGB" chroma formats, and more YUV subsampled formats.
18534 Also add a new from_GstVaapiChromaType() helper function to convert
18535 libgstvaapi chroma type to VA chroma format.
18537 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18539 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
18540 pool: fix image pool to check for the video format to use.
18541 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
18542 image pool object, only if the underlying VA display does support the
18543 requested VA image format.
18545 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18547 * gst-libs/gst/vaapi/gstvaapicontext.c:
18548 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
18549 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
18550 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
18551 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
18552 * gst-libs/gst/vaapi/gstvaapivideopool.h:
18553 * gst/vaapi/gstvaapidownload.c:
18554 * gst/vaapi/gstvaapiuploader.c:
18555 * tests/Makefile.am:
18556 * tests/test-surfaces.c:
18557 Use GstVideoInfo for video pools.
18558 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
18559 structures instead. Those are smaller, and allows for streamlining
18562 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18564 * gst-libs/gst/vaapi/gstvaapiimage.c:
18565 * gst-libs/gst/vaapi/video-format.c:
18566 Add more video formats.
18567 Add new video format mappings to VA image formats:
18568 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
18569 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
18571 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18573 * gst-libs/gst/vaapi/gstvaapiimage.c:
18574 image: fix debug message with video format.
18575 Fix debug message string with image format expressed with GstVideoFormat
18576 instead of the obsolete format that turned out to be a fourcc.
18577 This is a regression from git commit e61c5fc.
18579 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18583 * tests/test-display.c:
18584 * tests/test-textures.c:
18585 * tests/test-windows.c:
18586 tests: port to new video format API.
18588 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18590 * gst/vaapi/gstvaapidownload.c:
18591 * gst/vaapi/gstvaapiuploader.c:
18592 * gst/vaapi/gstvaapivideomemory.c:
18593 plugins: port to new video format API.
18595 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18597 * gst-libs/gst/vaapi/gstvaapiimage.c:
18598 libs: use GstVideoInfo wherever possible.
18599 In particular, use gst_video_info_from_caps() helper function in VA image
18600 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
18601 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
18603 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18605 * docs/reference/libs/libs-docs.xml.in:
18606 * docs/reference/libs/libs-sections.txt:
18607 * gst-libs/gst/vaapi/Makefile.am:
18608 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
18609 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
18610 libs: drop GstVaapiImageFormat helpers.
18611 Drop GstVaapiImageFormat helpers since everything was moved to the new
18612 GstVideoFormat based API. Don't bother with backwards compatibility and
18613 just bump the library major version afterwards.
18615 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18617 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18618 * gst-libs/gst/vaapi/gstvaapidisplay.h:
18619 * gst-libs/gst/vaapi/gstvaapiimage.c:
18620 * gst-libs/gst/vaapi/gstvaapiimage.h:
18621 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
18622 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18623 libs: port to new video format API.
18625 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18627 * docs/reference/libs/libs-docs.xml.in:
18628 * docs/reference/libs/libs-sections.txt:
18629 * gst-libs/gst/vaapi/Makefile.am:
18630 * gst-libs/gst/vaapi/video-format.c:
18631 * gst-libs/gst/vaapi/video-format.h:
18632 Add new video format API.
18633 Leverage GstVideoFormat utilities from core GStreamer to provide an
18634 adaptation layer to VA image formats.
18636 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18641 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18643 * gst/vaapi/gstvaapisink.c:
18644 vaapisink: fix creation of GLX texture.
18645 Fix creation of GLX texture, to not depend on the GstCaps video size that
18646 could be wrong, especially in presence of frame cropping. So, use the size
18647 from the source VA surfaces.
18648 An optimization could be to reduce the texture size to the actual visible
18649 size on screen. i.e. scale down the texture size to match the screen dimensions,
18650 while preserving the VA surface aspect ratio. However, some VA drivers don't
18653 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18655 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18656 mpeg2: add support for video cropping.
18657 If the stream has a sequence_display_extenion, then attach the
18658 display_horizontal/display_vertical dimension as the cropping
18659 rectangle width/height to the GstVaapiPicture.
18660 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18662 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18664 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18665 vc1: add support for video cropping.
18666 If the Advanced profile has display_extension fields, then set the display
18667 width/height dimension as cropping rectangle to the GstVaapiPicture.
18668 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18670 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18672 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18673 h264: add support for video cropping.
18674 If the encoded stream has the frame_cropping_flag set, then associate
18675 the cropping rectangle to GstVaapiPicture.
18676 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18678 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18682 * tests/test-decode.c:
18683 * tests/test-subpicture.c:
18684 tests: add basic support for video cropping.
18685 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
18686 instead of a plain GstVaapiSurface. This means that we can now retrieve
18687 the frame cropping rectangle from the surface proxy, along with additional
18688 information if ever needed.
18690 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18692 * gst/vaapi/gstvaapidecode.c:
18693 * gst/vaapi/gstvaapisink.c:
18694 * gst/vaapi/gstvaapivideometa.c:
18695 plugins: add support for video cropping.
18696 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
18697 specific meta information to hold video cropping details. Make the sink
18698 support video cropping in X11 and GLX modes.
18700 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18702 * gst/vaapi/gstvaapivideometa.c:
18703 * gst/vaapi/gstvaapivideometa.h:
18704 plugins: add helper functions to set the render rectangle.
18705 Some video clips may have a clipping region that needs to propogate to
18706 the renderer. These helper functions make it possible to attach that
18707 clipping region, as a GstVaapiRectangle, the the video meta associated
18709 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18710 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18712 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18714 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
18715 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
18716 surfaceproxy: allow for NULL cropping rectangle.
18717 Make it possible associate an empty cropping rectangle to the surface
18718 proxy, thus resetting any cropping rectangle that was previously set.
18719 This allows for returning plain NULL when no cropping rectangle was
18720 initially set up to the surface proxy, or if it was reset to defaults.
18722 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18724 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
18725 surfaceproxy: clean-up helper macros.
18726 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
18727 proxy macro argument to a GstVaapiSurfaceProxy pointer.
18729 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18731 * gst-libs/gst/vaapi/gstvaapisurface.c:
18732 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
18733 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
18734 * gst-libs/gst/vaapi/gstvaapiwindow.c:
18735 surface: add simple surface info accessors as helper macros.
18736 Add helper macros to retrieve the VA surface information like size
18737 (width, height) or chroma type. This is a micro-optimization to avoid
18738 useless function calls and NULL pointer re-checks in internal routines.
18740 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18742 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
18743 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
18744 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
18745 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
18746 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
18747 decoder: add support for video cropping.
18748 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
18749 cropping information from raw bitstreams to each picture being decoded.
18750 Also add helper function to surface proxy to propagate that information
18751 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
18752 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18753 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18755 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18757 * ext/codecparsers:
18758 codecparsers: update to gst-vaapi-branch commit f90de0a.
18759 f90de0a h264: fix calculation of the frame cropping rectangle
18760 535515c h264: parse the cropping rectangle separately
18762 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18764 * ext/codecparsers:
18765 codecparsers: update to gst-vaapi-branch commit 0f68a71.
18766 0f68a71 mpeg2: fix video packet header size checks
18768 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
18770 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18771 mpeg2: reset quantization matrices on new sequence headers.
18772 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
18773 shall be reset to their default values when a Sequence_Header() is
18775 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18777 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18780 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18781 mpeg2: cope with latest codecparser changes.
18782 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
18783 used in individual header parsers. Also use the new slice parsing API.
18785 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18787 * ext/codecparsers:
18788 codecparsers: update to gst-vaapi-branch commit dddd182.
18789 dddd182 mpeg2: add slice header parsing API
18790 94e6228 mpeg2: add sequence scalable extension parsing API
18791 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
18792 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
18794 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18796 * gst/vaapi/gstvaapisink.c:
18797 vaapisink: expose the raw video formats in static caps template.
18798 Expose all raw video formats in the static caps template since the
18799 vaapisink is supporting raw data. We will get the exact set of formats
18800 supported by the driver dynamically through the _get_caps() routine.
18801 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
18802 https://bugzilla.gnome.org/show_bug.cgi?id=702178
18803 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18805 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18807 * gst/vaapi/gstvaapisink.c:
18808 * gst/vaapi/gstvaapisink.h:
18809 vaapisink: add "use-glx" property for OpenGL rendering.
18810 Now that VA/GLX capable buffers are generated by default on X11, thus
18811 depending on a VA/GLX display, we stil want to use vaPutSurface() for
18812 rendering since it is faster.
18813 Anyway, OpenGL rendering in vaapisink was only meant for testing and
18814 enabling "fancy" effects to play with. This has no real value. So,
18815 disable OpenGL rendering by default.
18817 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18819 * gst/vaapi/gstvaapipluginutil.c:
18820 plugins: try to allocate a GLX display first over an X11 one.
18821 If the gstreamer-vaapi plug-in elements are built with GLX support, then
18822 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
18824 https://bugzilla.gnome.org/show_bug.cgi?id=701742
18826 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
18829 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
18830 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
18831 https://bugzilla.gnome.org/show_bug.cgi?id=698858
18832 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18834 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
18836 * gst-libs/gst/vaapi/gstvaapiimage.c:
18837 image: fix wrong check for rect bounds in copy_image().
18839 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18842 Bump version for development.
18844 === release 0.5.4 ===
18846 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18852 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18857 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18860 * gst-libs/gst/codecparsers/Makefile.am:
18861 configure: always build the MPEG-4 parser.
18862 Always build the MPEG-4 parser for now as there are also core fixes
18863 included in the parser that cannot be tested for with API checks.
18865 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18868 configure: add --enable-builtin-codecparsers [default="yes"] option.
18869 Add flag to have all codecparsers built-in, thus ensuring that the
18870 resulting binaries have all the necessary bug fixes and this is what
18871 the QA has been testing anyway.
18872 Of course, for a completely up-to-date Linux distribution, you could
18873 also opt for --disable-builtin-codecparsers and use the system ones.
18874 Though, some core fixes could be missing, and those cannot be tested
18875 for with API checks.
18877 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18879 * ext/codecparsers:
18880 codecparsers: update to gst-vaapi-branch commit 843ce3e.
18881 843ce3e jpeg: fix default Huffman tables generation.
18882 8655187 mpeg2: fix the pixel-aspect-ratio calculation
18883 21099dc mpeg2: actually store video bitrate values
18884 dd02087 mpeg2: fix picture packet extension size check
18885 25948e9 mpeg2: increase min size for picture coding ext
18886 f1f5a40 ensure the debug category is properly initialized
18888 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18890 * debian.upstream/Makefile.am:
18891 debian: fix list of generated files for .deb packaging.
18893 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18896 * debian.upstream/Makefile.am:
18897 * debian.upstream/control.in:
18898 debian: fix libgstvaapi -dev package name.
18899 Fix libgstvaapi -dev package name so that to allow installation of both
18900 GStreamer 0.10 and 1.0.x based packages.
18902 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18907 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18909 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
18910 wayland: fix memory leak of display resources.
18912 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
18914 * gst/vaapi/gstvaapisink.c:
18915 vaapisink: fix build without VA/GLX support.
18917 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18919 * gst/vaapi/gstvaapivideomemory.c:
18920 * gst/vaapi/gstvaapivideomemory.h:
18921 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
18922 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
18923 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
18924 caller. This is the only sensible enough thing to do in this mode as
18925 the underlying surface pixels need to be extracted through an explicit
18926 call to the gst_video_frame_map() function instead.
18927 A possible use-case of this is to implement a "handoff" signal handler
18928 to fakesink or identity element for further processing.
18930 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18932 * gst/vaapi/gstvaapivideomemory.c:
18933 plugins: silence check for direct-rendering mode in video memory.
18934 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
18935 mode support, and not trigger fatal-criticals if either test surface or
18936 image could not be created. Typical case: pixel format mismatch, e.g. NV12
18937 supported by most hardware vs. I420 supported by most software decoders.
18939 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18941 * gst/vaapi/gstvaapivideomemory.c:
18942 plugins: improve video memory flags safety checks.
18943 On map, ensure we have GST_MAP_WRITE flags since this is only what we
18944 support for now. Likewise, on unmap, make sure that the VA image is
18945 unmapped for either read or write, while still committing it to the
18946 VA surface if write was requested.
18948 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18950 * gst-libs/gst/vaapi/gstvaapisurface.c:
18951 surface: fix memory leak through unreleased parent context.
18952 Break the circular references between GstVaapiContext and its children
18953 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
18954 context, which holds a reference to its VA surfaces, then none of those
18956 How does this impact support for subpictures?
18957 The only situation when the parent context needs to disappear is when
18958 it is replaced with another one because of a resolution change in the
18959 video stream for instance, or a normal destroy. In this case, it does
18960 not really matter to apply subpictures to the peer surfaces since they
18961 are either gone, or those that are left in the pipe can probably bear
18962 a reinstantiation of the subpictures for it.
18963 So, parent_context is set to NULL when the parent context is destroyed,
18964 other VA surfaces can still get subpictures attached to them, individually
18965 not as a whole. i.e. subpictures for surface S1 will be created from
18966 active composition buffers and associated to S1, subpictures for S2 will
18967 be created from the next active composition buffers, etc. We don't try
18968 to cache the subpictures in those cases (pending surfaces until EOS
18969 is reached, or pending surfaces until new surfaces matching new VA context
18970 get to be used instead).
18972 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18974 * gst/vaapi/gstvaapisink.c:
18975 vaapisink: fix one-time initialization when display property is set.
18976 Fix gst_vaapisink_ensure_display() to perform one-time initialization
18977 tasks even if the `display' property was explicitly set.
18979 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18981 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
18982 window: fix GLX window initialization.
18983 Make sure to create the GLX context once the window object has completed
18984 its creation. Since gl_resize() relies on the newly created window size,
18985 then we cannot simply overload the GstVaapiWindowClass::create() hook.
18986 So, we just call into gst_vaapi_window_glx_ensure_context() once the
18987 window object is created in the gst_vaapi_window_glx_new*() functions.
18989 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18991 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
18992 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
18993 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
18994 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
18995 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
18996 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
18997 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
18998 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
18999 * gst-libs/gst/vaapi/gstvaapitexture.c:
19000 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19001 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19002 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19003 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19004 display: validate display types.
19006 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19008 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19009 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19010 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19011 display: drop internal NAME_PREFIX, store the real display name.
19012 Always store a valid display name/device path, instead of adding a
19013 particular prefix. i.e. make it simply a strdup(), or "" if it was
19016 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19018 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19019 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19020 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19021 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19022 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19023 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19024 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19025 display: make it possible to lookup the display cache by type.
19026 Make it possible to add extra an extra filter to most of display cache
19027 lookup functions so that the GstVaapiDisplay instance can really match
19028 a compatible and existing display by type, instead of relying on extra
19029 string tags (e.g. "X11:" prefix, etc.).
19031 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19033 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19034 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19035 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19036 display: cope with new display cache API.
19038 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19040 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19041 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19042 display: rework display cache API.
19043 Simplify display cache API, while making it more flexible. We can now create
19044 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
19046 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19048 * tests/test-display.c:
19049 tests: improve check for display cache.
19050 Improve check for display cache infrastructure. In particular, for X11 and
19051 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
19052 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
19053 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
19054 already exists will have to generate different VA displays.
19056 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
19058 * gst/vaapi/gstvaapiuploader.c:
19059 uploader: fix memory leak in GStreamer 0.10 builds.
19060 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
19061 but it exhibited a memory leak because the surface generated for the
19062 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
19063 possible to release that surface back to the parent pool when the meta
19064 gets released, and the memory consumption kept growing.
19065 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19067 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19069 * gst/vaapi/gstvaapivideometa.c:
19070 plugins: fix gst_vaapi_video_meta_new_from_pool().
19071 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
19072 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
19073 was hereby totally broken. Fixed this regression by using the newly
19074 provided gst_vaapi_video_pool_get_object_type() function.
19076 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19078 * gst/vaapi/gstvaapiuploader.c:
19079 * gst/vaapi/gstvaapivideomemory.c:
19080 * gst/vaapi/gstvaapivideometa.c:
19081 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
19083 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19086 tests: cope with GST_VAAPI_IS_xxx() macros removal.
19088 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19090 * docs/reference/libs/libs-sections.txt:
19091 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19092 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19093 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19094 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19095 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19096 libs: add query for GstVaapiVideoPool object types.
19097 Add API to identify the underlying GstVaapiVideoPool object type.
19099 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19101 * docs/reference/libs/libs-sections.txt:
19102 * gst-libs/gst/vaapi/gstvaapicontext.c:
19103 * gst-libs/gst/vaapi/gstvaapicontext.h:
19104 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19105 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19106 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19107 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19108 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19109 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
19110 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
19111 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19112 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
19113 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19114 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
19115 * gst-libs/gst/vaapi/gstvaapiimage.c:
19116 * gst-libs/gst/vaapi/gstvaapiimage.h:
19117 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19118 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19119 * gst-libs/gst/vaapi/gstvaapiobject.c:
19120 * gst-libs/gst/vaapi/gstvaapiobject.h:
19121 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
19122 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
19123 * gst-libs/gst/vaapi/gstvaapisurface.c:
19124 * gst-libs/gst/vaapi/gstvaapisurface.h:
19125 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19126 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19127 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19128 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19129 * gst-libs/gst/vaapi/gstvaapitexture.c:
19130 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19131 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19132 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19133 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19134 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
19135 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19136 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19137 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
19138 libs: drop GST_VAAPI_IS_xxx() helper macros.
19139 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
19140 deriving from GObject and so those were only checking for whether the
19141 argument was NULL or not. This is now irrelevant, and even confusing
19142 to some extent, because we no longer have type checking.
19143 Note: this incurs more type checking (review) but the libgstvaapi is
19144 rather small, so this is manageable.
19146 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19149 Bump library major version.
19150 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
19151 This is a fundamental change that requires a new SONAME. More changes are
19152 underway to streamline the core libraries.
19153 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
19154 On one particular test (sintel HD trailer), the total number of executed
19155 instruction was reduced by 8%.
19157 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19159 * docs/reference/libs/Makefile.am:
19160 * docs/reference/libs/libs-docs.xml.in:
19161 * docs/reference/libs/libs-sections.txt:
19162 * docs/reference/libs/libs.core.types:
19163 * docs/reference/libs/libs.glx.types:
19164 * docs/reference/libs/libs.x11.types:
19165 docs: cope with removed APIs.
19166 Some APIs are dead because they are no longer based on GObject.
19168 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19170 * gst/vaapi/gstvaapidecode.c:
19171 * gst/vaapi/gstvaapidownload.c:
19172 * gst/vaapi/gstvaapipluginutil.c:
19173 * gst/vaapi/gstvaapipostproc.c:
19174 * gst/vaapi/gstvaapisink.c:
19175 * gst/vaapi/gstvaapiupload.c:
19176 * gst/vaapi/gstvaapiuploader.c:
19177 * gst/vaapi/gstvaapivideobufferpool.c:
19178 * gst/vaapi/gstvaapivideoconverter_glx.c:
19179 * gst/vaapi/gstvaapivideomemory.c:
19180 * gst/vaapi/gstvaapivideometa.c:
19181 plugins: cope with new GstVaapiMiniObject objects.
19183 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19188 * tests/simple-decoder.c:
19189 * tests/test-decode.c:
19190 * tests/test-display.c:
19191 * tests/test-subpicture.c:
19192 * tests/test-surfaces.c:
19193 * tests/test-textures.c:
19194 * tests/test-windows.c:
19195 tests: cope with new GstVaapiMiniObject objects.
19197 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19199 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19200 display: fix set_synchronous() to lock display.
19202 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19204 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19205 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19206 videopool: simplify creation of video objects pool.
19208 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19210 * gst-libs/gst/vaapi/gstvaapiobject.c:
19211 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19212 * gst-libs/gst/vaapi/gstvaapitypes.h:
19213 libs: simplify GstVaapiID definitions.
19214 Make GstVaapiID a gsize instead of guessing an underlying integer large
19215 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
19216 this is plain zero and that it is no longer passed as varargs.
19218 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19220 * gst-libs/gst/vaapi/Makefile.am:
19221 * gst-libs/gst/vaapi/gstvaapi_priv.h:
19222 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
19223 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
19224 * gst-libs/gst/vaapi/gstvaapivalue.c:
19225 * gst-libs/gst/vaapi/gstvaapivalue.h:
19226 libs: drop obsolete function helpers and objects.
19227 Drop obsolete GstVaapiID related function helpers for passing them as
19230 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19232 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19233 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19234 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19235 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19236 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
19237 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19238 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19239 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
19240 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19241 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19242 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19243 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
19244 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19245 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19246 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
19247 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19248 * gst-libs/gst/vaapi/gstvaapiobject.c:
19249 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19250 libs: use GstVaapiMiniObject for display objects.
19252 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19254 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
19255 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19256 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19257 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19258 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
19259 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19260 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
19261 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
19262 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
19263 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19264 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
19265 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19266 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19267 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19268 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
19269 libs: use GstVaapiMiniObject for video decoders.
19270 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
19271 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
19272 helper function to let the user add a callback to a function triggered
19273 whenever the codec state (e.g. caps) changes.
19275 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19277 * docs/reference/libs/libs-sections.txt:
19278 * gst-libs/gst/vaapi/Makefile.am:
19279 * gst-libs/gst/vaapi/gstvaapicontext.c:
19280 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19281 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19282 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19283 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19284 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19285 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19286 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19287 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19288 libs: use GstVaapiMiniObject for video object pools.
19289 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
19290 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
19291 no longer used for a long time. Make object allocators static, i.e.
19292 local to the shared library.
19294 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19296 * gst-libs/gst/vaapi/gstvaapitexture.c:
19297 * gst-libs/gst/vaapi/gstvaapitexture.h:
19298 libs: use GstVaapiObject for texture objects.
19300 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19302 * gst-libs/gst/vaapi/Makefile.am:
19303 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19304 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19305 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19306 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
19307 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19308 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
19309 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19310 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19311 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
19312 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19313 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
19314 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19315 libs: use GstVaapiObject for window objects.
19317 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19319 * gst-libs/gst/vaapi/gstvaapicontext.c:
19320 * gst-libs/gst/vaapi/gstvaapicontext.h:
19321 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19322 * gst-libs/gst/vaapi/gstvaapiimage.c:
19323 * gst-libs/gst/vaapi/gstvaapiimage.h:
19324 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
19325 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
19326 * gst-libs/gst/vaapi/gstvaapisurface.c:
19327 * gst-libs/gst/vaapi/gstvaapisurface.h:
19328 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19329 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19330 libs: use GstVaapiObject for VA objects.
19332 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19334 * gst-libs/gst/vaapi/Makefile.am:
19335 * gst-libs/gst/vaapi/gstvaapiobject.c:
19336 * gst-libs/gst/vaapi/gstvaapiobject.h:
19337 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19338 Port GstVaapiObject to GstVaapiMiniObject.
19340 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19342 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
19343 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
19344 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19345 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
19346 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19347 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19348 libs: refine GstVaapiMiniObject.
19349 Drop support for user-defined data since this capability was not used
19350 so far and GstVaapiMiniObject represents the smallest reference counted
19351 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
19352 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
19353 is also possible to further simplify the layout of the object. i.e. merge
19354 GstVaapiMiniObjectBase into GstVaapiMiniObject.
19356 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19358 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19359 decoder: update picture size from the bitstream.
19360 Propagate the picture size from the bitstream to the GstVaapiDecoder,
19361 and subsequent user who installed a signal on notify::caps. This fixes
19362 decoding of TS streams when the demuxer failed to extract the required
19365 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19367 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19368 decoder: fix raw decoding mode.
19369 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
19370 surface proxy to the caller.
19372 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19374 * docs/reference/libs/libs-sections.txt:
19375 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19376 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19377 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19378 * gst/vaapi/gstvaapidecode.c:
19379 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
19380 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
19381 wait for a frame to be decoded, until the specified timeout in microseconds,
19382 prior to returning to the caller.
19383 This is a fix to performance regression from 851cc0, whereby the vaapidecode
19384 loop executed on the srcpad task was called to often, thus starving all CPU
19387 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19390 Bump version for development.
19392 === release 0.5.3 ===
19394 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19400 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19405 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19407 * gst/vaapi/gstvaapidecode.c:
19408 vaapidecode: rework heuristics to detect decode timeout.
19409 Rework heuristics to detect when downstream element ran into errors,
19410 and thus failing to release any VA surface in due time for the current
19411 frame to get decoded. In particular, recalibrate the render time base
19412 when the first frame gets submitted downstream, or when there is no
19413 timestamp that could be inferred.
19415 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19417 * gst-libs/gst/vaapi/gstcompat.h:
19418 * gst/vaapi/gstvaapidecode.c:
19419 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
19420 Rework GstVideoDecoder::handle_frame() to decode the current frame,
19421 while possibly waiting for a free surface, and separately submit all
19422 decoded frames from a task. This makes it possible to pop and render
19423 decoded frames as soon as possible.
19425 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19427 * gst/vaapi/gstvaapidecode.c:
19428 * gst/vaapi/gstvaapidownload.c:
19429 * gst/vaapi/gstvaapisink.c:
19430 * gst/vaapi/gstvaapiupload.c:
19431 plugins: use gst_object_unref() wherever applicable.
19432 Use gst_object_unref() wherever applicable, e.g. objects derived from
19433 GstElement, GstVideoPool, etc.
19435 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19437 * docs/reference/plugins/plugins-docs.xml.in:
19438 * docs/reference/plugins/plugins-sections.txt:
19439 * docs/reference/plugins/plugins.types:
19440 docs: drop obsolete plug-ins.
19441 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
19442 i.e. vaapiupload and vaapidownload are no longer the recommended
19445 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19447 * debian.upstream/rules:
19448 debian: fix build of GStreamer 0.10 packages.
19449 Fix build of Debian packages to scan the actual GStreamer API version
19450 from the generated changelog file.
19452 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19454 * gst/vaapi/gstvaapipostproc.c:
19455 vaapipostproc: minor clean-ups.
19456 Use g_clear_object() wherever appropriate and remove dead-code.
19458 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19460 * gst/vaapi/gstvaapipostproc.c:
19461 vaapipostproc: fix reference counting buf for passthrough mode.
19462 Fix reference counting bug for passthrough mode, whereby the input buffer
19463 was propagated as is downstream through gst_pad_push() without increasing
19464 its reference count before. The was a problem when gst_pad_push() returns
19465 an error and we further decrease the reference count of the input buffer.
19467 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19469 * gst-libs/gst/vaapi/gstcompat.h:
19470 * gst/vaapi/Makefile.am:
19471 * gst/vaapi/gstvaapi.c:
19472 * gst/vaapi/gstvaapidecode.c:
19473 * gst/vaapi/gstvaapipluginutil.h:
19474 * gst/vaapi/gstvaapipostproc.c:
19475 vaapipostproc: port to GStreamer 1.0.
19476 Add support for interlaced streams with GStreamer 1.0 too. Basically,
19477 this enables vaapipostproc, though it is not auto-plugged yet. We also
19478 make sure to reply to CAPS queries, and happily handle CAPS events.
19480 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19482 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19483 decoder: fix GstVideoCodecFrame flags for interlaced contents.
19484 Fix support for interlaced contents with GStreamer 0.10. In particular,
19485 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
19487 This is a regression from commit 87e5717.
19489 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19491 * gst-libs/gst/vaapi/Makefile.am:
19492 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19493 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19494 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
19495 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
19496 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
19497 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
19498 structure was only useful to parsing and a proper GstvaapiDecoderFrame
19499 instance will be created instead.
19501 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19503 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19504 decoder: export presentation timestamp for raw decoding mode.
19505 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
19506 held any information about the expected presentation timestamp, frame
19507 duration or additional flags like interlaced or top-field-first.
19509 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19511 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19512 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19513 decoder: use new GstVaapiSurfaceProxy utility functions.
19514 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
19515 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
19516 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
19517 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
19518 than gst_vaapi_picture_output().
19520 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19522 * docs/reference/libs/libs-sections.txt:
19523 * gst-libs/gst/vaapi/Makefile.am:
19524 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19525 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19526 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19527 surfaceproxy: add more attributes for raw decoding modes.
19528 Add more attributes for raw decoding modes, i.e. directly through the
19529 libgstvaapi helper library. In particular, add presentation timestamp,
19530 duration and a couple of flags (interlaced, TFF, RFF, one-field).
19532 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19534 * docs/reference/libs/libs-sections.txt:
19535 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19536 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19537 * gst/vaapi/gstvaapidecode.c:
19538 * tests/simple-decoder.c:
19539 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
19540 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
19541 to call some user-provided function when the surface proxy is released.
19543 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19546 * gst-libs/gst/vaapi/Makefile.am:
19547 build: link libgstvaapi-glx-1.0.so against libdl.
19548 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
19549 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
19551 https://bugzilla.gnome.org/show_bug.cgi?id=698046
19552 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19554 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19556 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19557 decoder: fix gst_vaapi_decoder_get_codec_state().
19558 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
19559 supposed to make GstVaapiDecoder own the return GstVideoCodecState
19560 object. Only comment was updated, not the actual code.
19562 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19564 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19565 * gst/vaapi/gstvaapidecode.c:
19566 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
19567 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
19568 i.e. make the GstVaapiDecoder object own the return state so that callers
19569 that want an extra reference to it would just gst_video_codec_state_ref()
19570 it before usage. This aligns the behaviour with what we had before with
19571 gst_vaapi_decoder_get_caps().
19572 This is an ABI incompatible change, library major version was bumped from
19573 previous release (0.5.2).
19575 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19577 * gst/vaapi/gstvaapivideobufferpool.h:
19578 * gst/vaapi/gstvaapivideoconverter_glx.h:
19579 plugins: mark a few more functions as internal.
19580 Mark the following functions are internal, i.e. private to the vaapi plug-in:
19581 - gst_vaapi_video_buffer_pool_get_type()
19582 - gst_vaapi_video_converter_glx_get_type()
19583 - gst_vaapi_video_converter_glx_new()
19585 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19587 * gst/vaapi/gstvaapivideobuffer.c:
19588 plugins: implement GstSurfaceMeta API.
19589 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
19590 an unstable/deprecated API, this makes it possible to support Clutter
19591 sink with minimal changes. Tested against clutter-gst 1.9.92.
19593 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19595 * gst/vaapi/gstvaapisink.c:
19596 vaapisink: optimize GstVideoOverlayInterface::expose().
19597 When render-mode is "overlay", then it is not really useful to peek into
19598 the GstBaseSink::last_buffer, since we have our own video_buffer already
19599 recorded and maintained into GstVaapiSink.
19601 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19603 * gst/vaapi/gstvaapisink.c:
19604 vaapisink: fix memory leak of GstSample objects.
19605 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
19606 This also fixes extra unreferencing of the underlying GstBuffer in the common
19607 path afterwards (for both 0.10 or 1.0).
19609 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19611 * gst-libs/gst/vaapi/gstcompat.h:
19612 * gst/vaapi/gstvaapi.c:
19613 plugins: fix description for gst-inspect.
19614 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
19615 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
19616 incorrectly uses #name for creating the plug-in name, instead of using macro
19617 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
19619 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19623 Update build requirements for GStreamer 1.0.x support. Add section for
19624 ways to report bugs.
19626 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19631 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19633 * gst-libs/gst/vaapi/Makefile.am:
19634 * gst/vaapi/Makefile.am:
19635 Fix make dist to include all source files, in any case.
19636 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
19637 sure to include all source files in either case while generating source
19640 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19643 Bump library major version.
19644 Bump library major version, while preserving a major version of 0 for
19645 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
19646 0.10 based librarieS.
19648 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19650 * gst/vaapi/gstvaapivideomemory.c:
19651 * gst/vaapi/gstvaapivideomemory.h:
19652 plugins: implement direct-rendering mode for raw YUV buffer uploads.
19653 Allow direct-rendering (writes) into target VA surfaces.
19655 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19657 * gst/vaapi/gstvaapivideobufferpool.c:
19658 * gst/vaapi/gstvaapivideomemory.c:
19659 * gst/vaapi/gstvaapivideomemory.h:
19660 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
19661 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
19662 the last component is unmapped. Downloads are not supported yet. The aim
19663 was to first support SW decoding + HW accelerated rendering (vaapisink).
19666 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19668 * gst/vaapi/gstvaapidecode.c:
19669 vaapidecode: submit all decoded frames before decoding a new one.
19670 Make sure to purge all pending frames that were already decoded prior
19671 to decoding a new one. This helps release VA surfaces as early as
19674 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19676 * gst/vaapi/gstvaapidecode.c:
19677 vaapidecode: reply to CAPS queries.
19678 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
19679 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
19680 This fixes fallback to SW decoding if no HW decoder is available.
19682 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19684 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19685 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19686 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19687 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
19688 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19689 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19690 decoder: fix unpaired GstBuffer map/unmaps.
19691 This possibly fixes a few memory leaks along the way.
19693 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19696 * gst-libs/gst/vaapi/gstcompat.h:
19697 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
19698 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19699 * gst/vaapi/Makefile.am:
19700 * gst/vaapi/gstvaapi.c:
19701 * gst/vaapi/gstvaapidecode.c:
19702 * gst/vaapi/gstvaapisink.c:
19703 * gst/vaapi/gstvaapisink.h:
19704 * gst/vaapi/gstvaapiuploader.c:
19706 Allow build against either GStreamer API (0.10 or 1.0).
19707 Introduce a new configure option --with-gstreamer-api that determines
19708 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
19709 Also integrate more compatibility glue into gstcompat.h and plugins.
19711 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19713 * gst/vaapi/gstvaapidecode.c:
19714 * gst/vaapi/gstvaapisink.c:
19715 * gst/vaapi/gstvaapisink.h:
19716 plugins: use new video buffer pools.
19717 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
19718 GstBaseSink::propose_allocation() to expose that pool to upstream
19719 elements; and also implement GstVideoDecoder::decide_allocation() to
19720 actually use that pool (from downstream), if any, or create one.
19721 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19723 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19725 * gst/vaapi/Makefile.am:
19726 * gst/vaapi/gstvaapivideobufferpool.c:
19727 * gst/vaapi/gstvaapivideobufferpool.h:
19728 * gst/vaapi/gstvaapivideomemory.c:
19729 * gst/vaapi/gstvaapivideomemory.h:
19730 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
19731 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
19732 object currently holds a reference to GstVaapiVideoMeta.
19733 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19735 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19737 * gst/vaapi/gstvaapivideometa.c:
19738 * gst/vaapi/gstvaapivideometa.h:
19739 plugins: allow copies of GstVaapiVideoMeta objects.
19740 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
19741 objects created from GstVaapiVideoPool. This is mostly useful to clone a
19742 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
19745 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19747 * gst/vaapi/gstvaapivideometa.c:
19748 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
19749 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
19750 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
19751 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
19754 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19756 * gst/vaapi/Makefile.am:
19757 * gst/vaapi/gstvaapi.c:
19758 * gst/vaapi/gstvaapidecode.c:
19759 * gst/vaapi/gstvaapidownload.c:
19760 * gst/vaapi/gstvaapipluginutil.c:
19761 * gst/vaapi/gstvaapipostproc.c:
19762 * gst/vaapi/gstvaapisink.c:
19763 * gst/vaapi/gstvaapiupload.c:
19764 * gst/vaapi/gstvaapiuploader.c:
19765 * gst/vaapi/gstvaapivideobuffer.c:
19766 * gst/vaapi/gstvaapivideoconverter_glx.c:
19767 * gst/vaapi/gstvaapivideometa.c:
19768 * gst/vaapi/gstvaapivideometa.h:
19769 plugins: initial port to GStreamer 1.0.
19770 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
19771 is rather minimalistic so that to test the basic functionality.
19772 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
19773 needs polishing wrt. to GStreamer 1.x functionality and the former are
19774 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
19775 which are yet to be implemented.
19776 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19778 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19780 * gst-libs/gst/vaapi/gstcompat.h:
19783 * tests/simple-decoder.c:
19784 * tests/test-subpicture.c:
19785 tests: add support for GStreamer 1.0.
19787 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19790 * gst-libs/gst/vaapi/gstcompat.h:
19791 * gst-libs/gst/vaapi/gstvaapicontext.c:
19792 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19793 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19794 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19795 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
19796 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19797 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19798 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19799 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19800 * gst-libs/gst/vaapi/gstvaapiimage.c:
19801 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
19802 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19803 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
19804 * gst-libs/gst/vaapi/gstvaapisurface.h:
19805 Add initial support for GStreamer 1.0.
19806 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
19807 core decoding library. The changes are kept rather minimal here so that
19808 the library retains as little dependency as possible on core GStreamer
19810 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19812 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19814 * gst/vaapi/gstvaapisink.c:
19815 vaapisink: improve check for raw YUV format mode.
19816 Improve check for raw YUV format modes by avoiding checks against strings
19817 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
19818 GstBaseSink::set_caps() is called first and if VA surface format mode is
19819 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
19820 called before set_caps(), then we just make a full check. This one is
19821 pretty rare though, e.g. it usually happens once for custom pipelines.
19823 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19825 * gst/vaapi/gstvaapipluginutil.c:
19826 plugins: don't fail if there is no overlay composition to apply.
19827 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
19828 was found. i.e. return success (TRUE). This was harmless though extra
19829 debug messages are not nice.
19830 This is a regression introduced by commit 95b8659.
19832 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19834 * gst/vaapi/gstvaapidecode.c:
19835 * gst/vaapi/gstvaapidecode.h:
19836 vaapidecode: expose the exact set of supported HW decoders.
19837 Don't return static caps that don't mean anything for the underlying codecs
19838 that are actually supported for decoding. i.e. always allocate a VA display
19839 and retrieve the exact set of HW decoders available. That VA display may be
19840 re-used later on during negotiation through GstVideoContext "prepare-context".
19841 This fixes fallback to SW decoding if no HW decoder is available.
19843 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19845 * docs/reference/libs/libs-sections.txt:
19846 * gst-libs/gst/vaapi/gstvaapicontext.c:
19847 * gst-libs/gst/vaapi/gstvaapicontext.h:
19848 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19849 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19850 decoder: drop obsolete functions.
19851 Drop the following functions that are now obsolete:
19852 - gst_vaapi_context_get_surface()
19853 - gst_vaapi_context_put_surface()
19854 - gst_vaapi_context_find_surface_by_id()
19855 - gst_vaapi_surface_proxy_new()
19856 - gst_vaapi_surface_proxy_get_context()
19857 - gst_vaapi_surface_proxy_set_context()
19858 - gst_vaapi_surface_proxy_set_surface()
19859 This is an API change.
19861 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19863 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19864 decoder: delegate surface size check to VA context reset.
19865 Now that the surface pool is reference counted in the surface proxy wrapper,
19866 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
19867 Besides, this check is already performed in gst_vaapi_context_reset_full().
19869 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19871 * docs/reference/libs/libs-sections.txt:
19872 * gst-libs/gst/vaapi/gstvaapicontext.c:
19873 * gst-libs/gst/vaapi/gstvaapicontext.h:
19874 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19875 * gst-libs/gst/vaapi/gstvaapisurface.h:
19876 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19877 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19878 decoder: simplify acquisition/release of spare surface.
19879 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
19880 proxy from the context surface pool. This change also makes sure to retain
19881 the parent surface pool in the proxy.
19882 Besides, it was also totally useless to attach/detach parent context to
19883 VA surface each time we acquire/release it. Since the whole context owns
19884 all associated VA surfaces, we can mark this as such only once and for all.
19886 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19889 Bump version for development.
19891 === release 0.5.2 ===
19893 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19899 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19904 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19906 * gst/vaapi/gstvaapipluginutil.c:
19907 * gst/vaapi/gstvaapisink.c:
19908 plugins: fix usage of gst_vaapi_reply_to_query().
19909 Make gst_vaapi_reply_to_query() first check whether the query argument
19910 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
19911 Then, make sure vaapisink propagates the query to the parent class if
19912 it is not a video-context query.
19914 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19916 * gst/vaapi/gstvaapivideobuffer.c:
19917 * gst/vaapi/gstvaapivideobuffer.h:
19918 plugins: streamline video buffers.
19919 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
19920 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
19921 gst_vaapi_video_buffer_get_meta().
19923 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19925 * docs/reference/libs/libs-sections.txt:
19926 * gst-libs/gst/vaapi/Makefile.am:
19927 * gst/vaapi/Makefile.am:
19928 * gst/vaapi/gstvaapidecode.c:
19929 * gst/vaapi/gstvaapidownload.c:
19930 * gst/vaapi/gstvaapipostproc.c:
19931 * gst/vaapi/gstvaapisink.c:
19932 * gst/vaapi/gstvaapiupload.c:
19933 * gst/vaapi/gstvaapiuploader.c:
19934 * gst/vaapi/gstvaapivideobuffer.h:
19935 * gst/vaapi/gstvaapivideoconverter_glx.c:
19936 * gst/vaapi/gstvaapivideometa.c:
19937 * gst/vaapi/gstvaapivideometa.h:
19938 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
19939 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
19940 actual plugin elements. That's only useful there. Also inline reference
19941 counting code from GstVaapiMiniObject.
19943 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19945 * gst/vaapi/Makefile.am:
19946 * gst/vaapi/gstvaapidecode.c:
19947 * gst/vaapi/gstvaapidownload.c:
19948 * gst/vaapi/gstvaapipluginbuffer.c:
19949 * gst/vaapi/gstvaapipluginbuffer.h:
19950 * gst/vaapi/gstvaapipostproc.c:
19951 * gst/vaapi/gstvaapiupload.c:
19952 * gst/vaapi/gstvaapiuploader.c:
19953 * gst/vaapi/gstvaapivideobuffer.c:
19954 * gst/vaapi/gstvaapivideobuffer.h:
19955 plugins: drop gstvaapipluginbuffer.[ch] helper files.
19956 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
19957 to gstvaapivideobuffer.[ch], and drop the obsolete files.
19959 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19961 * docs/reference/libs/libs-sections.txt:
19962 * docs/reference/libs/libs.core.types:
19963 * gst-libs/gst/vaapi/Makefile.am:
19964 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
19965 * gst/vaapi/Makefile.am:
19966 * gst/vaapi/gstvaapidownload.h:
19967 * gst/vaapi/gstvaapipluginbuffer.c:
19968 * gst/vaapi/gstvaapipostproc.h:
19969 * gst/vaapi/gstvaapivideobuffer.c:
19970 * gst/vaapi/gstvaapivideobuffer.h:
19971 * gst/vaapi/gstvaapivideoconverter_glx.h:
19972 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
19973 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
19974 actual plugin elements. That's only useful there.
19976 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19978 * gst/vaapi/gstvaapipluginutil.c:
19979 * gst/vaapi/gstvaapipluginutil.h:
19980 * gst/vaapi/gstvaapisink.c:
19981 * gst/vaapi/gstvaapivideoconverter_glx.c:
19982 plugins: use common helper function to apply compositions.
19983 Use common gst_vaapi_apply_composition() helper function to apply compositions
19984 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
19986 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19988 * gst-libs/gst/vaapi/Makefile.am:
19989 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
19990 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
19991 * gst/vaapi/Makefile.am:
19992 * gst/vaapi/gstvaapipluginbuffer.c:
19993 * gst/vaapi/gstvaapivideoconverter_glx.c:
19994 * gst/vaapi/gstvaapivideoconverter_glx.h:
19995 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
19996 Make sure libgstvaapi core decoding library doesn't include un-needed
19997 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
19998 Besides, even if the vaapisink element is not used, we are bound to have
19999 a correctly populated GstSurfaceBuffer from vaapidecode.
20000 Also clean-up the file along the way.
20002 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20004 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20005 vc1: fix use of possibly uninitialized variable.
20006 In decode_codec_data(), force initialization of format to zero so that
20007 we can catch up cases where codec-data has neither "format" nor "wmvversion"
20008 fields, thus making it possible to gracefully fail in this case.
20010 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20012 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
20013 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
20015 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20017 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20018 * gst-libs/gst/vaapi/gstvaapidecoder.h:
20019 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20020 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20021 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
20022 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20023 decoder: sanitize codec-data decoding.
20024 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
20025 codec-data in the decoder sub-class. Provide a common shared helper
20026 function to do the actual work and delegating further to the sub-class.
20028 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20030 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
20031 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20032 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
20033 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
20034 decoder: get rid of GstVaapiDecoderUnit::buffer field.
20035 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
20036 useless nowadays as creating sub-buffers doesn't bring any value. It
20037 actually means more memory allocations. We can't do without that in
20038 JPEG and MPEG-4:2 decoders.
20040 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20042 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20043 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
20044 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20045 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20046 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20047 decoder: sanitize uses of codec frame input buffer (cosmetics).
20048 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
20051 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20053 * gst/vaapi/gstvaapisink.c:
20054 vaapisink: add helper function to apply a composition buffer.
20055 Simplify application of a composition buffer to a GstVaapiSurface, and
20056 all its peers, until that function is eventually promoted to libgstvaapi.
20058 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20060 * gst/vaapi/gstvaapisink.c:
20061 vaapisink: fix support for raw YUV buffers.
20062 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
20063 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
20064 However, we previously assumed in that case that it was a "native" VA buffer,
20065 thus not calling into GstVaapiUploader::process().
20067 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20069 * gst-libs/gst/vaapi/gstcompat.h:
20070 * gst/vaapi/gstvaapidecode.c:
20071 * gst/vaapi/gstvaapidownload.c:
20072 * gst/vaapi/gstvaapipostproc.c:
20073 * gst/vaapi/gstvaapisink.c:
20074 * gst/vaapi/gstvaapiupload.c:
20075 plugins: use modern GstElement metadata information.
20076 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
20077 basically is the same as gst_element_class_set_details_simple() in
20078 GStreamer 0.10 context.
20080 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20082 * gst/vaapi/gstvaapidecode.c:
20083 * gst/vaapi/gstvaapidownload.c:
20084 * gst/vaapi/gstvaapipostproc.c:
20085 * gst/vaapi/gstvaapisink.c:
20086 * gst/vaapi/gstvaapiupload.c:
20087 plugins: move up interfaces (cosmetics).
20088 Move GstImplementsInterface and GstVideoContext support functions up
20089 so that to keep a clear separation between the plugin element and its
20092 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20094 * gst/vaapi/gstvaapisink.c:
20095 * gst/vaapi/gstvaapiuploader.c:
20096 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
20097 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
20098 Also use the newly added gst_vaapi_image_format_from_structure() helper
20099 in GstVaapiUploader::ensure_allowed_caps().
20101 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20103 * gst/vaapi/gstvaapipluginbuffer.c:
20104 plugins: fix creation of video buffer from another source buffer.
20105 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
20106 buffer video meta since it would be unreference'd from the get_buffer()
20107 helper function. For other cases, we still use (steal) the newly created
20110 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20112 * gst/vaapi/gstvaapipluginbuffer.c:
20113 * gst/vaapi/gstvaapipluginutil.c:
20114 plugins: include "sysdeps.h" header instead of "config.h".
20116 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20118 * gst-libs/gst/vaapi/gstcompat.h:
20120 tests: modernize GstTypeFind functions.
20121 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
20122 exactly correspond to the expected behaviour.
20124 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20128 * tests/test-decode.c:
20129 * tests/test-display.c:
20130 * tests/test-h264.c:
20131 * tests/test-h264.h:
20132 * tests/test-jpeg.c:
20133 * tests/test-jpeg.h:
20134 * tests/test-mpeg2.c:
20135 * tests/test-mpeg2.h:
20136 * tests/test-mpeg4.c:
20137 * tests/test-mpeg4.h:
20138 * tests/test-textures.c:
20139 * tests/test-vc1.c:
20140 * tests/test-vc1.h:
20141 * tests/test-windows.c:
20142 tests: fix license templates.
20144 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20146 * tests/test-display.c:
20147 tests: use gst_vaapi_image_format_from_structure() in test-display.
20148 Use gst_vaapi_image_format_from_structure() helper in test-display and
20149 then extract a VAImageFormat from it instead of relying on GstCaps for
20150 YUV and RGB formats.
20152 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20157 * tests/test-decode.c:
20158 * tests/test-display.c:
20159 * tests/test-subpicture.c:
20160 * tests/test-textures.c:
20161 * tests/test-windows.c:
20162 tests: include "sysdeps.h" header instead of "config.h".
20164 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20166 * gst-libs/gst/vaapi/gstcompat.h:
20167 * gst-libs/gst/vaapi/gstvaapicontext.c:
20168 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
20169 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
20170 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
20171 function with GStreamer 0.10 compatible semantics, or that tries to
20172 approach the current meaning. Basically, this is also just about moving
20173 the helper to gstcompat.h.
20175 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20177 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
20178 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
20179 image: add gst_vaapi_image_format_from_structure() helper.
20180 Add helper function to convert video formats from a GstStructure to a
20181 plain GstVaapiImageFormat.
20183 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20185 * gst-libs/gst/vaapi/Makefile.am:
20186 * gst-libs/gst/vaapi/gstcompat.h:
20187 * gst-libs/gst/vaapi/sysdeps.h:
20188 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
20190 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20192 * gst-libs/gst/vaapi/sysdeps.h:
20193 sysdeps: add more standard includes by default.
20195 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20198 configure: improve GStreamer API version checks.
20200 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20203 * debian.upstream/Makefile.am:
20204 * debian.upstream/changelog.in:
20205 * debian.upstream/control.in:
20206 * debian.upstream/gstreamer-vaapi-doc.install.in:
20207 * debian.upstream/libgstvaapi-dev.install.in:
20208 * debian.upstream/libgstvaapi-drm.install.in:
20209 * debian.upstream/libgstvaapi-glx.install.in:
20210 * debian.upstream/libgstvaapi-wayland.install.in:
20211 * debian.upstream/libgstvaapi-x11.install.in:
20212 * debian.upstream/libgstvaapi.install.in:
20213 * docs/reference/libs/Makefile.am:
20214 * docs/reference/libs/libs-docs.xml.in:
20215 * docs/reference/plugins/Makefile.am:
20216 * docs/reference/plugins/plugins-docs.xml.in:
20217 * gst-libs/gst/vaapi/Makefile.am:
20218 * gst/vaapi/Makefile.am:
20219 * pkgconfig/Makefile.am:
20220 * pkgconfig/gstreamer-vaapi-drm.pc.in:
20221 * pkgconfig/gstreamer-vaapi-glx.pc.in:
20222 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
20223 * pkgconfig/gstreamer-vaapi-x11.pc.in:
20224 * pkgconfig/gstreamer-vaapi.pc.in:
20225 * tests/Makefile.am:
20226 configure: rename GST_MAJORMINOR to GST_API_VERSION.
20228 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20231 configure: improve check for H.264 codecparser.
20233 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
20235 * gst/vaapi/gstvaapiuploader.c:
20236 vaapiupload: fix illegal write in ensure_image().
20237 Fix ensure_image() to only zero-initialize the first line of each plane.
20238 Properly initializing each plane to their full vertical resolution would
20239 require to actually compute it based on the image format.
20240 In particular, for NV12 images, the UV plane has half vertical resolution
20241 vs. the Y plane. So using the full image height to initialize the UV plane
20242 will obviously lead to a buffer overflow. Likewise for other YUV format.
20243 Since ensure_image() is only a helper function to initialize something,
20244 and not necessarily the whole thing, it is fine to initializ the first
20245 line only. Besides, the target surface is not rendered either.
20246 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20248 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
20250 * gst-libs/gst/codecparsers/Makefile.am:
20251 * gst-libs/gst/video/Makefile.am:
20252 build: fix compiling of local GstVideoDecoder and codecparsers.
20253 Generated source files were missing a dependency on the complete set of
20254 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
20255 to build and almost every codec parser source depends on parserutils.h.
20256 https://bugs.freedesktop.org/show_bug.cgi?id=59575
20257 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
20258 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20260 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20262 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20263 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
20264 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
20265 there is no pred_weight_table() that was parsed.
20266 This is a workaround for the VA intel-driver on Ivy Bridge.
20268 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20270 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20271 h264: use new profile definitions from codecparsers.
20273 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20275 * ext/codecparsers:
20276 codecparsers: update to gst-vaapi-branch commit 500bc02.
20277 500bc02 h264: add profile enums
20279 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20284 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20286 * ext/codecparsers:
20287 codecparsers: update to gst-vaapi-branch commit 31b1c57.
20288 8957fb7 mpeg2: add helpers to convert quantization matrices
20289 07c4034 mpeg2: store quantization matrices in zigzag scan order
20291 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20293 * tests/simple-decoder.c:
20294 tests: simple-decoder: fix build on older platforms.
20295 Make simple-decoder build and execute correctly on older platforms,
20296 and more precisely older versions of glib.
20298 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20300 * gst-libs/gst/vaapi/glibcompat.h:
20301 glibcompat: add replacement for g_async_queue_timeout_pop().
20302 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
20303 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
20304 new data to arrive in the queue.
20306 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20308 * gst-libs/gst/vaapi/glibcompat.h:
20309 glibcompat: add replacement for g_cond_wait().
20311 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20313 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20314 mpeg2: fix decoding of 4K videos.
20315 Account for slice_vertical_position_extension when vertical_size > 2800.
20317 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20319 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20320 mpeg2: fix decoding of sequence_end().
20321 There shall be only one place to call decode_current_picture(), and this
20322 is in the end_frame() hook. The EOS unit is processed after end_frame()
20323 so this means we cannot have a valid picture to decode/output at this
20326 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20328 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20329 mpeg2: improve robustness when packets are missing.
20330 Improve robustness when some expected packets where not received yet
20331 or that were not correctly decoded. For example, don't try to decode
20332 a picture if there was no valid sequence or picture headers.
20334 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20336 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20337 decoder: handle decode-only frames in raw API mode.
20338 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
20339 surface proxy, i.e. with a valid VA surface. This means that any frame
20340 marked as decode-only is simply skipped.
20342 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20344 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20345 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
20346 decoder: allow frames to be dropped.
20347 If the decoder was not able to decode a frame because insufficient
20348 information was available, e.g. missing sequence or picture header,
20349 then allow the frame to be gracefully dropped without generating
20351 It is also possible that a frame is not meant to be displayed but
20352 only used as a reference, so dropping that frame is also a valid
20353 operation since GstVideoDecoder base class has extra references to
20354 that GstVideoCodecFrame that needs to be released.
20356 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20358 * gst/vaapi/gstvaapidecode.c:
20359 vaapidecode: handle decode-only frames.
20360 Decode-only frames may not have a valid surface proxy. So, simply discard
20361 them gracefully, i.e. don't create meta data information. GstVideoDecoder
20362 base class will properly handle this case and won't try to push any buffer
20363 to downstream elements.
20365 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20367 * gst/vaapi/gstvaapidecode.c:
20368 vaapidecode: add support for post-seek semantics reset.
20369 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
20370 and the creation of a new VA decoder.
20371 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20373 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20376 Bump version for development.
20378 === release 0.5.1 ===
20380 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20386 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20388 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20389 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
20391 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20393 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
20394 decoder: fix documentation for GstVaapiDecoderFrame.
20395 Drop superfluous reference to prev_slice member.
20397 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20399 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20400 decoder: assume current frame is complete at end-of-stream.
20401 Assume we got a complete frame when the end-of-stream is reached and that
20402 the current codec frame contains at least one slice data unit.
20404 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20408 * debian.upstream/copyright:
20409 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
20410 * gst-libs/gst/vaapi/gstvaapicontext.c:
20411 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20412 * gst-libs/gst/vaapi/gstvaapidecoder.h:
20413 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
20414 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
20415 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
20416 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
20417 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20418 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
20419 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20420 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20421 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20422 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20423 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
20424 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
20425 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
20426 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20427 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20428 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20429 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
20430 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
20431 * gst-libs/gst/vaapi/gstvaapiprofile.h:
20432 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
20433 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
20434 * gst-libs/gst/vaapi/gstvaapisurface.c:
20435 * gst-libs/gst/vaapi/gstvaapiutils.c:
20436 * gst-libs/gst/vaapi/gstvaapiutils.h:
20437 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
20438 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
20439 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
20440 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20441 * gst-libs/gst/vaapi/sysdeps.h:
20442 * gst/vaapi/gstvaapidecode.c:
20443 * gst/vaapi/gstvaapidownload.c:
20444 * gst/vaapi/gstvaapipluginbuffer.c:
20445 * gst/vaapi/gstvaapipluginbuffer.h:
20446 * gst/vaapi/gstvaapipostproc.c:
20447 * gst/vaapi/gstvaapisink.c:
20448 * gst/vaapi/gstvaapiupload.c:
20449 * gst/vaapi/gstvaapiuploader.c:
20451 * tests/test-decode.c:
20452 * tests/test-subpicture.c:
20453 legal: fix year for some copyright notices (2013).
20455 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20457 * gst-libs/gst/vaapi/gstvaapicontext.h:
20458 * gst-libs/gst/vaapi/gstvaapidecoder.h:
20459 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20460 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
20461 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20462 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
20463 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20464 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
20465 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
20466 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
20467 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
20468 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
20469 * gst-libs/gst/vaapi/gstvaapisurface.c:
20470 * gst-libs/gst/vaapi/gstvaapisurface.h:
20471 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
20472 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
20473 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
20474 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
20475 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
20476 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
20477 * gst/vaapi/gstvaapidecode.h:
20478 * gst/vaapi/gstvaapisink.h:
20479 * tests/test-subpicture.c:
20480 legal: fix year for some copyright notices (2012).
20482 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20484 * gst-libs/gst/vaapi/gstvaapicompat.h:
20485 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
20486 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
20487 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
20488 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
20489 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
20490 * gst-libs/gst/vaapi/gstvaapiobject.c:
20491 * gst-libs/gst/vaapi/gstvaapiobject.h:
20492 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
20493 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
20494 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
20495 * gst-libs/gst/vaapi/gstvaapiprofile.c:
20496 * gst-libs/gst/vaapi/gstvaapiprofile.h:
20497 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
20498 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
20499 * gst-libs/gst/vaapi/gstvaapitexture.c:
20500 * gst-libs/gst/vaapi/gstvaapitexture.h:
20501 * gst-libs/gst/vaapi/gstvaapitypes.h:
20502 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
20503 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
20504 * gst-libs/gst/vaapi/gstvaapivalue.c:
20505 * gst-libs/gst/vaapi/gstvaapivalue.h:
20506 * gst-libs/gst/vaapi/gstvaapivideopool.c:
20507 * gst-libs/gst/vaapi/gstvaapivideopool.h:
20508 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20509 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20510 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20511 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20512 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20513 * tests/test-display.c:
20514 * tests/test-surfaces.c:
20515 * tests/test-windows.c:
20516 legal: add Intel copyright on modified files.
20518 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20523 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20525 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20526 wayland: use a local event queue to avoid lock contention.
20527 This improves performance when rendering several surfaces from within
20528 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
20530 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20532 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20533 wayland: fix thread-safe issues.
20534 The Wayland API is not fully thread-safe and client applications shall
20535 perform locking themselves on key functions. Besides, make sure to
20536 release the lock if the _render() function fails.
20538 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20540 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20541 wayland: really wait until the pending redraw completed.
20542 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
20543 the completion of the redraw request. Use it in _render() function to
20544 actually block until the previous draw request is completed.
20546 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20548 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20549 wayland: fix frame_redraw callback.
20550 The redraw callback needs to be attached to the surface prior to the
20551 commit. Otherwise, the callback notifies the next surface repaint,
20552 which is not the desired behaviour. i.e. we want to be notified for
20553 the surface we have just filled.
20554 Another isse was the redraw_pending was reset before the actual completion
20555 of the frame redraw callback function, thus causing concurrency issues.
20556 e.g. the callback could have been called again, but with a NULL buffer.
20558 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20560 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
20561 wayland: fix display sharing.
20562 When the Wayland display is shared, we still have to create our own local
20563 shell and compositor objects, since they are not propagated from the cache.
20564 Likewise, we also need to determine the display size or vaapisink would
20565 fail to account for the display aspect ratio, and will try to create a 0x0
20568 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20570 * ext/codecparsers:
20571 codecparsers: update to gst-vaapi-branch commit 21a098e.
20572 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
20573 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
20575 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20577 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20578 vc1: handle frames with multiple slices.
20580 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20582 * ext/codecparsers:
20583 codecparsers: update to gst-vaapi-branch commit 3fba492.
20584 3fba492 vc1: add API to parse slice headers
20586 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20588 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20589 vc1: handle CLOSED_ENTRY.
20590 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
20591 lack a reference anchor picture, these B pictures shall be discarded.
20592 https://bugs.freedesktop.org/show_bug.cgi?id=59505
20594 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20596 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20597 vc1: cope with latest codecparser changes.
20598 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
20599 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
20600 the actual value of DQPROFILE.
20602 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20604 * ext/codecparsers:
20605 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
20606 3d2c67c vc1: simplify GstVC1VopDquant structure
20608 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20610 * ext/codecparsers:
20611 codecparsers: update to gst-vaapi-branch commit 5d33da8.
20612 5d33da8 vc1: fix bitplanes decoding
20613 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
20614 0b13d2b vc1: fix calculation of ALTPQUANT
20615 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
20617 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20619 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20620 vc1: fix size of encapsulated BDU.
20621 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
20622 the size of the BDU data, starting from offset, i.e. after any start
20624 This fixes a buffer overflow during the unescaping process.
20626 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
20628 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20629 vc1: fix decoding of WMV3 videos in AVI format.
20630 The AVI demuxer (avidemux) does not set a proper "format" attribute
20631 to the generated caps. So, try to recover the video codec format from
20632 the "wmvversion" property instead.
20633 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20635 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20637 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20638 vc1: review and report errors accordingly.
20639 Use GST_ERROR() to report real errors instead of hiding them into
20642 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20644 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20645 vc1: don't create GstBuffers for all decoder units.
20646 Don't create temporary GstBuffers for all decoder units, even if they
20647 are lightweight "sub-buffers", since it is not really necessary to keep
20648 the buffer data around.
20650 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20652 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20653 vc1: implement flush() hook.
20654 Make it a simple DPB flush.
20656 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20658 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20659 vc1: implement {start,end}_frame() hooks.
20660 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
20661 that to create new VA context earlier and submit VA pictures to the
20662 HW for decoding as soon as possible. i.e. don't wait for the next
20663 frame to start decoding the previous one.
20665 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20667 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20668 vc1: fix next POC for new sequence layers.
20669 Fix next POC when a new sequence layer is reached. At this point, we
20670 need to reset any previous reference picture, i.e. non B-frame.
20672 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20674 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20675 vc1: port to common GstVaapiDpb interface.
20676 Use GstVaapiDpb interface instead of maintaining our own prev and next
20677 picture pointers. While doing so, try to derive a sensible POC value.
20678 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20680 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20682 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20683 vc1: fix decode_sequence_end() to return success, not EOS.
20685 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20687 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20688 decoder: simplify gst_vaapi_decoder_get_surface().
20689 Avoid extraenous branches, i.e. immediately return with success once we
20690 have a decoded frame available.
20692 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20694 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20695 decoder: optimize and clean decode_step() up.
20696 Avoid usage of goto. Simplify decode_step() process to first accumulate all
20697 pending buffers into the GstAdapter, and then parse and decode units from
20698 that input adapter. Stop the process once a frame is fully decoded or an
20701 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20703 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20704 display: move "vaapi" debug init to libgstvaapi_init_once().
20706 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20709 * gst-libs/gst/vaapi/Makefile.am:
20710 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20711 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
20712 display: dump gstreamer-vaapi version for debugging purposes.
20714 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20716 * tests/Makefile.am:
20717 tests: simple-decoder: fix build with built-in videoutils.
20718 Fix build with built-in videoutils, i.e. when system GStreamer installation
20719 does not know about GstVideoDecoder API.
20721 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20723 * tests/simple-decoder.c:
20724 tests: simple-decoder: flush decoded frames at EOS.
20725 Flush the remaining decoded frames when an end-of-stream is reached.
20727 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20729 * tests/simple-decoder.c:
20730 tests: simple-decoder: drop use of GstVaapiVideoMeta.
20731 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
20732 in libgstvaapi forever. Rather, that'd move to plugin elements at some
20735 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20737 * tests/simple-decoder.c:
20738 tests: simple-decoder: add benchmark mode.
20739 Add --benchmark option to enable benchmark mode where rendering is not
20740 synchronized with presentation timestamps of the decoded surfaces.
20742 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20744 * tests/Makefile.am:
20745 * tests/simple-decoder.c:
20746 tests: simple-decoder: honour framerate from the bitstream.
20747 Try to honour the framerate from the bitstream, or cap the playback to
20750 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20752 * tests/simple-decoder.c:
20753 tests: simple-decoder: set window size to the surface dimensions.
20754 Set the window size to the decoded surface dimensions, if the user has
20755 not requested the application to run in full-screen mode. Besides, no
20756 effort is made to preserve aspect ratio or to center the video within
20759 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20761 * tests/Makefile.am:
20762 * tests/simple-decoder.c:
20763 tests: add simple decoder application.
20764 Add simple decoder application to show off decoding capabilities from
20765 raw bitstreams, for debugging or performance evaluation purposes.
20767 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20769 * tests/Makefile.am:
20772 tests: add codec helper utils.
20773 Add helper functions to determine the codec type from a specific file
20774 or utility functions to convert from codec type to GstCaps or from
20775 codec name to codec type.
20777 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20780 tests: allow fullscreen mode.
20781 Add new --fullscreen|-f option to create new windows in fullscreen mode.
20783 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20785 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20786 h264: implement GstVaapiDecoder::flush() as a DPB flush.
20788 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20790 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20791 h264: handle end-of-stream NALU.
20792 Handle <end-of-stream> NAL unit to actually flush any pending picture
20795 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20797 * gst/vaapi/gstvaapidecode.c:
20798 vaapidecode: handle EOS events.
20799 Flush all decoded frames to downstream when EOS is received. This is
20800 performed by implementing GstVideoDecoder::finish() hook.
20802 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20804 * gst/vaapi/gstvaapidecode.c:
20805 vaapidecode: split gvd_handle_frame() into decode/push frames.
20806 Split GstVideoDecoder::handle_frame() implementation into two functions:
20807 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
20808 for purging all decoded frames and submit them downstream.
20810 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20812 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20813 * gst-libs/gst/vaapi/gstvaapidecoder.h:
20814 decoder: add GstVaapiDecoder::flush() hook.
20816 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20818 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20819 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
20820 decoder: fix check for end-of-stream in raw API mode.
20821 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
20822 if the end-of-stream was already reached at the previous iteration.
20824 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20826 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20827 decoder: make decode_step() return once the frame is decoded.
20828 Make sure we always have a free surface left to use for decoding the
20829 current frame. This means that decode_step() has to return once a frame
20830 gets decoded. If the current adapter contains more buffers with valid
20831 frames, they will get parsed and decoded on subsequent iterations.
20833 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20835 * ext/codecparsers:
20836 codecparsers: update to gst-vaapi-branch commit b47983a.
20837 8840c2d h264: zero-initialize SPS VUI parameters
20839 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20842 Bump version for development.
20844 === release 0.5.0 ===
20846 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20852 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20854 * docs/reference/libs/libs-docs.xml.in:
20855 * docs/reference/libs/libs-sections.txt:
20856 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20857 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20858 * gst-libs/gst/vaapi/gstvaapiprofile.h:
20859 docs: expose new interfaces.
20861 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20866 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20868 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
20869 dpb: cosmetics (clean-ups).
20871 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20873 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
20874 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
20875 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20876 dpb: port to GstVaapiMiniObject.
20878 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20880 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
20881 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
20882 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20883 dpb: drop GstVaapiDpb2 interface, keep only one class.
20884 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
20885 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
20886 around the specified picture POC.
20888 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20890 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
20891 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
20892 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20893 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
20894 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
20895 useful to other decoders that require 2 reference pictures, e.g. VC-1.
20896 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20898 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20901 Bump version for pre-release.
20903 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20908 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
20911 * gst-libs/gst/vaapi/gstvaapicontext.c:
20912 * gst-libs/gst/vaapi/gstvaapiutils.c:
20913 * gst-libs/gst/vaapi/sysdeps.h:
20914 * tests/test-subpicture.c:
20915 overlay: fix build without advanced GstVideoOverlayFormatFlags.
20916 Check for global-alpha support in GstVideoOverlayComposition API.
20917 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20919 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20921 * tests/test-subpicture.c:
20922 tests: add support for global-alpha subpictures.
20923 Add --global-alpha option to test-subpicture.
20925 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20927 * tests/Makefile.am:
20928 * tests/test-subpicture.c:
20929 tests: use GstVideoOverlayComposition API for subpicture test.
20931 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20933 * tests/Makefile.am:
20934 * tests/test-subpicture.c:
20935 tests: use common decoder helpers for subpicture test.
20936 Use common decoder helpers for subpicture test, thus allowing to decode
20937 sample images in an alternate format.
20939 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20941 * tests/Makefile.am:
20944 * tests/test-decode.c:
20945 tests: add decoder helpers.
20947 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20949 * gst-libs/gst/vaapi/gstvaapicontext.c:
20950 overlay: fix ordering of composition layers.
20951 Make sure to maintain the association order of composition layers when
20952 GstVideoOverlayRectangle objects are kept around (cached).
20954 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
20956 * gst-libs/gst/vaapi/gstvaapicontext.c:
20957 overlay: fix support for global-alpha.
20958 Fix support for global-alpha subpictures. The previous changes brought
20959 the ability to check for GstVideoOverlayRectangle changes by comparing
20960 the underlying pixel buffer pointers. If sequence number and pixel data
20961 did not change, then this is an indication that only the global-alpha
20962 value changed. Now, try to update the underlying VA subpicture global-alpha
20964 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20966 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20968 * gst-libs/gst/vaapi/gstvaapicontext.c:
20969 overlay: detect render-rect changes.
20970 Don't re-upload VA subpicture if only the render rectangle changed.
20971 Rather deassociate the subpicture and re-associate it with the new
20974 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20976 * gst-libs/gst/vaapi/gstvaapicontext.c:
20977 overlay: fix check for pixels buffer change.
20978 A GstVideoOverlayRectangle is created whenever the underlying pixels data
20979 change. However, when global-alpha is supported, it is possible to re-use
20980 the same GstVideoOverlayRectangle but with a change to the global-alpha
20981 value. This process causes a change of sequence number, so we can no longer
20983 Still, if sequence numbers did not change, then there was no change in
20984 global-alpha either. So, we need a way to compare the underlying GstBuffer
20985 pointers. There is no API to retrieve the original pixels buffer from
20986 a GstVideoOverlayRectangle. So, we use the following heuristics:
20987 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
20988 format flags from which the GstVideoOverlayRectangle was created. This
20989 will work if there was no prior consumer of the GstVideoOverlayRectangle
20990 with alternate (non-"native") format flags.
20991 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
20992 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
20993 with flags that match the subpicture. This is needed to cope with
20994 platforms that don't support global-alpha in HW, so the gst-video
20995 layer takes care of that and fixes this up with a possibly new
20996 GstBuffer, and hence pixels data (or) in-place by caching the current
20997 global-alpha value applied. So we have to determine the rectangle
20998 was previously used, based on what previous flags were used to
20999 retrieve the ARGB pixels buffer.
21001 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21003 * gst-libs/gst/vaapi/gstvaapicontext.c:
21004 overlay: optimize cache at the GstVideoOverlayRectangle level.
21005 We previously assumed that an overlay composition changed if the number
21006 of overlay rectangles in there actually changed, or that the rectangle
21007 was updated, and thus its seqnum was also updated.
21008 Now, we can cope with cases where the GstVideoOverlayComposition grew
21009 by one or a few more overlay rectangles, and the initial overlay rectangles
21012 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21014 * gst-libs/gst/vaapi/gstvaapicontext.c:
21015 overlay: simplify caching of GstVideoOverlayComposition objects.
21016 Create the GPtrArray once in the _init() function and destroy it only
21017 in the _finalize() function. Then use overlay_clear() to remove all
21018 subpicture associations for intermediate updates, don't recreate the
21020 Make GstVaapiOverlayRectangle a reference counted object. Also make
21021 sure that overlay_rectangle_new() actually creates and associates the
21024 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
21026 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
21027 * gst-libs/gst/vaapi/gstvaapiutils.c:
21028 * gst-libs/gst/vaapi/gstvaapiutils.h:
21029 overlay: add support for global-alpha.
21030 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
21031 the same code path could also work for premultiplied-alpha but this
21033 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21035 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
21037 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21038 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21039 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
21040 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
21041 * gst-libs/gst/vaapi/gstvaapisurface.c:
21043 * tests/test-subpicture.c:
21044 subpicture: add support for global-alpha.
21045 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
21046 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
21047 to address this feature.
21048 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21050 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21052 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
21053 * gst-libs/gst/vaapi/gstvaapiutils.c:
21054 * gst-libs/gst/vaapi/gstvaapiutils.h:
21055 subpicture: add premultiplied-alpha and global-alpha feature flags.
21056 Add premultiplied-alpha and global-alpha feature flags, along with converters
21057 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
21058 also necessary for GstVideoOverlayComposition API.
21060 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21062 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21063 display: allow image/subpicture formats with additional flags.
21064 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
21065 and any additional flags needed. Currently, all flags are set to zero.
21067 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21069 * gst-libs/gst/codecparsers/Makefile.am:
21070 * gst-libs/gst/video/Makefile.am:
21071 * tests/Makefile.am:
21072 libs: fix build of submodule wrappers.
21073 Make sure to build codecparsers/ and videoutils/ sources against the
21074 newly generated headers when out-of-source builds are used.
21076 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21079 configure: fix checks for packages installed in non-standard roots.
21081 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21083 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
21084 decoder: fix mini object implementation on 64-bit systems.
21085 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
21086 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
21087 Only a gsize can hold all bits of a pointer.
21088 Thanks to Ouping Zhang for spotting this error.
21090 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21092 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21093 mpeg2: optimize scan for the end of the frame.
21094 Heuristic: if the second start-code is available, check whether that
21095 one marks the start of a new frame because e.g. this is a sequence
21096 or picture header. This doesn't save much, since we already cache the
21099 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21101 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21102 mpeg2: optimize scan for start codes.
21103 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
21104 A start code prefix is defined by the following bytes: 00 00 01. Thus,
21105 for any group of 3 bytes (xx yy zz), we have the following possible cases:
21106 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
21107 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
21108 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
21109 4. xx == 00, yy == 00, zz == 1, we have match!
21110 This algorithm requires to peek bytes from the adapter. This increases the
21111 amount of bytes copied to a temporary buffer, but this process is much faster
21112 than scanning for all the bytes and using shift/masks. So, overall, this is
21115 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21117 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21118 mpeg2: drop useless gst_adapter_peek().
21119 Drop useless gst_adapter_peek() since the returned buffer was not used
21120 and this could incur superfluous memcpy().
21122 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21124 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21125 mpeg2: cosmetics: move parse_slice() down.
21127 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21129 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21130 mpeg2: avoid too many allocations of parser info objects.
21131 Move parsing back to decoding step, but keep functions separate for now.
21132 This is needed for future optimizations that may introduce some meta data
21133 for parsed info attached to codec frames.
21135 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21137 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
21138 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
21139 decoder: decoder units are no longer dynamically allocated objects.
21141 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21143 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21144 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
21145 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
21146 decoder: optimize pre-allocation of decoder units.
21147 Optimize pre-allocation of decoder units, thus avoiding un-necessary
21148 memory reallocations. The heuristic used is that we could have around
21149 one slice unit per macroblock line.
21151 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21153 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21154 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
21155 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
21156 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21157 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
21158 decoder: use an array of units instead of a single-linked list.
21159 Use a GArray to hold decoder units in a frame, instead of a single-linked
21160 list. This makes 'append' calls faster, but not that much. At least, this
21161 makes things clearer.
21163 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21165 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21166 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21167 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21168 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21169 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21170 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21171 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
21172 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
21173 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21174 decoder: refactor decoder unit API.
21175 Allocate decoder unit earlier in the main parse() function and don't
21176 delegate this task to derived classes. The ultimate purpose is to get
21177 rid of dynamic allocation of decoder units.
21179 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21181 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21182 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
21183 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
21184 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
21186 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21188 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21189 h264: introduce parser info instead of H.264 specific decoder unit.
21190 Use a new GstVaapiParserInfoH264 data structure instead of deriving
21191 from GstVaapiDecoderUnit for H.264 specific parser information.
21193 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21195 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21196 h264: set default values for some header fields.
21197 The SPS, PPS and slice headers are not fully zero-initialized in the
21198 codecparsers/ library. Rather, the standard upstream behaviour is to
21199 initialize only certain syntax elements with some inferred values if
21200 they are not present in the bitstream.
21201 At the gstreamer-vaapi decoder level, we need to further initialize
21202 certain syntax elements with some sensible default values so that to
21203 not complicate VA drivers that just pass those verbatim to the HW,
21204 and also avoid an memset() of the whole decoder unit.
21205 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21206 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21208 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21210 * ext/codecparsers:
21211 codecparsers: update to gst-vaapi-rebased commit b47983a.
21212 b47983a h264: add inferred value for slice_beta_offset_div2
21214 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21216 * gst/vaapi/gstvaapidecode.c:
21217 * gst/vaapi/gstvaapidownload.c:
21218 * gst/vaapi/gstvaapipluginbuffer.c:
21219 * gst/vaapi/gstvaapipluginbuffer.h:
21220 * gst/vaapi/gstvaapipostproc.c:
21221 * gst/vaapi/gstvaapisink.c:
21222 * gst/vaapi/gstvaapiupload.c:
21223 * gst/vaapi/gstvaapiuploader.c:
21224 plugins: cope with new GstVaapiVideoMeta API.
21225 Update plugin elements with the new GstVaapiVideoMeta API.
21226 This also fixes support for subpictures/overlay because GstVideoDecoder
21227 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
21228 is marked as read-only. However, when comes in the textoverlay element
21229 for example, it checks whether the input buffer is writable. Since that
21230 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
21231 does not preserve the parent field, the generated buffer in textoverlay
21232 is not exploitable because we lost all VA specific information.
21233 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
21234 all information are preserved through gst_buffer_copy() since the latter
21235 does copy metadata (qdata in this case).
21237 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21239 * gst-libs/gst/vaapi/Makefile.am:
21240 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
21241 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
21242 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
21243 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
21244 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
21245 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
21246 videobuffer: wrap video meta into a surface buffer.
21247 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
21248 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
21249 expecting a GstSurfaceBuffer like Clutter.
21251 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21253 * gst-libs/gst/vaapi/Makefile.am:
21254 * gst-libs/gst/vaapi/gstvaapivideometa.c:
21255 * gst-libs/gst/vaapi/gstvaapivideometa.h:
21256 videobuffer: add video meta information.
21257 Add new GstVaapiVideoMeta object that holds all information needed to
21258 convey gst-vaapi specific data as a GstBuffer.
21260 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21262 * gst/vaapi/gstvaapidecode.c:
21263 vaapidecode: fix calculation of the time-out value.
21264 Fix calculation of the time-out value for cases where no VA surface is
21265 available for decoding. In this case, we need to wait until downstream
21266 sink consumed at least one surface. The time-out was miscalculated as
21267 it was always set to <current-time> + one second, which is not suitable
21268 for streams with larger gaps.
21270 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21272 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21273 decoder: always use the calculated presentation timestamp.
21274 Use PTS value computed by the decoder, which could also be derived from
21275 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
21276 the original one was miscomputed or only represented a DTS instead.
21278 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21280 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21281 h264: don't create sub-buffer for slice data.
21283 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21285 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21286 decoder: create new context when encoded resolution changes.
21287 Create a new VA context if the encoded surface size changes because we
21288 need to keep the underlying surface pool until the last one was released.
21289 Otherwise, either of the following cases could have happened: (i) release
21290 a VA surface to an inexistent pool, or (ii) release VA surface to an
21291 existing surface pool, but with different size.
21293 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21295 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21296 mpeg2: don't create sub-buffer for slice data.
21297 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
21298 frame input buffer data. This is possible because the codec frame is valid
21299 until end_frame() where we submit the VA buffers for decoding. Anyway, the
21300 slice data buffer is copied into the VA buffer when it is created.
21302 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21304 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21305 mpeg2: minor clean-ups.
21306 Drop explicit initialization of most fields that are implicitly set to
21307 zero. Remove some useless checks for NULL pointers.
21309 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21311 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21312 mpeg2: optimize scan for the second start code.
21313 Optimize scan for the second start code, on the next parse() call so that
21314 to avoid scanning again earlier bytes where we didn't find any start code.
21316 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21318 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21319 mpeg2: use sequence_display_extension() to compute PAR.
21320 Also compute pixel-aspect-ratio from sequence_display_extension(),
21321 should it exist in the bitstream.
21323 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21325 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21326 mpeg2: handle sequence_display_extension().
21328 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21330 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21331 mpeg2: implement {start,end}_frame() hooks.
21332 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
21333 that to create new VA context earlier and submit VA pictures to the
21334 HW for decoding as soon as possible. i.e. don't wait for the next
21335 frame to start decoding the previous one.
21337 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21339 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21340 mpeg2: parse slice() header earlier.
21341 Parse slice() header and first macroblock position earlier in _parse()
21342 function instead of waiting for the _decode() stage. This doesn't change
21343 anything but readability.
21345 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21347 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21348 mpeg2: add codec specific decoder unit.
21349 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
21350 GstMpegVideoPacket and additional parsed header info. Besides, we now
21351 parse as early as in the _parse() function so that to avoid un-necessary
21352 creation of sub-buffers in _decode() for video packets that are not slices.
21354 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21356 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21357 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
21358 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
21359 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
21360 decoder: introduce lists of units to decode before/after frame.
21361 Theory of operations: all units marked as "slice" are moved to the "units"
21362 list. Since this list only contains slice data units, the prev_slice pointer
21363 was removed. Besides, we now maintain two extra lists of units to be decoded
21364 before or after slice data units.
21365 In particular, all units in the "pre_units" list will be decoded before
21366 GstVaapiDecoder::start_frame() is called and units in the "post_units"
21367 list will be decoded after GstVaapiDecoder::end_frame() is called.
21369 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21371 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21372 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21373 decoder: drop useless checks for codec objects.
21374 Codec objects are used internally only and they are bound to be created
21375 with a valid GstVaapiDecoder object.
21377 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21379 * gst/vaapi/gstvaapidecode.c:
21380 vaapidecode: use GST_ERROR to print error messages.
21382 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21384 * gst/vaapi/gstvaapidecode.c:
21385 vaapidecode: avoid double release of frame on error.
21386 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
21387 was already called before and it returned an error. In that case, we were
21388 releasing the frame again, thus leading to a "double-free" condition.
21390 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21397 * gst-libs/gst/Makefile.am:
21398 * gst-libs/gst/vaapi/Makefile.am:
21399 * gst-libs/gst/video/Makefile.am:
21400 * gst/vaapi/Makefile.am:
21401 Add videoutils submodule for GstVideoDecoder APIs.
21403 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21406 configure: check for GstVideoDecoder API.
21407 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
21408 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
21409 parties may either use upstream git 0.10 branch or backport the necessary support
21410 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
21412 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21414 * docs/reference/libs/libs.core.types:
21415 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
21416 GstVaapiSurfaceProxy is no longer based on the GType system.
21418 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21420 * docs/reference/libs/libs-sections.txt:
21421 docs: fix entries for GstVaapiSurfaceProxy.
21423 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21428 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21431 * gst-libs/gst/vaapi/Makefile.am:
21432 Bump library major version.
21433 Increase library major so that to cope with API/ABI incompatible changes
21434 since 0.4.x series and avoid user issues.
21436 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21438 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21439 surfaceproxy: minor clean-ups.
21441 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21443 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21444 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21445 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
21446 surfaceproxy: drop accessors to obsolete attributes.
21447 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
21448 VA surface. i.e. drop any other attribute like timestamp, duration,
21449 interlaced or top-field-first.
21451 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21453 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21454 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21455 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21456 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21457 * gst/vaapi/gstvaapidecode.c:
21458 decoder: maintain decoded frames as GstVideoCodecFrame objects.
21459 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
21460 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
21461 the strict minimum: a context and a surface.
21463 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21465 * gst/vaapi/gstvaapidecode.c:
21466 vaapidecode: output all decoded frames as soon as possible.
21467 Make sure to push all decoded frames downstream as soon as possible.
21468 This makes sure we don't need to wait for a new frame to be ready to
21469 be decoded before receiving new decoded frames.
21470 This also separates the decode process and the output process. The latter
21471 could be moved to a specific GstTask later on.
21473 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21475 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21476 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21477 decoder: add gst_vaapi_decoder_get_frame() API.
21478 Add new gst_vaapi_decoder_get_frame() function meant to be used with
21479 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
21480 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
21481 as the user-data object.
21483 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21485 * gst/vaapi/gstvaapipostproc.c:
21486 vaapipostproc: use GstBuffer flags for TFF.
21487 Determine whether the buffer represents the top-field only by checking for
21488 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
21489 flag. Also trust "interlaced" caps to determine whether the input frame
21490 is interleaved or not.
21492 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21494 * gst/vaapi/gstvaapipostproc.c:
21495 vaapipostproc: handle video sub-buffers.
21496 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
21497 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
21499 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21501 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21502 h264: optimize initialization process of decoder units.
21503 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
21504 The latter don't require zero-initialization since the codecparsers/ lib
21505 will do so for key variables already. This is not a great value per se but
21506 at least it makes it possible to check whether the default initialization
21507 decisions made in the codecparsers/ lib were right or not.
21508 This can be reverted if this exposes too many issues.
21510 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21512 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21513 h264: minor clean-ups.
21514 Drop explicit initialization of most fields that are implicitly set to
21515 zero. Drop helper macros for casting to GstVaapiPictureH264 or
21516 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
21518 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21520 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21521 h264: drop GstVaapiSliceH264 object.
21522 Use standard GstVaapiSlice object from now on since we already have
21523 parsed and recorded the slice headers (GstH264SliceHdr decode units).
21525 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21527 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21528 h264: detect new pictures from decode-units.
21529 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
21530 of assuming frame boundaries when first_mb_in_slice is zero.
21532 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21534 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21535 h264: implement {start,end}_frame() hooks.
21536 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
21537 that to create new VA context earlier and submit VA pictures to the
21538 HW for decoding as soon as possible. i.e. don't wait for the next
21539 frame to start decoding the previous one.
21541 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21543 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21544 h264: optimize scan for the second start code.
21545 Optimize scan for the second start code, on the next parse() call so that
21546 to avoid scanning again earlier bytes where we didn't find any start code.
21548 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21550 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21551 h264: add codec specific decoder unit.
21552 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
21553 NAL unit header (GstH264NalUnit) and additional parsed header info.
21554 Besides, we now parse headers as early as in the _parse() function so
21555 that to avoid un-necessary creation of sub-buffers in _decode() for
21556 NAL units that are not slices.
21557 This is a performance win by ~+1.1% only.
21559 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21561 * gst/vaapi/gstvaapisink.c:
21562 vaapisink: handle sub video-buffers.
21563 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
21564 for non raw YUV cases. Make sure vaapisink now understands those buffers.
21566 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21568 * gst/vaapi/gstvaapidecode.c:
21569 vaapidecode: use gst_vaapi_decoder_get_codec_state().
21570 Directly use the GstVideoCodecState associated with the VA decoder
21571 instead of parsing caps again.
21572 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21573 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21575 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21577 * gst/vaapi/gstvaapidecode.c:
21578 vaapidecode: use more standard helpers.
21579 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
21582 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21584 * gst/vaapi/gstvaapidecode.c:
21585 * gst/vaapi/gstvaapidecode.h:
21586 vaapidecode: move to GstVideoDecoder base class.
21587 Make vaapidecode derive from the standard GstVideoDecoder base element
21588 class. This simplifies the code to the strict minimum for the decoder
21589 element and makes it easier to port to GStreamer 1.x API.
21590 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21591 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21593 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21595 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21596 jpeg: initial port to new GstVaapiDecoder API
21598 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21600 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21601 vc1: initial port to new GstVaapiDecoder API
21603 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21605 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21606 h264: initial port to new GstVaapiDecoder API
21608 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21610 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21611 mpeg4: initial port to new GstVaapiDecoder API
21613 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21615 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21616 mpeg2: initial port to new GstVaapiDecoder API.
21618 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21620 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21621 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21622 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21623 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21624 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21625 * gst-libs/gst/vaapi/gstvaapiprofile.h:
21626 decoder: use GstVideoCodecState.
21627 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
21628 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
21629 it possible to drop picture size (width, height) information, framerate
21630 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
21631 and interlace mode (is_interlaced field).
21632 This is a new API with backwards compatibility maintained. In particular,
21633 gst_vaapi_decoder_get_caps() is still available.
21634 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21635 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21637 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21639 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21640 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21641 * tests/test-decode.c:
21642 * tests/test-subpicture.c:
21643 decoder: update gst_vaapi_decoder_get_surface() semantics.
21644 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
21645 API. That is, return a GstVaapiDecoderStatus and the decoded surface
21646 as a handle to GstVaapiSurfaceProxy in parameter.
21647 This is an API/ABI change.
21649 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21651 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21652 decoder: use standard helper functions.
21653 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
21654 whenever necessary.
21656 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21658 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21659 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21660 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21661 decoder: expose new parse/decode API.
21662 Introduce new decoding process whereby a GstVideoCodecFrame is created
21663 first. Next, input stream buffers are accumulated into a GstAdapter,
21664 that is then passed to the _parse() function. The GstVaapiDecoder object
21665 accumulates all parsed units and when a complete frame or field is
21666 detected, that GstVideoCodecFrame is passed to the _decode() function.
21667 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
21668 process was successful.
21670 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21672 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21673 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21674 decoder: add {start,end}_frame() hooks.
21675 The start_frame() hook is called prior to traversing all decode-units
21676 for decoding. The unit argument represents the first slice in the frame.
21677 Some codecs (e.g. H.264) need to wait for the first slice in order to
21678 determine the actual VA context parameters.
21680 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21682 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21683 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21684 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21685 decoder: add new GstVaapiDecoder API.
21686 Split decoding process into two steps: (i) parse incoming bitstreams
21687 into simple decoder-units until the frame or field is complete; and
21688 (ii) decode the whole frame or field at once.
21689 This is an ABI change.
21691 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21693 * gst-libs/gst/vaapi/Makefile.am:
21694 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
21695 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
21696 decoder: add new "decoder-frame" object.
21697 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
21698 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
21699 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
21700 as the user-data member element.
21701 This is a libgstvaapi internal object.
21703 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21705 * gst-libs/gst/vaapi/Makefile.am:
21706 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
21707 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
21708 decoder: add new "decoder-unit" object.
21709 Introduce GstVaapiDecoderUnit which represents a fragment of the source
21710 stream to be decoded. For instance, a decode-unit will be a NAL unit for
21711 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
21713 This is a libgstvaapi internal object.
21715 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21717 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21718 Port GstVaapiFrameStore to GstVaapiMiniObject.
21720 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21722 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21723 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
21724 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21725 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21726 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21727 Port codec objects to GstVaapiMiniObject.
21729 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21731 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21732 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21733 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21734 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
21735 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
21736 * gst/vaapi/gstvaapidecode.c:
21737 * gst/vaapi/gstvaapipluginbuffer.c:
21738 * tests/test-decode.c:
21739 * tests/test-subpicture.c:
21740 surfaceproxy: port to GstVaapiMiniObject.
21741 GstVaapiSurfaceProxy does not use any particular functionality from
21742 GObject. Actually, it only needs a basic object type with reference
21744 This is an API and ABI change.
21746 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21748 * gst-libs/gst/vaapi/Makefile.am:
21749 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
21750 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
21751 Add GstVaapiMiniObject.
21752 Introduce a new reference counted object that is very lightweight and
21753 also provides flags and user-data functionalities. Initialization and
21754 finalization times are reduced by up to a factor 5x vs GstMiniObject
21755 from GStreamer 0.10 stack.
21756 This is a libgstvaapi internal object.
21758 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21760 * tests/Makefile.am:
21761 * tests/test-decode.c:
21762 * tests/test-mpeg4.c:
21763 * tests/test-mpeg4.h:
21764 tests: add test for MPEG-4:2 decoding.
21766 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21768 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21769 h264: initialize VA context before allocating the first slice.
21770 Fix decode_slice() to ensure a VA context exists prior to creating a
21771 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
21772 context ID. i.e. the latter was not initialized, thus causing failures
21773 on Cedar Trail for example.
21775 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
21778 configure: install plugin elements in GST_PLUGIN_PATH, if set.
21779 If GST_PLUGIN_PATH environment variable exists and points to a valid
21780 directory, then use it as the system installation path for gst-vaapi
21782 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21784 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21787 configure: downgrade glib required version to 2.28.
21789 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21791 * gst-libs/gst/vaapi/glibcompat.h:
21792 * gst/vaapi/gstvaapi.c:
21793 libs: fix compatibility with glib 2.28.
21794 Always prefer non deprecated APIs by default and provide compatibility
21795 glue for older glib versions when necessary.
21797 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21799 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21800 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21801 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
21802 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
21803 libs: use glib >= 2.32 semantics for mutexes.
21804 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
21805 and termination. Basically, the new mutex objects can be used as static
21806 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
21808 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21810 * gst-libs/gst/vaapi/Makefile.am:
21811 libs: only export gst_vaapi_*() symbols.
21812 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
21813 library and the system-provided one, mainly used by videoparses/. Now,
21814 only symbols with the gst_vaapi_* prefix will be exported, if they are
21815 not marked as "hidden" to libgstvaapi.
21817 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21819 * gst/vaapi/gstvaapiuploader.c:
21820 vaapiupload: reset direct-rendering to zero when changing caps.
21821 Make sure to reset direct-rendering flag to zero when caps are changed,
21822 and only derive it to one when the next checks succeed.
21824 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21826 * gst/vaapi/gstvaapiupload.c:
21827 vaapiupload: fix sink caps to report the supported set of YUV caps.
21828 Try to allocate the GstVaapiUploader helper object prior to listing the
21829 supported image formats. Otherwise, only a single generic caps is output
21830 with no particular pixel format referenced in there.
21832 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
21834 * gst/vaapi/gstvaapiupload.c:
21835 * gst/vaapi/gstvaapiupload.h:
21836 vaapiupload: use new GstVaapiUploader helper.
21837 Use GstVaapiUploader helper that automatically handles direct rendering
21838 mode, thus making the "direct-rendering" property obsolete and hence it
21840 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
21841 really well supported and it could actually trigger degraded performance.
21842 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21844 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21846 * gst/vaapi/gstvaapisink.c:
21847 * gst/vaapi/gstvaapiuploader.c:
21848 * gst/vaapi/gstvaapiuploader.h:
21849 vaapisink: compute and expose the supported set of YUV caps.
21850 Make vaapisink expose only the set of supported caps for raw YUV buffers.
21851 Add gst_vaapi_uploader_get_caps() helper function to determine the set
21852 of supported YUV caps as source (for images). This function actually
21853 tries to zero and upload each image to a 64x64 test surface. Of course,
21854 this relies on VA drivers to not claim success if vaPutImage() is not
21855 correctly supported.
21857 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21860 * gst/vaapi/Makefile.am:
21861 * gst/vaapi/gstvaapisink.c:
21862 * gst/vaapi/gstvaapisink.h:
21863 * gst/vaapi/gstvaapiuploader.c:
21864 * gst/vaapi/gstvaapiuploader.h:
21865 vaapisink: add support for raw YUV buffers.
21866 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
21867 It is up to the caller to negotiate source caps (for images) and output
21868 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
21869 to help decide between the creation of a GstVaapiVideoBuffer or a regular
21870 GstBuffer on sink pads.
21871 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
21872 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21874 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21876 * gst-libs/gst/vaapi/gstvaapiimage.c:
21877 image: fix GstVaapiImage map and unmap.
21878 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
21879 structure correctly filled in if the image was already mapped.
21880 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
21881 was already unmapped.
21883 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
21886 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
21887 videobuffer: fix memory leak for surface and image.
21888 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
21889 thus resulting on actual memory leak of GstVaapiImage when using them
21890 for downloads/uploads from VA surfaces and more specifically surfaces
21891 when the pipeline is shutdown. i.e. vaTerminate() was never called
21892 because the resources were not unreferenced, and thus not deallocated
21894 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21896 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21901 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21903 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21904 h264: fix picture size in macroblocks.
21905 The picture size signalled by sps->{width,height} is the actual size with
21906 cropping applied, not the original size derived from pic_width_in_mbs_minus1
21907 and pic_height_in_map_units_minus1. VA driver expects that original size,
21909 There is another issue pending: frame cropping information needs to be
21912 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21914 * gst-libs/gst/codecparsers/Makefile.am:
21915 codecparsers: always build parserutils first.
21916 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
21917 This is needed since that's the common dependency for actual codec
21918 parsers (gstvc1parser.c for instance).
21920 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21922 * gst-libs/gst/codecparsers/Makefile.am:
21923 codecparsers: always build the VC-1 parser library.
21924 ... this is useful to make sure pixel-aspect-ratio and framerate
21925 information are correctly parsed since we have no means to detect
21926 that at configure time.
21928 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21931 * gst-libs/gst/codecparsers/Makefile.am:
21932 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21933 mpeg2: fix PAR calculation from commit bd11bae.
21934 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
21935 correct PAR values. While doing so, require a newer version of the
21936 bitstream parser library.
21937 Note: it may be necessary to also parse the Sequence_Display_Extension()
21939 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21940 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21942 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21944 * gst-libs/gst/vaapi/Makefile.am:
21945 Fix build with the GNU gold linker.
21946 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
21947 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
21949 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
21952 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21953 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
21954 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
21955 wayland: port to 1.0 version of the protocol.
21956 This patch updates to relect the 1.0 version of the protocol. The main
21957 changes are the switch to wl_registry for global object notifications
21958 and the way that the event queue and file descriptor is processed.
21959 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21961 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21963 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21964 h264: fix incorrect integration of previous commit (4d31e1e).
21965 git am got confused somehow, though the end result doesn't change at
21966 all since we require both SPS and PPS to be parsed prior to decoding
21969 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21971 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21972 h264: start decoding slices after first SPS/PPS activation.
21973 Only start decoding slices when at least one SPS and PPS got activated.
21974 This fixes cases when a source represents a substream of another stream
21975 and no SPS and PPS was inserted before the first slice of the generated
21978 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21980 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21981 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
21982 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
21983 contain up to 32 fields but VA ReferenceFrames[] array expects up to
21984 16 reference frames, thus including both fields.
21986 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21988 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21989 h264: fix interlaced stream decoding with MMCO.
21990 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
21991 is equal to 1, i.e. when memory management control operations are used. In
21992 particular, when field_pic_flag is set to 0, the new reference flags shall
21993 be applied to both fields.
21995 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21997 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21998 h264: add initial support for interlaced streams.
21999 Decoded frames are only output when they are complete, i.e. when both
22000 fields are decoded. This also means that the "interlaced" caps is not
22001 propagated to vaapipostproc or vaapisink elements. Another limitation
22002 is that interlaced bitstreams with MMCO are unlikely to work.
22004 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22006 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22007 h264: split remove_reference_at() into finer units.
22008 Split remove_reference_at() into a function that actually removes the
22009 specified entry from the short-term or long-term reference picture array,
22010 and a function that sets reference flags to the desired value, possibly
22011 zero. The latters marks the picture as "unused for reference".
22013 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22015 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22016 decoder: fix gst_vaapi_picture_new_field() object type.
22017 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
22018 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
22019 shall generate a GstVaapiPictureH264 object.
22021 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22023 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22024 h264: add picture structure for reference picture marking process.
22025 Introduce new `structure' field to the H.264 specific picture structure
22026 so that to simplify the reference picture marking process. That local
22027 picture structure is derived from the original picture structure, as
22028 defined by the syntax elements field_pic_flag and bottom_field_flag.
22030 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22032 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22033 h264: introduce new frame store structure.
22034 The frame store represents a Decoded Picture Buffer entry, which can
22035 hold up to two fields. So far, the frame store is only used to hold
22038 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22040 * ext/codecparsers:
22041 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
22042 73d6aab h264: fix rbsp_more_data() implementation
22043 25d04cf h264: fix error code for invalid size parsed in SPS
22044 84798e5 fix FSF address
22046 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22048 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22049 h264: minor clean-ups.
22050 Move DPB flush up if the current picture to decode is an IDR. Besides,
22051 don't bother to check for IDR pictures in dpb_add() function since an
22052 explicit DPB flush was already performed in this case.
22054 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22056 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22057 h264: simplify reference picture marking process.
22058 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
22059 of maintaining them separately. This avoids refs/unrefs while making it
22060 possible to generate the list based on the actual picture structure.
22061 This also ensures that the list of generated ReferenceFrames[] actually
22062 matches what reference frames are available in the DPB. i.e. short_ref[]
22063 and long_ref[] entries are implied from the DPB, so there is no risk of
22064 having "dangling" references.
22066 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22068 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22069 h264: introduce per-field POC in GstVaapiPictureH264.
22070 Use the POC member available in the GstVaapiPicture base class and
22071 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
22072 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
22073 initialized to INT_MAX, so that to simplify picture POC calculation
22074 for non frame pictures.
22076 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22078 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22079 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
22080 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
22081 reference bits, thus simplifying the reference picture marking process
22082 to only track a single set of reference flags. Also introduce a new
22083 long_term_frame_idx member.
22085 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22087 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22088 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
22090 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22092 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22093 h264: fill in GstVaapiPicture structure.
22094 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
22096 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22098 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22099 h264: add vaapi_fill_picture() helper.
22100 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
22101 to VAPictureH264 structure. This is preparatory work to get rid of the
22102 local VAPictureH264 member in GstVaapiPictureH264.
22104 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22106 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22107 h264: fix activation order of picture and sequence parameters.
22108 Delay ensure_context() until we actually need a VA context for allocating
22109 new VA surfaces, and then GstVaapiPictures, but also when a real activation
22110 of a new picture parameter set occurs, thus also implying an activation
22111 of the related sequence parameter set.
22112 The most important thing was to drop the global pps and sps pointers since
22113 they may not have matched the currently activated picture parameter or
22114 sequence parameter sets at the specified decode point.
22115 Anoter positive side-effect is that this cleans up all occurrences of
22116 decode_current_picture() to only keep those useful in decode_picture(),
22117 before a new picture is allocated, or in decode_sequence_end() when
22118 an end-of-stream or end-of-sequence condition occurred.
22120 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22122 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22123 h264: fix scaling list generation.
22124 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
22125 array was partially copied to the VAIQMatrixBufferH264. While we are
22126 at it, also improve bounds checking and avoid copying 8x8 scaling
22127 lists if transform_8x8_mode_flag is set to 0.
22129 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22131 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22132 h264: fix detection of picture boundaries.
22133 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
22134 unit of a primary coded picture.
22136 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22138 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22139 h264: optimize handling of scaling lists.
22140 Don't copy scaling lists twice to an intermediate state. Rather, directly
22141 use the scaling lists from GstH264PPS since they would match those provided
22142 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
22143 available in the bitstream.
22145 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22147 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22148 h264: simplify code when MMCO is 5.
22149 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
22150 is now updated accordingly to the standard. Besides, MMCO = 5 specific
22151 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
22153 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22155 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22156 h264: fix MMCO-based reference picture marking process.
22157 Fix adaptive memory control decoded reference picture marking process
22158 implementation for operations 2 to 6, thus also fixing support for
22159 long-term reference pictures.
22161 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22163 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22164 h264: move MMCO handlers out of the loop (cosmetics).
22165 This change only splits each individual MMCO handler into several functions
22166 dedicated for each operation. This is needed to perform further work later
22169 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22172 debian: fix make dist for packaging.
22173 bzip2 tarballs are now used, so update the deb.upstream dependencies
22174 to include dist-bzip2 instead of plain old dist, and use the correct
22175 tar extract options to handle that format.
22177 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22180 configure: generate bzip2 tarballs in ustar format by default.
22182 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22185 configure: bump glib required version to 2.31.2.
22186 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
22187 rather than g_mutex_new() and g_cond_new() respectively.
22189 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
22191 * gst/vaapi/gstvaapidecode.c:
22192 * gst/vaapi/gstvaapidecode.h:
22193 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
22194 The use of heap allocated GMutex/GCond is deprecated. Instead place them
22195 inside the structure they are locking.
22196 These changes switch to use g_mutex_init/g_cond_init rather than the heap
22197 allocation functions.
22198 Because we cannot test for a NULL pointer for the GMutex/GCond we must
22199 initialise inside the GObject _init function and clear inside the _finalize
22200 which is guaranteed to only be called once and after the object is no longer
22203 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22205 * gst/vaapi/gstvaapidecode.c:
22206 vaapidecode: fix compiler warnings.
22207 Don't care of the return value for gst_vaapi_decoder_put_buffer()
22208 during destruction of the element. Don't print out (uninitialised)
22209 error code when allocation of video buffer failed.
22211 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22213 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22214 h264: add flag to compile with strict DPB ordering mode.
22215 Allow build with strict DPB ordering mode whereby evicted entries
22216 are replaced by the next entries, in order instead of optimizing
22217 it away with the last entry in the DPB.
22218 This is only useful for debugging purpose, against a reference SW
22219 decoder for example.
22221 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22223 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22224 h264: drop extra code covered by built-in codecparsers.
22225 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
22226 a newer version of codecparsers/ are used if the system provided one is
22227 now recent enough to have those required extensions.
22229 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22231 * gst-libs/gst/codecparsers/Makefile.am:
22232 codecparsers: fix generation of symlinks.
22233 Try to improve dependencies while generating symlinks to externally
22234 maintained copy of codecparsers (derived from upstream git master
22237 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22239 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22240 vc1: use framerate information from bitstream parser.
22242 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22244 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22245 vc1: use pixel-aspect-ratio from bitstream parser.
22246 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22247 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22249 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22251 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22252 mpeg2: use pixel-aspec-ratio information from bitstream parser.
22253 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22254 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22256 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22259 * gst-libs/gst/codecparsers/Makefile.am:
22260 codecparsers: h264: use submodule sources.
22261 Use newer sources from the codecparsers/ submodule for
22262 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
22263 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
22265 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22269 * gst-libs/gst/codecparsers/Makefile.am:
22270 * gst-libs/gst/codecparsers/gstjpegparser.c:
22271 * gst-libs/gst/codecparsers/gstjpegparser.h:
22272 * gst-libs/gst/vaapi/Makefile.am:
22273 codecparsers: jpeg: use submodule sources.
22275 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22282 * ext/codecparsers:
22283 Add codecparsers submodule.
22285 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22288 .gitignore: updates.
22290 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22293 autogen: fix check for gtkdocize and autoreconf.
22294 If gtkdocize or autoreconf programs were not found, then the autogen.sh
22295 script would fail to report that correctly because test -z was not passed
22296 any argument (empty string "" in this case).
22298 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22300 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22301 h264: use pixel-aspect-ratio from SPS header.
22302 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
22303 from the sequence headers.
22304 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22305 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22307 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22309 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22310 h264: add decode_nalu() helper function.
22311 Split decode_buffer() into the core infrastructure that determines
22312 the NAL units contained in the adapter and the actual function that
22313 decodes the NAL unit.
22315 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22317 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22318 h264: fix end-of-stream conditions (flush).
22319 Decode pending data in the adapter prior to processing the actual
22320 code for end-of-stream.
22322 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22324 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22325 mpeg2: add decode_packet() helper function.
22326 Split decode_buffer() into the core infrastructure that determines
22327 the packets contained in the adapter and the actual function that
22328 decodes the packet data.
22330 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22332 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22333 mpeg2: fix end-of-stream conditions (flush).
22334 Decode pending data in the adapter prior to processing the actual
22335 code for end-of-stream. Initial code from Feng Yuan.
22337 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22339 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22340 mpeg2: fix memory leak of empty packets.
22341 Fix memory leakage of empty packets, i.e. packets that only contain
22342 the start code prefix. In particular, free empty user-data packets.
22343 Besides, the codec parser will already fail gracefully if the packet
22344 to parse does not have the minimum required size. So, we can also
22345 completely drop the block of code that used to handle packets of size 4
22346 (including the start code).
22348 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22350 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22351 mpeg2: fix return value for "no-data" conditions.
22352 Fix return value when the second scan for start code fails. This means
22353 there is not enough data to determine the full extents of the current
22354 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
22355 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
22357 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22359 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22360 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
22361 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
22362 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
22363 or with a size equals to zero. In this case, that buffer is simply
22364 skipped and the function returns TRUE. A NULL buffer argument still
22365 marks the end-of-stream.
22367 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22369 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22370 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22371 decoder: drop unused functions.
22373 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
22375 * gst/vaapi/gstvaapidecode.c:
22376 vaapidecode: flush buffers when receiving EOS.
22377 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22379 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22381 * debian.upstream/Makefile.am:
22382 debian: fix make dist for packaging.
22384 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22386 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
22387 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22388 wayland: cosmetics (remove tabs).
22390 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
22392 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22393 wayland: add support for windowed mode.
22394 Rather than always making the surface fullscreen instead implement the
22395 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
22396 fullscreen on not depending on that.
22397 Reviewed-by: Joe Konno <joe.konno@intel.com>
22398 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22400 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22403 Bump version for development.
22405 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22409 Fix and document build dependencies better.
22411 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22413 * debian.upstream/control.in:
22414 debian: fix GStreamer build dependencies.
22416 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22419 * debian.upstream/control.in:
22420 debian: fix Wayland build dependencies.
22422 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22424 * debian.upstream/control.in:
22425 debian: fix conditional build of packages.
22426 Make it still possible to build package even if one of the build dependencies
22427 for a specific video backend is not available.
22429 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22431 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22432 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22433 utils: drop unused GLX helpers.
22434 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
22435 extensions since they are not used throughout gstreamer-vaapi.
22437 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22439 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22440 utils: fix build with <GL/glext.h> version >= 85.
22441 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
22442 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
22443 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
22444 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
22445 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
22446 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
22447 newer versions of the <GL/glext.h> header.
22449 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22452 configure: update VA-API version requirements.
22453 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
22455 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22457 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22458 h264: review and report errors accordingly.
22459 Use GST_ERROR() to report real errors instead of hiding them into
22462 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22464 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22465 h264: exclusively use GstAdapter, drop sub-buffer hack.
22466 Maintaining the sub-buffer is rather suboptimal especially since we
22467 were also maintaining a GstAdapter. Now, we only use the GstAdapter
22468 thus requiring minor extra parsing when receiving avcC buffers.
22470 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22475 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22480 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22482 * debian.upstream/gstreamer-vaapi.install.in:
22483 debian: fix packaging on recent Ubuntu platforms.
22484 Use explicit GStreamer plugins path.
22486 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22488 * docs/reference/libs/libs-docs.xml.in:
22489 * docs/reference/libs/libs.core.types:
22490 docs: fix build for make dist.
22492 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
22494 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22495 wayland: set opaque region for YUV surface.
22496 This allows the compositor to optimize redraws and cull away changes
22497 obscured by the video surface.
22498 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22500 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22503 configure: fix check for libva-glx and libva-drm.
22505 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22507 * gst-libs/gst/vaapi/glibcompat.h:
22508 glibcompat: add replacement for g_cond_wait_until().
22510 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22512 * gst/vaapi/gstvaapidecode.c:
22513 * gst/vaapi/gstvaapidownload.c:
22514 * gst/vaapi/gstvaapipostproc.c:
22515 * gst/vaapi/gstvaapisink.c:
22516 * gst/vaapi/gstvaapiupload.c:
22517 plugins: include "sysdeps.h" instead of "config.h".
22519 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22521 * gst-libs/gst/codecparsers/gstjpegparser.c:
22522 codecparsers: jpeg: add missing includes.
22524 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22526 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22527 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22528 * gst/vaapi/gstvaapidecode.c:
22529 vaapidecode: don't reset decoder if codec type is the same.
22530 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
22531 if the underlying codec type actually changed. This makes it possible
22532 to be more tolerant with certain MPEG-2 streams that get parsed to
22533 form caps that are compatible with the previous state but minor changes
22536 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22538 * gst/vaapi/gstvaapidecode.c:
22539 vaapidecode: simplify codec lookup from caps.
22540 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
22541 the specified caps. Don't globally expose this function since this is
22542 really trivial and only used in the vaapidecode element.
22544 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22546 * gst/vaapi/gstvaapidecode.c:
22547 * gst/vaapi/gstvaapidecode.h:
22548 vaapidecode: improve "no free surface" conditions.
22549 Previously, vaapidecode would wait up to one second until a free surface
22550 is available, or it aborts decoding. Now, vaapidecode waits until the
22551 last decoded surface was to be presented, plus one second. Besides, end
22552 times are now expressed relative to the monotonic clock.
22554 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22556 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22557 * gst/vaapi/gstvaapidecode.c:
22558 decoder: propagate buffer duration downstream.
22560 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22562 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22563 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
22564 surfaceproxy: add "duration" property.
22566 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22568 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22569 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22570 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
22571 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22572 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22573 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22574 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22575 decoder: cope with new GstVaapiContextInfo based API.
22576 Update decoders to report the maximum number of reference frames to use.
22578 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22580 * gst-libs/gst/vaapi/gstvaapicontext.c:
22581 context: JPEG codec does not need any reference frame.
22583 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22585 * gst-libs/gst/vaapi/gstvaapicontext.c:
22586 * gst-libs/gst/vaapi/gstvaapicontext.h:
22587 context: allow number of reference frames to be set.
22588 Make it possible to specify the maximum number of references to use within
22589 a single VA context. This helps reducing GPU memory allocations to the useful
22590 number of references to be used.
22592 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22594 * gst/vaapi/gstvaapipostproc.c:
22595 vaapipostproc: fix deinterlace-{mode,method} types definition.
22597 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22599 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22600 mpeg4: fix debug info for unsupported profile.
22602 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22604 * gst-libs/gst/vaapi/gstvaapicontext.c:
22605 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22606 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22607 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
22608 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22609 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22610 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22611 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22612 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
22613 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
22614 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
22615 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
22616 * gst-libs/gst/vaapi/gstvaapiimage.c:
22617 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
22618 * gst-libs/gst/vaapi/gstvaapiobject.c:
22619 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
22620 * gst-libs/gst/vaapi/gstvaapisurface.c:
22621 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
22622 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22623 * gst-libs/gst/vaapi/gstvaapitexture.c:
22624 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22625 * gst-libs/gst/vaapi/gstvaapivalue.c:
22626 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
22627 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
22628 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
22629 * gst-libs/gst/vaapi/gstvaapivideopool.c:
22630 * gst-libs/gst/vaapi/gstvaapiwindow.c:
22631 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
22632 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22633 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22634 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22635 libs: fix build in strict ISO C mode.
22637 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22639 * gst/vaapi/gstvaapi.c:
22640 * gst/vaapi/gstvaapidecode.c:
22641 * gst/vaapi/gstvaapidownload.c:
22642 * gst/vaapi/gstvaapipostproc.c:
22643 * gst/vaapi/gstvaapisink.c:
22644 * gst/vaapi/gstvaapiupload.c:
22645 plugins: fix build in strict ISO C mode.
22647 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22649 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22650 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22651 * pkgconfig/gstreamer-vaapi.pc.in:
22652 pkgconfig: fix dependencies and slightly improve description.
22653 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
22654 descriptions with clearer renderer names.
22656 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
22658 * gst/vaapi/gstvaapidecode.c:
22659 vaapidecode: acquire lock only if the mutex exists.
22660 When playback stops the GstVaapiDecode object is reset into a clean
22661 state. However, surfaces may still be referenced by library users and
22662 unreferencing them after the reset triggers an access to an unset mutex.
22663 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22665 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22667 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22668 decoder: drop extraneous return for void function.
22670 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22672 * gst-libs/gst/vaapi/gstvaapiimage.c:
22673 image: don't use (void *) pointer arithmetic.
22675 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
22677 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22678 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22679 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22680 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
22681 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
22682 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22683 * gst-libs/gst/vaapi/gstvaapisurface.h:
22684 * gst-libs/gst/vaapi/gstvaapitypes.h:
22685 * gst/vaapi/gstvaapipostproc.h:
22686 Do not forward declare enums.
22687 Forward declaring enums is not allowed by the C standard and aborts
22688 compilation if the header file is included in a C++ project.
22689 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22691 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22694 configure: fix check for VA/DRM API.
22696 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22698 * gst/vaapi/gstvaapisink.c:
22699 vaapisink: fix calculation of window size.
22700 If either dimension is out-of-bounds, then scale window to fit the
22701 display size, even if the output is to be rotated. Use the standard
22702 gst_video_sink_center_rect() function to center and scale the window
22703 wrt. the outer (display) bounds.
22705 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
22707 * gst/vaapi/gstvaapisink.c:
22708 * gst/vaapi/gstvaapisink.h:
22709 vaapisink: add video rotation support.
22710 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22712 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22714 * gst/vaapi/gstvaapipluginutil.h:
22715 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
22716 This macro helps swapping variables while maintaining the correct underlying
22717 and primitive type.
22719 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22721 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22722 display: fix display aspect ratio when display is rotated.
22724 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22727 * gst-libs/gst/vaapi/Makefile.am:
22728 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
22729 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
22730 display: fix physical display size when display is rotated.
22732 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22734 * gst-libs/gst/vaapi/gstvaapivalue.c:
22735 display: fix GstVaapiRotation enumeration of values.
22737 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22739 * docs/reference/libs/libs-docs.xml.in:
22740 * docs/reference/libs/libs-sections.txt:
22741 * gst-libs/gst/vaapi/Makefile.am:
22742 * gst-libs/gst/vaapi/gstvaapivideosink.c:
22743 * gst-libs/gst/vaapi/gstvaapivideosink.h:
22744 * gst/vaapi/gstvaapidecode.c:
22745 * gst/vaapi/gstvaapidownload.c:
22746 * gst/vaapi/gstvaapipostproc.c:
22747 * gst/vaapi/gstvaapisink.c:
22748 * gst/vaapi/gstvaapiupload.c:
22749 vaapisink: drop obsolete GstVaapiVideoSink interface.
22750 This interface was deprecated since 0.3.x series when the GstVideoContext
22751 interface was added to the main GStreamer APIs.
22753 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22755 * gst/vaapi/gstvaapisink.c:
22756 * gst/vaapi/gstvaapisink.h:
22757 vaapisink: automatically detect overlay rendering mode.
22758 Retain the VA surface until another surface is to be displayed only
22759 if VA display rendering mode is determined to be "overlay" mode.
22761 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22763 * gst/vaapi/gstvaapisink.c:
22764 * gst/vaapi/gstvaapisink.h:
22765 vaapisink: retain VA surface until another one is displayed.
22766 Keep VA surface proxy associated with the surface that is currently
22767 being displayed. This makes sure that surface is not released back
22768 to the pool of surfaces free to use for decoding. This is necessary
22769 with VA driver implementations that support rendering to an overlay
22770 pipe. Otherwise, there could be cases where we are decoding into a
22771 surface that is being displayed, hence some flickering.
22773 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22775 * gst/vaapi/gstvaapisink.h:
22776 vaapisink: fix build with older toolchains.
22777 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
22779 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22781 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22782 display: partially revert 8ebe4d6.
22783 Don't try to fix up the initial values, this could make things worse.
22784 Simply assume the driver does not support the capability in this case.
22786 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22788 * tests/test-display.c:
22789 tests: dump VA display properties.
22791 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22793 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22794 display: fix validation process of properties during discovery.
22795 Some VA drivers (e.g. EMGD) can have completely random values for initial
22796 display attributes. So, try to improve the discovery process to check the
22797 initial display attribute values actually fall within valid bounds. If not,
22798 try to reset those to some sensible values like the default value reported
22799 through vaQueryDisplayAttributes().
22801 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22803 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22804 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22805 display: add color balance properties.
22806 Add support for hue, saturation, brightness and contrast attributes.
22808 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22810 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22811 display: initialize default attribute values.
22812 Ensure the display attribute is actually supported by trying to retrieve
22813 its current value during GstVaapiDisplay creation.
22815 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22817 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22818 display: raise "notify" for property changes.
22820 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22822 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22823 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22824 display: expose display attributes as GObject properties.
22825 Expose VA display "render-mode" and "rotation" attributes as standard
22826 GObject properties.
22828 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22830 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22831 display: install properties in batch.
22832 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
22833 It is useful to maintain properties as GParamSpec so that to be able to raise
22834 "notify" signals by id instead of by name in the future.
22836 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22838 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22839 display: fix gst_vaapi_display_has_property().
22840 Append the "render-mode" and "rotation" properties, should they be supported
22841 by the underlying VA driver.
22843 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
22845 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22846 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22847 * gst-libs/gst/vaapi/gstvaapitypes.h:
22848 * gst-libs/gst/vaapi/gstvaapiutils.c:
22849 * gst-libs/gst/vaapi/gstvaapiutils.h:
22850 * gst-libs/gst/vaapi/gstvaapivalue.c:
22851 * gst-libs/gst/vaapi/gstvaapivalue.h:
22852 display: add support for rotation modes.
22853 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22855 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22857 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22858 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22859 * gst-libs/gst/vaapi/gstvaapitypes.h:
22860 * gst-libs/gst/vaapi/gstvaapivalue.c:
22861 * gst-libs/gst/vaapi/gstvaapivalue.h:
22862 display: add support for rendering modes.
22863 A rendering mode can be "overlay" or "texture"'ed blit.
22864 The former mode implies that a VA surface used for rendering can't be
22865 re-used right away for decoding, so the sink shall make provisions to
22866 retain the associated surface proxy until the next surface is to be
22868 The latter mode implies that the VA surface is implicitly copied to an
22869 intermediate backing store, or back buffer of a frame buffer, so the
22870 associated surface proxy can be disposed right away.
22872 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22874 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22875 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22876 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22877 display: add initial support for display attributes.
22878 The VA display attributes are mapped to properties so that to maintain the
22879 GStreamer terminology. Properties are to be identified by name, but internal
22880 functions are available to lookup the property by the actual VA display
22883 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22885 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
22886 jpeg: fix end-of-image (EOI) handler.
22887 decode_current_picture() was converted to return a gboolean instead
22888 of a GstVaapiDecoderStatus, so we were not getting out of the decode
22889 loop as expected, or could cause an error instead.
22890 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22892 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22894 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22895 mpeg2: include start code into VA slice data buffer.
22896 Integrate the start code prefix in the slice data buffer that is submitted
22897 to the hardware. VA-API specifies that slice_data_offset is the offset to
22898 the first byte of slice data. And, for MPEG-2, slice() data begins with
22899 the slice_start_code. Some VA driver implementations (EMGD) expect this.
22901 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
22904 autogen: fix configure script generation when srcdir != builddir.
22905 This patch allows for regenerating the configure script from a build
22906 directory that is not the actual source directory.
22907 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22909 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
22912 configure: use new libtool syntax.
22913 This now requires libtool >= 2.2 to regenerate the configure script.
22914 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22916 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
22918 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22919 decoder: use g_object_notify_by_pspec().
22920 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
22921 avoid a property name lookup. i.e. this makes notifications faster to
22922 the `vaapidecode' element.
22923 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22925 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22927 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22928 wayland: handle de-interlacing flags.
22929 VA/Wayland API was updated to allow flags for bob deinterlacing.
22930 More elaborated filters will require a complete VA/VPP pipeline.
22932 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22934 * gst-libs/gst/codecparsers/gstjpegparser.c:
22935 jpeg: fix default quantization tables.
22936 Two elements in the luminance quantization table were wrong. So,
22937 gst_jpeg_get_default_quantization_tables() now reconstructs tables
22938 in zig-zag order from the standard ones (Tables K.1 and K.2).
22940 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22942 * gst-libs/gst/codecparsers/gstjpegparser.c:
22943 jpeg: compute default Huffman tables.
22944 ... instead of having them pre-calculated. This saves around 1.5 KB
22945 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
22946 to do more work. Though, the client application may have to call that
22947 function at most once, only.
22949 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22951 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22952 display: drop VAProfileNone entries from debug messages.
22954 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
22956 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22957 display: query for supported display attributes.
22958 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22960 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
22962 * gst-libs/gst/vaapi/gstvaapiutils.c:
22963 * gst-libs/gst/vaapi/gstvaapiutils.h:
22964 utils: add string_of_VADisplayAttributeType() helper.
22965 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22967 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22969 * gst/vaapi/gstvaapisink.c:
22970 vaapisink: handle VA/DRM API.
22971 This is not useful in practice but for raw performance evaluation when
22972 the sink is invoked with display=drm sync=false. fakesink could also be
22975 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22977 * gst/vaapi/Makefile.am:
22978 * gst/vaapi/gstvaapipluginutil.c:
22979 plugins: add support for headless pipelines.
22981 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22983 * tests/Makefile.am:
22985 * tests/test-display.c:
22986 * tests/test-windows.c:
22987 tests: add support for headless decoding.
22989 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22993 * debian.upstream/Makefile.am:
22994 * debian.upstream/control.in:
22995 * debian.upstream/libgstvaapi-drm.install.in:
22996 * gst-libs/gst/vaapi/Makefile.am:
22997 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22998 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22999 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23000 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23001 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23002 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
23003 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
23004 * pkgconfig/Makefile.am:
23005 * pkgconfig/gstreamer-vaapi-drm.pc.in:
23006 Add initial support for VA/DRM.
23008 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23011 * gst-libs/gst/vaapi/Makefile.am:
23012 Fix build without X11 (again).
23013 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
23014 files list wrt. x11, glx and wayland backends.
23016 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23019 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23020 * gst-libs/gst/vaapi/gstvaapicompat.h:
23021 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23022 jpeg: update to the latest VA-API changes (0.32.1+).
23024 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23026 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23027 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23028 * gst/vaapi/gstvaapisink.c:
23029 wayland: implement display ::get_size*() hooks.
23031 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23033 * gst/vaapi/gstvaapipluginutil.c:
23034 plugins: prefer X11 rendering over GLX.
23035 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
23036 for rendering instead of texturing.
23038 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
23040 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
23041 wayland: use scale fullscreen method.
23042 This makes the compositor scale the surface to fit and preserves aspect
23044 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23046 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
23048 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
23049 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
23050 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23052 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23054 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23055 wayland: fix double disconnect of display.
23057 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23059 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23060 wayland: mangle display name for cache lookups.
23062 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23065 * debian.upstream/Makefile.am:
23066 * debian.upstream/control.in:
23067 * debian.upstream/libgstvaapi-wayland.install.in:
23068 * pkgconfig/Makefile.am:
23069 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
23070 wayland: add packaging files.
23072 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23074 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23075 * gst/vaapi/gstvaapipluginutil.c:
23076 * gst/vaapi/gstvaapisink.c:
23077 * pkgconfig/Makefile.am:
23078 Fix build without X11.
23080 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23082 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23083 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23084 * gst/vaapi/Makefile.am:
23085 * gst/vaapi/gstvaapipluginutil.c:
23086 * gst/vaapi/gstvaapisink.c:
23087 plugins: add support for Wayland.
23089 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23091 * tests/Makefile.am:
23093 * tests/test-display.c:
23094 * tests/test-windows.c:
23095 tests: add support for Wayland.
23097 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23101 * gst-libs/gst/vaapi/Makefile.am:
23102 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23103 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23104 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23105 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23106 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
23107 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
23108 Add initial support for VA/Wayland.
23109 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23111 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23113 * gst/vaapi/gstvaapipluginbuffer.c:
23114 plugins: fix creation of video buffer from surface proxy.
23115 Fix a regression introduced with commit 8ef490a.
23117 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23119 * gst/vaapi/gstvaapipluginbuffer.c:
23120 * gst/vaapi/gstvaapipluginutil.c:
23121 plugins: use new display types more.
23122 In particular, simplify gst_vaapi_reply_to_query() with display types.
23123 Likewise for creating new video buffers.
23125 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23127 * gst/vaapi/gstvaapidecode.c:
23128 * gst/vaapi/gstvaapidownload.c:
23129 * gst/vaapi/gstvaapipluginutil.c:
23130 * gst/vaapi/gstvaapipluginutil.h:
23131 * gst/vaapi/gstvaapipostproc.c:
23132 * gst/vaapi/gstvaapisink.c:
23133 * gst/vaapi/gstvaapiupload.c:
23134 plugins: fix display type selection and propagation.
23135 If vaapisink is in the GStreamer pipeline, then we shall allocate a
23136 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
23137 queries from vaapidecode shall get a valid answer from vaapisink.
23139 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23141 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23142 display: fix destruction of mutex.
23144 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23146 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23147 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23148 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23149 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23150 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23151 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23152 * gst/vaapi/gstvaapipluginutil.c:
23153 * gst/vaapi/gstvaapipluginutil.h:
23154 * gst/vaapi/gstvaapisink.c:
23155 display: add display types.
23156 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
23157 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
23158 type to "any", and add a "display-type" attribute.
23160 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23162 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23163 display: use prefixed display names for cache lookups.
23164 This improves display name comparisons by always allocating a valid display
23165 name. This also helps to disambiguate lookups by name in the global display
23166 cache, should a new backend be implemented.
23168 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23170 * gst/vaapi/gstvaapipluginutil.h:
23171 plugins: declare helper functions as internal.
23173 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23175 * docs/reference/libs/libs-sections.txt:
23176 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
23177 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
23178 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
23179 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
23180 * gst/vaapi/Makefile.am:
23181 * gst/vaapi/gstvaapidecode.c:
23182 * gst/vaapi/gstvaapidownload.c:
23183 * gst/vaapi/gstvaapipluginbuffer.c:
23184 * gst/vaapi/gstvaapipluginbuffer.h:
23185 * gst/vaapi/gstvaapipostproc.c:
23186 * gst/vaapi/gstvaapiupload.c:
23187 videobuffer: drop deprecated functions.
23188 Move video buffer creation routines to plugin elements. That exclusively
23189 uses *_typed_new*() variants.
23191 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23193 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
23194 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
23195 videobuffer: mark video buffer creation routines as deprecated.
23196 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
23197 plugin elements. So deprecate any explicit creation routines that are not the
23198 new *_typed_new*() variants.
23200 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23202 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
23203 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
23204 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
23205 videobuffer: factor out base and GLX implementations.
23206 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
23207 This avoids duplication of code, and makes it possible to further implement
23208 generic video buffer creation routines that automatically map to base or GLX
23211 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23213 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
23214 utils: fix gl_create_context() with parent context set.
23215 If GLX window was created from a foreign Display, then that same Display shall
23216 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
23217 will now use the same Display that the parent, if available.
23218 This fixes cluttersink with the Intel GenX VA driver.
23220 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23222 * gst/vaapi/gstvaapidecode.c:
23223 * gst/vaapi/gstvaapidownload.c:
23224 * gst/vaapi/gstvaapipluginutil.c:
23225 * gst/vaapi/gstvaapipluginutil.h:
23226 * gst/vaapi/gstvaapipostproc.c:
23227 * gst/vaapi/gstvaapisink.c:
23228 * gst/vaapi/gstvaapiupload.c:
23229 pluginutils: improve automatic display type selection.
23231 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23233 * gst/vaapi/gstvaapipluginutil.c:
23234 * gst/vaapi/gstvaapipluginutil.h:
23235 pluginutils: cosmetics (indentation fixes).
23237 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23240 configure: simplify video outputs summary.
23242 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23245 * gst/vaapi/gstvaapipluginutil.c:
23246 * gst/vaapi/gstvaapipluginutil.h:
23247 * gst/vaapi/gstvaapisink.c:
23248 * gst/vaapi/gstvaapisink.h:
23249 configure: drop check for --enable-vaapisink-glx.
23250 vaapisink is now built with support for multiple display types, whenever
23251 they are enabled. The new "display" attribute is used to select a particular
23254 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23257 * gst-libs/gst/vaapi/gstvaapicompat.h:
23258 * gst/vaapi/Makefile.am:
23259 * gst/vaapi/gstvaapidecode.c:
23260 * gst/vaapi/gstvaapidownload.c:
23261 * gst/vaapi/gstvaapipluginutil.c:
23262 * gst/vaapi/gstvaapipostproc.c:
23263 * gst/vaapi/gstvaapiupload.c:
23264 * tests/test-display.c:
23265 configure: drop check for --enable-vaapi-glx.
23266 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
23267 support, or fallback to TFP+FBO if this API is not found. Now, we check for
23268 the VA/GLX API by default if --enable-glx is set. If this API is not found,
23269 we now default to use TFP+FBO.
23270 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
23271 will be removed in the future. If GLX rendering is requested, then the VA/GLX
23272 API shall be used as it covers most usages. e.g. AMD driver can't render to
23275 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23278 tests: allow GLX output, if available and selected.
23280 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23282 * tests/Makefile.am:
23285 * tests/test-decode.c:
23286 * tests/test-subpicture.c:
23287 * tests/test-surfaces.c:
23288 tests: use common display and window creation routines.
23289 Add new --output option to select the renderer. Use --list-outputs to
23290 print a list of supported renderers.
23292 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23294 * tests/Makefile.am:
23295 tests: move encoded bitstreams to libutils.la.
23297 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23299 * tests/Makefile.am:
23300 tests: build convenience library for common utilities.
23302 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23304 * tests/Makefile.am:
23305 * tests/test-display.c:
23306 tests: simplify build with various display options.
23308 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23311 configure: improve checks for X11.
23313 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23315 * tests/Makefile.am:
23316 configure: fix previous commit for GLX deps.
23318 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23321 * gst-libs/gst/vaapi/Makefile.am:
23322 configure: improve checks for GLX.
23324 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23327 * gst-libs/gst/vaapi/gstvaapicompat.h:
23328 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23329 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23330 * gst-libs/gst/vaapi/gstvaapiutils.h:
23331 Drop support for obsolete VA-API versions < 0.30.4.
23333 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23336 * gst-libs/gst/Makefile.am:
23337 * gst-libs/gst/gstutils_version.h.in:
23338 * gst/vaapi/gstvaapisink.c:
23339 vaapisink: drop checks for new APIs used by default.
23340 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
23341 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
23342 are no longer necessary.
23344 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23347 configure: cosmetics and some minor changes.
23348 - Better grouping of feature checks
23349 - Sort list of config files to generate
23351 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23354 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23355 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
23356 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23357 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
23358 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
23359 * gst-libs/gst/vaapi/gstvaapiutils.h:
23360 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
23361 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
23362 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
23364 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23366 * gst-libs/gst/vaapi/Makefile.am:
23367 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
23368 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
23369 Drop obsolete GstVaapiTSB.
23370 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
23372 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23374 * docs/reference/libs/libs-sections.txt:
23375 docs: add missing entries for the JPEG decoder.
23377 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23380 * gst-libs/gst/vaapi/Makefile.am:
23381 * gst/vaapi/gstvaapidecode.c:
23382 * tests/test-decode.c:
23383 * tests/test-subpicture.c:
23384 Drop all references to USE_CODEC_PARSERS.
23386 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23390 * docs/reference/libs/libs-sections.txt:
23391 * docs/reference/libs/libs.core.types:
23392 * gst-libs/gst/vaapi/Makefile.am:
23393 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
23394 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
23395 * gst/vaapi/gstvaapidecode.c:
23396 * gst/vaapi/gstvaapidecode.h:
23397 * tests/test-decode.c:
23398 * tests/test-subpicture.c:
23399 Drop FFmpeg-based decoders.
23400 GStreamer codecparsers-based decoders are the only supported decoders now.
23401 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
23403 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
23406 * debian.upstream/control.in:
23407 configure: bump glib required version to 2.28.
23408 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23410 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
23412 * gst/vaapi/gstvaapidecode.h:
23413 * gst/vaapi/gstvaapidownload.h:
23414 * gst/vaapi/gstvaapipostproc.h:
23415 * gst/vaapi/gstvaapisink.h:
23416 * gst/vaapi/gstvaapiupload.h:
23417 plugins: declare _get_type() functions as const.
23418 Declaring a function as const enables better optimization of calls to
23420 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23422 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
23424 * gst/vaapi/gstvaapidecode.c:
23425 * gst/vaapi/gstvaapidownload.c:
23426 * gst/vaapi/gstvaapipostproc.c:
23427 * gst/vaapi/gstvaapisink.c:
23428 * gst/vaapi/gstvaapiupload.c:
23429 plugins: use g_clear_object() wherever applicable.
23430 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23432 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
23434 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23435 * gst-libs/gst/vaapi/gstvaapicontext.h:
23436 * gst-libs/gst/vaapi/gstvaapidecoder.h:
23437 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
23438 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
23439 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
23440 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
23441 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
23442 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
23443 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23444 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
23445 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23446 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23447 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23448 * gst-libs/gst/vaapi/gstvaapiimage.h:
23449 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
23450 * gst-libs/gst/vaapi/gstvaapiobject.h:
23451 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
23452 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
23453 * gst-libs/gst/vaapi/gstvaapisurface.h:
23454 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
23455 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23456 * gst-libs/gst/vaapi/gstvaapitexture.h:
23457 * gst-libs/gst/vaapi/gstvaapivalue.h:
23458 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
23459 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
23460 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
23461 * gst-libs/gst/vaapi/gstvaapivideopool.h:
23462 * gst-libs/gst/vaapi/gstvaapivideosink.h:
23463 * gst-libs/gst/vaapi/gstvaapiwindow.h:
23464 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
23465 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
23466 libs: declare _get_type() functions as const.
23467 Declaring a function as const enables better optimization of calls
23469 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23471 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
23473 * gst-libs/gst/vaapi/glibcompat.h:
23474 * gst-libs/gst/vaapi/gstvaapicontext.c:
23475 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23476 * gst-libs/gst/vaapi/gstvaapiobject.c:
23477 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
23478 * gst-libs/gst/vaapi/gstvaapisurface.c:
23479 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23480 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
23481 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
23482 * gst-libs/gst/vaapi/gstvaapivideopool.c:
23483 libs: use g_clear_object() wherever applicable.
23484 This is a preferred thread-safe version. Also add an inline version of
23485 g_clear_object() if compiling with glib < 2.28.
23486 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23488 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
23492 * docs/reference/libs/Makefile.am:
23493 * gst-libs/gst/vaapi/Makefile.am:
23494 * gst-libs/gst/vaapi/gstvaapimarshal.list:
23495 * gst-libs/gst/vaapi/gstvaapiobject.c:
23496 libs: use generic g_cclosure_marshal_VOID__VOID().
23497 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23499 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23502 * gst-libs/gst/vaapi/glibcompat.h:
23503 glibcompat: drop explicit check for g_list_free_full().
23505 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23508 Bump version for development.
23510 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23512 * gst-libs/gst/codecparsers/Makefile.am:
23513 jpeg: fix make dist.
23515 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
23519 * docs/Makefile.am:
23520 configure: fix build without gtk-doc support.
23521 Also do not generate tamplate files as all the documentation is inline.
23522 Drop un-needed code in autogen.sh as well.
23523 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23525 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
23530 configure: put m4 macros and autogenerated files into m4/ directory.
23531 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23533 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
23536 configure: drop deprecated autoconf macros.
23537 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
23538 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23540 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
23543 configure: don't use AC_SUBST for some variables.
23544 PKG_CHECK_MODULES already does this for us.
23545 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23547 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23549 * gst/vaapi/gstvaapidecode.c:
23550 * gst/vaapi/gstvaapidownload.c:
23551 * gst/vaapi/gstvaapipostproc.c:
23552 * gst/vaapi/gstvaapiupload.c:
23553 plugins: add support for GstImplementsInterface.
23555 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
23558 * gst/vaapi/gstvaapidecode.c:
23559 * gst/vaapi/gstvaapidownload.c:
23560 * gst/vaapi/gstvaapipostproc.c:
23561 * gst/vaapi/gstvaapisink.c:
23562 * gst/vaapi/gstvaapiupload.c:
23563 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
23564 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23566 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
23569 * gst/vaapi/gstvaapisink.c:
23570 plugins: do not use deprecated GStreamer -base symbols.
23571 Bump GStreamer plugins -base required version to 0.10.31, needed for
23572 gst_x_overlay_got_window_handle().
23573 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23575 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
23578 * gst/vaapi/gstvaapidecode.c:
23579 * gst/vaapi/gstvaapidownload.c:
23580 * gst/vaapi/gstvaapipostproc.c:
23581 * gst/vaapi/gstvaapisink.c:
23582 * gst/vaapi/gstvaapiupload.c:
23583 plugins: do not use deprecated core GStreamer symbols.
23584 Bump GStreamer required version to 0.10.14, needed for
23585 gst_element_class_set_details_simple().
23586 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23588 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23590 * tests/test-decode.c:
23591 tests: fix build without JPEG decoder support.
23593 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23595 * tests/Makefile.am:
23596 * tests/test-decode.c:
23597 * tests/test-jpeg.c:
23598 * tests/test-jpeg.h:
23599 tests: add test for JPEG decoding.
23601 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23603 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23604 jpeg: update to match latest parser API.
23606 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23608 * gst-libs/gst/codecparsers/gstjpegparser.c:
23609 * gst-libs/gst/codecparsers/gstjpegparser.h:
23610 codecparsers: jpeg: tweak parser API.
23611 ... to allow for more consistent parsing API among various codec parsers.
23612 In particular, drop use of GList.
23614 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23617 jpeg: fix configure check for VA/JPEG decoding API.
23619 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23621 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23622 jpeg: fix build with VA-API < 0.32.0.
23624 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23629 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23632 Bump version for development.
23634 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23640 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23645 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
23647 * gst/vaapi/gstvaapipluginutil.c:
23648 vaapiplugin: fix build when compiling without GLX.
23649 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23651 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23654 configure: disable FFmpeg-based decoders.
23655 FFmpeg decoders are still available through the --enable-ffmpeg option
23656 but are no longer maintained.
23658 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23660 * gst-libs/gst/vaapi/Makefile.am:
23661 Fix build with recent GStreamer stack.
23663 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23666 * gst-libs/gst/vaapi/gstvaapicompat.h:
23667 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23668 jpeg: update to current VA/JPEG decoding API.
23670 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23672 * gst-libs/gst/codecparsers/gstjpegparser.c:
23673 * gst-libs/gst/codecparsers/gstjpegparser.h:
23674 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23675 codecparsers: jpeg: track valid quantization and Huffman tables.
23676 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
23677 to determine whether a table actually changed since the last user
23678 synchronization point. That way, this makes it possible for some
23679 hardware accelerated decoding solution to upload only those tables
23682 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
23684 * gst-libs/gst/codecparsers/gstjpegparser.c:
23685 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
23686 Use GstByteReader *_unchecked() variants as much as possible.
23687 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23689 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
23691 * gst-libs/gst/codecparsers/gstjpegparser.c:
23692 * gst-libs/gst/codecparsers/gstjpegparser.h:
23693 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23694 jpeg: add new GstJpegHuffmanTables structure.
23695 Add new GstJpegHuffmanTables helper structure to hold all possible
23696 AC/DC Huffman tables available to all components.
23697 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23699 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
23701 * gst-libs/gst/codecparsers/gstjpegparser.c:
23702 * gst-libs/gst/codecparsers/gstjpegparser.h:
23703 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23704 jpeg: make gst_jpeg_parse() support multiple scans.
23705 gst_jpeg_parse() now gathers all scans available in the supplied
23706 buffer. A scan comprises of the scan header and any entropy-coded
23707 segments or restart marker following it. The size and offset to
23708 the associated data (ECS + RST segments) are append to a new
23709 GstJpegScanOffsetSize structure.
23710 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23712 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
23714 * gst-libs/gst/codecparsers/gstjpegparser.c:
23715 * gst-libs/gst/codecparsers/gstjpegparser.h:
23716 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23717 jpeg: update to match latest parser API.
23718 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23720 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23722 * gst-libs/gst/codecparsers/gstjpegparser.h:
23723 jpeg: simplify and optimize parser API.
23725 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
23727 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23728 mpeg: fix picture used to determine backward_reference_vop_coding_type.
23729 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
23730 but Gwenole did not apply all the bits.
23731 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23733 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
23735 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23736 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
23737 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23739 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
23741 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23742 mpeg4: handle skipped frames (vop_hdr->coded = 0).
23743 Gracefully skip non VOP coded frames.
23744 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23746 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
23748 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23749 mpeg4: fix timestamp issues on too fast playback.
23750 Improve generation of presentation timestamps to be less sensitive
23751 to input stream errors. In practise, GOP is also a synchronization
23752 point for PTS calculation.
23753 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23755 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23757 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23758 Fix build without JPEG decoder.
23760 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
23762 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23763 mpeg4: fix VOP coding type of backward reference pictures.
23764 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23766 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
23768 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23769 mpeg4: fix handling of temporal reference distances.
23770 TRD and TRB fields are not large enough to hold the difference of PTS
23771 expressed with nanosecond resolution. So, compute them from the original
23773 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23775 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23777 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
23778 dpb: mpeg2: cosmetics.
23779 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
23781 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
23784 * gst-libs/gst/vaapi/Makefile.am:
23785 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23786 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23787 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23788 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
23789 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23790 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23791 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23792 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23793 * gst/vaapi/gstvaapidecode.c:
23794 Add initial JPEG decoder.
23795 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23797 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
23800 * gst-libs/gst/Makefile.am:
23801 * gst-libs/gst/codecparsers/Makefile.am:
23802 * gst-libs/gst/codecparsers/gstjpegparser.c:
23803 * gst-libs/gst/codecparsers/gstjpegparser.h:
23804 * gst-libs/gst/vaapi/Makefile.am:
23805 codecparsers: add JPEG parser.
23806 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23808 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
23810 * gst/vaapi/gstvaapidecode.c:
23811 vaapidecode: fix VA display type.
23812 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
23814 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23816 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23818 * gst/vaapi/gstvaapidecode.c:
23819 vaapidecode: fix includes when compiling for a single API.
23821 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23824 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23825 mpeg2: fix calculation of macroblock_offset.
23826 Fix decoding of streams with extra slice() information before the first
23827 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
23829 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23831 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23832 mpeg2: fix interpolation of GOP TSN from new PTS.
23833 New GOP TSN base could be mis-calculated. In particular, this fixes
23834 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
23836 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23839 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23840 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23841 mpeg2: fix decoding of high profile streams.
23842 Allow MPEG-2 High profile streams only if the HW supports that profile
23843 or no High profile specific bits are used, and thus Main profile could
23844 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
23845 set to 11 and no sequence_scalable_extension() was parsed.
23847 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23850 * gst/vaapi/gstvaapidecode.c:
23851 vaapidecode: report unsupported codec profiles.
23852 Try to gracefully abort when the HW does not support the requested
23853 profile. There is no fallback unless profiles are correctly parsed
23854 and matched through caps beforehand.
23856 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
23859 * gst/vaapi/gstvaapisink.c:
23860 vaapisink: don't resize a 'foreign' X-window.
23861 Don't forcibly resize foreign X windows. The user is responsible for
23862 their size and vaapisink shall not change this.
23863 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23865 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
23868 * gst/vaapi/gstvaapisink.c:
23869 * gst/vaapi/gstvaapisink.h:
23870 vaapisink: recalculate render rect only if caps are negotiated.
23871 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
23872 caps got negotiated. Besides, when a foreign window is provided by the
23873 user, so should the render rect.
23874 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23876 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23879 Bump version for development.
23881 === release 0.3.6 ===
23883 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23888 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23890 * docs/reference/libs/libs-docs.xml.in:
23891 * docs/reference/libs/libs-sections.txt:
23892 * docs/reference/plugins/plugins-docs.xml.in:
23893 * docs/reference/plugins/plugins-sections.txt:
23894 * docs/reference/plugins/plugins.types:
23895 * gst-libs/gst/vaapi/gstvaapiimage.c:
23896 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
23897 * gst/vaapi/gstvaapipostproc.c:
23898 Fix a few documentation issues.
23900 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23904 Update introduction and changelog.
23906 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23908 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
23909 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
23910 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23911 mpeg2: allocate dummy picture for first field based I-frame.
23912 In P-pictures, prediction shall be made from the two most recently
23913 decoded reference fields. However, when the first I-frame is a field,
23914 the next field of the current picture could be a P-picture but only a
23915 single field was decoded so far. In this case, create a dummy picture
23916 with POC = -1 that will be used as reference.
23917 Some VA drivers would error out if P-pictures don't have a forward
23918 reference picture. This is true in general but not in this very specific
23921 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23923 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23924 mpeg2: fix simple to main profile fallback.
23925 Allow fallback from simple to main profile when the HW decoder does
23926 not support the former profile and that no sequence_header_extension()
23927 is available to point out this.
23929 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
23931 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23932 mpeg4: improve error checking while decoding packets.
23933 decode_picture() could return an error when an MPEG-4 profile is not
23934 supported for example. In this case, the underlying VA context is not
23935 allocated and no other proper action can be taken. Likewise on exit
23936 from decode_slice().
23937 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23939 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23941 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
23942 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23943 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23944 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23945 decoder: use POC to maintain the DPB.
23946 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
23947 numbers. A signed 32-bit integer should be enough for 1 year of continuous
23948 video streaming at 60 Hz.
23949 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
23950 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
23952 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23954 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23955 mpeg2: rework generation of presentation timestamps.
23956 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
23957 i.e. demuxer could not determine the PTS or the generated PTS is lower than
23958 max PTS from past pictures, then try to fix it up based on the duration of
23960 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
23961 reconstruct a current time. Also now handle wrapped TSN correctly.
23963 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23965 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23966 mpeg2: ignore empty user-data packets.
23967 Fix tcela-8.bits conformance test.
23969 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23971 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23972 mpeg2: review and report errors accordingly.
23973 Use GST_ERROR() to report real errors instead of hiding them into
23976 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23978 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23979 mpeg2: fix invalid interlaced frame in progressive sequence.
23980 Some streams, badly constructed, could have signaled an interlaced
23981 frame while the sequence was meant to be progressive. Warn and force
23982 frame to be progressive in this case.
23984 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23986 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23987 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23988 mpeg2: add support for interlaced streams.
23989 Pictures are submitted to the HW for rendering only when both fields
23990 are decoded or current picture is a full frame.
23992 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23994 * gst-libs/gst/vaapi/Makefile.am:
23995 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
23996 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
23997 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23998 mpeg2: add new decoded picture buffer infrastructure.
23999 Decoded pictures are now maintained into DPB, similarly to H.264.
24000 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
24002 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24004 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24005 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24006 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24007 decoder: add first-field flag to picture.
24008 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
24009 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
24010 as the first field. Any subsequent allocated field will become the second field.
24012 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24014 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24015 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24016 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24017 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24018 decoder: allow pictures to be cloned for field decoding.
24019 Add gst_vaapi_picture_new_field() function that clones a picture, while
24020 preserving the parent picture surface. i.e. the surface proxy reference
24021 count is increased and other fields copied as is. Besides, the picture
24022 is reset into a "non-output" mode.
24024 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24026 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24027 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24028 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24029 decoder: rework picture field flags.
24030 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
24031 could be propagated to the surface proxy when it is pushed for rendering.
24032 Besides, top and bottom fields are now expressed with picture structure flags
24033 from GstVaapiSurfaceRenderFlags.
24035 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24037 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24038 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24039 decoder: add OUTPUT flag to pictures.
24040 Allow pictures to be marked as output gst_vaapi_picture_output().
24042 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24044 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24045 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24046 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24047 decoder: fix semantics of SKIPPED pictures.
24048 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
24049 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
24050 has nothing to do with rendering. This only means that the currently decoded
24051 picture is just a copy of its reference picture.
24053 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24055 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24056 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24057 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24058 * gst/vaapi/gstvaapipostproc.c:
24059 vaapipostproc: get "interlaced" attribute from surface proxy.
24060 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
24061 vaapipostproc so that to handles cases where bitstream is interlaced
24062 but almost only frame pictures are generated. In this case, we should
24063 not be alternating between top/bottom fields.
24065 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24068 * debian.upstream/control.in:
24069 * gst/vaapi/Makefile.am:
24070 * gst/vaapi/gstvaapi.c:
24071 * gst/vaapi/gstvaapipostproc.c:
24072 * gst/vaapi/gstvaapipostproc.h:
24073 vaapipostproc: add new element for video postprocessing.
24074 Add vaapipostproc element for video postprocessing. So far, only basic
24075 bob deinterlacing is implemented. Interlaced mode is automatically
24076 detected based on sink caps ("interlaced" field).
24078 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24080 * docs/reference/libs/libs-sections.txt:
24081 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
24082 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
24083 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
24084 * gst/vaapi/gstvaapisink.c:
24085 videobuffer: add surface render flags.
24086 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
24087 to be set to the video buffer. In particular, this is mostly useful for
24088 basic deinterlacing.
24090 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24092 * gst-libs/gst/vaapi/gstvaapicompat.h:
24093 compat: add compatibility glue with VA-API 0.34+ (WIP).
24095 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24097 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24098 h264: skip all Filler Data NALs.
24100 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
24102 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24103 mpeg4: check for decoder status prior to decoding packet.
24104 Make sure there is a VA surface free prior to decoding the current frame.
24105 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24107 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
24109 * gst/vaapi/gstvaapidecode.c:
24110 * gst/vaapi/gstvaapidecode.h:
24111 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
24112 Rationale: playbin2 links all elements at run-time. Once vaapidecode
24113 is created and a NEWSEGMENT event arrives, downstream element may not
24114 be ready yet. So, delay this event until next element is chained in,
24115 otherwise basesink could output "Received buffer without a new-segment.
24116 Assuming timestamps start from 0".
24117 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24119 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
24121 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24122 mpeg2: fix GOP timestamps when incorrect data is received.
24123 Some streams have incorrect GOP timestamps, or nothing set at all.
24124 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
24125 from demuxer timestamps, which are monotonic.
24126 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24128 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
24130 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24131 mpeg2: don't decode anything before the first sequence_header().
24132 Skip all pictures prior to the first sequence_header(). Besides,
24133 skip all picture_data() if there was no prior picture_header().
24134 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24136 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
24138 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24139 ffmpeg: add support for interlaced streams.
24140 Evaluate interlaced stream properties.
24141 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24143 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
24145 * gst/vaapi/gstvaapidecode.c:
24146 vaapidecode: propagate interlaced and TFF properties downstream.
24147 Propagate "interlaced" caps downstream and set "tff" buffer flag
24148 appropriately to output buffers for interlaced pictures.
24149 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24151 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
24153 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24154 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24155 decoder: maintain caps for interlaced streams.
24156 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
24158 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24160 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
24162 * docs/reference/libs/libs-sections.txt:
24163 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24164 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24165 surfaceproxy: add TFF property.
24166 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
24167 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24169 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24172 AUTHORS: update to match current authors.
24174 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24176 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24177 mpeg2: fix is_first_field calculation.
24178 Reset is_first_field for frame pictures. Factor out locations where
24179 the flag is updated.
24181 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24183 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24184 mpeg2: catch incorrect picture_structure from bitstreams.
24185 Assume "frame" picture structure if the syntax element was zero or if
24186 progressive_frame is set.
24188 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24190 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24191 mpeg2: fix slice_vertical_position calculation (again).
24192 VA-API expects slice_vertical_position as the initial position from the
24193 bitstream. i.e. the direct slice() information. VA drivers will be fixed
24196 === release 0.3.5 ===
24198 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24200 * gst/vaapi/gstvaapidecode.c:
24201 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
24202 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
24203 For gst_element_class_get_pad_template(), no unreferencing is necessary
24204 according to the GStreamer documentation.
24206 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24209 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24210 h264: fix slice_data_bit_offset calculation.
24211 Unlike what VA-API documentation defines, the slice_data_bit_offset
24212 represents the offset to the first macroblock in the slice data, minus
24213 any emulation prevention bytes in the slice_header().
24214 This fix copes with binary-only VA drivers that won't be fixed any
24215 time soon. Besides, this aligns with the current FFmpeg behaviour
24216 that was based on those proprietary drivers implementing the API
24219 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
24221 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24222 h264: skip all Access Unit (AU) NALs.
24223 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24225 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
24227 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24228 h264: fix modification process of reference picture lists.
24229 Construction of RefPicList0/1 could be off by one element.
24230 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24232 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24234 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24235 mpeg2: fix size calculation from sequence_extension().
24236 Original values from sequence_header() are 12-bit and the remaining
24237 2 most significant bits are coming from sequence_extension().
24238 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24240 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24242 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24243 mpeg2: fix slice_vertical_position calculation.
24244 Make sure to adjust slice_vertical_position if picture structure
24245 is a top or bottom field.
24247 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24249 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24250 decoder: add picture structure flags.
24252 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24254 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24255 mpeg2: fix decoding at end-of-sequence.
24257 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24259 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24260 mpeg2: fix slice_horizontal_position calculation.
24262 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24264 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24265 mpeg2: drop useless mb_y and mb_height members.
24267 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24269 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24270 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
24271 6.3.15 says that "some slices may have the same slice_vertical_position,
24272 since slices may start and finish anywhere". So, we can't submit the current
24273 picture to the HW right away since subsequent slices would be missing.
24275 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24277 * gst-libs/gst/vaapi/gstvaapiimage.c:
24278 image: fix source stride in picture copy.
24280 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24282 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24283 decoder: fix double buffer free with some VA drivers.
24284 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
24285 push the VA buffer object into a list of free buffers to be re-used. However,
24286 reference pictures (and data) that was kept would explicitly release the VA
24287 buffer object later on, thus possibly destroying a valid (re-used) object.
24288 Besides, some other VA drivers don't support correctly the vaRenderPicture()
24289 semantics for VA buffers disposal and would leak memory if there is no explicit
24290 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
24291 right after vaRenderPicture(). All VA drivers need to be aligned.
24293 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24295 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24296 h264: complete any current picture decoder before SPS / PPS change.
24297 This ensures the VA context is clear when the encoded resolution
24298 changes. i.e. make sure older picture is decoded with the older
24299 VA context before it changes.
24301 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24303 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24304 h264: create VA context earlier when SPS is parsed.
24306 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24308 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24309 h264: don't allocate too big data structures on stack.
24311 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24313 * gst-libs/gst/vaapi/glibcompat.h:
24314 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24315 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24316 glib: map deprecated API to glib >= 2.32 equivalents.
24317 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
24318 GRecMutex, which no longer require any prior call to g_thread_init().
24320 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24322 * gst-libs/gst/vaapi/gstvaapiutils.h:
24323 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24324 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24325 glib: fix includes.
24327 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24329 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24330 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24331 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24332 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24333 cosmetics: fix warnings (drop unused variables).
24335 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24337 * gst/vaapi/gstvaapidecode.c:
24338 vaapidecode: fix another pad template ref leak.
24340 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24342 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24343 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24344 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24345 mpeg2: fix crash when there is no free surface to decode into.
24347 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
24349 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24350 display: skip profiles which have no entrypoints.
24351 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24353 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24355 * gst/vaapi/gstvaapiupload.c:
24356 vaapiupload: use g_object_unref() for GstVaapiImage.
24358 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24360 * gst/vaapi/gstvaapidecode.c:
24361 * gst/vaapi/gstvaapidownload.c:
24362 * gst/vaapi/gstvaapisink.c:
24363 * gst/vaapi/gstvaapiupload.c:
24364 plugins: fix pad template ref leaks.
24366 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24369 Bump version for development.
24371 === release 0.3.4 ===
24373 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24379 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24383 Mention codecparsers-based decoders, FFmpeg is now optional. Update
24384 list of support HW.
24386 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24391 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24393 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24394 decoder: allocate proxy surface earlier.
24395 This simplifies gst_vaapi_picture_output() to only update the presentation
24396 timestamp and submit the proxy to the decoder for output.
24398 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24400 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24401 decoder: fix memory leak of VA objects on exit.
24402 On sequence end, if the last decoded picture is not output for rendering,
24403 then the proxy surface is not created. In this case, the original surface
24404 must be released explicitly to the context.
24406 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24408 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24409 mpeg2: use GstAdapter to track input sequence.
24410 This fixes possible memory leaks and improves performance by removing
24413 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24416 * gst-libs/gst/vaapi/Makefile.am:
24417 * gst-libs/gst/vaapi/glibcompat.h:
24418 * gst-libs/gst/vaapi/sysdeps.h:
24419 Add glib compatibility glue for older versions.
24421 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24423 * gst-libs/gst/vaapi/Makefile.am:
24424 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24425 * gst-libs/gst/vaapi/gstvaapicontext.c:
24426 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24427 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24428 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24429 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24430 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24431 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24432 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24433 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24434 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24435 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24436 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24437 * gst-libs/gst/vaapi/gstvaapiimage.c:
24438 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
24439 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24440 * gst-libs/gst/vaapi/gstvaapiobject.c:
24441 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
24442 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24443 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24444 * gst-libs/gst/vaapi/gstvaapisurface.c:
24445 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24446 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24447 * gst-libs/gst/vaapi/gstvaapitexture.c:
24448 * gst-libs/gst/vaapi/gstvaapiutils.c:
24449 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24450 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24451 * gst-libs/gst/vaapi/gstvaapivalue.c:
24452 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
24453 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
24454 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
24455 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24456 * gst-libs/gst/vaapi/gstvaapivideosink.c:
24457 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24458 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24459 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24460 * gst-libs/gst/vaapi/sysdeps.h:
24461 Add header for system-dependent definitions.
24463 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24465 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24466 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24467 * gst-libs/gst/vaapi/gstvaapiutils.c:
24468 * gst-libs/gst/vaapi/gstvaapiutils.h:
24469 decoder: optimize slice data buffers initialization.
24470 VA drivers may have a faster means to transfer user buffers to GPU
24471 buffers than using memcpy(). In particular, on Intel Gen graphics, we
24472 can use pwrite(). This provides for faster upload of bitstream and can
24473 help higher bitrates.
24474 vaapi_create_buffer() helper function was also updated to allow for
24475 un-mapped buffers and pre-initialized data for buffers.
24477 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24479 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24480 h264: simplify RefPicList reconstruction.
24482 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24484 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24485 h264: flush DPB when the end of the sequence is reached.
24487 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24489 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24490 h264: handle Decoded Picture Buffer (DPB).
24492 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24494 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24495 h264: fix pred_weight_table() reconstruction.
24496 Only the explicit pred_weight_table(), possibly with the inferred default
24497 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
24498 is not set for P/SP slices.
24500 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24502 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24503 h264: execute reference picture marking process (MMCO).
24505 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24507 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24508 h264: fix presentation timestamps.
24510 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24512 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24513 h264: execute reference picture marking process (sliding window).
24515 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24517 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24518 h264: handle avcC format for decoding buffers.
24520 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24522 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24523 h264: handle codec-data.
24524 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24526 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24528 * gst-libs/gst/vaapi/Makefile.am:
24529 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24530 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24531 * gst/vaapi/gstvaapidecode.c:
24532 * tests/test-decode.c:
24533 Add initial H.264 decoder.
24535 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24537 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24538 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24539 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
24540 Keep a valid reference to the proxy in GstVaapiPicture so that frames
24541 marked as "used for reference" could be kept during the lifetime of the
24542 picture. i.e. don't release them too soon as they could be re-used right
24545 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24547 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24548 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24549 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24550 decoder: properly reference count pictures.
24551 This fixes cases where a GstVaapiPicture would be destroyed whereas
24552 there is still a valid instance of it in either prev, current or
24555 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24557 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24558 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24559 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24560 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24561 decoder: simplify output of decoded frames.
24562 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
24563 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
24564 is already set correctly and reference count increased, if necessary.
24566 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24568 * gst-libs/gst/vaapi/Makefile.am:
24569 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24570 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24571 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24572 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24573 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24574 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24575 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24576 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24577 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24578 decoder: rework the internal VA objects API.
24579 The new API simplifies a lot reference counting and makes it more
24580 flexible for future additions/changes. The GstVaapiCodecInfo is
24581 also gone. Rather, new helper macros are provided to allocate
24582 picture, slice and quantization matrix parameter buffers.
24584 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24586 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24587 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24588 decoder: allow slices to be attached to pictures later.
24590 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24592 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24593 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24594 decoder: add ref_count to GstVaapiPicture.
24596 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24598 * gst/vaapi/gstvaapisink.c:
24599 vaapisink: cap window size to the maximum display size.
24601 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
24603 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24604 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24605 profile: match video/x-h263 as H.263 Baseline profile.
24606 HACK: qtdemux does not report profiles for H.263. So, assume plain
24607 "video/x-h263" is H.263 Baseline profile.
24608 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24610 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24612 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24613 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24614 display: report H.263 Baseline profile.
24615 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
24616 profile (VAProfileMPEG4Simple) is supported.
24618 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24620 * gst-libs/gst/vaapi/Makefile.am:
24621 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24622 Add template for workarounds.
24624 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24626 * tests/test-decode.c:
24627 tests: error out if FFmpeg|codecparsers are not supported.
24629 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24631 * docs/reference/libs/libs-sections.txt:
24632 * gst-libs/gst/vaapi/gstvaapisurface.h:
24633 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24634 surface: don't expose gst_vaapi_surface_get_parent_context().
24635 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
24636 It's just an internal helper function. However, it's still possible to get
24637 the parent context through the "parent-context" property.
24639 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24641 * tests/Makefile.am:
24642 * tests/test-subpicture.c:
24643 tests: fix build without FFmpeg.
24645 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24648 Bump version for development.
24650 === release 0.3.3 ===
24652 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24658 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24661 * debian.upstream/copyright:
24662 * gst-libs/gst/vaapi/gstvaapicontext.c:
24663 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24664 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24665 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24666 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24667 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24668 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24669 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24670 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24671 * gst-libs/gst/vaapi/gstvaapiimage.c:
24672 * gst-libs/gst/vaapi/gstvaapiimage.h:
24673 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24674 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24675 * gst-libs/gst/vaapi/gstvaapiutils.c:
24676 * gst-libs/gst/vaapi/gstvaapiutils.h:
24677 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24678 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24679 * gst/vaapi/gstvaapi.c:
24680 * gst/vaapi/gstvaapidecode.c:
24681 * gst/vaapi/gstvaapidownload.c:
24682 * gst/vaapi/gstvaapidownload.h:
24683 * gst/vaapi/gstvaapipluginutil.c:
24684 * gst/vaapi/gstvaapipluginutil.h:
24685 * gst/vaapi/gstvaapisink.c:
24686 * gst/vaapi/gstvaapiupload.c:
24687 * gst/vaapi/gstvaapiupload.h:
24688 * tests/test-decode.c:
24689 legal: fix year for some copyright notices.
24691 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24693 * gst-libs/gst/vaapi/gstvaapicontext.c:
24694 * gst-libs/gst/vaapi/gstvaapicontext.h:
24695 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24696 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24697 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24698 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24699 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24700 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24701 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24702 * gst-libs/gst/vaapi/gstvaapiimage.c:
24703 * gst-libs/gst/vaapi/gstvaapiimage.h:
24704 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
24705 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
24706 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24707 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24708 * gst-libs/gst/vaapi/gstvaapisurface.c:
24709 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24710 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24711 * gst-libs/gst/vaapi/gstvaapiutils.c:
24712 * gst-libs/gst/vaapi/gstvaapiutils.h:
24713 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24714 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24715 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
24716 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
24717 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24718 * gst/vaapi/gstvaapidownload.h:
24719 * gst/vaapi/gstvaapisink.h:
24720 * gst/vaapi/gstvaapiupload.h:
24721 * tests/test-decode.c:
24722 legal: add Intel copyright on modified files.
24724 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24726 * gst-libs/gst/vaapi/gstvaapi_priv.h:
24727 * gst-libs/gst/vaapi/gstvaapicompat.h:
24728 * gst-libs/gst/vaapi/gstvaapicontext.c:
24729 * gst-libs/gst/vaapi/gstvaapicontext.h:
24730 * gst-libs/gst/vaapi/gstvaapidebug.h:
24731 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24732 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24733 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24734 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
24735 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24736 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24737 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24738 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24739 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24740 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24741 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24742 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24743 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24744 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24745 * gst-libs/gst/vaapi/gstvaapiimage.c:
24746 * gst-libs/gst/vaapi/gstvaapiimage.h:
24747 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
24748 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
24749 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24750 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24751 * gst-libs/gst/vaapi/gstvaapiobject.c:
24752 * gst-libs/gst/vaapi/gstvaapiobject.h:
24753 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24754 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
24755 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
24756 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24757 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24758 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24759 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24760 * gst-libs/gst/vaapi/gstvaapisurface.c:
24761 * gst-libs/gst/vaapi/gstvaapisurface.h:
24762 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24763 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24764 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24765 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24766 * gst-libs/gst/vaapi/gstvaapitexture.c:
24767 * gst-libs/gst/vaapi/gstvaapitexture.h:
24768 * gst-libs/gst/vaapi/gstvaapitypes.h:
24769 * gst-libs/gst/vaapi/gstvaapiutils.c:
24770 * gst-libs/gst/vaapi/gstvaapiutils.h:
24771 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24772 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24773 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24774 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24775 * gst-libs/gst/vaapi/gstvaapivalue.c:
24776 * gst-libs/gst/vaapi/gstvaapivalue.h:
24777 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
24778 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
24779 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24780 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24781 * gst-libs/gst/vaapi/gstvaapivideosink.c:
24782 * gst-libs/gst/vaapi/gstvaapivideosink.h:
24783 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24784 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24785 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24786 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24787 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24788 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24789 * gst/vaapi/gstvaapidecode.c:
24790 * gst/vaapi/gstvaapidecode.h:
24791 * gst/vaapi/gstvaapidownload.c:
24792 * gst/vaapi/gstvaapidownload.h:
24793 * gst/vaapi/gstvaapisink.c:
24794 * gst/vaapi/gstvaapisink.h:
24795 * gst/vaapi/gstvaapiupload.c:
24796 * gst/vaapi/gstvaapiupload.h:
24799 * tests/test-decode.c:
24800 * tests/test-decode.h:
24801 * tests/test-display.c:
24802 * tests/test-h264.c:
24803 * tests/test-h264.h:
24804 * tests/test-mpeg2.c:
24805 * tests/test-mpeg2.h:
24806 * tests/test-surfaces.c:
24807 * tests/test-textures.c:
24808 * tests/test-vc1.c:
24809 * tests/test-vc1.h:
24810 * tests/test-windows.c:
24811 legal: fix copyright notices to include "Copyright" term.
24813 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
24815 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24816 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24817 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
24818 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24820 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
24822 * gst-libs/gst/vaapi/Makefile.am:
24823 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24824 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24825 * gst/vaapi/gstvaapidecode.c:
24826 Add initial MPEG-4 decoder.
24827 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24829 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24831 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24832 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24833 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
24834 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24836 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24838 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24839 vc1: fix codec-data decoding for WMV3 format.
24841 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24843 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24844 vc1: fix presentation timestamps.
24846 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24848 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24849 vc1: fix MV mode packing.
24851 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24853 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24854 vc1: handle codec-data.
24856 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24858 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24859 vc1: handle encapsulated bitstreams.
24861 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24863 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24864 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24865 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24866 vc1: fix bitplanes decoding.
24868 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24870 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24871 vc1: fix BFRACTION reconstruction.
24873 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24875 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24876 vc1: fix framerate calculation.
24878 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24880 * gst-libs/gst/vaapi/Makefile.am:
24881 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24882 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24883 * gst/vaapi/gstvaapidecode.c:
24884 * tests/test-decode.c:
24885 Add initial VC-1 decoder.
24887 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
24889 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24890 mpeg2: fix first field detection.
24891 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24893 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24895 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24896 mpeg2: fix quantisation matrix construction.
24898 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24900 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24901 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24902 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
24903 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24905 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24907 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24908 mpeg2: fix packets spanning over two buffers.
24910 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24912 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24913 mpeg2: ignore system start codes (PES headers).
24915 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24917 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24918 mpeg2: handle closed_gop.
24920 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24922 * gst-libs/gst/vaapi/Makefile.am:
24923 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24924 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24925 * gst/vaapi/gstvaapidecode.c:
24926 * tests/test-decode.c:
24927 Add initial MPEG-2 decoder.
24929 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24932 * gst-libs/gst/vaapi/Makefile.am:
24933 * gst/vaapi/gstvaapidecode.c:
24934 * tests/test-decode.c:
24935 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
24937 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24939 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24940 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24941 Add VA decoder helpers.
24943 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24945 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24946 decoder: add new error codes.
24947 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
24948 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
24950 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24952 * gst-libs/gst/vaapi/Makefile.am:
24953 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
24954 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
24955 Add timestamp buffer store helper utils.
24957 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24959 * gst-libs/gst/vaapi/gstvaapiutils.c:
24960 * gst-libs/gst/vaapi/gstvaapiutils.h:
24961 Add VA buffer helpers.
24963 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24965 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24966 utils: slight improvements to gl_bind_texture().
24968 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24970 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24971 utils: pretty-print output of gl_get_error_string().
24973 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24975 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24976 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
24978 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24980 * gst-libs/gst/vaapi/gstvaapiutils.c:
24981 utils: simplify string of VAProfile/VAEntrypoint.
24983 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24985 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24986 * gst-libs/gst/vaapi/gstvaapiutils.c:
24987 * gst-libs/gst/vaapi/gstvaapiutils.h:
24988 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
24990 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24995 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24997 * tests/test-decode.c:
24998 tests: check for shared VA displays (display cache).
25000 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25002 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25003 display: always free VA display cache if it is empty.
25005 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25007 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25008 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25009 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
25010 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25011 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25012 display: use VA display cache for X11 and GLX winsys.
25014 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25016 * gst-libs/gst/vaapi/Makefile.am:
25017 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25018 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
25019 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25020 display: implement a VA display cache.
25022 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25024 * gst/vaapi/gstvaapipluginutil.c:
25025 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
25026 This ensures the display name provided to gst_vaapi_display_*_new()
25027 maps to the system defaults, instead of forcing "" that could be different
25028 from the current DISPLAY name.
25030 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25032 * gst/vaapi/gstvaapiupload.c:
25033 vaapiupload: only set caps on newly created buffers.
25034 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25036 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25038 * gst/vaapi/gstvaapisink.c:
25039 vaapisink: ensure VA display in GstBaseSink::start() hook.
25040 This ensures a VA display is ready by the time upstream elements request
25043 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25045 * gst/vaapi/gstvaapisink.c:
25046 vaapisink: don't leak GL texture.
25047 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25049 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25051 * gst/vaapi/gstvaapisink.c:
25052 vaapisink: fix calculation of render region.
25054 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25056 * gst/vaapi/gstvaapisink.c:
25057 vaapisink: automatically fit video to window.
25059 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25061 * gst/vaapi/gstvaapisink.c:
25062 vaapisink: implement GstXOverlay::set_render_rectangle().
25064 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25066 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25067 window: always check geometry when the window is mapped.
25069 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
25071 * gst-libs/gst/vaapi/gstvaapiutils.c:
25072 Add missing profiles from VA-API 0.32.0.
25073 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25075 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25078 .gitignore: add test-subpicture.
25080 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25083 Bump version for development.
25085 === release 0.3.2 ===
25087 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25093 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25095 * tests/Makefile.am:
25096 tests: fix make dist (ship with test-subpicture-data.h).
25098 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25103 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25105 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25106 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25107 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25108 decoder: fix possible leak of VA surfaces.
25109 Under some circumstances, we could have leaked a surface, thus not
25110 releasing it to the pool of available surfaces in the VA context.
25111 The strategy is now to use a proxy earlier and automatically ref/unref
25112 whenever necessary. In particular, during the lifetime needed for FFmpeg.
25114 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25116 * docs/reference/libs/libs-sections.txt:
25117 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25118 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
25119 surfaceproxy: add helper to retrieve the VA surface ID.
25121 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25123 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25124 surfaceproxy: simplify destruction.
25125 Also make sure to always make sure to release the surface back to the
25126 pool of surfaces in the associated VA context, if any.
25128 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25130 * gst/vaapi/gstvaapidecode.c:
25131 vaapidecode: fix deinitialization order.
25133 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25135 * gst-libs/gst/vaapi/gstvaapicontext.c:
25136 context: avoid self reference loops with surfaces.
25138 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25140 * debian.upstream/control.in:
25141 debian: update control.in description for new plugins.
25143 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25145 * gst/vaapi/gstvaapiupload.c:
25146 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
25147 This also fixes extra structures, beyond the one at index 0, to hold
25148 the right additional values.
25150 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25152 * gst/vaapi/gstvaapiupload.c:
25153 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
25155 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25158 * docs/reference/plugins/plugins-docs.xml.in:
25159 * docs/reference/plugins/plugins-sections.txt:
25160 * docs/reference/plugins/plugins.types:
25161 * gst/vaapi/Makefile.am:
25162 * gst/vaapi/gstvaapi.c:
25163 * gst/vaapi/gstvaapidownload.c:
25164 * gst/vaapi/gstvaapidownload.h:
25165 vaapidownload: add new plugin to download pixels from VA surfaces.
25167 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25169 * gst/vaapi/gstvaapipluginutil.c:
25170 * gst/vaapi/gstvaapipluginutil.h:
25171 vaapipluingutils: add helper to append surface caps to YUV caps.
25173 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25175 * docs/reference/libs/libs-sections.txt:
25176 * gst-libs/gst/vaapi/gstvaapiimage.c:
25177 * gst-libs/gst/vaapi/gstvaapiimage.h:
25178 image: add helpers to extract pixels to user buffers.
25180 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25182 * gst-libs/gst/vaapi/gstvaapiimage.c:
25183 image: simplify initialization of raw images from video buffers.
25185 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25187 * gst-libs/gst/vaapi/gstvaapiimage.c:
25188 image: fix update from NV12 buffers.
25190 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25192 * gst/vaapi/gstvaapiupload.c:
25193 vaapiupload: fix memory leak in _init() function.
25195 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25199 * debian.upstream/control.in:
25200 * docs/reference/plugins/plugins-docs.xml.in:
25201 * docs/reference/plugins/plugins-sections.txt:
25202 * docs/reference/plugins/plugins.types:
25203 * gst/vaapi/Makefile.am:
25204 * gst/vaapi/gstvaapi.c:
25205 * gst/vaapi/gstvaapiupload.c:
25206 * gst/vaapi/gstvaapiupload.h:
25207 Rename vaapiconvert element to vaapiupload.
25209 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25212 Bump version for development.
25214 === release 0.3.1 ===
25216 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25222 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25227 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25229 * gst-libs/gst/vaapi/gstvaapisurface.c:
25230 * gst-libs/gst/vaapi/gstvaapisurface.h:
25231 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25232 * gst/vaapi/gstvaapisink.c:
25233 surface: apply composition to the parent context, if requested.
25235 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25237 * docs/reference/libs/libs-sections.txt:
25238 * gst-libs/gst/vaapi/gstvaapicontext.c:
25239 * gst-libs/gst/vaapi/gstvaapicontext.h:
25240 context: make it possible to apply composition globally.
25242 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25244 * gst-libs/gst/vaapi/gstvaapisurface.c:
25245 surface: fix associate subpicture to not report deassociation errors.
25247 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25249 * gst-libs/gst/vaapi/gstvaapisurface.c:
25250 surface: fix typo in debug message.
25252 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25254 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25255 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
25256 * gst-libs/gst/vaapi/gstvaapisurface.c:
25257 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
25259 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25261 * docs/reference/libs/libs-sections.txt:
25262 * gst-libs/gst/vaapi/Makefile.am:
25263 * gst-libs/gst/vaapi/gstvaapicontext.c:
25264 * gst-libs/gst/vaapi/gstvaapisurface.c:
25265 * gst-libs/gst/vaapi/gstvaapisurface.h:
25266 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25267 surface: record parent context.
25269 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25271 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25272 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25273 * gst/vaapi/gstvaapidecode.c:
25274 * gst/vaapi/gstvaapisink.c:
25277 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25279 * gst-libs/gst/vaapi/gstvaapisurface.c:
25280 * gst-libs/gst/vaapi/gstvaapisurface.h:
25281 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25282 * gst/vaapi/gstvaapisink.c:
25283 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
25285 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25288 configure: check for GstVideoOverlayComposition.
25290 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25295 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25297 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25298 converter: add support for GstVideoOverlayComposition planes.
25299 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25301 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
25303 * gst/vaapi/gstvaapisink.c:
25304 vaapisink: handle GstVideoOverlayComposition planes.
25305 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25307 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25309 * gst-libs/gst/vaapi/gstvaapisurface.c:
25310 surface: use unscaled overlay rectangle for blending.
25312 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25314 * gst-libs/gst/vaapi/gstvaapisurface.c:
25315 surface: fix VA image leak when an error occurred.
25317 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25319 * gst-libs/gst/vaapi/gstvaapisurface.c:
25320 * gst-libs/gst/vaapi/gstvaapisurface.h:
25321 surface: add helper to handle GstVideoOverlayComposition.
25322 This helper resets the subpictures to reflect the current composition
25323 layers provided with the buffers.
25324 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25326 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25328 * docs/reference/libs/libs-sections.txt:
25329 * gst-libs/gst/vaapi/Makefile.am:
25330 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25331 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
25332 * gst/vaapi/gstvaapiconvert.c:
25333 image: add gst_vaapi_image_format_from_video() helper.
25335 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25337 * gst-libs/gst/vaapi/gstvaapiimage.c:
25338 * gst-libs/gst/vaapi/gstvaapiimage.h:
25339 image: allow updates from GstVaapiImageRaw.
25341 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25343 * gst-libs/gst/vaapi/gstvaapiimage.c:
25344 * gst-libs/gst/vaapi/gstvaapiimage.h:
25345 * gst/vaapi/gstvaapiconvert.c:
25346 * tests/test-subpicture.c:
25347 image: allow partial updates.
25349 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25351 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25352 subpicture: fix doc for gst_vaapi_subpicture_set_image().
25354 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25356 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25357 display: fix has_image_format() to check against subpicture formats.
25359 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25361 * tests/test-subpicture.c:
25362 tests: fix subpicture test.
25364 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
25366 * tests/Makefile.am:
25367 * tests/test-subpicture-data.c:
25368 * tests/test-subpicture-data.h:
25369 * tests/test-subpicture.c:
25370 tests: add test for subpictures.
25371 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25373 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25375 * gst/vaapi/gstvaapiconvert.c:
25376 * gst/vaapi/gstvaapidecode.c:
25377 Add missing video context queries.
25378 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25380 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25383 Bump version for development.
25385 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25387 * gst-libs/gst/video/Makefile.am:
25388 * gst-libs/gst/video/gstbasevideocodec.c:
25389 * gst-libs/gst/video/gstbasevideocodec.h:
25390 * gst-libs/gst/video/gstbasevideodecoder.c:
25391 * gst-libs/gst/video/gstbasevideodecoder.h:
25392 * gst-libs/gst/video/gstbasevideoutils.c:
25393 * gst-libs/gst/video/gstbasevideoutils.h:
25394 Drop unused copy of GstBaseVideoDecoder.
25396 === release 0.3.0 ===
25398 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25404 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25407 README: update dependencies.
25409 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25414 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25417 configure: check for GstBaseSink 'query' vfunc.
25419 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25421 * gst/vaapi/Makefile.am:
25422 vaapiplugin: include local build dir to CFLAGS for generated files.
25424 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25427 autogen: don't configure if NO_CONFIGURE variable is set.
25429 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25431 * gst/vaapi/gstvaapidecode.c:
25432 * gst/vaapi/gstvaapidecode.h:
25433 vaapidecode: return sink caps template if decoder is in NULL state.
25434 Otherwise, the decoder would always create its own X display instead
25435 of probing it from the downstream element, which is not reliable.
25436 e.g. DISPLAY is not :0 or when running on Wayland.
25437 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25439 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25441 * gst/vaapi/gstvaapiconvert.c:
25442 * gst/vaapi/gstvaapidecode.c:
25443 vaapiplugin: properly set surface type to "vaapi" in caps.
25445 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25447 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25448 decoder: drop unused headers.
25450 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25452 * gst/vaapi/gstvaapiconvert.c:
25453 * gst/vaapi/gstvaapidecode.c:
25454 vaapiplugin: properly set opengl support in caps.
25455 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25457 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25459 * gst/vaapi/gstvaapiconvert.c:
25460 * gst/vaapi/gstvaapidecode.c:
25461 vaapiplugin: allocate GLX buffers when supported.
25462 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25464 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25466 * gst-libs/gst/vaapi/Makefile.am:
25467 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25468 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
25469 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
25470 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
25471 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25472 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
25473 videobuffer: add GLX buffer support.
25474 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25476 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25478 * gst-libs/gst/vaapi/Makefile.am:
25479 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25480 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
25481 Port to GstSurfaceBuffer interface.
25482 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25484 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25486 * gst/vaapi/gstvaapidecode.c:
25487 * gst/vaapi/gstvaapisink.c:
25488 Don't use downstream buffer allocation.
25489 With the new video/x-surface abstraction, we can't rely on having a VA
25490 specific sink downstream. Also, there was no particular reason to do that.
25491 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25493 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25495 * gst-libs/gst/vaapi/Makefile.am:
25496 * gst-libs/gst/vaapi/gstvaapicontext.c:
25497 * gst-libs/gst/vaapi/gstvaapisurface.h:
25498 * gst/vaapi/gstvaapiconvert.c:
25499 * gst/vaapi/gstvaapisink.c:
25500 * tests/Makefile.am:
25501 * tests/test-surfaces.c:
25502 Change caps to use new video/x-surface generic type.
25503 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25505 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25508 * gst-libs/gst/vaapi/Makefile.am:
25509 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
25510 * gst/vaapi/Makefile.am:
25511 * gst/vaapi/gstvaapiconvert.c:
25512 * gst/vaapi/gstvaapidecode.c:
25513 * gst/vaapi/gstvaapipluginutil.c:
25514 * gst/vaapi/gstvaapipluginutil.h:
25515 * gst/vaapi/gstvaapisink.c:
25516 * gst/vaapi/gstvaapisink.h:
25517 Port to GstVideoContext interface.
25518 This new interface allows for upstream and downstream display sharing
25519 that works in both static and dynamic pipelines.
25520 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25522 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25524 * gst/vaapi/gstvaapisink.c:
25525 vaapisink: use GST_ERROR to print error messages.
25527 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25529 * gst/vaapi/Makefile.am:
25530 vaapiplugin: link against VA/GLX when enabled.
25532 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25534 * gst/vaapi/gstvaapiconvert.c:
25535 * gst/vaapi/gstvaapisink.c:
25536 Add Intel copyright information.
25538 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25540 * gst/vaapi/gstvaapisink.c:
25541 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
25543 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25547 * gst-libs/gst/Makefile.am:
25548 * gst-libs/gst/gstutils_version.h.in:
25549 Add new GStreamer version check utilities.
25551 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25553 * gst/vaapi/gstvaapisink.c:
25554 vaapisink: replace the deprecated xoverlay API with the new one.
25555 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25557 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25560 configure: allow for pre-releases.
25562 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25564 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25565 display: destroy display on creation failure.
25566 This allows element to detect that the display creation has actually
25568 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25570 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25572 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25573 display: don't crash when config is empty.
25574 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25576 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25579 * debian.upstream/copyright:
25580 doc: mention Collabora copyrights.
25582 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25585 .gitignore: refine for generated docs.
25587 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25590 * docs/reference/plugins/Makefile.am:
25592 * gst/vaapi/Makefile.am:
25593 * gst/vaapi/gstvaapi.c:
25594 * gst/vaapi/gstvaapiconvert.c:
25595 * gst/vaapi/gstvaapiconvert.h:
25596 * gst/vaapi/gstvaapidecode.c:
25597 * gst/vaapi/gstvaapidecode.h:
25598 * gst/vaapi/gstvaapisink.c:
25599 * gst/vaapi/gstvaapisink.h:
25600 * gst/vaapiconvert/Makefile.am:
25601 * gst/vaapidecode/Makefile.am:
25602 Group all plugins into the same bundle
25603 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25605 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25608 Bump version for development.
25610 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25613 * debian.upstream/control.in:
25614 debian: build against upstream libva packages.
25616 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25618 * docs/reference/libs/Makefile.am:
25619 * docs/reference/plugins/Makefile.am:
25620 * tests/Makefile.am:
25621 Fix build on Ubuntu 11.10 (Oneric).
25623 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25628 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25632 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25634 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25636 * gst/vaapiconvert/gstvaapiconvert.c:
25637 * gst/vaapidecode/gstvaapidecode.c:
25638 * gst/vaapisink/gstvaapisink.c:
25639 Update license in plugin definition
25640 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25642 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25645 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25646 decoder: fix use of invalid data at the end-of-stream.
25648 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25650 * gst/vaapiconvert/gstvaapiconvert.c:
25651 vaapiconvert: fix some warnings.
25653 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25656 * debian.upstream/changelog.in:
25657 * debian.upstream/control.in:
25658 * debian.upstream/copyright:
25659 * gst/vaapiconvert/gstvaapiconvert.c:
25660 * gst/vaapidecode/gstvaapidecode.c:
25661 * gst/vaapisink/gstvaapisink.c:
25662 Update with my current e-mail address.
25664 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25668 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
25670 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
25674 * tests/test-decode.c:
25675 * tests/test-decode.h:
25676 * tests/test-display.c:
25677 * tests/test-h264.c:
25678 * tests/test-h264.h:
25679 * tests/test-mpeg2.c:
25680 * tests/test-mpeg2.h:
25681 * tests/test-surfaces.c:
25682 * tests/test-textures.c:
25683 * tests/test-vc1.c:
25684 * tests/test-vc1.h:
25685 * tests/test-windows.c:
25686 switch tests licence to LGPL v2.1+
25688 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
25692 * debian.upstream/copyright:
25693 * gst/vaapiconvert/gstvaapiconvert.c:
25694 * gst/vaapiconvert/gstvaapiconvert.h:
25695 * gst/vaapidecode/gstvaapidecode.c:
25696 * gst/vaapidecode/gstvaapidecode.h:
25697 * gst/vaapisink/gstvaapisink.c:
25698 * gst/vaapisink/gstvaapisink.h:
25699 move plugins to LGPL v2.1+
25701 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25703 * gst/vaapidecode/gstvaapidecode.c:
25704 vaapidecode: fix sink caps to not expose size information.
25705 This fixes this particular issue:
25706 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
25707 a real subset of its template caps
25709 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25712 * gst/vaapidecode/gstvaapidecode.c:
25713 vaapidecode: fix decoding of MPEG-2 PS files.
25715 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25717 * gst-libs/gst/vaapi/Makefile.am:
25718 Cosmetics (sort source files).
25720 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25722 * gst/vaapiconvert/gstvaapiconvert.c:
25723 * gst/vaapiconvert/gstvaapiconvert.h:
25724 vaapiconvert: fix direct-rendering caps detection.
25726 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25728 * gst-libs/gst/vaapi/gstvaapiimage.c:
25729 Fix gst_vaapi_image_new_with_image().
25731 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25733 * gst/vaapiconvert/gstvaapiconvert.c:
25734 vaapiconvert: warn when surface failed to be updated with image.
25736 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25738 * gst/vaapiconvert/gstvaapiconvert.c:
25739 vaapiconvert: fix autodetection for vaDeriveImage() support.
25741 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25743 * gst/vaapiconvert/gstvaapiconvert.c:
25744 vaapiconvert: fix memory leak (VA surface image).
25746 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25749 * gst/vaapiconvert/gstvaapiconvert.c:
25750 vaapiconvert: fix direct-rendering mode.
25752 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25754 * docs/reference/libs/libs-sections.txt:
25755 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25756 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
25757 Add gst_vaapi_video_buffer_new_from_buffer().
25758 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
25759 Any image, surface or surface proxy will be inherited from the source buffer
25760 if it is a GstVaapiVideoBuffer.
25762 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25764 * gst/vaapiconvert/gstvaapiconvert.c:
25765 vaapiconvert: protect access to direct_rendering.
25767 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25769 * gst/vaapiconvert/gstvaapiconvert.c:
25770 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
25772 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25776 * debian.upstream/copyright:
25777 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25778 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25779 * gst-libs/gst/vaapi/gstvaapisurface.h:
25780 * gst/vaapidecode/gstvaapidecode.c:
25781 * gst/vaapidecode/gstvaapidecode.h:
25782 Add Intel copyright information.
25784 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25789 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25791 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25792 Fix build with newer FFmpeg versions.
25794 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25796 * gst/vaapidecode/gstvaapidecode.c:
25797 * gst/vaapidecode/gstvaapidecode.h:
25798 Fix decoding of MPEG-2 TS files.
25800 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25802 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25803 Report caps update only once per video resolution change.
25805 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25807 * gst-libs/gst/vaapi/gstvaapisurface.h:
25808 Add canonical form (type name) of VA surface caps.
25810 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25813 Bump version for development.
25815 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25818 Use pretty build output with automake >= 1.11.
25820 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25822 * gst/vaapiconvert/Makefile.am:
25823 * gst/vaapidecode/Makefile.am:
25824 * gst/vaapisink/Makefile.am:
25825 * tests/Makefile.am:
25826 Fix build with libva headers not in a standard include dir.
25828 === release 0.2.6 ===
25830 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
25835 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
25837 * gst-libs/gst/vaapi/gstvaapi_priv.h:
25838 * gst-libs/gst/vaapi/gstvaapicompat.h:
25839 * gst-libs/gst/vaapi/gstvaapicontext.c:
25840 * gst-libs/gst/vaapi/gstvaapicontext.h:
25841 * gst-libs/gst/vaapi/gstvaapidebug.h:
25842 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25843 * gst-libs/gst/vaapi/gstvaapidecoder.h:
25844 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25845 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
25846 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25847 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25848 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25849 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
25850 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
25851 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
25852 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25853 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25854 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
25855 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25856 * gst-libs/gst/vaapi/gstvaapiimage.c:
25857 * gst-libs/gst/vaapi/gstvaapiimage.h:
25858 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25859 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
25860 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25861 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
25862 * gst-libs/gst/vaapi/gstvaapiobject.c:
25863 * gst-libs/gst/vaapi/gstvaapiobject.h:
25864 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
25865 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
25866 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
25867 * gst-libs/gst/vaapi/gstvaapiprofile.c:
25868 * gst-libs/gst/vaapi/gstvaapiprofile.h:
25869 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25870 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
25871 * gst-libs/gst/vaapi/gstvaapisurface.c:
25872 * gst-libs/gst/vaapi/gstvaapisurface.h:
25873 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25874 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
25875 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25876 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
25877 * gst-libs/gst/vaapi/gstvaapitexture.c:
25878 * gst-libs/gst/vaapi/gstvaapitexture.h:
25879 * gst-libs/gst/vaapi/gstvaapitypes.h:
25880 * gst-libs/gst/vaapi/gstvaapiutils.c:
25881 * gst-libs/gst/vaapi/gstvaapiutils.h:
25882 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
25883 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
25884 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
25885 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
25886 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25887 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25888 * gst-libs/gst/vaapi/gstvaapivalue.c:
25889 * gst-libs/gst/vaapi/gstvaapivalue.h:
25890 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25891 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
25892 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25893 * gst-libs/gst/vaapi/gstvaapivideopool.h:
25894 * gst-libs/gst/vaapi/gstvaapivideosink.c:
25895 * gst-libs/gst/vaapi/gstvaapivideosink.h:
25896 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25897 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25898 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
25899 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
25900 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25901 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
25902 * gst/vaapiconvert/gstvaapiconvert.c:
25903 * gst/vaapiconvert/gstvaapiconvert.h:
25904 * gst/vaapidecode/gstvaapidecode.c:
25905 * gst/vaapidecode/gstvaapidecode.h:
25906 * gst/vaapisink/gstvaapisink.c:
25907 * gst/vaapisink/gstvaapisink.h:
25910 * tests/test-decode.c:
25911 * tests/test-decode.h:
25912 * tests/test-display.c:
25913 * tests/test-h264.c:
25914 * tests/test-h264.h:
25915 * tests/test-mpeg2.c:
25916 * tests/test-mpeg2.h:
25917 * tests/test-surfaces.c:
25918 * tests/test-textures.c:
25919 * tests/test-vc1.c:
25920 * tests/test-vc1.h:
25921 * tests/test-windows.c:
25922 Update copyright notice.
25924 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
25927 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25928 * gst-libs/gst/vaapi/gstvaapisurface.c:
25929 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25930 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25931 * gst-libs/gst/vaapi/gstvaapitexture.c:
25932 * gst-libs/gst/vaapi/gstvaapiutils.c:
25933 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
25934 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25935 * gst-libs/gst/vaapi/gstvaapivalue.c:
25936 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25937 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25938 * gst-libs/gst/vaapi/gstvaapivideosink.c:
25939 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25940 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
25941 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25942 Fix licensing terms.
25944 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25949 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25951 * debian.upstream/copyright:
25952 Fix license terms...
25954 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25956 * gst/vaapisink/gstvaapisink.c:
25957 Render pretty background only in use-reflection=true mode.
25959 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25964 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25966 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
25967 Drop the GLX 1.3 requirement.
25969 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25971 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
25972 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
25973 Call the GLX/Pixmap related functions through the vtable.
25975 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25979 * gst-libs/gst/vaapi/Makefile.am:
25980 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25981 Drop dependency on libavformat.
25983 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25985 * gst-libs/gst/video/gstbasevideodecoder.c:
25986 * gst-libs/gst/video/gstbasevideodecoder.h:
25987 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
25989 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25991 * gst-libs/gst/video/gstbasevideodecoder.c:
25992 * gst-libs/gst/video/gstbasevideoutils.c:
25993 * gst-libs/gst/video/gstbasevideoutils.h:
25994 Drop superfluous functions.
25996 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25998 * gst-libs/gst/video/gstbasevideodecoder.c:
25999 Really drop any dependency on libgstvideo. i.e. inline the helpers.
26001 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26003 * gst-libs/gst/video/gstbasevideodecoder.c:
26004 Further drop dependency on libgstvideo.
26006 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26008 * gst-libs/gst/video/Makefile.am:
26009 * gst-libs/gst/video/gstbasevideocodec.c:
26010 * gst-libs/gst/video/gstbasevideocodec.h:
26011 * gst-libs/gst/video/gstbasevideodecoder.c:
26012 * gst-libs/gst/video/gstbasevideodecoder.h:
26013 * gst-libs/gst/video/gstbasevideoutils.c:
26014 * gst-libs/gst/video/gstbasevideoutils.h:
26015 Add GstBaseVideoDecoder from gst-plugins-bad git.
26017 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26019 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
26020 Fix GLX version check.
26022 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26026 Bump version for development.
26028 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26031 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26032 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
26034 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26039 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26041 * gst-libs/gst/vaapi/gstvaapicompat.h:
26042 Fix build with older VA-API 0.29-sds.
26044 === release 0.2.4 ===
26046 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26048 * gst/vaapisink/gstvaapisink.c:
26049 * gst/vaapisink/gstvaapisink.h:
26050 Fix upscaling in foreign window (Totem).
26052 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26054 * gst/vaapisink/gstvaapisink.c:
26055 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
26057 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26060 * gst/vaapisink/gstvaapisink.c:
26061 Fix video rendering rect within an embedder window (Totem).
26063 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26066 * gst/vaapisink/gstvaapisink.c:
26067 Disable GLX rendering when vaapisink uses a foreign X window.
26069 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26071 * gst/vaapisink/gstvaapisink.c:
26072 Simplify GLX rendering code.
26074 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26077 Bump version for development.
26079 === release 0.2.3 ===
26081 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26086 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26088 * gst/vaapidecode/gstvaapidecode.c:
26089 Wait for at most one second for a VA surface to become available.
26091 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26095 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
26097 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26101 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26102 Fix decoder caps to report codec aliases.
26104 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26107 * gst/vaapidecode/gstvaapidecode.c:
26108 * gst/vaapidecode/gstvaapidecode.h:
26109 Fix VC-1 decoding through the playbin2 pipeline.
26111 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26113 * docs/reference/libs/libs-sections.txt:
26114 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26115 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26116 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26117 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26118 Regularly update and expose decoder caps.
26120 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26122 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26123 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26124 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26125 Add mechanism to reinsert buffer leftovers into the queue.
26127 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26130 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26131 Fix memory leak of encoded buffers.
26133 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26135 * docs/reference/libs/libs-sections.txt:
26136 * gst-libs/gst/vaapi/gstvaapicontext.c:
26137 * gst-libs/gst/vaapi/gstvaapicontext.h:
26138 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26139 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26140 Check for out-of-free-surfaces condition.
26142 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26144 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26145 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
26147 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26149 * gst/vaapisink/gstvaapisink.c:
26150 Improve debug info for gst_vaapisink_ensure_render_rect().
26152 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26155 Bump version for development.
26157 === release 0.2.2 ===
26159 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26164 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26166 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26167 Improve previous fix.
26169 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26172 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26173 Fix a crash in the FFmpeg decoder on close.
26175 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26178 Sort platforms by name.
26180 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26184 Bump version for development.
26186 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26188 * gst/vaapisink/gstvaapisink.c:
26189 Add debug info for _show_frame().
26191 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26194 Nuke older build dir.
26196 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26198 * debian.upstream/control.in:
26199 Fix packaging deps.
26201 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26206 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26209 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
26210 Fix OpenGL texture internal format (Clutter).
26212 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26217 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26219 * gst/vaapisink/gstvaapisink.c:
26220 Debug video & display PARs.
26222 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26224 * gst/vaapisink/gstvaapisink.c:
26225 Use XGetGeometry() to retrieve the window size.
26227 === release 0.2.1 ===
26229 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26231 * gst/vaapisink/gstvaapisink.c:
26234 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26236 * gst/vaapisink/gstvaapisink.c:
26237 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
26239 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26242 Drop obsolete comment.
26244 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26249 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26251 * gst/vaapidecode/gstvaapidecode.c:
26252 Fix GstVaapiDisplay refcounting in vaapidecode.
26254 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26256 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
26259 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26261 * gst/vaapisink/gstvaapisink.c:
26262 * gst/vaapisink/gstvaapisink.h:
26263 Fix render rect when the foreign window size changes.
26265 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26269 * gst/vaapisink/Makefile.am:
26270 * gst/vaapisink/gstvaapisink.c:
26271 Add GstXOverlay interface to vaapisink (e.g. for Totem).
26273 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26276 Update deps to match configure.ac versions.
26278 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26280 * gst/vaapiconvert/gstvaapiconvert.c:
26281 * gst/vaapidecode/gstvaapidecode.c:
26282 * gst/vaapisink/gstvaapisink.c:
26285 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26288 * gst/vaapidecode/Makefile.am:
26289 * gst/vaapidecode/gstvaapidecode.c:
26290 * gst/vaapidecode/gstvaapidecode.h:
26291 Fix vaapidecode to expose the HW supported caps only.
26293 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26295 * gst/vaapidecode/gstvaapidecode.c:
26296 Initialize decoder earlier.
26298 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26302 * gst/vaapidecode/gstvaapidecode.c:
26303 Fix integration within the playbin2 pipeline.
26305 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26307 * docs/reference/libs/Makefile.am:
26308 Exclude gstvaapiutils_gst.h from docs for now.
26310 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26312 * gst/vaapiconvert/gstvaapiconvert.c:
26313 * gst/vaapidecode/gstvaapidecode.c:
26314 * gst/vaapisink/gstvaapisink.c:
26315 Raise VA-API plugins ranks.
26317 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26319 * gst-libs/gst/vaapi/Makefile.am:
26320 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
26321 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
26322 Add gst_vaapi_display_lookup_downstream() helper.
26324 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26326 * gst/vaapidecode/gstvaapidecode.c:
26327 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
26329 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26331 * docs/reference/libs/libs-sections.txt:
26332 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26333 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26334 * gst/vaapisink/gstvaapisink.c:
26335 Expose VA display through GstVaapiVideoBuffer.
26337 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26339 * gst/vaapidecode/gstvaapidecode.c:
26340 Simplify gst_vaapidecode_set_caps() and fix memory leak.
26342 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26344 * docs/reference/libs/libs-sections.txt:
26345 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26346 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26347 Expose video pool display.
26349 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26351 * gst-libs/gst/vaapi/gstvaapivideosink.c:
26352 Stop iteration if there is no more element to examine.
26354 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26356 * gst/vaapiconvert/gstvaapiconvert.c:
26357 * gst/vaapidecode/gstvaapidecode.c:
26358 * gst/vaapisink/gstvaapisink.c:
26359 Improve plugin details.
26361 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26363 * gst-libs/gst/vaapi/gstvaapisurface.h:
26364 * gst/vaapiconvert/gstvaapiconvert.c:
26365 * gst/vaapidecode/gstvaapidecode.c:
26366 * gst/vaapisink/gstvaapisink.c:
26367 Factor out VA surface caps.
26369 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26371 * gst/vaapidecode/gstvaapidecode.c:
26372 Add gst_vaapidecode_ensure_display() helper for set-caps.
26374 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26377 Bump version for development.
26379 === release 0.2.0 ===
26381 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26384 Really make it 0.2.0.
26386 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26391 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26393 * docs/reference/libs/Makefile.am:
26394 Don't exclude GstVaapiParamSpecs.
26396 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26398 * docs/reference/libs/Makefile.am:
26399 * docs/reference/libs/libs-sections.txt:
26400 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26401 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26404 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26406 * gst/vaapiconvert/gstvaapiconvert.c:
26407 * gst/vaapidecode/gstvaapidecode.c:
26408 * gst/vaapisink/gstvaapisink.c:
26409 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.
26411 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26413 * gst-libs/gst/vaapi/Makefile.am:
26414 Really link all helper libraries with libtool -no-undefined.
26416 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26418 * gst-libs/gst/vaapi/Makefile.am:
26419 Link helper libraries with libtool -no-undefined.
26421 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26424 * debian.upstream/gstreamer-vaapi.install.in:
26425 * gst/vaapiconvert/Makefile.am:
26426 * gst/vaapidecode/Makefile.am:
26427 * gst/vaapisink/Makefile.am:
26428 Don't build plugins with SONAME. Make them plain *.so.
26430 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26433 Improve documentation for release.
26435 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26437 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26438 Fix build with older VA-API 0.29.
26440 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26445 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26447 * tests/Makefile.am:
26450 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26452 * docs/reference/libs/Makefile.am:
26453 * docs/reference/libs/libs-docs.xml.in:
26454 * docs/reference/libs/libs-sections.txt:
26455 * docs/reference/libs/libs.core.types:
26456 * docs/reference/plugins/Makefile.am:
26457 * docs/reference/plugins/plugins-docs.xml.in:
26458 * docs/reference/plugins/plugins-sections.txt:
26459 * docs/reference/plugins/plugins.types:
26462 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26464 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26467 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26469 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26470 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
26471 * gst/vaapidecode/gstvaapidecode.c:
26472 * tests/test-decode.c:
26473 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
26475 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26477 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26478 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26479 Extract framerate information from caps.
26481 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26483 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26484 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26485 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26486 Move caps initialization to parent class.
26488 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26490 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26493 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26495 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26498 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26500 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26501 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26502 More simplifications.
26504 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26506 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26507 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26508 * tests/test-decode.c:
26509 Simplify GstVaapiDecoder API.
26511 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26513 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26514 Drop obsolete defs.
26516 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26518 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26519 Drop obsolete decls.
26521 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26523 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26524 * gst/vaapidecode/gstvaapidecode.c:
26525 Add more aliases for MPEG-4 decoding.
26527 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26529 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26530 Use avctx->coded_{width,height} info to create the VA context.
26532 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26534 * tests/test-decode.c:
26535 * tests/test-decode.h:
26536 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
26538 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26540 * tests/test-decode.c:
26541 * tests/test-decode.h:
26542 * tests/test-h264.c:
26543 * tests/test-h264.h:
26544 * tests/test-mpeg2.c:
26545 * tests/test-mpeg2.h:
26546 * tests/test-vc1.c:
26547 * tests/test-vc1.h:
26548 Simplify tests info.
26550 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26552 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26553 Try to improve heuristics to use an AVCodecContextParser.
26555 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26557 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26558 Fix VC-1 decoding, it does not require any specific parser.
26560 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26562 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26563 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
26565 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26567 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26568 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26569 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
26571 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26573 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26574 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26575 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
26576 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26577 * gst/vaapidecode/gstvaapidecode.c:
26578 * gst/vaapidecode/gstvaapidecode.h:
26579 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
26581 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26583 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26584 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26585 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26586 Improve WMV3 detection yet further.
26588 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26590 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26591 Fix detection of plain old WMV3 contents.
26593 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26595 * tests/test-vc1.c:
26596 Add End-of-Sequence start code.
26598 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26600 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26601 * gst/vaapidecode/gstvaapidecode.c:
26602 Fix VC-1 detection.
26604 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26606 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26607 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
26609 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26611 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26612 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26613 Drop obsolete (and wrong) code.
26615 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26617 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26618 Cosmetics (spelling).
26620 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26622 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26623 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26624 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26625 Try to fix timestamps (step 1). Looks OK on H55.
26627 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26629 * debian.upstream/Makefile.am:
26630 Ship with COPYING.LIB.
26632 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26637 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26638 * gst-libs/gst/vaapi/gstvaapicompat.h:
26639 * gst-libs/gst/vaapi/gstvaapicontext.c:
26640 * gst-libs/gst/vaapi/gstvaapicontext.h:
26641 * gst-libs/gst/vaapi/gstvaapidebug.h:
26642 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26643 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26644 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26645 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
26646 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26647 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26648 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26649 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26650 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26651 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26652 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26653 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26654 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26655 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26656 * gst-libs/gst/vaapi/gstvaapiimage.c:
26657 * gst-libs/gst/vaapi/gstvaapiimage.h:
26658 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26659 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
26660 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26661 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26662 * gst-libs/gst/vaapi/gstvaapiobject.c:
26663 * gst-libs/gst/vaapi/gstvaapiobject.h:
26664 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26665 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26666 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26667 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26668 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26669 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26670 * gst-libs/gst/vaapi/gstvaapisurface.h:
26671 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26672 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26673 * gst-libs/gst/vaapi/gstvaapitexture.h:
26674 * gst-libs/gst/vaapi/gstvaapitypes.h:
26675 * gst-libs/gst/vaapi/gstvaapiutils.h:
26676 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
26677 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
26678 * gst-libs/gst/vaapi/gstvaapivalue.h:
26679 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26680 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26681 * gst-libs/gst/vaapi/gstvaapivideosink.h:
26682 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26683 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26684 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26685 Relicense gst-libs/ code to LGPL v2.1+.
26687 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26689 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26690 Drop extraneous comma.
26692 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26694 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26695 Drop variant=itu field to help codec detection.
26697 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26699 * gst/vaapidecode/gstvaapidecode.c:
26700 Decode as many surfaces as possible in gst_vaapidecode_step().
26702 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26704 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26705 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26706 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26707 * gst/vaapidecode/gstvaapidecode.c:
26708 * gst/vaapidecode/gstvaapidecode.h:
26709 * tests/test-decode.c:
26710 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
26712 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26717 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26719 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26720 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
26722 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26724 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26725 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26726 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
26728 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26730 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26731 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26732 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
26734 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26736 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26737 Document H.264 / AVC1 format case better.
26739 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26741 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26742 Fix H.264 decoding with AVC1 format bitstreams.
26744 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26746 * gst/vaapidecode/gstvaapidecode.c:
26747 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
26749 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26751 * gst/vaapisink/gstvaapisink.c:
26752 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
26754 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26756 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26757 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26758 Export gst_vaapi_video_buffer_new().
26760 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26762 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26763 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
26765 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26770 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26775 * gst/vaapidecode/Makefile.am:
26776 * gst/vaapidecode/gstvaapidecode.c:
26777 * gst/vaapidecode/gstvaapidecode.h:
26778 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
26780 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26782 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26783 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26784 Add gst_vaapi_decoder_pause().
26786 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26788 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26789 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26790 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26791 Use a GstTask with start/stop semantics for the decoder thread.
26793 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26795 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26796 Drop extraneous var.
26798 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26800 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26801 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26802 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
26804 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26806 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26807 Fix gst_vaapi_decoder_get_surface() status.
26809 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26811 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26812 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26813 Try to set correct timestamps to the decoded surface proxy.
26815 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26817 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26818 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26819 * tests/test-decode.c:
26820 Add timestamps to GstVaapiSurfaceProxy.
26822 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26824 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26825 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
26827 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26829 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26830 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
26832 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26834 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26835 Prefer profile from codec-data if any was found there.
26837 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26839 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26840 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
26842 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26844 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26845 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
26847 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26849 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26850 Fix VC-1 codec initialization, it really needs an extradata buffer.
26852 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26854 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26855 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26856 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.
26858 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26860 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26861 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
26863 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26865 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26866 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26867 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
26868 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26869 * tests/test-decode.c:
26870 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
26872 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26874 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26875 Cosmetics (weird indentation).
26877 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26879 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26880 Cosmetics (extraneous variable, debug message).
26882 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26885 Fix check for VA-API enabled FFmpeg.
26887 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26889 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26890 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26891 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26892 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26893 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
26895 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26897 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26898 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26899 Add more error codes. Fix documentation.
26901 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26903 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26904 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
26906 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26908 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26909 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26910 * tests/test-decode.c:
26911 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
26913 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26915 * tests/test-vc1.c:
26916 Drop useless End-of-Sequence marker.
26918 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26920 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26921 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.
26923 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26925 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26926 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26927 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.
26929 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26931 * tests/test-h264.c:
26932 * tests/test-vc1.c:
26933 Regenerate correct clips.
26935 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26937 * tests/Makefile.am:
26938 * tests/test-decode.c:
26939 * tests/test-h264.c:
26940 * tests/test-h264.h:
26941 * tests/test-mpeg2.c:
26942 * tests/test-mpeg2.h:
26943 * tests/test-vc1.c:
26944 * tests/test-vc1.h:
26945 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
26946 XXX: only VC-1 decoding works at this time because of awful
26947 bugs left in GstVaapiDecoderFfmpeg et al.
26949 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26952 * gst-libs/gst/vaapi/Makefile.am:
26953 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26954 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26955 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26956 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
26957 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26958 Add initial (multithreaded) decoder based on FFmpeg.
26959 There are tons of bugs left:
26960 - Decoder API not nice enough with error conditions
26961 - FFmpeg parser is sometimes broken
26962 - Packets queue can be lost
26964 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26966 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26967 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26968 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
26970 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26972 * gst-libs/gst/vaapi/gstvaapicontext.c:
26973 * gst-libs/gst/vaapi/gstvaapicontext.h:
26974 Add VA context abstraction.
26976 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26978 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26979 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
26981 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26983 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26984 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26985 Add a means to cap the number of objects allocated in the pool.
26987 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26989 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26990 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26991 Add VA entrypoint abstraction.
26993 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26995 * docs/reference/libs/libs-docs.xml.in:
26996 * docs/reference/libs/libs-sections.txt:
26997 * gst-libs/gst/vaapi/Makefile.am:
26998 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26999 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27000 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
27001 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27002 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27003 * tests/test-display.c:
27004 Add VA profile abstraction.
27006 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27008 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27009 Fix OpenGL rendering on G45 systems.
27011 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27013 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27014 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
27016 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27018 * gst-libs/gst/vaapi/gstvaapitexture.c:
27019 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27020 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27021 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.
27023 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27025 * gst-libs/gst/vaapi/gstvaapitexture.c:
27026 Fix get-out conditions.
27028 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27030 * gst-libs/gst/vaapi/gstvaapitexture.c:
27031 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27032 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.
27034 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27036 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27039 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27041 * docs/reference/libs/libs-sections.txt:
27042 * gst-libs/gst/vaapi/Makefile.am:
27043 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
27044 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
27045 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
27046 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27047 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27048 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
27049 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27050 * gst-libs/gst/vaapi/gstvaapitexture.c:
27051 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27052 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27053 * tests/test-windows.c:
27054 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
27056 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27058 * gst-libs/gst/vaapi/Makefile.am:
27059 * gst-libs/gst/vaapi/gstvaapi_priv.h:
27060 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27061 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27062 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
27063 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
27064 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27065 * gst-libs/gst/vaapi/gstvaapiimage.c:
27066 * gst-libs/gst/vaapi/gstvaapiobject.c:
27067 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27068 * gst-libs/gst/vaapi/gstvaapisurface.c:
27069 * gst-libs/gst/vaapi/gstvaapitexture.c:
27070 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27071 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27072 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27073 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
27075 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27077 * gst-libs/gst/vaapi/gstvaapitexture.c:
27078 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27079 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27080 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27081 Improve handling of GL contexts.
27083 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27088 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27091 Bump version for development.
27093 === release 0.1.2 ===
27095 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27098 * debian.upstream/Makefile.am:
27099 * debian.upstream/control.in:
27100 Rename -dev package to libgstvaapi-dev.
27102 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27108 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27110 * gst-libs/gst/vaapi/gstvaapiutils.c:
27111 Fix build with VA-API < 0.30.
27113 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27116 * gst-libs/gst/vaapi/gstvaapicompat.h:
27117 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
27118 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27119 * gst-libs/gst/vaapi/gstvaapitexture.c:
27120 * tests/test-display.c:
27121 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
27123 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27125 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27126 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27127 Add TFP and FBO helpers.
27129 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27131 * gst-libs/gst/vaapi/gstvaapiutils.c:
27132 * gst-libs/gst/vaapi/gstvaapiutils.h:
27133 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
27135 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27137 * gst-libs/gst/vaapi/gstvaapitexture.c:
27138 * gst-libs/gst/vaapi/gstvaapiutils.c:
27139 * gst-libs/gst/vaapi/gstvaapiutils.h:
27140 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27141 Use a shorter function name.
27143 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27145 * docs/reference/libs/libs-sections.txt:
27146 * gst-libs/gst/vaapi/gstvaapisurface.c:
27147 * gst-libs/gst/vaapi/gstvaapisurface.h:
27148 * gst-libs/gst/vaapi/gstvaapiutils.c:
27149 * gst-libs/gst/vaapi/gstvaapiutils.h:
27150 Add gst_vaapi_surface_query_status() wrapper.
27152 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27154 * docs/reference/plugins/Makefile.am:
27155 Fix leftover during migration.
27157 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27161 * docs/reference/plugins/Makefile.am:
27163 * gst/vaapiconvert/Makefile.am:
27164 * gst/vaapiconvert/gstvaapiconvert.c:
27165 * gst/vaapiconvert/gstvaapiconvert.h:
27166 * gst/vaapisink/Makefile.am:
27167 * gst/vaapisink/gstvaapisink.c:
27168 * gst/vaapisink/gstvaapisink.h:
27169 Rename to gst/ as sys/ was too vague.
27171 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27173 * gst-libs/gst/vaapi/gstvaapiimage.c:
27174 * gst-libs/gst/vaapi/gstvaapiimage.h:
27175 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27176 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27177 * gst-libs/gst/vaapi/gstvaapisurface.c:
27178 * gst-libs/gst/vaapi/gstvaapisurface.h:
27179 Try to not reference VA-API types directly.
27181 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27183 * sys/vaapisink/gstvaapisink.c:
27184 Fix reflection code to preserve aspect ratio.
27186 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27188 * sys/vaapisink/gstvaapisink.c:
27189 * sys/vaapisink/gstvaapisink.h:
27190 Fix fullscreen mode.
27192 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27194 * sys/vaapisink/gstvaapisink.c:
27195 * sys/vaapisink/gstvaapisink.h:
27196 Add OpenGL reflection effect ("use-reflection").
27198 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27201 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27202 Use a projection suitable for rotation around the Y axis.
27204 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27207 * sys/vaapisink/Makefile.am:
27208 * sys/vaapisink/gstvaapisink.c:
27209 * sys/vaapisink/gstvaapisink.h:
27210 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
27212 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27215 * debian.upstream/Makefile.am:
27216 * debian.upstream/control.in:
27217 * debian.upstream/libgstvaapi-glx.install.in:
27218 Add libgstvaapi-glx-0 package.
27220 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27222 * pkgconfig/Makefile.am:
27223 Really fix make distclean.
27225 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27227 * docs/reference/libs/Makefile.am:
27230 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27232 * pkgconfig/Makefile.am:
27233 Fix make distclean.
27235 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27237 * tests/Makefile.am:
27240 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27242 * docs/reference/libs/Makefile.am:
27243 * docs/reference/libs/libs.core.types:
27244 * docs/reference/libs/libs.glx.types:
27245 * docs/reference/libs/libs.x11.types:
27248 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27250 * sys/vaapisink/gstvaapisink.h:
27251 Fix build without GLX.
27253 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27258 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27260 * sys/vaapisink/Makefile.am:
27261 * sys/vaapisink/gstvaapisink.c:
27262 * sys/vaapisink/gstvaapisink.h:
27263 Add VA/GLX support to vaapisink.
27265 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27267 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27268 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27269 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27270 Add glXSwapBuffers() workaround for NVIDIA.
27272 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27274 * tests/Makefile.am:
27275 * tests/test-textures.c:
27276 Improve VA/GLX textures test.
27278 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27280 * gst-libs/gst/vaapi/gstvaapitexture.c:
27281 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27282 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27283 Fix texture rendering.
27285 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27287 * docs/reference/libs/libs-docs.xml.in:
27288 * docs/reference/libs/libs-sections.txt:
27289 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27290 * gst-libs/gst/vaapi/gstvaapitexture.c:
27293 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27295 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27296 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27297 Add gst_vaapi_window_glx_put_texture() helper.
27299 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27301 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27304 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27308 * tests/test-windows.c:
27311 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27313 * gst-libs/gst/vaapi/Makefile.am:
27314 * gst-libs/gst/vaapi/gstvaapitexture.c:
27315 * gst-libs/gst/vaapi/gstvaapitexture.h:
27316 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27317 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27318 Add initial VA/GLX texture abstraction though the API is not good enough yet.
27320 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27322 * docs/reference/libs/libs-sections.txt:
27323 * gst-libs/gst/vaapi/gstvaapiobject.c:
27324 * gst-libs/gst/vaapi/gstvaapiobject.h:
27325 Add gst_vaapi_object_{,un}lock_display() helpers.
27327 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27329 * tests/Makefile.am:
27332 * tests/test-windows.c:
27333 Factor out image utilities.
27335 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27337 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27338 MT-Safe: lock display.
27340 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27342 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27343 Make sure window resize completed prior to resizing the GL viewport.
27345 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27347 * gst-libs/gst/vaapi/Makefile.am:
27348 gstvaapicompat.h is a private header, don't install it.
27350 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27352 * docs/reference/libs/libs-sections.txt:
27353 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27354 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27355 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27356 Add gst_vaapi_display_{sync,flush}() helpers.
27358 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27360 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27361 * sys/vaapisink/gstvaapisink.c:
27362 * sys/vaapisink/gstvaapisink.h:
27363 Add "synchronous" mode.
27365 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27367 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27368 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27369 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
27371 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27373 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27374 Restore GLX context only if there is one.
27376 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27378 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27379 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27380 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27381 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27382 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
27384 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27386 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27387 Check GstVaapiWindow::render() is available prior to calling it.
27389 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27391 * tests/Makefile.am:
27392 * tests/test-display.c:
27393 * tests/test-textures.c:
27394 Add VA/GLX display tests.
27396 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27399 * gst-libs/gst/vaapi/Makefile.am:
27402 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27404 * docs/reference/libs/Makefile.am:
27405 * docs/reference/libs/libs-docs.xml.in:
27406 * docs/reference/libs/libs-sections.txt:
27407 * docs/reference/libs/libs.types:
27408 Add missing API documentation.
27410 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27413 * gst-libs/gst/vaapi/Makefile.am:
27414 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
27415 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27416 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27417 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27418 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27419 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27420 * pkgconfig/Makefile.am:
27421 * pkgconfig/gstreamer-vaapi-glx.pc.in:
27422 * tests/Makefile.am:
27423 * tests/test-textures.c:
27424 Add initial VA/GLX support.
27426 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27428 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27429 Add missing includes (for vaapi_check_status()).
27431 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27433 * gst-libs/gst/vaapi/gstvaapidebug.h:
27434 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
27436 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27438 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27439 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27440 Add gst_vaapi_window_x11_is_foreign_xid() helper.
27442 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27444 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27445 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27446 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27447 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27448 Allow derived classes to specify custom Visual and Colormap.
27450 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27452 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27453 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27454 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27455 Allow window creation with a specific visual (e.g. for GLX support).
27457 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27459 * gst-libs/gst/vaapi/gstvaapiimage.c:
27460 Fix return value on error (though it's the same in the end).
27462 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27464 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27465 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27466 Simplify initialization of VADisplay.
27468 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27471 Move __attribute__((visibility("hidden"))) check down.
27473 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27475 * docs/reference/libs/libs-sections.txt:
27476 * gst-libs/gst/vaapi/gstvaapiimage.c:
27477 * gst-libs/gst/vaapi/gstvaapiimage.h:
27478 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27479 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27480 * gst-libs/gst/vaapi/gstvaapisurface.c:
27481 * gst-libs/gst/vaapi/gstvaapisurface.h:
27482 * tests/test-surfaces.c:
27483 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
27485 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27487 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27488 Use the parent display object, no need to maintain another one.
27489 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
27491 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27493 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27494 Add more internal helpers.
27496 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27498 * gst-libs/gst/vaapi/gstvaapiimage.c:
27499 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27500 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27501 * gst-libs/gst/vaapi/gstvaapisurface.c:
27502 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27503 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27504 Rename to GST_VAAPI_OBJECT_DISPLAY().
27506 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27508 * docs/reference/libs/libs-sections.txt:
27509 * gst-libs/gst/vaapi/gstvaapiimage.c:
27510 * gst-libs/gst/vaapi/gstvaapiobject.c:
27511 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27512 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27513 * gst-libs/gst/vaapi/gstvaapisurface.c:
27514 * gst-libs/gst/vaapi/gstvaapitypes.h:
27515 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27516 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
27518 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27520 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27521 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27522 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27523 Make GstVaapiWindow* derive from GstVaapiObject.
27525 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27528 Factor out use gstreamer-vaapi (PACKAGE name).
27530 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27533 Improve versioning summary.
27535 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27537 * gst-libs/gst/vaapi/Makefile.am:
27538 gstvaapicompat.h is now a private header (not installed).
27540 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27542 * gst-libs/gst/vaapi/gstvaapiimage.c:
27543 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27544 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27545 * gst-libs/gst/vaapi/gstvaapiobject.c:
27546 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27547 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27548 Include gstvaapicompat.h in source files only, not headers.
27550 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27553 * gst-libs/gst/vaapi/Makefile.am:
27554 * sys/vaapiconvert/Makefile.am:
27555 * sys/vaapisink/Makefile.am:
27556 * tests/Makefile.am:
27557 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
27559 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27563 * gst-libs/gst/vaapi/Makefile.am:
27564 * gst-libs/gst/vaapi/gstvaapicompat.h:
27565 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27566 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27567 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27568 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27569 * gst-libs/gst/vaapi/gstvaapisurface.c:
27570 * gst-libs/gst/vaapi/gstvaapiutils.c:
27571 * gst-libs/gst/vaapi/gstvaapiutils.h:
27572 * pkgconfig/gstreamer-vaapi-x11.pc.in:
27573 * pkgconfig/gstreamer-vaapi.pc.in:
27574 * sys/vaapiconvert/Makefile.am:
27575 * sys/vaapisink/Makefile.am:
27576 * tests/Makefile.am:
27577 Add compatibility with the original VA-API 0.29.
27579 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27581 * gst-libs/gst/vaapi/gstvaapivalue.h:
27582 Add missing file (gstvaapivalue.h).
27584 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27586 * gst-libs/gst/vaapi/gstvaapiimage.c:
27587 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27588 * gst-libs/gst/vaapi/gstvaapisurface.c:
27589 Fix g_warning() invocation.
27591 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27593 * gst-libs/gst/vaapi/gstvaapisurface.c:
27594 Deassociate subpictures while destroying the surface.
27596 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27598 * gst-libs/gst/vaapi/gstvaapisurface.c:
27599 Fix destruction order of subpictures. They should be destroyed first.
27601 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27604 * gst-libs/gst/vaapi/gstvaapiimage.c:
27605 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27606 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27607 * tests/test-windows.c:
27608 Add support for AYUV format.
27610 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27612 * tests/test-windows.c:
27613 Simplify upload process and fallback to subpictures.
27615 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27617 * docs/reference/libs/libs-docs.xml.in:
27618 * docs/reference/libs/libs-sections.txt:
27619 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27622 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27624 * gst-libs/gst/vaapi/Makefile.am:
27625 * gst-libs/gst/vaapi/gstvaapiobject.c:
27626 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27627 * gst-libs/gst/vaapi/gstvaapitypes.h:
27628 * gst-libs/gst/vaapi/gstvaapivalue.c:
27629 Move GValue specific stuff to a dedicated file.
27631 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27633 * tests/test-surfaces.c:
27634 Cosmetics (lowercase for consistency).
27636 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27638 * gst-libs/gst/vaapi/gstvaapiobject.c:
27639 Cosmetics (vertical alignment).
27641 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27643 * gst-libs/gst/vaapi/gstvaapiobject.c:
27644 Fix return value on error.
27646 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27648 * docs/reference/libs/libs-sections.txt:
27649 * gst-libs/gst/vaapi/gstvaapiimage.c:
27650 * gst-libs/gst/vaapi/gstvaapiimage.h:
27651 * gst-libs/gst/vaapi/gstvaapiobject.c:
27652 * gst-libs/gst/vaapi/gstvaapiobject.h:
27653 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27654 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27655 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27656 * gst-libs/gst/vaapi/gstvaapisurface.c:
27657 * gst-libs/gst/vaapi/gstvaapisurface.h:
27658 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27659 * tests/test-surfaces.c:
27660 Move "id" down to the GstVaapiObject base.
27662 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27664 * gst-libs/gst/vaapi/gstvaapitypes.c:
27665 Cosmetics (drop extraneous empty line).
27667 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27669 * gst-libs/gst/vaapi/Makefile.am:
27670 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27671 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
27672 Add GParamSpecs for GstVaapiID.
27674 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27676 * docs/reference/libs/libs.types:
27677 Drop gst_vaapi_id_get_type().
27679 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27681 * docs/reference/libs/libs-sections.txt:
27682 * gst-libs/gst/vaapi/gstvaapitypes.h:
27683 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
27685 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27687 * docs/reference/libs/libs-sections.txt:
27688 * docs/reference/libs/libs.types:
27689 * gst-libs/gst/vaapi/Makefile.am:
27690 * gst-libs/gst/vaapi/gstvaapitypes.c:
27691 * gst-libs/gst/vaapi/gstvaapitypes.h:
27692 Add GstVaapiID abstraction.
27694 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27696 * docs/reference/libs/libs.types:
27699 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27701 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27702 * gst-libs/gst/vaapi/gstvaapiimage.c:
27703 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27704 * gst-libs/gst/vaapi/gstvaapisurface.c:
27705 Drop useless include (<va/va_backend.h>).
27707 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27709 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27710 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
27712 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27714 * gst-libs/gst/vaapi/Makefile.am:
27715 * gst-libs/gst/vaapi/gstvaapiimage.c:
27716 * gst-libs/gst/vaapi/gstvaapiobject.c:
27717 * gst-libs/gst/vaapi/gstvaapiobject.h:
27718 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27719 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27720 * gst-libs/gst/vaapi/gstvaapisurface.c:
27721 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27722 Move private definitions and accessors to gstvaapiobject_priv.h.
27724 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27726 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27727 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27728 * gst-libs/gst/vaapi/gstvaapiimage.c:
27729 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27730 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
27731 * gst-libs/gst/vaapi/gstvaapiobject.c:
27732 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27733 * gst-libs/gst/vaapi/gstvaapisurface.c:
27734 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27735 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27736 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27737 * gst-libs/gst/vaapi/gstvaapivideosink.c:
27738 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27739 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27740 Fix short descriptions.
27742 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27746 * debian.upstream/Makefile.am:
27747 * debian.upstream/changelog.in:
27748 * debian.upstream/compat:
27749 * debian.upstream/control.in:
27750 * debian.upstream/copyright:
27751 * debian.upstream/gstreamer-vaapi-doc.install.in:
27752 * debian.upstream/gstreamer-vaapi.install.in:
27753 * debian.upstream/libgstvaapi-dev.install.in:
27754 * debian.upstream/libgstvaapi-x11.install.in:
27755 * debian.upstream/libgstvaapi.install.in:
27756 * debian.upstream/rules:
27757 Generate upstream packages through make deb.upstream.
27759 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27762 Bump version for development.
27764 === release 0.1.1 ===
27766 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27768 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27769 Use a black background for new windows.
27771 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27776 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27779 * docs/reference/libs/libs.types:
27780 * gst-libs/gst/vaapi/Makefile.am:
27781 * gst-libs/gst/vaapi/gstvaapimarshal.list:
27782 * gst-libs/gst/vaapi/gstvaapiobject.c:
27783 * gst-libs/gst/vaapi/gstvaapiobject.h:
27784 * tests/test-surfaces.c:
27785 Add "destroy" signal.
27787 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27789 * docs/reference/libs/libs-docs.xml.in:
27790 Improve gst-plugins-vaapi Library reference template.
27792 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27794 * docs/reference/libs/libs-docs.xml.in:
27795 * docs/reference/libs/libs-sections.txt:
27796 * gst-libs/gst/vaapi/Makefile.am:
27797 * gst-libs/gst/vaapi/gstvaapiimage.c:
27798 * gst-libs/gst/vaapi/gstvaapiimage.h:
27799 * gst-libs/gst/vaapi/gstvaapiobject.c:
27800 * gst-libs/gst/vaapi/gstvaapiobject.h:
27801 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27802 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27803 * gst-libs/gst/vaapi/gstvaapisurface.c:
27804 * gst-libs/gst/vaapi/gstvaapisurface.h:
27805 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27806 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
27808 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27810 * sys/vaapisink/gstvaapisink.c:
27813 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27815 * sys/vaapisink/gstvaapisink.c:
27816 Make sure VA display is valid when created with an explicit "display" name.
27818 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27820 * sys/vaapisink/gstvaapisink.c:
27821 Use plain "display" property for the X11 display name.
27823 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27825 * sys/vaapiconvert/gstvaapiconvert.c:
27826 * sys/vaapisink/gstvaapisink.c:
27827 Document vaapiconvert & vaapisink plugins.
27829 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27832 * docs/reference/Makefile.am:
27833 * docs/reference/plugins/Makefile.am:
27834 * docs/reference/plugins/plugins-docs.xml.in:
27835 * docs/reference/plugins/plugins-overrides.txt:
27836 * docs/reference/plugins/plugins-sections.txt:
27837 * docs/reference/plugins/plugins.types:
27838 Add plugins documentation template.
27840 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27842 * sys/vaapisink/gstvaapisink.c:
27843 * sys/vaapisink/gstvaapisink.h:
27844 Don't export gst_vaapisink_get_display().
27846 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27849 * docs/reference/libs/libs-docs.xml.in:
27850 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27851 * gst-libs/gst/vaapi/gstvaapiimage.c:
27852 * gst-libs/gst/vaapi/gstvaapisurface.c:
27853 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27854 Drop introspection annotations since they require gtk-doc >= 1.12.
27856 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27858 * gst-libs/gst/vaapi/gstvaapisurface.c:
27859 Add note about the fact that the surface holds an extra reference to the subpicture.
27861 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27863 * gst-libs/gst/vaapi/gstvaapiimage.c:
27864 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27865 * gst-libs/gst/vaapi/gstvaapisurface.c:
27866 Improve debugging messages.
27868 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27870 * tests/test-windows.c:
27871 Unref subpicture earlier as the surface is supposed to hold a reference to it.
27873 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27875 * docs/reference/libs/libs-sections.txt:
27876 * gst-libs/gst/vaapi/gstvaapisurface.c:
27877 * gst-libs/gst/vaapi/gstvaapisurface.h:
27878 * tests/test-windows.c:
27879 Add gst_vaapi_surface_{,de}associate_subpicture() API.
27881 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27883 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27884 Wait for MapNotify or UnmapNotify events on foreign windows too.
27886 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27888 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27889 Check whether the foreign XID is mapped at binding time.
27891 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27893 * sys/vaapisink/gstvaapisink.c:
27894 Add missing includes.
27896 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27899 * debian/Makefile.am:
27900 * debian/control.in:
27901 * debian/gstreamer-vaapi-doc.install.in:
27905 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27907 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27908 Fix warnings (drop extraneous var).
27910 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27912 * docs/reference/libs/libs-sections.txt:
27913 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27914 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
27916 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27918 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27921 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27923 * gst-libs/gst/vaapi/Makefile.am:
27924 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27925 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27926 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
27927 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27928 Try to improve switch to fullscreen mode.
27930 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27932 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27933 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27934 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27935 Improve display locking and rework X event wait functions.
27937 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27939 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27940 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
27941 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
27943 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27945 * gst-libs/gst/vaapi/Makefile.am:
27946 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27947 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
27948 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.
27950 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27952 * docs/reference/libs/libs-sections.txt:
27953 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27954 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27955 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
27957 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27959 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27960 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27961 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27962 Add gst_vaapi_window_get_display() to base.
27964 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27966 * docs/reference/libs/libs-docs.xml.in:
27967 * docs/reference/libs/libs-sections.txt:
27968 * gst-libs/gst/vaapi/Makefile.am:
27969 * gst-libs/gst/vaapi/gstvaapitypes.h:
27970 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27971 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27972 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27973 * sys/vaapisink/gstvaapisink.c:
27974 * sys/vaapisink/gstvaapisink.h:
27975 Add GstVaapiPoint & GstVaapiRectangle data structures.
27977 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27982 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27985 * sys/vaapisink/gstvaapisink.c:
27986 * sys/vaapisink/gstvaapisink.h:
27987 Allow `vaapisink` to render videos in fullscreen mode.
27989 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27991 * docs/reference/libs/libs-sections.txt:
27992 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27993 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27994 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27995 Add gst_vaapi_window_set_fullscreen() API.
27997 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27999 * sys/vaapisink/gstvaapisink.c:
28000 Size window so that to respect the video and pixel aspect ratio.
28002 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28004 * docs/reference/libs/libs-sections.txt:
28005 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28006 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28007 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28008 * tests/test-display.c:
28009 Add gst_vaapi_display_get_pixel_aspect_ratio().
28011 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28013 * docs/reference/libs/libs-sections.txt:
28016 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28018 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28019 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28020 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28021 * tests/test-display.c:
28022 Add display size accessors.
28024 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28027 * debian/control.in:
28028 Build-Requires: gstreamer-plugins-base >= 0.10.16.
28030 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28032 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28033 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28034 * gst-libs/gst/vaapi/gstvaapiimage.h:
28035 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
28036 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28037 * gst-libs/gst/vaapi/gstvaapisurface.h:
28038 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28039 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28040 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28041 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28042 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
28043 Fix documentation of *Class'es.
28045 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28047 * gst-libs/gst/vaapi/gstvaapiutils.c:
28048 * gst-libs/gst/vaapi/gstvaapiutils.h:
28049 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28050 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
28052 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28054 * docs/reference/libs/libs-sections.txt:
28055 * gst-libs/gst/vaapi/gstvaapisurface.h:
28056 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28057 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
28059 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28061 * docs/reference/libs/libs-sections.txt:
28062 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28063 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28064 * sys/vaapisink/gstvaapisink.c:
28065 * tests/test-windows.c:
28066 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
28068 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28070 * docs/reference/libs/Makefile.am:
28071 Fix make dist for --enable-gtk-doc builds.
28073 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28076 Improve autogen.sh.
28078 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28082 Generate gtk-doc.make from gtkdocize.
28084 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28089 * docs/Makefile.am:
28090 * docs/reference/Makefile.am:
28091 * docs/reference/libs/Makefile.am:
28092 * docs/reference/libs/libs-docs.xml.in:
28093 * docs/reference/libs/libs-overrides.txt:
28094 * docs/reference/libs/libs-sections.txt:
28095 * docs/reference/libs/libs.types:
28096 Document public API for libgstvaapi-*.so.*.
28098 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28100 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28101 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28102 Document GstVaapiVideoBuffer.
28104 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28106 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
28107 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
28108 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28109 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28110 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28111 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28112 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
28114 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28116 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28117 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28118 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28119 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28120 * gst-libs/gst/vaapi/gstvaapiimage.c:
28121 * gst-libs/gst/vaapi/gstvaapiimage.h:
28122 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28123 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28124 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28125 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28126 * gst-libs/gst/vaapi/gstvaapisurface.c:
28127 * gst-libs/gst/vaapi/gstvaapisurface.h:
28128 * gst-libs/gst/vaapi/gstvaapivideosink.c:
28129 * gst-libs/gst/vaapi/gstvaapivideosink.h:
28130 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28131 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28132 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28133 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
28134 Add tedious documentation.
28136 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28138 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28139 Beautify append_formats().
28141 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28143 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28144 Simplify GstVaapiDisplay (use GArray).
28146 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28149 * sys/vaapiconvert/gstvaapiconvert.c:
28150 * sys/vaapiconvert/gstvaapiconvert.h:
28151 Factor out direct-rendering infrastructure.
28153 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28155 * sys/vaapiconvert/gstvaapiconvert.c:
28156 * sys/vaapiconvert/gstvaapiconvert.h:
28157 Allow user to specify inout-buffers & derive-image optimizations.
28159 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28161 * sys/vaapiconvert/gstvaapiconvert.c:
28162 Reduce number of debug messaged printed out.
28164 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28166 * sys/vaapiconvert/gstvaapiconvert.c:
28167 * sys/vaapiconvert/gstvaapiconvert.h:
28168 Add vaDeriveImage() optimization.
28170 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28172 * gst-libs/gst/vaapi/gstvaapiimage.c:
28173 Fix gst_vaapi_image_create() from a foreign VA image.
28175 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28177 * gst-libs/gst/vaapi/gstvaapiimage.c:
28178 * gst-libs/gst/vaapi/gstvaapiimage.h:
28179 * gst-libs/gst/vaapi/gstvaapisurface.c:
28180 * gst-libs/gst/vaapi/gstvaapisurface.h:
28181 Add gst_vaapi_surface_derive_image() API.
28183 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28185 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28186 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28187 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28188 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().
28190 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28192 * tests/test-windows.c:
28193 Try YV12 & I420 image formats too.
28195 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28197 * gst-libs/gst/vaapi/gstvaapiimage.c:
28198 Split map/unmap functions into internal functions that don't check preconditions.
28200 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28202 * gst-libs/gst/vaapi/gstvaapiimage.c:
28203 Improve gst_vaapi_image_new() sanity checks.
28205 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28207 * tests/test-windows.c:
28210 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28212 * sys/vaapiconvert/gstvaapiconvert.c:
28213 Check if our inout buffer is still alive or default to a separate output buffer.
28215 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28217 * sys/vaapiconvert/gstvaapiconvert.c:
28218 * sys/vaapiconvert/gstvaapiconvert.h:
28219 Factor out buffers negotiation and optimization checks.
28221 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28223 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28224 * gst-libs/gst/vaapi/gstvaapiimage.c:
28225 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
28226 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
28227 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28228 * sys/vaapiconvert/gstvaapiconvert.h:
28231 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28233 * gst-libs/gst/vaapi/gstvaapiimage.c:
28234 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
28236 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28238 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28239 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28240 * gst-libs/gst/vaapi/gstvaapiimage.c:
28241 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28242 * gst-libs/gst/vaapi/gstvaapisurface.c:
28243 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28244 Add VA display locking utilities.
28246 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28248 * sys/vaapisink/gstvaapisink.c:
28249 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
28251 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28253 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28254 * tests/test-windows.c:
28255 Don't show window by default during creation.
28257 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28259 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28260 Fix gst_vaapi_window_x11_destroy().
28262 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28264 * sys/vaapiconvert/gstvaapiconvert.c:
28265 * sys/vaapiconvert/gstvaapiconvert.h:
28266 Alias sink & src pad buffers whenever possible.
28268 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28270 * gst-libs/gst/vaapi/gstvaapiimage.c:
28271 * gst-libs/gst/vaapi/gstvaapiimage.h:
28272 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
28274 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28276 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28277 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28278 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
28280 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28282 * sys/vaapiconvert/gstvaapiconvert.c:
28283 Fix image & surface size cache.
28285 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28288 Move gstreamer-vaapi package versioning to the top.
28290 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28293 Bump version for development.
28295 === release 0.1.0 ===
28297 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28300 Cosmetics (shorten lines).
28302 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28308 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28310 * debian/Makefile.am:
28311 * debian/changelog.in:
28313 * debian/control.in:
28314 * debian/copyright:
28315 * debian/gstreamer-vaapi.install.in:
28316 * debian/libgstvaapi-dev.install.in:
28317 * debian/libgstvaapi-x11.install.in:
28318 * debian/libgstvaapi.install.in:
28320 Add debian packaging.
28322 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28326 Add debian packaging.
28328 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28330 * pkgconfig/Makefile.am:
28331 Silence GNU make extensions warning.
28333 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28336 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'
28338 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28342 * pkgconfig/Makefile.am:
28343 * pkgconfig/gstreamer-vaapi-x11.pc.in:
28344 * pkgconfig/gstreamer-vaapi.pc.in:
28345 Add pkgconfig files.
28347 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28350 * gst-libs/gst/vaapi/Makefile.am:
28351 * sys/vaapisink/Makefile.am:
28352 * tests/Makefile.am:
28353 Split X11 support to libgstvaapi-x11-*.so.*
28355 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28357 * gst-libs/gst/vaapi/Makefile.am:
28358 Don't install private headers.
28360 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28362 * gst-libs/gst/vaapi/gstvaapidebug.h:
28363 * gst-libs/gst/vaapi/gstvaapiutils.c:
28364 * gst-libs/gst/vaapi/gstvaapiutils.h:
28367 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28369 * gst-libs/gst/vaapi/Makefile.am:
28370 * gst-libs/gst/vaapi/gstvaapidebug.h:
28371 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28372 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28373 * gst-libs/gst/vaapi/gstvaapiimage.c:
28374 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
28375 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28376 * gst-libs/gst/vaapi/gstvaapisurface.c:
28377 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28378 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28379 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28380 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28381 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28382 Rename vaapi_debug.h to gstvaapidebug.h.
28384 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28386 * gst-libs/gst/vaapi/Makefile.am:
28387 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28388 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28389 * gst-libs/gst/vaapi/gstvaapiimage.c:
28390 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28391 * gst-libs/gst/vaapi/gstvaapisurface.c:
28392 * gst-libs/gst/vaapi/gstvaapiutils.c:
28393 * gst-libs/gst/vaapi/gstvaapiutils.h:
28394 * gst-libs/gst/vaapi/vaapi_debug.h:
28395 Move vaapi_utils.* to gstvaapiutils.*
28397 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28399 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
28400 Cosmetics (remove an extra line).
28402 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28404 * gst-libs/gst/vaapi/Makefile.am:
28405 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
28406 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
28407 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28408 Move X11 utilties to gstvaapiutils_x11.[ch].
28410 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28412 * gst-libs/gst/vaapi/Makefile.am:
28413 * gst-libs/gst/vaapi/gstvaapivideosink.c:
28414 * gst-libs/gst/vaapi/gstvaapivideosink.h:
28415 * sys/vaapiconvert/gstvaapiconvert.c:
28416 * sys/vaapisink/gstvaapisink.c:
28417 Rename GstVaapiSinkBase to GstVaapiVideoSink.
28419 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28422 * tests/Makefile.am:
28423 * tests/examples/Makefile.am:
28424 * tests/examples/generic/Makefile.am:
28425 * tests/test-display.c:
28426 * tests/test-surfaces.c:
28427 * tests/test-windows.c:
28428 Move tests to top-level tests/ directory.
28430 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28432 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28433 * gst-libs/gst/vaapi/gstvaapiimage.c:
28434 * sys/vaapiconvert/gstvaapiconvert.c:
28435 * sys/vaapiconvert/gstvaapiconvert.h:
28436 Handle I420 formats internally in GstVaapiImage.
28438 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28440 * sys/vaapiconvert/gstvaapiconvert.c:
28441 * sys/vaapiconvert/gstvaapiconvert.h:
28442 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
28444 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28446 * gst-libs/gst/vaapi/gstvaapiimage.c:
28447 Implement I420 and YV12 if the underlying implementation does not.
28449 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28451 * sys/vaapiconvert/Makefile.am:
28452 * sys/vaapiconvert/gstvaapiconvert.c:
28453 * sys/vaapiconvert/gstvaapiconvert.h:
28454 Add initial vaapiconvert plugin.
28456 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28458 * sys/vaapisink/gstvaapisink.c:
28459 * sys/vaapisink/gstvaapisink.h:
28462 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28464 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28467 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28469 * tests/examples/generic/test-windows.c:
28470 Generate R/G/B rects.
28472 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28474 * gst-libs/gst/vaapi/gstvaapisurface.c:
28475 * gst-libs/gst/vaapi/gstvaapisurface.h:
28476 Add gst_vaapi_surface_sync().
28478 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28480 * gst-libs/gst/vaapi/gstvaapiimage.c:
28481 Cosmetics (reverse args order).
28483 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28485 * gst-libs/gst/vaapi/gstvaapiimage.c:
28486 * gst-libs/gst/vaapi/gstvaapiimage.h:
28487 * gst-libs/gst/vaapi/gstvaapisurface.c:
28490 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28492 * gst-libs/gst/vaapi/Makefile.am:
28493 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28494 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28495 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28496 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
28497 * tests/examples/generic/Makefile.am:
28498 * tests/examples/generic/test-windows.c:
28499 Add VA/X11 window abstraction.
28501 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28503 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28504 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28505 Add VA and X11 display accessors.
28507 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28509 * gst-libs/gst/vaapi/gstvaapiimage.c:
28512 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28514 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28517 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28519 * gst-libs/gst/vaapi/gstvaapiimage.c:
28520 * gst-libs/gst/vaapi/gstvaapiimage.h:
28521 * gst-libs/gst/vaapi/gstvaapisurface.c:
28522 * gst-libs/gst/vaapi/gstvaapisurface.h:
28523 Add gst_vaapi_{get,put}_image() API.
28525 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28527 * gst-libs/gst/vaapi/gstvaapiimage.c:
28528 * gst-libs/gst/vaapi/gstvaapiimage.h:
28529 Add gst_vaapi_image_update_from_buffer() helper.
28531 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28533 * sys/vaapisink/Makefile.am:
28534 * sys/vaapisink/gstvaapisink.c:
28535 * sys/vaapisink/gstvaapisink.h:
28536 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
28538 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28540 * tests/examples/generic/Makefile.am:
28541 * tests/examples/generic/test-surfaces.c:
28544 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28546 * gst-libs/gst/vaapi/Makefile.am:
28547 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28548 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28549 Add basic GstVaapiVideoBuffer.
28551 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28553 * gst-libs/gst/vaapi/Makefile.am:
28554 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
28555 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
28556 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28557 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28558 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28559 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28560 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
28562 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28564 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28565 Simplify format conversion code.
28567 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28569 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28570 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28571 Add gst_vaapi_image_format_from_caps() helper.
28573 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28575 * gst-libs/gst/vaapi/Makefile.am:
28576 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28577 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28578 Add VA surface pool (lazy allocator).
28580 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28582 * gst-libs/gst/vaapi/gstvaapisurface.c:
28583 * gst-libs/gst/vaapi/gstvaapisurface.h:
28584 Add gst_vaapi_surface_get_size() helper.
28586 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28588 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28589 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
28591 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28593 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28594 Reset display-name if the user provided his own X11 display.
28596 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28598 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28599 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28600 * tests/examples/generic/test-display.c:
28601 Add gst_vaapi_display_x11_new_with_display() API.
28603 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28605 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28606 * gst-libs/gst/vaapi/gstvaapiimage.h:
28607 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28608 * gst-libs/gst/vaapi/gstvaapisurface.h:
28609 Fix *_GET_CLASS() definitions...
28611 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28613 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28614 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28615 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28616 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28617 * tests/examples/generic/test-display.c:
28618 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
28620 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28622 * gst-libs/gst/vaapi/gstvaapisurface.c:
28623 * gst-libs/gst/vaapi/gstvaapisurface.h:
28624 Use GstVaapiChromaType abstraction.
28626 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28628 * gst-libs/gst/vaapi/gstvaapiimage.c:
28629 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28630 * gst-libs/gst/vaapi/gstvaapisurface.c:
28631 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
28633 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28635 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28636 Don't warn on failure, just return an appropriate error or value.
28638 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28640 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28641 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28642 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28643 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
28645 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28647 * gst-libs/gst/vaapi/Makefile.am:
28648 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
28649 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
28650 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
28652 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28654 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28655 * gst-libs/gst/vaapi/gstvaapiimage.c:
28656 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28657 * gst-libs/gst/vaapi/gstvaapisurface.c:
28658 * gst-libs/gst/vaapi/vaapi_debug.h:
28661 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28663 * gst-libs/gst/vaapi/gstvaapiimage.c:
28664 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28665 Fix GstVaapiImage and GstVaapiSubpicture initialization.
28667 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28669 * gst-libs/gst/vaapi/gstvaapisurface.c:
28670 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
28672 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28674 * tests/examples/generic/test-display.c:
28677 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28679 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28680 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28681 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28682 Fix GstVaapiDisplay initialization.
28684 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28686 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28687 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28688 Get VA image & subpicture formats as GstCaps.
28690 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28692 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28693 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28694 Add helper to convert from GstVaapiImageFormat to GstCaps.
28696 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28698 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28699 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28700 * gst-libs/gst/vaapi/gstvaapisurface.c:
28701 Cosmetics (drop unused variables).
28703 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28706 * sys/vaapiconvert/Makefile.am:
28707 * sys/vaapiconvert/gstvaapiconvert.c:
28708 * sys/vaapiconvert/gstvaapiconvert.h:
28709 * sys/vaapisink/Makefile.am:
28710 * sys/vaapisink/gstvaapisink.c:
28711 * sys/vaapisink/gstvaapisink.h:
28712 Add boilerplate for vaapiconvert and vaapisink elements.
28714 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28718 * sys/vaapiconvert/Makefile.am:
28719 Add vaapiconvert element hierarchy.
28721 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28723 * sys/vaapisink/Makefile.am:
28724 Rename to vaapisink.
28726 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28728 * gst-libs/gst/vaapi/gstvaapisurface.c:
28729 Shorter code (and more correct).
28731 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28733 * gst-libs/gst/vaapi/gstvaapisurface.c:
28734 * gst-libs/gst/vaapi/gstvaapisurface.h:
28735 Add helper to get GstVaapiDisplay from a surface.
28737 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28739 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28740 Fix subpicture formats list length.
28742 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28744 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28745 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28746 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
28748 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28750 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28751 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28752 Cosmetics (more checks, includes).
28754 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28756 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28757 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28758 Really add VA subpicture abstraction.
28760 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28762 * gst-libs/gst/vaapi/Makefile.am:
28763 * gst-libs/gst/vaapi/gstvaapiimage.c:
28764 * gst-libs/gst/vaapi/gstvaapiimage.h:
28765 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28766 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28767 * gst-libs/gst/vaapi/gstvaapisurface.c:
28768 * gst-libs/gst/vaapi/gstvaapisurface.h:
28769 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
28771 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28774 * gst-libs/gst/vaapi/Makefile.am:
28775 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28776 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28777 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28778 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28779 * gst-libs/gst/vaapi/vaapi_debug.h:
28780 * gst-libs/gst/vaapi/vaapi_utils.c:
28781 * gst-libs/gst/vaapi/vaapi_utils.h:
28782 * tests/examples/generic/Makefile.am:
28783 * tests/examples/generic/test-display.c:
28784 Add initial VA display abstraction.
28786 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28790 * tests/Makefile.am:
28791 * tests/examples/Makefile.am:
28792 * tests/examples/generic/Makefile.am:
28793 Add tests infrastructure.
28795 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28798 Clean up VA-API checks.
28800 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28803 Check for __attribute__((visibility("hidden"))).