3 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
8 * gstreamer-vaapi.doap:
12 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
14 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15 libs: decoder: h264: ensure num_ref_frames is greater than 0
16 Even if it is the h264parse fault or bad video file, vaapih264dec
17 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
18 as the driver might use it.
19 Also see "info.ref_frames = dpb_size;" in
20 gstvaapidecoder_h264.c::ensure_context
21 https://bugzilla.gnome.org/show_bug.cgi?id=793836
23 === release 1.13.91 ===
25 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
30 * gstreamer-vaapi.doap:
34 === release 1.13.90 ===
36 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
41 * gstreamer-vaapi.doap:
45 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
47 * gst/vaapi/gstvaapipostproc.c:
48 vaapipostproc: change how the metadata is copied
49 Instead of copying the metada in prepare_output_buffer() vmethod,
50 it is done in append_output_buffer_metadata() thus deinterlaced
51 buffers could also have the proper metas.
52 GstVideoCropMeta now it is copied internally and it is decided via
53 transform_meta() vmethod.
54 A new internal method, copy_metadata() was added to handle VPP
55 transformation where non-GstVideoVaapiMeta metas were lost.
57 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
59 * gst/vaapi/gstvaapipostproc.c:
60 postproc: Copy meta data from input to output
61 This will ensure that meta data without memory tags will be copied. This
62 was noticed when testing ROI.
63 https://bugzilla.gnome.org/show_bug.cgi?id=768248
65 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
67 * tests/elements/test-roi.c:
68 tests: element: rewrite ROI test
69 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
70 than injecting GstEvents. These meta are added as a pad probe in
73 * Use of navigation messages to control de test
74 * Use signal watch for processing messages
75 * Change to H265 rather than H264 since current intel-vaapi-driver
76 only supports ROI on kabylake.
77 TODO: add a parameter to change the encoder/decoder to test.
78 https://bugzilla.gnome.org/show_bug.cgi?id=768248
80 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
82 * gst-libs/gst/vaapi/gstvaapicontext.c:
83 * gst-libs/gst/vaapi/gstvaapiencoder.c:
84 * gst-libs/gst/vaapi/gstvaapiencoder.h:
85 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
86 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
87 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
88 libs: encoder: reimplement ROI using meta
89 Check input buffers for ROI metas and pass them to VA. Also added a
90 new "default-roi-delta-qp" property in order to tell the encoder what
91 delta QP should be applied to ROI by default.
92 Enabled it for H264 and H265 encoders.
93 https://bugzilla.gnome.org/show_bug.cgi?id=768248
95 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
97 * gst-libs/gst/vaapi/gstvaapiencoder.c:
98 * gst-libs/gst/vaapi/gstvaapiencoder.h:
99 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
100 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
101 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
102 https://bugzilla.gnome.org/show_bug.cgi?id=768248
104 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
106 * tests/simple-encoder.c:
107 Revert "tests: simple-encoder: add an option to set ROI"
108 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
109 https://bugzilla.gnome.org/show_bug.cgi?id=768248
111 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
113 * gst/vaapi/gstvaapiencode.c:
114 * gst/vaapi/gstvaapiencode_h264.c:
115 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
116 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
117 https://bugzilla.gnome.org/show_bug.cgi?id=768248
119 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
121 * gst/vaapi/gstvaapipluginbase.c:
122 plugins: copy input buffer metas
123 When importing buffers to a VA-base buffer, it is required to copy
124 the metas in the original buffer, otherwise information will be
125 lost, such as GstVideoRegionOfInterestMeta.
126 https://bugzilla.gnome.org/show_bug.cgi?id=768248
128 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
130 * gst-libs/gst/vaapi/gstvaapisurface.c:
131 libs: surface: cast to uintptr_t pointer
132 According to Debian package auto-building, uintptr_t is not an
133 unsigned long in i386 arch, raising an "incompatible pointer type"
135 This patch adds a casting for compiler's satisfaction in i386.
137 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
139 * gst-libs/gst/vaapi/gstvaapiencoder.c:
140 libs: encoder: add zero as valid value for periodic keyframe.
141 Enabled zero as valid value for keyframe-period property.
142 https://bugzilla.gnome.org/show_bug.cgi?id=793829
144 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
146 * gst-libs/gst/vaapi/gstvaapiencoder.c:
147 libs: encoder: code-style fix
149 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
151 * gst/vaapi/gstvaapidecode.c:
152 vaapidecode: generate system allocated buffers
153 Generate system allocated output buffers when downstream doesn't
154 support GstVideoMeta.
155 The VA buffer content is copied to the new output buffer, and it
156 replaces the VA buffer.
157 https://bugzilla.gnome.org/show_bug.cgi?id=785054
159 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
161 * gst/vaapi/gstvaapipostproc.c:
162 vaapipostproc: handle system allocated buffers when required
163 When downstream can't handle GstVideoMeta it is required to send
164 system allocated buffers.
165 The system allocated buffers are produced in prepare_output_buffer()
166 vmethod if downstream can't handl GstVideoMeta.
167 At transform() vmethod if the buffer is a system allocated buffer,
168 a VA buffer is instanciated and replaces the out buffer. Later
169 the VA buffer is copied to the system allocate buffer and it
170 replaces the output buffer.
171 https://bugzilla.gnome.org/show_bug.cgi?id=785054
173 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
175 * gst/vaapi/gstvaapipluginbase.c:
176 * gst/vaapi/gstvaapipluginbase.h:
177 plugins: add gst_vaapi_copy_va_buffer()
178 This helper function aims to copy buffers with VA memory to dumb
179 buffers, when GstVideoMeta is not available dowstream.
180 https://bugzilla.gnome.org/show_bug.cgi?id=785054
182 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
184 * gst/vaapi/gstvaapipluginbase.c:
185 * gst/vaapi/gstvaapipluginbase.h:
186 plugins: add COPY_OUTPUT_FRAME flag
187 This patch add the member copy_output_frame and set it TRUE when
188 when downstream didn't request GstVideoMeta API, the caps are raw
189 and the internal allocator is the VA-API one.
190 https://bugzilla.gnome.org/show_bug.cgi?id=785054
192 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
194 * gst/vaapi/gstvaapipluginbase.c:
195 * gst/vaapi/gstvaapipluginbase.h:
196 plugins: store the first downstream allocator if available
197 The allocator will be required if we need to allocate a buffer
198 to store the frame with the expected strides.
199 https://bugzilla.gnome.org/show_bug.cgi?id=785054
201 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
203 * gst/vaapi/gstvaapivideobufferpool.c:
204 * gst/vaapi/gstvaapivideobufferpool.h:
205 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
206 This function will inform the element if it shall copy the generated
207 buffer by the pool to a system allocated buffer before pushing it
209 https://bugzilla.gnome.org/show_bug.cgi?id=785054
211 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
213 * gst/vaapi/gstvaapivideobufferpool.c:
214 vaapibufferpool: don't change config when forcing video meta
215 VA-API based buffer might need a video meta because of different
216 strides. But when donwstream doesn't support video meta we need to
217 force the usage of video meta.
218 Before we changed the buffer pool configuration, but actually this
219 is a hack and we cannot rely on that for downstream.
220 This patch add a check fo raw video caps and allocator is VA-API,
221 then the option is enabled without changing the pool configuration.
222 In this case the element is responsible to copy the frame to a
223 simple buffer with the expected strides.
224 https://bugzilla.gnome.org/show_bug.cgi?id=785054
226 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
228 * gst/vaapi/gstvaapipostproc.c:
229 vaapipostproc: set discont flag at vpp deinterlacing
230 When deinterlacing with VPP the discont flag was not forwarded to
231 the new created buffer. This patch sets the discont flag if input
234 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
236 * gst/vaapi/gstvaapivideobufferpool.h:
237 vaapibufferpool: remove wrong gcc annotation
239 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
241 * gst-libs/gst/vaapi/gstvaapiencoder.c:
242 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
243 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
244 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
245 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
246 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
247 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
248 libs: encoder: h264,h265: extend max periodic keyframe.
249 Increased max values of periodic key frame for h26x codecs.
250 This allow more fine tunning of encoder that in certian scenario
251 want higher periodic key frame.
252 For example: it doesn't want a key frame each 10 seconds but
254 https://bugzilla.gnome.org/show_bug.cgi?id=786320
256 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
262 === release 1.13.1 ===
264 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
269 * gstreamer-vaapi.doap:
273 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
275 * gst/vaapi/Makefile.am:
276 vaapi: dist new header
278 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
280 * gst/vaapi/gstvaapi.c:
281 vaapi: register vaapisink as marginal on wayland
282 vaapsink, when used with the Intel VA-API driver, tries to display
283 surfaces with format NV12, which are handled correctly by
284 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
286 This shall be solved either by COGL or by making the driver to paint
287 RGB surfaces. In the meanwhile, let's just demote vaapisink as
288 marginal when the Wayland environment is detected, no matter if it is
290 https://bugzilla.gnome.org/show_bug.cgi?id=775698
292 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
294 * gst/vaapi/gstvaapipluginutil.c:
295 plugins: update mesa's vendor string in whitelist
296 Mesa has updated its VA-API Gallium driver vendor string:
297 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
298 This patch tries to cover both, the old and the new one.
299 https://bugzilla.gnome.org/show_bug.cgi?id=793386
301 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
304 meson: make version numbers ints and fix int/string comparison
305 WARNING: Trying to compare values of different types (str, int).
306 The result of this is undefined and will become a hard error
307 in a future Meson release.
309 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
311 * gst/vaapi/gstvaapipluginbase.c:
312 plugins: handle vaapi allocator in allocation query
313 In propose_allocation() if the numer of allocation params is zero, the
314 system's allocator is added first, and lastly the native VA-API
316 In decide_allocation(), the allocations params in query are travered,
317 looking for a native VA-API allocator. If it is found, it is reused as
318 src pad allocator. Otherwise, a new allocator is instantiated and
319 appended in the query.
320 https://bugzilla.gnome.org/show_bug.cgi?id=789476
322 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
324 * gst/vaapi/gstvaapivideomemory.h:
325 vaapivideomemory: remove unused macro
326 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
327 was never used, since the native VA-API allocator name has been
328 GST_VAAPI_VIDEO_MEMORY_NAME.
329 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
330 https://bugzilla.gnome.org/show_bug.cgi?id=789476
332 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
334 * gst/vaapi/gstvaapisink.c:
335 vaapisink: don't mask button events for foreign windows
336 Don't subscribe to button press events when using a foreing window,
337 because the user created window would trap those events, preveting the
339 https://bugzilla.gnome.org/show_bug.cgi?id=791615
341 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
344 autotools: use -fno-strict-aliasing where supported
345 https://bugzilla.gnome.org/show_bug.cgi?id=769183
347 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
350 meson: use -fno-strict-aliasing where supported
351 https://bugzilla.gnome.org/show_bug.cgi?id=769183
353 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
355 * gst/vaapi/gstvaapi.c:
356 vaapi: add NULL-sentinel to kernel_names
357 The array needs to be NULL-terminated according to the
358 gst_plugin_add_dependency() documentation.
360 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
362 * gst/vaapi/gstvaapipostprocutil.c:
363 vaapipostproc: remove spurious code
364 This assignation is dead code, since gst_video_info_from_caps() set
366 https://bugzilla.gnome.org/show_bug.cgi?id=790149
368 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
370 * gst/vaapi/gstvaapipostprocutil.c:
371 vaapipostproc: if no p-a-r in out caps define a range
372 Instead of copying the pixel-aspect-ratio from the sink caps, define
373 an open range for the src caps pixel-aspect-ratio. Later it will be
375 https://bugzilla.gnome.org/show_bug.cgi?id=790149
377 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
379 * gst/vaapi/gstvaapisink.c:
380 vaapisink: check for display's color-balance properties
381 Check for display's color-balance properties, available by the VA-API
382 driver, before setting them.
383 Also logs an info message of those unavailable properties.
384 https://bugzilla.gnome.org/show_bug.cgi?id=792638
386 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
388 * gst/vaapi/gstvaapipluginbase.c:
389 plugins: re-using buffer pool breaks renegotiation
390 at propose_allocation() we should not reuse the proposed buffer,
391 because it could break renegotiation.
392 https://bugzilla.gnome.org/show_bug.cgi?id=792620
394 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
396 * gst/vaapi/gstvaapipluginbase.c:
397 plugins: use g_clear_object() to unref sinkpad_buffer_pool
398 https://bugzilla.gnome.org/show_bug.cgi?id=792620
400 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
402 * gst-libs/gst/vaapi/meson.build:
403 build: meson: add missing GstGL dependency
405 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
407 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
408 libs: utils: egl: add missing guards for GstGL
410 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
412 * gst/vaapi/gstvaapipluginbase.c:
413 plugins: remove dmabuf-import hack
414 Remove the hack to check if an upstream element has enabled the
415 property io-mode enabled as dmabuf-import.
416 https://bugzilla.gnome.org/show_bug.cgi?id=792034
418 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
420 * gst-libs/gst/vaapi/Makefile.am:
421 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
422 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
423 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
424 libs: egl: utils: use eglGetPlatformDisplay()
425 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
426 eglGetDisplay() is rather fragile, and it is recommended to use
427 eglGetPlatformDisplay() when possible.
428 In order to do that, this patch uses the helper in GstGL. If
429 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
431 https://bugzilla.gnome.org/show_bug.cgi?id=790493
433 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
435 * gst/vaapi/gstvaapipostproc.c:
436 vaapipostproc: lock ensure_filter with postproc_lock
437 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
438 and allowed_sinkpad_caps. This can race with copying these caps in
439 gst_vaapipostproc_transform_caps and lead to segfaults.
440 The gst_vaapipostproc_transform_caps function already locks
441 postproc_lock before copying the caps. Make sure that calls to
442 gst_vaapipostproc_ensure_filter also acquire this lock.
443 https://bugzilla.gnome.org/show_bug.cgi?id=791404
445 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
447 * tests/test-filter.c:
448 tests: test-filter: fix dereference before null check
449 Null-checking op_info suggests that it may be null, but it has already
450 been dereferenced on all paths leading to the check.
451 There may be a null pointer dereference, or else the comparison
452 against null is unnecessary.
454 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
457 tests: y4mreader: fix string state checkup
458 str cannot be null in that moment, but it may be the end of string.
460 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
463 tests: y4mreader: use int for fgetc
464 Assigning the return value of fgetc to char truncates its value.
465 It will not be possible to distinguish between EOF and a valid
468 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
471 tests: y4mreader: fix incompatible cast
472 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
473 they are dereferenced as a wider long (64 bits, signed). This may lead
474 to memory corruption.
476 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
479 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
481 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
484 Automatic update of common submodule
485 From e8c7a71 to 3fa2c9e
487 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
489 * gst/vaapi/gstvaapivideocontext.c:
490 videoconvert: gst_element_post_message() is transfer full on msg
491 For this reson we need not to unref the message, even if it failed.
493 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
495 * gst/vaapi/gstvaapivideocontext.c:
496 Revert "vaapivideocontext: possible memleak when no bus attached"
497 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
499 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
501 * tests/elements/test-vaapicontext.c:
502 test: vaapicontext: process have-context bus message
504 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
506 * tests/elements/test-vaapicontext.c:
507 test: vaapicontext: app context is not persistent
509 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
511 * gst/vaapi/gstvaapipluginbase.c:
512 * gst/vaapi/gstvaapivideocontext.c:
513 * gst/vaapi/gstvaapivideocontext.h:
514 vaapivideocontext: only vaapisink process app context
515 gst.vaapi.app.Display context is made for applications that will
516 provide the VA display and the native display to used by the
517 pipeline, when are using vaapisink as overlay. There are no use
518 case for encoders, decoders, neither for the postprocessor.
519 In the case of the vaapisink, it shall query for gst.vaapi.Display
520 upstream first, and then, if there is no reply,
521 gst.vaapi.app.Display context will be posted in the bus for the
522 application. If the application replies, a GstVaapiDisplay object
523 is instantiated given the context info, otherwise a
524 GstVaapiDisplay is created with the normal algorithm to guess the
525 graphics platform. Either way, the instantiated GstVaapiDisplay
526 is propagated among the pipeline and the have-message bus message.
527 Also only vaapisink will process the gst.vaapi.app.Display, if
528 and only if, it doesn't have a display already set. This is
529 caused because if vaapisink is in a bin (playsink, for example)
530 the need-context is posted twice, leading to an error state.
531 https://bugzilla.gnome.org/show_bug.cgi?id=790999
533 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
535 * gst/vaapi/gstvaapivideocontext.c:
536 vaapivideocontext: log the name of GstVaapiDisplay
537 https://bugzilla.gnome.org/show_bug.cgi?id=790999
539 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
541 * gst/vaapi/gstvaapivideocontext.c:
542 vaapivideocontext: possible memleak when no bus attached
543 https://bugzilla.gnome.org/show_bug.cgi?id=790999
545 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
547 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
548 libs: window: wayland: remove unused header include
549 Remove wayland-client.h include since there is no exposed symbols from
552 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
554 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
555 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
556 libs: encoder: h264,h265: guard rate control's macroblock
557 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
559 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
562 Automatic update of common submodule
563 From 3f4aa96 to e8c7a71
565 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
567 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
568 libs: encoder: h264: Add Hierarchical-B encode
569 Frames are encoded as different layers. 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 B-frames, except the one in top most layer, are reference frames.
574 All the base layer frames are I or P.
575 eg: with 3 temporal layers
579 T1, T2, T3: Temporal Layers
582 T1: I0->P4 , P4->P8 etc..
584 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
585 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
586 https://bugzilla.gnome.org/show_bug.cgi?id=788918
588 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
590 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
591 libs: encoder: h264: Add Hierarchical-P encode
592 Frames are encoded as different layers. A frame in a particular
593 layer will use pictures in lower or same layer as references.
594 Which means decoder can drop the frames in upper layer but still
595 decode lower layer frames.
596 eg: with 3 temporal layers
600 T1, T2, T3: Temporal Layers
602 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
603 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
604 https://bugzilla.gnome.org/show_bug.cgi?id=788918
606 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
608 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
609 libs: encoder: h264: Fix frame_num generation
610 The frame_num generation was not correctly implemented.
611 According to h264 spec, frame_num should get incremented
612 for each frame if previous frame is a referece frame.
613 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
614 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
615 https://bugzilla.gnome.org/show_bug.cgi?id=788918
617 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
619 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
620 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
621 libs: encoder: h264: Add new property "prediction-type"
622 Adds new property "prediction-type" to select different reference
623 picture selection modes like hierarchical-p, hierarchical-b etc.
624 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
625 https://bugzilla.gnome.org/show_bug.cgi?id=788918
627 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
629 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
630 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
631 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
632 Adds some basic building blocks to ease the implementation
633 of hierarchical prediction modes.
634 -- add an utility method to find temporal level of each frame
635 -- define max_ref_frame count based on temporal level count
636 -- add temporal_level_div[] for finding temporal level each frame
638 -- find ip_period based on temporal level count
639 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
640 https://bugzilla.gnome.org/show_bug.cgi?id=788918
642 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
644 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
645 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
646 libs: encoder: h264: Add property "temporal-levels"
647 Adds new property "temporal-levels" to select the number of
648 temporal levels to be included in the encoded stream.
649 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
650 https://bugzilla.gnome.org/show_bug.cgi?id=788918
652 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
654 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
655 libs: encoder: objects: Add a reference flag
656 We can have p-frame as non-ref and also b-frame as ref
657 which are not supported yet. Reference flag
658 is the first machinery needed for more advanced
659 reference picture selection modes.
660 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
661 https://bugzilla.gnome.org/show_bug.cgi?id=788918
663 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
665 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
666 libs: surface: egl: add comment
667 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
668 where the creation of surfaces from GEM fd may fail.
669 https://bugzilla.gnome.org/show_bug.cgi?id=773453
671 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
673 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
674 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
675 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
676 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
677 Adds a new function that changes the internal EGL display to the
678 current one (eglGetCurrentDisplay()) and sets the current context
679 too (eglGetCurrentContext()).
680 This new function is called by gst_vaapi_texture_egl_create() updating
681 the GstVaapiDisplayEGL with the current EGL display.
682 https://bugzilla.gnome.org/show_bug.cgi?id=773453
684 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
686 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
687 libs: texture: egl: update EGL display and context
688 It is required to use the context of the calling thread when wrapping
689 a foreign texture. According the documentation of
690 GstVideoGLTextureUploadMeta:
691 "The caller of gst_video_gl_texture_upload_meta_upload() must
692 have OpenGL set up and call this from a thread where it is valid
693 to upload something to an OpenGL texture."
694 This patch updates the EGL display and context in GstVaapiDisplay
695 instance to the one used by te renderer that uploads the texture.
696 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
697 https://bugzilla.gnome.org/show_bug.cgi?id=773453
699 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
701 * gst/vaapi/gstvaapipluginbase.c:
702 plugins: centralize assignation of GL objects
703 Add plugin_set_gst_gl() where the GstGL objects are assigned.
704 https://bugzilla.gnome.org/show_bug.cgi?id=773453
706 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
708 * gst/vaapi/gstvaapipluginbase.c:
709 plugins: set GL objects if ensured
710 Only set the GL display and GL other context if they are ensured.
711 https://bugzilla.gnome.org/show_bug.cgi?id=773453
713 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
715 * gst/vaapi/gstvaapipluginbase.c:
716 plugins: set GL objects if context is handled
717 Only set the GL display and GL other context if they are extracted
718 correctly from the gstreamer's context.
719 https://bugzilla.gnome.org/show_bug.cgi?id=773453
721 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
723 * gst/vaapi/gstvaapipluginbase.c:
724 plugins: fix memory leak when GL context is created
725 When the GL display and context are created inside an VAAPI element
726 the created GL context is leaked.
727 https://bugzilla.gnome.org/show_bug.cgi?id=773453
729 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
731 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
732 libs: display: egl: free leaked memory
733 The EGL VAAPI display forgot to release the egl display, context and
734 proxied VAAPI display.
735 https://bugzilla.gnome.org/show_bug.cgi?id=773453
737 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
739 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
740 libs: texture: egl: code style
741 https://bugzilla.gnome.org/show_bug.cgi?id=773453
743 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
745 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
746 libs: surface: egl: error message if no extension
747 Instead of silently fail to export the image if there is not available
748 the EGL_MESA_drm_image, log an error message. Also a code refactoring
750 https://bugzilla.gnome.org/show_bug.cgi?id=773453
752 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
754 * gst/vaapi/gstvaapipluginbase.c:
755 plugins: direct rendering on memory:VASurface
756 As buffers negotiated with memory:VASurface caps feature can also be
757 mapped, they can also be configured to use VA derived images, in other
758 words "direct rendering".
759 Also, because of the changes in dmabuf allocator as default allocator,
760 the code for configuring the direct rendering was not clear.
761 This patch cleans up the code and enables direct rendering when the
762 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
763 even then the memory:VASurface cap feature is negotiated.
764 https://bugzilla.gnome.org/show_bug.cgi?id=786054
766 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
768 * gst/vaapi/gstvaapipluginbase.c:
769 * gst/vaapi/gstvaapipluginutil.c:
770 plugins: only dmabuf on srcpad if downstream
771 Set if source pad can handle dmabuf only if the GstGL context comes
773 It is possible to know that at two moments:
774 1\ In the case of GstGLTextureUpload caps feature is negotiated and
775 downstream pool reports back gst.gl.GstGLContext.
776 2\ When GstGLContext is found as GstContext from dowstream.
777 https://bugzilla.gnome.org/show_bug.cgi?id=788503
779 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
781 * gst/vaapi/gstvaapivideocontext.c:
782 vaapivideocontext: add inline documentation
783 Document function gst_vaapi_find_gl_local_context().
784 https://bugzilla.gnome.org/show_bug.cgi?id=788503
786 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
788 * gst/vaapi/gstvaapipluginutil.c:
789 * gst/vaapi/gstvaapivideocontext.c:
790 * gst/vaapi/gstvaapivideocontext.h:
791 vaapivideocontext: return the direction of gl context
792 In function gst_vaapi_find_gl_context() add a direction parameter to
793 return back the direction where the GstGL context was found.
794 This is going to be useful when checking if downstream can import
795 dmabuf-based buffers.
796 https://bugzilla.gnome.org/show_bug.cgi?id=788503
798 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
800 * gst/vaapi/gstvaapipluginbase.c:
801 * gst/vaapi/gstvaapipluginbase.h:
802 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
803 This patch refactors the code by adding the function
804 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
805 GstGLContext can handle dmabuf-based buffers.
806 The function is exposed publicly since it is intended to be used later
807 at GstVaapiDisplay instantiation.
808 https://bugzilla.gnome.org/show_bug.cgi?id=788503
810 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
812 * gst/vaapi/gstvaapiencode.c:
813 vaapiencode: allow to set property on runtime
814 Tis patch, allows some properties that we want to be set on
815 runtime. (eg. bitrate)
816 Note that all properties are under control by num_codedbuf_queued.
817 https://bugzilla.gnome.org/show_bug.cgi?id=786321
819 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
821 * gst-libs/gst/vaapi/gstvaapiencoder.c:
822 libs: encoder: allow to set bitrate on runtime
823 In case of streaming, controlling bitrate dynamically for encoder might be
824 important to manage quality of the streaming.
825 This patch is to support such a scenario.
826 https://bugzilla.gnome.org/show_bug.cgi?id=786321
828 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
830 * gst/vaapi/gstvaapi.c:
831 * gst/vaapi/gstvaapi.h:
832 * gst/vaapi/gstvaapidecodebin.c:
833 vaapidecodebin: Register element if no VPP support is available too
834 VPP support is only needed for advanced deinterlacing, which is not
835 enabled by default either. Error out if it is selected but VPP is not
836 supported, and otherwise just work without VPP support.
837 https://bugzilla.gnome.org/show_bug.cgi?id=788758
839 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
841 * gst/vaapi/gstvaapipluginutil.c:
842 Avoid infinite loop when vaapi_create_display fails
843 Which might be the case when using, for example, xvfb.
845 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
847 * gst-libs/gst/vaapi/gstvaapiutils.c:
848 libs: utils: log warn if display fail
849 gstreamer-vaapi initializes the display by trial-and-error, thus
850 logging an error message if the display initialisation fails the user
851 may be weary of the error message in the screen, if using VA-API 1.0
852 This commit set the VA error log handler to GStreamer warning level
853 while calling vaInitialize() and set it to error after that.
854 https://bugzilla.gnome.org/show_bug.cgi?id=783169
856 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
858 * gst/vaapi/gstvaapipluginutil.c:
859 plugins: try to create test display in order
860 When creating the test display for querying capabilites, it try in
861 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
862 since they are either composited with X11 or Wayland.
863 The reason for this is to reduce the posibility of failure that could
864 blacklist the plugin.
865 https://bugzilla.gnome.org/show_bug.cgi?id=782212
867 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
869 * gst-libs/gst/vaapi/gstvaapidisplay.c:
870 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
871 libs: display: delay getting screen resolution
872 Instead of extracting the screen resolution at GstVaapiDisplay
873 creation, this patch delay it until the screen size is requested for
875 https://bugzilla.gnome.org/show_bug.cgi?id=782212
877 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
879 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
880 libs: display: egl: avoid two vaDisplay instantiates
881 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
882 or Wayland. Nonetheless it created another vaDisplay for it, instead
883 of using the wrapped one.
884 This patch enables the reuse of the wrapped vaDisplay avoiding
886 https://bugzilla.gnome.org/show_bug.cgi?id=782212
888 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
890 * gst-libs/gst/vaapi/gstvaapidisplay.c:
891 * gst-libs/gst/vaapi/gstvaapidisplay.h:
892 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
893 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
894 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
895 libs: display: remove display_type from display info
896 Since it's no required to pass the display type in the display info,
897 the structure member is removed.
898 https://bugzilla.gnome.org/show_bug.cgi?id=782212
900 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
902 * gst-libs/gst/vaapi/gstvaapidisplay.c:
903 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
904 libs: display: remove display_type member
905 It is not used any more since GstVaapiDisplay was ported as a
906 GstObject-based. This information is part of the class information.
907 https://bugzilla.gnome.org/show_bug.cgi?id=782212
909 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
911 * gst-libs/gst/vaapi/gstvaapidisplay.c:
912 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
913 libs: display: remove parent member
914 Parent was a crumb left from display cache.
915 https://bugzilla.gnome.org/show_bug.cgi?id=782212
917 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
919 * gst/vaapi/gstvaapi.c:
920 vaapi: Also register vaapipostproc without VPP support
921 It can still do simple deinterlacing then.
923 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
925 * gst/vaapi/gstvaapipostproc.c:
926 vaapipostproc: Allow running without VPP support
927 We returned FALSE from ::start() if VPP support is not available, but it
928 is only really needed for complex filters and during transform we check
929 for that. For simple deinterlacing it is not needed.
931 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
933 * gst/vaapi/gstvaapipostproc.c:
934 vaapipostproc: use scoped variable for return value
935 Instead of reusing a parameter variable for the return value of
936 gst_vaapipostproc_transform_caps(), this patch uses the function
937 scoped pointer. Thus, the code is cleaner.
938 https://bugzilla.gnome.org/show_bug.cgi?id=785706
940 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
942 * gst/vaapi/gstvaapipostproc.c:
943 vaapipostproc: removed unused parameter
944 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
945 helper function since the it is not used.
946 https://bugzilla.gnome.org/show_bug.cgi?id=785706
948 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
950 * gst/vaapi/gstvaapipostproc.c:
951 vaapipostproc: use scoped variable for return value
952 Instead of reusing a parameter variable for the return value of
953 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
954 pointer. Thus, the code is cleaner.
955 https://bugzilla.gnome.org/show_bug.cgi?id=785706
957 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
959 * gst/vaapi/gstvaapipluginutil.h:
960 plugins: memory:DMABuf only handles planar formats
961 When glimagesink negotiates the caps feature memory:DMABuf the
962 exported dmabufs buffers with NV12 format are not well rendered, thus
964 https://bugzilla.gnome.org/show_bug.cgi?id=788229
966 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
968 * gst/vaapi/gstvaapiencode.c:
969 vaapiencode: flush pending frames before set format
970 Flush pending frames, if any, in the internal encorder, before setting
971 the new negotiated format.
972 https://bugzilla.gnome.org/show_bug.cgi?id=786173
974 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
976 * gst/vaapi/gstvaapidecode.c:
977 vaapidecode: drain pending frames before set format
978 Drain pending frames, if any, in the internal decoder before setting
979 the new negotiated format.
980 https://bugzilla.gnome.org/show_bug.cgi?id=786173
982 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
984 * tests/test-display.c:
985 tests: display: use GObject getter
986 Instead of using the gst_vaapi_display_get_property(), this patch
987 replaces it with g_object_get_property() to dump the available VA
989 https://bugzilla.gnome.org/show_bug.cgi?id=788058
991 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
993 * gst/vaapi/gstvaapisink.c:
994 vaapisink: use GObject setter and getter
995 Instead of using gst_vaapi_display_set_property() or
996 gst_vaapi_display_get_property(), this patch set replace it usage
997 with g_object_set() or g_object_get().
998 Also the internal helper cb_set_value() is removed since it is not
1000 https://bugzilla.gnome.org/show_bug.cgi?id=788058
1002 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1004 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1005 libs: display: initialize value if they are not yet
1006 This is a difference between the GObject API and the GstVaapi one: the
1007 GValue passed to get a property value, in GObject has to be
1008 initialized with g_value_init(), but in GstVaapi is has not.
1009 In order to overcome this mismatch, this patch call g_value_init()
1010 internally only in the passed one is not already initialized.
1011 https://bugzilla.gnome.org/show_bug.cgi?id=788058
1013 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1015 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1016 libs: display: optimize properties setters and getters
1017 Shuffled some code to avoid to find the properties descriptor in the
1018 array twice, adding the internal functions _set_property() and
1020 https://bugzilla.gnome.org/show_bug.cgi?id=788058
1022 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1024 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1025 libs: display: install properties in class
1026 Install the properties in the class as a normal GObject. Implement
1027 set_property() and get_property() vmethods.
1028 https://bugzilla.gnome.org/show_bug.cgi?id=788058
1030 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1032 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1033 libs: display: remove gst_vaapi_display_properties_init()
1034 Remove gst_vaapi_display_properties_init() since it can be unrolled in
1035 gst_vaapi_display_class_init()
1036 https://bugzilla.gnome.org/show_bug.cgi?id=788058
1038 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1040 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1041 libs: display: remove libgstvaapi_init_once()
1042 It is not required since it can be unrolled in
1043 gst_vaapi_display_class_init()
1044 https://bugzilla.gnome.org/show_bug.cgi?id=788058
1046 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1048 * tests/test-display.c:
1049 tests: test-display: remove display cache tests
1050 Since commit ec3e10f6, display cache was removed. This patch removes
1051 this leftovers in the display test.
1053 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
1055 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1056 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1057 libs: decoder: h264/h265: decode codec data only if opened
1058 Fixes regression introduced by commit 2eb2b26a.
1059 There is a use case when the decoder set the src caps and immediatly
1060 tries to process the media codec_data, this happens before decoder is
1061 even opened, thus priv->parser is not instantiated yet.
1062 https://bugzilla.gnome.org/show_bug.cgi?id=787818
1064 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1066 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1067 * gst-libs/gst/vaapi/gstvaapiencoder.h:
1068 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1069 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1070 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1071 libs: encoder: change mbbrc from uint to enum
1072 Instead of handling the macroblock bitrate control as a integer, this
1073 patch changes it as a enum, which is more self documented in the
1075 https://bugzilla.gnome.org/show_bug.cgi?id=787855
1077 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
1079 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1080 Fix a typo in the prop string for compliance-mode
1082 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1084 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1085 libs: encoder: don't unref properties
1086 This patch fixes a regression introduced in commit 148f867c, since the
1087 props variable is set to object's member variable
1088 encoder->properties. And it is set in the instance initialization,
1089 thus it will not be leaked.
1090 https://bugzilla.gnome.org/show_bug.cgi?id=787733
1092 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
1094 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1095 * gst/vaapi/gstvaapiencode.c:
1096 vaapiencode/libs: encoder: fix leaks of properties
1097 https://bugzilla.gnome.org/show_bug.cgi?id=786321
1099 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1101 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1102 libs: decoder: at update_caps() decode codec_data
1103 When updating the caps in decoder, if the caps has codec_data (avC
1104 format), it has to be parsed to update the state of the decoder.
1105 https://bugzilla.gnome.org/show_bug.cgi?id=786173
1107 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
1109 * gst-libs/gst/vaapi/gstvaapicontext.c:
1110 libs: context: fix wrong counter of the array of attributes
1111 The counter value passed to vaCreateConfig is always +1.
1112 This is a regression caused by commit e42ec3ad.
1113 The present patch fixes wrong counting of the array of attributes.
1114 https://bugzilla.gnome.org/show_bug.cgi?id=787613
1116 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
1118 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1119 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1120 libs: encoder: h265: support I/P/B QP setting seperatedly
1121 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
1123 and set slice_qp_delta for each frame according to the value provided.
1124 https://bugzilla.gnome.org/show_bug.cgi?id=785923
1126 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
1128 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1129 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
1130 libs: encoder: h264: support I/P/B QP setting seperatedly
1131 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
1133 and set slice_qp_delta for each frame according to the value provided.
1134 In addition, remove the limitation of (<= 4) when setting
1136 https://bugzilla.gnome.org/show_bug.cgi?id=785923
1138 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
1140 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1141 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1142 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
1143 Creates new variable for QP for I frame and keep it at configuration and
1144 use this for pic_init_qp and slice_qp_delta setting.
1145 Since changing min qp doesn't make sense, keep min qp as is.
1146 https://bugzilla.gnome.org/show_bug.cgi?id=785923
1148 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
1150 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1151 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1152 libs: encoder: h265: Add mbbrc property
1153 This property supports Macroblock level Bitrate Control as the
1154 following (same as h264 encoder):
1158 https://bugzilla.gnome.org/show_bug.cgi?id=785917
1160 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
1162 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1163 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
1164 libs: encoder: h264: Add mbbrc property
1165 This property supports Macroblock level Bitrate Control as the
1170 https://bugzilla.gnome.org/show_bug.cgi?id=785917
1172 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
1174 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1175 libs: encoder: h265: add multi reference support
1176 This is doing the same as h264 encoder as the following:
1177 Using num_ref_frames provided and the result of the Query
1178 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
1179 and perform encoding with multi reference frames as the following:
1180 1\ The num_ref_frames is being considered as the number of
1181 reference picture list0
1182 2\ Encoder adds 1 reference frame more to the reference picture list1
1183 internally if b-frame encoding.
1184 3\ If num_ref_frames is bigger than the number of refrence frames
1185 supported in the driver, it will be lowered.
1186 Also this patch includes:
1187 - Set num_negative_pics and num_positive_pics according to the number of
1189 - Set delta_poc according to the number of refs.
1190 - Increase max_dec_pic_buffering according to the number of refs
1191 - Change max_num_reorder_pics according to num of bframes
1192 https://bugzilla.gnome.org/show_bug.cgi?id=783804
1194 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
1196 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1197 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1198 libs: encoder: h265: add refs property
1199 Users can provide the number of reference frame by this property,
1200 which is exaclty same as h264.
1201 The value of the property will be considered as the number of
1202 reference picture list0 and will add 1 reference frame more to the
1203 reference picture list1 internally if b-frame encoding.
1204 If the value provided is bigger than the number of refrence frames
1205 supported in the driver, it will be lowered.
1206 The maximum value is aligned to the value of the driver supported now.
1207 https://bugzilla.gnome.org/show_bug.cgi?id=783804
1209 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
1211 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1212 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1213 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
1214 Follows the specification as below:
1215 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
1216 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
1217 element num_ref_idx_l0_active_minus1 is present for P and B slices and
1218 that the syntax element num_ref_idx_l1_active_minus1 is present for B
1220 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
1221 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
1223 https://bugzilla.gnome.org/show_bug.cgi?id=783804
1225 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
1227 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1228 libs: encoder: h265: keep idr_period equal to keyframe period
1229 Remove FIXME code, which makes previous assignation spurious.
1230 This also means to make idr_period equal to keyframe period,
1231 which is same as h264 encoder.
1232 https://bugzilla.gnome.org/show_bug.cgi?id=783804
1234 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1236 * gst/vaapi/gstvaapipluginbase.c:
1237 Request minimum buffer even if need_pool is FALSE
1238 When tee is used, it will not request a pool, but still it wants to
1239 know how many buffers are required.
1240 https://bugzilla.gnome.org/show_bug.cgi?id=730758
1242 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
1244 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
1245 libs: encoder: h264_fei: VA-API 1.0 compat
1246 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
1248 https://bugzilla.gnome.org/show_bug.cgi?id=787322
1249 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
1251 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1253 * gst/vaapi/gstvaapisink.c:
1254 vaapisink: Fix rendering in drm display
1255 Make sure vaapisink create a va surface backed buffer pool and all
1256 required attributes get assigned correctly for drm display type.
1257 This is needed to make the below pipeline working:
1258 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
1259 width=320 height=240 framerate=30/1 ! vaapisink display=drm
1260 https://bugzilla.gnome.org/show_bug.cgi?id=786954
1262 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1264 * tests/Makefile.am:
1265 * tests/test-fei-enc-in.c:
1266 * tests/test-fei-enc-out.c:
1267 FEI: Add test applications to showcase fei use case
1268 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
1270 ./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
1271 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
1273 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
1274 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
1275 from saved files is still not working
1277 Wang, Yi <yi.a.wang@intel.com>
1278 Leilei <leilei.shang@intel.com>
1279 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
1280 xiaominc <xiaomin.chen@intel.com>
1281 Li, Jing B <jing.b.li@intel.com>
1282 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1283 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1285 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1287 * gst/vaapi/Makefile.am:
1288 * gst/vaapi/gstvaapi.c:
1289 * gst/vaapi/gstvaapiencode_h264_fei.c:
1290 * gst/vaapi/gstvaapiencode_h264_fei.h:
1291 FEI: plugin: Add vaapih264feienc element
1292 A new FEI based encoder element for h264 is added: vaapih264feienc
1293 FEI is a an extension to VA-API which is providing low level
1294 advanced control over different stages of encoding.
1295 Extending vaapih264enc with fei support is possible, but it will
1296 make the code too much complicated and will be difficult
1297 to debug. So adding the new encoder element, but keeping
1298 the rank as 0 , vaapih264enc will stay as the primary
1299 encoder for normal use cases.
1300 The vaaih264feienc is mainly useful for customers who want to play
1301 with MotionVectors and Macroblock Predictions. Also user can
1302 do one stage of encoding(eg: only the Motion Vector Calculation)
1303 in software and offload trasformation/entroy-coding etc to
1304 Hardware (which is what PAK module is doing) using FEI element.
1305 vaapih264feienc can work in different modes using fei-mode properoty
1306 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
1307 Important Note: ENC only mode won't produce any encoded data which is expected.
1308 But ENC alwys requires the output of PAK in order to do the inter-prediction
1309 over reconstructed frames.
1310 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
1311 upstream element providing those buffers, PAK only won't work as expected.
1312 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
1313 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
1314 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
1315 separately in vaapih264feienc.
1317 Wang, Yi <yi.a.wang@intel.com>
1318 Leilei <leilei.shang@intel.com>
1319 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
1320 xiaominc <xiaomin.chen@intel.com>
1321 Li, Jing B <jing.b.li@intel.com>
1322 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1323 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1324 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1326 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
1328 * gst/vaapi/gstvaapiencode.c:
1329 * gst/vaapi/gstvaapiencode.h:
1330 FEI: plugin: Add virtual methods to base encode
1331 Two new virtual methods are added to gstvaapiencode.
1332 load_control_data(): load the FEI input buffers set by the upstream elements
1333 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
1334 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1335 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1336 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1338 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
1340 * gst/vaapi/Makefile.am:
1341 * gst/vaapi/gstvaapifeivideometa.c:
1342 * gst/vaapi/gstvaapifeivideometa.h:
1343 FEI: plugin: Add fei specific video meta
1344 GstVaapiFeiVideoMeta holds the below fei codec objects:
1345 GstVaapiEncFeiMbCode
1347 GstVaapiEncFeiMvPredictor
1348 GstVaapiEncFeiMbControl
1350 GstVaapiEncFeiDistortion
1351 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1352 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1353 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1355 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1357 * gst-libs/gst/vaapi/Makefile.am:
1358 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
1359 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
1360 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
1361 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
1362 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
1363 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
1364 FEI: libs: Add FEI encoder
1365 Adding FEI encoder to core lib.
1366 The code is splitted into three session:
1367 1: gstvaapiencoder_h264_fei.{h,c}
1368 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
1369 All the modes ENC, PAK and ENC_PAK are running based
1370 the code in these files.
1371 2: gstvaapifeienc_h264.{h,c}
1372 Abstract implementation intended for ENC (only VME) operation.
1373 3: gstvaapifeipak_h264.{h,c}
1374 Abstrct implementation intended for PAK (only the PAK module)
1375 Right now ENC_PAK, ENC and PAK are running based on code
1376 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
1377 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
1378 needed if user request for ENC+PAK mode operation.
1379 ENC+PAK: Here we need to invoke two sequence of
1380 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
1381 first for the ENC only and the second for PAK only.
1382 Each mode associated with separate context ,but same pool of surfaces are
1383 shared between the modes.
1384 This is more useful once we have custom BRC algorithms.
1386 Wang, Yi <yi.a.wang@intel.com>
1387 Leilei <leilei.shang@intel.com>
1388 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
1389 xiaominc <xiaomin.chen@intel.com>
1390 Li, Jing B <jing.b.li@intel.com>
1391 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1392 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1394 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1396 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
1397 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
1398 FEI: libs: Add fei codec objects to GstVaapiEncPicture
1399 All the codec objects(vaapi buffers) supposed to be
1400 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
1401 for each frame, follow the same design for FEI too.
1402 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1403 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1405 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1407 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
1408 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
1409 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
1410 FEI: libs: Add fei codec objects in codedbufferproxy
1411 MbCode, MV and Distortion buffers (fei codec objects)
1412 can be treated as output of different fei modes based user request.
1413 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
1414 can be dumped as output in ENC_PAK mode for analysis purpose.
1415 So treating them as a part of CodedBufferProxy too.
1416 Here we avoided Qp, MbControl and MvPredictor codec objects since
1417 there is no practical use case of treating them as "output buffers".
1419 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
1420 xiaominc <xiaomin.chen@intel.com>
1421 Leilei <leilei.shang@intel.com>
1422 Li, Jing B <jing.b.li@intel.com>
1423 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1424 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1426 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1428 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
1429 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
1430 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
1431 FEI: libs: Add fei codec objects to surface proxy
1432 Add fei codec objects to surface proxy since handling the
1433 fei buffers(codec objects here) external to gstvaapisurfaceproxy
1434 will make the code complicated. Especially considering the behavior
1435 of encoder where the input frame order from upstream and output
1436 frame order to the downstream are not sequential.
1438 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
1439 xiaominc <xiaomin.chen@intel.com>
1440 Leilei <leilei.shang@intel.com>
1441 Li, Jing B <jing.b.li@intel.com>
1442 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1443 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1445 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1447 * gst-libs/gst/vaapi/Makefile.am:
1448 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
1449 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
1450 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
1451 FEI: Add codec objects for fei usecase
1452 There are 6 new va buffer types, each defined as a specific codec object.
1453 Borrowed the code from gstvaapicodecobject , but made a clear separation
1454 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
1455 feicodecobjects can be shared between elements and also can be accessed
1456 from different thread.
1457 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
1458 object is not shared between elements.So we utilize the already
1459 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
1460 in gstvaapfei_objects_priv.h in order to have a better
1463 -- Probably we need _locked_map() and _unlocked_map()
1464 -- Context can be associated with PreEnc(not just Enoder)
1465 once we have the proper support inplace, but for now we don't have
1466 PreEnc support, so should be safe enough to use GstVaapiEncoder.
1467 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1468 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1470 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1472 * gst-libs/gst/vaapi/Makefile.am:
1473 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
1474 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
1475 FEI: libs: add H264 fei specific utility functions
1476 Added enum/flag type definitions for a number of FEI
1477 input and output parameters.
1478 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
1479 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1480 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1481 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
1482 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1484 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1486 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1487 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1488 FEI: libs: Add virtual method for secondary context creation.
1489 Add a new vitrual method ensure_secondary_context to the
1490 base encoder which is only required for the FEI entrypoint, that too
1491 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
1492 supported directly by libva or driver, but this can be enabled
1493 from the middleware.
1494 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
1495 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
1496 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
1497 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1498 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1499 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1501 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1503 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1504 FEI: libs: make sure the default context creation works as expected.
1505 Current code always guess the entrypoint during init phase in case
1506 if there is no entrypoint already configured in GstVaapiContextInfo.
1507 Make sure FEI Entrypoint is not messing up with this logic.
1508 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1509 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1511 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1513 * gst-libs/gst/vaapi/gstvaapicontext.c:
1514 * gst-libs/gst/vaapi/gstvaapicontext.h:
1515 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1516 FEI: libs: Add FEI functional mode configuration
1517 FEI Entrypoint can work in either one of the 3 different modes:
1518 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
1519 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
1520 functioal mode configuration.
1521 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1522 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1524 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1526 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1527 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1528 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1529 FEI: libs: Add FEI Entrypoint mapping
1530 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
1531 for VAEntrypointFEI.
1532 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1533 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1535 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1538 FEI: Add support for FEI conditional build
1539 FEI(Flexible Encoding Infrastructure) is an extension
1540 to VA API. Define USE_H264_FEI_ENCODER based on
1541 fei header file and required structures availability.
1542 https://bugzilla.gnome.org/show_bug.cgi?id=785712
1543 https://bugzilla.gnome.org/show_bug.cgi?id=784667
1545 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
1547 * gst/vaapi/gstvaapidecode.c:
1548 vaapidecode: force add h264 SVC profiles in caps
1549 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
1551 https://bugzilla.gnome.org/show_bug.cgi?id=732266
1552 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1554 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
1556 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1557 libs: decoder: h264: decode SVC base layer only
1558 Drops non-base NALs when the base-only property is set to TRUE.
1559 This modifies the behavior for MVC streams with base-only too: All the
1560 non-base units are dropped before they are decoded instead of dropping
1561 the non-base frames.
1562 The relevant part from the H264 spec is:
1563 > Decoders that conform to one or more of the profiles specified in
1564 Annex A rather than the profiles specified in Annexes G or H shall
1565 ignore (remove from the bitstream and discard) the contents of all NAL
1566 units with nal_unit_type equal to 14, 15, or 20.
1567 To eliminate side effects from the offending units:
1568 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
1570 - The NAL parsing is skipped and their flags are set to
1571 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
1572 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
1573 use them even if they are flagged to be skipped. Subset SPS's and slice
1574 extension units are not stored there either.
1575 https://bugzilla.gnome.org/show_bug.cgi?id=732266
1576 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1578 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
1580 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1581 libs: decoder: h264: check nalu validity in parser info finalize
1582 https://bugzilla.gnome.org/show_bug.cgi?id=732266
1583 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
1585 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1587 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1588 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1589 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1590 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1591 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1592 libs: encoder: remove unused cast macro
1593 Remove internal macro to cast structure that are already declared
1596 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1598 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
1599 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1600 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
1601 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
1602 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
1603 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
1604 Revert "libs: encoders: remove unused cast macros"
1605 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
1607 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1609 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
1610 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1611 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
1612 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
1613 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
1614 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
1615 libs: encoders: remove unused cast macros
1616 They are only used inside the code, where another macro is defined.
1617 Thus these exported macros have no use.
1619 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1621 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1622 libs: decoder: h264: improve code-style
1623 https://bugzilla.gnome.org/show_bug.cgi?id=786173
1625 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1627 * gst-libs/gst/vaapi/gstvaapicompat.h:
1628 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1629 libs: encoder: h264: handle deprecated enum
1630 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
1631 instead VAEncPackedHeaderRawData should be used.
1632 This patch creates a compatibility symbol,
1633 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
1635 https://bugzilla.gnome.org/show_bug.cgi?id=784398
1637 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1639 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1640 * gst-libs/gst/vaapi/gstvaapiutils.c:
1641 libs: guard deprecated symbols
1642 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
1643 guards the H.264 baseline usage. Consider this commit as a
1644 continuation of commit e0e0a474
1645 https://bugzilla.gnome.org/show_bug.cgi?id=784398
1647 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1651 * meson_options.txt:
1652 Revert "build: check for libva-2.0"
1653 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
1654 https://bugzilla.gnome.org/show_bug.cgi?id=784398
1656 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1658 * gst-libs/gst/vaapi/gstvaapicompat.h:
1659 * gst-libs/gst/vaapi/gstvaapicontext.c:
1660 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1661 libs: macro to get a renamed value in VA-API 1.0
1662 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
1663 renamed one member from roi_value_is_qp_delat to
1664 roi_value_is_qp_delta, which is the correct name.
1665 In order to keep back compatibility a macro has added to access this
1667 https://bugzilla.gnome.org/show_bug.cgi?id=784398
1669 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1671 * gst/vaapi/gstvaapipluginbase.h:
1672 * gst/vaapi/gstvaapipluginutil.c:
1673 plugins: include main gstgl header
1674 Instead including particular gstgl header files in a header file
1675 that doesn't export a gstgl symbol, the main gstgl header file is
1676 included in gstvaapipluginutil.c where the symbols are used.
1677 https://bugzilla.gnome.org/show_bug.cgi?id=786597
1679 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1681 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1682 libs: encoder: h264: fix enum namespace
1684 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
1687 Automatic update of common submodule
1688 From 48a5d85 to 3f4aa96
1690 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1692 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1693 libs: encoder: h264: remove spurious assignation
1695 An assigned value that is never used may represent unnecessary
1696 computation, an incorrect algorithm, or possibly the need for cleanup
1698 ip_period is assigned first to be rewritter inmediatly after. The
1699 first assignation is spurious.
1701 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
1703 * gst/vaapi/gstvaapidecode.c:
1704 vaapidecode: fix mismatch of the return type
1705 https://bugzilla.gnome.org/show_bug.cgi?id=786307
1707 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1709 * gst-libs/gst/vaapi/Makefile.am:
1710 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
1711 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
1712 * gst-libs/gst/vaapi/gstvaapiutils.h:
1713 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
1714 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
1715 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
1716 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
1717 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
1718 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
1719 * gst-libs/gst/vaapi/meson.build:
1720 libs: remove unused header
1721 Since libgstvaapi is not distributed, there is no need to check for
1722 private header inclusion. Thus removing it.
1723 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1725 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1727 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
1728 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
1729 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1730 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
1731 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
1732 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
1733 libs: utils: move gstvaapisurface.h to private headers
1734 Since the utils don't expose API defined in gstvaapisource.h, it is
1735 moved to their private headers where they are used.
1736 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1738 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1740 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
1741 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
1742 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1743 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1744 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
1745 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
1746 libs: utils: remove va.h include in header
1747 And include gstvaapicompat.h in the C files, since the VA-API is not
1748 exposed in the headers.
1749 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1751 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1753 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1754 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1755 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1756 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1757 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1758 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1759 libs: encoder: remove va.h include
1760 Since it is already managed by gstvaapicompat.h
1761 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1763 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1765 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
1766 * gst-libs/gst/vaapi/gstvaapicompat.h:
1767 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
1768 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
1769 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1770 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1771 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1772 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1773 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1774 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1775 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1776 * gst-libs/gst/vaapi/gstvaapifilter.c:
1777 * gst-libs/gst/vaapi/gstvaapiutils.c:
1779 build: consolidate the VA sub API includes
1780 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
1781 since they are all already included in va.h after VA-API 0.38.
1782 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1784 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1788 build: check for va_vpp.h
1789 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
1790 allow us to handle the inclusion of the header better.
1791 https://bugzilla.gnome.org/show_bug.cgi?id=786119
1793 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
1796 meson: don't export symbols by default
1797 Only plugin entry points should be exported.
1799 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1801 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1802 libs: decoder: h265: remove spurious code
1804 Logically dead code: The indicated dead code may have performed some
1805 action; that action will never occur.
1806 By using pointer arithmetic is impossible to get NULL.
1808 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1810 * gst-libs/gst/vaapi/gstvaapicontext.c:
1811 libs: context: use attribs index instead pointers
1813 Out-of-bounds write. This could cause an immediate crash or incorrect
1815 Coverity basically found that it is possible to assign more than 4
1816 attribs in the array.
1817 In my opinion this was produced because code pattern used pointer
1818 arithmetic, which is not readable nor maintainable.
1819 This patch refactors config_create() to use an array index rather than
1820 pointer arithmetic. Also a run-time check for index size was added.
1822 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1824 * gst/vaapi/gstvaapiencode_h264.c:
1825 vaapiencode: h264: remove spurious code
1827 An unsigned value can never be negative, so this test will always
1828 evaluate the same way.
1829 As len is guint32, there is no need to check it if it is equal or
1832 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1834 * gst/vaapi/gstvaapidecode.c:
1835 vaapidecode: initialize variable
1837 The variable will contain an arbitrary value left from earlier
1839 Variable base_only is fetched from base-only property, and it may be
1840 not assigned. It needs to be initialized.
1842 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1844 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1845 libs: windows: wayland: fail if cannot remove last frame
1847 If the function returns an error value, the error value may be
1848 mistaken for a normal value.
1849 If g_atomic_pointer_compare_and_exchange() fails because the frame is
1850 not the last one, the function fails. Thus, logging an info message.
1852 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1854 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
1855 libs: utils: glx: check return value
1857 If the function returns an error value, the error value may be
1858 mistaken for a normal value.
1859 Function sscanf returns the number of assignations done. Validate this
1860 return value with the number of expected variables to match.
1862 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1864 * gst-libs/gst/vaapi/gstvaapiobject.c:
1865 libs: vaapi: object: remove unrequired NULL check
1867 Dereference after null check: Either the check against null is
1868 unnecessary, or there may be a null pointer dereference.
1869 Variable klass has been validated as non-NULL several time before in
1870 gst_vaapi_object_new() function, so there is no need to check it
1873 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1875 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1876 libs: encoder: h265: remove spurious assignation
1878 An assigned value that is never used may represent unnecessary
1879 computation, an incorrect algorithm, or possibly the need for cleanup
1881 ip_period is assigned first to be rewritter inmediatly after. The
1882 first assignation is spurious.
1884 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1886 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1887 libs: encoder: h264: fix copy & paste error
1889 The copied code will not have its intended effect.
1890 This is a bug from commit cdaf15b2, where the intention is to
1891 initialize RefPicList1 while setting RefPicList0.
1893 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1895 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1896 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1897 libs: encoder: h265: fix possible integer overflow
1899 Unintentional integer overflow. The expression's value may not be what
1900 the programmer intended, because the expression is evaluated using a
1901 narrow (i.e. few bits) integer type.
1902 Cast operator to guint64 before computation to avoid narrowing.
1905 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1907 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
1908 libs: decoder: mpeg4: fail if return value is not OK
1910 An assigned value that is never used may represent unnecessary
1911 computation, an incorrect algorithm, or possibly the need for cleanup
1913 In the return value of decode_slice() or
1914 gst_mpeg4_parse_video_packet_header() are not success, thus fail
1915 decode_packet() function.
1917 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1919 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1920 libs: decoder: h265: check for null
1922 Dereference after null check: Either the check against null is
1923 unnecessary, or there may be a null pointer dereference.
1924 While looking for hte lowest poc, according to rest of the code, the
1925 picture in the dbp (decoded picture buffer) might be NULL, thus we
1926 could check for a NULL picture before assigned as found.
1927 Also, split a comma operator because it is considered as a bad
1928 practice because it possible side effects.
1930 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1932 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1933 libs: decoder: h265: untaint loop control variable
1935 Scalars (for example, integers) are not properly
1936 bounds-checked (sanitized) before being used as array or pointer
1937 indexes, loop boundaries, or function arguments are considered as
1939 In this case, num_nals were not checked before used as loop control.
1941 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1943 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1944 libs: decoder: h264: remove unrequired NULL check
1946 Dereference after null check: Either the check against null is
1947 unnecessary, or there may be a null pointer dereference.
1948 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
1949 prev_picture could be NULL, that's why the code did a null check. But,
1950 since commit 52adebe7, the previous reference frames are tracked, thus
1951 there is no need to check null anymore.
1953 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
1955 * gst/vaapi/gstvaapidecode.c:
1956 vaapidecode: fix gst_caps_new_simple call
1957 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1959 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
1961 * gst/vaapi/gstvaapidecode.c:
1962 vaapidecode: force add h264 MVC profiles in caps
1963 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
1965 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1967 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
1969 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1970 libs: decoder: h264: decode MVC base view only
1971 If processed SPS has mvc profile and the configuration is set to
1972 base-only, the frame is drop.
1973 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1975 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
1977 * gst/vaapi/gstvaapidecode.c:
1978 * gst/vaapi/gstvaapidecode_props.c:
1979 vaapidecode: set h264 base-only to decoder
1980 Set the base-only value when property is set and the internal
1981 decoder is already instantiated or when the internal decoder
1983 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1985 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
1987 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1988 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
1989 libs: decoder: h264: add setter for base-only mode
1990 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1992 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
1994 * gst/vaapi/gstvaapidecode_props.c:
1995 * gst/vaapi/gstvaapidecode_props.h:
1996 vaapidecode_props: h264: add base-only property
1997 https://bugzilla.gnome.org/show_bug.cgi?id=732265
1999 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2001 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2002 libs: encoder: h264: missing property enum documentation
2004 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
2006 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2007 libs: encoder: h264: add multi reference support
2008 Using num_ref_frames provided and the result of the Query
2009 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
2010 and perform encoding with multi reference frames as the following:
2011 1\ The num_ref_frames is being considered as the number of
2012 reference picture list0
2013 2\ Encoder adds 1 reference frame more to the reference picture list1
2014 internally if b-frame encoding.
2015 3\ If num_ref_frames is bigger than the number of refrence frames
2016 supported in the driver, it will be lowered.
2017 https://bugzilla.gnome.org/show_bug.cgi?id=783803
2019 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
2021 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2022 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2023 libs: encoder: h264: add refs property
2024 Users can provide the number of reference frame by this property.
2025 The value of the property will be considered as the number of
2026 reference picture list0 and will add 1 reference frame more to the
2027 reference picture list1 internally if b-frame encoding.
2028 If the value provided is bigger than the number of refrence frames
2029 supported in the driver, it will be lowered.
2030 https://bugzilla.gnome.org/show_bug.cgi?id=783803
2032 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
2034 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2035 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2036 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
2037 This function will query VAConfigAttribEncMaxRefFrames to get the
2038 maximum number of reference frames supported in the driver.
2039 This will be used for h264/h265 encoding.
2040 https://bugzilla.gnome.org/show_bug.cgi?id=783803
2042 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2044 * gst/vaapi/gstvaapiencode_h265.c:
2045 vaapiencode: h265: compare an unsigned int if not zero
2046 An unsigned value can never be negative, so this test (greater than
2047 zero) will always evaluate the same way. Thus change it to just if
2050 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2052 * gst/vaapi/gstvaapipluginbase.c:
2053 plugins: check gst_gl_ensure_element_data() return value
2054 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
2055 the return value of gst_gl_ensure_element_data(). The result is a code
2058 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2060 * gst/vaapi/gstvaapipluginutil.c:
2061 plugins: avoid dead code detection
2062 By using #elif macro, the static code analysis would stop to detect
2063 these lines as dead code. Also it is inforced the mutually exclusive
2066 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2068 * gst/vaapi/gstvaapivideobufferpool.c:
2069 vaapivideobufferpool: don't shift by negative since it's undefined
2070 The function g_bit_nth_lsf() may return -1 if the request bit position
2071 is not avaible. Thus, this patch check if the return value is not -1
2072 in order to continue.
2074 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2076 * gst/vaapi/gstvaapisink.c:
2077 vaapisink: fix memory leak
2079 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2081 * gst/vaapi/gstvaapipostprocutil.c:
2082 vaapipostproc: fix memory leaks
2084 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
2086 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2087 libs: display: when appending formats change pointers to indexes
2088 Thus, it fixes an invalid read when YV12 or I420 are not supported by
2090 https://bugzilla.gnome.org/show_bug.cgi?id=785085
2092 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2094 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2095 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2096 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
2097 Added a new property "compliance-mode", which default is the normal
2098 strict compliant mode.
2099 The second mode, "restrict-buf-alloc", is to limit the coded buffer
2100 allocation size to improve performance in some specific Intel
2101 platforms (there is asignificant performance improvement in parallel
2102 encodings). Under this new mode, we use the MinCR field in A.3.1 for
2103 pre-calculating the coded-buffer size.
2104 https://bugzilla.gnome.org/show_bug.cgi?id=784590
2106 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2108 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
2109 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
2110 libs: utils_h264: Extend LevelLimit table with MinCR field
2111 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
2113 https://bugzilla.gnome.org/show_bug.cgi?id=784590
2115 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2117 * gst-libs/gst/vaapi/gstvaapiutils.c:
2118 libs: utils: libva 1.0 changed the logging
2119 The logging mechanism in libva has changed it's functions
2120 signatures. This patch updates that for libva versions >= 1.0
2121 https://bugzilla.gnome.org/show_bug.cgi?id=784398
2123 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2125 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2126 libs: decoder: h264: libva 1.0 deprecated baseline
2127 libva 1.0 deprecated H.264 baseline profile and FMO support
2129 https://bugzilla.gnome.org/show_bug.cgi?id=784398
2131 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2135 * meson_options.txt:
2136 build: check for libva-2.0
2137 Check for libva-2.0 since libva's developers decided to increase the
2138 library's version number.
2139 https://bugzilla.gnome.org/show_bug.cgi?id=784398
2141 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2145 build: blacklist only libva 0.99.0
2146 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
2147 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
2149 https://bugzilla.gnome.org/show_bug.cgi?id=784398
2151 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2153 * gst-libs/gst/vaapi/meson.build:
2154 build: meson: remove gstvaapidisplaycache.c
2155 This is a missing bit of commit ec3e10f6
2157 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2160 configure: do not break configure if gtk+-3.0 devel missing
2161 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
2162 set USE_GTK=0 if gtk+-3.0 is not available.
2163 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
2164 Author: Hyunjun Ko <zzoon@igalia.com>
2165 Date: Wed Jul 5 15:59:43 2017 +0900
2166 tests: elements: add testsuite of vaapi context
2167 ...configure fails if gtk+-3.0 development files are missing.
2168 The "with_gtk" option defaults to "check" in configure.ac
2169 which implies that if it is not explicitly requested then
2170 configure will only enable it if it's available on the system.
2171 However, the PKG_CHECK_MODULES rule that get's activated on
2172 "check" condition did not provide default when gtk+-3.0 devel
2173 packages are not found on the system. Thus, it resulted in
2175 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
2176 https://bugzilla.gnome.org/show_bug.cgi?id=785452
2178 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
2181 * tests/elements/Makefile.am:
2182 * tests/elements/test-vaapicontext.c:
2183 tests: elements: add testsuite of vaapi context
2184 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2185 https://bugzilla.gnome.org/show_bug.cgi?id=766704
2187 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
2189 * gst/vaapi/gstvaapisink.c:
2190 vaapisink: fail if surface display is different
2191 Replacing GstVaapiDisplay during rendering might be hiding problems
2192 at some cases, even though it's safe currently since we use cache
2194 Play safe by failing if this happens.
2195 https://bugzilla.gnome.org/show_bug.cgi?id=766704
2197 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
2199 * gst/vaapi/gstvaapivideocontext.c:
2200 * gst/vaapi/gstvaapivideocontext.h:
2201 videocontext: support "gst.vaapi.app.Display" context
2202 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
2203 and native display of their backend.
2205 - display : pointer of VADisplay
2206 - x11-display : pointer of X11 display (Display *), if they're using.
2207 This patch creates GstVaapidisplayX11 if information provided through
2208 "gst.vaapi.app.Display"
2209 https://bugzilla.gnome.org/show_bug.cgi?id=766704
2211 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
2213 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2214 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2215 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
2216 Implements new API function so that users could create GstVaapiDisplay
2217 with their own VADisplay within a native display as backend.
2218 https://bugzilla.gnome.org/show_bug.cgi?id=766704
2220 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
2222 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2223 libs: display: pass display info when foreign display
2224 When creating a GstVaapiDisplay using a foreign VADisplay, and render
2225 with that display, it also requires native display of the backend.
2226 https://bugzilla.gnome.org/show_bug.cgi?id=766704
2228 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2230 * gst-libs/gst/vaapi/Makefile.am:
2231 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2232 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2233 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
2234 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
2235 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2236 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
2237 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
2238 libs: display: remove cache
2239 Remove a bunch of code that handles the VADisplay cache, since the
2240 context sharing should be doing this correctly.
2241 https://bugzilla.gnome.org/show_bug.cgi?id=747946
2243 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
2245 * tests/elements/Makefile.am:
2246 * tests/elements/test-vaapipostproc.c:
2247 tests: elements: add test for vaapipostproc
2248 https://bugzilla.gnome.org/show_bug.cgi?id=754885
2250 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
2252 * gst/vaapi/gstvaapipostproc.c:
2253 postproc: reconfigure when width or height changes
2254 https://bugzilla.gnome.org/show_bug.cgi?id=754885
2256 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2258 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2259 libs: encoder: vp9: array terminated in zeros
2260 There is a crash when setting ref-pic-mode since the #GEnumValue
2261 array is not terminated with a structured with all memvers being
2263 https://bugzilla.gnome.org/show_bug.cgi?id=785032
2265 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2267 * gst/vaapi/gstvaapiencode_h264.c:
2268 vaapiencode: h264: add plugin documentation
2269 Comment how the profile is set and other parameters.
2271 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
2273 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2274 libs: decoder: h264: push frames as soon as possible
2275 Push frames downstream as soon as possible instead of waiting until
2276 they are ejected from the DPB.
2277 This patch makes the decoder not comply with the H.264 specification,
2278 but it is required for some video cameras.
2279 https://bugzilla.gnome.org/show_bug.cgi?id=762509
2280 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2282 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2284 * gst/vaapi/gstvaapidecode_props.c:
2285 vaapidecode_props: h264: set low-latency in decoder
2286 Set the low-latency property if the H264 decoder is already
2287 instantiated, thus you could change the behavior in run-time.
2288 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2290 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2292 * gst/vaapi/gstvaapidecode.c:
2293 vaapidecode: set h264 low latency to decoder
2294 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2296 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2298 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2299 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2300 libs: decoder: h264: add getter/setter for low latency mode
2301 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2303 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2305 * gst/vaapi/gstvaapidecode_props.c:
2306 * gst/vaapi/gstvaapidecode_props.h:
2307 vaapidecode_props: h264: add low latency property
2308 Adding support for private data.
2309 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2311 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2313 * gst/vaapi/Makefile.am:
2314 * gst/vaapi/gstvaapidecode.c:
2315 * gst/vaapi/gstvaapidecode_props.c:
2316 * gst/vaapi/gstvaapidecode_props.h:
2317 * gst/vaapi/meson.build:
2318 vaapidecode_props: add skeleton for h264 decoder properties
2319 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2321 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2323 * gst/vaapi/gstvaapidecode.c:
2324 vaapidecode: properties callback in decoders map
2325 https://bugzilla.gnome.org/show_bug.cgi?id=783588
2327 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
2330 meson: find python3 via python3 module
2331 https://bugzilla.gnome.org/show_bug.cgi?id=783198
2333 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
2335 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2336 libs: encoder: h264: submit sps in case of IDR picture
2337 If the picture is IDR, also submit a SPS header.
2338 This means when frame number reaches to keyframe-period or an force
2339 key unit event arrives, we insert SPS/PPS again.
2340 https://bugzilla.gnome.org/show_bug.cgi?id=776712
2342 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
2344 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2345 libs: encoder: h264: set the frame as IDR if forced key unit
2346 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
2347 the `frame-lost` event in the case of streaming, such as RTP.
2348 In case of this event, it is needed to start new GOP rather than just
2350 https://bugzilla.gnome.org/show_bug.cgi?id=776712
2352 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2354 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2355 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2356 libs: encoder: h264: insert AU delimiter
2357 Insert an AUD as the first NAL of each encoded frame.
2358 Some applications require Access Unit Delimiter for decoding the
2360 The AU delimeter insertion is done only when the aud parameter is
2361 TRUE (by default is disabled). The reason of this it is because this
2362 header is only available from Intel Gen9 and the VA intel driver
2363 should be 1.8 or superior. Otherwise, the output will be corrupted.
2364 https://bugzilla.gnome.org/show_bug.cgi?id=776712
2365 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
2367 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
2369 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2370 libs: encoder: h264: initialize all elements of view_ids
2371 Currently when num_views is changed by multiview-mode on sink caps, it produces
2372 wrong MVC encoded stream since the array view_ids is not set properly according
2373 to changed num_views.
2374 So this patch initializes all of the array sequentially to handle this case.
2375 Side effect is not going to happen by this patch since this array is being
2376 handled by num_views.
2377 https://bugzilla.gnome.org/show_bug.cgi?id=784321
2379 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
2381 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2382 Revert "encoder: h264: Use high profile by default"
2383 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
2384 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2386 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
2388 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2389 libs: encoder: h264: set profile via capsfilter
2390 Until now, the encoder ignored the profile in src caps and chose one
2391 according with the given parameters. But the encoder must honor the
2392 profile specifed in src caps.
2393 This patch do that, and if the encoder needs to choose the profile,
2394 it will do it by following these rules:
2395 1\ If given parameters are not compatible with given profile, the
2396 encoder will bail out with an error.
2397 2\ The encoder will choose the higher profile indicated in the
2399 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2401 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
2403 * gst/vaapi/gstvaapiencode_h264.c:
2404 vaapiencode: h264: set profile to src caps
2405 So far vaapi encoder does not set profile to src caps. This patch makes it
2406 setting profile to src caps, which is determined by itself.
2407 In addition, if encoder chose different profile, which is not negotiated with
2408 downstream, we should set compatible profile to make negotiation working.
2409 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2411 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2413 * gst/vaapi/gstvaapiencode_h264.c:
2414 * gst/vaapi/gstvaapiencode_h264.h:
2415 vaapiencode: h264: verify if requested profile is supported
2416 Check if the requested profile in source caps, is supported by the
2417 VA driver. If it is not, an info log message is send saying that
2418 another (compatible?) profile will be used.
2419 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2421 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2423 * gst/vaapi/gstvaapiencode_h264.c:
2424 vaapiencode: h264: improve set_config() vmethod
2425 First check if downstream requests ANY caps. If so, byte-stream is
2426 used and the profile will be choose by the encoder. If dowstream
2427 requests EMPTY caps, the negotiation will fail.
2428 Lately, byte-stream and profile are looked in the allowed caps.
2429 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2431 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2433 * gst/vaapi/gstvaapiencode_h264.c:
2434 vaapiencode: h264: check for avc in set_config()
2435 The check for avc stream format was done in the vaapi encoder's
2436 vmethod get_caps(), but that is wrong since it has to be check
2437 when encoder set_format().
2438 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2440 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
2442 * gst/vaapi/gstvaapipostprocutil.c:
2443 vaapipostproc: set multivew-mode flags to src caps
2444 vaapipostproc didn't negotiate the proper multiview caps losing
2445 downstream information.
2446 This patch enables the playing of MVC encoded stream by setting
2447 the proper multiview mode/flags and views to src caps, according
2449 https://bugzilla.gnome.org/show_bug.cgi?id=784320
2451 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
2453 * gst/vaapi/gstvaapipostproc.c:
2454 vaapipostproc: 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>
2458 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2460 * gst/vaapi/gstvaapidecode.c:
2461 vaapidecode: add support for DMABuf caps feature
2462 https://bugzilla.gnome.org/show_bug.cgi?id=755072
2463 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
2465 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2467 * gst/vaapi/gstvaapipluginbase.c:
2468 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
2469 Instantiate all dmabuf allocator for src pad buffer pool if the
2470 src caps ask for memory:DMABuf feature.
2471 https://bugzilla.gnome.org/show_bug.cgi?id=755072
2473 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
2475 * gst/vaapi/gstvaapipluginutil.c:
2476 * gst/vaapi/gstvaapipluginutil.h:
2477 vaapipluginutil: add support for DMABuf caps feature
2478 https://bugzilla.gnome.org/show_bug.cgi?id=755072
2479 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
2480 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
2481 vaapipluginutil: add support for DMABuf caps feature
2483 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2485 * gst/vaapi/gstvaapipluginbase.c:
2486 vaapipluginbase: dmabuf memory map trial for raw caps
2487 Only push dmabuf-based buffers with raw caps if gst_memory_map()
2488 succeeds. Otherwise, use the the vaapi surfaces allocator.
2489 https://bugzilla.gnome.org/show_bug.cgi?id=755072
2490 https://bugzilla.gnome.org/show_bug.cgi?id=774649
2491 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
2493 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2495 * gst/vaapi/gstvaapivideomemory.c:
2496 * gst/vaapi/gstvaapivideomemory.h:
2497 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
2498 This new method checks the specified allocator can create GstMemory that can
2500 https://bugzilla.gnome.org/show_bug.cgi?id=755072
2502 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2504 * gst/vaapi/gstvaapivideobufferpool.c:
2505 vaapivideobufferpool: fix regression with video metas
2506 There is another regression with 7a206923 when setting the video
2507 info for the video meta, it should be the one from the image's
2508 allocator rather from the allocation caps.
2510 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
2511 ! tee ! videoconvert ! videoscale \
2512 ! video/x-raw, width=1920, height=1080 ! xvimagesink
2514 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2516 * gst/vaapi/gstvaapipluginbase.c:
2517 * gst/vaapi/gstvaapivideobufferpool.c:
2518 plugins: update buffer size with the one reported by allocator
2519 There is a regression in 7a206923, since the buffer pool ditches all
2520 the buffers generated by them because the pool config size is
2521 different of the buffer's size.
2523 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
2524 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
2525 --gst-debug=GST_PERFORMANCE:5
2526 The allocator may update the buffer size according to the VA surface
2527 properties. In order to do this, the video info is modified when the
2528 allocator is created, which reports through the allocation info the
2529 updated size, and set it to the pool config.
2531 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
2533 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2534 libs: decoder: h264: initialize active_sps/pps in reset
2535 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
2536 they introduced regression in seek.
2537 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
2538 But since the commits landed, it doesn't drop P-frame and does try to
2539 decode it continuously because active_sps is still alive. See ensure_sps function.
2540 But there are prev_frames and prev_ref_frames reset already, then it
2542 So it's necessary to reset active_sps/pps also in reset method.
2543 https://bugzilla.gnome.org/show_bug.cgi?id=783726
2545 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2547 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2548 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2549 libs: encoder: fix compilation with old versions of libva
2550 There are some symbols that are not used when compiling with old
2551 version of libva and those generates a compilation error.
2552 Original-patch-by: Matt Staples <staples255@gmail.com>
2554 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2556 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2557 libs: encoder: Fix the quality level clamping
2558 Change the hard-coded range of quality-level from {1-8} to {1-7},
2559 since it is the range Intel Open source driver supports.
2560 Also perform the range clamping only if the user provided
2561 quality-level is greater than the max-range suppored by the driver,
2562 because there could be non-intel drivers giving lower value than
2563 the hard-coded max value 7.
2564 https://bugzilla.gnome.org/show_bug.cgi?id=783567
2566 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
2568 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2569 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2570 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2571 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2572 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2573 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2574 libs: encoder: log out the name of the profile
2575 Instead of printing a number, it is more readable to log out, in
2576 case of error, the name of the failing profile.
2578 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
2580 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2581 libs: encoder: h264: changes raw number of profile to macro name of its
2582 Changes raw number of profile to macro name of its to improve readability.
2583 https://bugzilla.gnome.org/show_bug.cgi?id=757941
2585 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2587 * gst/vaapi/gstvaapivideobufferpool.c:
2588 vaapivideobufferpool: remove allocation_vinfo private attribute
2589 There is no need to keep this attribute internally since it is
2590 already managed by the allocator.
2591 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2593 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2595 * gst/vaapi/gstvaapivideobufferpool.c:
2596 vaapivideobufferpool: refactor set_config()
2597 Refactor the set_config() virtual method considering a cleaner
2598 approach to allocator instanciation, if it it not set or if it is
2599 not valid for the pool.
2600 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2602 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2604 * gst/vaapi/gstvaapipluginbase.c:
2605 * gst/vaapi/gstvaapivideobufferpool.c:
2606 * gst/vaapi/gstvaapivideomemory.c:
2607 * gst/vaapi/gstvaapivideomemory.h:
2608 plugins: distinguish allocation and negotiation caps
2609 The vaapi video decoders might have different allocation caps from
2610 the negotiation caps, thus the GstVideoMeta shall use the negotiation
2611 caps, not the allocation caps.
2612 This was done before reusing gst_allocator_get_vaapi_video_info(),
2613 storing there the negotiation caps if they differ from the allocation
2614 ones, but this strategy felt short when the allocator had to be reset
2615 in the vaapi buffer pool, since we need both.
2616 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
2617 gst_allocator_get_vaapi_negotiated_video_info() to store the
2618 negotiated video info in the allocator, and distinguish it from
2619 the allocation video info.
2620 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2622 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2624 * gst/vaapi/gstvaapivideomemory.c:
2625 * gst/vaapi/gstvaapivideomemory.h:
2626 vaapivideomemory: rename qdata quarks and ids
2627 Also the parameter names were renamed to reflect their origin
2629 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2631 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2633 * gst/vaapi/gstvaapivideobufferpool.c:
2634 vaapivideobufferpool: rename local variables
2635 Renamed local video info structure names in set_config() vitual
2636 method. The purpose of their renaming is to clarify the origin
2637 of those structures, whether come from passed caps parameter
2638 (new_allocation_vinfo) or from the configured allocator
2640 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2642 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2644 * gst/vaapi/gstvaapivideobufferpool.c:
2645 vaapivideobufferpool: rename video info structures
2646 Renamed private GstVideoInfo structure video_info to allocation_vinfo
2647 and alloc_info to negotiated_vinfo.
2648 The purpose of these renaming is to clarify the origin and purpose of
2649 these private variables:
2650 video_info (now allocation_vinfo) comes from the bufferpool
2651 configuration. It describes the physical video resolution to be
2652 allocated by the allocator, which may be different from the
2654 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
2655 the pipeline. It represents how the frame is going to be mapped
2656 using the video meta.
2657 In Intel's VA-API backend, the allocation_vinfo resolution is
2658 bigger than the negotiated_info.
2659 https://bugzilla.gnome.org/show_bug.cgi?id=783599
2661 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2663 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2664 libs: encoder: set framerate if bigger than 0/1
2665 Just set the framerate parameter if the framerate numerator and
2666 denominator are bigger than zero.
2667 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
2669 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
2670 https://bugzilla.gnome.org/show_bug.cgi?id=783532
2672 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2674 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2675 libs: encoder: bitrate target percentage calculation
2676 If the rate control is set to Constant Bit Rate (CBR) the target
2677 percentage is 100%, otherwise is 70%
2679 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2681 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2682 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2683 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2684 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2685 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2686 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2687 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
2688 Centralize the common configuration for the Rate Control parameter,
2689 thus can be overloaded per each specific encoder.
2691 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2693 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2694 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2695 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2696 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2697 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2698 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2699 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
2700 Since the framerate VA parameter is calculated equally among all the
2701 encoders, it is better to handle it in the base encoder class.
2703 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2705 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2706 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2707 libs: encoder: vp9: Adds CBR and VBR Encoding support
2708 https://bugzilla.gnome.org/show_bug.cgi?id=766832
2709 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
2710 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2712 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
2714 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2715 libs: encoder: vp8: Adds VBR Encoding support
2716 https://bugzilla.gnome.org/show_bug.cgi?id=778732
2718 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
2720 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2721 libs: encoder: h265: Adds VBR Encoding support
2722 Enables Variable BitRate mode, which does set FrameRate and RateControl
2724 https://bugzilla.gnome.org/show_bug.cgi?id=778732
2726 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
2728 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2729 libs: encoder: Describes more detail about the bitrate property
2730 https://bugzilla.gnome.org/show_bug.cgi?id=778732
2732 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2734 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2735 libs: encoder: h265: add rate control parameter
2736 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2738 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2740 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2741 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2742 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2743 libs: encoder: h264,h265,mpeg2: add framerate parameter
2744 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2746 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2748 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2749 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2750 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2751 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2752 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
2753 Instead of recalculating the miscellaneous buffer parameters for
2754 every buffer, it is only done once, when the encoder is configured.
2755 And for every buffer, the same structures are just copied.
2756 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2758 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2760 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2761 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2762 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2763 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2764 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2765 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2766 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
2767 This is patch pretends to decouple the assignation of the values
2768 in the parameter structures and the VA buffer's parameters setting.
2769 It may lead to some issues since HRD, framerate or controlrate may
2770 not be handled by the specific encoder, but they are set in
2771 the VA buffer's parameters.
2772 I leave as it because this patch is just a transitional patch.
2773 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2775 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2777 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2778 libs: encoder: vp8: fix frame rate calculation
2779 According to the VA documentation:
2780 The framerate is specified as a number of frames per second,
2781 as a fraction. The denominator of the fraction is given in
2782 the top half (the high two bytes) of the framerate field, and
2783 the numerator is given in the bottom half (the low two bytes).
2784 For example, if framerate is set to (100 << 16 | 750), this is
2785 750 / 100, hence 7.5fps.
2786 If the denominator is zero (the high two bytes are both zero)
2787 then it takes the value one instead, so the framerate is just
2788 the integer in the low 2 bytes.
2789 This patch fixes the the framerate calculation in vp8 encoder
2791 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2793 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2795 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2796 libs: encoder: vp8: refactor FrameRate parameter
2797 Move frame-rate parameter from ensure_misc_params() to
2798 ensure_contro_rate_param() since it only has meaning when the
2799 control rate is either VBR or CBR.
2800 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2802 2017-06-02 19:33:36 +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 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2808 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
2809 Move the Hypothetical Reference Decoder (HRD) parameter, from
2810 ensure_misc_params() to ensure_control_rate_params(), since it
2811 only shall be defined when the control rate is either VBR or CBR.
2812 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2814 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2816 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2817 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2818 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2819 libs: encoder: h264,vp8,mpeg2: refactor control rate
2820 Instead of filling the control rate param in ensure_misc_params(),
2821 this patch refactor it out, as a first step to merge the same code
2822 for all the encoders.
2823 https://bugzilla.gnome.org/show_bug.cgi?id=783449
2825 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2827 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2828 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2829 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2830 libs: encoder: h264, h265, mpeg2: remove assert
2831 Remove spurious asserts for misc parameters. If they cannot be
2832 allocated, FALSE is already returned.
2834 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2836 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2837 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2838 libs: encoder: use VA quality level structure
2839 Instead of using a proxy to story the buffer quality level, the
2840 encoder now uses the native VA structure, which is copied to the
2841 dynamically allocated VAEncMiscParameterBuffer.
2842 This approach is computationally less expensive.
2844 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2846 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2847 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
2848 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2849 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2850 libs: standardize the FIXME comment
2851 This is a trivial patch that makes homogeneous the FIXME tag in
2853 For more info about these comment style:
2854 http://wiki.c2.com/?FixmeComment
2856 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
2858 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2859 libs: encoder: vp8: set quality level regardless of rate control mode
2860 https://bugzilla.gnome.org/show_bug.cgi?id=782957
2862 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2864 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2865 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2866 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2867 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2868 libs: encoder: check for maximum number of slices
2869 Right now, H264 and HEVC can set as a property the number of slices to
2870 process. But each driver can set a maximum number of slices, depending
2871 on the supported profile & entry point.
2872 This patch verifies the current num_slices to process against the maximum
2873 permitted by the driver and the media size.
2874 https://bugzilla.gnome.org/show_bug.cgi?id=780955
2876 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2878 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
2879 libs: utils: mark functions as internals
2880 The functions in this header are internal to the library.
2882 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2884 * gst-libs/gst/vaapi/gstvaapicontext.h:
2885 libs: context: add missing documentation
2886 Document the region-of-interest configuration variables.
2888 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2890 * tests/elements/test-vaapisink.c:
2891 tests: elements: vaapisink: handle nav events
2892 The test app can now handle navigation events to rotate the
2895 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2897 * tests/elements/test-vaapisink.c:
2898 tests: elements: clean up vaapisink test
2899 - Use gst_element_send_event() instead of gst_pad_push_event()
2900 - don't zero App structure
2901 - check for pipeline parsing error
2902 - only get vaapisink for property set
2904 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
2906 * gst/vaapi/gstvaapisink.c:
2907 vaapisink: keep handle_events flag except that if user want to set
2908 When state of vaapisink is changed from PLAYING to NULL, the handle_events
2909 flag is set to FALSE, and never recovered, and then event thread is never
2911 So we should allow to set the flag only when users try it.
2912 https://bugzilla.gnome.org/show_bug.cgi?id=782543
2914 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
2916 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2917 libs: window: x11: fix src rect info when using vpp
2918 Since we started using VPP in VaapiWindowX11, we need to care about
2919 the case that src rect and window's size are different.
2920 So, once VPP has converted to other format, we should honor the
2921 size of the VPP's surface as source rect. Otherwise, it is cropped
2922 according the previous size of the source rect.
2923 https://bugzilla.gnome.org/show_bug.cgi?id=782542
2925 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2927 * gst/vaapi/gstvaapipluginutil.c:
2928 plugins: remove par from caps negotiation
2929 https://bugzilla.gnome.org/show_bug.cgi?id=781759
2931 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
2933 * tests/elements/Makefile.am:
2934 * tests/elements/test-roi.c:
2935 tests: elements: add an example for ROI
2936 This implements a pipleint to recognize difference between ROI and non-ROI.
2937 See comments in this code in detail.
2938 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2939 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2941 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
2943 * gst/vaapi/gstvaapiencode.c:
2944 * gst/vaapi/gstvaapiencode_h264.c:
2945 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
2946 Handles new custom event GstVaapiEncoderRegionOfInterest
2947 to enable/disable a ROI region.
2948 Writes a way to use new event to document.
2949 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2950 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2952 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
2954 * tests/simple-encoder.c:
2955 tests: simple-encoder: add an option to set ROI
2956 $ simple-encoder -r inputfile.y4m
2957 And you'll got an output file in H264 with two regions of interest.
2958 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2959 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2961 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
2963 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2964 libs: encoder: h264: set ROI params during encoding
2965 Set ROI params during encoding each frame, which are set via
2966 gst_vaapi_encoder_add_roi ()
2967 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2968 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2970 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
2972 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2973 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2974 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2975 libs: encoder: add api gst_vaapi_encoder_add/del_roi
2976 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
2977 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2979 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
2981 * gst-libs/gst/vaapi/gstvaapicontext.c:
2982 * gst-libs/gst/vaapi/gstvaapicontext.h:
2983 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2984 libs: encoder/context: query region of interest support
2985 Queries if the driver supports "Region of Interest" (ROI) during the config
2987 This attribute conveys whether the driver supports region-of-interest (ROI)
2988 encoding, based on user provided ROI rectangles. The attribute value is
2989 partitioned into fields as defined in the VAConfigAttribValEncROI union.
2990 If ROI encoding is supported, the ROI information is passed to the driver
2991 using VAEncMiscParameterTypeROI.
2992 https://bugzilla.gnome.org/show_bug.cgi?id=768248
2993 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2995 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2997 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
2998 libs: encoder: fix a comment
3000 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3002 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3003 libs: encoder: guard quality level configuration
3004 The quality level appeared in VA-API 0.36. So let's guard its
3007 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3009 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3010 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3011 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3012 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3013 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3014 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3015 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3016 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3017 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3018 encoders: add quality level tuning
3019 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
3020 in gstreamer-vaapi encoders:
3021 The encoding quality could be set through this structure, if the
3022 implementation supports multiple quality levels. The quality level set
3023 through this structure is persistent over the entire coded sequence, or
3024 until a new structure is being sent. The quality level range can be queried
3025 through the VAConfigAttribEncQualityRange attribute. A lower value means
3026 higher quality, and a value of 1 represents the highest quality. The quality
3027 level setting is used as a trade-off between quality and speed/power
3028 consumption, with higher quality corresponds to lower speed and higher power
3030 The quality level is set by the element's parameter "quality-level" with a
3031 hard-coded range of 1 to 8.
3032 Later, when the encoder is configured in run time, just before start
3033 processing, the quality level is scaled to the codec range. If
3034 VAConfigAttribEncQualityRange is not available in the used VA backend, then
3035 the quality level is set to zero, which means "disabled".
3036 All the available codecs now process this parameter if it is available.
3037 https://bugzilla.gnome.org/show_bug.cgi?id=778733
3038 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3040 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
3046 === release 1.12.0 ===
3048 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
3053 * gstreamer-vaapi.doap:
3057 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3059 * gst/vaapi/gstvaapidecodebin.c:
3060 Revert "vaapidecodebin: fix element's classification"
3061 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
3063 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
3067 build: Require libva < 0.99.0
3068 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
3069 fail to configure instead of failing late in the build.
3070 This libva is bundled in msdk[1] and it is ahead in time with
3071 respect the official and open source libva[2]. GStreamer-VAAPI
3072 only supports the latter for now.
3073 1. https://software.intel.com/en-us/media-sdk/download
3074 2. https://github.com/01org/libva/
3075 https://bugzilla.gnome.org/show_bug.cgi?id=781866
3077 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
3079 * gst/vaapi/gstvaapidecodebin.c:
3080 vaapidecodebin: fix element's classification
3081 This bin should have similar classification as decodebin which is
3082 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
3084 Signed-off-by: Victor Toso <victortoso@redhat.com>
3085 https://bugzilla.gnome.org/show_bug.cgi?id=782063
3087 === release 1.11.91 ===
3089 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
3094 * gstreamer-vaapi.doap:
3098 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3100 * gst/vaapi/gstvaapipluginutil.c:
3101 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
3102 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
3104 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3106 * gst/vaapi/gstvaapipluginutil.c:
3107 plugins: reject pixel-aspect-ratio with value 0/1
3108 Do not negotiate a pixel-aspect-ratio of 0/1.
3109 https://bugzilla.gnome.org/show_bug.cgi?id=781759
3111 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3113 * gst/vaapi/gstvaapipostprocutil.c:
3114 * gst/vaapi/gstvaapisink.c:
3115 plugins: handle pixel-aspect-ratio with value 0/1
3116 When downstream negotiates a pixel-aspect-ratio of 0/1, the
3117 calculations for resizing and formatting in vaapipostproc and
3118 vaapisink, respectively, failed, and thus the pipeline.
3119 This patch handles this situation by converting p-a-r of 0/1 to
3120 1/1. This is how other sinks, such as glimagesink, work.
3121 https://bugzilla.gnome.org/show_bug.cgi?id=781759
3123 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
3125 * gst/vaapi/gstvaapivideobufferpool.c:
3126 vaapivideobufferpool: fix leak of created allocator
3127 Since it's created by itself, it should be unref-counted
3128 after gst_buffer_pool_config_set_allocator call. Afterwards,
3129 this allocator will be ref-counted again when assigning to priv->allocator.
3130 https://bugzilla.gnome.org/show_bug.cgi?id=781577
3132 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3134 * gst/vaapi/gstvaapivideobufferpool.c:
3135 vaapivideobufferpool: create or reconfig allocator
3136 Sometimes a video decoder could set different buffer pool
3137 configurations, because their frame size changes. In this case we
3138 did not reconfigure the allocator.
3139 This patch enables this use case, creating a new allocator inside
3140 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
3141 If so, it is just reconfigured, since it doesn't have a surface pool.
3142 https://bugzilla.gnome.org/show_bug.cgi?id=781577
3144 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3146 * tests/elements/Makefile.am:
3147 test: elements: fix compilation flags
3148 This issue was spotten on bug #766704
3149 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
3151 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
3153 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3154 libs: windows: wayland: fix leak if failure of sync
3155 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
3157 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
3158 This surface is not attached to anything at this moment, so we should release
3160 https://bugzilla.gnome.org/show_bug.cgi?id=781695
3162 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
3165 Automatic update of common submodule
3166 From 60aeef6 to 48a5d85
3168 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
3170 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3171 libs: window: wayland: mark frames as done
3172 When the frame listener callbacks 'done', the number of pending
3173 frames are decreased. Nonetheless, there might be occasions where
3174 the buffer listener callbacks 'release', without calling previously
3175 frame's 'done'. This leads to problem with
3176 gst_vaapi_window_wayland_sync() operation.
3177 This patch marks as done those frames which were callbacked, but if
3178 the buffer callbacks 'release' and associated frame is not marked
3179 as 'done' it is so, thus the number of pending frames keeps correct.
3180 https://bugzilla.gnome.org/show_bug.cgi?id=780442
3181 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3183 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3185 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3186 libs: window: wayland: don't sync at destroy()
3187 Don't call gst_vaapi_window_wayland_sync() when destroying the
3188 wayland window instance, since it might lead to a lock at
3189 gst_poll_wait() when more than one instances of vaapisink are
3190 rendering in the same pipeline, this is because they share the
3192 Since now all the frames are freed we don't need to freed the
3193 private last_frame, since its address is invalid now.
3194 https://bugzilla.gnome.org/show_bug.cgi?id=780442
3195 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
3197 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
3199 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3200 libs: window: wayland: null buffer at destroy()
3201 Fix leakage of the last wl buffer.
3202 VAAPI wayland sink needs to send a null buffer while destruction,
3203 it assures that all the wl buffers are released. Otherwise, the last
3204 buffer's callback might be not called, which leads to leak of
3206 This was inspired by gstwaylandsink.
3207 https://bugzilla.gnome.org/show_bug.cgi?id=774029
3208 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3210 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
3212 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3213 libs: window: wayland: rt event queue at destroy()
3214 The proxy object of wl_buffer for the last frame remains in the
3215 wl_map. Even though we call wl_buffer_destroy() in
3216 frame_release_callback(), the proxy object remains without being
3217 removed, since proxy object is deleted when wayland server sees the
3218 delete request and sends 'delete_id' event.
3219 We need to call roundtrip before destroying event_queue so that the
3220 proxy object is removed. Otherwise, it would be mess up as receiving
3221 'delete_id' event from previous play, when playing in the next
3222 va/wayland window with the same wl_display connection.
3223 https://bugzilla.gnome.org/show_bug.cgi?id=773689
3224 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3226 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3228 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3229 libs: window: wayland: cancel read at poll message
3230 Always call wl_display_cancel_read() when an errno is set, but
3231 different to EAGAIN or EINTR.
3232 https://bugzilla.gnome.org/show_bug.cgi?id=780442
3234 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
3236 * gst/vaapi/gstvaapidecodebin.c:
3237 * gst/vaapi/gstvaapidecodebin.h:
3238 vaapidecodebin: skips configuration once it's done
3239 Skips configuration of creation of vpp/capsfilter and link them once it's done.
3240 Otherwise, it always fails when it's trying to re-start playback.
3241 https://bugzilla.gnome.org/show_bug.cgi?id=781573
3243 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3245 * gst/vaapi/gstvaapipostprocutil.c:
3246 vaapipostproc: fixes for memory leaks
3247 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
3248 requires to clear the used GValue to avoid a memory leak.
3250 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3252 * gst/vaapi/gstvaapipluginbase.c:
3253 * gst/vaapi/gstvaapipluginbase.h:
3254 plugins: enable direct rendering with envvar
3255 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
3256 performance in some Intel platforms (Haswell, for example) but in others
3257 (Skylake) is the opposite.
3258 In order to have some control, the patch enables the direct rendering
3259 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
3260 Also it seems to generating some problems with gallium/radeon backend.
3262 https://bugzilla.gnome.org/show_bug.cgi?id=775848
3264 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
3266 * gst/vaapi/gstvaapidecode.c:
3267 vaapidecode: Don't renegotiate on every flush
3268 If caps don't actually change, don't update the
3269 decoder and don't set the do_renego flag forcing
3270 downstream renegotiation
3271 https://bugzilla.gnome.org/show_bug.cgi?id=781142
3273 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
3275 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3276 h264 decoder: Implement reset() for faster flush
3277 Implement a custom reset() function for faster flushes
3278 that just clear the reference pictures but don't reallocate
3279 the DPB or clear out SPS/PPS
3280 https://bugzilla.gnome.org/show_bug.cgi?id=781142
3282 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
3284 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3285 * gst-libs/gst/vaapi/gstvaapidecoder.h:
3286 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3287 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3288 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
3289 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
3290 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
3291 * gst/vaapi/gstvaapidecode.c:
3292 Implement decoder reset on flush, rather than recreating
3293 Clear decoders out on a flush but keep the same instance,
3294 rather than completely recreating them. That avoids
3295 unecessarily freeing and recreating surface pools
3296 and contexts, which can be quite expensive
3297 https://bugzilla.gnome.org/show_bug.cgi?id=781142
3299 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3301 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3302 libs: window: don't add an unused function
3303 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
3304 a function that is never used, thus when compiling we might see
3305 this warning (clang):
3306 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
3307 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
3309 https://bugzilla.gnome.org/show_bug.cgi?id=759533
3311 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3313 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3314 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
3315 libs: window: remove surface_format member
3316 Since we always convert to NV12, there is no need to keep a
3317 variable for that. Let us hard code it.
3318 https://bugzilla.gnome.org/show_bug.cgi?id=759533
3320 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
3322 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3323 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3324 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
3325 libs: window: x11/wayland: use new api for conversion
3326 Since gst_vaapi_window_vpp_convert_internal is created,
3327 GstVaapiWindowX11/Wayland can use it for conversion.
3328 Note that once it chooses to use vpp, it's going to use vpp
3329 until the session is finished.
3330 https://bugzilla.gnome.org/show_bug.cgi?id=759533
3332 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
3334 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3335 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
3336 libs: window: add gst_vaapi_window_vpp_convert_internal()
3337 If a backend doesn't support specific format, we can use vpp for conversion
3338 and make it playing.
3339 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
3340 so that GstVaapiWindowX11 could use it.
3341 https://bugzilla.gnome.org/show_bug.cgi?id=759533
3343 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
3345 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3346 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
3347 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3348 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3349 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
3350 libs: window: x11/wayland: chaining up to GstVaapiWindow
3351 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
3352 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
3353 https://bugzilla.gnome.org/show_bug.cgi?id=759533
3355 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
3357 * gst/vaapi/gstvaapipluginutil.c:
3358 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
3359 When these definitions are false, they are undef in the
3360 preprocessor, not a defined value of 0. When they are unset the
3362 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
3363 https://bugzilla.gnome.org/show_bug.cgi?id=780948
3365 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
3368 Automatic update of common submodule
3369 From 39ac2f5 to 60aeef6
3371 === release 1.11.90 ===
3373 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
3378 * gstreamer-vaapi.doap:
3382 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3384 * gst/vaapi/gstvaapiencode_h265.c:
3385 vaapiencode: h265: add main-10 in caps template
3386 This patch adds h265's main-10 profile in encoder src caps template.
3387 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3389 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3391 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3392 libs: encoder: h265: chroma and luma with format
3393 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
3394 parameter buffer, shall be the color format bit depth minus 8, 10-8
3395 which is 2. Also for bit_depth_chroma_minus8.
3396 This patch gets the negotiated sink caps format and queries its
3397 luma's depth and uses that value to fill the mentioned parameters.
3398 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3400 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3402 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3403 libs: encoder: admit YUV420_10BPP as valid chroma
3404 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
3406 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3408 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3410 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3411 libs: encoder: h265: ensures profile given format
3412 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
3413 configured color format is P010_10LE.
3414 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
3415 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3417 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3419 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3420 libs: encode: merge all possible surface formats
3421 When the function gst_vaapi_encoder_get_surface_formats() was added
3422 it was under the assumption that any VA profile of the specific codec
3423 supported the same format colors. But it is not, for example the
3424 profiles that support 10bit formats.
3425 In other words, different VA profiles of a same codec may support
3426 different color formats in their upload surfaces.
3427 In order to expose all the possible color formats, if no profile is
3428 specified via source caps, or if the encoder doesn't have yet a
3429 context, all the possible VA profiles for the specific codec are
3430 iterated and their color formats are merged.
3431 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3433 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3435 * gst/vaapi/gstvaapiencode.c:
3436 * gst/vaapi/gstvaapiencode.h:
3437 * gst/vaapi/gstvaapiencode_h264.c:
3438 * gst/vaapi/gstvaapiencode_h265.c:
3439 vaapiencode: add get_profile() vmethod
3440 This new virtual method, get_profile(), if implemented by specific
3441 encoders, will return the VA profile potentially determined by the
3443 Also it is implemented by h264 and h265 encoders, which are the main
3444 users of this vmethod.
3445 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3447 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3449 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3450 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3451 * gst/vaapi/gstvaapiencode.c:
3452 libs: encoder: pass profile to get_surface_formats()
3453 In order to get the supported surface formats within a specific
3454 profile this patch adds the GstVaapiProfile as property to
3455 gst_vaapi_encoder_get_surface_formats().
3456 Currently the extracted formats are only those related with the
3457 default profile of the element's codec.
3458 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3460 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3462 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3463 libs: encoder: dummy context for get_surface_formats()
3464 Instead of creating (if it doesn't exist, yet) the encoder's context
3465 the method gst_vaapi_encoder_get_surface_formats() now it creates
3466 dummy contexts, unless the encoder has it already created.
3467 The purpose of this is to avoid setting a encoder's context with a
3469 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3471 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3473 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3474 libs: encoder: refactor init_context_info()
3475 In order to generate vaapi contexts iterative, the function
3476 init_context_info() is refactored to pass, as parameters the
3477 GstVaapiContextInfo and the GstVaapiProfile.
3478 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3480 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3482 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3483 * gst-libs/gst/vaapi/gstvaapiutils.c:
3484 * gst-libs/gst/vaapi/gstvaapiutils.h:
3485 libs: encoder: initialize chroma_type
3486 Instead of initialize the chroma_type with a undefined value, which
3487 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
3488 this patch queries the VA config, given the received
3489 GstVaapiContextInfo's parameters, and gets the first response.
3490 In order to get the GstVaapiChromaType value, also it was needed to
3491 add a new utility function: to_GstVaapiChromaType(), which, given a
3492 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
3493 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3495 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3497 * gst/vaapi/gstvaapiencode.c:
3498 vaapiencode: enhance logs of negotiated caps
3499 https://bugzilla.gnome.org/show_bug.cgi?id=771291
3501 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
3503 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3504 libs: encoder: vp9: Fix initialization of ref_list
3505 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
3506 'memset' used with length equal to number of elements without
3507 multiplication by element size [-Werror=memset-elt-size]
3508 https://bugzilla.gnome.org/show_bug.cgi?id=780947
3510 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3512 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3513 encoder: h264: Fix Backward ReferencePicture flag setting
3514 This is a regression introduced by e829b62 which
3515 override the reference flags and caused issues with
3516 latest intel-vaapi-driver.
3518 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3520 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3521 libs: encoder: h265: fix code style
3522 Trivial patch to remove a double ';' as end of instruction.
3524 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3526 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3527 encoder: h264: Fix B frame encoding artifacts
3528 The current implementation is updating the POC values only
3529 in Slice parameter Buffer.But we are not filling the
3530 picture order count and reference flags in VAPictureH264
3531 while populating VA Picture/Slice structures.The latest
3532 intel-vaapi-driver is directly accessing the above fields
3533 from VAPicutreH264 provided as RefPicLists, which resulted
3534 some wrong maths and prediction errors in driver.
3535 https://bugzilla.gnome.org/show_bug.cgi?id=780620
3537 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3539 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3540 libs: encoder: h265: remove unused macro definition
3541 Since the h265 encoder doesn't use GValueArray, there is no need to
3542 disable the Glib deprecation warnings, thus removing the macro
3545 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3547 * gst/vaapi/gstvaapidecode.c:
3548 * gst/vaapi/gstvaapiencode.c:
3549 * gst/vaapi/gstvaapipostproc.c:
3550 * gst/vaapi/gstvaapisink.c:
3551 plugins: when debug disabled, default category is NULL
3552 As in gstreamer-vaapi a common base class is used, the specific
3553 default category is passed to the base-plugin initializator, thus
3554 the log messages are categorized with the used plugin.
3555 Nonetheless, when the gst-debug is disabled in compilation time,
3556 it is needed to pass NULL to the base-plugin initializator. This
3558 https://bugzilla.gnome.org/show_bug.cgi?id=780302
3560 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
3562 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3563 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3564 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
3565 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
3566 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
3567 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
3568 unit length and data to a bitwriter.
3569 Note that this helper function applies EPB (Emulation Prevention
3570 Bytes), since otherwise produced codec_data might be broken when
3571 decoder/parser considering EPB, starts parsing.
3572 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
3573 describes the emulation_prevention_three_byte.
3574 https://bugzilla.gnome.org/show_bug.cgi?id=778750
3575 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3577 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
3579 * gst-libs/gst/vaapi/Makefile.am:
3580 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3581 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3582 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
3583 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
3584 * gst-libs/gst/vaapi/meson.build:
3585 libs: utils: h26x: create vaapiutils_h26x
3586 Since there is duplicated code in h264/265 encoder, we could
3587 refactor it to avoid duplicated code.
3588 https://bugzilla.gnome.org/show_bug.cgi?id=778750
3589 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3591 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
3593 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3594 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3595 libs: encoder: h264/5: fix wrong return value
3596 https://bugzilla.gnome.org/show_bug.cgi?id=778750
3598 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
3600 * gst/vaapi/gstvaapiencode_h264.c:
3601 * gst/vaapi/gstvaapiencode_h265.c:
3602 docs: h264/h265: put parser to the example pipeline
3603 https://bugzilla.gnome.org/show_bug.cgi?id=778749
3605 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
3607 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3608 libs: encoder: h265: fix reserved length of bits
3609 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
3610 https://bugzilla.gnome.org/show_bug.cgi?id=778749
3612 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
3614 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
3615 * tests/test-display.c:
3616 O_CLOEXEC needs _GNU_SOURCE defined
3618 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
3619 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
3620 2.12, one can obtain their definitions by defining either
3621 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
3622 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
3623 2.11 and earlier, one obtains the definitions by defining
3625 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
3626 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
3627 gstreamer-vaapi with the uClibc C library.
3628 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
3629 https://bugzilla.gnome.org/show_bug.cgi?id=779953
3631 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3634 README: fix "Sources" section
3635 Update the URL where the release source tarballs can be downloaded.
3637 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
3640 README: fix "Reporting bugs" section
3641 The "Reporting bugs" section gives
3642 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
3643 link to report a bug, but this link says "Sorry, entering a bug into the
3644 product gstreamer-vaapi has been disabled.".
3645 This commit fixes the URL to point to the proper location, and also
3646 removes the following paragraph that is no longer correct.
3647 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
3648 https://bugzilla.gnome.org/show_bug.cgi?id=779954
3650 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3652 * gst/vaapi/gstvaapipluginutil.c:
3653 plugins: retry to create the VA display
3654 Particularly in GNOME Wayland, the negotiated or created GL context
3655 defines a GLX environment, but VAAPI fails to create a GLX VA
3656 display because there is no a DRI2 connection.
3657 This patch retries to create the VA display if VA cannot create one
3658 with the GL context parameters. Now using the old list of display
3660 This should also work in the case of systems with two GPU, when the
3661 non-VAAPI has the graphics environment, and the VAAPI-enabled one
3662 shall work headless.
3663 https://bugzilla.gnome.org/show_bug.cgi?id=772838
3665 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
3667 * gst/vaapi/gstvaapipostproc.c:
3668 vaapipostproc: texture upload if driver supports GL
3669 Removes GstVideoGLTextureUploadMeta caps feature if the driver
3670 doesn't support opengl.
3671 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3672 https://bugzilla.gnome.org/show_bug.cgi?id=772838
3674 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3676 * gst/vaapi/gstvaapidecode.c:
3677 vaapidecode: texture upload if driver supports GL
3678 When the allowed source pad caps are generated, the GLTextureUpload caps are
3679 only inserted if the driver support OpenGL.
3680 https://bugzilla.gnome.org/show_bug.cgi?id=772838
3682 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3685 configure: Add missing compiler flags
3686 The AC_CHECK_HEADERS macro was failing to locate some headers, in
3687 particular the va_enc_* headers due to missing compiler flags.
3688 https://bugzilla.gnome.org/show_bug.cgi?id=779101
3689 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3691 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
3693 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3694 libs: window: wayland: handle more VAStatus to use vpp
3695 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
3696 we should consider more returned VAStatus to use vpp.
3697 https://bugzilla.gnome.org/show_bug.cgi?id=779400
3699 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
3701 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3702 libs: encoder: ensure profile when context initialization
3703 We can't be sure that encoder's profile is assgined already or not
3704 at context initialization.
3705 https://bugzilla.gnome.org/show_bug.cgi?id=779120
3707 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
3709 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3710 libs: encoder: set rate control info only when query succeed
3711 Currently, it set rate control information even when query fails.
3712 In addition, it doesn't update any more since the flag
3713 got_rate_control_mask is set to TRUE.
3714 https://bugzilla.gnome.org/show_bug.cgi?id=779120
3716 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
3719 meson: Update version
3721 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
3726 === release 1.11.2 ===
3728 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
3733 * gstreamer-vaapi.doap:
3736 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3738 * gst/vaapi/gstvaapiencode.c:
3739 vaapiencode: merge tags for downstream's info
3740 Add encoder and codec name and the bitrate into the output for
3741 informational purposes. Some muxers or application use it as
3743 https://bugzilla.gnome.org/show_bug.cgi?id=778781
3745 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3747 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3748 libs: encoder: caps can change at any time
3749 The encoder should be able to change its caps even it is already
3750 processing a stream.
3751 This is suppose to happen after a flush so the codedbuf_queue should
3753 https://bugzilla.gnome.org/show_bug.cgi?id=775490
3755 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3757 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3758 libs: encoder: h265: bail if nal unit type fails
3759 Bail out if the NAL unit type is not recognized.
3760 https://bugzilla.gnome.org/show_bug.cgi?id=778782
3762 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3764 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3765 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3766 libs: decoder: h264,h265 avoid uninitialized variable
3767 Configuring GCC to verify possible usage of uninitialized variables,
3768 shows that found_index might be used without previous assignation.
3769 This patch assigns a initial value to found_index, also avoid a
3770 branching when returning the result value.
3771 https://bugzilla.gnome.org/show_bug.cgi?id=778782
3773 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
3776 * gst-libs/gst/vaapi/Makefile.am:
3777 * gst/vaapi/gstvaapidecode.c:
3778 * gst/vaapi/gstvaapidecodebin.c:
3779 build: rename USE_HEVC_DECODER to USE_H265_DECODER
3780 Rename to be consistent with H.264 and also H.265 encoder. The
3781 meson build assumed this was already consistently named, and so
3782 previously was not able to actually build the H.265 decoder.
3783 https://bugzilla.gnome.org/show_bug.cgi?id=778576
3785 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
3788 meson: gstreamer-codecparsers is a required dep
3789 Just like in configure.ac.
3791 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
3794 meson: dist meson build files
3795 Ship meson build files in tarballs, so people who use tarballs
3796 in their builds can start playing with meson already.
3798 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
3800 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3801 libs: encoder: vp8: add CBR encoding mode
3802 This patch enables the Constant BitRate encoding mode in VP8 encoder.
3803 Basically it adds the configuration parameters required by libva to
3805 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3806 https://bugzilla.gnome.org/show_bug.cgi?id=749950
3808 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
3810 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3811 libs: encoder: vp8: fix bitrate calculation
3812 Base encoder's unit of bitrate is in Kbps. We should honor it so
3813 we use the value of bitrate in VA, in which is expressed in bps.
3814 https://bugzilla.gnome.org/show_bug.cgi?id=749950
3816 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3818 * gst/vaapi/gstvaapipluginbase.c:
3819 plugins: fix build when gcc
3820 In commit a8e482f9 we added a function without parameters, but gcc
3823 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
3825 * gst-libs/gst/base/meson.build:
3826 * gst-libs/gst/meson.build:
3827 * gst-libs/gst/vaapi/meson.build:
3828 * gst-libs/meson.build:
3830 * gst/vaapi/meson.build:
3832 * meson_options.txt:
3833 vaapi: add meson build
3834 https://bugzilla.gnome.org/show_bug.cgi?id=778250
3836 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
3839 * gst-libs/gst/vaapi/Makefile.am:
3840 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3841 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
3842 make: remove gstvaapiversion.h generation
3843 https://bugzilla.gnome.org/show_bug.cgi?id=778250
3845 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
3847 * gst/vaapi/gstvaapipluginbase.c:
3848 plugins: use linear storage if not the same device
3849 When dmabuf is negotiated downstream and decoding and rendering are
3850 not done on the same device, the layout has to be linear in order for
3851 the memory to be shared accross devices, since each device has its
3852 own way to do tiling.
3853 Right now this code is rather just a to-do comment, since we are not
3854 fetching the device ids.
3855 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3857 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
3859 * gst-libs/gst/vaapi/gstvaapiutils.c:
3860 libs: utils: add HEVC profiles representation
3861 https://bugzilla.gnome.org/show_bug.cgi?id=778318
3863 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
3865 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3866 libs: decoder: h264: reduce frame number of gaps
3867 Reduce frame num gaps so that we don't have to create unnecessary
3868 dummy pictures, just throw them away.
3869 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3870 https://bugzilla.gnome.org/show_bug.cgi?id=777506
3872 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3874 * gst/vaapi/gstvaapidecode.c:
3875 vaapidecode: don't GLTextureUpload if dmabuf
3876 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
3877 element can handle dmabuf-based buffers, avoiding its negotiation.
3879 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
3881 * gst/vaapi/gstvaapidecode.c:
3882 vaapidecode: make pool to export decoder's surface
3883 Use new -base API gst_video_decoder_allocate_output_frame_full() to
3884 pass the current proxy/surface to the pool.
3885 The pool will will export thins given surface instead of exporting a
3886 brand new surface that will never be filled in with meaningfull data.
3887 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3889 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3891 * gst/vaapi/gstvaapipluginbase.c:
3892 plugins: decoder can negotiate dmabuf downstream
3894 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
3896 * gst/vaapi/gstvaapivideobufferpool.c:
3897 vaapivideobufferpool: override acquire_buffer()
3898 Overriding the vmethod acquire_buffer() it is possible to attach the
3899 right GstMemory to the current acquired buffer.
3900 As a matter of fact, this acquired buffer may contain any instantiated
3901 GstFdmemory, since this buffer have been popped out from the buffer
3902 pool, which is a FIFO queue. So there is no garantee that this buffer
3903 matches with the current processed surface. Evenmore, the VA driver
3904 might not use a FIFO queue. Therefore, it is no way to guess on the
3906 In short, acquire_buffer on the VA driver and on the buffer pool return
3907 none matching data, we have to manually attach the right GstFdMemory to
3908 the acquired GstBuffer. The right GstMemory is the one associated with
3909 the current surface.
3910 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3912 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
3914 * gst/vaapi/gstvaapivideobufferpool.c:
3915 * gst/vaapi/gstvaapivideomemory.c:
3916 vaapivideomemory: export surface if it is provided
3917 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
3918 had to create that surface. Now it can also export an already provided
3919 surface. It is useful to export decoder's surfaces (from VA context).
3920 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3922 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
3924 * gst/vaapi/gstvaapivideobufferpool.h:
3925 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
3926 Useful to let the pool know the current surface proxy when calling
3927 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
3928 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3930 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
3932 * gst-libs/gst/vaapi/gstvaapisurface.c:
3933 * gst-libs/gst/vaapi/gstvaapisurface.h:
3934 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
3935 These functions are useful when a dmabuf-based memory is instantiated in
3936 order to relate the generated buffer @proxy with the processed @surface.
3937 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3939 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
3941 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3942 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
3943 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3944 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
3945 This patch adds a GstMemory as a variable member of the buffer proxy,
3946 because we will need to associate the buffer proxy with the memory
3947 which exposes it. Later, we will know which memory, in the video buffer
3948 pool, is attached to the processed surface.
3949 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3951 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
3953 * gst/vaapi/gstvaapipostproc.c:
3954 vaapipostproc: don't GLTextureUpload if dmabuf
3955 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
3956 element can handle dmabuf-based buffers, avoiding its negotiation.
3957 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
3958 feature if can dmabuf"
3959 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3961 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3963 * gst/vaapi/gstvaapipluginbase.c:
3964 plugins: enable DMAbuf allocator to downstream
3965 If the negotiated caps are raw caps and downstream supports the
3966 EGL_EXT_image_dma_buf_import extension, then the created allocator
3967 is the DMAbuf, configured to downstream.
3968 At this moment, the only element which can push dmabuf-based buffers
3969 to downstream, is vaapipostproc.
3971 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
3973 * gst/vaapi/gstvaapipluginbase.c:
3974 * gst/vaapi/gstvaapipluginbase.h:
3975 plugins: check if negotiate dmabuf with downstream
3976 In order to enable, in the future, dmabuf-based buffers, the vaapi base
3977 plugin needs to check if downstream can import dmabuf buffers.
3978 This patch checks if downstream can handle dmabuf, by introspecting the
3979 shared GL context. If the GL context is EGL/GLES2 and have the extension
3980 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
3981 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
3983 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
3985 * gst/vaapi/gstvaapivideomemory.c:
3986 vaapivideomemory: release proxy's data if downstream
3987 The surface created for downstream is going to be filled by VAAPI
3988 elements. So, the driver needs write access on that surface.
3989 This patch releases the derived image held by the proxy, thus the
3990 surface is unmarked as busy.
3991 This is how it has to be done as discussed on libva mailing list.
3992 https://bugzilla.gnome.org/show_bug.cgi?id=755072
3994 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
3996 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3997 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
3998 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
3999 Adds an API to request the user's data release in the buffer proxy.
4000 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4002 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
4004 * gst/vaapi/gstvaapipluginbase.c:
4005 * gst/vaapi/gstvaapivideomemory.c:
4006 * gst/vaapi/gstvaapivideomemory.h:
4007 vaapivideomemory: add direction to dmabuf allocator
4008 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
4009 we later could do different thing when the allocated memory is for
4010 upstream or dowstream, as required by VA-API.
4011 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4013 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
4015 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4016 libs: utils: return NULL if failed to get surface formats
4017 Thus, when generating the allowed caps, the element will throw a
4018 warning and it will use its caps template.
4019 This behavior might be a bug in the VA driver.
4020 https://bugzilla.gnome.org/show_bug.cgi?id=775490
4022 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4024 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4025 Revert "vaapidisplay: mark X11 display as compatible with EGL"
4026 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
4028 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
4030 * gst/vaapi/gstvaapipostproc.c:
4031 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
4032 A value of width/height property should be set to out caps,
4033 if negotiation had been going properly.
4034 So we can use srcpad_info when making decision of scaling.
4035 https://bugzilla.gnome.org/show_bug.cgi?id=778010
4037 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4039 * gst/vaapi/gstvaapidecode.c:
4040 * gst/vaapi/gstvaapiencode.c:
4041 * gst/vaapi/gstvaapipluginutil.c:
4042 * gst/vaapi/gstvaapipluginutil.h:
4043 * gst/vaapi/gstvaapipostproc.c:
4044 * gst/vaapi/gstvaapisink.c:
4045 plugins: handle GL params through context query
4046 If the element instantiated the GL display and context, they should
4047 handle them too through the context query.
4048 https://bugzilla.gnome.org/show_bug.cgi?id=777409
4050 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4052 * gst/vaapi/gstvaapipluginbase.c:
4053 * gst/vaapi/gstvaapipluginbase.h:
4054 * gst/vaapi/gstvaapipluginutil.c:
4055 plugins: create a GL context on certain conditions
4056 If a GstVaapiDisplay is not found in the GStreamer context sharing,
4057 then VAAPI elements look for a local GstGLContext in gst context
4058 sharing mechanism ('gst.gl.local.context').
4059 If this GstGLContext not found either then, only the VAAPI decoders
4060 and the VAAPI post-processor, will try to instantiate a new
4062 If a valid GstGLContext is received, then a new GstVaapiDisplay will
4063 be instantiated with the platform, API and windowing specified by the
4064 instantiated GstGLContext.
4065 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
4066 https://bugzilla.gnome.org/show_bug.cgi?id=777409
4068 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4070 * gst/vaapi/gstvaapivideocontext.c:
4071 vaapivideocontext: context type can be rejected
4072 Instead of calling g_return_val_if_fail() to check the context type, we
4073 should use a normal conditional, since it is possible that other context types
4074 can arrive and try to be assigned. Otherwise a critical log message is
4076 This happens when we use playbin3 with vaapipostproc as video-filter.
4077 https://bugzilla.gnome.org/show_bug.cgi?id=777409
4079 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4081 * gst/vaapi/gstvaapipostprocutil.c:
4082 vaapipostproc: use sink caps par if not requested
4083 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
4085 https://bugzilla.gnome.org/show_bug.cgi?id=777395
4087 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4089 * gst/vaapi/gstvaapipostproc.c:
4090 * gst/vaapi/gstvaapipostprocutil.c:
4091 vaapipostproc: set interlace mode
4092 if the vaapipostproc is configured to not do deinterlacing, the
4093 interlace-mode in the src caps should be the same as the input caps.
4094 https://bugzilla.gnome.org/show_bug.cgi?id=777395
4096 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4098 * gst/vaapi/gstvaapisink.c:
4099 vaapisink: fix gcc compiler warning
4100 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
4102 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4104 * gst/vaapi/gstvaapisink.c:
4105 vaapisink: don't use member variable outside lock
4106 Thus a race condition segfault is avoided.
4107 Original-patch-by: Matt Staples <staples255@gmail.com>
4108 https://bugzilla.gnome.org/show_bug.cgi?id=777146
4110 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4112 * gst/vaapi/gstvaapipluginbase.c:
4113 * gst/vaapi/gstvaapipostproc.c:
4114 plugins: avoid log flood when activating pool
4115 Every time a new buffer is allocated, the pool is activated. This
4116 doesn't impact in performance since gst_buffer_pool_set_active()
4117 checks the current state of the pool. Nonetheless it logs out a
4118 message if the state is the same, and it floods the logging subsystem
4120 To avoid this log flooding first the pool state is checked before
4123 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4125 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4126 * gst-libs/gst/vaapi/gstvaapidecoder.h:
4127 * gst/vaapi/gstvaapidecode.c:
4128 * gst/vaapi/gstvaapidecode.h:
4129 vaapidecode: update internal decoder sink caps
4130 When a new sink caps arrive the internal decoder state is updated
4131 and, if it is, request a downstream renegotiation.
4132 Previously, when new caps arrived the whole decoder where destroyed
4133 and recreated. Now, if the caps are compatible or has the same codec,
4134 the internal decoder is kept, but a downstream renegotiation is
4136 https://bugzilla.gnome.org/show_bug.cgi?id=776979
4138 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
4143 === release 1.11.1 ===
4145 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
4150 * gstreamer-vaapi.doap:
4153 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4155 * gst-libs/gst/vaapi/gstvaapiutils.c:
4156 vaapi: bump ifdef to API 0.40.0 for log redirect
4157 vaSetInfoCallback() is not released yet. It is going to appear in
4160 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
4162 * gst-libs/gst/vaapi/gstvaapiutils.c:
4163 vaapiutils: Fix compilation with latest and previous libva releases
4164 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
4167 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4169 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4170 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
4171 * gst-libs/gst/vaapi/gstvaapiutils.c:
4172 * gst-libs/gst/vaapi/gstvaapiutils.h:
4173 libs: display: redirect logging at initialize
4174 Redirect libva's logs to GStreamer logging mechanism. This is
4175 particularly useful when VA is initialized, because it always logs
4176 out the drivers details.
4177 In order to achieve this a new helper function was added as a wrapper
4178 for the vaInitialize() function.
4179 https://bugzilla.gnome.org/show_bug.cgi?id=777115
4181 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
4183 * gst/vaapi/gstvaapipluginbase.c:
4184 plugins: provide at least two buffers in sink pool
4185 Adds two buffers as the default value of minimum buffer.
4186 This would be used when creating and proposing vaapi bufferpool for
4187 sink pad, hence the upstream element will keep, at least, these two
4189 https://bugzilla.gnome.org/show_bug.cgi?id=775203
4190 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4192 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
4194 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4195 libs: decoder: h264: don't update cloned attributes
4196 If the frame is a cloned picture, its PTS comes from its parent
4197 picture. In addition, the base decoder doesn't set a valid PTS to
4198 the frame corresponding to the cloned picture.
4199 https://bugzilla.gnome.org/show_bug.cgi?id=774254
4201 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4203 * gst/vaapi/gstvaapivideomemory.c:
4204 vaapivideomemory: check for display
4205 This patch fixes the check of display, rather than check for the
4206 meta, which it is known it exists.
4208 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4210 * gst/vaapi/gstvaapivideomemory.c:
4211 * gst/vaapi/gstvaapivideomemory.h:
4212 vaapivideomemory: rename dmabuf allocator parameters
4213 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
4214 'surface_alloc_flags' respectively. The purpose of this change is
4215 to auto-document those parameters.
4216 Also, aligned to this patch, the local 'alloc_info' variable was
4217 renamed as 'surface_info', because it stores the possible surface's
4218 video info, not the allocate one.
4220 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4222 * gst/vaapi/gstvaapivideomemory.c:
4223 * gst/vaapi/gstvaapivideomemory.h:
4224 vaapivideomemory: rename vip to alloc_info parameter
4225 In order to auto-document the code, this patch renames the 'vip'
4226 parameter in the functions related to gst_vaapi_video_allocator_new ()
4227 to 'alloc_info', since it declares the allocation video info from
4228 the vaapi buffer pool.
4230 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4232 * gst/vaapi/gstvaapivideomemory.c:
4233 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
4234 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
4235 the video format string.
4237 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4239 * gst/vaapi/gstvaapivideomemory.c:
4240 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
4241 gst_vaapi_surface_new_with_format() is a wrapper for
4242 gst_vaapi_surface_new_full (). In this case, the former is simpler
4243 than the first. This patch changes that.
4245 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
4247 * gst/vaapi/gstvaapipostproc.c:
4248 vaapipostproc: notify if src pad caps changed
4249 If src pad caps have changed, it needs to notify it downstream. In
4250 addition, do not set passthrough if they have changed.
4251 Otherwise, transform sometimes starts processing before caps change.
4252 The passthrough value will be set in fixate later in this case.
4253 https://bugzilla.gnome.org/show_bug.cgi?id=775204
4255 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4257 * gst/vaapi/gstvaapidecodebin.c:
4258 vaapidecodebin: capsfilter to optimize negotiation
4259 Add a capsfilter forcing the caps
4260 "video/x-raw(memory:VASurface), format=(string)NV12" between the
4261 queue and the vaapipostproc so no renegotiation is required.
4262 https://bugzilla.gnome.org/show_bug.cgi?id=776175
4264 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
4266 * gst/vaapi/gstvaapivideomemory.c:
4267 vaapivideomemory: fail surface/image configuration
4268 To detect and handle errors during allocator_configure_surface_info()
4269 and allocator_conigure_image_info().
4270 https://bugzilla.gnome.org/show_bug.cgi?id=776084
4271 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4273 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
4275 * gst/vaapi/gstvaapisink.c:
4276 vaapisink: ensures raw caps at start()
4277 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
4278 race conditions at get_caps(), especially with multiple src elements.
4279 https://bugzilla.gnome.org/show_bug.cgi?id=776303
4281 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4283 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
4284 libs: surface: fix error handling code style
4286 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4288 * gst/vaapi/gstvaapivideomemory.c:
4289 vaapivideomemory: add gst_video_info_update_from_surface()
4290 With this function is possible to refactor and remove duplicated code
4291 between dmabuf configuration and direct rendering/uploading
4294 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4296 * gst/vaapi/gstvaapivideomemory.c:
4297 vaapivideomemory: no log object at initialization
4298 When an instance of GstVaapiVideoAllocator fails at initializing, the
4299 log message should not include the allocator's object, because it is
4300 going to be unrefed.
4302 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4304 * gst/vaapi/gstvaapidecode.c:
4305 vaapidecode: lock stream when setting caps
4307 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4309 * gst/vaapi/gstvaapidecode.c:
4310 Revert "vaapidecode: implement negotiate() vmethod"
4311 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
4312 videodecode's negotiate() vmethod is also called when events arrive,
4313 but this would mean that the proper configuration of sink pad might
4314 not be complete, thus we should not update the src pad.
4315 Let's keep the old non-vmethod negotitate().
4317 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4319 * gst/vaapi/gstvaapi.c:
4320 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
4321 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
4323 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
4325 * gst/vaapi/gstvaapiencode.c:
4326 * gst/vaapi/gstvaapiencode.h:
4327 vaapiencode: get surface formats in get_caps()
4328 Query for the supported surface formats in config at get_caps() vmethod.
4329 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4330 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4332 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
4334 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4335 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4336 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
4337 This method will return the valid surface formats in the current
4338 config. If the are no VAConfig it is created with the information
4340 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4341 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4343 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
4345 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4346 libs: encoder: split set_context_info()
4347 Split set_context_info() adding init_context_info() which only
4348 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
4349 required for VAConfig.
4350 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4351 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4353 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
4355 * gst-libs/gst/vaapi/gstvaapicontext.c:
4356 libs: context: skip VAContext if no frame size
4357 If GstVaapiContextInfo has just initial information, without frame's
4358 width and height, skip the creation of the VAContext, just keep the
4360 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4361 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4363 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
4365 * gst-libs/gst/vaapi/gstvaapicontext.c:
4366 libs: context: split context_create()
4367 Split the funcion context_create() into context_create() and
4369 Decoupling VAConfig and VAContext during context creation, we could
4370 query the VAConfig for the supported surface's formats without creating
4372 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4374 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4376 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
4377 libs: drm: find render node in hybrid system
4378 Originally the drm backend only tried to open the first render node
4379 found. But in hybrid system this first render node might not support
4380 VA-API (propietary Nvidia driver, for example).
4381 This patch tries all the available nodes until a finding one with a
4382 VA-API supported driver.
4383 https://bugzilla.gnome.org/show_bug.cgi?id=774811
4384 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
4385 Reza Razavi <reza@userful.com>
4387 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4389 * gst/vaapi/gstvaapivideomemory.c:
4390 vaapivideomemory: refactor code for readability
4391 Added the inlined function allocator_configure_pools() moving out code
4392 from gst_vaapi_video_allocator_new() to make clear that it is a
4393 post-initalization of the object.
4395 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4397 * gst/vaapi/gstvaapivideomemory.c:
4398 vaapivideomemory: log error if not VA image
4399 Log an error message if the test image for surface downloading
4400 cannot be allocated or mapped.
4402 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4404 * gst/vaapi/gstvaapivideomemory.c:
4405 vaapivideomemory: remove unused macros
4406 These macros are not used. Let us remove them.
4408 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4410 * gst/vaapi/gstvaapivideomemory.c:
4411 * gst/vaapi/gstvaapivideomemory.h:
4412 vaapivideomemory: rename video for allocation_info
4413 Since video_info stores the GstVideoInfo of the allocation caps,
4414 it is clear if we rename it as allocation_info, to distinguish it
4415 later from negotiation_info.
4417 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
4419 * gst/vaapi/gstvaapivideomemory.c:
4420 * gst/vaapi/gstvaapivideomemory.h:
4421 vaapivideomemory: add real GstVaapiDmaBufAllocator
4422 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
4423 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
4424 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
4425 from GstDmaBufAllocator.
4426 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4427 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4429 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
4431 * gst/vaapi/gstvaapivideomemory.c:
4432 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
4433 Add a helper function to initialize the gst_debug_vaapivideomemory,
4434 to use it either by the GstVaapiVideoAllocatorClass or
4435 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
4436 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
4437 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4439 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
4441 * gst/vaapi/gstvaapiencode.c:
4442 vaapiencode: release internal encoder at stop()
4443 As the internal encoder is created at start(), let's release it at
4444 stop() vmethod, to be consistent.
4445 gst_vaapiencode_destroy() is called since it also resets the input and
4446 output states, which is something that the base class does internally
4447 after calling stop() vmethod.
4448 https://bugzilla.gnome.org/show_bug.cgi?id=769266
4449 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4451 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
4454 Automatic update of common submodule
4455 From f49c55e to 39ac2f5
4457 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
4459 * gst/vaapi/gstvaapiencode.c:
4460 vaapiencode: call ensure_encoder() at start()
4461 Currently, specific encoder is created during set_format(). This might
4462 lead to race condition when creating profiles with multiple encoders.
4463 This patch moves ensure_encoder() call to start() vmethod to ensure
4464 avoiding the race condition.
4465 https://bugzilla.gnome.org/show_bug.cgi?id=773546
4467 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4469 * gst/vaapi/gstvaapidecodebin.c:
4470 vaapidecodebin: bring back dynamic configuration
4471 In commit ca0c3fd6 we remove the dynamic configuration if the bin
4472 because we assumed that the bin will be always static as it is
4474 Nonetheless we were wrong, because it is possible to request, with a
4475 property, to avoid the use of the post-processor.
4476 Since we want to add a way to disable the post-processor through
4477 environment variables, this remove feature is required again.
4478 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
4479 postprocessor inside of the vaapidecodebin is disabled, then
4480 vaapidecodebin is an alias of the old vaapidecode.
4481 https://bugzilla.gnome.org/show_bug.cgi?id=775041
4483 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4485 * gst/vaapi/gstvaapidecode.c:
4486 vaapidecode: implement negotiate() vmethod
4487 Instead of decorating the negotiate() method, let us override it,
4488 so the stream is locked while called.
4489 https://bugzilla.gnome.org/show_bug.cgi?id=775040
4491 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
4494 common: use https protocol for common submodule
4495 https://bugzilla.gnome.org/show_bug.cgi?id=775110
4497 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
4499 * gst-libs/gst/vaapi/Makefile.am:
4500 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
4501 In case libva-wayland has its headers not installed in default
4502 locations (like /usr/include), the build fails to include "wayland-client.h":
4503 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
4504 In file included from gstvaapidisplay_wayland.h:27:0,
4505 from gstvaapidisplay_egl.c:35:
4506 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
4507 #include <wayland-client.h>
4508 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
4509 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
4510 for libva-wayland.pc in configure and use this in other places as well. It is thus only
4511 correct and consequent, to do it also at this spot.
4512 https://bugzilla.gnome.org/show_bug.cgi?id=773946
4514 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4516 * gst/vaapi/gstvaapivideocontext.c:
4517 vaapivideocontext: log a message if no bus
4518 Raise a warning if there is no bus when the element tries to post a
4521 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4523 * gst/vaapi/gstvaapisink.c:
4524 vaapisink: create display at open()
4525 Instead of creating the VA display before setting the bus to the
4526 element, it is created when the element is opened.
4527 Basically, this commit is a revert of
4528 5e5d62cac79754ba60057fc2516135aad8d7de35
4529 That was done when the GStreamer's context sharing was not mature
4530 enough as now. There is no reason to keep this hack.
4532 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4534 * gst/vaapi/gstvaapidecode.c:
4535 vaapidecode: don't add video crop meta
4536 Since the differentiation of negotiation caps and allocation caps,
4537 there is no need to add a video crop meta with the negotiation caps.
4539 https://bugzilla.gnome.org/show_bug.cgi?id=773948
4541 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4543 * gst/vaapi/gstvaapivideobuffer.c:
4544 * gst/vaapi/gstvaapivideometa.c:
4545 * gst/vaapi/gstvaapivideometa.h:
4546 remove the video converter from vaapi buffer meta
4547 Since all the video converter were deprecated in gstreamer-1.2, we don't need
4548 to handle them anymore in the vaapi's buffer meta.
4549 This patch removes its usage and the buffer meta's API for that.
4550 https://bugzilla.gnome.org/show_bug.cgi?id=745728
4552 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4554 * gst/vaapi/gstvaapipluginbase.c:
4555 plugins: destroy source pad allocator and pool
4556 First, deactivate source pad pool when the out caps change, and if so,
4557 destroy texture map, the source pad allocator and pool only if the
4558 new caps are different from the ones already set.
4560 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4562 * gst/vaapi/gstvaapipluginbase.c:
4563 plugins: don't destroy sink pad allocator
4564 Don't destroy sink pad allocator at _set_caps() because it will be done at
4565 ensure_sinkpad_buffer_pool() if it is required.
4567 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4569 * gst/vaapi/gstvaapipluginbase.c:
4570 plugins: first validate the out caps
4571 When calling _set_caps() first validate the out caps before doing
4574 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4576 * gst/vaapi/gstvaapidecode.c:
4577 vaapidecode: negotiate after destroying allocator
4578 This is related with bug 758907 when no vaapipostproc is used (no
4579 vaapidecodebin). In order to negotiate downstream we need to destroy
4580 the source pad allocator, otherwise the same allocated buffers are
4581 used, failing the mapping.
4583 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4585 * gst/vaapi/gstvaapivideomemory.c:
4586 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
4587 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
4588 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
4590 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4592 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4594 * gst/vaapi/gstvaapipluginbase.c:
4595 plugins: update the src pad allocator video info
4596 Update the size, stride and offset of the source pad allocator video
4597 info, so the pool could set the correct GstVideoMeta
4598 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4600 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4602 * gst/vaapi/gstvaapivideomemory.c:
4603 vaapivideomemory: add missing documentation
4604 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4606 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4608 * gst/vaapi/gstvaapipluginbase.c:
4609 plugins: use early return without goto
4610 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4612 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4614 * gst/vaapi/gstvaapipluginbase.c:
4615 * gst/vaapi/gstvaapivideomemory.c:
4616 * gst/vaapi/gstvaapivideomemory.h:
4617 plugins: add allocator to allocation query
4618 This patch adds the created allocator to the allocation query either
4619 in decide_allocation() and propose_allocation() vmehtods.
4620 With it, there's no need to set the modified allocator's size in the
4622 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4624 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
4626 * gst/vaapi/gstvaapivideobufferpool.c:
4627 vaapivideobufferpool: set correct buffer size
4628 We should set the correct buffer size when we are configuring the pool,
4629 otherwise the buffer will be discarded when it returns to the pool.
4630 Indeed when the ref-count of a buffer reaches zero, its pool will queue
4631 it back (and ref it) if, and only if, the buffer size matches the
4632 configured buffer size on the pool.
4633 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
4634 https://bugzilla.gnome.org/show_bug.cgi?id=774782
4636 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4638 * gst/vaapi/gstvaapivideomemory.c:
4639 vaapivideomemory: check for memory allocator
4640 When calling gst_vaapi_video_memory_copy() the allocator of the memory
4641 to copy should be allocated by the vaapi allocator.
4642 This patch does this verification.
4644 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4646 * gst/vaapi/gstvaapivideomemory.c:
4647 vaapivideomemory: code style fixes
4648 A cosmetic commit for enhance readability of the casts and method
4651 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4653 * gst/vaapi/gstvaapivideomemory.c:
4654 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
4655 Instead of having a gst_vaapi_video_memory_free() that is only going to
4656 be called by gst_vaapi_video_allocator_free(), let's just remove the first
4657 and merged into the second.
4659 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4661 * gst/vaapi/gstvaapivideomemory.c:
4662 vaapivideomemory: avoid virtual methods casting
4663 Use the expected virtual method signatures for readability.
4665 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4667 * gst/vaapi/gstvaapivideomemory.c:
4668 vaapivideomemory: remove unimplemented methods
4669 Remove unimplemented method for allocator mem_share() and mem_is_span().
4671 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4673 * gst/vaapi/gstvaapivideomemory.c:
4674 vaapivideomemory: fail if frame map can't get plane
4675 If map() vmethod in GstVideMeta cannot get the plane data, return false,
4676 thus the caller will not try to read invalid memory.
4677 https://bugzilla.gnome.org/show_bug.cgi?id=774213
4679 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4681 * gst/vaapi/gstvaapivideomemory.c:
4682 * gst/vaapi/gstvaapivideomemory.h:
4683 vaapivideomemory: lock map and unmap operations
4684 In order to avoid race condition when two threads call map/unmap the same
4685 VA surface, this patch mutex these operations.
4686 https://bugzilla.gnome.org/show_bug.cgi?id=774213
4688 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4690 * gst/vaapi/gstvaapivideomemory.c:
4691 vaapivideomemory: refactor vaapi memory unmapping
4692 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
4693 gst_vaapi_video_memory_unmap() when unmapping.
4694 This patch refactors both methods adding the common function
4695 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
4697 Additionally, only when mapping flag has the WRITE bit, it set the image as
4698 current, which was done in gst_video_meta_map_vaapi_memory() but no in
4699 gst_vaapi_video_memory_map().
4700 In order to make this, the mapping flags were required, so instead of
4701 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
4702 https://bugzilla.gnome.org/show_bug.cgi?id=774213
4704 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4706 * gst/vaapi/gstvaapivideomemory.c:
4707 vaapivideomemory: refactor vaapi memory mapping
4708 There were duplicated code in gst_video_meta_map_vaapi_memory() and
4709 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
4710 This patch refactors both methods adding the common function
4712 Additionally, only when flag has the READ bit it calls
4713 ensure_images_is_current(), which was done in
4714 gst_video_meta_map_vaapi_memory() but no in
4715 gst_vaapi_video_memory_map().
4716 https://bugzilla.gnome.org/show_bug.cgi?id=772151
4718 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4720 * gst/vaapi/gstvaapidecode.c:
4721 vaapidecode: unref allowed_sinkpad_caps at close()
4722 The variable member allowed_sinkpad_caps is constructed querying the
4723 current VA display. Bearing that in mind, the variable shall be freed
4724 when the VA display changes or is removed.
4725 This patch moves the freeing of allowed_sinkpad_caps to close(), when
4726 the VA display is freed.
4728 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
4730 * gst/vaapi/gstvaapisink.c:
4731 vaapisink: finish event thread at stop()
4732 The thread that handles window's events should be finished during
4733 pipeline's shutdown, otherwise it will remain alive during pipeline
4734 re-activation, leading to unexpected problems.
4735 This patch fixes failures of intensive_state_change scenario of
4737 https://bugzilla.gnome.org/show_bug.cgi?id=774241
4739 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4741 * gst/vaapi/gstvaapipostproc.c:
4742 vaapipostproc: enhance debug message
4743 "gst_pad_push" is not a good description of the event.
4745 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
4747 * gst/vaapi/gstvaapipostproc.c:
4748 postproc: honor gst_pad_push() return value
4749 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
4750 deadlock during seek.
4751 This patch returns the same error of gst_pad_push() and log out the
4753 https://bugzilla.gnome.org/show_bug.cgi?id=774030
4755 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4757 * gst/vaapi/gstvaapidecode.c:
4758 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
4759 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
4760 compiled with out EGL/GLX support: it shall not support
4761 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
4762 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
4763 allowed src caps for vaapedecode if EGL/GLX.
4765 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4767 * gst/vaapi/gstvaapivideomemory.c:
4768 vaapivideomemory: increment map counter only if succeeded
4769 Previously the frame map counter increased independently if the map succeeded
4770 or not. This leaded to critical messages and crashes if the frame was unable
4771 to be mapped, but the counter increased.
4772 This patch increases the map counter only if the map operation occurred.
4773 https://bugzilla.gnome.org/show_bug.cgi?id=773939
4775 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4777 * gst/vaapi/gstvaapipluginbase.c:
4778 plugins: set negotiation caps in src allocator
4779 When the allocator is created, it stores the allocation caps. But sometimes
4780 the "allocation caps" may be different from the "negotiation caps".
4781 In this case, the allocator should store the negotiation caps since they
4782 are the ones used for frame mapping with GstVideoMeta.
4783 When vaapispostproc is used, this is not a problem since the element is assume
4784 to resize. But when using a vaapi decoder only, with a software renderer, it
4786 https://bugzilla.gnome.org/show_bug.cgi?id=773323
4788 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4790 * gst/vaapi/gstvaapidecode.c:
4791 * gst/vaapi/gstvaapidecode.h:
4792 vaapidecode: generate source pad caps
4793 Just as vaapipostproc, VA decoder's context can be queried to get the possible
4794 raw formats, so, the src caps can negotiate the exact caps that the context
4797 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4799 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4800 * gst-libs/gst/vaapi/gstvaapidecoder.h:
4801 libs: decoder: add _get_surface_formats()
4802 This function exposes the available formats of the surfaces in the the current
4803 context to the plugins.
4805 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4807 * gst-libs/gst/vaapi/gstvaapicontext.c:
4808 * gst-libs/gst/vaapi/gstvaapicontext.h:
4809 libs: context: ensure context formats
4810 This patch ensures to get the formats, as filter does, available in the
4811 decoder / encoder context.
4812 The context fills up the array as soon it is created, otherwise the pipeline
4813 could get stalled (perhaps this is a bug in my HSW backend).
4814 https://bugzilla.gnome.org/show_bug.cgi?id=752958
4816 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4818 * gst-libs/gst/vaapi/gstvaapifilter.c:
4819 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4820 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4821 libs: move get_surface_formats to utils_core
4822 The query of all the supported formats for a VA config were only used by the
4823 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
4824 negotiate a suitable raw format with downstream, we need to query these
4825 formats against the decoder's config.
4826 This patch is the first step: moves the code in filter's ensure_image() to a
4827 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
4828 shared later by the decoder.
4829 https://bugzilla.gnome.org/show_bug.cgi?id=752958
4831 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4833 * gst/vaapi/gstvaapipluginbase.c:
4834 plugins: remove set_sinkpad_dmabuf_allocator()
4835 Since when the sink pad allocator is created, it is decided if the required
4836 one is vaapi allocator or dmabuf allocator, there is no need to force its set
4839 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4841 * gst/vaapi/gstvaapipluginbase.c:
4842 plugins: ensure display when getting raw caps
4843 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
4844 meanwhile it is transforming caps. The problem is that stop() calls
4845 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
4846 the va display is used in tranform_caps() when it is extracting the possible
4847 format conversions. This display disappearing generates warning messages.
4848 This patch holds a local reference of va display at ensure_allowed_raw_caps()
4849 hence it doesn't go away meanwhile it is used, even if the
4850 gst_vaapi_plugin_base_close() is called in other thread.
4851 https://bugzilla.gnome.org/show_bug.cgi?id=773593
4853 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4855 * gst/vaapi/gstvaapiencode_h264.c:
4856 * gst/vaapi/gstvaapiencode_h265.c:
4857 plugins: fix code style for errors
4859 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4861 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4862 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
4863 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
4864 * gst-libs/gst/vaapi/gstvaapicontext.c:
4865 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
4866 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4867 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
4868 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4869 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4870 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
4871 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
4872 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
4873 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
4874 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
4875 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4876 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
4877 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4878 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4879 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4880 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4881 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4882 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4883 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4884 * gst-libs/gst/vaapi/gstvaapifilter.c:
4885 * gst-libs/gst/vaapi/gstvaapiimage.c:
4886 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
4887 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
4888 * gst-libs/gst/vaapi/gstvaapipixmap.c:
4889 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
4890 * gst-libs/gst/vaapi/gstvaapisurface.c:
4891 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
4892 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
4893 * gst-libs/gst/vaapi/gstvaapitexture.c:
4894 * gst-libs/gst/vaapi/gstvaapiutils.c:
4895 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4896 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
4897 * gst-libs/gst/vaapi/gstvaapiwindow.c:
4898 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
4899 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
4900 libs: fix code style for errors
4902 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4904 * gst/vaapi/gstvaapipluginbase.c:
4905 * gst/vaapi/gstvaapivideocontext.c:
4906 plugins: update GstGL deprecated symbol
4907 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
4909 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4911 * gst/vaapi/gstvaapipluginbase.c:
4912 plugins: direct render when raw video
4913 Enable the direct rendering with linear surfaces if the negotiated src caps
4914 are video/x-raw without features.
4915 Pass also the caps, since they are needed to know the requested caps features.
4917 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4919 * gst/vaapi/gstvaapipluginbase.c:
4920 plugins: move src allocator error to instantiator
4921 Just as we did in ensure_sinkpad_allocator(), let's move the error message
4922 into the ensure_srcpad_allocator() from the caller,
4923 gst_vaapi_plugin_base_decide_allocation()
4925 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4927 * gst/vaapi/gstvaapipluginbase.c:
4928 plugins: enable direct upload if raw video
4929 Enable the direct upload with linear surfaces if the negotiated sink caps are
4930 video/x-raw without features.
4932 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4934 * gst/vaapi/gstvaapipluginutil.c:
4935 * gst/vaapi/gstvaapipluginutil.h:
4936 pluginutil: add gst_caps_is_video_raw()
4938 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4940 * gst/vaapi/gstvaapipluginbase.c:
4941 plugins: receive caps in ensure_sinkpad_allocator()
4942 Instead of receiving the GstVideoInfo structure as parameter, get the original
4943 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
4944 which allocator instantiate.
4946 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4948 * gst/vaapi/gstvaapivideomemory.c:
4949 vaapivideomemory: destroy derived image at unmap
4950 If the allocator was configured to use direct upload or rendering, the
4951 generated derived image created at mapping needs to be destroyed after
4952 unmapping, because, in order to process the surface, it should not be marked
4953 as "busy" by the driver.
4955 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4957 * gst/vaapi/gstvaapivideomemory.c:
4958 vaapivideomemory: enhance logs for direct modes
4959 Print, conditionally, only the enabled direct mode.
4961 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4963 * gst/vaapi/gstvaapivideomemory.c:
4964 * gst/vaapi/gstvaapivideomemory.h:
4965 vaapivideomemory: add direct upload flag
4966 Adds the direct-upload flag in the GstVaapiVideoAllocator and
4967 GstVaapiVideoMemory.
4968 It still doesn't apply any functional change.
4970 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4972 * gst/vaapi/gstvaapipluginbase.c:
4973 * gst/vaapi/gstvaapivideomemory.c:
4974 * gst/vaapi/gstvaapivideomemory.h:
4975 vaapivideomemory: set direct rendering at run-time
4976 The way to experiment with the direct rendering is through and internal
4977 compiler pre-processor flag.
4978 The current change set enables a way to specified at run-time, as a flag
4979 passed to the allocator at instanciation time.
4981 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4983 * gst/vaapi/gstvaapivideomemory.c:
4984 vaapivideomemory: log in perf category when copy
4985 Log in performance category when the derive image handling fails, falling back
4988 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4990 * gst/vaapi/gstvaapivideomemory.c:
4991 vaapivideomemory: error log is derive image fails
4992 Instead of a silently failure of the derive image, this patch log an error
4993 message according to the failure.
4995 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4997 * gst/vaapi/gstvaapivideomemory.c:
4998 vaapivideomemory: store surface alloc flags in qdata
4999 For sake of consistency, we should add the requested surface allocation flags
5000 to the object's qdata structure.
5002 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5004 * gst/vaapi/gstvaapivideomemory.c:
5005 vaapivideomemory: category init when object define
5006 Move the Gstreamer debug category initialize to the GObject definition.
5008 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5010 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
5011 libs: vaapitexturemap: trivial code-style fix
5013 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5015 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5016 libs: display: egl: avoid recreate native display
5017 Instead of passing the native descriptor of the display, just pass the received
5018 GstVaapiDisplay and reuse it.
5020 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5022 * gst/vaapi/gstvaapipluginbase.c:
5023 plugins: log the GstVaapiDisplay name
5024 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
5025 name. Log it instead of the memory address.
5027 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
5029 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
5030 libs: window: egl: pass native va display
5031 When creating a GstVaapiWindowEGL, it also creates native window by its own
5032 native display. It should pass the native display, either X11 or Wayland.
5033 https://bugzilla.gnome.org/show_bug.cgi?id=768266
5035 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
5037 * gst-libs/gst/vaapi/gstvaapidebug.h:
5038 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5039 * gst-libs/gst/vaapi/gstvaapidisplay.h:
5040 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
5041 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
5042 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
5043 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5044 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
5045 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
5046 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
5047 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
5048 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
5049 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
5050 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5051 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
5052 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5053 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
5054 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
5055 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
5056 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
5057 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
5058 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
5059 * gst/vaapi/gstvaapivideocontext.c:
5060 libs: display: GstVaapiDisplay as GstObject descendant
5061 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
5062 instead of GstVaapiMiniObject. In this way we can use all the available
5063 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
5064 In addition, a new debug category for GstVaapiDisplay is created to make it
5065 easier to trace debug messages. It is named "vaapidisplay" and it transverse
5066 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
5067 This patch is a step forward to expose GstVaapiDisplay for users in a future
5069 https://bugzilla.gnome.org/show_bug.cgi?id=768266
5070 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5072 === release 1.11.0 ===
5074 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
5079 === release 1.10.0 ===
5081 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
5086 * gstreamer-vaapi.doap:
5089 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5091 * gst/vaapi/gstvaapidecodebin.c:
5092 vaapidecodebin: resurrect disable-vpp property
5093 https://bugzilla.gnome.org/show_bug.cgi?id=773589
5095 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5097 * gst/vaapi/gstvaapidecodebin.c:
5098 vaapidecodebin: name the internal queue
5099 https://bugzilla.gnome.org/show_bug.cgi?id=773589
5101 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5103 * gst/vaapi/gstvaapidecodebin.c:
5104 * gst/vaapi/gstvaapidecodebin.h:
5105 vaapidecodebin: remove unused variables
5106 Since vaapipostproc is only registered if the driver supports it, all the
5107 support for dynamic loading were removed. Though some leftovers remained.
5108 https://bugzilla.gnome.org/show_bug.cgi?id=773589
5110 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5112 * docs/plugins/Makefile.am:
5113 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5114 * docs/plugins/running.xml:
5115 docs: document environment variables
5116 https://bugzilla.gnome.org/show_bug.cgi?id=773544
5118 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5120 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5121 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5122 * gst/vaapi/Makefile.am:
5123 * gst/vaapi/gstvaapidecode.c:
5124 * gst/vaapi/gstvaapidecodebin.c:
5125 * gst/vaapi/gstvaapidecodedoc.c:
5126 docs: replace vaapidecode with each codec
5127 In the spirit of the codec split, this patch removes the documentation of
5128 vaapidecode and adds a page per each possible decoder.
5129 Nonetheless, only those available in the compilation system are going to be
5130 instrospected, because the rest are not registered.
5132 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5134 * gst/vaapi/gstvaapipluginutil.c:
5135 * gst/vaapi/gstvaapivideobuffer.c:
5136 * gst/vaapi/gstvaapivideometa.c:
5137 docs: add missing long descriptions
5139 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5141 * gst/vaapi/gstvaapipostproc.c:
5142 vaapipostproc: use GST_*_OBJECT when possible
5143 Since we can have several vaapipostproc operating in a pipeline, it is useful
5144 to know which one is generating the logging message.
5145 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5147 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5149 * gst/vaapi/gstvaapidecode.c:
5150 * gst/vaapi/gstvaapidecode.h:
5151 vaapidecode: rename member to allowed_sinkpad_caps
5152 vaapidecode has a member named allowed_caps, but this name is not enough
5153 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
5154 No functional changes were included.
5155 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5157 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5159 * gst/vaapi/gstvaapiencode_h264.c:
5160 * gst/vaapi/gstvaapiencode_h265.c:
5161 * gst/vaapi/gstvaapisink.c:
5162 * gst/vaapi/gstvaapivideomemory.c:
5163 * gst/vaapi/gstvaapivideometa.c:
5164 * gst/vaapi/gstvaapivideometa_texture.c:
5165 plugins: fix code style for errors
5166 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5168 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5170 * gst/vaapi/gstvaapivideomemory.c:
5171 vaapivideomemory: comment style
5172 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5174 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5176 * gst/vaapi/gstvaapivideomemory.c:
5177 * gst/vaapi/gstvaapivideomemory.h:
5178 vaapivideomemory: rename input parameter
5179 In order to clarify the use of flag as input parameter, it is renamed to
5180 surface_alloc_flag, since it is used when creating a VA surface with certain
5182 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5184 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5186 * gst/vaapi/gstvaapidecode.c:
5187 vaapidecode: rename element description
5188 So encoders and decoders have similar descriptions.
5189 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5191 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5193 * gst/vaapi/gstvaapiencode_h264.c:
5194 * gst/vaapi/gstvaapiencode_h265.c:
5195 vaapiencode: h264, h265: rename codec name
5196 So encoder and decoders have the same codec name.
5197 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5199 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5201 * gst/vaapi/gstvaapipluginbase.c:
5202 plugins: simplify code
5203 Merge two lines of variable declarations.
5204 https://bugzilla.gnome.org/show_bug.cgi?id=773497
5206 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
5208 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5209 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
5210 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
5211 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
5212 libs: minor correction for logical consistency
5213 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
5214 use its methods, even though it doesn't change functionality.
5215 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
5216 GstVaapiObject, hence its methods shall be used.
5217 https://bugzilla.gnome.org/show_bug.cgi?id=772554
5219 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
5221 * gst/vaapi/gstvaapivideomemory.c:
5222 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
5223 In short GstFdMemory is configured to call close when using
5225 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5227 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5230 * gst-libs/gst/vaapi/Makefile.am:
5231 build: clean up the dlopen usage
5233 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5235 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5236 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5237 encoder: h264,h265: fix regression in offset count
5238 In commit dc35dafa a bug was introduced because I assumed that
5239 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
5240 https://bugzilla.gnome.org/show_bug.cgi?id=772259
5242 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5247 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5249 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5250 libs: display: egl: remove unused header include
5251 The header gmodule.h is not used since the library dynamic loading for EGL
5252 display was removed.
5253 https://bugzilla.gnome.org/show_bug.cgi?id=772599
5255 === release 1.9.90 ===
5257 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
5263 * gstreamer-vaapi.doap:
5266 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
5268 * gst/vaapi/gstvaapidecode.c:
5269 * gst/vaapi/gstvaapidecodebin.c:
5270 * gst/vaapi/gstvaapiencode_h264.c:
5271 * gst/vaapi/gstvaapiencode_h265.c:
5272 * gst/vaapi/gstvaapiencode_jpeg.c:
5273 * gst/vaapi/gstvaapiencode_mpeg2.c:
5274 * gst/vaapi/gstvaapiencode_vp8.c:
5275 * gst/vaapi/gstvaapipostproc.c:
5276 * gst/vaapi/gstvaapisink.c:
5277 vaapi: use new gst_element_class_add_static_pad_template()
5278 https://bugzilla.gnome.org/show_bug.cgi?id=763083
5279 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5281 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
5283 * gst/vaapi/gstvaapipluginbase.c:
5284 plugins: reset textures at negotiation/shutdown
5285 When caps reconfiguration is called, the new downstream frame size might be
5286 different. Thus, if the downstream caps change,the display's texture map is
5288 In addition, during pipeline shutdown, textures in texture map have to be
5289 released, since each one have a reference to the GstVaapiDisplay object, which
5290 is a dangerous circular reference.
5291 https://bugzilla.gnome.org/show_bug.cgi?id=769293
5292 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5294 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
5296 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5297 * gst-libs/gst/vaapi/gstvaapidisplay.h:
5298 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5299 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
5300 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
5301 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
5302 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
5303 * gst/vaapi/gstvaapivideometa_texture.c:
5304 libs: display{egl,glx}: cache GstVaapiTextures
5305 instances when created and reuse
5306 This patch improves performance when glimagesink uploads a GL texture.
5307 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
5308 instance of GstVaapiTextureMap, so our internal texture structure can be found
5309 by matching the GL texture id for each frame upload process, avoiding the
5310 internal texture structure creation and its following destruction.
5311 https://bugzilla.gnome.org/show_bug.cgi?id=769293
5312 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5314 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
5316 * gst-libs/gst/vaapi/Makefile.am:
5317 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
5318 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
5319 libs: vaapitexturemap: implement GstVaapiTextureMap
5320 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
5321 reused. Internally it is a hash table.
5322 Note that it is GstObject based rather than GstVaapiObject, as part of the future
5323 converstion to GstObject of most of the code.
5324 https://bugzilla.gnome.org/show_bug.cgi?id=769293
5325 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5327 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
5329 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5330 encoder: vp8: Increase the allocation size for coded buffer
5331 We are not getting enough compression for some streams and
5332 encoded frame end up with more size than allocated.
5333 Assuming a compression ratio of 4, which should be good enough
5334 for holding the frames.
5335 https://bugzilla.gnome.org/show_bug.cgi?id=771528
5337 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
5339 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5340 encoder: vp9: Fix refresh frame flag setting
5341 While doing the mode-1 referece picture selection,
5342 the circular buffer logic was not correctly setting the
5343 refresh frame flags as per VP9 spec.
5344 Make sure refresh_flag[0] get updated correclty after
5345 each cycle of GST_VP9_REF_FRAMES.
5346 https://bugzilla.gnome.org/show_bug.cgi?id=771507
5348 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5350 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5351 vaapidecode: codec_data minimal size is 7
5352 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
5353 stream, not in the codec_data, so the size of codec_data might be 7.
5354 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
5355 https://bugzilla.gnome.org/show_bug.cgi?id=771441
5357 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5359 * gst/vaapi/gstvaapidecode.c:
5360 vaapidecode: reset decoder hard when set_format()
5361 set_format() is called by upstream when the stream capabilites has changed.
5362 Before, if the new stream is compatible with the old one the VA decoder was
5363 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
5364 when the upstreamer parsers gets more details of the stream, such as the
5365 framerate. Hence, when the src caps are negotiates, the further sink caps
5366 updates are ignored.
5367 This patch forces the VA decoder destroying and recreation when set_format()
5369 https://bugzilla.gnome.org/show_bug.cgi?id=770921
5371 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
5374 configure: Depend on gstreamer 1.9.2.1
5376 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5378 * gst/vaapi/gstvaapivideomemory.c:
5379 Revert "vaapivideomemory: load VA Image when mapping to write"
5380 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
5382 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
5385 Automatic update of common submodule
5386 From b18d820 to f980fd9
5388 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
5391 Automatic update of common submodule
5392 From f49c55e to b18d820
5394 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
5396 * gst/vaapi/gstvaapipluginbase.c:
5397 plugins: set allocator's image size to sinkpad bufferpool
5398 Otherwise the buffer is always ditched by the bufferpool, losing performance.
5399 https://bugzilla.gnome.org/show_bug.cgi?id=771035
5401 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5403 * gst-libs/gst/vaapi/gstvaapisurface.c:
5404 libs: surface: ensure composite overlay is not bigger
5405 Ensure the composition overlay rectangle (subtitles) is not bigger than
5406 the surface where it is going to be composited and rendered.
5407 https://bugzilla.gnome.org/show_bug.cgi?id=766978
5409 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
5411 * gst/vaapi/gstvaapivideomemory.c:
5412 vaapivideomemory: load VA Image when mapping to write
5413 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
5414 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
5416 https://bugzilla.gnome.org/show_bug.cgi?id=766978
5418 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5420 * gst/vaapi/gstvaapidecode.c:
5421 vaapidecode: merge vc1 and wmv3 elements
5422 This patch merges vaapivc1dec and vaapiwmv3dec into a single
5423 vaapivc1dec. Also, removed the WMVA format, since it is not
5425 https://bugzilla.gnome.org/show_bug.cgi?id=734093
5427 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5429 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
5430 decoder: vc1: fails only on advanced profile
5431 In commit 2eb4394 the frame coding mode was verified for progressive
5432 regardless the profile. But the FCM is only valid in the advanced
5433 profile. This patch checks for the advanced profile before verifying FCM for
5435 https://bugzilla.gnome.org/show_bug.cgi?id=769250
5437 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5439 * gst/vaapi/gstvaapi.c:
5440 vaapi: DISPLAY envvar as dependency
5441 In a multiple video cards system, a X11 environment may have different VA
5442 capabilities. This patch tracks the DISPLAY environment variable to
5443 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
5444 https://bugzilla.gnome.org/show_bug.cgi?id=770357
5446 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
5448 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
5449 decoder: vc1: Fail only on actual interlaced frames
5450 In the earlier patch:
5451 f31d9f3 decoder: vc1: Print error on interlaced content
5452 Decoding would error out if the interlace flag was set in the
5453 sequence bdu. This isn't quite right because a video can have this
5454 flag set and yet not have any interlaced pictures.
5455 Here instead we error out when either parsing a field bdu or
5456 decoding a frame bdu which has fcm set to anything other than
5458 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
5459 https://bugzilla.gnome.org/show_bug.cgi?id=769250
5461 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
5466 === release 1.9.2 ===
5468 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
5473 * gstreamer-vaapi.doap:
5476 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
5478 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
5479 decoder: vc1: Print error on interlaced content
5480 Interlaced video is as yet unsupported in the vc1 element. Print
5481 an error to make that more obvious.
5482 https://bugzilla.gnome.org/show_bug.cgi?id=769250
5484 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5486 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5487 encoder: h264: fix C90 mixed declarations and code
5488 Commit 4259d1a introduced this compilation error. This patch fixes it.
5490 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5492 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5493 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5494 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5495 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5496 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
5497 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
5498 to avoid overflows, underflows and loss of precision.
5499 https://bugzilla.gnome.org/show_bug.cgi?id=768458
5501 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5503 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5504 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5505 vaapiencode: h264,h265: validate fps numerator
5506 Validate that fps numerator is non-zero so it can be used to calculate
5507 the duration of the B frame.
5508 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
5509 order to aviod overflows, underflows and loss of precision.
5510 https://bugzilla.gnome.org/show_bug.cgi?id=768458
5512 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
5514 * gst/vaapi/gstvaapi.c:
5515 encoders: demote to RANK_NONE since not fit for autoplugging yet
5516 Encoders claim to support a whole bunch of input formats but then
5517 just error out if the format is not actually supported, even if
5518 there's a converter in front. This means they're not fit for
5519 autoplugging in encodebin or camerabin yet and therefore should
5520 not have a rank. People can still use them in custom pipelines.
5521 https://bugzilla.gnome.org/show_bug.cgi?id=769266
5523 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5525 * gst/vaapi/gstvaapipluginbase.c:
5526 plugins: check dmabuf-import for sink pad allocator
5527 Check earlier if upstream video source has activated the dmabuf-import
5528 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
5531 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5533 * gst/vaapi/gstvaapipluginbase.c:
5534 plugins: reset allocators if video info changed
5535 If the frame size or format, change, the allocators are reset, so a new ones
5536 can be created with the new video info.
5538 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5540 * gst/vaapi/gstvaapipluginbase.c:
5541 plugins: remove sink pad allocator if caps change
5542 If the negotiated sinkpad caps change, destroy the assignated allocator,
5543 because it is not valid anymore.
5545 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5547 * gst/vaapi/gstvaapipluginutil.c:
5548 * gst/vaapi/gstvaapipluginutil.h:
5549 pluginutil: const params to gst_video_info_changed()
5550 Since they are not modified, we should mark them as const.
5552 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5554 * gst/vaapi/gstvaapipluginbase.c:
5555 * gst/vaapi/gstvaapivideomemory.c:
5556 * gst/vaapi/gstvaapivideomemory.h:
5557 gstvaapivideomemory: allocator's image size getter
5558 Add the method gst_allocator_get_vaapi_image_size() for the
5559 GstVaapiVideoAllocator, which gets the size of the allocated images with the
5561 This method replaces the direct call to the allocator's image info when the
5564 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
5566 * gst/vaapi/gstvaapipluginbase.c:
5567 plugins: update buffer pool size with new allocator's image size
5568 Depends on media, video size is sometimes updated with new allocator.
5569 It leads to dismatch between bufferpool's set size and real allocated buffer size.
5570 In this case, it causes every buffer is freed during release in bufferpool,
5571 which should be reused. This affects performance.
5572 https://bugzilla.gnome.org/show_bug.cgi?id=769248
5574 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5577 configure: remove gmodule-2.0 EGL dependency
5578 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
5579 thus the dependency to gmodule-2.0 is not mandatory anymore.
5581 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
5584 configure: Fix non-fatal PKG_CHECK_MODULES invocations
5585 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
5586 the package is missing, but action-if-not-found was given as an empty
5587 string which still causes the default action to run, which halts
5589 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
5590 https://bugzilla.gnome.org/show_bug.cgi?id=769237
5592 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5594 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
5595 libs: egl: remove dynamic library loading code
5596 Since the upstream of gstreamer-vaapi, the library is not a public shared
5597 object anymore. But the EGL support depended on this dynamic library, so the
5598 EGL support was broken.
5599 This patch removes the dynamic library loading code and instantiates the
5600 EGL display using either X11 or Wayland if available.
5601 https://bugzilla.gnome.org/show_bug.cgi?id=767203
5603 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5605 * gst/vaapi/gstvaapi.c:
5606 * gst/vaapi/gstvaapidecode.c:
5607 * gst/vaapi/gstvaapidecode.h:
5608 vaapidecode: register only the available decoders
5609 In order to register only the available decoders, this patch queries the
5610 created test VA display, which uses the currently used back-end (X11, Wayland,
5611 DRM, …) on the used display device.
5612 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5614 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5616 * gst/vaapi/gstvaapi.c:
5617 * gst/vaapi/gstvaapipluginutil.c:
5618 * gst/vaapi/gstvaapipluginutil.h:
5619 vaapi: register only the available encoders
5620 In order to register only the available encoders, this patch queries the
5621 created test VA display, which uses the currently used back-end (X11,
5622 Wayland, DRM, …) on the used display device.
5623 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5625 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5627 * gst/vaapi/gstvaapidecode.c:
5628 * gst/vaapi/gstvaapidecodebin.c:
5629 vaapidecode: split all the codecs
5630 Split the vaapidecode to all the supported codecs with the format
5632 vaapidecode is stil registered as a GObject type, but not as a
5633 GStreamer feature, so it can be used internally by vaapidecodebin without
5634 changing its code too much.
5635 https://bugzilla.gnome.org/show_bug.cgi?id=734093
5637 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5639 * gst/vaapi/gstvaapidecodebin.c:
5640 vaapidecodebin: simplify the code
5641 Since the elements dependant of the VA video processor are now only registered
5642 if it is available, vaapidecodebin code can be simplified a lot, removing all
5643 the code required to check if the VA video processor was available.
5644 https://bugzilla.gnome.org/show_bug.cgi?id=768899
5646 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5648 * gst/vaapi/gstvaapidecode.c:
5649 vaapidecode: delay the GstVaapiDisplay instantiating
5650 Delay the GstVaapiDisplay instantiating until when changing the state from
5651 READY to PAUSE. In this way the element has more chances to find an already
5652 created GstVaapiDisplay, or a GL context, in the pipeline.
5653 https://bugzilla.gnome.org/show_bug.cgi?id=766206
5655 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5657 * gst/vaapi/gstvaapipluginutil.c:
5658 pluginutil: set GLX display type
5659 The function gst_vaapi_create_display_from_gl_context() cretes a
5660 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
5661 when the GL platform was GLX, but a plain X11 VA display.
5662 This patch fixes that, by querying the GL platform earlier.
5663 https://bugzilla.gnome.org/show_bug.cgi?id=766206
5665 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5667 * gst/vaapi/gstvaapipluginbase.c:
5668 * gst/vaapi/gstvaapivideocontext.c:
5669 * gst/vaapi/gstvaapivideocontext.h:
5670 plugins: add gst_vaapi_plugin_base_find_gl_context()
5671 Using the GstContext mechanism, it is possible to find if the pipeline
5672 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
5673 meta. This is interesting because we could negotiate system memory caps
5674 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
5675 https://bugzilla.gnome.org/show_bug.cgi?id=766206
5677 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5679 * gst/vaapi/gstvaapipluginbase.c:
5680 * gst/vaapi/gstvaapipluginbase.h:
5681 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
5682 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
5685 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5687 * gst/vaapi/gstvaapipluginbase.h:
5688 plugins: remove common change_state() vmethod
5689 Remove the common change_state() vmethod for all the plugins, since no one is
5692 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5694 * gst/vaapi/gstvaapidecode.c:
5695 vaapidecode: remove change_state() vmethod
5696 Since the driver checkup is done at registering, there is no need to do it
5697 when changing the element state from NULL to READY. This patch remove this
5698 vmethod from vaapidecode.
5700 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5702 * gst/vaapi/gstvaapi.c:
5703 vaapi: register vaapipostproc only if supported
5704 Query the GstVaapiDisplay to know if the driver supports video
5705 postprocessing. If does, then register vaapipostproc and vaapidecodebin
5707 This patch will simplify the design of vaapidecodebin.
5708 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5710 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5712 * gst/vaapi/gstvaapi.c:
5713 vaapi: don't register if VA driver is unsupported
5714 Using the test VA display, the driver name is queried, and if it is not
5715 white-listed, the plugin rejects to register any element.
5716 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5718 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5720 * gst/vaapi/gstvaapipluginbase.c:
5721 * gst/vaapi/gstvaapipluginutil.c:
5722 * gst/vaapi/gstvaapipluginutil.h:
5723 plugins: add gst_vaapi_driver_is_whitelisted()
5724 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
5725 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
5726 when registering the plugin's feature set with the test VA display.
5727 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5729 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5731 * gst/vaapi/gstvaapi.c:
5732 vaapi: instantiate a VA display when registering
5733 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
5734 features, if it fails, no gstreamer-vaapi element is registering.
5735 The purpose of this patch is to avoid a situation where the user has
5736 gstreamer-vaapi installed but their VA-API setup is not functional, which may
5737 lead to unexpected behavior.
5738 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5740 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5743 * gst/vaapi/gstvaapi.c:
5744 vaapi: declare external dependencies
5745 There are two main external dependencies that define the feature set of this
5746 plugin: a) the kernel and b) the VA driver
5747 This patch tracks both dependencies, if any of them change, GStreamer will
5748 re-inspect the plugin.
5749 The kernel is tracked through the device files /dev/dri/card*
5750 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
5751 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
5752 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
5753 since they modify the driver lookup.
5754 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
5755 https://bugzilla.gnome.org/show_bug.cgi?id=724352
5757 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5759 * gst/vaapi/gstvaapidecode.c:
5760 vaapidecode: remove unneeded initializations
5761 GObject's memory is set to zero, so there is no need to initialize to zero or
5762 NULL it's class variables.
5764 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5766 * gst/vaapi/gstvaapipluginbase.h:
5767 plugins: remove undefined macros
5769 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5771 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5772 Revert "gstvaapisurface_drm: release image when done"
5773 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
5774 372a03a9e38acbf435eb80bf31d9a9844069e504.
5775 While the dmabuf handle is exported, the derive image must exist, otherwise
5776 the image's VA buffer is invalid, thus the dmabuf handle is never released,
5777 leading into a file descriptors leak.
5779 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5781 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5782 encoder: h265: fix code-style
5784 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5786 * gst/vaapi/gstvaapipostproc.c:
5787 vaapipostproc: update filters at color balance
5788 This is a fix for a regression of previous commit, which updates the filters
5789 only when the property is set, because it is also required to update the
5790 filter when the color balance interface change its values.
5792 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
5794 * gst/vaapi/gstvaapipostproc.c:
5795 * gst/vaapi/gstvaapipostproc.h:
5796 vaapipostproc: make it enable/disable pass-through mode
5797 In case that sink caps and src caps are same, and no filtering parameter set,
5798 pass-through mode is enabled.
5799 If new filtering parameter is set during playback, it makes it reconfiguring,
5800 so that pass-through mode is changed
5801 In addition, updating filter is performed during reconfiguration, if needed.
5802 https://bugzilla.gnome.org/show_bug.cgi?id=751876
5804 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
5806 * gst-libs/gst/vaapi/gstvaapifilter.c:
5807 * gst-libs/gst/vaapi/gstvaapifilter.h:
5808 * gst/vaapi/gstvaapipostproc.c:
5809 vaapipostproc: checking and updating filter parameter only when it's set
5810 This patch is to avoid checking filter value at every frame.
5811 https://bugzilla.gnome.org/show_bug.cgi?id=751876
5813 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
5815 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5816 decoder: h265: handle the SEI NAL units included in codec_data
5817 The prefix/suffix SEI nal units can appear in codec_data too
5818 which weren't handled before. Parse these SEI headers to
5820 https://bugzilla.gnome.org/show_bug.cgi?id=768544
5822 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5824 * docs/plugins/Makefile.am:
5825 build: doc: do not redefine MAINTAINERCLEANFILES
5826 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
5827 overload it, the files should be added.
5829 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
5831 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5832 encoder: h264: Fix MVC encode while enabling dct8x8
5833 Pack the transform_8x8_mode_flag and other necessary rbsp data
5834 in packed_pps header for MVC encode.
5835 https://bugzilla.gnome.org/show_bug.cgi?id=768647
5837 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5839 * gst/vaapi/gstvaapisink.c:
5840 vaapisink: demote a debug message to trace
5841 Reduces noise when debugging.
5843 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
5845 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5846 wayland: Error check before using cached wl_display
5847 A planar(or some other) buffer allocation may fail on the driver, then
5848 the wayland connection becomes invalid, not able to send request or
5849 receive any event. So we need to set up a new wayland connection if
5850 there's an error detected on the cached wl_display.
5851 https://bugzilla.gnome.org/show_bug.cgi?id=768761
5852 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5854 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
5857 Automatic update of common submodule
5858 From ac2f647 to f49c55e
5860 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5862 * gst/vaapi/gstvaapiencode.c:
5863 vaapiencode: demote a log to trace level
5864 Removes noise when debugging.
5866 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
5868 * gst/vaapi/gstvaapiencode.c:
5869 vaapiencode: implement flush() vmethod
5870 In order to handle correctly seek and other operations, vaapiencode should
5871 flush all the remaining data from the encoder without pushing it downstream.
5872 This patch implements the flush() vmethod, only after of pausing the
5873 source pad task, and restarting it again after the flush stop.
5874 https://bugzilla.gnome.org/show_bug.cgi?id=767176
5875 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5877 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5879 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
5880 decoder: vc1: flush dpb only if opened
5881 Flush the decode picture buffer, if and only if, the decoder is
5882 started. Otherwise the dpb structure might be NULL.
5883 https://bugzilla.gnome.org/show_bug.cgi?id=742922
5885 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
5887 * gst/vaapi/gstvaapidecode.c:
5888 * gst/vaapi/gstvaapidecode.h:
5889 vaapidecode: drop non-keyframe in reverse playback
5890 To avoid surface-exhausted situation during reverse playback,
5891 drop frames except for key frame.
5892 Also, to avoid the corruption of the parser state, flush() vmethod
5893 doesn't destroy the VA decoder when playing in reverse.
5894 https://bugzilla.gnome.org/show_bug.cgi?id=742922
5895 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5897 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5899 * gst/vaapi/gstvaapidecode.c:
5900 vaapidecode: unref output frame earlier
5901 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
5902 unref that extra reference earlier making the code simpler to follow.
5903 https://bugzilla.gnome.org/show_bug.cgi?id=768652
5905 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5907 * gst/vaapi/gstvaapidecode.c:
5908 vaapidecode: remove gst_vaapidecode_internal_flush()
5909 As gst_vaapidecode_finish() is the only callee of
5910 gst_vaapidecode_internal_flush(), it is better to inline it.
5911 https://bugzilla.gnome.org/show_bug.cgi?id=768652
5913 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5915 * gst/vaapi/gstvaapidecode.c:
5916 vaapidecode: flush output adapter at drain()
5917 Calling drain() vmethod means "decode any data it can at this point, but that
5918 more data may arrive after". Hence, vaapidecode should check if there is data
5919 in the output adapter and process them, without destroying the decoded picture
5921 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
5922 was refactored into a new function gst_vaapidecode_flush_output_adapter().
5923 https://bugzilla.gnome.org/show_bug.cgi?id=768652
5925 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5927 * gst/vaapi/gstvaapidecode.c:
5928 vaapidecode: call purge at flush()
5929 Calling flush() vmethod means "to flush all remaining data from the decoder
5930 without pushing it downstream".
5931 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
5932 gst_video_decoder_have_frame() if there is still something in the input
5933 adapter, which may push buffers to downstream by calling handle_frame().
5934 This patch changes this behavior by calling gst_vaapidecode_purge() rather
5935 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
5936 decoder and releases all the rest of decoded frames.
5937 https://bugzilla.gnome.org/show_bug.cgi?id=768652
5939 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5941 * tests/elements/Makefile.am:
5942 * tests/elements/test-vaapisink.c:
5943 test: elements: remove spurious linkage
5944 Element tests only need to link against gstreamer libraries.
5946 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
5949 configure: Require GLib >= 2.40 like everywhere else
5951 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
5956 === release 1.9.1 ===
5958 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
5964 * gstreamer-vaapi.doap:
5967 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5969 * tests/elements/test-vaapisink.c:
5970 tests: elements: rotate orientation event
5972 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
5975 * tests/Makefile.am:
5976 * tests/elements/Makefile.am:
5977 * tests/elements/test-vaapisink.c:
5978 tests: elements: Add testsuite for vaapisink
5979 https://bugzilla.gnome.org/show_bug.cgi?id=765798
5981 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
5983 * gst-libs/gst/vaapi/gstvaapitypes.h:
5984 * gst-libs/gst/vaapi/gstvaapivalue.c:
5985 * gst/vaapi/gstvaapisink.c:
5986 * gst/vaapi/gstvaapisink.h:
5987 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
5988 https://bugzilla.gnome.org/show_bug.cgi?id=765798
5990 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5992 * gst/vaapi/gstvaapipostproc.c:
5993 vaapipostproc: return caps template if no display
5994 This patch is a fix for my bad review of commit 6d73ca8d. The element should
5995 be able to return the available raw caps handled by the VA display, but that
5996 only should happen when there a VA display. If there's none, the element
5997 should use the caps template.
5998 https://bugzilla.gnome.org/show_bug.cgi?id=768161
6000 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
6002 * gst/vaapi/gstvaapipostproc.c:
6003 vaapipostproc: don't require a vaapi display for all caps queries
6004 This delays the requirement of having a GstVaapiDisplay until later
6005 https://bugzilla.gnome.org/show_bug.cgi?id=768161
6007 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6009 * gst-libs/gst/vaapi/gstvaapiutils.c:
6010 utils: report VP9 profiles
6011 Add VP9Profile0-3 name mapping.
6013 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6015 * gst/vaapi/gstvaapi.c:
6016 vaapi: nest includes under USE_ENCODER macro
6017 This is a missed changeset from commit 1c05c53, since also header includes
6020 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6022 * gst/vaapi/gstvaapi.c:
6023 vaapi: nest encoders under USE_ENCODER macro
6024 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
6025 macro, it is clearer to nest them, showing explicitly the dependency relation.
6027 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6029 * gst/vaapi/gstvaapivideocontext.c:
6030 vaapivideocontext: check if query context is NULL
6031 Under certain conditions the element might receive a positive context query
6032 but without a context instance. This situation will lead to a segmentation
6033 fault when traversing the context list in the pipeline.
6034 https://bugzilla.gnome.org/show_bug.cgi?id=767946
6036 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6038 * gst-libs/gst/vaapi/Makefile.am:
6039 * gst-libs/gst/vaapi/glibcompat.h:
6040 * gst-libs/gst/vaapi/sysdeps.h:
6041 remove unused glibcompat.h
6042 glibcompat.h is no longer doing anything. Remove it.
6043 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6044 https://bugzilla.gnome.org/show_bug.cgi?id=767886
6046 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6048 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6049 encoder: h264: Use high profile by default
6050 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
6051 by default. This will cause the default profile to be high instead
6052 of baseline. In most situations this is the right decision, and
6053 the profile can still be lowered in the case of caps restrictions.
6054 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6055 https://bugzilla.gnome.org/show_bug.cgi?id=757941
6057 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6059 * gst/vaapi/gstvaapidecodebin.c:
6060 vaapidecodebin: element warning if missing element
6061 Raise an element warning if a required element is not available, thus the
6062 pipeline will post a warning message and the application will be informed.
6064 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
6066 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6067 decoder: h265: fix to release all dpb pictures
6068 Without this, all dpb pictures are not released during flush,
6069 because we used the global dpb_count variable for checking the
6070 dpb fullness which get decremented in dpb_remove_index()
6071 routine during each loop iteration.
6072 https://bugzilla.gnome.org/show_bug.cgi?id=767934
6074 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6077 Automatic update of common submodule
6078 From ac2f647 to f363b32
6080 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
6082 * gst/vaapi/gstvaapidecode.c:
6083 * gst/vaapi/gstvaapipostproc.c:
6084 vaapi: fix minor leaks
6085 https://bugzilla.gnome.org/show_bug.cgi?id=767868
6087 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6089 * gst/vaapi/gstvaapi.c:
6090 vaapi: remove an already included header
6091 gst/gst.h is already included in gstcompat.h
6093 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6095 * gst/vaapi/gstvaapidecodebin.c:
6096 vaapidecodebin: add vp9 in sink pad template
6098 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6100 * gst/vaapi/gstvaapisink.c:
6101 vaapisink: return caps template if no display
6102 If vaapisink received a caps query before getting a VA display, it returned
6103 only the surfaces related caps. This behavior broke the autovideosink
6105 This patch returns the pad's template caps if no VA display, otherwise the
6106 caps are crafted as before.
6107 https://bugzilla.gnome.org/show_bug.cgi?id=767699
6109 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6111 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6112 decoder: vp9: Update comment about context resets
6113 Clarify that vaapi context resets are never needed for vp9, but
6114 that ensure_context() needs called when the size increases so that
6115 new surfaces can be allocated.
6116 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6117 https://bugzilla.gnome.org/show_bug.cgi?id=767474
6119 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6121 * gst-libs/gst/vaapi/gstvaapicontext.c:
6122 * gst-libs/gst/vaapi/gstvaapicontext.h:
6123 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6124 gstvaapicontext: control reset_on_resize with option
6125 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6126 https://bugzilla.gnome.org/show_bug.cgi?id=767474
6128 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6130 * gst/vaapi/gstvaapivideobufferpool.c:
6131 vaapivideobufferpool: add video meta to config when needed
6132 In cases where we know the video meta must be present, add it to
6133 the pool configuration.
6134 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6135 https://bugzilla.gnome.org/show_bug.cgi?id=766184
6137 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6139 * gst/vaapi/gstvaapipluginbase.c:
6140 plugins: retry pool config
6141 if gst_buffer_pool_set_config returns FALSE, check the modified
6142 config and retry set_config if the config is still acceptable.
6143 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6144 https://bugzilla.gnome.org/show_bug.cgi?id=766184
6146 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6148 * gst/vaapi/gstvaapivideomemory.h:
6149 vaapivideomemory: internal attributes to methods
6150 Mark as internal the functions used by VA-API dmabuf allocator.
6152 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6154 * gst/vaapi/gstvaapipluginbase.c:
6155 plugins: remove precondition for decide_allocation()
6156 There's no need to check for the display in the plugin object when
6157 decide_allocation() vmethod is called, because the display will created or
6158 re-created along the method execution.
6160 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6162 * gst/vaapi/gstvaapipluginbase.c:
6163 plugins: avoid possible memory leaks
6164 Get the pool config just before use it, to avoid a memory leak if the
6165 allocator cannot be instantiated. Similarly, return FALSE if the configuration
6166 cannot be set, avoid keep a not used allocator in the pool.
6168 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6170 * gst/vaapi/gstvaapipluginbase.c:
6171 plugins: use GstParentBufferMeta
6172 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
6173 use the GStreamer's GstParentBufferMeta.
6174 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6176 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6178 * gst/vaapi/gstvaapipluginbase.c:
6179 plugins: cache VASurfaces from dmabufs
6180 This patch avoids the creation of a VASurface each time a new input buffer is
6181 processed, caching them in the input buffer itself.
6182 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6184 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6186 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
6187 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
6188 * gst/vaapi/gstvaapipluginbase.c:
6189 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
6190 Instead of passing the data already in GstVideoInfo, let's just pass the
6191 GstVideoInfo structure.
6192 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6194 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6196 * gst/vaapi/gstvaapipluginbase.c:
6197 * gst/vaapi/gstvaapipluginbase.h:
6198 plugins: use an unique allocator per pad
6199 Instead of instantiating an allocator per vaapivideobufferpool, only one
6200 allocator is instantiated per element's pad and shared among future pools.
6201 If the pad's caps changes, the allocator is reset.
6202 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6204 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6206 * gst/vaapi/gstvaapipluginbase.c:
6207 * gst/vaapi/gstvaapivideobufferpool.c:
6208 * gst/vaapi/gstvaapivideobufferpool.h:
6209 vaapivideobufferpool: share options flag with pluginbase
6210 Originally, vaapivideobufferpool has a set of boolean variables for the
6211 buffer configuration options.
6212 This pach changes these boolean variables for a single bitwise, just as
6213 it is used in pluginbase. Hence, the internal enum was moved to
6214 vaapivideobufferpool header.
6215 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6217 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6219 * gst/vaapi/gstvaapipluginbase.c:
6220 plugins: add gst_vaapi_plugin_base_create_pool()
6221 This patch refactors the code in pluginbase in order to centralize the buffer
6222 pool instantiation. As the buffer pool config may have different options, these
6223 are gathered using a bitwise flag.
6224 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6226 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6228 pluginbase negotiates allocator with bufferpool
6229 Originally vaapivideobufferpool instantiates its own allocator regardless the
6230 received configuration, and it relies in custom configuration options to
6231 choose which kind of allocator instantiate.
6232 This patch transfers the responsibility of the allocator instantiate to
6233 vaapipluginbase and pass it to the vaapivideobufferpool through its
6235 * gst/vaapi/gstvaapipluginbase.c
6236 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
6237 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
6238 bufferpool configuration
6239 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
6241 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
6242 allocator in bufferpool configuration
6243 * gst/vaapi/gstvaapivideobufferpool.c
6244 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
6245 allocator, process the received one through its configuration.
6246 * gst/vaapi/gstvaapivideobufferpool.h: removed
6247 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
6248 * gst/vaapi/gstvaapivideomemory.c
6249 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
6250 allocator with the vaapi qdata.
6251 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6253 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6255 * gst/vaapi/gstvaapivideobufferpool.c:
6256 vaapivideobufferpool: keep only current video info
6257 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
6258 the current one, the negotiated. The old one is not needed at all.
6259 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6261 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6263 * gst/vaapi/gstvaapipluginbase.c:
6264 * gst/vaapi/gstvaapipluginutil.c:
6265 * gst/vaapi/gstvaapipluginutil.h:
6266 * gst/vaapi/gstvaapivideomemory.c:
6267 pluginutil: add gst_video_info_force_nv12_if_encoded()
6268 This lines repeat a couple times in the code, so it would be better to put it
6270 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6272 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6274 * gst/vaapi/gstvaapipluginutil.c:
6275 * gst/vaapi/gstvaapipluginutil.h:
6276 * gst/vaapi/gstvaapipostproc.c:
6277 * gst/vaapi/gstvaapivideobufferpool.c:
6278 pluginutil: add gst_video_info_changed() helper
6279 This function is shared among different elements, so let factorized it.
6280 https://bugzilla.gnome.org/show_bug.cgi?id=765435
6282 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
6284 * gst/vaapi/gstvaapipostprocutil.c:
6285 vaapipostproc: Add colorimetry attributes to src caps
6286 https://bugzilla.gnome.org/show_bug.cgi?id=766596
6288 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
6290 * gst/vaapi/gstvaapidecode.c:
6291 vaapidecode: remove chroma-site and colorimetry from src caps
6292 https://bugzilla.gnome.org/show_bug.cgi?id=766596
6294 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
6296 * gst/vaapi/gstvaapipostproc.c:
6297 * gst/vaapi/gstvaapipostproc.h:
6298 vaapipostproc: add postproc_lock to protect data members
6299 Add a mutex to postproc to protect concurrent access to data members.
6300 Previously set_caps() could release the allowed_srcpad_caps while
6301 transform_caps was in the middle of using it.
6302 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
6303 https://bugzilla.gnome.org/show_bug.cgi?id=766940
6305 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6307 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
6308 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
6309 encoder: vp9: Add simple algorithms for reference picture selection
6310 Added two modes(as properties) for reference picture selection:
6311 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
6312 and LastRef is pointing to the previous frame.
6313 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
6314 and n-2 th frame as AltRef
6315 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6317 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6319 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
6320 encoder: vp9: Define Max frame width and height
6321 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6323 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6325 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
6326 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
6327 encoder: vp9: Add more propertis for tuning encode quality
6328 Added three tuning properties:
6331 3: luma ac quant-table index
6332 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6334 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6336 * gst/vaapi/Makefile.am:
6337 * gst/vaapi/gstvaapi.c:
6338 * gst/vaapi/gstvaapiencode_vp9.c:
6339 * gst/vaapi/gstvaapiencode_vp9.h:
6340 Add vp9 encode element to "vaapi" plugin
6341 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6343 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6345 * gst-libs/gst/vaapi/Makefile.am:
6346 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
6347 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
6348 Add vp9 encoder support in libgstvaapi
6349 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6351 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6354 build: Add check for VP9 encode API support in libva
6355 https://bugzilla.gnome.org/show_bug.cgi?id=766048
6357 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6359 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
6360 gstvaapisurface_drm: fix internal documentation
6362 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6364 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
6365 gstvaapisurface_drm: fix code-style
6367 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6369 * gst/vaapi/gstvaapipluginbase.c:
6370 plugins: remove unused header
6371 Remove the include of gst/allocators/allocators.h since it is not used.
6373 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6375 * gst/vaapi/gstvaapivideobufferpool.h:
6376 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
6377 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
6378 keep compatibility definition.
6379 This patch removes the definition of
6380 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
6381 gst-plugins-base version 1.2.2
6383 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6385 * gst/vaapi/gstvaapipluginbase.c:
6386 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
6387 This is a helper function to improve the readability of
6388 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
6391 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6393 * gst/vaapi/gstvaapipluginbase.c:
6394 plugins: deactivate buffer pool before unref
6395 This buffer pool may still be processing buffers when a caps renegotiation is
6396 done. This one-liner patch deactivates the pool to drain it before it
6399 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6401 * gst/vaapi/gstvaapipluginbase.c:
6402 plugins: no sinkpad bufferpool when decoder
6403 Right now, the decoders create a buffer pool for their sink pad which is not
6404 used at all, because the decoders have never proposed it to upstream.
6405 This patch avoids the buffer pool instantiating when the element inherits from
6406 the GstVideoDecoder class.
6408 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6410 * gst/vaapi/gstvaapipluginbase.c:
6411 plugins: avoid to get/set pool config twice
6412 This patch is a bit of optimization, since the bufferpool configuration is get
6413 when the pool is created. Hence, we only need to request it when the pool from
6414 the allocation query is reused.
6416 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6418 * gst/vaapi/gstvaapipluginbase.c:
6419 plugins: destroy pool earlier if non-vaapi
6420 If the offered pool in decide_allocation() vmethod doesn't have the
6421 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
6422 so it could be created later.
6424 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6426 * gst/vaapi/gstvaapivideobufferpool.c:
6427 vaapivideobufferpool: split caps validation
6428 When validating the caps from bufferpool config, this patch distinguishes the
6429 error from no caps received (NULL) from the invalid caps (cannot be converted
6430 into GstVideoInfo structure).
6432 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6434 * gst/vaapi/gstvaapidecode.c:
6435 * gst/vaapi/gstvaapipluginbase.c:
6436 plugins: check for caps in query earlier
6437 Check for caps as soon gst_query_parse_allocation() returns.
6439 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6441 * gst/vaapi/gstvaapipluginbase.c:
6442 * gst/vaapi/gstvaapipluginbase.h:
6443 plugins: remove unused variables
6444 This variables stopped to be used since commit 001a5c63, which removed the
6447 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6449 * gst/vaapi/gstvaapipluginbase.c:
6450 plugins: fix potential memleak from commit 9159328
6451 If gst_video_info_from_caps() fails it is required to unref the instantiated
6454 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6456 * gst/vaapi/gstvaapipostproc.c:
6457 vaapipostproc: handle if gst_video_info_from_caps() fails
6458 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
6461 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6463 * gst/vaapi/gstvaapipluginbase.c:
6464 plugins: handle if gst_video_info_from_caps() fails
6465 Let's play safe and return error if, somehow, the received caps are wrong.
6467 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6469 * gst/vaapi/gstvaapipluginbase.c:
6470 plugins: relate errors to instance
6471 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
6472 will show the name of the vaapipluginbase instance that failed.
6473 Also, the code-style is fixed, where some error labels need to be surrounded
6476 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6478 * gst/vaapi/gstvaapipluginbase.c:
6479 * gst/vaapi/gstvaapipluginutil.c:
6480 * gst/vaapi/gstvaapisink.c:
6481 plugins: use GstVideoInfo accessors
6482 Instead of access to GstVideInfo members directly, use their accessors
6483 macros. This patch makes more resistance to future changes in GStreamer core.
6485 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6487 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
6488 * gst/vaapi/gstvaapipluginbase.c:
6489 * gst/vaapi/gstvaapipostproc.c:
6490 * tests/simple-encoder.c:
6491 remove spurious gst_video_info_init()
6492 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
6493 gst_video_info_init(), hence it is not required to call it before them. This
6494 patch removes these spurious calls.
6496 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6498 * gst/vaapi/gstvaapipluginbase.c:
6499 vaapipluginbase: code-style: rename goto label
6500 The error labels have error_ prefix, but this one.
6502 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6504 * gst/vaapi/gstvaapivideomemory.c:
6505 vaapivideomemory: use allocator custom alloc flag
6506 Instead of a dummy alloc() vmethod, the allocator instance set the flag
6507 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
6508 gst_allocator_alloc() on the allocator.
6510 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6512 * gst/vaapi/gstvaapivideobufferpool.c:
6513 vaapivideobufferpool: relate errors to instance
6514 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
6515 the vaapivideobufferpool instance that failed.
6517 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6519 * gst/vaapi/gstvaapipluginbase.c:
6520 plugins: remove gst_vaapi_plugin_base_set_pool_config()
6521 This function helper make sense for GStreamer 1.2, but it is not helpful for
6522 greater version since the validation is already done in the API implementation.
6523 Thus, it is removed.
6525 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6527 * gst/vaapi/gstvaapipluginbase.c:
6528 gstvaapipluginbase: Fix typo in doc
6530 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6532 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6533 encoder : h264: Disable b-frame encode in low-power mode
6534 This is a workaround since vaapi-intel-driver doesn't have
6535 support for B-frame encode when utilizing low-power-enc
6537 Fixme :We should query the VAConfigAttribEncMaxRefFrames
6538 instead of blindly disabling b-frame support and set b/p frame count,
6539 buffer pool size etc based on the query result.
6540 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6542 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6544 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6545 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
6546 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
6547 Remove the duplicate property "low-power-enc" and use the
6548 tune property for enabling low power encoding mode.
6549 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6551 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6553 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6554 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
6555 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6557 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6559 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6560 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6561 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
6562 encoder: h264: Add support of low power/high performance encoding mode
6563 Added a new property "low-power-enc" for enabling low power
6564 encoding mode. Certain encoding tools may not be available
6565 with the VAEntrypointEncSliceLP.
6566 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6568 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6570 * gst-libs/gst/vaapi/gstvaapitypes.h:
6571 * gst-libs/gst/vaapi/gstvaapiutils.c:
6572 * gst-libs/gst/vaapi/gstvaapivalue.c:
6573 Add mapping for Macroblock level rate control (VA_RC_MB)
6575 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6577 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6578 gstvaapidisplay: Add VAEntrypointEncSliceLP support
6579 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6581 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6583 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6584 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6585 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
6586 This is for implementations that supports low_power/high_performance
6587 variant for slice level encode.
6588 https://bugzilla.gnome.org/show_bug.cgi?id=766050
6590 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6592 * gst/vaapi/gstvaapipostprocutil.c:
6593 vaapipostproc: negotiate frame size fixation
6594 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
6595 using the sink caps, also it use the next capsfilter.
6596 This code is a shameless copy of gst_video_scale_fixate_caps() from
6597 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
6598 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6600 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
6602 * gst/vaapi/gstvaapipostprocutil.c:
6603 vaapipostproc: don't use GstVideoInfo for src caps
6604 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
6605 this patch enables the first step for caps negotiation with a possible
6606 following caps filter.
6607 _get_preferred_caps() will traverse the possible src caps looking for the one
6608 wit the preferred feature and the preferred color format. Then the color
6609 format, the frame size and the frame rate are fixated.
6610 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6612 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6614 * gst/vaapi/gstvaapipostproc.c:
6615 * gst/vaapi/gstvaapipostprocutil.c:
6616 * gst/vaapi/gstvaapipostprocutil.h:
6617 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
6618 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
6619 No functional changes.
6620 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6622 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6624 * gst/vaapi/gstvaapipostproc.c:
6625 vaapipostproc: simplify code
6626 Change a convoluted snippet to find the preferred color format in the peer
6628 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6630 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6632 * gst/vaapi/gstvaapipostproc.c:
6633 vaapipostproc: use othercaps for preferred caps
6634 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
6635 from fixate_caps() vmethod to find the preferred caps feature and color
6637 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6639 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
6641 * gst/vaapi/gstvaapipostproc.c:
6642 vaapipostproc: add fixate_caps() vmethod
6643 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
6644 implements the fixate_caps() vmethod and moves code around.
6645 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6647 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6649 * gst/vaapi/Makefile.am:
6650 * gst/vaapi/gstvaapipostproc.c:
6651 * gst/vaapi/gstvaapipostprocutil.c:
6652 * gst/vaapi/gstvaapipostprocutil.h:
6653 vaapipostproc: set early properties restrictions
6654 When running transform_caps() vmethod, returning the srcpad caps, the caps are
6655 early restricted to the element properties set: width, height, format and
6657 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
6659 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6661 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6663 * gst/vaapi/gstvaapipostproc.c:
6664 vaapipostproc: log the caps transformation
6665 https://bugzilla.gnome.org/show_bug.cgi?id=758548
6667 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6669 * gst/vaapi/gstvaapipostproc.c:
6670 vaapipostproc: no GLTextureUpload in sinkpad
6671 As the vaapipostproc does not process frames with the VideoGLTextureUpload
6672 meta, the feature is removed from the sink pad template.
6673 https://bugzilla.gnome.org/show_bug.cgi?id=765931
6675 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
6677 * gst/vaapi/gstvaapivideobufferpool.c:
6678 vaapibufferpool: do not create texture upload meta if dmabuf
6679 https://bugzilla.gnome.org/show_bug.cgi?id=755072
6681 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6684 build: update git.mk
6686 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6688 * gst/vaapi/gstvaapipluginbase.h:
6689 plugin: fix macro processor check
6690 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
6691 defined in config.h, but it would be 0 or 1 depending on the configure output.
6692 https://bugzilla.gnome.org/show_bug.cgi?id=765702
6694 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6696 * tests/test-display.c:
6697 tests: display: guard possible unused variables
6698 https://bugzilla.gnome.org/show_bug.cgi?id=765702
6700 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6706 * tests/simple-decoder.c:
6707 * tests/test-decode.c:
6708 * tests/test-display.c:
6709 * tests/test-filter.c:
6710 * tests/test-h264.c:
6711 * tests/test-jpeg.c:
6712 * tests/test-mpeg2.c:
6713 * tests/test-mpeg4.c:
6714 * tests/test-subpicture-data.c:
6715 * tests/test-subpicture.c:
6716 * tests/test-surfaces.c:
6717 * tests/test-textures.c:
6719 * tests/test-windows.c:
6720 tests: inforce gstreamer code-style
6722 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6724 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6725 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
6726 It seems driver requires enablement of cu_qp_delta_enabled_flag
6727 for modifying QP values to controll the CBR mode bitrate.
6728 https://bugzilla.gnome.org/show_bug.cgi?id=749852
6730 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6732 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6733 encoder: h265: Add CBR Encoding support
6734 https://bugzilla.gnome.org/show_bug.cgi?id=749852
6736 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
6738 * gst-libs/gst/vaapi/gstvaapisurface.c:
6739 gstvaapisurface: explicitely clear TILING flag if dmabuf
6740 https://bugzilla.gnome.org/show_bug.cgi?id=755072
6742 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
6744 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
6745 gstvaapisurface_drm: release image when done
6746 Otherwise intel-vaapi-driver will fail to process the exported surface because
6747 it will find it is currently derived, so considered as busy.
6748 https://bugzilla.gnome.org/show_bug.cgi?id=755072
6750 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
6752 * gst/vaapi/gstvaapipostproc.c:
6753 vaapipostproc: already have a surface proxy if dmabuf
6754 https://bugzilla.gnome.org/show_bug.cgi?id=755072
6756 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
6758 * gst/vaapi/gstvaapipostproc.c:
6761 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6763 * gst/vaapi/gstvaapidecode.c:
6764 * gst/vaapi/gstvaapipluginbase.c:
6765 * gst/vaapi/gstvaapipluginbase.h:
6766 vaapidecode: search driver in whitelist
6767 If the backend driver vendor string is not in a white-list, and the
6768 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
6769 change it state from NULL to READY, hence the auto-plug mechanism will look
6770 for another decoder.
6771 This patch assumes the GstContext has already being shared along the pipeline
6772 and the element has a valid GstVaapiDisplay instance.
6773 https://bugzilla.gnome.org/show_bug.cgi?id=764673
6775 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6777 * gst/vaapi/gstvaapidecode.c:
6778 * gst/vaapi/gstvaapiencode.c:
6779 * gst/vaapi/gstvaapipluginbase.c:
6780 * gst/vaapi/gstvaapipluginbase.h:
6781 * gst/vaapi/gstvaapipostproc.c:
6782 * gst/vaapi/gstvaapisink.c:
6783 plugins: rework set_context() vmethod definition
6784 In bug 757598 was added the set_context() vmethod chain up in
6785 GstVaapiPluginBase. But it is buggy, since the parent_class address is
6786 assigned to the last element which called gst_vaapi_plugin_base_class_init().
6787 No error has shown up since none of the element's base classes redefined
6788 set_context() vmethod from GstElement, so always the correct function was
6789 called. Still this code is wrong and this patch make it right.
6790 Since set_context() is the same code, a macro is used to implement that code
6791 in all the gst-vaapi elements.
6792 https://bugzilla.gnome.org/show_bug.cgi?id=765368
6794 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6796 * gst/vaapi/gstvaapipostproc.c:
6797 vaapipostproc: resize if negotiated and allocation caps are different
6798 Since commit 859a2b2, in vaapidecode, allocation query can be different from
6799 the negotiated caps.
6800 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
6801 resize the frame to the negotiated, if and only if, some other parameter is
6802 activated to avoid the passthrough. If it is not, the surface won't be mapped
6803 into a image. If not, the image won't be resized and the output buffer would be
6805 This patch will break the passthrough if the allocation query is different
6806 from the negotiation caps, forcing the resizing.
6807 https://bugzilla.gnome.org/show_bug.cgi?id=765095
6809 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6811 * gst/vaapi/gstvaapidecode.c:
6812 vaapidecode: improve code readability
6813 No functional changes.
6815 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6817 * gst/vaapi/gstvaapidecode.c:
6818 vaapidecode: move GstCapsFeatures near to its use
6819 Move the handling of the GstCapsFeatures just after it is used, in order to
6820 avoid handling its memory.
6822 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6824 * gst/vaapi/gstvaapidecode.c:
6825 vaapidecode: caps negotiation checks
6826 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
6827 compiled with GL support.
6829 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6831 * gst/vaapi/gstvaapidecode.c:
6832 * gst/vaapi/gstvaapipluginbase.c:
6833 * gst/vaapi/gstvaapipluginbase.h:
6834 * gst/vaapi/gstvaapipostproc.c:
6835 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
6837 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6839 * gst/vaapi/gstvaapidecode.c:
6840 vaapidecode: bail early if not caps in decide_allocation()
6842 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6844 * gst/vaapi/gstvaapidecode.c:
6845 * gst/vaapi/gstvaapipluginbase.c:
6846 * gst/vaapi/gstvaapipluginutil.c:
6847 * gst/vaapi/gstvaapipluginutil.h:
6848 * gst/vaapi/gstvaapipostproc.c:
6849 plugin: use allowed caps filter from element
6850 Instead of using the srcpad template caps for filtering the peer caps, the
6851 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
6852 for the element's allowed caps.
6853 With this modification, the vaapipostproc element simplifies a bit its code.
6854 https://bugzilla.gnome.org/show_bug.cgi?id=765223
6856 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6858 * gst/vaapi/gstvaapidecode.c:
6859 * gst/vaapi/gstvaapipluginbase.c:
6860 * gst/vaapi/gstvaapipluginutil.c:
6861 * gst/vaapi/gstvaapipluginutil.h:
6862 * gst/vaapi/gstvaapipostproc.c:
6863 plugin: remove function parameter
6864 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
6865 saved if the out format is used for both: in and out. Thus the code is more
6867 https://bugzilla.gnome.org/show_bug.cgi?id=765223
6869 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6871 * gst/vaapi/gstvaapidecode.c:
6872 vaapidecode: warns if driver will do color conversions
6873 If the downstream feature is system memory, the surface has to be mapped,
6874 hence a warning message is logged saying that the driver has to do color
6875 conversions. This might be troublesome because not all the color conversion
6876 combinations are supported by the VA-API drivers, and there is not a reliable
6877 way to know them before hand.
6878 https://bugzilla.gnome.org/show_bug.cgi?id=765223
6880 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6882 * gst/vaapi/gstvaapipluginutil.c:
6883 plugin: honour negotiated format
6884 Instead of setting the requested format by the caller, the function
6885 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
6886 the negotiated format.
6887 A new helper function was added: gst_vaapi_find_preferred_format(), which,
6888 given the format list from the negotiated caps, will choose the best one, if
6889 possible, given the native format.
6890 https://bugzilla.gnome.org/show_bug.cgi?id=765223
6892 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6894 * gst/vaapi/gstvaapipluginutil.c:
6895 plugin: simplify caps feature selection
6896 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
6897 Instead of intersecting custom caps to find the preferred feature, the peer
6898 caps are traversed in order to find the preferred feature, according to an
6899 ordered feature priority list.
6900 In the case of GLTextureUploadMeta, the colour format is computed using
6901 GstVideoInfo of the selected fixed caps.
6902 https://bugzilla.gnome.org/show_bug.cgi?id=765223
6904 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6906 * gst/vaapi/gstvaapidecode.c:
6907 vaapidecode: use macros for GstVideoInfo
6908 Instead of accessing directly to the members of the structure, use the macros.
6910 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6912 * gst/vaapi/gstvaapidecode.c:
6913 vaapidecode: refactor is_display_resolution_changed()
6914 Make the comparisons more readable and simple.
6915 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6917 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6919 * gst/vaapi/gstvaapidecode.c:
6920 * gst/vaapi/gstvaapidecode.h:
6921 vaapidecode: keep only display_{width,height}
6922 Instead of keeping the structure GstVideoInfo when we are using its width and
6923 height, we only keep these two guints.
6924 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6926 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6928 * gst/vaapi/gstvaapidecode.c:
6929 vaapidecode: decoded_info is valid at src caps update
6930 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
6931 is called, then we don't need to verify or replace it with the sinkpad info
6933 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6935 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6937 * gst/vaapi/gstvaapidecode.c:
6938 vaapidecode: always a valid format in decoded_info
6939 Always set a valid format in decoded_info class variable.
6940 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6942 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6944 * gst/vaapi/gstvaapidecode.c:
6945 vaapidecode: code style fixes
6946 No functional changes.
6947 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6949 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6951 * gst/vaapi/gstvaapidecode.c:
6952 vaapidecode: init {decoded,display}_info at open()
6953 It is required to initialize {decoded,display}_info variables when the decoder
6954 is open, not only at instance initialization.
6955 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6957 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6959 * gst/vaapi/gstvaapidecode.c:
6960 * gst/vaapi/gstvaapidecode.h:
6961 vaapidecode: remove spurious class variables
6962 active, do_pool_renego and do_outstate_renego class variables were used to
6963 indicate when negotiate downstream once, but now that each time a new surface
6964 resolution is pop out a renegotation verified, these variable are not required
6966 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6968 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6970 * gst/vaapi/gstvaapidecode.c:
6971 * gst/vaapi/gstvaapipluginbase.c:
6972 * gst/vaapi/gstvaapipluginbase.h:
6973 * gst/vaapi/gstvaapipostproc.c:
6974 remove custom allocation query
6975 When resolving bug 753914, a custom allocation query was added, overlapping
6976 the responsibilities of GstVideoDecoder.
6977 But with the merge of the patches from bug 764421 this overlapping was not
6978 required anymore. This patch restores this situation setting the
6979 allocation_caps in the GstVideoCodecState when needed.
6980 https://bugzilla.gnome.org/show_bug.cgi?id=764316
6982 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
6985 Automatic update of common submodule
6986 From 6f2d209 to ac2f647
6988 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6990 * gst/vaapi/gstvaapidecode.c:
6991 * gst/vaapi/gstvaapidecodebin.c:
6992 * gst/vaapi/gstvaapipostproc.c:
6993 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
6994 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
6995 their caps templates if they were not compiled either with GLX or EGL support.
6997 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6999 * gst/vaapi/gstvaapipluginutil.c:
7000 plugins: fix compilation when EGL/GLX is disabled
7001 The compiler might complain of gst_vaapi_create_display_from_handle() being
7002 unused if both EGL and GLX are disabled. This patch avoid that compilation
7005 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7007 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
7008 libs: fix deleting a GstVaapiCodedBufferPool object
7009 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
7010 Otherwise it is not called when the pool is destroyed and all objects
7011 referenced by the GstVaapiVideoPool are never released.
7012 https://bugzilla.gnome.org/show_bug.cgi?id=764993
7014 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7016 * gst-libs/gst/vaapi/gstvaapisurface.c:
7017 surface: destroy derived image
7018 If gst_vaapi_image_new_with_image() fails, the created derived image should be
7019 destroyed, otherwise the surface cannot be processed because is being used.
7020 https://bugzilla.gnome.org/show_bug.cgi?id=764607
7022 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7024 * gst/vaapi/gstvaapidecode.c:
7025 vaapidecode: add stop function
7026 Clear any status on the current stream:
7027 stored frames, caps and decoder configuration
7028 https://bugzilla.gnome.org/show_bug.cgi?id=763460
7030 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7032 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7033 decoder: vp9: Align with the ABI changes in vp9 codecparser
7034 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
7035 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
7036 These fields are only present in keyframe or intra-only frame, no need to
7037 duplicate them for inter-frames.
7038 https://bugzilla.gnome.org/show_bug.cgi?id=764082
7040 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7042 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7043 decoder: vp9 : Add 10bit decoding support (Profile2)
7044 https://bugzilla.gnome.org/show_bug.cgi?id=764082
7046 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7048 * gst-libs/gst/vaapi/gstvaapiprofile.c:
7049 * gst-libs/gst/vaapi/gstvaapiprofile.h:
7050 gstvaapiporfile: Add more VP9 profile definitions
7051 https://bugzilla.gnome.org/show_bug.cgi?id=764082
7053 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7057 build: possibility to disable tests
7058 The configuration option --disable-examples will disable the compilation of
7059 the sample apps in tests/ directory.
7061 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7063 * gst/vaapi/gstvaapiencode_h264.c:
7064 * gst/vaapi/gstvaapiencode_h265.c:
7065 * gst/vaapi/gstvaapiencode_jpeg.c:
7066 * gst/vaapi/gstvaapiencode_mpeg2.c:
7067 * gst/vaapi/gstvaapiencode_vp8.c:
7068 * gst/vaapi/gstvaapipluginutil.h:
7069 * gst/vaapi/gstvaapisink.c:
7070 unify caps template for VAAPI encoders and decoders
7071 There is no difference in VAAPI surface caps between encoders and decoders.
7072 Thus, the patch makes a simplification by removing encoders specific caps and
7073 shares the same definition of VAAPI surfaces caps for all the elements.
7075 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7077 * gst/vaapi/gstvaapidecode.c:
7078 vaapidecode: move gst_vaapidecode_negotiate() code
7079 With it we can remove a function declaration, making the code a bit
7081 https://bugzilla.gnome.org/show_bug.cgi?id=764316
7083 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7085 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
7086 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
7087 * gst/vaapi/gstvaapidecode.c:
7088 docs: generate vaapijpegdec documentation
7089 https://bugzilla.gnome.org/show_bug.cgi?id=764314
7091 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7093 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7094 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
7095 The array_completeness, reserved bit and num_nal_units fields
7096 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
7097 but not for each occurance of similar headers.
7098 https://bugzilla.gnome.org/show_bug.cgi?id=764274
7100 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7102 * gst-libs/gst/vaapi/video-format.c:
7103 video-format: Keep the HW order preference while mapping to GstVideoFormats
7105 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7107 * gst/vaapi/gstvaapidecode.c:
7108 * gst/vaapi/gstvaapipluginbase.c:
7109 * gst/vaapi/gstvaapipluginutil.c:
7110 * gst/vaapi/gstvaapipluginutil.h:
7111 * gst/vaapi/gstvaapivideomemory.c:
7112 gst/vaapi: keep precedence for NV12 over I420
7113 Use NV12 as default "assumption" format all over.
7114 NV12 is the default high priority format used my most of the
7117 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7119 * gst/vaapi/gstvaapidecode.c:
7120 vaapidecode: Use video format derived from decoded surface as default src pad format
7121 Use the surface format derived from first decoded surface
7122 to negotiate the downstream video format capabilities.
7123 https://bugzilla.gnome.org/show_bug.cgi?id=759181
7125 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
7127 * gst-libs/gst/vaapi/gstvaapiimage.c:
7128 * gst-libs/gst/vaapi/video-format.c:
7129 * gst/vaapi/gstvaapidecode.c:
7130 * gst/vaapi/gstvaapipluginutil.h:
7131 * gst/vaapi/gstvaapisink.c:
7132 Add P010 video format support
7133 The P010 video format is the native format used by the vaapi intel driver
7134 for HEVCMain10 decode . Add support for planes and images of this video format.
7135 https://bugzilla.gnome.org/show_bug.cgi?id=759181
7137 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
7139 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
7140 libs: x11: allows 30-bit colour depth
7141 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
7142 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
7143 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
7145 https://bugzilla.gnome.org/show_bug.cgi?id=764256
7147 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7149 * gst/vaapi/gstvaapivideometa_texture.c:
7150 gltextureupload: use an array for texture type
7151 Instead of using a single value for the texture type, use an array with 4
7152 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
7154 https://bugzilla.gnome.org/show_bug.cgi?id=764231
7156 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7158 * gst/vaapi/gstvaapidecode.c:
7159 * gst/vaapi/gstvaapipluginbase.c:
7160 vaapidecode: Fix decide_allocation handling
7161 Set the already configured pool in decide_allocation query
7162 in cases where pool renegotiation is not required.
7163 https://bugzilla.gnome.org/show_bug.cgi?id=753914
7165 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7167 * gst/vaapi/gstvaapidecode.c:
7168 vaapidecode: Derive and save the decoded surface format
7169 After the decoding of first frame, try to extract the exact
7170 decoded surface format using vaDeriveImage and keep this
7171 as the format in decoded_info.
7172 https://bugzilla.gnome.org/show_bug.cgi?id=753914
7174 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7176 * gst/vaapi/gstvaapidecode.c:
7177 * gst/vaapi/gstvaapidecode.h:
7178 * gst/vaapi/gstvaapipluginbase.c:
7179 * gst/vaapi/gstvaapipluginbase.h:
7180 * gst/vaapi/gstvaapipostproc.c:
7181 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
7182 -- Maintaing decoded surface resoluton and actual display resoultion separately
7183 -- Before pushing every frames downstream, check for the requirement of pool negoation and
7184 output_state negotiation: This is needed to avoid multiple issuses with cropping,
7185 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
7186 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
7187 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
7188 This is slight overhead, but safe enough. Optimization could be possible though.
7189 https://bugzilla.gnome.org/show_bug.cgi?id=753914
7191 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7193 * gst/vaapi/gstvaapidecode.c:
7194 vaapidecode: Delay the output format setting until we have a decoded surface
7195 This will help to consoidate the out caps negotiation to a single place,
7196 which will make the code simpler, allows to get the exact decoded format
7197 if needed and the selected chroma type too.
7198 https://bugzilla.gnome.org/show_bug.cgi?id=753914
7200 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7202 * gst/vaapi/gstvaapidecode.h:
7203 vaapidecode: GST_VAAPIDECODE macro is a cast
7204 This patch is the continuation of commit 1e1d3b1d because the function
7205 gst_vaapidecode_get_type() got undefined since then.
7206 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
7207 structure. The rest of the GObject handling macros were deleted too.
7209 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
7214 === release 1.8.0 ===
7216 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
7221 * gstreamer-vaapi.doap:
7224 === release 1.7.91 ===
7226 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
7231 * gstreamer-vaapi.doap:
7234 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7236 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7237 decoder: h265: Fix offset calculation in codec_data parsing
7238 https://bugzilla.gnome.org/show_bug.cgi?id=762922
7240 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7242 * gst/vaapi/gstvaapidecodebin.c:
7243 vaapidecodebin: don't handle jpeg decoding
7244 As JPEG decoder has been split and demoted, it cannot be handled by
7246 Added a fixme comment regarding the future removal of vaapidecode.
7247 https://bugzilla.gnome.org/show_bug.cgi?id=734093
7249 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7251 * gst/vaapi/gstvaapidecode.c:
7252 vaapidecode: split out jpeg decoder
7253 Split, as a different element, the JPEG decoder.
7254 https://bugzilla.gnome.org/show_bug.cgi?id=734093
7256 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7258 * gst/vaapi/gstvaapi.c:
7259 * gst/vaapi/gstvaapidecode.c:
7260 * gst/vaapi/gstvaapidecode.h:
7261 vaapidecode: register decoder with internal GType
7262 Don't expose the the vaapidecode GType, instead expose a function
7263 which will register element.
7264 This is the first step to split the decoder by codecs.
7265 https://bugzilla.gnome.org/show_bug.cgi?id=734093
7267 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7269 * gst/vaapi/gstvaapidecode.c:
7270 vaapidecode: remove unused function declaration
7271 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
7272 code-style of the other pre-declared functions.
7274 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7276 * docs/plugins/Makefile.am:
7277 build: git ignore gtkdoc generated files
7279 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7282 build: handle git ignore in m4 directory
7284 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7286 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7287 vaapidecoder_h265: plug leak of h265 parsing info
7288 If something goes wrong while parsing, the info object is
7290 https://bugzilla.gnome.org/show_bug.cgi?id=763121
7292 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7294 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7295 vaapidecoder_h264: plug leak of h264 parsing info
7296 If something goes wrong while parsing, the info object is
7298 https://bugzilla.gnome.org/show_bug.cgi?id=763121
7300 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
7302 * gst/vaapi/gstvaapipluginutil.c:
7303 plugins: fix gstgl and vaapi memory leaks
7304 1\ Unref gl_display and gl_window as soon they are not needed.
7305 2\ Remove an unneeded display type check, since is handled by
7306 gst_vaapi_created_display_from_handle()
7307 3\ Unref vaapi's display if the display cannot be bind to a GL API.
7308 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7309 https://bugzilla.gnome.org/show_bug.cgi?id=763354
7311 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
7313 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7314 vaapidisplay: Fix uninitialized value error for VA attribute
7315 https://bugzilla.gnome.org/show_bug.cgi?id=763362
7317 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7319 * gst/vaapi/gstvaapidecode.c:
7320 * gst/vaapi/gstvaapiencode.c:
7321 plugins: proxy information from downstream caps
7322 Propagate to upstream the downstream information, such as fps, par, etc.
7323 This will fix several "getcaps" critical warnings in gst-validate.
7324 https://bugzilla.gnome.org/show_bug.cgi?id=763300
7326 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7328 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7329 decoder: vp9: Assign values for profile and bit_depth from frame header
7330 bit_depth field has added only in VA-API 0.39.0, added version check.
7332 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
7335 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
7336 https://bugzilla.gnome.org/show_bug.cgi?id=763067
7338 === release 1.7.90 ===
7340 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
7345 * gstreamer-vaapi.doap:
7348 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
7351 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
7353 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7355 * gst/vaapi/gstvaapidecode.c:
7356 vaapidecode: intersect with filter in getcaps()
7357 In commit 6034734d I forgot to add the caps filter intersection in the
7358 getcaps() vmethod generating a regression when a capsfilter is set in the
7360 This commit adds the caps filter intersection.
7362 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
7364 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7365 Add memset to initialize value for VAEncSliceParameterBufferJPEG
7366 https://bugzilla.gnome.org/show_bug.cgi?id=762850
7368 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
7371 Automatic update of common submodule
7372 From b64f03f to 6f2d209
7374 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7379 build: add m4 directory
7380 Instead of rely on the automatic creation of m4 directory by aclocal, we
7381 already control it. Later we could create our own m4 scripts in order to
7382 unclutter configure.ac
7383 https://bugzilla.gnome.org/show_bug.cgi?id=762528
7385 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
7387 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7388 decoder: hevc: Fill dependent slice segment headers while parsing
7389 Copy the data into the dependent slice segment header from the
7390 corresponding independent slice segment header during parsing.
7391 Previously the reference to the "previous" independent header was
7392 held through the parsing phase and then dereferenced during the
7393 decoding phase. This caused all dependent headers to be populated
7394 with the data of the AU's last independent header instead of the
7395 proper corresponding header.
7396 https://bugzilla.gnome.org/show_bug.cgi?id=762352
7398 - Reworded commit message
7400 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7402 * gst/vaapi/gstvaapidecode.c:
7403 vaapidecode: use video decoder getcaps()
7404 The usage of getcaps() vmethod is preferred than to handle manually the sink's
7406 In order to avoid function declarations, this patch moves the class_init()
7407 method to the end of the file.
7409 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7411 * gst/vaapi/gstvaapipluginbase.c:
7412 plugins: remove deprecated code
7413 Since we are only supporting current GStreamer version, since 1.3
7414 gst_buffer_pool_config_add_option() checks if the option to add is
7415 already set. There is no need to do it ourselves.
7417 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7419 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7420 vaapidecoder_h265: fix parsing of NALU aligned data
7421 Don't assume the whole buffer is a single NAL, instead look for the
7422 next start code in case there are multiple NALs per buffer.
7423 https://bugzilla.gnome.org/show_bug.cgi?id=762328
7425 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7427 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7428 vaapidecoder_h264: fix parsing of NALU aligned data
7429 Don't assume the whole buffer is a single NAL, instead look for the
7430 next start code in case there are multiple NALs per buffer.
7431 https://bugzilla.gnome.org/show_bug.cgi?id=762328
7433 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
7435 * gst/vaapi/gstvaapisink.c:
7436 vaapisink: Fix event,pad,structure memory leaks
7437 https://bugzilla.gnome.org/show_bug.cgi?id=762229
7439 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
7441 * gst/vaapi/gstvaapipluginbase.c:
7442 Add icamerasrc as dmabuf capable peer element
7443 icamerasrc is another gstreamer plugin using to capture RAW
7444 frames from camera device. It is based on libcamhal library.
7445 There are some properties available to control icamera behavior.
7446 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
7447 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
7448 https://bugzilla.gnome.org/show_bug.cgi?id=759481
7449 Fixme: This is the similar workaround we done for v4l2src.
7450 The workaround will be removed once we fix #755072
7452 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
7454 * gst/vaapi/gstvaapipluginbase.c:
7455 vaapipluginbase: Fix structure memory leak
7456 config structure is not being freed in all cases
7457 https://bugzilla.gnome.org/show_bug.cgi?id=762172
7459 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
7461 * gst/vaapi/gstvaapidecode.c:
7462 vaapidecode: Fix videocodec state memory leak
7463 When state is not NULL and either width/height of video info is 0, then state leaks
7464 https://bugzilla.gnome.org/show_bug.cgi?id=762173
7466 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
7468 * gst/vaapi/gstvaapisink.c:
7469 vaapisink: post message for application for unhandled keyboard/mouse events
7470 Makes (most) keyboard shortcuts work in gst-play-1.0 when
7471 the video window has focus.
7473 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
7475 * gst/vaapi/gstvaapidecode.c:
7476 vaapidecode: Fix capsfeature memory leak
7477 https://bugzilla.gnome.org/show_bug.cgi?id=762116
7479 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
7481 * gst/vaapi/gstvaapisink.c:
7482 vaapisink: Fix capsfeature memory leak
7483 caps feature allocated is not being freeing in some cases
7484 https://bugzilla.gnome.org/show_bug.cgi?id=762111
7486 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
7489 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
7490 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
7491 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
7492 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7493 * gst-libs/gst/vaapi/gstvaapifilter.c:
7494 * gst/vaapi/gstvaapidecodebin.c:
7495 * gst/vaapi/gstvaapipluginutil.c:
7496 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
7498 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
7501 configure: Fix setting of extra compiler warning flags
7503 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7505 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
7506 libs: fix build error
7507 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
7508 functions are used only when libva's API version is greater than 0.36.0
7509 This patch guards those functions completely rather than just their
7510 content. The patch is a continuation of commit 38f8fea4
7511 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
7512 https://bugzilla.gnome.org/show_bug.cgi?id=762055
7514 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
7516 * tests/simple-encoder.c:
7517 tests: simple-encoder: fix build error
7518 argument mismatch of gsize with 'long unsigned int'
7519 https://bugzilla.gnome.org/show_bug.cgi?id=762055
7521 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7523 * gst/vaapi/gstvaapisink.c:
7524 vaapisink: Fix wrong caps advertising
7525 The get_caps() should only report the supported formats.
7526 https://bugzilla.gnome.org/show_bug.cgi?id=761147
7528 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
7531 Automatic update of common submodule
7532 From e97c9bb to b64f03f
7534 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7536 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
7537 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
7538 * gst/vaapi/gstvaapi.c:
7539 * gst/vaapi/gstvaapiencode_h264.c:
7540 * gst/vaapi/gstvaapiencode_h265.c:
7541 * gst/vaapi/gstvaapiencode_jpeg.c:
7542 * gst/vaapi/gstvaapiencode_mpeg2.c:
7543 * gst/vaapi/gstvaapiencode_vp8.c:
7544 rename encoders to vaapi{codec}enc
7545 Trying to comply with GStreamer's element names, this patch renames the
7546 encoders using the name format vaapi{codec}enc.
7547 In this way, the plugin documentation is linked correctly.
7548 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7550 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7553 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
7554 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7556 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7559 build: remove vp9 parser check
7560 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
7561 the check of the parser, as we did for the others.
7562 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7564 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7569 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7571 === release 1.6.0 ===
7573 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7578 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7580 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
7581 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7582 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7583 libs: fix compiler warnings
7584 After setting the release flags, the compiler warns about a couple
7585 initialized variables.
7586 Also marked a couple of set variables as unused, because they are only
7588 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7590 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7592 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
7593 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
7594 * gst/vaapi/gstvaapidecode.c:
7595 * gst/vaapi/gstvaapidecodebin.c:
7596 * gst/vaapi/gstvaapiencode_h264.c:
7597 * gst/vaapi/gstvaapiencode_h265.c:
7598 * gst/vaapi/gstvaapiencode_jpeg.c:
7599 * gst/vaapi/gstvaapiencode_mpeg2.c:
7600 * gst/vaapi/gstvaapiencode_vp8.c:
7601 * gst/vaapi/gstvaapipostproc.c:
7602 * gst/vaapi/gstvaapisink.c:
7603 docs: update plugin documentation
7604 Update all the documentation of elements of the vaapi plugin.
7605 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7607 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7612 * docs/plugins/Makefile.am:
7613 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
7614 * docs/plugins/gstreamer-vaapi-plugins.types:
7615 * docs/reference/Makefile.am:
7616 * docs/reference/plugins/Makefile.am:
7617 * docs/reference/plugins/plugins-sections.txt:
7618 * docs/reference/plugins/plugins.types:
7619 * docs/version.entities.in:
7620 resurrect gtk-doc machinery
7621 Our auto-generated documentation has been a bit neglected. This patch replaces
7622 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
7623 plugins, elements and libraries.
7624 This patch also re-enables documentation generation.
7625 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7627 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7633 use gst-common submodule
7634 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
7635 GStreamer common submodule.
7636 The documentation generation has been disable temporarily since it needs a
7637 major rework, which will be done in the following commit.
7638 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7640 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7644 add gst-common submodule
7645 Pointing to branch 1.6
7646 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7648 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7650 * gstreamer-vaapi.doap:
7652 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
7653 describe software projects, in particular free and open source software.
7654 The description is used in GStreamer as in many other open source projects.
7655 This patch adds the doap description of this project.
7656 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7658 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7660 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
7661 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7662 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
7663 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
7664 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
7665 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
7666 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
7667 * gst-libs/gst/vaapi/gstvaapiimage.c:
7668 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
7669 * gst-libs/gst/vaapi/gstvaapipixmap.c:
7670 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
7671 * gst-libs/gst/vaapi/gstvaapiprofile.c:
7672 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
7673 libs: humongous code style fix
7674 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
7675 umbrella, we need to comply with the project's code style. This meant to
7676 change a lot of code.
7677 It was decided to use a single massive patch to update the code style.
7678 I would like to apologize with the original developers of this code because of
7679 the history breakage.
7680 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7682 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7684 * gst-libs/gst/vaapi/gstvaapicontext.c:
7685 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7686 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7687 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7688 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7689 * gst/vaapi/gstvaapivideomemory.c:
7690 libs: small refactors to enhance the code style
7691 As gst-indent generated ugly code in these cases, this patch changes the used
7692 idiomatic into other one.
7693 No functional changes were introduced.
7694 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7696 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7698 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
7699 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
7700 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
7701 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7702 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7703 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
7704 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
7705 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7706 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7707 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7708 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7709 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
7710 * gst-libs/gst/vaapi/gstvaapifilter.c:
7711 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
7712 * gst-libs/gst/vaapi/gstvaapisurface.c:
7713 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
7714 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7715 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
7716 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
7717 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
7718 * gst-libs/gst/vaapi/gstvaapiwindow.c:
7719 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
7720 libs: small code style fixes
7721 This a set of small code style fixes detected as-is by gst-indent.
7722 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7724 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7726 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
7727 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
7728 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
7729 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
7730 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7731 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
7732 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
7733 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
7734 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7735 libs: trivial comment style fixes
7736 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7738 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7740 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
7741 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
7742 libs: avoid gst-indent mess up
7743 Guard pieces of code to avoid gst-ident to mess up the following code.
7744 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7746 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7748 * gst/vaapi/gstvaapidecode.c:
7749 * gst/vaapi/gstvaapidecodebin.c:
7750 * gst/vaapi/gstvaapipluginutil.c:
7751 * gst/vaapi/gstvaapisink.c:
7752 * gst/vaapi/gstvaapivideomemory.c:
7753 plugins: fix code style
7754 Minor code style changes by executing gst-indent in gst/vaapi directory.
7755 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7757 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7759 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7760 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7761 Fix some more compiler warning
7762 Two (false) compiler warnings about variables potentially
7763 being used uninitialized, and one about a variable being
7765 https://bugzilla.gnome.org/show_bug.cgi?id=759192
7767 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
7769 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7770 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
7771 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7772 * gst-libs/gst/vaapi/gstvaapifilter.c:
7773 * gst/vaapi/gstvaapidecode.c:
7774 * gst/vaapi/gstvaapipluginbase.c:
7775 * gst/vaapi/gstvaapipluginutil.c:
7776 * gst/vaapi/gstvaapipostproc.c:
7777 * tests/simple-encoder.c:
7778 * tests/test-filter.c:
7779 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
7780 Declare variables at the beginning of a code block, which
7781 is how it's done in GStreamer.
7782 https://bugzilla.gnome.org/show_bug.cgi?id=759192
7784 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7786 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7787 decoder: vp9: Fix crop rectangle setting
7788 Align with software vp9dec behaviour: Add crop rectangle
7789 only if display_width/display_height is less than the
7790 frame_hdr->width/frame_hdr->height
7792 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7794 * gst/vaapi/gstvaapidecode.c:
7795 vaapidecode: Fix renegotiation for resolution change
7796 Always renegotiate the pool if the immediate frame which going
7797 to be pushed has a different un-cropped resolution than the already
7800 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7802 * gst/vaapi/gstvaapipluginbase.h:
7803 plugins: use the same pre-processor macro
7804 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
7805 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
7806 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
7807 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
7809 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7811 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7813 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7814 decoder: update a deprecated function
7815 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
7816 deprecated since GStreamer 1.0.
7817 This patch replace it with gst_adapter_prev_pts()
7818 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7820 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7823 build: honor configure's cache
7824 The user might enable --config-cache when calling configure script. If so, our
7825 configuration variables will not be correctly calculated.
7826 This patch extracts the value of our variables either from the cache or from
7827 the operation result.
7828 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7830 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7833 build: use common version variables
7834 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7836 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7839 build: hard-code an unneeded macro
7840 That macro is required for EGL's dynamic module loading, but since
7841 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
7842 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
7843 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7845 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7848 build: refactorization of dependency tracking
7849 This patch tries to avoid branching in configure.ac using a more functional
7850 approach in macros usage.
7851 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7853 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7856 build: check for OpenGL either GLX or EGL are requested
7857 Refactor some code in configure.ac to centralize $enable_opengl definition.
7858 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7860 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7863 build: indent and add square braces
7864 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7866 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7869 build: upgrade autotools version dependency
7870 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7872 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7875 build: enhance string comparisons
7876 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
7877 the string is empty or undefined.
7878 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7880 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7883 build: remove unused variables
7884 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7886 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7889 build: remove check for old version of gstreamer
7890 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7892 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7895 build: remove GStreamer's parsers checks
7896 This patch removes almost all the parsers check since they are already in place,
7897 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
7898 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7900 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7903 * gst/vaapi/Makefile.am:
7904 build: add gstreamer-pbutils dependency
7905 This dependency was added in gstvaapidecodebin with the call
7906 gst_missing_element_message_new().
7907 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7909 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7912 build: fix variable declaration
7913 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7915 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7917 * gst-libs/gst/vaapi/Makefile.am:
7918 build: fix when HEVC decoder is disabled
7919 This a very pathological situation: when we have a HEVC encoder but not a HEVC
7921 The encoder needs functions that are only available when the decoder is
7923 This patch moves the utils functions into the generic sources, such as the
7925 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7927 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7929 * gst/vaapi/Makefile.am:
7930 build: remove unused EGL specific sources
7931 These Makefile variables are not used at all.
7932 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7934 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7936 * gst/vaapi/Makefile.am:
7937 build: remove check for GStreamer 1.2
7938 Since we are working for current stable GStreamer 1.6
7939 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7941 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7943 * gst/vaapi/gstvaapiparse.h:
7944 Remove more video parser crufts
7945 This header is not used anymore since it declares parsers that are
7946 already in GStreamer 1.6
7947 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7949 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
7952 * docs/reference/Makefile.am:
7953 * docs/reference/libs/Makefile.am:
7954 * docs/reference/libs/libs-docs.xml.in:
7955 * docs/reference/libs/libs-overrides.txt:
7956 * docs/reference/libs/libs-sections.txt:
7957 docs: remove library documentation which is non-public now
7958 https://bugzilla.gnome.org/show_bug.cgi?id=759192
7960 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
7964 * debian.upstream/Makefile.am:
7965 * debian.upstream/changelog.in:
7966 * debian.upstream/compat:
7967 * debian.upstream/control.in:
7968 * debian.upstream/copyright:
7969 * debian.upstream/gstreamer-vaapi-doc.install.in:
7970 * debian.upstream/gstreamer-vaapi.install.in:
7971 * debian.upstream/rules:
7972 Remove debian.upstream packaging
7973 https://bugzilla.gnome.org/show_bug.cgi?id=759192
7975 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7977 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7978 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7979 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7980 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7981 * gst-libs/gst/vaapi/gstvaapiprofile.c:
7982 * gst/vaapi/gstcompat.h:
7983 * gst/vaapi/gstvaapi.c:
7984 * gst/vaapi/gstvaapidecode.c:
7985 * gst/vaapi/gstvaapiencode.c:
7986 * gst/vaapi/gstvaapipluginbase.c:
7987 * gst/vaapi/gstvaapipluginbase.h:
7988 * gst/vaapi/gstvaapipluginutil.c:
7989 * gst/vaapi/gstvaapisink.c:
7990 Remove old gst version guards
7991 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
7992 all the old GStreamer version guards.
7993 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7995 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7997 * gst/vaapi/gstvaapiparse.c:
7998 Remove video parser crufts
7999 We forgot to remove gstvaapiparse.c when we removed all the videoparser
8001 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8003 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8005 * docs/reference/libs/Makefile.am:
8006 * docs/reference/plugins/Makefile.am:
8007 * gst-libs/gst/vaapi/Makefile.am:
8008 * gst/vaapi/Makefile.am:
8009 * tests/Makefile.am:
8010 libs: remove versioning
8011 Since we don't install libraries anymore, it makes no sense to keep
8012 versioning them according to the gstreamer's version.
8013 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8015 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8018 * debian.upstream/Makefile.am:
8019 * debian.upstream/control.in:
8020 * debian.upstream/libgstvaapi-dev.install.in:
8021 * debian.upstream/libgstvaapi-drm.install.in:
8022 * debian.upstream/libgstvaapi-glx.install.in:
8023 * debian.upstream/libgstvaapi-wayland.install.in:
8024 * debian.upstream/libgstvaapi-x11.install.in:
8025 * debian.upstream/libgstvaapi.install.in:
8026 * gst-libs/gst/vaapi/Makefile.am:
8027 * tests/Makefile.am:
8028 libs: make libraries no installables
8029 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8031 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8033 * debian.upstream/libgstvaapi-dev.install.in:
8034 * gst-libs/gst/vaapi/Makefile.am:
8035 Do not install libgstvaapi headers
8036 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8038 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8042 * patches/Makefile.am:
8043 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
8044 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
8045 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
8046 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
8047 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
8048 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
8049 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
8050 * patches/videoparsers/Makefile.am:
8051 * patches/videoparsers/series.frag:
8052 Remove videoparser patches
8054 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8058 * debian.upstream/libgstvaapi-dev.install.in:
8059 * pkgconfig/Makefile.am:
8060 * pkgconfig/gstreamer-vaapi-drm.pc.in:
8061 * pkgconfig/gstreamer-vaapi-glx.pc.in:
8062 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
8063 * pkgconfig/gstreamer-vaapi-x11.pc.in:
8064 * pkgconfig/gstreamer-vaapi.pc.in:
8065 Remove pkg-config files
8066 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8068 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8075 * gst-libs/gst/Makefile.am:
8076 * gst-libs/gst/codecparsers/Makefile.am:
8077 * gst-libs/gst/vaapi/Makefile.am:
8078 * gst/vaapi/Makefile.am:
8079 Remove codecparsers submodule
8080 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8082 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8087 * debian.upstream/libgstvaapi.install.in:
8089 * ext/libvpx/Makefile.am:
8090 * ext/libvpx/gstlibvpx.c:
8091 * ext/libvpx/gstlibvpx.h:
8092 * ext/libvpx/libgstcodecparsers_vpx.vers:
8093 * ext/libvpx/sources.frag:
8094 * ext/libvpx/upstream:
8095 * gst-libs/gst/codecparsers/Makefile.am:
8096 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
8097 Remove libvpx submodule
8098 We will be using upstream codecparsers always.
8099 No more internal libvpx !
8101 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8104 build: fix check for GstJpegParser
8105 Right now the local JPEG parser is always compiled because the check for the
8106 upstreamed version is broken: it looks for an non existent symbol:
8108 This patch changes that check for< GstJpegFrameHdr.
8109 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8111 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
8113 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
8114 wayland: free the frame in frame_release_callback()
8115 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
8116 decouple wl_buffer from frame).
8117 Otherwise the frame may be overwritten while it is still used by the
8119 The frame done callback (frame_done_callback()) is called, when the
8120 compositor is done processing the frame and hands it to the hardware.
8121 The buffer release callback (frame_release_callback()) is called when the
8122 buffer memory is no longer used.
8123 This can be quite some time later: E.g. if weston (with the DRM backend)
8124 puts the buffer on a hardware plane, then then buffer release callback is
8125 called when the kernel is done with the buffer. This is usually when the
8126 next frame is shown, so most likely after the frame done callback for the
8128 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
8129 destroy()" the mentioned possible leak should no longer be a problem, so
8130 reverting this change should cause no leaking buffers.
8131 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8132 https://bugzilla.gnome.org/show_bug.cgi?id=758848
8133 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8135 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8137 * gst/vaapi/gstvaapipostproc.c:
8138 vaapipostproc: check ANY caps at transform_caps()
8139 When transforming downstream caps we should check for ANY caps from peer pad,
8140 otherwise we get a segmentation fault.
8141 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8142 https://bugzilla.gnome.org/show_bug.cgi?id=759893
8144 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8146 * gst/vaapi/gstvaapisink.c:
8147 vaapisink: ignore frame if its upload failed
8148 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
8149 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
8150 ignored by the vaapisink, leading to a segmentation fault.
8151 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
8152 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
8153 segmentation fault, but doing and effort to continue rendering. This is
8154 the same behavior of ximagesink.
8155 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8156 https://bugzilla.gnome.org/show_bug.cgi?id=759332
8158 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
8161 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
8162 https://bugzilla.gnome.org/show_bug.cgi?id=759184
8164 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8166 * gst-libs/gst/vaapi/gstvaapicontext.c:
8167 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8168 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
8169 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
8170 Add 10 HEVC 10 bit decoding support
8171 Only supporting vaapidecode ! vaapisink combination for now.
8172 Missing dependencies:
8173 1: No support for P010 video format in GStreamer
8174 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
8175 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
8176 through GstVideoMeta.
8177 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
8178 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
8179 of the surfaces is implementation (driver) defined, which is P010.
8181 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8183 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
8184 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
8185 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
8186 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
8187 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
8188 chroam type and dimensions. The underlying format of the surfaces is
8189 implementation (driver) defined.
8191 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8193 * gst-libs/gst/vaapi/gstvaapisurface.h:
8194 * gst-libs/gst/vaapi/gstvaapiutils.c:
8195 Add definitions for YUV420 with more than 8 bits per channel
8197 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8199 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8200 gstvaapiporfile: Fix string representation of HEVCMain10 profile
8202 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8205 Bump version for development
8207 === release 0.7.0 ===
8209 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8214 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8219 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8224 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8229 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8231 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
8232 texture: detect GL version and use the proper API
8233 When receiving the texture from the application or the video sink, we must
8234 know it size and border. To query the texture the API has changed according to
8235 the OpenGL version used in the GL context of the application/vsink.
8236 This patch checks the current context API type and queries the texture
8237 according to this detected API.
8238 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8239 https://bugzilla.gnome.org/show_bug.cgi?id=753099
8241 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8243 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
8244 texture: check for expected target and format
8245 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
8246 formats GL_RGBA or GL_BGRA.
8247 This patch adds a debugging verification of those values.
8248 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8249 https://bugzilla.gnome.org/show_bug.cgi?id=753099
8251 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8253 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
8254 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
8255 libs: add gl3_bind_texture_2d()
8256 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
8257 needed. In particular, the Intel's Mesa implementation complains if it is
8259 This patch add a new binding function for 2D textures, without enabling
8260 gl3_bind_texture_2d()[2].
8261 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
8262 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
8263 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8264 https://bugzilla.gnome.org/show_bug.cgi?id=753099
8266 2015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8268 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
8269 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
8270 libs: add gl_get_current_api()
8271 In order to know which OpenGL API use, we must detect the API type of current
8272 context. This patch adds the function gl_get_current_api() which returns the
8274 This function is an adaptation of gst_gl_context_get_current_gl_api() from
8276 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8277 https://bugzilla.gnome.org/show_bug.cgi?id=753099
8279 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8282 * gst-libs/gst/vaapi/Makefile.am:
8283 build: Add gmodule dependency for libgstvaapi_egl
8284 https://bugzilla.gnome.org/show_bug.cgi?id=756259
8286 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8288 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
8289 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
8290 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
8291 * patches/videoparsers/series.frag:
8292 patches/videoparsers: h264: Disable passthorugh mode enabling
8293 This is a quick fix for regression introduced by the upstream
8294 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
8295 The patch is disabling the passthrough mode, otherwise it will
8296 break multi-layer mvc stream parsing.
8297 https://bugzilla.gnome.org/show_bug.cgi?id=758656
8299 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8301 * gst/vaapi/Makefile.am:
8302 * patches/videoparsers/Makefile.am:
8303 * patches/videoparsers/series.frag:
8304 build: add gsth265parse patches conditionally
8305 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
8306 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
8308 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8309 https://bugzilla.gnome.org/show_bug.cgi?id=755525
8311 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8313 * gst/vaapi/Makefile.am:
8314 build: declare correctly parse lib built files
8315 This is a continuation of commit fc8a0d12
8316 When declaring BUILT_SOURCES, those files should not be distributed. This
8317 patch avoids the distribution of the generated source code.
8318 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8319 https://bugzilla.gnome.org/show_bug.cgi?id=755525
8321 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8323 * ext/libvpx/sources.frag:
8324 build: libvpx: Add missing source file
8326 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8328 * gst/vaapi/gstvaapipostproc.c:
8329 vaapipostproc: Correctly detect the caps change
8330 This is a quick fix for regression introuduced by the
8331 commit 757833230bc73b8e3b4e31649e4618ba802bea51
8332 With out this, the gst_vaapipostproc_create() will
8334 https://bugzilla.gnome.org/show_bug.cgi?id=758543
8336 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8338 * ext/libvpx/Makefile.am:
8339 * ext/libvpx/sources.frag:
8340 build: libvpx: update the sources lists
8341 `make dist` broke since commit f06798 (libvpx: Update the submodule to
8342 libvpx-1.4.0) because the sources.frag does not contain all the module
8344 This patch updates thoroughly the sources.
8345 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8346 https://bugzilla.gnome.org/show_bug.cgi?id=755525
8348 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8350 * gst/vaapi/gstvaapipostproc.c:
8351 vaapipostproc: don't set caps change at first set
8352 When the source caps change, the filter is destroyed and recreated.
8353 Nonetheless, this happens every time the vaapipostproc starts, since the caps
8354 change detection algorithm does not take in consideration when the caps are
8356 This patch intents to be an optimization, to avoid a useless filter
8357 destroy-creation cycle when the sources caps are set for first time.
8358 The new helper function video_info_update() is a refactorization to avoid
8360 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8361 https://bugzilla.gnome.org/show_bug.cgi?id=758007
8363 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8365 * gst/vaapi/gstvaapipostproc.c:
8366 vaapipostproc: params video_info_changed() callers
8367 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
8368 swapped the the order. This didn't raise problems since the comparison of both
8369 structures were not affected by its semantics.
8370 But still it would be better to fix this to keep the coherence of the code.
8371 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8372 https://bugzilla.gnome.org/show_bug.cgi?id=758007
8374 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8376 * gst/vaapi/Makefile.am:
8377 build: declare real built files
8378 When runnig the `make dist` target from a clean tree, it fails because
8379 if could not find the copied files from codecparsers submodule.
8380 They weren't copied because they weren't declared as built sources.
8381 This patch removes the stamp mechanism and use the actual file list to copy
8382 as the built sources. Also it fixes the duplication of the parser files.
8383 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8384 https://bugzilla.gnome.org/show_bug.cgi?id=755525
8386 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8388 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8389 decoder: vp9: Fix last/golden/altref frame index setting
8390 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
8391 based on what ever reference frame indices encoded in frame header.
8393 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8395 * debian.upstream/rules:
8396 debian: remove custom parallel compilation
8397 In order to build a debian package with upstream source, the user should
8400 cp -a debian.upstream debian
8401 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
8402 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
8403 way to make a parallel build (-j8 in this case).
8404 This commit removes the script in debian/rules that detects the number of
8405 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
8407 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8408 https://bugzilla.gnome.org/show_bug.cgi?id=754087
8410 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8412 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8413 decoder: vp9: Fix PTS calculation of cloned frames
8415 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8417 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8418 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
8419 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
8420 gstvaapidecoder base calss is reponsible for handling those frames later on.
8421 No need for explicit verification of frame header's show_frame in order to
8422 do picture outputing.
8424 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8426 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8427 decoder: vp9: Fix ref picture update while doing repeat frame
8428 Don't try to do frame decoding and reference picture update
8429 while receiving a vp9 frame having show_existing_frame flag
8432 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8434 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8435 decoder: vp9: Add repeat-frame display handling
8436 If vp9 frame header come up with show_existing_frame flag set,
8437 we should duplicate the existing decoded frame as current frame to
8440 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8442 * gst/vaapi/gstvaapidecodebin.c:
8443 vaapidecodebin: add me as element co-author
8444 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8445 https://bugzilla.gnome.org/show_bug.cgi?id=757957
8447 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8449 * gst/vaapi/gstvaapidecodebin.c:
8450 vaapidecodebin: try to get display from decoder
8451 Rather than create a dummy display, if none has propagated as a context, we
8452 should try to get the one from vaapidecode.
8453 As the bin is already in READY state, the vaapidecode should be also in that
8454 state. That means that the contexts have been negotiated, and it should have
8456 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8457 https://bugzilla.gnome.org/show_bug.cgi?id=757957
8459 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8461 * gst/vaapi/gstvaapidecodebin.c:
8462 * gst/vaapi/gstvaapidecodebin.h:
8463 vaapidecodebin: add postprocessor dynamically
8464 The former approach to left the bin unfinished has some problems: the context
8465 cannot be shared because the vaapidecode is unlinked in many cases, leading to
8466 creating a VADisplay twice.
8467 Initially the bin is fully functional, constructed as
8468 (-----------------------------------)
8470 | (-------------) (-------) |
8471 |<--| vaapidecode |--->| queue |--->|
8472 | (-------------) (-------) |
8473 (-----------------------------------)
8474 When the context is shared and the VADisplay has VPP capabilities, before
8475 changing to READY state, the bin is reconfigured dynamically, adding the
8476 vaapipostproc element afeter the queue:
8477 (--------------------------------------------------------)
8479 | (-------------) (-------) (---------------) |
8480 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
8481 | (-------------) (-------) (---------------) |
8482 (--------------------------------------------------------)
8483 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8484 https://bugzilla.gnome.org/show_bug.cgi?id=757957
8486 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8488 * gst/vaapi/gstvaapidecodebin.c:
8489 vaapidecodebin: delay the bin configuration
8490 Delay the bin configuration until changing to READY state. This is because we
8491 should add the vaapipostproc element until the vaapidecode has emitted the
8492 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
8494 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8495 https://bugzilla.gnome.org/show_bug.cgi?id=757957
8497 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8499 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8500 decoder: vp9: Add crop rectangle support.
8501 Set crop rectange if:
8502 There is display_width and display_height which is different from actual width/height
8504 The changed resolution is less than the actual configured dimension of surfaces
8506 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8508 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8509 decoder: vp9: Fix the context and surface pool reset for multi resolution video
8510 Unlike other decoders, vp9 decoder doesn't need to reset the
8511 whole context and surfaces for each resolution change. Context
8512 reset only needed if resolution of any frame is greater than
8513 what actullay configured. There are streams where a bigger
8514 resolution set in ivf header or webm header but actual resolution
8515 of all frames are less. Also it is possible to have inter-prediction
8516 between these multi resolution frames.
8518 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8520 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8521 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
8522 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
8523 Preliminary fix for supproting multi resolution video decode.
8525 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8527 * gst/vaapi/gstvaapidecode.c:
8528 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
8530 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8532 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8533 decoder: vp9: Set lossless flag from frame header
8535 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8538 codecparsers: Update to gst-vaapi-branch d9f25
8539 d9f2527: codecparsers: vp9: Set lossless flag in frame header
8541 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8543 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8544 libs: vp9: remove unused symbols
8545 clang complains about a couple variables and one label which were not
8546 used. This patch removes them.
8547 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8548 https://bugzilla.gnome.org/show_bug.cgi?id=757958
8550 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8553 codecparsers: Update to gst-vaapi-branch da251bb
8554 da251bb: codecparsers: vp9: Optimize the memory allocation
8555 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
8557 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8559 * gst/vaapi/gstvaapipluginbase.c:
8560 * gst/vaapi/gstvaapipluginbase.h:
8561 plugin: guard pointers to pad query functions
8562 Since gstreamer 1.4 is not required to have pad query functions if the query
8564 This patch guards out the pad query functions for gstreamer < 1.4
8565 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8566 https://bugzilla.gnome.org/show_bug.cgi?id=757629
8568 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8570 * gst/vaapi/gstvaapiencode.c:
8571 vaapiencode: use pad query vmethods
8572 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
8573 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
8574 while keeps support for previous versions of gstreamer.
8575 This patch is relevant since GstVideoEncoder takes care of other queries that
8576 we are currently ignoring.
8577 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8578 https://bugzilla.gnome.org/show_bug.cgi?id=757629
8580 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8582 * gst/vaapi/gstvaapidecode.c:
8583 vaapidecode: return pad's template caps if no display
8584 A caps query can occur before the element has a display. In that case, the
8585 element can return its pad's template. But when the element already has a
8586 display, and the caps probe fails, the element shall return an empty caps, so
8587 the auto-plug could try with another decoder.
8588 If the element has a display and the caps probe works, then the computed caps
8590 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8591 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8593 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8595 * gst/vaapi/gstvaapidecode.c:
8596 * gst/vaapi/gstvaapisink.c:
8597 plugins: don't create display at caps query
8598 Caps query can happen before the element has a bus. The display creation should
8599 be should occur on the context negotiation, when the bus is already configured.
8600 Then at caps query no display should be created.
8601 Instead of force the display creation, we graciously fail the allowed_caps()
8603 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
8604 basetransform descendant, seems to be not affected by this, nor the encoders.
8605 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8606 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8608 2015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8610 * gst/vaapi/gstvaapidecode.c:
8611 * gst/vaapi/gstvaapiencode.c:
8612 * gst/vaapi/gstvaapipluginutil.c:
8613 * gst/vaapi/gstvaapipluginutil.h:
8614 * gst/vaapi/gstvaapipostproc.c:
8615 * gst/vaapi/gstvaapisink.c:
8616 plugins: fix context query handling
8617 The current context query handling design is flawed: the function
8618 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
8619 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
8620 pad query function should handle differently each case.
8621 This patch changes the gst_vaapi_reply_to_query() for
8622 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
8623 to match the correct context query handling.
8624 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8625 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8627 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8629 * gst/vaapi/gstvaapipluginutil.c:
8630 plugin: don't lose previous context at query
8631 When processing the GST_CONTEXT_QUERY we should not lose the previous
8632 context in the query, we should only add our display structure.
8633 This patch copies the old context, if it is there, and stamp our display on
8634 it. Otherwise, a new context is created.
8635 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8636 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8638 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8640 * gst/vaapi/gstvaapivideocontext.c:
8641 * gst/vaapi/gstvaapivideocontext.h:
8642 vaapivideocontext: add gst_vaapi_video_context_set_display()
8643 This function set the display to an already created context. This function is
8644 going to be used later.
8645 Also, gst_vaapi_video_context_new_with_display() now uses this function.
8646 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8647 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8649 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8651 * gst/vaapi/gstvaapipluginutil.c:
8652 * gst/vaapi/gstvaapivideocontext.c:
8653 * gst/vaapi/gstvaapivideocontext.h:
8654 plugins: check if display is set in sync
8655 Since the context messages are sync'ed, the display assignation happens in the
8656 same thread, hence we can know if the display was found or not as soon we call
8658 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
8659 as a new parameter, the address of the plugin's display, and reports back if
8660 the display was found and set.
8661 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8662 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8664 2015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8666 * gst/vaapi/gstvaapipluginutil.c:
8667 * gst/vaapi/gstvaapivideocontext.c:
8668 plugins: set display through context
8669 Instead of setting the display to the plugin directly after its creation, do
8670 it through the gstreamer's context mechanism, avoiding double assignations.
8671 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8672 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8674 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8676 * gst/vaapi/gstvaapivideocontext.c:
8677 vaapivideocontext: rename context structure
8678 The context structure is named "display" which is too generic. The contrary
8679 happens, for example, with GstGL, what uses the same name as the context, and
8680 its logs make more sense.
8681 This patch renames the context structure with the same name as the
8682 context, thus GST_PTR_FORMAT can pretty print it.
8683 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8685 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8687 * gst/vaapi/gstvaapivideocontext.c:
8688 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
8689 First, refactorized run_context_query() into _gst_context_run_query(), adding
8690 a new parameter: the pad direction, in order to simplify the code.
8691 Second, added a new helper function: _gst_context_query(), which is a generic
8692 context query function. It isolates the operation of running the query and
8693 sets the context if found, also it enhances the logs.
8694 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
8695 future this helper function will be merged into the core libraries of
8697 Finally, gst_vaapi_video_context_prepare() was rewritten to use
8698 _gst_context_query().
8699 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8700 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8702 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8704 * gst/vaapi/gstvaapivideocontext.c:
8705 vaapivideocontext: refactor context category debug
8706 Refactor the extraction GST_CAT_CONTEXT logging using a only once
8707 initializator, so we could get the debug category from different code
8709 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8710 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8712 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8714 * gst/vaapi/gstvaapivideocontext.c:
8715 gstvaapivideocontext: fix indentation
8716 gst-indent does not handle correctly some expression like function
8717 declaration with attributes, breaking the following expressions.
8718 This patch makes gst-indent to ignore the attributed function
8719 declartion so the followed function definition is not mangled, such
8720 as happened in commit b4154a
8721 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8722 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8724 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8726 * gst/vaapi/gstvaapipluginbase.c:
8727 plugin: chain up set_context() vmethod
8728 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
8729 the parent class in order to broadcast all its contexts when the element
8730 is added into a bin:
8731 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
8732 There is no need to guard the call, because before GStreamer 1.7, the
8733 set_context() vmethod was NULL in the element class, hence the conditional
8735 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8736 https://bugzilla.gnome.org/show_bug.cgi?id=757598
8738 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8740 * tests/simple-encoder.c:
8741 tests: simple-encoder: remove dead code
8742 The caps creation for codec state configuration is not used. Let's remove it.
8743 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8745 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8747 * gst/vaapi/gstvaapidecodebin.c:
8748 vaapidecodebin: fix a leaked display instance
8749 The display returned by gst_vaapi_video_context_get_display() increments the
8750 references. Thus, we have to unref the returned display.
8751 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8752 https://bugzilla.gnome.org/show_bug.cgi?id=757595
8754 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8756 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
8757 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
8758 libs: remove unneeded headers
8759 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
8760 required to include them in the header. It is not also required to include
8761 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
8762 exposes their structures (e.g. GLXPixmap).
8763 Nonetheless, glext.h neither glxext.h are required to include, they are
8764 already included conditionally by gl.h and glx.h, respectively.
8765 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8766 https://bugzilla.gnome.org/show_bug.cgi?id=757577
8768 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8771 codecparsers: Update to gst-vaapi-branch 0ea6792
8772 0ea6792: codecparsers: vp9: Add header comments
8773 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
8775 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8777 * gst/vaapi/gstvaapidecode.c:
8778 VP9: plugins: Add VP9 decoder
8780 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8782 * gst-libs/gst/vaapi/Makefile.am:
8783 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8784 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
8785 VP9: libgstvaapi: Add VP9 decoder
8787 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8789 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8790 * gst-libs/gst/vaapi/gstvaapiprofile.h:
8791 VP9: gstvaapiprofile: Add profile definitions
8793 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8796 VP9: build: Check availability of vp9 decoder APIs
8798 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8802 * gst-libs/gst/codecparsers/Makefile.am:
8803 VP9: Allow building vp9 codecparser internally
8805 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8808 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
8809 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
8810 e7d9217: codecparser: h264: initialize parsing structures
8811 403d400: codecparser: h265: initialize parsing structures
8813 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8816 configure.ac: don't use an undefined variable
8817 If the environment lacks of gstreamer development packages, this error will
8818 be reported to the user: "gstreamer- was not found"
8819 This is because we are using an undefined variable in the printed message. The
8820 fix simple changes the variable for the hard-coded string "1.0".
8821 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8822 https://bugzilla.gnome.org/show_bug.cgi?id=757283
8824 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8826 * gst/vaapi/gstvaapidecode.c:
8827 vaapidecode: relax guards for memory:VASurface capsfeature
8828 Though caps features are supported since GStreamer 1.2, there are some
8829 issues with the features caps negotiation in that version. Nonetheless,
8830 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
8831 feature negotiation is relaxed for GStreamer 1.4.
8832 The guard is the same as in vaapisink's caps template.
8833 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8834 https://bugzilla.gnome.org/show_bug.cgi?id=756686
8836 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8838 * gst/vaapi/gstvaapidecode.c:
8839 vaapidecode: decide allocation doesn't update srccaps
8840 The received caps query will bring the already negotiated caps, so they are
8841 not expected to change.
8842 This patch removes this verification which is dead code path.
8843 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8844 https://bugzilla.gnome.org/show_bug.cgi?id=756686
8846 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8848 * gst/vaapi/gstvaapidecode.c:
8849 * gst/vaapi/gstvaapipluginutil.c:
8850 * gst/vaapi/gstvaapipluginutil.h:
8851 vaapidecode: use caps to check the features
8852 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
8853 expensive, we check the caps from the allocation query, to check the
8855 In order to do this verification a new utility function has been implemented:
8856 gst_vaapi_caps_feature_contains().
8857 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
8858 have been refactorized.
8859 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8860 https://bugzilla.gnome.org/show_bug.cgi?id=756686
8862 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8864 * gst/vaapi/gstvaapidecode.c:
8865 vaapidecode: set format before decide allocation
8866 There is a regression from commit 3d8e5e. It was expected the buffer pool
8867 allocation occur before the caps negotiation, but it is not.
8868 This patch fixes this regression: the caps negotiation is done regardless the
8869 allocation query from downstream.
8870 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8871 https://bugzilla.gnome.org/show_bug.cgi?id=756686
8873 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
8876 build: check for patch and fix yasm check
8877 Add configure checking for GNU patch tools and fixed configure
8878 checking YASM to correct sequence.
8879 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
8880 https://bugzilla.gnome.org/show_bug.cgi?id=756690
8882 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8884 * ext/libvpx/Makefile.am:
8885 build: Remove disable-md5 option for libvpx build
8886 The configure option --disable-md5 was provided in libvpx-1.3.0 which
8887 has been removed in 1.4.0.
8889 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8891 * ext/libvpx/upstream:
8892 libvpx: Update the submodule to libvpx-1.4.0
8893 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
8895 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8898 configure: mark support for GStreamer 1.2 as obsolete.
8899 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
8900 Our goal is to support the last two stable versions of GStreamer which
8901 are 1.4 and 1.6 at the moment.
8902 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
8903 release and will get rid of those in 0.8.
8905 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8907 * gst/vaapi/gstvaapidecode.c:
8908 vaapidecode: Fix buffer copy assertion
8909 Don't try to copy the NULL buffer-codec_data.
8911 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8914 build: allow builds against GStreamer 1.7.x
8915 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8917 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8919 * gst/vaapi/gstcompat.h:
8920 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
8921 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
8922 add an implementation if gstreamer-vaapi is linked to previous versions.
8923 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8925 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8927 * gst/vaapi/gstvaapidecode.c:
8928 vaapidecode: simplify copy of GstVideoCodecState
8929 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8931 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8933 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
8934 * patches/videoparsers/series.frag:
8935 patches/videoparsers: h265parser: more API fences
8936 Add more API fences according with its version and refresh the patch.
8937 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8938 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8940 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8942 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
8943 * patches/videoparsers/series.frag:
8944 patches/videoparsers: h265parser: rename patch keeping number
8945 Refresh the patch and rename it in order to keep the patch number.
8946 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8947 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8949 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8951 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
8952 patches/videoparsers: h264parser: more API fences and refresh
8953 Add more API fences according with its version and refresh the patch.
8954 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8955 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8957 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8959 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
8960 * patches/videoparsers/series.frag:
8961 patches/videoparsers: h264parser: fix description and refresh
8962 Fix a typo in the patch description and refresh it in order to avoid the
8963 creation of .orig files and break the distcheck target.
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-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8969 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
8970 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
8971 patches/videoparsers: h264parser: refresh patches
8972 In order to avoid the creation of .orig files and break the distcheck target.
8973 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8974 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8976 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8978 * gst/vaapi/Makefile.am:
8979 build: link libgstvaapi_parse against codec parser
8980 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
8981 when running configure.
8982 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
8983 need it if builtin codec parsers are disabled.
8984 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
8985 compilation. If builtin codec parsers are enable, this variable is null, so it
8986 should work using libgstvaapi, as normal.
8987 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8988 https://bugzilla.gnome.org/show_bug.cgi?id=754845
8990 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8993 build: verify for H264 MVC and H265 SPS
8994 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
8995 the required symbols for those were added in GStreamer 1.5
8996 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
8997 parsers, the compilation fails, because the lack of those symbols.
8998 This patch verifies if the installed H264 and H265 parsers have those symbols. If
8999 they do not, the specific built in codec parsers are enabled and used.
9000 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9001 https://bugzilla.gnome.org/show_bug.cgi?id=754845
9003 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9005 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9006 decoder: h264: initialize PPS's slice_group_id
9007 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
9008 so it contains random data.
9009 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
9010 pointer uninitialized, leading to a segmentation fault when the memory is
9012 This patch prevents this by initializing the slice_group_id before the PPS
9014 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9015 https://bugzilla.gnome.org/show_bug.cgi?id=754845
9017 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
9019 * gst/vaapi/gstvaapidecode.c:
9020 vaapidecode: proper numerator and denominator for forced latency framerate
9021 https://bugzilla.gnome.org/show_bug.cgi?id=755040
9023 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9026 codecparsers: Update to gst-vaapi-branch commit f9e284b
9027 dae1a84: h264parse/h265parse: Fix negotiation crash
9028 45a9f8a: codecparsers: h265 : Fix default scaling list values
9029 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
9030 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9032 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9034 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9035 decoder: hevc: Don't flush dpb for EOS/EOB nal
9036 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
9037 the dpb_add() itself will handle the flusing(if needed) of dpb
9038 for end of sequence and end of bitstream.
9039 https://bugzilla.gnome.org/show_bug.cgi?id=754010
9041 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9043 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9044 decoder: hevc: Fix the dpb_add() based on C.5.2.3
9045 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
9046 just after the PicLatencyCnt setting of existing dpb frames.
9047 https://bugzilla.gnome.org/show_bug.cgi?id=754010
9049 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9051 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9052 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
9053 This fix is based on the V3 vesion of spec which was missing in older versions.
9054 When the current picture has PicOutputFlag equal to 1, for each picture in the
9055 DPB that is marked as "needed for output" and follows the current picture in output order,
9056 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
9057 https://bugzilla.gnome.org/show_bug.cgi?id=754010
9059 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9061 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9062 decoder: h265: Fix indentation
9064 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
9066 * gst-libs/gst/vaapi/gstvaapidecoder.c:
9067 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9068 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
9069 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9070 * gst/vaapi/gstvaapidecode.c:
9071 * gst/vaapi/gstvaapipluginutil.c:
9072 multiview: initial attempt at stereo/multiview support
9073 Add support for marking caps and buffers for multiview or
9074 stereoscopic output.
9075 https://bugzilla.gnome.org/show_bug.cgi?id=750835
9077 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9079 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9080 decoder: hevc: remove unused functions
9081 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9082 https://bugzilla.gnome.org/show_bug.cgi?id=754250
9084 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9086 * gst/vaapi/gstvaapidecode.c:
9087 vaapidecode: remove (another) unused variable
9088 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9090 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9092 * gst/vaapi/gstvaapidecode.c:
9093 vaapidecode: remove unused variable
9094 Thus silence the compilation warnings.
9096 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9098 * gst/vaapi/gstvaapidecode.c:
9099 vaapidecode: compilation fix
9100 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
9101 compilation where the toolchain uses restrictive flags as clang.
9102 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9104 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9106 * gst/vaapi/gstvaapidecode.c:
9107 vaapidecode: renegotiate if caps are not equal
9108 The use of gst_caps_is_always_compatible() for this optimization may lead to
9109 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
9110 if it is required a re-negotiation.
9111 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9112 https://bugzilla.gnome.org/show_bug.cgi?id=750835
9114 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9116 * gst/vaapi/gstvaapidecode.c:
9117 * gst/vaapi/gstvaapidecode.h:
9118 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
9119 Delaying the pool re-negotiation untill we push all decoded (and queued)
9120 frames downstream. Otherwise for the multi-resolution videos, the
9121 GstVideoVideoMemory will be having wrong resolution and which leads
9122 to nasty behaviours, especially when using software renderers.
9123 sample media file: RAP_B_Bossen_1.bin
9125 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
9126 get the final resoultion 416x240.
9127 Starting from 25 th frame, the resolution will change to 416x240. But parser
9128 elements won't report this since the effective croped resolution is same in
9129 both cases. Here the core libgstvaapi will detect this through it's internal
9130 parsing and do all context/pool destory/reset stuffs. Also it will notify this
9131 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
9132 immediately, this will not sync with the resolution of already decoded and queued
9133 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
9134 software renderer). So we have to delay the pool renegotiation in vaapidecode,
9135 untill we push all decoded frames downstream.
9136 https://bugzilla.gnome.org/show_bug.cgi?id=753914
9138 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9140 * gst/vaapi/gstvaapidecode.c:
9141 vaapidecode: Always keep a copy of input codec state
9142 Currently we are sharing the input GstVideoCodecState with
9143 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
9144 each caps change. This is troublesome in many cases, for eg: if
9145 resoultion changes with in a singe stream. Because, when ever there
9146 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
9147 fields with new resolution, but since we are using the same codecstate (ref)
9148 in gstvaapidecode.c, the caps check for input caps change will always fail.
9149 https://bugzilla.gnome.org/show_bug.cgi?id=753914
9151 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9153 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9154 decoder: hevc: Fix the scaling list scan order
9155 The default scan order of scaling lists are up-right-diagonal
9156 as per hevc specification. Use the newly implemented
9157 uprightdiagonal_to_raster conversion codecparser APIs to
9158 get the the scaling_list values in raster order, which is
9159 what the VA intel driver requires.
9161 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9163 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9164 decoder: hevc: sync with the codecparser changes
9165 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
9166 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
9168 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9170 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
9171 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
9173 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9176 codecparsers: Update to gst-vaapi-branch commit 69550f1
9177 c207c6d: codecparsers: h265: Fix tile row and column parsing
9178 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
9179 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
9180 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
9181 2f0932b: h264parse: Clear SPS info after processing
9182 f57d6b0: videoparsers: enable accept-template flag
9184 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9186 * debian.upstream/control.in:
9187 debian: add yasm as build dependency
9188 As the compilation of libvpx (for vp8 parser) is enabled by default,
9189 yasm is required by default too.
9190 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9192 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
9194 * debian.upstream/rules:
9195 debian: remove --with-gstreamer-api option
9196 It is no longer valid in gstreamer-vaapi.
9197 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
9198 [removed unused GST_API_VERSION variable]
9199 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9200 https://bugzilla.gnome.org/show_bug.cgi?id=753618
9202 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9204 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9205 wayland: rename is_cancelled to sync_failed
9206 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
9207 sense. This commit renames this variable to sync_failed.
9209 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
9211 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9212 wayland: Don't return GST_FLOW_ERROR on flushing
9213 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
9214 return FALSE which makes gst_vaapi_window_wayland_render() return
9215 FALSE which ends up posting an ERROR message in
9216 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
9218 https://bugzilla.gnome.org/show_bug.cgi?id=753598
9220 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9222 * gst/vaapi/gstvaapi.c:
9223 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
9224 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
9226 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9228 * gst/vaapi/gstvaapidecodebin.c:
9229 vaapidecodebin: check for postproc instance
9230 If the VPP's deinterlace-method is set, first we should check if the postproc
9231 is already instanced to set it. Otherwise we just store it until the VPP is
9233 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9234 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9236 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9238 * gst/vaapi/gstvaapidecodebin.c:
9239 * gst/vaapi/gstvaapipluginutil.c:
9240 * gst/vaapi/gstvaapipluginutil.h:
9241 vaapidecodebin: ensure VPP before going to READY
9242 There are sometimes that the VA-API display context is not shared among the
9243 pipeline, but it is important to know it before going to READY state (when the
9244 pipeline is already linked).
9245 One instance of this case is this:
9246 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
9247 This patch adds a new function in gstvaapipluginutil called
9248 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
9249 display, which only will be used for verify if the VAEntrypointVideoProc is
9250 available by the hardware. Afterwards, it should be unrefed.
9251 If the vaapidecodebin is going to READY state, and the element still doesn't
9252 know if VPP is available, the last resort is to create a new instance of the
9253 VA-API display and test for it.
9254 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9256 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9258 * gst/vaapi/gstvaapidecodebin.c:
9259 vaapidecodebin: post an error message if fails
9260 If the construction of the bin fails, post an error message in the bus.
9261 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9262 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9264 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9266 * gst/vaapi/gstvaapidecodebin.c:
9267 * gst/vaapi/gstvaapidecodebin.h:
9268 vaapidecodebin: has_vpp as a tri-state variable
9269 has_vpp can be UNKNOWN while the context message hasn't being received.
9270 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9271 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9273 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9275 * gst/vaapi/gstvaapivideomemory.c:
9276 gstvaapivideomemory: native format with no derived image
9277 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
9278 info based on the derived image configuration.
9279 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9280 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9282 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9284 * gst-libs/gst/vaapi/video-format.c:
9285 * gst-libs/gst/vaapi/video-format.h:
9286 * gst/vaapi/gstvaapivideomemory.c:
9287 surface pool config based on video info
9288 First added the function gst_vaapi_video_format_get_best_native(), which
9289 returns the best native format that matches a particular chroma type:
9290 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
9291 RGB32 chroma and encoded format map to NV12 too.
9292 That format is used to configure, initially, the surface's pool for the
9294 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9295 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9297 2015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9299 * gst/vaapi/gstvaapivideomemory.c:
9300 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
9301 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9302 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9304 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
9306 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9307 gstvaapiencoder: validate chroma according to the VA's RT format
9308 Before, only YUV420 color space where supported. With this patch, the
9309 encoder is queried to know the supported formats and admits YUV422
9310 color space if its available.
9311 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9312 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9314 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9316 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9317 decoder: hevc: Add calculation of WpOffsetHalfRangeC
9318 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
9319 prediction weight table values with out using any hard coding.
9320 Fixme: We don't have parser API for sps_range_extension, so
9321 assumed zero value for high_precision_offsets_enabled_flag.
9322 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9324 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9326 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9327 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
9328 Based on ITU-T rec H265(4/2015): 7-56
9329 This was a wrong equation in rec H265 (4/2013): 7-44...
9330 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9332 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9334 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9335 decoder: hevc: Fix default value assignment of pred_weight_table
9337 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9339 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9340 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
9341 Assign only if ChromaArrayType != 0..
9342 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9344 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9347 codecparsers: Update to gst-vaapi-branch commit 1c70432
9348 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
9349 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
9350 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9352 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9355 codecparsers: Update to gst-vaapi-branch commit c18b8ad
9356 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
9357 a033083: videoparsers: h265: Fix the frame start detection code
9358 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9360 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9362 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9363 decoder: hevc: Add SEI parsing
9364 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9366 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9368 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9369 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
9370 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
9371 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
9372 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
9373 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
9374 is TRUE. Assuming them as MAIN profile for now.
9375 https://bugzilla.gnome.org/show_bug.cgi?id=753226
9376 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9378 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9380 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
9381 patches/videoparsers: Fix the wrong source file path
9382 This is something wrongly typed in commit 6d7b631
9384 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9387 codecparsers: Update to gst-vaapi-branch commit b8d8be4
9388 ee7e81b: h264parse: Don't discard first AU delimiter
9389 3690fb9: h264parse: Add more NAL types for debugging output
9390 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
9391 ace61048: h265parse: expose compatible profiles to downstream
9392 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9394 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9396 * gst/vaapi/gstvaapipluginutil.c:
9397 * gst/vaapi/gstvaapivideocontext.c:
9398 * gst/vaapi/gstvaapivideocontext.h:
9399 gstvaapivideocontext: remove unused parameter
9400 gst_vaapi_video_context_prepare() received an unused parameter. This patch
9401 removes it and the structure passed by the caller.
9402 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
9403 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9405 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9407 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9408 decoder: hevc: Fix decoding of stream when it has temporal sublayers
9409 We are calculating the dpb size based on max_dec_pic_buffering.
9410 But if there are more than one temporal sublayers, we are supposed
9411 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
9412 size calculation (Assuming HighestTid as max_sub_layers_minus).
9413 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
9414 https://bugzilla.gnome.org/show_bug.cgi?id=753226
9415 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9417 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9419 * gst/vaapi/gstvaapidecode.c:
9420 * gst/vaapi/gstvaapidecodebin.c:
9421 * gst/vaapi/gstvaapiencode_h264.c:
9422 * gst/vaapi/gstvaapiencode_h265.c:
9423 * gst/vaapi/gstvaapiencode_jpeg.c:
9424 * gst/vaapi/gstvaapiencode_mpeg2.c:
9425 * gst/vaapi/gstvaapiencode_vp8.c:
9426 * gst/vaapi/gstvaapipluginutil.h:
9427 * gst/vaapi/gstvaapipostproc.c:
9428 * gst/vaapi/gstvaapisink.c:
9429 refactor vaapi caps strings for pad templates
9430 Refactor the main vaapi caps strings into three macros:
9431 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
9432 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
9433 Those are in gstvaapipluginutil.h so all the elements could use them, instead
9434 of re-declaring them every time.
9435 No functional changes.
9436 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9438 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9440 * gst/vaapi/gstvaapipostproc.c:
9441 gstvaapipostproc: fix code style
9442 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9444 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9446 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9447 decoder: hevc: Fix the decoding of dependent slice segment
9448 Decoding process for reference picture list construction needs to be
9449 invoked only for P and B slice and the value for slice_type of dependent slice
9450 segment should be taken from the previous independent slice segment header
9452 https://bugzilla.gnome.org/show_bug.cgi?id=753226
9453 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9455 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
9457 * gst/vaapi/gstvaapipluginbase.c:
9458 plugins: reduce the noise of warnings
9459 Those messagse should be attached to the object, also the lack of
9460 caps is not an error, in particular in the case of JPEG encoding.
9461 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9462 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9464 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9466 * gst-libs/gst/vaapi/gstvaapicontext.c:
9467 gstvaapicontext: fix the JPEG encoder attribs value
9468 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
9469 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
9470 assigns the returned value to the attribute.
9471 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9472 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9474 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
9476 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9477 gstvaapiencoder: framerate 0/1 is valid too
9478 Framerate 0/1 is valid, and it is particularly useful for picture
9479 encoding, such as jpeg. This patch makes the encoder to admit that
9481 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9482 https://bugzilla.gnome.org/show_bug.cgi?id=744042
9484 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9486 * gst/vaapi/gstvaapipostproc.c:
9487 vaapipostroc: GLTextureUploadMeta in sink template
9488 Advertise GLTextureUploadMeta in sink caps template.
9489 https://bugzilla.gnome.org/show_bug.cgi?id=752130
9491 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9493 * gst/vaapi/Makefile.am:
9494 * gst/vaapi/gstvaapiencode.c:
9495 * gst/vaapi/gstvaapipluginbase.c:
9496 * gst/vaapi/gstvaapipluginbase.h:
9497 * gst/vaapi/gstvaapipostproc.c:
9498 * gst/vaapi/gstvaapisink.c:
9499 * gst/vaapi/gstvaapiuploader.c:
9500 * gst/vaapi/gstvaapiuploader.h:
9501 remove gstvaapiuploader
9502 Working on bug #744042 I realized that the gstvaapiuploader is practically not
9504 This patch removes the gstvaapiuploader and add the method
9505 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
9506 the system can handle, which is used by vaapisink and vaapipostproc.
9507 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9508 https://bugzilla.gnome.org/show_bug.cgi?id=752777
9510 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9512 * gst/vaapi/gstvaapidecode.c:
9513 vaapidecode: don't lost GLTextureUpload on seek
9514 When seeking, the decoder is reset, but the buffer pool is not
9515 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
9516 pool has the GLTextureUpload meta.
9517 The decoder knows that GLTextureUpload meta was negotiated in
9518 decide_allocation(), but this method is not called when seeking.
9519 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9520 https://bugzilla.gnome.org/show_bug.cgi?id=752929
9522 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9524 * gst/vaapi/gstvaapipluginutil.c:
9525 plugins: don't use gst_pad_get_allowed_caps()
9526 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
9527 decoders, that is OK, but in the case of the postproc might lead loops,
9528 since the gst_base_transform_query_caps() forwards the query upstream
9530 Instead of gst_pad_get_allowed_caps() we only query the peer with
9531 gst_pad_peer_query_caps() using the pad's template as filter.
9532 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9533 https://bugzilla.gnome.org/show_bug.cgi?id=752558
9535 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9540 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9542 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
9543 * patches/videoparsers/series.frag:
9544 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
9545 All API/ABI changes for S3D/MVC are added in 1.5, backporting
9546 them to older verison is not recommended.
9547 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9549 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9551 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
9552 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
9554 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9556 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9557 decoder: jpeg: Align with new API/ABI changes in codecparser
9558 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9560 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9563 codecparsers: Update to gst-vaapi-branch commit 800bdb2
9564 ed13220: mpegvideometa: add meta transform function
9565 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
9566 7a51722: codecparsers: jpeg: fix docs for table parsing functions
9567 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
9568 387a39d: codecparsers: jpeg: fix up API
9569 db9d6a9: codecparsers: jpeg: tweak API a little
9570 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
9571 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
9572 4658c30: codecparsers: jpeg: fix calculation of segment size
9573 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
9574 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
9575 9422464: h264parse: fix typo in log message
9576 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
9577 77704ce: nalutils: trivial patch to check if
9578 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
9579 7862f95: Revert "codecparsers: remove ignored increment of return"
9580 54017b1: h264parse: Add support for passing stereoscopic/multiview info
9581 8667ee4: h264parse: Don't switch to passthrough on set_caps()
9582 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9584 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9586 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9587 decoder: h264: track previous reference frames.
9588 Improve closure of gaps in frame_num by strictly following and trying
9589 to fill them with previous reference frames. So, they are now tracked
9590 thus avoiding insertion of dummy ("greenish") frames.
9592 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9594 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9595 decoder: h264: fix integration of second field into the DPB.
9596 If the new picture to be added to the DPB is not a first field, then
9597 it shall be the second field of the previous picture that was added
9599 This removes the need for dpb_find_picture() now that we track the
9600 immediately preceding decoded picture, in decode order.
9602 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9604 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9605 decoder: h264: fix closure of "other-field" gap.
9606 When a dummy "other-field" is inserted, it is assumed to inherit the
9607 reference flags from the first field, and the sliding window decoded
9608 reference picture marking process is also executed so that corrupted
9609 frames are moved out as early as possible.
9610 While doing so, we also try to output frames that now contain a single
9611 valid field picture, prior to inserting any other picture into the DPB.
9612 Note: this may be superfluous currently based on the fact that dpb_add()
9613 combines the two most recent pairable fields, but this process would be
9614 further simplified later on.
9616 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9618 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9619 decoder: h264: track corrupted frames.
9620 Mark the picture as "corrupted" if it is reconstructed from corrupted
9621 references or if those references are fake, e.g. resulting from lost
9623 This is useful for notifying the upper layer, or downstream elements,
9624 that the decoded frame may contain artefacts.
9625 https://bugzilla.gnome.org/show_bug.cgi?id=703921
9627 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9629 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
9630 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
9631 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
9632 * gst/vaapi/gstvaapidecode.c:
9633 decoder: add initial infrastructure for marking corrupted output.
9634 Add initial infrastructure in core codec library and vaapidecode to mark
9635 corrupted frames as such. A corrupted frame is such a frame that was
9636 reconstructed from invalid references for instance.
9637 https://bugzilla.gnome.org/show_bug.cgi?id=751434
9638 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9640 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9643 Bump version for development
9645 === release 0.6.0 ===
9647 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9652 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9657 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9659 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9660 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
9661 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
9662 Right now there is not a primary ranked parser for vc1 and the demuxers
9663 delivers caps without specifying the profile. This situation is not an issue
9664 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
9665 explicit profile defined in the negotiated caps.
9666 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
9667 negotiation admits caps subsets try outs.
9668 This patch solves the issue ignoring the profile negotiation in the caps. For
9669 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
9670 done without the vc1 parser, such as happens in gstreamer 1.5.
9671 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9673 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9675 * gst/vaapi/gstvaapi.c:
9676 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
9677 Unfortunately vaapidecodebin element is not seems to be stable
9678 enough for autoplugging ahead of vaapidecode.
9679 Lowering the rank for now (cosidering the immediate 0.6 release).
9680 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
9681 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9683 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9685 * gst-libs/gst/vaapi/Makefile.am:
9686 build: Add missing CFLAGS to Makefile.am
9688 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9690 * gst-libs/gst/vaapi/gstvaapifilter.c:
9691 gstvaapifilter: Only register STE property if it supported by corresponding VA library
9692 Fix the regression introduced in commit eb465fb.
9693 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
9694 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9696 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9698 * gst/vaapi/gstvaapipostproc.c:
9699 vaapipostproc: no format convert on GL tex upload meta
9700 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
9701 color format of the buffer.
9702 https://bugzilla.gnome.org/show_bug.cgi?id=748184
9704 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9706 * gst-libs/gst/vaapi/gstvaapifilter.c:
9707 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
9708 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
9709 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9711 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9713 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9714 encoder:h265: Fix the check for packed-header support
9715 Use VA_ENC_PACKED_HEADER_* definition for checking.
9716 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9718 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9720 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9721 encoder:h264: Fix the check for packed-header support
9722 Use VA_ENC_PACKED_HEADER_* definition for checking.
9723 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9725 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9727 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9728 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
9729 One buffering_period() SEI message shall be present in every IDR access unit
9730 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
9731 use a non-CQP mode, e.g. CBR. In other words, when
9732 nal_hrd_parameters_present_flag is set to 1.
9733 One picture_timing() SEI messages shall be present in every access unit
9734 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
9735 https://bugzilla.gnome.org/show_bug.cgi?id=722734
9736 https://bugzilla.gnome.org/show_bug.cgi?id=751831
9737 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9739 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9741 * gst/vaapi/gstvaapidecodebin.c:
9742 vaapidecodebin: notify if vpp is disabled
9743 When the system is aware that VPP is not available by the VA driver,
9744 it would be useful to notify to the user that the disable-vpp property
9746 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9748 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9750 * gst/vaapi/gstvaapidecodebin.c:
9751 * gst/vaapi/gstvaapidecodebin.h:
9752 vaapidecodebin: enable vpp if it is available
9753 Instead of creating and adding VPP into the bin at setup, we wait until
9754 we are sure the VA driver supports it. We know that when the VA video
9755 context is received by the bin. Afterwards, it is decided to instanciate
9756 and link the VPP or not.
9757 This is more efficient and safer than waiting the VPP to fail and then
9759 https://bugzilla.gnome.org/show_bug.cgi?id=749554
9761 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9763 * tests/test-display.c:
9764 * tests/test-windows.c:
9765 tests: Fix compilation while enabling egl as the only renderer in build
9766 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
9768 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9771 configure: fix the build while enabling egl as the only renderer
9773 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9776 libs: Bump library major version
9778 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9780 * gst/vaapi/gstvaapi.c:
9781 * gst/vaapi/gstvaapidecodebin.c:
9782 * gst/vaapi/gstvaapiencode.c:
9783 * gst/vaapi/gstvaapiencode_jpeg.c:
9784 * gst/vaapi/gstvaapipluginbase.c:
9785 * gst/vaapi/gstvaapipluginutil.c:
9786 * gst/vaapi/gstvaapipostproc.c:
9787 * gst/vaapi/gstvaapivideobufferpool.c:
9788 * gst/vaapi/gstvaapivideocontext.c:
9789 * gst/vaapi/gstvaapivideomemory.c:
9790 * gst/vaapi/gstvaapivideometa.c:
9791 gst/vaapi: Switch to upstreram like indentation.
9792 gst-indent for all gst/vaapi/*.c source files
9794 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9796 * gst/vaapi/gstvaapidecodebin.c:
9797 * gst/vaapi/gstvaapidecodebin.h:
9798 vaapidecodebin: Add property to disable VPP
9799 Adding a new propery "disable-vpp", enabling it will prevent
9800 the insertion of vaapipostproc child element.
9801 This is helpful in debugging, specifically to narrow-down the
9802 vaapidecodebin/vaapipostproc related negotiation issues.
9803 No support for run-time disabling for now.
9804 https://bugzilla.gnome.org/show_bug.cgi?id=745901
9806 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9808 * gst/vaapi/gstvaapipostproc.c:
9809 vaapipostproc: Fix wrong selection of passthrough mode.
9810 The Current code path is falling back to passthorugh mode if there is no
9811 vpp property set by the user explictily. But we should not use the
9812 passthrough mode if the negotiated src pad caps have a differnt color space
9813 format than sink pad caps (Even though the user didn't set the format property
9815 https://bugzilla.gnome.org/show_bug.cgi?id=748184
9816 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9818 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9820 * gst/vaapi/gstvaapipostproc.c:
9821 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
9822 This is a workaround to deal with the va-intel-driver for non-native
9823 formats while doing advanced deinterlacing. The format of reference surfaces must
9824 be same as the format used by the driver internally for motion adaptive
9825 deinterlacing and motion compensated deinterlacing.
9826 A permanent solution could be to do the color space conversion internally
9827 for reference surfaces.
9828 https://bugzilla.gnome.org/show_bug.cgi?id=730925
9829 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9831 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
9833 * gst/vaapi/gstvaapisink.c:
9834 Work around ABBA deadlock between vaapisink and vaapipostproc
9835 vaapisink takes the display lock, then does a gst_buffer_replace which can
9836 take the lock on the gst_vaapi_video_pool.
9837 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
9838 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
9839 surfaces, which means that gst_vaapi_surface_create is
9840 called. gst_vaapi_surface_create takes the display lock.
9841 If vaapisink and vaapipostproc are in different threads, and this happens,
9842 you get a deadlock. vaapisink holds the display lock, and wants the
9843 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
9844 and wants the display lock.
9845 Work around this by releasing the display lock in vaapisink around the
9847 https://bugzilla.gnome.org/show_bug.cgi?id=738249
9848 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
9849 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9851 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
9853 * gst/vaapi/gstvaapidecodebin.c:
9854 * gst/vaapi/gstvaapidecodebin.h:
9855 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
9856 https://bugzilla.gnome.org/show_bug.cgi?id=745901
9858 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9860 * gst/vaapi/gstvaapipostproc.c:
9861 vaapipostproc: log negotiated caps
9863 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9865 * gst/vaapi/gstvaapipostproc.c:
9866 vaapipostproc: remove useless debug message
9868 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9870 * gst/vaapi/gstvaapidecode.c:
9871 vaapidecode: log negotiated src/sink caps
9873 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9875 * gst/vaapi/gstvaapisink.c:
9876 vaapisink: error handling if rendering fails
9877 This patch enhance the code path when an error is found when rendering a
9879 If the video meta doesn't contain a surface proxy or a surface, a warning
9881 If the rendering backend fails, a error message is posted in the bus.
9882 https://bugzilla.gnome.org/show_bug.cgi?id=749382
9884 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9886 * gst/vaapi/gstvaapisink.c:
9887 vaapisink: Fix the conditional pad template creation.
9889 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9891 * tests/Makefile.am:
9892 build: Don't build simple-encoder test program if there is no VA Encoding support
9893 This will fix the build error against older VA-APIs <= 0.32
9895 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9897 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
9898 * gst-libs/gst/vaapi/gstvaapicompat.h:
9899 Fix build error for older VA-API versions
9900 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
9901 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
9904 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9906 * gst/vaapi/gstvaapisink.c:
9907 vaapisink: Fix the capsfeature advertisement in padtemplate
9908 This fixes the regression introduced in 64acc74.
9909 If a pad supports multiple set of capsfeatures, it needs to add
9910 multiple equal structures with different feature sets to the caps.
9911 Because caps structures with the same name but with a non-equal
9912 set of caps features are not compatible.
9913 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
9914 https://bugzilla.gnome.org/show_bug.cgi?id=750095
9916 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
9918 * gst/vaapi/gstvaapisink.c:
9919 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
9920 https://bugzilla.gnome.org/show_bug.cgi?id=750095
9921 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9922 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9924 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
9926 * gst/vaapi/gstvaapipluginbase.c:
9927 vaapipluginbase: Override downstream allocation reply if no pool
9928 If the downstream replied without a pool, then override it.
9929 https://bugzilla.gnome.org/show_bug.cgi?id=748559
9931 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9933 * gst/vaapi/gstvaapipostproc.c:
9934 * gst/vaapi/gstvaapipostproc.h:
9935 vaapipostproc: add color balance interface
9936 https://bugzilla.gnome.org/show_bug.cgi?id=720376
9938 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9940 * gst-libs/gst/vaapi/gstvaapifilter.c:
9941 * gst-libs/gst/vaapi/gstvaapifilter.h:
9942 * gst/vaapi/gstvaapipostproc.c:
9943 * gst/vaapi/gstvaapipostproc.h:
9944 vaapipostproc: add skin tone enhancement
9945 Added the 'skin-tone-enhancement' property to vaapostproc.
9946 https://bugzilla.gnome.org/show_bug.cgi?id=744088
9948 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9950 * docs/reference/libs/libs-docs.xml.in:
9951 doc: add VA-API reference in freedesktop
9953 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9955 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
9956 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
9957 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
9958 patches/videoparsers: rebase all the h264parse patches
9959 In order to avoid the creation of .orig files and break the distcheck target
9961 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9963 * ext/libvpx/Makefile.am:
9964 build: don't build in parallel libvpx
9965 This fixes the distcheck -j XX target.
9967 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9969 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9970 encoder: jpeg: Fix the packed header generation
9971 This is a work-around to satisfy the va-intel-driver.
9972 Normalize the quality factor and scale QM values (only for packed header
9973 generation) similar to what VA-Intel driver is doing . Otherwise the
9974 generated packed headers will be wrong, since the driver itself is
9975 scaling the QM values using the normalized quality factor.
9976 https://bugzilla.gnome.org/show_bug.cgi?id=748335
9977 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9979 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9981 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9982 decoder: h264: fix uninitialized variables in avcC mode.
9983 Fix uninitialized variables when decoding SPS and PPS NAL units from
9984 "codec-data" buffers. This is particularly important when seeking ops
9985 are involved, and the new persistent states are used more often.
9986 https://bugzilla.gnome.org/show_bug.cgi?id=750094
9988 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9990 * gst/vaapi/gstvaapidecode.c:
9991 vaapidecode: remove unneeded casting
9992 And a code-style fix
9994 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9996 * gst/vaapi/gstvaapidecode.c:
9997 vaapidecode: calculate decoding latency
9998 This is a naïve approach to the calculation of the VA-API decoding latency. It
9999 takes into consideration when the frame-rate has some insane value.
10000 https://bugzilla.gnome.org/show_bug.cgi?id=740419
10002 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
10005 configure: Compiling against libgstgl requires libgstvideo
10006 Fix detection of the GstGL helper headers in uninstalled
10009 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10011 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10012 encoder: hevc: Fix the size over-flow for encoded buffer.
10013 The approximation of 6 times compression ratio migh not
10014 work in all cases. Especially when enabling I frames.
10015 Provide large enough size for coded-buffer creation.
10017 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10019 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10020 encoder: vp8: Fix the size over-flow for encoded buffer.
10021 The approximation of 4 times compression ratio will not
10022 work in all cases. Especially when enabling I frames.
10023 Provide large enough size for coded-buffer creation.
10025 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10027 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10028 encoder: hevc: fix bug in multi slice encoding.
10029 This is a work-around for satisfying the VA-Intel driver.
10030 The driver only support slices begin from CTU row start address.
10031 Multi-Slice encoding also requires a fix in va-intel-driver:
10032 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
10033 https://bugzilla.gnome.org/show_bug.cgi?id=749854
10034 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10036 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10038 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10039 decoder: h264: add initial support for loss of pictures.
10040 Implement decoding process for gaps in frame_num (8.5.2). This
10041 also somewhat supports unintentional loss of pictures.
10042 https://bugzilla.gnome.org/show_bug.cgi?id=745048
10043 https://bugzilla.gnome.org/show_bug.cgi?id=703921
10044 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
10045 [fixed derivation of POC, ensured clone is valid for reference,
10046 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
10047 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10049 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10051 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10052 decoder: h264: add support for missing first field.
10053 Try to identify missing first fields too, thus disregarding any
10054 intermediate gaps in frames. We also assume that we keep the same
10055 field sequence, i.e. if previous frames were in top-field-first
10056 (TFF) order, then so are subsequent frames.
10057 Note that insertion of dummy first fields need to operate in two
10058 steps: (i) create the original first field that the current field
10059 will inherit from, and (ii) submit that field into the DPB prior
10060 to initializing the current (other) field POC values but after any
10061 reference flag was set. i.e. copy reference flags from the child
10062 (other field) to the parent (first field).
10063 https://bugzilla.gnome.org/show_bug.cgi?id=745048
10065 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10067 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10068 decoder: h264: add support for missing second field.
10069 Interlaced H.264 video frames always have two fields to decode and
10070 display. However, in some cases, e.g. packet loss, one of the field
10071 can be missing. This perturbs the reference picture marking process,
10072 whereby the number of references available in DPB no longer matches
10073 the expected value.
10074 This patch adds initial support for missing field within a decoded
10075 frame. The current strategy taken is to find out the nearest field,
10076 by POC value, and with the same parity.
10077 https://bugzilla.gnome.org/show_bug.cgi?id=745048
10079 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10081 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10082 decoder: h264: improve tracking of "top-field-first" flag.
10083 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
10084 does not mandate it. This will be useful for tracking missing fields, and
10085 also for more correct _split_fields() implementation for frames in the DPB.
10087 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10089 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10090 decoder: h264: skip all pictures prior the first I-frame.
10091 Don't try to decode pictures until the first I-frame is received within
10092 the currently active sequence. There is no point is decoding and then
10093 displaying frames with artifacts.
10095 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10097 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10098 decoder: h264: fix processing of EOSEQ NAL.
10099 Fix decoding of end_of_seq() NAL unit so that to not submit the current
10100 picture for decoding again. This is pretty vintage code that dates back
10101 before the existing of the whole decoder units machinery.
10102 One issue that could be arising if that code was kept is that we could
10103 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
10104 Once without the decode_only flag set, and once with that flag set. The
10105 end result is that the GstVideoDecoder would release the codec frame
10106 twice, thus releasing stale data.
10107 In short, the piece of code that is removed by this patch is for once
10108 completely obsolete for a while, and secondly error-prone in corner
10111 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
10113 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10114 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10115 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
10116 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
10117 decoder: add utility function to clone picture objects.
10118 https://bugzilla.gnome.org/show_bug.cgi?id=703921
10119 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
10120 [added cosmetic changes, fixed propagation of "one-field" flag to
10121 children, fixed per-codec clone modes (h264)]
10122 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10124 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
10126 * gst/vaapi/Makefile.am:
10127 build: don't compile HEVC encoder if not supported
10129 (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
10130 https://bugzilla.gnome.org/show_bug.cgi?id=749954
10131 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
10132 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10134 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
10136 * gst-libs/gst/vaapi/gstvaapicompat.h:
10137 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10138 HEVC: decode: add missing va_dec_hevc header
10139 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
10140 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10141 https://bugzilla.gnome.org/show_bug.cgi?id=749953
10143 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10145 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10146 mpeg2: fix PTS cache for GOP start.
10147 If the GOP temporal sequence number (TSN) is interpolated from a valid
10148 PTS, then we need to compensate that PTS corresponding to the start of
10149 GOP with the next picture to be decoded, which shall be an I-frame,
10150 based on its sequence number.
10151 https://bugzilla.gnome.org/show_bug.cgi?id=748676
10153 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10155 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10156 mpeg2: avoid crash when seeking with debug logs
10157 Move down the debug message when the state of the decoder is verified
10158 so the slice header is not NULL.
10160 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
10162 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10163 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
10164 Reset state and add some checks for safe state to avoid a crash and
10165 a warning after the decoder is destroyed/recreated during a seek.
10167 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10169 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
10170 * patches/videoparsers/series.frag:
10171 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
10172 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10174 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10176 * ext/codecparsers:
10177 codecparsers: Update to gst-vaapi-branch commit 20ee952
10178 b7dded3: h264parse: don't consider unknown stream-format as avc
10179 5110ad9: h264parse: fix up handling of input caps corner cases
10180 e51db3e: h264parse: Remove dead code
10181 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
10182 8482957: h265parse: Fix profile, tier and level setting in caps
10183 4649acb: h265parse: Fix the memory freeing of stored VPS nals
10184 f2beeb7: h265parse: Fix source caps to report cropped dimensions
10185 6886a31: h264parse: Fix profile and level setting in caps
10186 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
10187 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
10188 53074fc: build: Upgrade GStreamer dependency to 1.0
10189 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10191 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10193 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10194 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
10195 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10197 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10199 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10200 HEVC: decode: Update Cropping Rectangle
10201 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10203 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10205 * gst/vaapi/Makefile.am:
10206 * gst/vaapi/gstvaapi.c:
10207 * gst/vaapi/gstvaapiencode_h265.c:
10208 * gst/vaapi/gstvaapiencode_h265.h:
10209 HEVC_Encode: Add HEVC(h265) Encoder plugin
10210 https://bugzilla.gnome.org/show_bug.cgi?id=748874
10211 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10213 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10215 * gst-libs/gst/vaapi/Makefile.am:
10216 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10217 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
10218 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
10219 https://bugzilla.gnome.org/show_bug.cgi?id=748874
10220 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10222 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10225 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
10226 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10227 https://bugzilla.gnome.org/show_bug.cgi?id=748874
10229 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10231 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
10232 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
10233 gstvaapiutils_h265: Add H265 Tier specific utility functions
10234 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
10235 -- New API: gst_vaapi_utils_h265_get_tier_string()
10236 https://bugzilla.gnome.org/show_bug.cgi?id=748874
10237 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10239 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10241 * docs/reference/plugins/Makefile.am:
10242 doc: conditional linking for scanner
10243 Add x11 library only if it is enabled.
10244 https://bugzilla.gnome.org/show_bug.cgi?id=749018
10246 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10248 * docs/reference/plugins/plugins.types:
10249 doc: fix scanner compilation warning
10250 https://bugzilla.gnome.org/show_bug.cgi?id=749018
10252 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10254 * docs/reference/libs/libs-docs.xml.in:
10255 * docs/reference/libs/libs-sections.txt:
10256 doc: update sections and symbols
10257 https://bugzilla.gnome.org/show_bug.cgi?id=749018
10259 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10263 * debian.upstream/Makefile.am:
10264 * docs/Makefile.am:
10265 * docs/reference/Makefile.am:
10266 * docs/reference/libs/Makefile.am:
10267 * docs/reference/plugins/Makefile.am:
10269 * ext/libvpx/Makefile.am:
10271 * gst-libs/Makefile.am:
10272 * gst-libs/gst/Makefile.am:
10273 * gst-libs/gst/base/Makefile.am:
10274 * gst-libs/gst/codecparsers/Makefile.am:
10275 * gst-libs/gst/vaapi/Makefile.am:
10277 * gst/vaapi/Makefile.am:
10278 * patches/Makefile.am:
10279 * patches/videoparsers/Makefile.am:
10280 * pkgconfig/Makefile.am:
10281 * tests/Makefile.am:
10283 This patch handles dinamically the gitignore files with git.mk[1].
10284 Removed the automake variable MAINTAINERCLANFILES in most of the
10285 Makefile.am files since now it is handled by the top one.
10286 1. https://github.com/behdad/git.mk/blob/master/git.mk
10287 https://bugzilla.gnome.org/show_bug.cgi?id=749321
10289 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10291 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10292 wayland: sync() when destroy()
10293 Before pushing a the new frame, the render() method calls sync() to flush the
10294 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
10295 to a memory leak too.
10296 This patch calls sync() in the destroy() to flush the pending frames before
10297 destroying the window.
10298 Also a is_cancelled flag is added. This flag tells to not flush the event
10299 queue again since the method failed previously or were cancelled by the user.
10300 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10302 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
10304 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10305 * gst-libs/gst/vaapi/gstvaapiwindow.h:
10306 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10307 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10308 * gst/vaapi/gstvaapisink.c:
10309 vaapisink: implement unlock/unlock_stop for wayland
10310 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
10311 shutting down. This can happen e.g. if the wayland compositor exits while
10312 the pipeline is running.
10314 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
10315 * splitted the patch removing wl_display_dispatch_queue()
10316 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10317 https://bugzilla.gnome.org/show_bug.cgi?id=747492
10318 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10320 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10323 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10324 wayland: wl_display_dispatch_queue() can block forever.
10325 wl_display_dispatch_queue() might prevent the pipeline from shutting
10326 down. This can happen e.g. if the wayland compositor exits while the
10327 pipeline is running.
10328 This patch replaces it with these steps:
10329 - With wl_display_prepare_read() all threads announce their intention
10331 - wl_display_read_events() is thread save. On threads reads, the other
10332 wait for it to finish.
10333 - With wl_display_dispatch_queue_pending() each thread dispatches its
10335 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
10336 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
10337 * stripped out the unlock() unlock_stop() logic
10338 * stripped out the poll handling
10339 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10340 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10341 https://bugzilla.gnome.org/show_bug.cgi?id=747492
10343 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10345 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10346 wayland: rename frame for last_frame
10347 Since frame in the private data means the last frame sent, it would
10348 semantically better use last_frame.
10349 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
10351 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10353 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10355 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10356 wayland: use a counter as sync flag
10357 Wayland window has a pointer to the last pushed frame and use it to set the
10358 flag for stopping the queue dispatch loop. This may lead to memory leaks,
10359 since we are not keeping track of all the queued frames structures.
10360 This patch removes the last pushed frame pointer and change the binary flag
10361 for an atomic counter, keeping track of number of queued frames and use it for
10362 the queue dispatch loop.
10363 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10365 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10367 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10368 wayland: decouple wl_buffer from frame
10369 This patch takes out the wayland's buffer from the the frame structure. The
10370 buffer is queued to wayland and destroyed in the "release" callback. The
10371 frame is freed in the surface's "done" callback.
10372 In this way a buffer may be leaked but not the whole frame structure.
10373 - surface 'done' callback is used to throttle the rendering operation and to
10374 unallocate the frame, but not the buffer.
10375 - buffer 'release' callback is used to destroy wl_buffer.
10376 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
10378 * kept the the event_queue for buffer's proxy
10379 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10380 https://bugzilla.gnome.org/show_bug.cgi?id=749078
10382 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10384 * gst/vaapi/gstvaapisink.c:
10385 vaapisink: fix indentation
10387 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10389 * debian.upstream/Makefile.am:
10390 * ext/libvpx/Makefile.am:
10391 * gst-libs/gst/vaapi/Makefile.am:
10392 * gst/vaapi/Makefile.am:
10393 * tests/Makefile.am:
10394 build: fix make distcheck
10395 This patch fixes several issues found when running the `make distcheck`
10397 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
10399 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
10401 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
10402 - The make target distcleancheck failed because some autogenerated files
10403 were not handled with the DISTCLEANFILES variable.
10404 Note: `make distcheck -jXX` is not currently supported.
10406 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10408 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
10409 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
10410 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
10411 h264parse: update patches with upstream
10412 These patches didn't applied cleanly, breaking the `make distcleancheck`
10413 target. Re-sync'ed the patches against the current git's submodule.
10415 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10417 * tests/simple-encoder.c:
10418 tests: simple-encoder: fix build warnings on 64-bit platforms.
10419 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
10420 importantly fix warnings spitted out during build on 64-bit platforms.
10421 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
10422 g_warning ("Invalid VAAPI buffer size (%d)", size);
10424 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
10425 g_warning ("Failed to create output buffer of size %d", size);
10428 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10430 * gst/vaapi/gstvaapipluginbase.c:
10431 * gst/vaapi/gstvaapipluginutil.c:
10432 * gst/vaapi/gstvaapipluginutil.h:
10433 * gst/vaapi/gstvaapivideocontext.h:
10434 plugins: remove gstreamer-0.10 crumbs
10435 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
10436 Still, its definition was still in the code. This patch removes it.
10437 https://bugzilla.gnome.org/show_bug.cgi?id=749113
10439 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10441 * tests/Makefile.am:
10442 * tests/simple-encoder.c:
10443 * tests/y4mreader.c:
10444 * tests/y4mreader.h:
10445 tests: add simple-encoder program
10446 This patch adds a simple-encoder test program that uses libgstvaapi for video
10447 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
10448 format. That can be from a regular file or standard input when the input
10450 Usage: simple-encoder [options]* <source>
10452 --output|-o output file name
10453 --codec|-c codec to use for video encoding
10454 --bitrate|-b desired bitrate (kbps)
10455 By default, and as an initial patch, the encoded stream shall conform to the
10456 minimally supported profile. That is "Constrained Baseline Profile" for H.264
10457 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
10458 generated by libgstvaapi.
10459 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
10460 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
10461 * general code clean-up
10462 * removed the yuv reader thread
10463 * re-wrote the y4m file parser
10464 * updated used API fixed some wrong usage
10465 * fixed a lot of memory leaks
10466 * added the bitrate setting
10467 * keep fps' numerator and denominator
10468 * simplified the thread control
10469 * removed custom logging and use glib
10470 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10471 https://bugzilla.gnome.org/show_bug.cgi?id=719528
10473 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10475 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10476 libs: trivial documentation fix
10477 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
10478 are not errors, so they do not have the ERROR namespace.
10479 This patch fixes this typo in documentation.
10481 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
10483 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10484 window: Correct prototype to match implementation
10485 On s390x, guintptr and GstVaapiID are not compatible types. The
10486 implementation of gst_vaapi_window_new_internal() and all its callers
10487 seem to assume that its third argument is a GstVaapiID, while the
10488 header gives it guintptr type.
10489 https://bugzilla.gnome.org/show_bug.cgi?id=744559
10491 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10493 * gst/vaapi/gstvaapidecode.c:
10494 * gst/vaapi/gstvaapidecodebin.c:
10495 vaapidecode: add guards for disabled codecs.
10496 Fix link when building plugin elements without HEVC support. e.g. don't
10497 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
10498 support HEVC enabled in libgstvaapi.
10499 Also, drop disabled codecs from static template caps. Add the missing
10500 HEVC static template caps into vaapidecodebin too.
10502 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10505 * gst-libs/gst/vaapi/glibcompat.h:
10506 build: upgrade glib dependency to 2.32
10507 Since bug #745728 was fixed the oldest supported version of GStreamer is
10508 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
10510 This patch changes the required version of glib in configure.ac and removes
10511 the hacks in glibcompat.h
10512 https://bugzilla.gnome.org/show_bug.cgi?id=748698
10514 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10516 * gst/vaapi/gstvaapipluginbase.c:
10517 plugins: check if the pool config is already set
10518 In commit 97b768, a regression for GStreamer 1.2 was introduced:
10519 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
10520 config option is already set. This patch adds an inline function to
10521 first verify if the option is not in the pool config berfore add it.
10523 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10525 * gst/vaapi/gstvaapipostproc.c:
10526 vaapipostproc: tune up a couple of log messages
10527 In order to reduce the noise, the query type log was downgrade from INFO to
10528 DEBUG, and the shared display address log message is assigned to the object.
10530 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10532 * gst/vaapi/gstvaapipluginbase.c:
10533 plugins: check gst_buffer_pool_set_config()
10534 Check the return value of gst_buffer_pool_set_config(). If it fails an error
10535 message is posted in the bus.
10537 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10539 * gst/vaapi/gstvaapipluginbase.c:
10540 plugins: more specific log message
10541 Be more specific in the log message about the reason of creating a new pool.
10543 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10545 * gst/vaapi/gstvaapipluginbase.c:
10546 plugins: delete unused variable
10547 need_pool is a boolean variable extracted from the allocation query, but it is
10548 not used afterwards.
10550 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
10552 * gst/vaapi/gstvaapipluginbase.c:
10553 vaapipluginbase: Update the pool if there was no pool in the downstream reply
10554 Fix regression introduced by bd866479, the query after decide_allocation()
10555 always needs a pool in the first slot.
10556 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10557 https://bugzilla.gnome.org/show_bug.cgi?id=748559
10559 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
10561 * gst/vaapi/gstvaapivideobufferpool.c:
10562 videopool: Free members before chaining up finalize
10563 The finalize function in GObject frees the object memory, so
10564 everything else needs to have been freed before.
10565 https://bugzilla.gnome.org/show_bug.cgi?id=748563
10567 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
10569 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
10570 wayland: don't leak the registry proxy
10571 Release the registry proxy when closing the display.
10572 https://bugzilla.gnome.org/show_bug.cgi?id=748564
10574 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10576 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10577 wayland: refactor _sync() method and rename callback
10578 This patch only intends to improve readability: in the method
10579 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
10581 Also renames the frame_redraw_callback() callback into frame_done_callback(),
10582 which is a bit more aligned to Wayland API.
10584 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
10586 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10587 wayland: free frame in buffer release callback
10588 The Wayland compositor may still use the buffer when the frame done
10589 callback is called.
10590 This patch destroys the frame (which contains the buffer) until the
10591 release callback is called. The draw termination callback only controls
10592 the display queue dispatching.
10593 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10594 https://bugzilla.gnome.org/show_bug.cgi?id=747492
10596 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10598 * gst/vaapi/gstvaapidecode.c:
10599 vaapidecode: refactor gst_vaapidecode_internal_flush()
10600 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
10601 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
10602 shares the same error message of gst_vaapidecode_internal_flush() when flush
10605 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10607 * gst/vaapi/gstvaapidecode.c:
10608 vaapidecode: refactor gst_vaapidecode_destroy()
10609 Add the method gst_vaapidecode_purge(). This method releases the
10610 flushed frames from the decoder.
10611 This new method add more readablity to gst_vaapidecode_destroy()
10613 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
10615 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10616 * gst/vaapi/gstvaapidecode.c:
10617 vaapidecode: Tell the base class about released frames on close
10618 The base class needs to be informed about frames that were still queued
10619 in the decoder on release, otherwise they are leaked.
10620 https://bugzilla.gnome.org/show_bug.cgi?id=747999
10622 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10624 * gst/vaapi/gstvaapidecode.c:
10625 vaapidecode: reduce logging noise
10626 When a frame is rejected by downstream, the message is logged twice. This
10627 patch removes one of those logging messages.
10628 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
10629 the log message from error to info.
10631 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
10633 * gst/vaapi/gstvaapidecode.c:
10634 vaapidecode: Use the GstVideoDecoder error reporting function
10635 This way, the decoder won't stop on the first decoding error,
10636 in most cases it can recover after some glitchiness.
10637 https://bugzilla.gnome.org/show_bug.cgi?id=744620
10639 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
10641 * gst/vaapi/gstvaapipluginbase.c:
10642 vaapipluginbase: The allocation query can return without a pool
10643 It is possible to return the min/max/size without actually providing
10644 a pool. This way the source knows how many buffers downstream needs.
10645 https://bugzilla.gnome.org/show_bug.cgi?id=748076
10647 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10650 * gst/vaapi/Makefile.am:
10651 * gst/vaapi/gstvaapiparse.c:
10652 * gst/vaapi/gstvaapiparse.h:
10653 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
10654 * patches/videoparsers/series.frag:
10655 plugins: Add h265 videoparser element "vaapiparse_h265"
10656 This is a mirror of h265parse element in upstream gst-plugins-bad.
10657 There could be additional patches but all should go to upstream.
10658 This is for making development faster.
10659 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
10661 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10663 * ext/codecparsers:
10664 codecparsers: Update to gst-vaapi-branch commit 43a0368
10665 45f1c28: codecparser: h265: Fix nal unit size checking
10666 f25987b: codecparser: h265: Calculate crop rectangle dimensions
10667 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
10668 4c8ec41: Add h265 videoparser plugin source files
10670 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10673 autogen: drop videoutils submodule.
10675 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10677 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10678 decoder: hevc: cosmetics.
10679 Mostly coding style updates. Avoid integer signess inconsistencies.
10680 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
10682 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10684 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10685 decoder: hevc: Add Support for tiled video decoding
10686 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
10687 the tile column width and tile row height should be calculated.
10688 Equations: 6-1, 6-2
10689 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
10691 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10693 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10694 decoder: hevc: Fix decoding when there are RASL pictures present.
10695 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
10696 -- Fix PicOutputFlag setting for RASL picture
10697 -- Fix prev_poc_lsb/prev_poc_msb calculation
10698 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
10699 -- Fixed couple of crashes and added cosmetics
10701 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
10703 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
10704 display: drm: fix race condition setting device type
10705 There is a race condition where g_drm_device_type can be left set to
10706 DRM_DEVICE_RENDERNODES when it shouldn't.
10707 If thread 1 comes in and falls into the last else statement setting up both
10708 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
10709 it sets g_drm_device_type = RENDERNODES.
10710 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
10711 up that type to be tried but then encounters the lock and has to wait until the
10712 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
10713 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
10714 attempts will only try RENDERNODES.
10715 So to avoid this situation I have simply moved the acquisition of the lock higher
10716 up in the attached patch.
10717 https://bugzilla.gnome.org/show_bug.cgi?id=747914
10719 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
10721 * gst/vaapi/gstvaapipostproc.c:
10722 vaapipostproc: Don't create filter on caps query
10723 The problem with this is that creating the filter causes the display to
10724 be selected, and the caps query happens while linking the element. So,
10725 if the downstream or upstream element is using a specific display
10726 object, it won't be propagated correctly to the postproc as it already
10727 has a display at this point.
10728 https://bugzilla.gnome.org/show_bug.cgi?id=747945
10730 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
10732 * gst-libs/gst/vaapi/gstvaapivideopool.c:
10733 videopool: Release lock while allocating new object
10734 The video pool can be accessed with the display lock held, for example,
10735 when releasing a buffer from inside vaapisink_render, but allocating
10736 a new object can may also take the display lock. Which means a possible
10738 https://bugzilla.gnome.org/show_bug.cgi?id=747944
10740 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10742 * gst/vaapi/gstvaapisink.c:
10743 vaapisink: use GstVideoSink vmethod show_frame()
10744 vaapisink inherits from GstVideoSink, in order to use its functionality (such
10745 as ::show-preroll-frame property), we should use its vmethod show_frame(),
10746 rather than call ourselves render() and preroll().
10748 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10750 * gst/vaapi/gstvaapisink.c:
10751 * gst/vaapi/gstvaapisink.h:
10752 vaapisink: add 'handoff' signal
10753 This patch adds the signal ::handoff and the property signal-handoffs. If the
10754 property is set TRUE, the signal ::handoff is emitted just after the buffer is
10756 Based on Zhao Halley <halley.zhao@intel.com>
10757 https://bugzilla.gnome.org/show_bug.cgi?id=747905
10759 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10761 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10762 HEVC: silence the compiler
10763 Fixed a couple of clang complains.
10765 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
10767 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10768 wayland: destroy vpp buffer pool on resize
10769 Otherwise the old buffers with the old size are used.
10770 https://bugzilla.gnome.org/show_bug.cgi?id=747491
10772 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10775 * gst-libs/gst/vaapi/Makefile.am:
10776 build: don't compile HEVC if not supported
10777 HEVC decoding was added recently libva-1.5.
10778 This patch avoids HEVC decoding support in libgstvaapi if it is not available
10779 in the installed libva.
10780 https://bugzilla.gnome.org/show_bug.cgi?id=747831
10782 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10784 * gst/vaapi/gstvaapidecode.c:
10785 vaapidecode: Update Author name in plugin metadata
10787 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10789 * gst/vaapi/gstvaapidecode.c:
10790 plugins: Add HEVC decoder
10791 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10793 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10795 * gst-libs/gst/vaapi/Makefile.am:
10796 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10797 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
10798 HEVC: Add HEVC(h265) decoder to core libgstvaapi
10799 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10801 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10803 * gst-libs/gst/vaapi/Makefile.am:
10804 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
10805 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
10806 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
10807 HEVC: Add codec utility methods to core libgstvaapi
10808 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10810 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10812 * gst-libs/gst/vaapi/gstvaapiprofile.c:
10813 * gst-libs/gst/vaapi/gstvaapiprofile.h:
10814 HEVC: gstvaapiprofile: Add profile definitions
10815 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10817 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10820 HEVC: build: Check availability of h265 decoder APIs
10821 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10823 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10827 * gst-libs/gst/codecparsers/Makefile.am:
10828 HEVC: Allow to build h265 codecparser internally
10829 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10831 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10833 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
10834 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
10835 * gst-libs/gst/vaapi/gstvaapisurface.c:
10836 guard buffer export API if not available
10837 The support for buffer exports in VA-API was added in version 0.36. These
10838 interfaces are for interop with EGL, OpenCL, etc.
10839 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
10840 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
10841 This patch guards all the buffer exports handling (and dmabuf allocator) if
10842 the detected VA-API version is below 0.36.
10843 https://bugzilla.gnome.org/show_bug.cgi?id=746405
10845 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10847 * ext/codecparsers:
10848 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
10849 767bf22: codecparsers: h265: add helpers to convert quantization matrices
10850 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
10851 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
10852 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
10853 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
10855 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
10857 * gst/vaapi/gstvaapidecode.c:
10858 vaapidecode: unref video codec frame twice
10859 We get one reference when the frame is passed to decode_handle_frame()
10860 and create another one in gst_vaapi_decoder_push_frame().
10861 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
10862 Here the frame is always released twice:
10863 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
10864 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
10865 In gst_vaapidecode_reset_full() both references to the frame must be
10867 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10868 https://bugzilla.gnome.org/show_bug.cgi?id=743226
10870 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10872 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
10873 libs: remove unused variables
10874 clang reports these unused variables. Let's get rid of them.
10875 This patch is a missing part of commit c82e5173
10876 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10878 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10880 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10881 decoder: mpeg4: remove an spurious comparison
10882 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
10883 less than zero. Hence this pre-condition test is a no-op. This patch removes
10885 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10887 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10889 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10890 encoder: h264: casts slice_param->slice_type
10891 slice_type in slice_param is defined as (char *), but it is compared against a
10892 signed integer. clang complains about this comparison.
10893 This patch casts the variable.
10894 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10896 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10898 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10899 encoder: avoid GstVaapiCodedBuffer redefinition
10900 The symbol GstVaapiCodedBuffer is already defined in
10901 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
10902 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
10903 This patch removes that redefinition.
10904 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10906 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10908 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
10909 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10910 libs: remove unused variables
10911 clang reports these unused variables. Let's get rid of them.
10912 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10914 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10916 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10917 encoder: mpeg2: use fabsf() instead of abs()
10918 The member value in frame_rate_tab is float, the result of the abs() function
10919 should be float too. But abs() only manages integers.
10920 This patch replaces abs() with fabsf() to handle correctly the possible floats
10922 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10924 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10926 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10927 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10928 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
10929 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10930 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10931 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
10932 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
10933 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
10934 https://bugzilla.gnome.org/show_bug.cgi?id=747312
10936 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10941 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10945 Changing source code download links from https://gitorious to https://github
10946 -- gitmodules: Change gstreamer-codecparsers submodule source download link
10947 -- README: Change the gstreamer-vaapi webpage link
10949 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10951 * ext/codecparsers:
10952 codecparsers: update to gst-vaapi-branch commit 1f792e4
10953 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
10954 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
10955 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
10956 2b92a67: h264parse: reset the parser information when caps changes
10957 05eee86: codecparsers: Indent file
10958 e27a38b: codecparsers: Add READ_UE_MAX macro
10959 2036471: Constify some static arrays everywhere
10961 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10963 * gst/vaapi/gstvaapivideoconverter_glx.c:
10964 * gst/vaapi/gstvaapivideoconverter_x11.c:
10965 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
10967 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10969 * gst/vaapi/gstvaapidecode.c:
10970 * gst/vaapi/gstvaapidecodebin.c:
10971 * gst/vaapi/gstvaapiencode_h264.c:
10972 * gst/vaapi/gstvaapiencode_jpeg.c:
10973 * gst/vaapi/gstvaapiencode_mpeg2.c:
10974 * gst/vaapi/gstvaapiencode_vp8.c:
10975 * gst/vaapi/gstvaapipluginbase.c:
10976 * gst/vaapi/gstvaapipluginutil.c:
10977 * gst/vaapi/gstvaapipluginutil.h:
10978 * gst/vaapi/gstvaapipostproc.c:
10979 * gst/vaapi/gstvaapisink.c:
10980 * gst/vaapi/gstvaapivideobuffer.c:
10981 * gst/vaapi/gstvaapivideobufferpool.c:
10982 * gst/vaapi/gstvaapivideocontext.c:
10983 * gst/vaapi/gstvaapivideocontext.h:
10984 * gst/vaapi/gstvaapivideoconverter_glx.h:
10985 * gst/vaapi/gstvaapivideoconverter_x11.h:
10986 * gst/vaapi/gstvaapivideomemory.h:
10987 * gst/vaapi/gstvaapivideometa_texture.c:
10988 Removal of gstreamer-1.0 support
10989 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
10990 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
10991 This patch removes all the pre-processor conditional code compilation guarded
10993 Thus, all the video converters were removed too.
10994 https://bugzilla.gnome.org/show_bug.cgi?id=745728
10995 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
10996 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10998 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11000 * gst-libs/gst/vaapi/gstcompat.h:
11001 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
11002 * gst-libs/gst/vaapi/gstvaapiprofile.c:
11003 * gst-libs/gst/vaapi/sysdeps.h:
11004 * gst/vaapi/gstcompat.h:
11005 * gst/vaapi/gstvaapi.c:
11006 * gst/vaapi/gstvaapidecode.c:
11007 * gst/vaapi/gstvaapidecodebin.c:
11008 * gst/vaapi/gstvaapiencode.c:
11009 * gst/vaapi/gstvaapiencode_h264.c:
11010 * gst/vaapi/gstvaapiencode_jpeg.c:
11011 * gst/vaapi/gstvaapiencode_mpeg2.c:
11012 * gst/vaapi/gstvaapiencode_vp8.c:
11013 * gst/vaapi/gstvaapiparse.c:
11014 * gst/vaapi/gstvaapipluginbase.c:
11015 * gst/vaapi/gstvaapipluginutil.c:
11016 * gst/vaapi/gstvaapipostproc.c:
11017 * gst/vaapi/gstvaapisink.c:
11018 * gst/vaapi/gstvaapiuploader.c:
11019 * gst/vaapi/gstvaapivideobuffer.c:
11020 * gst/vaapi/gstvaapivideobufferpool.c:
11021 * gst/vaapi/gstvaapivideocontext.c:
11022 * gst/vaapi/gstvaapivideoconverter_glx.c:
11023 * gst/vaapi/gstvaapivideoconverter_x11.c:
11024 * gst/vaapi/gstvaapivideomemory.c:
11025 * gst/vaapi/gstvaapivideometa.c:
11026 * gst/vaapi/gstvaapivideometa_texture.c:
11028 update and move gstcompat.h
11029 The purpose of gstcompat.h is to couple the API differences among
11030 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
11031 in this compatibility layer shall be removed.
11032 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
11033 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
11034 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
11035 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
11036 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
11037 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11038 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11039 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11041 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11044 * gst/vaapi/Makefile.am:
11045 autotools: remove gstreamer-1.0 support
11046 This patch only removes the support of gstreamer-1.0 in the autotools
11047 scripts. No other files are touched.
11048 In the automake file all the converters were deprecated.
11049 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11050 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11051 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11053 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11058 Remove the gstreamer-videoutils submodule
11060 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11063 * gst-libs/gst/Makefile.am:
11064 * gst-libs/gst/vaapi/Makefile.am:
11065 * gst-libs/gst/video/Makefile.am:
11066 * gst/vaapi/Makefile.am:
11067 * tests/Makefile.am:
11068 Remove libgstvaapi-videoutils.so
11069 This library was intended to add the base classes for video decoders which
11070 where not included in gstreamer-0.10.
11071 Since the support of gstreamer-0.10 is deprecated those classes are not
11072 required, thus the whole library is removed.
11073 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11074 https://bugzilla.gnome.org/show_bug.cgi?id=732666
11075 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11077 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11080 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
11081 * gst-libs/gst/vaapi/gstvaapiutils.c:
11082 * tests/test-subpicture.c:
11083 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
11084 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
11085 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
11086 deprecated these guards are not required.
11087 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11088 https://bugzilla.gnome.org/show_bug.cgi?id=732666
11089 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11091 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11093 * gst-libs/gst/vaapi/gstcompat.h:
11094 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
11095 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11096 * gst-libs/gst/vaapi/gstvaapiimage.c:
11097 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
11098 * gst-libs/gst/vaapi/video-format.c:
11099 * gst-libs/gst/vaapi/video-format.h:
11100 * gst/vaapi/gstvaapi.c:
11101 * gst/vaapi/gstvaapidecode.c:
11102 * gst/vaapi/gstvaapidecodebin.c:
11103 * gst/vaapi/gstvaapidownload.c:
11104 * gst/vaapi/gstvaapidownload.h:
11105 * gst/vaapi/gstvaapiencode.c:
11106 * gst/vaapi/gstvaapiencode_h264.c:
11107 * gst/vaapi/gstvaapiencode_jpeg.c:
11108 * gst/vaapi/gstvaapiencode_mpeg2.c:
11109 * gst/vaapi/gstvaapiencode_vp8.c:
11110 * gst/vaapi/gstvaapiparse.c:
11111 * gst/vaapi/gstvaapipluginbase.c:
11112 * gst/vaapi/gstvaapipluginbase.h:
11113 * gst/vaapi/gstvaapipluginutil.c:
11114 * gst/vaapi/gstvaapipluginutil.h:
11115 * gst/vaapi/gstvaapipostproc.c:
11116 * gst/vaapi/gstvaapisink.c:
11117 * gst/vaapi/gstvaapiupload.c:
11118 * gst/vaapi/gstvaapiupload.h:
11119 * gst/vaapi/gstvaapiuploader.c:
11120 * gst/vaapi/gstvaapivideobuffer.c:
11121 * gst/vaapi/gstvaapivideoconverter_glx.c:
11122 * gst/vaapi/gstvaapivideoconverter_x11.c:
11123 * gst/vaapi/gstvaapivideometa.c:
11124 * gst/vaapi/gstvaapivideometa.h:
11125 * tests/test-filter.c:
11126 * tests/test-subpicture.c:
11127 Removal of gstreamer-0.10 support
11128 This patch removes all the pre-processor conditional code compilation guarded
11129 for gstreamer-0.10.
11130 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11131 https://bugzilla.gnome.org/show_bug.cgi?id=732666
11132 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11134 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11137 * debian.upstream/control.in:
11138 * gst-libs/gst/video/Makefile.am:
11139 * gst/vaapi/Makefile.am:
11140 autotools: remove gstreamer-0.10 support
11141 This patch only removes the support of gstreamer-0.10 in the autotools
11142 scripts. No other files are touched.
11143 The configuration parameter --gstreamer-api was deleted since now it is always
11145 The verification of vmethod query in GstBaseSinkClass was removed since it was
11146 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
11148 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
11150 The automake files were changed accordingly.
11151 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
11152 https://bugzilla.gnome.org/show_bug.cgi?id=732666
11153 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11154 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11156 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11158 * gst/vaapi/gstvaapidecode.c:
11159 vaapidecode: add drain() vmethod
11160 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
11161 class. This patch implements this new method.
11162 https://bugzilla.gnome.org/show_bug.cgi?id=742922
11163 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11164 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11166 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11168 * gst/vaapi/gstvaapidecode.c:
11169 vaapidecode: remove vmethod reset()
11170 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
11171 this patch removes the method reset() which was deprecated in GStreamer 1.2.
11172 https://bugzilla.gnome.org/show_bug.cgi?id=742922
11173 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11174 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11176 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11178 * gst/vaapi/gstvaapidecode.c:
11179 vaapidecode: handle flush() vmethod
11180 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
11181 and flush() was added.
11182 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
11183 superior. Otherwise, reset() is set.
11184 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
11185 was renamed to gst_vaapidecode_internal_flush().
11186 2) The new vmethod flush() always do a hard full reset.
11187 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
11188 gather all collected data with gst_video_decoder_have_frame()
11189 https://bugzilla.gnome.org/show_bug.cgi?id=742922
11190 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11191 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11193 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11195 * gst/vaapi/gstvaapidecode.c:
11196 vaapidecode: call the correct query function
11197 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
11198 a bug was introduced: when calling the parent's query function of the
11199 src pad, the one of the sink pad is called instead. This patch fixes
11201 https://bugzilla.gnome.org/show_bug.cgi?id=746248
11203 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11206 gitmodules: Use https:// url instead of git:// for submodules.
11207 Gitorious is failing to clone repositories over git:// url.
11209 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
11211 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11212 vaapidisplay: mark X11 display as compatible with EGL
11213 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
11214 gst-launch-1.0 ... ! vaapidecode ! glimagesink
11215 https://bugzilla.gnome.org/show_bug.cgi?id=745902
11216 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11218 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
11220 * gst/vaapi/gstvaapidecode.c:
11221 vaapidecode: Don't crash if a buffer outlives the decoder
11222 Sometimes, for example, when switching video streams but keeping
11223 the same sink, the surface will be released after the decoder is
11224 stopped and replaced. This caused a crash because the release
11225 callback was called on an invalid pointer.
11226 The patch adding an additional reference to the decoder object in the buffer.
11227 https://bugzilla.gnome.org/show_bug.cgi?id=745189
11228 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
11229 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11231 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11233 * gst/vaapi/gstvaapidecode.c:
11234 vaapidecode: clean-ups (indentation, drop unused variables)
11236 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11238 * gst/vaapi/gstvaapidecode.c:
11239 vaapidecode: use the query virtual methods in 1.4
11240 GstVideoDecoder, the base class of vaapidecode, added support for
11241 pad queries as virtual methods. This patch enables the use of that
11242 support, while keeping support for lower versions of gstreamer.
11243 This patch is important because GstVideoDecoder takes care of other
11244 queries that might be important in the pipeline managing.
11245 v2: 1) rebase to current master
11246 2) fix indentation with gst-indent
11247 3) simplify the patch layout
11248 4) fix the context query
11249 5) initialise the filter to NULL
11250 6) improve the query log message for gst-1.2
11251 https://bugzilla.gnome.org/show_bug.cgi?id=744406
11253 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11255 * gst/vaapi/gstvaapipostproc.c:
11256 * gst/vaapi/gstvaapipostproc.h:
11257 vaapipostproc: always activate buffer pool
11258 The vaapipostproc has a proxy flag to know if the the buffer pool is
11259 already active. But this fails in some situations where it is needed
11260 to renegotiate the buffer pool.
11261 This patch removes that flag so the renegotiation is done whenever is
11263 https://bugzilla.gnome.org/show_bug.cgi?id=745535
11265 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11267 * gst/vaapi/gstvaapisink.c:
11268 vaapisink: fix minor memory leak in debug mode.
11269 The gst_video_colorimetry_to_string() function returns a newly created
11270 string that represents the GstVideoColorimetry value. So, that needs
11271 to be released after usage, in e.g. GST_DEBUG().
11273 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11275 * gst/vaapi/gstvaapidecodebin.h:
11276 vaapidecodebin: Avoid usage of "__" prefix in macro names
11277 Avoiding "__" prefix usage in Header File Guards as per
11278 C standard recommendation.
11280 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11282 * gst/vaapi/gstvaapi.c:
11283 plugins: Disable vaapidecodebin for GStreamer < 1.4
11284 There are autoplugging issues in GStreamer-1.2.
11285 Lets disable vaapidecodebin untill we get some workarounds for this.
11287 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11289 * gst/vaapi/Makefile.am:
11290 * gst/vaapi/gstvaapi.c:
11291 * gst/vaapi/gstvaapidecodebin.c:
11292 * gst/vaapi/gstvaapidecodebin.h:
11293 plugins: Add a vaapidecodebin element
11294 Add a "vaapidecodebin" element to vaapi plugins.
11295 Child Elements: "vaapidecode ! queue ! vaapipostproc"
11296 The Reasons for implementing a new bin element:
11297 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
11298 with out any dependency to upstream gstreamer.
11299 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
11300 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
11301 Also customers using older gstreamer versions (1.2 and 1.4) will get the
11302 benefit of autoplugging, hardware accelerated deinterlacing support etc.
11303 -- Help to maintain a single thread implementation in vaapidecode.
11304 This will result a dead-lock free vaapidecode in most of the cases.
11305 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
11306 https://bugzilla.gnome.org/show_bug.cgi?id=745216
11308 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11310 * gst/vaapi/gstvaapidecode.c:
11311 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
11313 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
11315 * gst/vaapi/gstvaapidecode.c:
11316 * gst/vaapi/gstvaapidecode.h:
11317 vaapidecode: Switch back to Single thread implementation
11318 Because the decoder uses the thread from handle_frame() to decode a frame,
11319 the src pad task creates an unsolveable AB-BA deadlock between
11320 handle_frame() waiting for a free surface and decode_loop() pushing
11321 decoded frames out.
11322 Instead, have handle_frame() take responsibility for pushing surfaces,
11323 and remove the deadlock completely. If you need a separate thread
11324 downstream, you can insert a queue between vaapidecode and its downstream
11326 Another justification for the single thread implementation is,
11327 there are two many point of locking in gstreamer-vaapi's current
11328 implementation which can lead to deadlocks.
11329 https://bugzilla.gnome.org/show_bug.cgi?id=742605
11330 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
11331 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11332 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11334 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11336 * gst/vaapi/gstvaapipluginbase.c:
11337 plugins: fix detection of upstream v4l2src element.
11338 Improve check for upstream element that requires DMABUF buffer pool,
11339 e.g. v4l2src element. In particular, make sure to traverse through
11340 any additional capsfilter for instance.
11341 Note: the traversal to the top-most upstream element could be made
11342 more generic, but we are insofar only interested in supporting pipes
11343 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
11344 specification for a desired video camera format, or resolution.
11346 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11348 * gst/vaapi/gstvaapivideomemory.c:
11349 plugins: fix allocation of DMABUF memory.
11350 The dmabuf allocator would close the DMABUF handle passed in the init
11351 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
11352 to avoid a double close, ultimately in the underlying driver that owns
11355 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11357 * gst/vaapi/gstvaapidecode.c:
11358 vaapidecode: keep src caps and output state in sync
11359 vaapidecode keeps an output state that use the format
11360 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
11361 for a correct negotiation.
11362 I don't see the rational behind this decoupling, it looks like
11363 unnecessary complexity. This patch simplify this logic keeping
11364 in sync the output state and the src caps.
11365 This patch improves the readability of the function
11366 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
11367 the patch validates if the buffer pool has the configuration for
11368 the GL texture upload meta, in order to set the caps feature
11369 meta:GLTextureUpload. Otherwise, the I420 format is set back.
11370 https://bugzilla.gnome.org/show_bug.cgi?id=744618
11371 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11372 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11374 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11376 * gst/vaapi/gstvaapidecode.c:
11377 vaapidecode: upload meta only if feature and allocation
11378 When vaapidecode finishes the decoding of a frame and pushes it,
11379 if, in the decide_allocation() method, it is determined if the
11380 next element supports the GL texture upload meta feature, the
11381 decoder adds the buffer's meta.
11382 Nonetheless, in the same spirit of the commit 71d3ce4d, the
11383 determination if the next element supports the GL texture upload
11384 meta needs to check both the preferred caps feature *and* if the
11385 allocation query request the API type.
11386 This patch, first removes the unused variable need_pool, and
11387 determines the attribute has_texture_upload_meta using the
11388 preferred caps feature *and* the allocation query.
11389 Also, the feature passed to GstVaapPluginBase is not longer
11390 determined by has_texture_upload_meta, but by the computed
11392 https://bugzilla.gnome.org/show_bug.cgi?id=744618
11393 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11394 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11396 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11398 * gst/vaapi/gstvaapidecode.c:
11399 * gst/vaapi/gstvaapidecode.h:
11400 * gst/vaapi/gstvaapipluginutil.c:
11401 * gst/vaapi/gstvaapipluginutil.h:
11402 vaapidecode: delayed src caps negotiation
11403 Currently the src caps are set immediately after the sink caps are set, but in
11404 that moment the pipeline might not fully constructed and the video sink has
11405 not negotiated its supported caps and features. As a consequence, in many cases
11406 of playback, the least optimized caps feature is forced. This is partially the
11407 responsible of bug #744039.
11408 Also, vaapidecode doesn't attend the reconfigure events from downstream,
11409 which is a problem too, since the video sink can be changed with different
11411 This patch delays the src caps, setting them until the first frame arrives to
11412 the decoder, assuming until that very moment the whole pipeline is already
11413 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
11414 as a consequence of a reconfiguration event from downstream.
11415 A key part of this patch is the new GstVaapiCapsFeature
11416 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
11417 doesn't have a peer yet. Also, for a better report of the caps allowed
11418 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
11419 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
11420 v3: move the input_state unref to close(), since videodecoder resets at
11421 some events such as navigation.
11422 v4: a) the state_changed() callback replaces the input_state if the media
11423 changed, so this case is also handled.
11424 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
11425 always the input_state, the parameter were removed.
11426 c) there were a lot of repeated code handling the input_state, so I
11427 refactored it with the function gst_vaapi_decode_input_state_replace().
11428 https://bugzilla.gnome.org/show_bug.cgi?id=744618
11429 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11430 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11432 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11434 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11435 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
11436 encoder: h264: add support for more than 2 views
11437 Add support for H.264 MVC Multiview High profile encoding with
11438 more than 2 views. All views within the same accesss unit are
11439 provided in increasing order of view order index (VOIdx).
11440 Upto 10 view are supported for now.
11441 A new property "view-ids" has been provided for the plugins to
11442 set the view ids (which is an array of guint values) to be used
11444 https://bugzilla.gnome.org/show_bug.cgi?id=732453
11446 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11448 * gst/vaapi/gstvaapipluginbase.c:
11449 plugins: upload meta only if feature and allocation
11450 Working on bug #743687, I realized that vaapidecode always adds to its buffer
11451 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
11452 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
11453 Nevertheless, there are occasions where the query has the API type, but the
11454 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
11455 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
11456 buffer pool configuration, and adds its buffer's meta to each output buffer,
11457 even if the negotiated caps feature is memory:SystemMemory with I420 color
11459 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
11460 that relates caps <-> GL upload method. If it receives a buffer with color
11461 format I420, it assumes that it doesn't have a texture upload meta, because
11462 only those with RGB color format has it. Our buffers, with I420 format, say
11463 that they have the upload meta too. In that case the mapped method is a dummy
11464 one which does nothing. I reported this issue in bug #744039 (the patch,
11465 obviously, was rejected).
11466 This patch workarounds the problem: the buffer pool's configuration option
11467 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
11468 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
11469 caps feature is meta:GstVideoGLTextureUploadMeta.
11470 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
11471 in all they seem to work correctly.
11472 https://bugzilla.gnome.org/show_bug.cgi?id=744618
11473 [adapted to fit current EGL changes]
11474 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11476 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11478 * gst-libs/gst/vaapi/gstvaapitexture.c:
11479 * gst-libs/gst/vaapi/gstvaapitexture.h:
11480 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
11481 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
11482 * gst/vaapi/gstvaapivideometa_texture.c:
11483 plugins: add support for GstVideoGLTextureOrientation.
11484 Add support for GstVideoGLTextureOrientation modes. In particular,
11485 add orientation flags to the GstVaapiTexture wrapper and the GLX
11486 implementations. Default mode is that texture memory is laid out
11487 with top lines first, left row first. Flags indicate whether the
11488 X or Y axis need to be inverted.
11490 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11492 * gst/vaapi/gstvaapidecode.c:
11493 * gst/vaapi/gstvaapipluginbase.c:
11494 * gst/vaapi/gstvaapipluginutil.c:
11495 * gst/vaapi/gstvaapipluginutil.h:
11496 * gst/vaapi/gstvaapipostproc.c:
11497 * gst/vaapi/gstvaapivideometa_texture.c:
11498 plugins: add support for BGRA textures.
11499 Some frameworks (EFL) expect BGRA textures for storage. However,
11500 adding support for that broadly into GStreamer framework implies
11501 two kinds of hacks: (i) libgstgl helpers currently do not support
11502 BGRA textures correctly, (ii) we need to better parse downstream
11503 suggested caps and intersect them with what the VA plugin elements
11504 can offer to them for GL texturing.
11506 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11508 * gst/vaapi/gstvaapipluginutil.c:
11509 plugins: fix support for Wayland/EGL running alongside X11.
11510 When multiple display servers are available, the glimagesink element
11511 (from GStreamer 1.4) may not be able to derive a global display in
11512 Wayland. Rather, a "window"-specific display is created. In this case,
11513 the GstGLDisplay handle available through GstGLContext is invalid.
11514 So, try to improve heuristics for display server characterisation in
11515 those particular situations.
11517 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11520 * gst/vaapi/Makefile.am:
11521 * gst/vaapi/gstvaapidecode.c:
11522 * gst/vaapi/gstvaapipluginbase.c:
11523 * gst/vaapi/gstvaapipluginutil.c:
11524 * gst/vaapi/gstvaapivideobufferpool.c:
11525 * gst/vaapi/gstvaapivideometa_texture.c:
11526 plugins: add initial support for EGL.
11527 Add initial support for EGL through GstVideoGLTextureUploadMeta.
11528 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
11529 downstream supplied GstGLContext configuration, i.e. use its native
11530 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
11531 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
11533 https://bugzilla.gnome.org/show_bug.cgi?id=741079
11535 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11537 * gst/vaapi/gstvaapivideometa_texture.c:
11538 plugins: track video texture size changes.
11539 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
11540 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
11541 now update the texture size from the GstVideoMeta, if any, or reset
11542 to some defaults otherwise.
11544 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11546 * gst/vaapi/gstvaapipluginbase.c:
11547 * gst/vaapi/gstvaapipluginbase.h:
11548 * gst/vaapi/gstvaapipluginutil.c:
11549 plugins: ensure VA display matches GL context expectations.
11550 If a GstGLContext is supplied by the downstream element, then make
11551 sure that the VA plugin element gets a compatible display to what
11552 is requested by the GL context. e.g. re-allocate a VA/GLX display
11553 when a GLX context is provided by the downstream element.
11555 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11558 * gst/vaapi/Makefile.am:
11559 * gst/vaapi/gstvaapipluginbase.c:
11560 * gst/vaapi/gstvaapipluginbase.h:
11561 plugins: record downstream GstGLContext.
11562 Record GL context supplied by downstream elements. This can be useful,
11563 and further needed, to enforce run-time check that the GL context is
11564 compatible for use by libgstvaapi. e.g. check that we don't create a
11565 VA/GLX display for EGL/X11 contexts.
11566 https://bugzilla.gnome.org/show_bug.cgi?id=725643
11567 Original-path-by: Matthew Waters <ystreet00@gmail.com>
11569 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11571 * tests/Makefile.am:
11574 Add initial support for EGL to tests. The new EGL backend can be selected
11575 through the --egl command line option. The OpenGL|ES version can further
11576 be selected with the --gles-version command line option, where the default
11577 of 0 means "desktop" OpenGL.
11579 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11581 * gst-libs/gst/vaapi/Makefile.am:
11582 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
11583 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
11584 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
11585 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
11586 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
11587 egl: add windowing support.
11588 This provides for some basic EGL window abstraction.
11590 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11592 * gst-libs/gst/vaapi/Makefile.am:
11593 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
11594 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
11595 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
11596 egl: add texture abstraction.
11597 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
11598 or import a foreign allocated one, while still allowing updates from a
11601 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11603 * gst-libs/gst/vaapi/Makefile.am:
11604 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
11605 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
11606 egl: allow for EGLImage imports into VA Surfaces.
11607 Add helpers to import EGLImage objects into VA surfaces. There are
11608 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
11609 which allows for implicit conversion from EGLImage to a VA surface
11610 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
11611 which exactly wraps the source EGLImage, typically in RGBA format
11612 with linear storage.
11613 Note: in case of (i), the EGLImage can be disposed right after the
11614 VA surface creation call, unlike in (ii) where the user shall ensure
11615 that the EGLImage is live until the associated VA surface is no longer
11617 https://bugzilla.gnome.org/show_bug.cgi?id=743847
11619 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11622 * gst-libs/gst/vaapi/Makefile.am:
11623 * gst-libs/gst/vaapi/egl_compat.h:
11624 * gst-libs/gst/vaapi/egl_vtable.h:
11625 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11626 * gst-libs/gst/vaapi/gstvaapidisplay.h:
11627 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
11628 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
11629 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
11630 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
11631 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
11632 * gst-libs/gst/vaapi/ogl_compat.h:
11633 Add initial support for EGL.
11634 Add initial support for EGL to libgstvaapi core library. The target
11635 display server and the desired OpenGL API can be programmatically
11636 selected at run-time.
11637 A comprehensive set of EGL utilities are provided to support those
11638 dynamic selection needs, but also most importantly to ensure that
11639 the GL command stream is executed from within a single thread.
11640 https://bugzilla.gnome.org/show_bug.cgi?id=743846
11642 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11644 * gst-libs/gst/vaapi/gstvaapivalue.c:
11645 libs: initialize GValues in a thread-safe manner.
11647 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11649 * gst-libs/gst/vaapi/gstvaapivalue.c:
11650 libs: re-indent all GValue related source code.
11652 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11654 * gst/vaapi/gstvaapidecode.c:
11655 vaapidecode: partially revert 0777f35.
11656 Reset the VA decoder after updating the base plugin caps, and most
11657 importantly, after GstVideoDecoder negotiation. The reason behind
11658 this is that the negotiation could trigger a last decide_allocation()
11659 where we could actually derive a new GstVaapiDisplay to use from the
11660 downstream element. e.g. GLX backend.
11662 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11664 * gst/vaapi/gstvaapidecode.c:
11665 vaapidecode: Caps query should return the list of all supported caps.
11666 Query caps filtering should be always done on top of allowed caps instead
11667 of existing fixed caps on a particular pad.
11668 This fixes the mvc stream decoding when there is a base view(high profile)
11669 and non-base view(stereo-high profile).
11671 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11673 * gst/vaapi/gstvaapidecode.c:
11674 vaapidecode: intersect filter from query caps
11675 According to documentation[1] when receiving a GST_QUERY_CAPS
11676 the return value should be all formats that this elements supports,
11677 taking into account limitations of peer elements further downstream
11678 or upstream, sorted by order of preference, highest preference first.
11679 This patch add those limitations intersecting with the received
11680 filter in the query. Also takes into account the already negotiated
11681 caps. Also adds the processing of the query on the SRC pad.
11682 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
11683 https://bugzilla.gnome.org/show_bug.cgi?id=744406
11685 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11687 * gst-libs/gst/vaapi/Makefile.am:
11688 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11689 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11690 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11691 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11692 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
11693 * gst/vaapi/gstvaapivideomemory.c:
11694 Fix compiler warnings
11695 This patch fixes some warnings that gcc 4.9 reports.
11696 https://bugzilla.gnome.org/show_bug.cgi?id=744411
11698 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11700 * gst/vaapi/gstvaapidecode.c:
11701 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
11702 Hence the function name is shown in the gst-inspect-1.0 information
11703 rather than the memory address.
11704 https://bugzilla.gnome.org/show_bug.cgi?id=744330
11706 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11708 * gst/vaapi/gstvaapidecode.c:
11709 vaapidecode: log flow error name
11710 https://bugzilla.gnome.org/show_bug.cgi?id=744387
11712 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11714 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
11715 VC1: decoder: Ignore VC1 user BDU's
11716 Don't return error if the processed BDU is a user one, just ignore them.
11717 https://bugzilla.gnome.org/show_bug.cgi?id=741237
11718 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11720 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
11722 * gst/vaapi/gstvaapidecode.c:
11723 * gst/vaapi/gstvaapipluginbase.c:
11724 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
11725 This is required in GStreamer, elements should never return
11726 GST_FLOW_ERROR without posting an ERROR message on the bus.
11727 https://bugzilla.gnome.org/show_bug.cgi?id=744620
11729 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11731 * gst/vaapi/Makefile.am:
11732 * gst/vaapi/gstvaapi.c:
11733 * gst/vaapi/gstvaapiencode_vp8.c:
11734 * gst/vaapi/gstvaapiencode_vp8.h:
11735 plugins: Add VP8 Encoder
11737 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11739 * gst-libs/gst/vaapi/Makefile.am:
11740 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11741 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
11742 Add VP8 Encoder to core libgstvaapi.
11744 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11747 configure: Add Check for VP8 Encoding API
11749 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
11751 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
11752 decoder: vc1: Rounding control handling for VC1 simple and Main profile
11753 Added rounding control handling for VC1 simple and Main profile
11754 based on VC1 standard spec: section 8.3.7
11755 https://bugzilla.gnome.org/show_bug.cgi?id=743958
11756 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
11757 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11759 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11761 * gst/vaapi/Makefile.am:
11762 build: fix make dist when certain conditionals not met.
11763 Fix typo which was preventing the inclusion of jpeg encoder
11764 source files from make dist (when there is no jpeg encoder
11765 API support in libva).
11767 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11769 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
11770 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
11771 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
11772 use native YUV420 format (which is i420) as default.
11774 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11776 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11777 encoder: Only support YUV420 native format as input for now
11778 Practically we should be able to support more formats, for eg:
11779 JPEG Encoder can support YUV422, RGBA and all.
11780 But this is causing more issues which need proper fix here and there.
11782 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
11784 * gst-libs/gst/vaapi/gstvaapidecoder.h:
11785 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
11786 * gst/vaapi/gstvaapidecode.c:
11787 vaapidecode: Check the condition after taking the lock
11788 Otherwise the condition could become true before the lock
11789 is taken and the g_cond_signal() could be called
11790 before the g_cond_wait(), so the g_cond_wait() is never
11792 https://bugzilla.gnome.org/show_bug.cgi?id=740645
11794 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11796 * gst/vaapi/Makefile.am:
11797 * gst/vaapi/gstvaapi.c:
11798 * gst/vaapi/gstvaapiencode_jpeg.c:
11799 * gst/vaapi/gstvaapiencode_jpeg.h:
11800 plugins: Add JPEG encoder element
11802 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11804 * gst-libs/gst/vaapi/gstvaapicontext.c:
11805 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
11807 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11809 * gst-libs/gst/vaapi/gstvaapicontext.c:
11810 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
11811 Don't add the VAConfigAttribRateControl to the attribute list using
11812 for the vaCreateConfig if it is not supported by the driver.
11814 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11816 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11817 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
11819 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11821 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11822 gstvaapiencoder: Fix crash when handling rate control mask
11823 Having a ratecontrol_mask equal to zero is not a bug, but the driver
11824 might not be supporting any kind of rate control mechanisms.
11827 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11829 * gst-libs/gst/vaapi/Makefile.am:
11830 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
11831 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
11832 encoder: Add JPEG Encoder
11834 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11836 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
11837 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
11838 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
11840 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11842 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11843 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11844 * gst-libs/gst/vaapi/gstvaapiprofile.c:
11845 * gst-libs/gst/vaapi/gstvaapiprofile.h:
11846 Encode: Add support for Picture level Entrypoint
11847 This is useful for JPEG encoding which is utilizing picture level
11848 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
11850 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11853 configure: Add Check for JPEG encoding API
11855 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11860 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11863 Bump version for development.
11865 === release 0.5.10 ===
11867 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11872 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11877 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11879 * gst/vaapi/gstvaapivideometa_texture.c:
11880 Fix compilation error if there is no GL/gl.h header file installed
11882 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11884 * gst/vaapi/gstvaapivideomemory.h:
11885 plugins: drop leftover declaration.
11886 GstVaapiVideoMemory quark is not needed any more, and the actual
11887 implementation was already removed bfore the merge. i.e. this is
11888 an oversight for a hunk that was not meant to be pushed.
11890 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11892 * gst/vaapi/gstvaapipluginbase.c:
11893 * gst/vaapi/gstvaapivideobufferpool.c:
11894 * gst/vaapi/gstvaapivideobufferpool.h:
11895 * gst/vaapi/gstvaapivideomemory.c:
11896 * gst/vaapi/gstvaapivideomemory.h:
11897 plugins: add support for dma_buf exports (v4l2src).
11898 Allow v4l2src element to connected to vaapipostproc or vaapisink when
11899 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
11900 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
11901 to "dmabuf" could work, but with more demanding driver or kernel reqs.
11902 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
11903 with --without-libv4l2.
11904 https://bugzilla.gnome.org/show_bug.cgi?id=743635
11906 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
11909 * gst/vaapi/Makefile.am:
11910 * gst/vaapi/gstvaapipluginbase.c:
11911 plugins: add support for dma_buf imports.
11912 Allow imports of v4l2 buffers into VA surfaces for further operation
11913 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
11914 https://bugzilla.gnome.org/show_bug.cgi?id=735362
11915 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
11916 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11918 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11920 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11921 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
11922 surface: add support for GEM buffer imports.
11923 Add support for GEM buffer imports. This is useful for VA/EGL interop
11924 with legacy Mesa implementations, or when it is desired or required to
11925 support outbound textures for instance.
11926 https://bugzilla.gnome.org/show_bug.cgi?id=736718
11928 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11930 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11931 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
11932 surface: add support for dma_buf imports.
11933 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
11934 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
11935 resulting VA surface owns the supplied buffer handle.
11936 https://bugzilla.gnome.org/show_bug.cgi?id=735362
11938 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11940 * gst-libs/gst/vaapi/gstvaapisurface.c:
11941 * gst-libs/gst/vaapi/gstvaapisurface.h:
11942 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
11943 surface: add initial support for foreign buffer imports.
11944 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
11945 create a VA surface from an external buffer provided throug the
11946 new GstVaapiBufferProxy object.
11948 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11950 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11951 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11952 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11953 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
11954 surface: add support for GEM buffer exports.
11955 Add support for GEM buffer exports. This will only work with VA drivers
11956 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
11957 to support interop with EGL and the "Desktop" GL specification. Indeed,
11958 the EXT_image_dma_buf_import extension is not going to be supported in
11959 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
11961 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
11962 in Desktop OpenGL context.
11963 https://bugzilla.gnome.org/show_bug.cgi?id=736717
11965 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11967 * gst-libs/gst/vaapi/Makefile.am:
11968 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11969 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11970 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11971 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
11972 surface: add support for dma_buf exports.
11973 Use the new VA buffer export APIs to allow for a VA surface to be
11974 exposed as a plain PRIME fd. This is in view to simplifying interop
11975 with EGL or OpenCL for instance.
11976 https://bugzilla.gnome.org/show_bug.cgi?id=735364
11978 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11980 * gst-libs/gst/vaapi/Makefile.am:
11981 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11982 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11983 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11984 Add abstraction for exported VA buffers.
11985 The VA buffer export APIs work for a particular lifetime starting from
11986 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
11987 it could be much more convenient to support implicit releases by simply
11988 having a refcount reaching zero.
11989 https://bugzilla.gnome.org/show_bug.cgi?id=736721
11991 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11993 * gst-libs/gst/vaapi/Makefile.am:
11994 Add missing header file to Makefile
11995 Add gstvaapitexture_glx.h to Makefile.am
11997 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11999 * gst-libs/gst/vaapi/gstvaapicontext.c:
12000 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12001 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
12002 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12003 * gst/vaapi/gstvaapipostproc.c:
12004 * gst/vaapi/gstvaapiuploader.c:
12005 * gst/vaapi/gstvaapivideobufferpool.c:
12006 * gst/vaapi/gstvaapivideomemory.c:
12007 * gst/vaapi/gstvaapivideomemory.h:
12008 * tests/test-surfaces.c:
12009 videopool: add optional flags for surface pool allocation.
12010 Reword surface pool allocation helpers so that to allow for a simple
12011 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
12012 somewhat more elaborated/flexible form with optional allocation flags
12013 and precise GstVideoInfo specification.
12014 This is an API/ABI change, and SONAME version needs to be bumped.
12016 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12018 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12019 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
12020 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12021 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
12022 * gst-libs/gst/vaapi/gstvaapivideopool.c:
12023 * gst-libs/gst/vaapi/gstvaapivideopool.h:
12024 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
12025 videopool: re-indent all GstVaapiVideoPool related source code.
12027 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12029 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12030 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
12031 window: add toplevel display indirection for visualid and colormap.
12032 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
12033 the best suitable window visual id and colormap. This is an indirection in
12034 view to supporting EGL and custom/generic replacements.
12036 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12038 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12039 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12040 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
12041 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
12042 window: add toplevel API to determine the colormap.
12043 Add GstVaapiWindowClass::get_colormap() hook to help determine the
12044 currently active colormap bound to the supplied window, or actually
12045 create it if it does not already exist yet.
12047 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12049 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
12050 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
12051 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12052 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12053 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
12054 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
12055 window: add toplevel API to determine a visual id.
12056 Add GstVaapiWindowClass::get_visual_id() function hook to help find
12057 the best suitable visual id for the supplied window. While doing so,
12058 also simplify the process by which an X11 window is created with a
12059 desired Visual, i.e. now use a visual id instead of a Visual object.
12061 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12063 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12064 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12065 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12066 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12067 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12068 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12069 * gst-libs/gst/vaapi/gstvaapiwindow.h:
12070 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
12071 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12072 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12073 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12074 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
12075 window: add generic helper to create windows.
12076 Add a new generic helper function gst_vaapi_window_new() to create
12077 a window without having the caller to check for the display type
12078 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
12079 to create windows, and the actual backend implementation fills it in.
12080 Add new generic helper functions gst_vaapi_texture_new_wrapped()
12081 This is a simplification in view to supporting EGL.
12083 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12085 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12086 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12087 * gst-libs/gst/vaapi/gstvaapitexture.c:
12088 * gst/vaapi/gstvaapivideometa_texture.c:
12089 display: add utility function to check for OpenGL rendering.
12090 Add gst_vaapi_display_has_opengl() helper function to help determining
12091 whether the display can support OpenGL context to be bound to it, i.e.
12092 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
12094 2014-12-10 18:02:55 +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_drm_priv.h:
12100 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12101 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12102 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12103 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12104 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12105 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12106 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12107 * gst/vaapi/gstvaapipluginutil.c:
12108 * gst/vaapi/gstvaapivideobuffer.c:
12109 * gst/vaapi/gstvaapivideometa_texture.c:
12110 display: refine the meaning of display type.
12111 Make gst_vaapi_display_get_display_type() return the actual VA display
12112 type. Conversely, add a gst_vaapi_display_get_class_type() function to
12113 return the type of the GstVaapiDisplay instance. The former is used to
12114 identify the display server onto which the application is running, and
12115 the latter to identify the original object class.
12117 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12119 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12120 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12121 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12122 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12123 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12124 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12125 display: cosmetics (helper macros, new internal API names).
12126 Add more helper macros to the top-level GstVaapiDisplay interfaces.
12127 Rename a few others used internally for improved consistency.
12129 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12131 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12132 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12133 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
12134 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
12135 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
12136 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12137 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12138 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
12139 display: record native display object.
12140 Record the underlying native display instance into the toplevel
12141 GstVaapiDisplay object. This is useful for fast lookups to the
12142 underlying native display, e.g. for creating an EGL display.
12144 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12146 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12147 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12148 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
12149 display: use a recursive mutex for the display cache.
12150 Use a recursive mutex for the display cache so that a 3rdparty display
12151 object could be initialized during the initialization of the parent
12154 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12156 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12157 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12158 * gst-libs/gst/vaapi/gstvaapitexture.c:
12159 * gst-libs/gst/vaapi/gstvaapitexture.h:
12160 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
12161 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12162 texture: add generic helper to create textures.
12163 Add new generic helper functions gst_vaapi_texture_new_wrapped()
12164 and gst_vaapi_texture_new() to create a texture without having
12165 the caller to uselessly check for the display type himself. i.e.
12166 internally, there is now a GstVaapiDisplayClass hook to create
12167 textures, and the actual backend implementation fills it in.
12168 This is a simplification in view to supporting EGL.
12170 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12172 * gst-libs/gst/vaapi/Makefile.am:
12173 * gst-libs/gst/vaapi/gstvaapitexture.c:
12174 * gst-libs/gst/vaapi/gstvaapitexture.h:
12175 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
12176 * gst-libs/gst/vaapi/gstvaapitexture_glx.h:
12177 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12178 * gst/vaapi/gstvaapivideoconverter_glx.c:
12179 * gst/vaapi/gstvaapivideometa_texture.c:
12180 * tests/test-textures.c:
12181 texture: move to core libgstvaapi base library.
12182 GstVaapiTexture is a generic abstraction that could be moved to the
12183 core libgstvaapi library. While doing this, no extra dependency needs
12184 to be added. This means that a GstVaapitextureClass is now available
12185 for any specific code that needs to be added, e.g. creation of the
12186 underlying GL texture objects, or backend dependent ways to upload
12187 a surface to the texture object.
12188 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
12190 https://bugzilla.gnome.org/show_bug.cgi?id=736715
12192 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12195 * gst-libs/gst/vaapi/Makefile.am:
12196 * gst-libs/gst/vaapi/gstvaapicompat.h:
12197 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12198 * gst-libs/gst/vaapi/gstvaapitexture.c:
12199 texture: drop support for VA/GLX interfaces.
12200 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
12201 ease of use, but they had other caveats to deal with. It's now better
12202 to move on to legacy mode, whereby VA/GLX interop is two be provided
12203 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
12204 https://bugzilla.gnome.org/show_bug.cgi?id=736711
12206 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12208 * gst-libs/gst/vaapi/gstvaapitexture.c:
12209 * gst-libs/gst/vaapi/gstvaapitexture.h:
12210 * gst/vaapi/gstvaapivideoconverter_glx.c:
12211 * gst/vaapi/gstvaapivideometa_texture.c:
12212 * tests/test-textures.c:
12213 texture: add support for cropping rectangle during transfer.
12214 The gst_vaapi_texture_put_surface() function is missing a crop_rect
12215 argument that would be used during transfer for cropping the source
12216 surface to the desired dimensions.
12217 Note: from a user point-of-view, he should create the GstVaapiTexture
12218 object with the cropped size. That's the default behaviour in software
12219 decoding pipelines that we need to cope with.
12220 This is an API/ABI change, and SONAME version needs to be bumped.
12221 https://bugzilla.gnome.org/show_bug.cgi?id=736712
12223 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12225 * gst-libs/gst/vaapi/gstvaapitexture.c:
12226 * gst-libs/gst/vaapi/gstvaapitexture.h:
12227 texture: re-indent all GstVaapiTexture related source code.
12229 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12231 * gst-libs/gst/vaapi/gstvaapisurface.c:
12232 * gst-libs/gst/vaapi/gstvaapisurface.h:
12233 surface: add more fine-grained allocation helper.
12234 Add new gst_vaapi_surface_new_full() helper function that allocates
12235 VA surface from a GstVideoInfo template in argument. Additional flags
12236 may include ways to
12237 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
12238 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
12239 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
12241 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12243 * gst-libs/gst/vaapi/gstvaapisurface.c:
12244 * gst-libs/gst/vaapi/gstvaapisurface.h:
12245 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
12246 surface: re-indent all GstVaapiSurface related source code.
12248 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12250 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12251 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
12252 surfaceproxy: add helper to create a wrapped surface object.
12253 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
12254 a proxy. The main use case for that is to convey additional information
12255 at the proxy level that would not be suitable to the plain surface.
12257 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12259 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12260 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
12261 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
12262 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
12264 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12267 libs: bump library major version.
12269 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12271 * gst-libs/gst/vaapi/gstvaapitypes.h:
12272 libs: re-introduce a GST_VAAPI_ID_INVALID value.
12273 Re-introduce a GST_VAAPI_ID_INVALID value that represents
12274 a non-zero and invalid id. This is useful to have a value
12275 that is still invalid for cases where zero could actually
12278 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12280 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
12281 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
12282 libs: expose GstVaapiMiniObject APIs to all backends.
12283 Make it possible to have all libgstvaapi backends (libs) access to a
12284 common GstVaapiMiniObject API and implementation. This is a minor step
12285 towards full exposure when needed, but restrict it to libgstvaapi at
12288 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12290 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
12291 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
12292 * gst-libs/gst/vaapi/gstvaapiobject.c:
12293 * gst-libs/gst/vaapi/gstvaapiobject.h:
12294 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
12295 libs: re-indent all GstVaapiObject related source code.
12296 Re-indent and provide additional minor cosmetical changes to the
12297 GstVaapiMiniObject and GstVaapiObject source files.
12299 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
12301 * gst/vaapi/gstvaapipluginutil.c:
12302 pluginutil: Fix clearing of subtitle overlay
12303 dvbsuboverlay signals no subtitles present by not setting
12304 GstVideoOverlayCompositionMeta on a buffer.
12305 Detect this, and remove subtitles whenever we have no overlay composition to
12307 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
12309 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
12311 * gst/vaapi/gstvaapipostproc.c:
12312 vaapipostproc: clear state on stop
12313 Otherwise restarting may fail because the state of vaapipluginbase and
12314 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
12315 initailization and not call gst_vaapi_plugin_base_set_caps()
12317 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
12319 * gst/vaapi/gstvaapidecode.c:
12320 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
12322 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12324 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12325 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
12326 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
12327 since the vaaapi context creation (gstvaapicontext.c) can still use the
12328 default chroma type which is YUV420.
12329 https://bugzilla.gnome.org/show_bug.cgi?id=743567
12330 https://bugzilla.gnome.org/show_bug.cgi?id=743035
12332 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12334 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
12335 * patches/videoparsers/series.frag:
12336 h264parse: drop patches merged upstream.
12337 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
12339 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12341 * ext/codecparsers:
12342 codecparsers: update to gst-vaapi-branch commit d3b5c1b
12343 8194cac: h264parse: parse SPS subset
12344 64b7f52: h264parse: expose stereo-high profile
12345 774360a: h264parse: add initial support for MVC NAL units
12346 258478f: h264parser: fix stack smashing
12348 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12350 * gst/vaapi/gstvaapivideometa_texture.c:
12351 Fix compilation error if there is no GL/gl.h header file installed
12353 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12355 * gst/vaapi/gstvaapidecode.c:
12356 vaapidecode: commit updated srcpad caps to base plugin.
12357 Make sure that the GstVaapiPluginBase instance receives the new src
12358 pad caps whenever they get updated from within the GstVaapiDecoder
12360 This also ensures that downstream elements receive correctly sized
12361 SW decoded buffers if needed.
12362 https://bugs.tizen.org/jira/browse/TC-114
12364 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12366 * gst/vaapi/gstvaapidecode.c:
12367 vaapidecode: always reset decoder on ::set_format().
12368 Split GstVideoDecoder::set_format() handler to first update the sink
12369 pad caps and reset the active VA decoder instance based on those, and
12370 then update the src pad caps whenever possible, e.g. when the caps
12371 specify a valid video resolution.
12373 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12375 * gst/vaapi/gstvaapivideomemory.c:
12376 vaapivideomemory: don't crash when trying to allocate 0x0 images.
12377 In some occasions, a buffer pool is created for pre-initialization
12378 purposes regardless of whether a valid image size is available or
12379 not. However, during actual decode stage, the vaapidecode element
12380 is expected to update the srcpad caps with the new dimensions, thus
12381 also triggering a reset of the underlying bufferpool.
12383 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12385 * ext/codecparsers:
12386 codecparsers: update to gst-vaapi-branch commit 191cb2f
12387 347605a: h264parse: expose compatible profiles to downstream
12388 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
12389 24a3126: Revert "h264parse: expose compatible profiles to downstream"
12390 8661740: h264parse: expose compatible profiles to downstream
12391 8b7ef3f: codecparsers: fix some compiler warnings
12393 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12395 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12396 encoder: h264: Fix the period between I/P frames
12397 If the key-frame period is set as one, then ip_period shuld be zero
12398 https://bugzilla.gnome.org/show_bug.cgi?id=734992
12400 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12402 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12403 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
12404 https://bugzilla.gnome.org/show_bug.cgi?id=734993
12406 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12408 * gst/vaapi/gstvaapisink.c:
12409 vaapisink: Protect the X11 API invokations with proper locking
12410 https://bugzilla.gnome.org/show_bug.cgi?id=739808
12412 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12414 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12415 encoder: h264: fix pixel-aspect-ratio in encoded stream.
12416 Really report sample aspect ratio (SAR) as present, and make it match
12417 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
12418 really make sure VUI parameter aspect_ratio_info_present_flag is set
12419 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
12420 This is a leftover from git commit a12662f.
12421 https://bugzilla.gnome.org/show_bug.cgi?id=740360
12423 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12425 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
12426 decoder: mpeg4: fix uninitialized variables.
12427 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
12428 GST_MPEG4_USER_DATA so that a parse error would result in skipping
12429 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
12430 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
12432 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12434 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12435 encoder: h264: fix profile limits.
12436 Fix ensure_profile_limits() to lower profile to the desired limits,
12437 only if the latter are actually known and the profile needed to be
12440 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12442 * gst/vaapi/gstvaapipostproc.c:
12443 vaapipostproc: fix out caps for GLMemory.
12444 If the best downstream capsfeature turns out to be GLMemory, then make
12445 sure to propagate RGBA video format in caps to that element. This fixes
12446 the following pipeline: ... ! vaapipostproc ! glimagesink.
12448 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12450 * gst/vaapi/gstvaapipostproc.c:
12451 vaapipostproc: fix check for compatible src pad capsfilters.
12452 When an explicit output video format is selected, from an src pad
12453 capsfilter, make sure that the downstream element actually supports
12454 that format. In particular, fix crash with the following pipelines:
12455 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
12456 XXX is a format not supported by xvimagesink.
12457 While doing so, also reduce the set of src pad filter caps to the
12458 actual set of allowed src pad caps.
12460 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12462 * gst/vaapi/gstvaapipostproc.c:
12463 * gst/vaapi/gstvaapipostproc.h:
12464 * gst/vaapi/gstvaapiuploader.c:
12465 * gst/vaapi/gstvaapiuploader.h:
12466 plugins: re-indent all video processing related source code.
12468 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12470 * gst/vaapi/gstvaapivideomemory.c:
12471 plugins: further fixes to the new "current" storage tracker.
12472 The ensure_surface() and ensure_image() functions shall only relate
12473 to the underlying backing store. The actual current flags are to be
12474 updated only through ensure_{surface,image}_is_current() or very other
12475 particular cases in GstMemory hooks.
12477 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12479 * gst/vaapi/gstvaapivideomemory.c:
12480 plugins: fix "current" video memory flags.
12481 If the surface proxy is updated into the GstVaapiVideoMemory, then
12482 it is assumed it is the most current representation of the current
12483 video frame. Likewise, make a few more arrangements to have the
12484 "current " flags set more consistently.
12486 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12488 * gst/vaapi/gstvaapivideomemory.c:
12489 * gst/vaapi/gstvaapivideomemory.h:
12490 * gst/vaapi/gstvaapivideometa.c:
12491 plugins: ensure VA surface is current prior to using it.
12492 When interacting with SW elements, the buffers and underlying video
12493 memory could be mapped as read/write. However, we need to use those
12494 buffers again as plain VA surfaces, we have to make sure the VA image
12495 is thus committed back to VA surface memory.
12496 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
12498 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12500 * gst/vaapi/gstvaapivideomemory.c:
12501 plugins: enable memory maps for read & write.
12502 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
12503 buffers can be further processed in-place, e.g. with a textoverlay.
12504 https://bugzilla.gnome.org/show_bug.cgi?id=704078
12505 [ported to current git master branch, amended commit message]
12506 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12508 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12510 * gst/vaapi/gstvaapidecode.c:
12511 * gst/vaapi/gstvaapipluginutil.c:
12512 * gst/vaapi/gstvaapipluginutil.h:
12513 * gst/vaapi/gstvaapipostproc.c:
12514 plugins: preserve framerate when updating src caps video format.
12515 In the current implementation, gst_video_info_set_format() would reset
12516 the whole GstVideoInfo structure first, prior to setting video format
12517 and size. So, coleteral information like framerate or pixel-aspect-
12519 Provide and use a unique gst_video_info_change_format() for overcome
12520 this issue, i.e. only have it change the format and video size, and
12521 copy over the rest of the fields.
12522 https://bugzilla.gnome.org/show_bug.cgi?id=734665
12524 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12526 * gst/vaapi/gstvaapi.c:
12527 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
12528 This is for helping decodebin to autoplug the vaapidecode element.
12529 Decodebin is selecting decoder elements only based on rank and caps.
12530 Without overriding the autoplug-* signals there is no way to autoplug
12531 HW decoders inside decodebin. An easier soulution is to raise the
12532 rank of vaapidecode, so that it gets selected first.
12533 https://bugzilla.gnome.org/show_bug.cgi?id=739332
12535 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12537 * gst-libs/gst/vaapi/gstvaapiprofile.c:
12538 * gst/vaapi/gstvaapidecode.c:
12539 vaapidecode: only expose supported profiles when needed.
12540 JPEG and VP8 codecs do not really support the concept of "profile". So,
12541 don't try to expose any set that wouldn't be supported by jpegparse, or
12542 ivfparse for instance.
12543 https://bugzilla.gnome.org/show_bug.cgi?id=739713
12544 https://bugzilla.gnome.org/show_bug.cgi?id=739714
12546 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12548 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12549 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
12550 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
12551 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
12552 decoder: h264: add initial support for repeat-first-field (RFF) flag.
12553 Use the SEI pic_timing() message to track and propagate down the repeat
12554 first field (RFF) flag. This is only initial support as there is one
12555 other condition that could induce the RFF flag, which is not handled
12558 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12560 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12561 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
12562 Fix the decoding process for picture order count type 0 when the previous
12563 picture had a memory_management_control_operation = 5. In particular, fix
12564 the actual variable type for prev_pic_structure to hold the full bits of
12565 the picture structure.
12566 In practice, this used to work though, due to the underlying type used to
12567 express a gboolean.
12569 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12571 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12572 decoder: h264: fix detection of top-field-first (TFF) flag.
12573 Use the SEI pic_timing() message to track the pic_struct variable when
12574 present, or infer it from the regular slice header flags field_pic_flag
12575 and bottom_field_flag. This fixes temporal sequence ordering when the
12576 output pictures are to be displayed.
12577 https://bugzilla.gnome.org/show_bug.cgi?id=739291
12579 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12581 * ext/codecparsers:
12582 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
12583 1241840 h264: fix derivation of MaxPicNum variable
12584 3bd718e h264: fix GstH264ParserResult documentation typo
12585 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
12586 b08e4be h264parse: don't unnecesarily set src_caps
12588 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12590 * gst/vaapi/gstvaapipostproc.c:
12591 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
12592 Added the same Klass specifications used in other upstream
12593 video postprocessing elements like videoconvert, videoscale,
12594 videobalance and deinterlace.
12595 An example use case is for this is to help the playsink
12596 to autoplug the hardware accelerated deinterlacer.
12598 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12600 * gst/vaapi/gstvaapipostproc.c:
12601 vaapipostproc: Tweak the output video format setting to enable the autoplugging
12602 This is a workaround until auto-plugging is fixed when
12603 format=ENCODED + memory:VASurface caps feature are provided.
12604 Use the downstream negotiated video format as the output video format
12605 if the user didn't ask for the colorspace conversion explicitly.
12606 Usecase: This will help to connect elements like videoscale, videorate etc
12608 https://bugzilla.gnome.org/show_bug.cgi?id=739443
12610 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12612 * gst/vaapi/gstvaapipostproc.c:
12613 * gst/vaapi/gstvaapipostproc.h:
12614 vaapipostproc: allow user defined scaling mode.
12615 Add new "scale-method" property to expose the scaling mode to use during
12616 video processing. Note that this is only a hint, and the actual behaviour
12617 may differ from implementation (VA driver) to implementation.
12619 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12621 * gst-libs/gst/vaapi/gstvaapifilter.c:
12622 * gst-libs/gst/vaapi/gstvaapifilter.h:
12623 * gst-libs/gst/vaapi/gstvaapiutils.c:
12624 * gst-libs/gst/vaapi/gstvaapiutils.h:
12625 filter: add initial support for high quality scaling.
12626 Add support for video scaling options in VPP pipelines. Only the
12627 DEFAULT mode is bound to exist. Others might be folded into that
12630 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12632 * gst-libs/gst/vaapi/gstvaapifilter.c:
12633 * gst-libs/gst/vaapi/gstvaapifilter.h:
12634 filter: re-indent all GstVaapiFilter related source code.
12636 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12638 * ext/codecparsers:
12639 codecparsers: update to gst-vaapi-branch commit f9d3bde.
12640 2218b02 h264parse: expose parsed profile and level to downstream
12641 3dbfab4 h264parse: return flushing if we get chained while being set to READY
12642 d40fa8b h264: fix frame packing SEI parsing
12643 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
12644 b3e022e h264: initialize some fields of pic_timing structure
12645 a70661d vc1: fix expected level in sequence-layer parsing unit test
12646 6cee88d vc1: fix level values for simple/main profile
12647 356c189 vc1: add unit test for sequence-layer parsing
12648 ab9f641 vc1: take care of endianness when parsing sequence-layer
12649 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
12651 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12653 * gst/vaapi/gstvaapidecode.c:
12654 vaapidecode: Expose the supported profiles as caps to upstream
12655 This will allows the playbin to fallback to Software Decoder
12656 if the Hardware Decoder does not support a particular profile.
12657 https://bugzilla.gnome.org/show_bug.cgi?id=730997
12659 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12661 * gst/vaapi/gstvaapiencode.c:
12662 * gst/vaapi/gstvaapiencode.h:
12663 * gst/vaapi/gstvaapiencode_h264.c:
12664 encode: Attach the codec-data to out caps only based on negotiated caps
12665 Attach the codec_data to out_caps only if downstream needed.
12666 For eg: h264 encoder doesn't need to stuff codec_data to the
12667 src caps if the negotiated caps has a stream format of byte-stream.
12668 https://bugzilla.gnome.org/show_bug.cgi?id=734902
12670 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12673 configure: echoing installation prefix path
12675 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12677 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12678 display: add support for DRM Render-Nodes.
12679 Add support for DRM Render-Nodes. This is a new feature that appeared
12680 in kernel 3.12 for experimentation purposes, but was later declared
12681 stable enough in kernel 3.15 for getting enabled by default.
12682 This allows headless usages without authentication at all, i.e. usages
12683 through plain ssh connections is possible.
12685 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12687 * gst/vaapi/gstvaapisink.c:
12688 vaapisink: clean-ups (indentation, drop unused variables).
12690 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12693 * gst/vaapi/gstvaapisink.c:
12694 vaapisink: fix GstNavigation "key-press" / "key-release" events.
12695 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
12696 to a KeySym. In particular, there is no such Window argument. Also
12697 make sure to check for, and use, the correct <X11/XKBlib.h> header
12698 where that new function is defined. Otherwise, default to the older
12699 XKeycodeToKeysym() function.
12701 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12703 * gst/vaapi/gstvaapisink.c:
12704 vaapisink: fix GstNavigation "mouse-move" event.
12705 Really use the motion event coordinates to propagate the "mouse-move"
12706 event to upper layer, instead of those from a button event. Those are
12707 technically the same though.
12709 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12711 * gst/vaapi/gstvaapisink.c:
12712 vaapisink: implement the GstNavigation interface
12713 This is useful for things like DVD menus, where key/mouse events
12714 would need to be forwarded from the upstream sink element.
12715 https://bugzilla.gnome.org/show_bug.cgi?id=711479
12717 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
12719 * gst/vaapi/gstvaapipluginbase.c:
12720 vaapipostproc: fix deinterlacing from non VA memory buffers.
12721 When we copy a buffer because we're moving it into VA-API memory, we
12722 need to copy flags. Otherwise, interlaced YUV buffers from a capture
12723 source (e.g. V4L2) don't get flagged as interlaced.
12724 https://bugzilla.gnome.org/show_bug.cgi?id=726270
12725 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
12726 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
12727 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12729 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12731 * gst/vaapi/gstvaapipostproc.c:
12732 vaapipostproc: add support for GLTextureUploadMeta output.
12733 This allows for vaapipostproc to be chained to the glimagesink element
12735 https://bugzilla.gnome.org/show_bug.cgi?id=735231
12737 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12739 * gst/vaapi/gstvaapipluginutil.c:
12740 * gst/vaapi/gstvaapipluginutil.h:
12741 * gst/vaapi/gstvaapipostproc.c:
12742 vaapipostproc: add support for "download" capability.
12743 Allow implicit conversions to raw video formats, while still keeping
12744 VA surfaces underneath. This allows for chaining the vaapipostproc
12745 element to a software-only element that takes care of maps/unmaps.
12747 https://bugzilla.gnome.org/show_bug.cgi?id=720174
12749 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12751 * gst/vaapi/gstvaapipostproc.c:
12752 * gst/vaapi/gstvaapipostproc.h:
12753 vaapipostproc: use pooled vaapi video meta.
12754 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
12755 video buffer allocation. Also optimize copy of additional metadata info
12756 into the resulting video buffer: only copy the video cropping info and
12757 the source surface proxy.
12758 https://bugzilla.gnome.org/show_bug.cgi?id=720311
12759 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12760 [fixed proxy leak, fixed double free on error, optimized meta copy]
12761 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12763 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12765 * gst/vaapi/gstvaapipostproc.c:
12766 vaapipostproc: fix passthrough mode.
12767 If no explicit output surface format is supplied try to keep the one
12768 supplied through the sink pad caps. This avoids a useless copy, even
12769 if things are kept in GPU memory.
12770 This is a performance regression from git commit dfa70b9.
12772 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12774 * gst/vaapi/gstvaapipostproc.c:
12775 * gst/vaapi/gstvaapipostproc.h:
12776 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
12777 https://bugzilla.gnome.org/show_bug.cgi?id=720311
12778 [used new infrastructure through base decide_allocation() impl]
12779 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12781 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12783 * gst/vaapi/gstvaapipostproc.c:
12784 vaapipostproc: enable advanced deinterlacing with same format.
12785 If only advanced deinterlacing is requested, i.e. deinterlacing is
12786 the only active algorithm to apply with source and output surface
12787 formats being the same, then make sure to enable VPP processing.
12788 Otherwise, allow fallback to bob-deinterlacing with simple rendering
12791 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12793 * gst/vaapi/gstvaapivideomemory.c:
12794 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
12795 https://bugzilla.gnome.org/show_bug.cgi?id=735156
12797 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12799 * gst/vaapi/gstvaapipluginbase.c:
12800 * gst/vaapi/gstvaapipluginutil.c:
12801 plugins: fix memory leaks.
12803 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12805 * gst/vaapi/gstvaapidecode.c:
12806 * gst/vaapi/gstvaapipluginbase.c:
12807 * gst/vaapi/gstvaapipluginbase.h:
12808 plugins: factor out decide_allocation() hook.
12809 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
12810 feature argument can be used to force a bufferpool with a specific kind
12813 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12815 * gst/vaapi/gstvaapivideobufferpool.c:
12816 * gst/vaapi/gstvaapivideobufferpool.h:
12817 * gst/vaapi/gstvaapivideomemory.c:
12818 plugins: allow bufferpool to not allocate vaapi video meta.
12819 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
12820 can be used to disable early allocations of vaapi video metas on buffers,
12821 thus delagating that to the bufferpool user.
12823 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12825 * gst/vaapi/gstvaapivideobuffer.c:
12826 * gst/vaapi/gstvaapivideobuffer.h:
12827 * gst/vaapi/gstvaapivideobufferpool.c:
12828 * gst/vaapi/gstvaapivideobufferpool.h:
12829 * gst/vaapi/gstvaapivideocontext.c:
12830 * gst/vaapi/gstvaapivideocontext.h:
12831 * gst/vaapi/gstvaapivideoconverter_glx.c:
12832 * gst/vaapi/gstvaapivideoconverter_glx.h:
12833 * gst/vaapi/gstvaapivideoconverter_x11.c:
12834 * gst/vaapi/gstvaapivideoconverter_x11.h:
12835 * gst/vaapi/gstvaapivideomemory.c:
12836 * gst/vaapi/gstvaapivideomemory.h:
12837 * gst/vaapi/gstvaapivideometa.c:
12838 * gst/vaapi/gstvaapivideometa.h:
12839 * gst/vaapi/gstvaapivideometa_texture.c:
12840 * gst/vaapi/gstvaapivideometa_texture.h:
12841 plugins: re-indent all GstVaapiVideo* related source code.
12843 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12845 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12846 surfaceproxy: fix copy to propagate view_id.
12847 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
12848 fixing random frames skipped when vaapipostproc element is used in
12849 passthrough mode. In that mode, GstMemory is copied, thus including
12850 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
12852 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12854 * gst/vaapi/gstvaapipostproc.c:
12855 vaapipostproc: fix detection of output surface format changes.
12856 Default to I420 format for output surfaces so that to match the usual
12857 GStreamer pipelines. Though, internally, we could still opt for NV12
12858 surface formats, i.e. default format=ENCODED is a hint for that, thus
12859 delegating the decision to the VA driver.
12861 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12863 * gst/vaapi/gstvaapipostproc.c:
12864 vaapipostproc: fix construction of allowed sink pad caps.
12865 Fix construction of the set of caps allowed on the sink pad to filter
12866 out unsupported raw video caps with GStreamer >= 1.2.
12868 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12870 * gst/vaapi/gstvaapipostproc.c:
12871 * gst/vaapi/gstvaapipostproc.h:
12872 vaapipostproc: improve heuristics for detecting native VA surfaces.
12873 Use the new gst_caps_has_vaapi_surface() helper function to detect
12874 whether the sink pad caps contain native VA surfaces, or not, i.e.
12876 Also rename is_raw_yuv to get_va_surfaces to make the variable more
12877 explicit as we just want a way to differentiate raw video caps from
12878 VA surfaces actually.
12880 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12882 * gst/vaapi/gstvaapipostproc.c:
12883 vaapipostproc: disable discontinuity detection code.
12884 The "discontinuity" tracking code, whereby lost frames are tentatively
12885 detected, is inoperant if the sink pad buffer timestamps are not right
12887 This is a temporary workaround until the following bug is fixed:
12888 https://bugzilla.gnome.org/show_bug.cgi?id=734386
12890 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12892 * gst/vaapi/gstvaapipostproc.c:
12893 vaapipostproc: fix heuristic for detecting discontinuity.
12894 In order to make the discontinuity detection code useful, we need to
12895 detect the lost frames in the history as early as the previous frame.
12896 This is because some VA implementations only support one reference
12897 frame for advanced deinterlacing.
12898 In practice, turn the condition for detecting new frame that is beyond
12899 the previous frame from field_duration*2 to field_duration*3, i.e.
12900 nothing received for the past frame and a half because of possible
12901 rounding errors when calculating the field-duration either in this
12902 element (vaapipostproc), or from the upstream element (parser element).
12903 This is a regression introduced with commit faefd62.
12904 https://bugzilla.gnome.org/show_bug.cgi?id=734135
12906 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12908 * gst/vaapi/gstvaapipluginbase.c:
12909 * gst/vaapi/gstvaapipluginbase.h:
12910 plugins: fix detection of raw video caps.
12911 Use the new gst_caps_has_vaapi_surface() helper function to better
12912 detect raw video caps, and in particular those from RGB colorspace.
12913 https://bugzilla.gnome.org/show_bug.cgi?id=734665
12915 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12917 * gst/vaapi/gstvaapipluginutil.c:
12918 * gst/vaapi/gstvaapipluginutil.h:
12919 plugins: add helper for detecting VA surfaces in caps.
12920 Introduce new gst_caps_has_vaapi_surface() helper function to detect
12921 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
12922 implies a check for memory:VASurface caps features, and format=ENCODED
12923 for earlier versions of GStreamer.
12925 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
12927 * gst/vaapi/gstvaapidecode.c:
12928 vaapidecode: start the decoder task again after finishing
12929 This allows the element to accept data again after draining without
12930 a hard reset or caps change happening in between.
12931 https://bugzilla.gnome.org/show_bug.cgi?id=734616
12933 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
12935 * gst/vaapi/gstvaapidecode.c:
12936 vaapidecode: unlock condition variables before shutting down the element
12937 Otherwise threads might wait for them, causing the shutdown of the element
12938 to deadlock on the streaming thread.
12939 https://bugzilla.gnome.org/show_bug.cgi?id=734616
12941 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
12943 * gst/vaapi/gstvaapidecode.c:
12944 vaapidecode: reset decoder_finish variable after stopping the decoder thread
12945 Otherwise the element is not usable again after draining/EOS.
12946 https://bugzilla.gnome.org/show_bug.cgi?id=734616
12948 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
12950 * gst/vaapi/gstvaapidecode.c:
12951 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
12952 This otherwise results in unnecessary error messages.
12953 https://bugzilla.gnome.org/show_bug.cgi?id=734616
12955 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12957 * gst-libs/gst/vaapi/Makefile.am:
12958 * gst/vaapi/Makefile.am:
12959 build: fix with --no-undefined linker flags.
12960 https://bugzilla.gnome.org/show_bug.cgi?id=729352
12962 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
12964 * gst/vaapi/gstvaapisink.c:
12965 * gst/vaapi/gstvaapisink.h:
12966 vaapisink: add support for GstColorBalance interface.
12967 https://bugzilla.gnome.org/show_bug.cgi?id=722390
12968 [fixed channel names, simplified range factor, fixed memory leak]
12969 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12971 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
12973 * gst/vaapi/gstvaapisink.c:
12974 * gst/vaapi/gstvaapisink.h:
12975 vaapisink: add support for colorbalance adjustment.
12976 https://bugzilla.gnome.org/show_bug.cgi?id=722390
12977 [fixed and simplified tracking of colorbalance value changes]
12978 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12980 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12982 * gst/vaapi/gstvaapisink.c:
12983 vaapisink: improve installation of properties.
12984 Simplify the creation and installation process of properties, by first
12985 accumulating them into a g_properties[] array, and next calling into
12986 g_object_class_install_properties().
12987 Also add missing docs and flags to some properties.
12989 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12991 * gst/vaapi/gstvaapisink.c:
12992 * gst/vaapi/gstvaapisink.h:
12993 vaapisink: code clean-ups.
12994 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
12995 helper macro and use it wherever we know the object is a GstBaseSink or
12996 any base class. Drop explicit initializers for values that have defaults
12999 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13001 * gst/vaapi/gstvaapisink.c:
13002 * gst/vaapi/gstvaapisink.h:
13003 vaapisink: re-indent all GstVaapiSink related source code.
13005 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13007 * gst/vaapi/gstvaapisink.c:
13008 * gst/vaapi/gstvaapisink.h:
13009 vaapisink: introduce separate backends.
13010 Introduce new backends vtable so that to have clean separation between
13011 display dependent code and common base code. That's a "soft" separation,
13012 we don't really need dedicated objects.
13013 https://bugzilla.gnome.org/show_bug.cgi?id=722248
13015 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13017 * gst/vaapi/gstvaapisink.c:
13018 * gst/vaapi/gstvaapisink.h:
13019 vaapisink: drop unused "synchronous" mode.
13020 Support for X11 "synchronous" mode was never implemented, and was only
13021 to be useful for debugging. Drop that altogether, that's not going to
13022 be useful in practice.
13023 https://bugzilla.gnome.org/show_bug.cgi?id=733985
13025 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13027 * gst/vaapi/gstvaapisink.c:
13028 * gst/vaapi/gstvaapisink.h:
13029 vaapisink: drop unused variables.
13030 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
13031 variables. They got merged into the GstVaapiPluginBase object.
13033 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13035 * gst/vaapi/gstvaapisink.c:
13036 * gst/vaapi/gstvaapisink.h:
13037 vaapisink: drop GLX rendering and fancy effects.
13038 Rendering with GLX in vaapisink is kind of useless nowadays, including
13039 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
13040 deprecated in favor of EGL, or more direct buffer sharing with actual
13042 Should testing of interop with GLX be needed, one could still be using
13043 the modern cluttersink or glimagesink elements.
13044 https://bugzilla.gnome.org/show_bug.cgi?id=733984
13046 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
13048 * gst/vaapi/gstvaapisink.c:
13049 * gst/vaapi/gstvaapisink.h:
13050 vaapisink: listen to window size changes on X11.
13051 Allow dynamic changes to the window, e.g. performed by the user, and
13052 make sure to refresh its contents, while preserving aspect ratio.
13053 In practice, Expose and ConfigureNotify events are tracked in X11
13054 display mode by default. This occurs in a separte event thread, and
13055 this is similar to what xvimagesink does. Any of those events will
13056 trigger a reconfiguration of the window "soft" size, subsequently
13057 the render-rect when necessary, and finally _expose() the result.
13058 The default of handle_events=true can be changed programatically via
13059 gst_x_overlay_handle_events().
13060 Thanks to Fabrice Bellet for rebasing the patch.
13061 https://bugzilla.gnome.org/show_bug.cgi?id=711478
13062 [dropped XInitThreads(), cleaned up the code a little]
13063 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13065 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13067 * gst/vaapi/gstvaapidecode.c:
13068 vaapidecode: decode and output all pending frames on normal EOS.
13069 The gst_vaapidecode_decode_loop() function is called within a separate
13070 task to fetch and output all frames that were decoded so far. So, if
13071 the decoder_loop_status is forcibly set to EOS when _finish() is called,
13072 then we are bound to exist the task without submitting the pending
13074 If the downstream element error'ed out, then the gst_pad_push() would
13075 propagate up an error and so we will get it right for cutting off
13076 _finish() early in that case.
13077 This is a regression from 6003596.
13078 https://bugzilla.gnome.org/show_bug.cgi?id=733897
13080 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13083 Bump version for development.
13085 === release 0.5.9 ===
13087 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13092 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13097 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
13099 * gst/vaapi/gstvaapidecode.c:
13100 vaapidecode: properly return from decode loop on downstream errors.
13101 Fixes a hang/race on shutdown where _decode_loop() had already completed
13102 its execution and _finish() was waiting on a GCond for decode_loop()
13103 to complete. Also fixes the possible race where _finish() is called
13104 but _decode_loop() endlessly returns before signalling completion
13105 iff the decoder instance returns GST_FLOW_OK.
13106 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
13107 https://bugzilla.gnome.org/show_bug.cgi?id=733897
13108 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
13109 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13111 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13117 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13119 * gst/vaapi/gstvaapisink.c:
13120 vaapisink: fix GstVideoOverlay::expose() implementation.
13121 Now that we always track the currently active video buffer, it is
13122 not necessary to automatically increase its reference since this is
13123 implicitly performed in ::show_frame() through the get_input_buffer()
13124 helper from GstVaapiPluginBase class.
13125 This is a regression from a26df80.
13127 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13129 * gst/vaapi/gstvaapidecode.c:
13130 * gst/vaapi/gstvaapipluginutil.c:
13131 vaapidecode: simplify bufferpool configuration.
13132 Rework the logics behind the configuration of an adequate bufferpool,
13133 especially when OpenGL meta or additional capsfeatures are needed.
13134 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
13135 and that is not system memory, is now selected by default.
13137 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13139 * gst/vaapi/gstvaapidecode.c:
13140 vaapidecode: fix auto-plugging of vaapisink element.
13141 Make sure to propagate memory:VASurface capsfeature to srcpad caps
13142 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
13143 core currently miss additional patches available in 1.5-git (1.6).
13144 This is a temporary workaround.
13146 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13149 configure: allow builds against GStreamer git (1.5.x).
13150 https://bugzilla.gnome.org/show_bug.cgi?id=733688
13152 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13155 configure: fix build with GStreamer 1.4.0 release.
13157 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13160 * debian.upstream/Makefile.am:
13161 * debian.upstream/control.in:
13162 debian: fix packaging for new naming scheme.
13164 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13169 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13172 configure: mark support for GStreamer < 1.2 as deprecated.
13173 Supporting anything thing below GStreamer 1.2 is asking for trouble
13174 for keeping up with the required facilities to make efficient pipelines.
13175 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
13178 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13181 configure: mark support for GStreamer 0.10 as obsolete.
13182 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
13183 and may actually be removed altogether for a future release. There is
13184 no real point to maintain a build for such an ancient GStreamer version
13185 that is not even supported upstream.
13187 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13189 * gst/vaapi/gstvaapisink.c:
13190 * gst/vaapi/gstvaapisink.h:
13191 vaapisink: allow a specific view component to be displayed.
13192 If a multiview stream is decoded, multiple view components are submitted
13193 as is downstream. It is the responsibility of the sink element to display
13194 the required view components. By default, always select the frame buffer
13195 that matches the view-id of the very first frame to be displayed.
13196 However, introduce a "view-id" property to allow the selection of a
13197 specific view component of interest to display.
13199 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13201 * gst/vaapi/gstvaapisink.c:
13202 vaapisink: always keep the last displayed buffer around.
13203 Always record the VA surface that is currently being rendered, no matter
13204 the fact we are using texturedblit or overlay. That's because in some
13205 occasions, we need to refresh or resize the displayed contents based on
13206 new events. e.g. user-resized window.
13207 Besides, it's simpler to track the last video buffer in GstVaapiSink than
13208 through the base sink "last-sample".
13210 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13212 * gst/vaapi/gstvaapipluginbase.c:
13213 * gst/vaapi/gstvaapipluginbase.h:
13214 * gst/vaapi/gstvaapipluginutil.c:
13215 * gst/vaapi/gstvaapisink.c:
13216 vaapisink: add support for "display-name" property.
13217 Add a "display-name" property to vaapisink so that the end user could
13218 select the desired output. Keep "display-name" in-line with the existing
13219 "display" (GstVaapiDisplayXXX type).
13220 So, for X11 or GLX, the "display-name" is the usual display name as we
13221 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
13222 for wl_display_connect(); and for DRM, the "display-name" is actually the
13224 https://bugzilla.gnome.org/show_bug.cgi?id=722247
13226 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13228 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
13229 window: make gst_vaapi_window_reconfigure() thread-safe.
13230 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
13231 thread-safe by default, so that upper layer users don't need to handle
13234 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
13236 * gst-libs/gst/vaapi/gstvaapiwindow.c:
13237 * gst-libs/gst/vaapi/gstvaapiwindow.h:
13238 window: allow for updating size from current geometry.
13239 Add gst_vaapi_window_reconfigure() interface to force an update of
13240 the GstVaapiWindow "soft" size, based on the current geometry of the
13241 underlying native window.
13242 This can be useful for instance to synchronize the window size when
13243 the user changed it.
13244 Thanks to Fabrice Bellet for rebasing the patch.
13245 [changed interface to gst_vaapi_window_reconfigure()]
13246 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13248 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13250 * gst-libs/gst/vaapi/gstvaapiwindow.c:
13251 * gst-libs/gst/vaapi/gstvaapiwindow.h:
13252 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
13253 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
13254 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
13255 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
13256 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
13257 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
13258 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
13259 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
13260 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
13261 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
13262 window: re-indent all GstVaapiWindow related source code.
13264 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13266 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13267 * gst-libs/gst/vaapi/gstvaapidisplay.h:
13268 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
13269 display: add interface to retrieve the display name.
13270 Add gst_vaapi_display_get_display_name() helper function to determine
13271 the name associated with the underlying native display. Note that for
13272 raw DRM backends, the display name is actually the device path.
13274 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13276 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
13277 display: fix comparison of X11 display names.
13278 Make sure to not only compare display host names, but also the actual
13279 display number. The screen number does not need to be checked at this
13282 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13284 * gst/vaapi/gstvaapidecode.c:
13285 * gst/vaapi/gstvaapivideobufferpool.c:
13286 vaapidecode: add support for VideoAlignment bufferpool option.
13287 Always add VideoAlignment bufferpool option if the downstream element
13288 expects its own pool to be used but does not offer it through a proper
13289 propose_allocation() implementation for instance, and that the ALLOCATION
13290 query does not expose the availability of the Video Meta API.
13291 This fixes propagation of video buffer stride information to Firefox.
13293 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13295 * gst/vaapi/gstvaapivideomemory.c:
13296 vaapivideomemory: always prefer native VA surface formats.
13297 Make sure to always prefer native internal formats for the VA surfaces
13298 that get allocated. Also disable "direct-rendering" mode in this case.
13299 This is needed so that to make sure that anything that gets out of the
13300 decoder, or anything that gets into the encoder, is in native format
13301 for the hardware, and thus the driver doesn't need to perform implicit
13302 conversions in there. Interop with SW elements is still available with
13303 fast implementations of VA imaging APIs.
13305 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13307 * gst/vaapi/gstvaapivideomemory.c:
13308 vaapivideomemory: disallow memory shares across buffers, use a copy.
13309 Forbid shares of GstMemory instances, and rather make copy of it. This
13310 effectively copies the GstMemory structure and enclosed metadata, but
13311 this does not copy the VA surface contents itself. It should though.
13312 This fixes preroll and makes sure to not download garbage for the first
13313 frame when a SW rendering sink is used.
13315 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13317 * gst/vaapi/gstvaapivideomemory.c:
13318 * gst/vaapi/gstvaapivideomemory.h:
13319 vaapivideomemory: use an image pool to cache objects.
13320 Use an image pool to hold VA images to be used for downloads/uploads
13321 of contents for the associated surface.
13322 This is an optmization for size. So, instead of creating as many VA
13323 images as there are buffers (then VA surfaces) allocated, we only
13324 maintain a minimal set of live VA images, thus preserving memory
13327 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13329 * gst/vaapi/gstvaapivideomemory.c:
13330 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
13331 Disable read-write mappings if "direct-rendering" is not supported.
13332 Since the ordering of read and write operations is not specified,
13333 this would require to always download the VA surface on _map(), then
13334 commit the temporary VA image back to the VA surface on _unmap().
13335 Some SW decoding plug-in elements still use R/W mappings though.
13336 https://bugzilla.gnome.org/show_bug.cgi?id=733242
13338 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13340 * gst/vaapi/gstvaapivideomemory.c:
13341 vaapivideomemory: minor code clean-ups.
13342 Fix error messages introduced in the previous commit for the _map()
13343 imaplementation. Also use the new get_image_data() helper function
13344 to determine the base pixels data buffer from a GstVaapiImage when
13345 updating the video info structure from it.
13347 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13349 * gst/vaapi/gstvaapivideomemory.c:
13350 * gst/vaapi/gstvaapivideomemory.h:
13351 vaapivideomemory: add support for raw pixels mappings.
13352 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
13353 cases where the buffer pool is allocated without VideoMeta API, thus
13354 individual planes cannot be mapped.
13355 This is initial support for Firefox >= 30.
13356 https://bugzilla.gnome.org/show_bug.cgi?id=731886
13358 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13360 * gst/vaapi/gstvaapivideomemory.c:
13361 vaapivideomemory: fix determination of the surface pool format.
13362 While creating the vaapi video allocator, make sure the associated
13363 surface pool has correct format instead of defaulting to NV12 video
13364 format even though there is no direct rendering support.
13365 https://bugzilla.gnome.org/show_bug.cgi?id=732691
13367 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13369 * gst/vaapi/gstvaapivideomemory.c:
13370 vaapivideomemory: fix association of surface to proxy.
13371 Make sure to always update the VA surface pointer whenever the proxy
13372 changes. This used to only work when the VA surface is written to, in
13373 interop with SW element ("upload" feature), and this now fixes cases
13374 when the VA surface is needed for reading, in interop with SW element
13375 ("download" feature).
13377 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13379 * gst/vaapi/gstvaapidecode.c:
13380 * gst/vaapi/gstvaapipluginutil.c:
13381 * gst/vaapi/gstvaapivideomemory.c:
13382 plugins: expose I420 format for interop with SW elements.
13383 Always expose I420 format by default when the VA surface could be
13384 mapped for interoperability with non harware accelerated elements.
13385 However, the default behaviour remains the auto-plugging of vaapi
13386 elements, down to the sink.
13387 Side effect: "direct-rendering" mode is also disabled most of the
13388 times as plain memcpy() from uncached speculative write combining
13389 memory is not going to be efficient enough.
13391 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13393 * gst/vaapi/gstvaapidecode.c:
13394 * gst/vaapi/gstvaapivideomemory.c:
13395 plugins: allow download capability to vaapidecode element.
13396 Fix support for VA surface download capability in vaapidecode element
13397 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
13398 but also the libva-intel-driver while performing hardware accelerated
13399 conversions from the native VA surface format (NV12) to the desired
13400 output VA image format.
13401 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
13402 https://bugzilla.gnome.org/show_bug.cgi?id=733243
13404 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
13406 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
13407 decoder: mpeg4: fix picture decoder return value for skipped frames.
13408 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
13409 when a frame should be skipped, so the stream processing is not stalled.
13410 https://bugzilla.gnome.org/show_bug.cgi?id=733324
13412 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
13414 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
13415 decoder: mpeg2: respect any input PTS provided for a frame.
13416 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
13417 frame timestamps within a GOP, even when it's been fed input PTS for
13419 That leads to incorrect output timestamps in some situations - for example
13420 live playback where input timestamps have been scaled based on arrival time
13421 from the network and don't exactly match the framerate.
13422 https://bugzilla.gnome.org/show_bug.cgi?id=732719
13424 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13426 * gst-libs/gst/vaapi/gstvaapiobject.c:
13427 GstVaapiObject: make gst_vaapi_object_new() more robust.
13428 Forbid GstVaapiObject to be created without an associated klass spec.
13429 It is mandatory that the subclass implements an adequate .finalize()
13430 hook, so it shall provide a valid GstVaapiObjectClass.
13431 https://bugzilla.gnome.org/show_bug.cgi?id=722757
13432 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
13433 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13435 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13437 * gst-libs/gst/vaapi/gstvaapiobject.c:
13438 GstVaapiObject: initialize the derived object data with init() hook.
13439 Call the subclass .init() function in gst_vaapi_object_new(), if
13440 needed. The default behaviour is to zero initialize the subclass
13441 object data, then the .init() function can be used to initialize
13442 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
13443 Also fix the gst_vaapi_object_new() description, which was merely
13444 copied from GstVaapiMiniObject.
13445 https://bugzilla.gnome.org/show_bug.cgi?id=722757
13446 [changed to always zero initialize the subclass]
13447 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13449 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
13451 * gst/vaapi/gstvaapidecode.c:
13452 vaapidecode: make decoder work with playbin
13453 When playbin/decodebin builds the pipeline, it puts decoders and sinks
13454 into different bins and forwards the queries from bins to bins. So in
13455 the initials steps the pipeline is built iteratively by playbin and
13458 [filesrc] -> [typefind]
13459 [filesrc] -> [typefind] -> [demuxer]
13460 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
13461 At this point the decoder is asked for its SRC caps and it will make a
13462 choice based on what gst_pad_peer_query_caps() returns. The problem is
13463 that the caps returns at that point includes caps features like ANY,
13464 essentially because playbin can plug in additional elements like
13465 videoscale, videoconv or deinterlace.
13466 This patch adds a another call to
13467 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
13468 allocation, to make sure we asks the downstream elements when the
13469 entire pipeline has been built.
13470 https://bugzilla.gnome.org/show_bug.cgi?id=731645
13472 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13474 * gst/vaapi/gstvaapipostproc.c:
13475 vaapipostproc: don't let tmp_rect go out of scope.
13476 A compiler change showed me that tmp_rect went out of scope before
13477 it was used. Move it to the beginning of the function instead.
13478 https://bugzilla.gnome.org/show_bug.cgi?id=726363
13479 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13480 [added guards for GStreamer 0.10 builds]
13481 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13483 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13488 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13492 Drop references to deprecated plugins (vaapiupload, vaapidownload),
13493 mention that support for GStreamer 0.10 is deprecated, make overview
13494 more descriptive in certain aspects.
13496 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13501 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13505 build: mention that support for GStreamer 0.10 is deprecated.
13507 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13510 * gst/vaapi/gstvaapidecode.c:
13511 build: fix for GStreamer 0.10.
13513 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13515 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
13516 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
13517 * patches/videoparsers/series.frag:
13518 build: fix for GStreamer 1.0.x.
13520 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13522 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13523 decoder: h264: detect incorrectly paired fields in frames.
13524 When a DPB flush is required, e.g. at a natural and of stream or issued
13525 explicitly through an IDR, try to detect any frame left in the DPB that
13526 is interlaced but does not contain two decoded fields. In that case, mark
13527 the picture as having a single field only.
13528 This avoids a hang while decoding tv_cut.mkv.
13530 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13532 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13533 decoder: h264: simplify the DPB output process.
13534 Simplify the dpb_output() function to exclusively rely on the frame store
13535 buffer to output, since this is now always provided. Besides, also fix
13536 cases where split fields would not be displayed.
13537 This is a regression from f48b1e0.
13539 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13541 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
13542 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
13543 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
13544 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
13545 * patches/videoparsers/series.frag:
13546 h264parse: drop patches merged upstream.
13547 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
13548 0005-h264parse-introduce-new-state-tracking-variables.patch
13549 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
13550 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
13552 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13554 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13555 decoder: h264: fix memory leak in PPS.
13556 Cope with latest changes from codecparsers/h264. It is now required
13557 to explicitly clear the GstH264PPS structure as it could contain
13558 additional allocations (slice_group_ids).
13560 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13562 * ext/codecparsers:
13563 codecparsers: update to gst-vaapi-branch commit 2d53b69.
13564 c4ace00 h264parse: fix collection of access units to preserve config headers
13565 0f9f7c9 h264parse: improve conditions for skipping NAL units
13566 9ffb25c h264parse: introduce new state tracking variables
13567 64955d3 h264parse: fix and optimize NAL collection function
13568 13cd2a3 h264: clarifications and documentation fixes
13569 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
13570 18f0de0 h264: fix memory leak in GstH264PPS
13571 fdcb54c h264: fix typo in GstH264VUIParams description
13572 fd4dae9 vp8: move up built-in range decoder private data
13574 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13576 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
13577 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
13578 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
13579 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
13580 decoder: propagate MVC metadata ("view-id", head of multiview set).
13581 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
13582 bundle", and really expresses the first view component of a multi
13583 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
13585 Likewise, new API is exposed to retrieve the associated "view-id".
13587 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13589 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
13590 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
13591 decoder: propagate "one-field" flags.
13592 Allow decoders to set the "one-field" attribute when the decoded frame
13593 genuinely has a single field, or if the second field was mis-decoded but
13594 we still want to display the first field.
13596 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13598 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
13599 decoder: output decoded frames only once.
13600 Make sure to output the decoded picture, and push the associated
13601 GstVideoCodecFrame, only once. The frame fully represents what needs
13602 to be output, included for interlaced streams. Otherwise, the base
13603 GstVideoDecoder class would release the frame twice.
13604 Anyway, the general process is to output decoded frames only when
13605 they are complete. By complete, we mean a full frame was decoded or
13606 both fields of a frame were decoded.
13608 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13610 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13611 decoder: h264: decode current picture earlier.
13612 Slightly optimize decoding process by submitting the current VA surface
13613 for decoding earlier to the hardware, and perform the reference picture
13614 marking process and DPB update process afterwards.
13615 This is a minor optimization to let the video decode engine kick in work
13616 earlier, thus improving parallel resources utilization.
13618 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13620 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13621 decoder: h264: fix output of second field when first field is not in DPB.
13622 Fix decoding of interlaced streams where a first field (e.g. B-slice)
13623 was immediately output and the current decoded field is to be paired
13624 with that former frame, which is no longer in DPB.
13625 https://bugzilla.gnome.org/show_bug.cgi?id=701340
13627 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13629 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13630 decoder: h264: slightly optimize the process to detect new pictures.
13631 Optimize the process to detect new pictures or start of new access
13632 units by checking if the previous NAL unit was the end of a picture,
13633 or the end of the previous access unit.
13635 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13637 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13638 decoder: h264: handle access unit ("au") optimization.
13639 Optimize parsing when buffers are supplied with access unit alignment.
13640 This helps determining faster when the end of an access unit is reached.
13642 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13644 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13645 decoder: h264: fix tracking of DPB size changes.
13646 Add support for MVC streams with multiple SPS and subset SPS headers
13647 emitted regularly, e.g. at around every I-frame. Track the maximum
13648 number of views in ensure_context() and really reset the DPB size to
13649 the expected value, always. i.e. even if it decreased. dpb_reset()
13650 only cares of ensuring the DPB allocation.
13652 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13654 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13655 decoder: h264: fix the DPB compaction process.
13656 Fix the compaction process when the DPB is cleared for a specific
13657 view, i.e. fix the process of filling in the holes resulting from
13658 removing frame buffers matching the current picture.
13660 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13662 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13663 encoder: h264: generate new SPS only when codec config changed.
13664 It is not necessary to periodically send SPS or subset SPS headers.
13665 This is up to the upper layer (e.g. transport layer) to decide on
13666 if/how to periodically submit those. For now, only generate new SPS
13667 or subset SPS headers when the codec config changed.
13668 Note: the upper layer could readily determine the config headers
13669 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
13670 https://bugzilla.gnome.org/show_bug.cgi?id=732083
13671 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13673 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13675 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13676 encoder: h264: track encoder config changes.
13677 Track and report when encoder configuration changed. For now, this covers
13678 resolution, profile/level and bitrate changes.
13680 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13682 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13683 encoder: h264: add pixel-aspect-ratio to VUI parameters.
13684 Report sample aspect ratio (SAR) as present, and make it match what
13685 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
13686 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
13688 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13690 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13691 encoder: h264: fix number of anchor and non-anchor reference pictures.
13692 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
13693 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
13696 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13698 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13699 encoder: h264: fix timing_info_present_flag value in subset SPS.
13700 When the seq_parameter_set_data() syntax structure is present in a subset
13701 sequence parameter set and vui_parameters_present_flag is equal to 1, then
13702 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
13704 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13706 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13707 encoder: h264: add cpbBrNalFactor values for MVC profiles.
13709 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13711 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
13712 h264parse: fix detection of access unit boundaries for MVC.
13713 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
13714 this function is used to determine access unit boundaries, i.e. that
13715 is the key function for alignment=au output format generation.
13717 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13719 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
13720 * patches/videoparsers/series.frag:
13721 h264parse: fix collection of access units to preserve config headers.
13722 Always use a GstAdapter when collecting access units (alignment="au")
13723 in either byte-stream or avcC format. This is required to properly
13724 preserve config headers like SPS and PPS when invalid or broken NAL
13725 units are subsequently parsed.
13726 More precisely, this fixes scenario like:
13727 <SPS> <PPS> <invalid-NAL> <slice>
13728 where we used to reset the output frame buffer when an invalid or
13729 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
13730 preventing the next slice unit to be decoded, should this also
13731 represent any valid data.
13732 https://bugzilla.gnome.org/show_bug.cgi?id=732203
13734 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13736 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
13737 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
13738 * patches/videoparsers/series.frag:
13739 h264parse: improve conditions for skipping NAL units.
13740 Carefully track cases when skipping broken or invalid NAL units is
13741 necessary. In particular, always allow NAL units to be processed
13742 and let that gst_h264_parse_process_nal() function decide on whether
13743 the current NAL needs to be dropped or not.
13744 This fixes parsing of streams with SEI NAL buffering_period() message
13745 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
13746 SPS NAL unit, among other cases too.
13747 Practical examples from the H.264 AVC conformance suite include
13748 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
13749 when parsing in stream-format=byte-stream,alignment=au mode.
13750 https://bugzilla.gnome.org/show_bug.cgi?id=732203
13752 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13754 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
13755 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
13756 * patches/videoparsers/series.frag:
13757 h264parse: introduce new state tracking variables.
13758 Improve parser state tracking by introducing new flags reflecting
13759 it: "got-sps", "got-pps" and "got-slice". This is an addition for
13760 robustness purposes.
13761 Older have_sps and have_pps variables are kept because they have
13762 a different meaning. i.e. they are used for deciding on when to
13763 submit updated caps or not, and rather mean "have new SPS/PPS to
13766 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13768 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
13769 * patches/videoparsers/series.frag:
13770 h264parse: default to byte-stream/nalu format (Annex B).
13771 Always default to stream-format=byte-stream,alignment=nalu if avcC
13772 format was not detected. This is the natural stream format specified
13773 in the standard (Annex.B): a series of NAL units prefixed with the
13775 https://bugzilla.gnome.org/show_bug.cgi?id=732167
13777 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13779 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
13780 * patches/videoparsers/series.frag:
13781 h264parse: fix and optimize NAL collection function.
13782 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
13783 NAL unit. We don't want to parse the full NAL unit, but only the
13784 header bytes and possibly the first RBSP byte for identifying the
13785 first_mb_in_slice syntax element.
13786 Also fix check for failure when returning from that function. The
13787 only success condition for that is GST_H264_PARSER_OK, so use it.
13788 https://bugzilla.gnome.org/show_bug.cgi?id=732154
13790 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13792 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13793 encoder: h264: fix NAL unit types in packed headers.
13794 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
13795 slice header (nal_unit_type = 1 or 5) only for the base view. In non
13796 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
13797 is required, with an appropriate nal_unit_header_mvc_extension() in
13798 the NAL header bytes.
13799 https://bugzilla.gnome.org/show_bug.cgi?id=732083
13801 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13803 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13804 encoder: h264: add missing field in packed Subset SPS header.
13805 Write the missing num_level_values_signalled_minus1 syntax element
13806 into the packed header for subset sequence parameter set.
13807 https://bugzilla.gnome.org/show_bug.cgi?id=732083
13809 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13811 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13812 decoder: h264: fix marking of non-reference picture into DPB.
13813 Fix search for a picture in the DPB that has a lower POC value than
13814 the current picture. The dpb_find_lowest_poc() function will return
13815 a picture with the lowest POC in DPB and that is marked as "needed
13816 for output", but an additional check against the actual POC value
13817 of the current picture is needed.
13818 This is a regression from 1c46990.
13819 https://bugzilla.gnome.org/show_bug.cgi?id=732130
13821 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13823 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13824 decoder: h264: fix DPB clear when no decoding actually started.
13825 Fix dpb_clear() to clear previous frame buffers only if they actually
13826 exist to begin with. If the decoder bailed out early, e.g. when it
13827 does not support a specific profile, that array of previous frames
13828 might not be allocated beforehand.
13830 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13832 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13833 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
13834 * gst/vaapi/gstvaapidecode.c:
13835 decoder: h264: add support for NALU "alignment" optimization.
13836 We can avoid scanning for start codes again if the bitstream is fed
13837 in NALU chunks. Currently, we always scan for start codes, and keep
13838 track of remaining bits in a GstAdapter, even if, in practice, we
13839 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
13841 https://bugzilla.gnome.org/show_bug.cgi?id=723284
13842 [use gst_adapter_available_fast() to determine the top buffer size]
13843 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13845 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13847 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13848 decoder: h264: fix caps to report interlace-mode accordingly.
13849 The `vaapipostproc' element could never determine if the H.264 stream
13850 was interlaced, and thus always assumed it to be progressive. Fix the
13851 H.264 decoder to report interlace-mode accordingly, thus allowing the
13852 vaapipostproc element to automatically enable deinterlacing.
13854 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13856 * gst/vaapi/gstvaapipostproc.c:
13857 vaapipostproc: don't crash with dynamic framerate (0/1).
13858 Avoid reaching an assert if dynamic framerates (0/1) are used. One
13859 way to solve this problem is to just stick field_duration to zero.
13860 However, this means that, in presence of interlaced streams, the
13861 very first field will never be displayed if precise presentation
13862 timestamps are honoured.
13863 https://bugzilla.gnome.org/show_bug.cgi?id=729604
13865 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13867 * gst/vaapi/gstvaapipostproc.c:
13868 vaapipostproc: create filter surface pool if it does not exist yet.
13869 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
13870 recreating filter_pool. Unfortunately, this also meant it didn't create
13871 it if it did not exist.
13872 Fix it to always create the buffer pool if it does not exist.
13873 https://bugzilla.gnome.org/show_bug.cgi?id=723834
13874 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13876 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
13878 * gst/vaapi/gstvaapipostproc.c:
13879 vaapipostproc: reset deinterlacer state when there is a discontinuity.
13880 Reset deinterlacer state, i.e. past reference frames used for advanced
13881 deinterlacing, when there is some discontinuity detected in the course
13882 of processing source buffers.
13883 This fixes support for advanced deinterlacing when a seek occurred.
13884 https://bugzilla.gnome.org/show_bug.cgi?id=720375
13885 [fixed type of pts_diff variable, fetch previous buffer PTS from the
13886 history buffer, reduce heuristic for detecting discontinuity]
13887 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13889 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13891 * gst/vaapi/gstvaapipostproc.c:
13892 vaapipostproc: add support for crop regions in VPP mode.
13893 Apply video cropping regions stored in GstVideoCropMeta, or in older
13894 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
13895 the crop meta are already propagated to the output buffers.
13896 https://bugzilla.gnome.org/show_bug.cgi?id=720730
13898 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13900 * gst/vaapi/gstvaapipostproc.c:
13901 vaapipostproc: make deinterlace-mode behave as expected.
13902 deinterlace-mode didn't behave in the way you'd expect if you have
13903 past experience of the deinterlace element. There were two bugs:
13904 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
13905 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
13906 Fix these up, and add assertions and error messages to detect cases that
13908 https://bugzilla.gnome.org/show_bug.cgi?id=726361
13909 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13910 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13912 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
13914 * gst/vaapi/gstvaapidecode.c:
13915 vaapidecode: do not discard video info props when the format changed.
13916 gst_video_info_set_format() does not preserve video info properties. In
13917 order to keep important information in the caps such as interlace mode,
13918 framerate, pixel aspect ratio, ... we need to manually copy back those
13919 properties after setting the new video format.
13920 https://bugzilla.gnome.org/show_bug.cgi?id=722276
13922 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
13924 * gst/vaapi/gstvaapidecode.c:
13925 vaapidecode: plug a memory leak.
13926 It can happen that there is a pool provided that does not advertise
13927 the vappivideometa. We should unref that pool before using our own.
13928 Discovered with vaapidecode ! {glimagesink,cluttersink}
13929 https://bugzilla.gnome.org/show_bug.cgi?id=724957
13930 [fixed compilation by adding the missing semi-colon]
13931 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13933 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13935 * gst/vaapi/gstvaapidecode.c:
13936 vaapidecode: parse source data until a frame is obtained.
13937 Parse any pending data until a complete frame is obtained. This is a
13938 memory optimization to avoid expansion of video packets stuffed into
13939 the GstAdapter, and a fix to EOS condition to detect there is actually
13940 pending data that needs to be decoded, and subsequently output.
13941 https://bugzilla.gnome.org/show_bug.cgi?id=731831
13943 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13945 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13946 encoder: h264: fix multiple slices support in packed headers mode.
13947 Handle packedi slice headers and packed raw data on a per-slice basis,
13948 which is necessary for multi slice encoding.
13950 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13952 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
13953 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
13954 encoder: add infrastructure for per-slice handling of packed headers.
13955 The packed slice header and packed raw data need to be paired with
13956 the submission of VAEncSliceHeaderParameterBuffer. So handle them
13957 on a per-slice basis insted of a per-picture basis.
13958 [removed useless initializer]
13959 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13961 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13963 * gst/vaapi/gstvaapisink.c:
13964 vaapisink: fix initialization with "drm" display type.
13965 Force early initializatin of the GstVaapiDisplay so that to make sure
13966 that the sink element display object is presented first to upstream
13967 elements, as it will be correctly featuring the requested display type
13969 Otherwise, we might end up in situations where a VA/X11 display is
13970 initialized in vaapidecode, then we try VA/DRM display in vaapisink
13971 (as requested by the "display" property), but this would cause a failure
13972 because we cannot acquire a DRM display that was previously acquired
13973 through another backend (e.g. VA/X11).
13975 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13977 * gst/vaapi/gstvaapipluginbase.c:
13978 plugins: fix initialization with foreign context.
13979 When a new display is settled through GstElement::set_context() (>= 1.2),
13980 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
13981 associated display type.
13983 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13988 * gst/vaapi/Makefile.am:
13989 * gst/vaapi/gstvaapiparse.c:
13990 * gst/vaapi/gstvaapiparse.h:
13991 * patches/Makefile.am:
13992 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
13993 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
13994 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
13995 * patches/videoparsers/Makefile.am:
13996 * patches/videoparsers/series.frag:
13997 plugins: add built-in video parsers as "vaapiparse" element.
13998 The built-in video parsers elements are built into a single DSO named
13999 libgstvaapi_parse.so. The various video parsers could be accessed as
14001 For now, this only includes a modified version of h264parse so that to
14002 support H.264 MVC encoded streams.
14004 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14006 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14007 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
14008 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
14009 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
14011 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14013 * ext/codecparsers:
14014 codecparsers: update to gst-vaapi-branch commit d6325ac.
14015 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
14016 d2f965a h264parse: set field_pic_flag when parsing a slice header
14017 24c15b8 Import h264parse
14018 a9283e5 bytereader: Use concistant derefence method
14019 a8252c6 bytereader: Use pointer instead of index access
14020 b1bebfc Import GstBitReader and GstByteReader
14021 2f58788 h264: recognize SVC NAL units
14022 4335da5 h264: fix SPS copy code for MVC
14023 cf9b6dc h264: fix quantization matrix conversion routine names
14024 b11ce2a h264: add gst_h264_video_calculate_framerate()
14025 126dc6f add C++ guards for MPEG-4 and VP8 parsers
14027 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14029 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14030 decoder: h264: factor out DPB pruning for MVC.
14031 Factor out the removal process of unused inter-view only reference
14032 pictures from the DPB, prior to the possible insertion of the current
14034 Ideally, the compiler could still opt for generating two loops. But
14035 at least, the code is now clearer for maintenance.
14037 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14039 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14040 decoder: h264: clean-ups.
14041 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
14042 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
14044 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14046 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14047 decoder: h264: improve pruning of unused MVC inter-view frames.
14048 Improve process for the removal of pictures from DPB before possible
14049 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
14050 reference components. In particular, handle cases where picture to be
14051 inserted is not the last one of the access unit and if it was already
14052 output and is no longer marked as used for reference, including for
14053 decoding next view components within the same access unit.
14055 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14057 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14058 decoder: h264: improve DPB bumping process for MVC.
14059 While invoking the DPB bumping process in presence of many views,
14060 it could be necessary to output previous pictures that are ready,
14061 in a whole. i.e. emitting all view components from the very first
14062 view order index zero to the very last one in its original access
14063 unit; and not starting from the view order index of the picture
14064 that caused the DPB bumping process to be invoked.
14065 As a reminder, the maximum number of frames in DPB for MultiView
14066 High profile with more than 2 views is not necessarily a multiple
14067 of the number of views.
14068 This fixes decoding of MVCNV-4.264.
14070 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14072 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14073 decoder: h264: fix inter-view references array growth.
14074 Let the utility layer handle dynamic growth of the inter-view pictures
14075 array. By definition, setting a new size to the array will effectively
14076 grow the array, but would also fill in the newly created elements with
14077 empty entries (NULL), thus also increasing the reported length, which
14080 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14082 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14083 decoder: h264: reduce ReferenceFrames entries to the essential set.
14084 When decoding Multiview High profile streams with a large number of
14085 views, it is not possible to make the VAPictureParameterBufferH264.
14086 ReferenceFrames[] array hold the complete DPB, with all possibly
14087 active pictures to be used for inter-view prediction in the current
14089 So reduce the scope of the ReferenceFrames[] array to only include
14090 the set of reference pictures that are going to be used for decoding
14091 the current picture. Basically, this is a union of all RefPicListX[]
14092 array, for all slices constituting the decoded picture.
14094 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14096 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14097 decoder: h264: fix MVC inter-view prediction process.
14098 The inter-view reference components and inter-view only reference
14099 components that are included in the reference picture lists shall
14100 be considered as not being marked as "used for short-term reference"
14101 or "used for long-term reference". This means that reference flags
14102 should all be removed from VAPictureH264.flags.
14103 This fixes decoding of MVCNV-2.264.
14105 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14107 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14108 decoder: h264: fix detection of profile changes for MVC.
14109 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
14110 be careful to detect profiles changes and not reset the underlying
14111 VA context erroneously. In MVC situations, we could indeed get a
14112 profile_idc change for every SPS that gets activated, alternatively
14113 (base-view -> non-base view -> base-view, etc.).
14114 An improved fix would be to characterize the exact profile to use
14115 once and for all when SPS NAL units are parsed. This would also
14116 allow for fallbacks to a base-view decoding only mode.
14118 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14120 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14121 encoder: h264: drop extraneous definitions.
14122 Re-use definitions from the codecparser headers instead of duplicating
14123 them here again. That covers NALU definitions and slice types.
14125 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14127 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14128 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
14129 https://bugzilla.gnome.org/show_bug.cgi?id=727418
14131 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14133 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14134 encoder: h264: don't allow CABAC with Extended profile.
14135 The H.264 specification does not support CABAC entropy coding for the
14137 https://bugzilla.gnome.org/show_bug.cgi?id=727418
14139 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14141 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14142 encoder: h264: use packed headers mode for MVC encoding.
14143 Exclusively use VA drivers that support raw packed headers for encoding.
14144 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
14145 provides for better compatibility accross the various VA drivers and HW
14146 generations since no particular API is needed beyond what readily exists.
14148 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14150 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14151 encoder: h264: add support for packed slice headers.
14152 https://bugzilla.gnome.org/show_bug.cgi?id=722905
14154 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14156 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14157 encoder: h264: store subset sps to generate the codec-data
14158 Store the SubsetSPS nal unit which we need for MVC specific
14159 codec_data generation.
14161 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14163 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14164 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
14165 Since we are encoding each view independently from each other, we
14166 need a higher number of pre-allocated surfaces to be used as the
14167 reconstructed frames. For Stereo High profile encoding, this means
14168 to effectively double the number of frames to be stored in the DPB.
14170 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
14172 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14173 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
14174 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
14175 * gst/vaapi/gstvaapiencode_h264.c:
14176 encoder: h264: add initial support for H.264 Stereo High profile.
14177 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
14178 for non-base-view streams encoding, and the usual SPS, PPS and Slice
14179 NALs for base-view encoding.
14180 The H.264 Stereo High profile encoding mode will be turned on when the
14181 "num-views" parameter is set to 2. The source (raw) YUV frames will be
14182 considered as Left/Right view, alternatively.
14183 Each of the two views has its own frames reordering pool and reference
14184 frames list management system. Inter-view references are not supported
14185 yet, so the views are encoded independently from each other.
14186 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
14187 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
14188 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14190 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
14192 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14193 encoder: h264: wrap pools for refs and frames reordering.
14194 Create structures to maintain the reference frames list (RefPool) and
14195 frames reordering (ReorderPool) logic.
14196 This is a prerequisite for H.264 MVC support.
14197 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
14199 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
14201 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14202 encoder: h264: add provisional support for subset SPS headers.
14203 Add provisions to write subset SPS headers to the bitstream in view
14204 to supporting the H.264 MVC specification.
14205 This assumes the libva "staging" branch is in use.
14206 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
14208 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
14210 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14211 * gst-libs/gst/vaapi/gstvaapiutils.c:
14212 utils: add H.264 MVC profiles.
14213 Add "MultiView High" and "Stereo High" definitions.
14214 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
14215 [require VA-API >= 0.35.2 for MVC profiles]
14216 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14218 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14220 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14221 * gst-libs/gst/vaapi/gstvaapiutils.c:
14222 utils: only enable VP8 profiles for newer VA-API versions.
14223 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
14224 involving VP8 codec on earlier versions of the API.
14226 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14228 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14229 decoder: h264: compute view ids only once per slice.
14230 Optimize lookups of view ids / view order indices by caching the result
14231 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
14232 terribly simplifies is_new_access_unit() and find_first_field() functions.
14234 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14236 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14237 decoder: h264: add support for MVC interlaced streams.
14238 Fix support for MVC Stereo High profile streams with interlaced frames.
14239 Also improve the detection logic of the first field.
14241 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14243 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14244 decoder: h264: add MVC profiles compatibility logic.
14245 Add safe fallbacks for MVC profiles:
14246 - all MultiView High profile streams with 2 views at most can be decoded
14247 with a Stereo High profile compliant decoder ;
14248 - all Stereo High profile streams with only progressive views can be
14249 decoded with a MultiView High profile compliant decoder ;
14250 - all drivers that support slice-level decoding could normally support
14251 MVC profiles when the DPB holds at most 16 frames.
14253 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14255 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14256 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
14257 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
14258 decoder: h264: add initial support for MVC.
14259 https://bugzilla.gnome.org/show_bug.cgi?id=721772
14261 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14263 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14264 decoder: h264: dynamically allocate the DPB.
14265 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
14266 for supporting the MVC allocation requirements.
14268 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14270 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14271 decoder: h264: fix detection of access unit boundaries.
14272 In order to have a stricter conforming implementation, we need to carefully
14273 detect access unit boundaries. Additional operations could be necessary to
14274 perform at those boundaries.
14276 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14278 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14279 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
14280 Detect the first VCL NAL unit of a picture for MVC, based on the
14281 view_id as per H.7.4.1.2.4. Note that we only need to detect new
14283 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14285 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14287 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14288 decoder: h264: properly handle Prefix NAL units.
14289 Always cache the previous NAL unit so that we could check whether
14290 there is a Prefix NAL unit immediately preceding the current slice
14291 or IDR NAL unit. In that case, the NAL unit metadata is copied into
14292 the current NAL unit. Otherwise, some default values are inferred,
14293 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
14294 [infer default values for slice if previous NAL was not a Prefix]
14295 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14297 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
14299 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14300 decoder: h264: add support for MVC base views.
14301 Allow decoding for base views of MVC encoded streams. For now, just skip
14302 the slice extension and prefix NAL units, and skip non-base view frames.
14303 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
14304 [fixed memory leak, improved check for MVC NAL units]
14305 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14307 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14309 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14310 decoder: h264: simplify storage of decoded picture into DPB.
14311 Factor out process by which the decoded picture with the lowest POC
14312 is found, and possibly output. Likewise, the storage and marking of
14313 a reference decoded, or non-reference decoded picture, into the DPB
14314 could also be simplified as they mostly share the same operations.
14316 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14318 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14319 decoder: h264: minor clean-ups.
14320 Make init_picture_ref_lists() more consistent with other functions
14321 related to the reference marking process by supplying the current
14322 picture as argument.
14324 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14326 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14327 * gst-libs/gst/vaapi/gstvaapidisplay.h:
14328 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
14329 display: add utility function to query VA driver name.
14330 Add gst_vaapi_display_get_vendor_string() helper function to query
14331 the underlying VA driver name. The display object owns the resulting
14332 string, so it shall not be deallocated.
14333 That function is thread-safe. It could be used for debugging purposes,
14336 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14338 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14339 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
14340 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
14341 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
14342 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
14343 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
14344 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
14345 display: make cache maintenance really MT-safe.
14346 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
14347 environments. This makes sure the display cache is also consistent
14348 during the whole display creation process. In the former implementation,
14349 there were risks that display cache got updated in another thread.
14351 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14353 * gst-libs/gst/vaapi/gstvaapicontext.c:
14354 context: allow dynamic growth of VA surfaces pool.
14355 Add support for dynamic growth of the VA surfaces pool. For decoding,
14356 this implies the recreation of the underlying VA context, as per the
14357 requirement from VA-API. Besides, only increases are supported, not
14360 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14362 * gst-libs/gst/vaapi/gstvaapicontext.c:
14363 context: reset VA context if VA surfaces set changed.
14364 It is a requirement from VA-API specification that the VA context got
14365 from vaCreateContext(), for decoding purposes, binds the supplied set
14366 of VA surfaces. This means that if the set of VA surfaces is to be
14367 changed for the current decode session, then the VA context needs to
14368 be recreated with the new set of VA surfaces.
14370 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14372 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14373 decoder: h264: fix assignment of LongTermFrameIdx.
14374 Complement fix committed as e95a42e.
14375 The H.264 AVC standard has to say: if the field is part of a reference
14376 frame or a complementary reference field pair, and the other field of
14377 the same reference frame or complementary reference field pair is also
14378 marked as "used for long-term reference", the reference frame or
14379 complementary reference field pair is also marked as "used for long-term
14380 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
14381 This fixes decoding of MR9_BT_B in strict mode.
14382 https://bugs.freedesktop.org/show_bug.cgi?id=64624
14383 https://bugzilla.gnome.org/show_bug.cgi?id=724518
14385 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14387 * gst-libs/gst/vaapi/gstvaapicontext.c:
14388 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14389 * gst-libs/gst/vaapi/gstvaapiutils.c:
14390 * gst-libs/gst/vaapi/gstvaapiutils.h:
14391 decoder: h264: properly support grayscale formats.
14392 Request the correct chroma format for decoding grayscale streams.
14393 i.e. make lookups of the VA chroma format more generic, thus possibly
14394 supporting more formats in the future.
14395 This means that, if a VA driver doesn't support grayscale formats,
14396 it is now going to fail. We cannot safely assume that maybe grayscale
14397 was implemented on top of some YUV 4:2:0 with the chroma components
14400 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
14402 * gst-libs/gst/vaapi/gstvaapifilter.c:
14403 * gst-libs/gst/vaapi/gstvaapifilter.h:
14404 * tests/test-filter.c:
14405 build: fix source file modes.
14406 A few source files are marked executable in error - fix them
14407 https://bugzilla.gnome.org/show_bug.cgi?id=723748
14408 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
14410 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14413 * gst-libs/gst/vaapi/Makefile.am:
14414 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14415 * gst/vaapi/gstvaapidecode.c:
14416 build: fix conditional compilation of VP8 decoder.
14417 https://bugzilla.gnome.org/show_bug.cgi?id=729170
14418 [added check for VASliceParameterBufferBase fields]
14419 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14421 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14423 * gst-libs/gst/codecparsers/Makefile.am:
14424 build: fix make dist for codecparsers.
14426 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14428 * ext/codecparsers:
14429 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
14430 h264: fix parsing of slice groups for map type = 2
14432 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14434 * ext/codecparsers:
14435 codecparsers: update to gst-vaapi branch commit f44edfc.
14436 h264: fix derivation of default scaling lists
14438 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
14440 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14441 decoder: h264: fix long-term reference picture marking process.
14442 Fix reference picture marking process with memory_management_control_op
14443 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
14444 picture, or the current picture.
14445 This fixes decoding of FRExt_MMCO4_Sony_B.
14446 https://bugs.freedesktop.org/show_bug.cgi?id=64624
14447 https://bugzilla.gnome.org/show_bug.cgi?id=724518
14448 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
14449 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14451 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14453 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14454 decoder: h264: fix initialization of RefPicLists for multiple slices.
14455 The initialization of reference picture lists (8.2.4.2) applies to all
14456 slices. So, the RefPicList0/1 lists need to be constructed prior to
14457 each slice submission to the HW decoder.
14458 This fixes decoding of video sequences where frames are encoded with
14459 multiple slices of different types, e.g. 4 slices in this order I, P,
14460 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
14461 https://bugzilla.gnome.org/show_bug.cgi?id=724518
14463 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
14465 * ext/codecparsers:
14466 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14467 decoder: h264: skip SPS extension and auxiliary slice NALs.
14468 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
14469 are present in a video, decoders shall perform the (optional) decoding
14470 process specified for these NAL units or shall ignore them (7.4.1).
14471 Implement option 2 (skip) for now, as alpha composition is not
14472 supported yet during the decoding process.
14473 This fixes decoding of the primary coded video in alphaconformanceG.
14474 https://bugzilla.gnome.org/show_bug.cgi?id=703928
14475 https://bugzilla.gnome.org/show_bug.cgi?id=728869
14476 https://bugzilla.gnome.org/show_bug.cgi?id=724518
14477 [skip NAL units earlier, i.e. at parsing time]
14478 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14480 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
14482 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14483 decoder: h264: fix slice data bit offset with MVC NAL units.
14484 When MVC slice NAL units (coded slice extension and prefix NAL) are
14485 present, the number of NAL header bytes is 3, not 1 as usual.
14486 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
14487 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14489 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14491 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14492 decoder: h264: fix activation of picture and sequence parameters.
14493 At the time the first VCL NAL unit of a primary coded picture is found,
14494 and if that NAL unit was parsed to be an SPS or PPS, then the entries
14495 in the parser may have been overriden. This means that, when the picture
14496 is to be decoded, slice_hdr->pps could point to an invalid (the next)
14498 So, one way to solve this problem is to not use the parser PPS and
14499 SPS info but rather maintain our own activation chain in the decoder.
14500 https://bugzilla.gnome.org/show_bug.cgi?id=724519
14501 https://bugzilla.gnome.org/show_bug.cgi?id=724518
14503 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14505 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14506 decoder: h264: retain SEI messages until the end of frame.
14507 Retain the SEI messages that were parsed from the access unit until we
14508 have completely decoded the current frame. This is done so that we can
14509 peek at that data whenever necessary during decoding. e.g. for exposing
14510 3D stereoscopic information at a later stage.
14512 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14514 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14515 decoder: h264: add support for grayscale encoded clips.
14516 Fix support for grayscale encoded video clips, and possibly others if
14517 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
14518 the decision that a surface with the desired chroma format is not
14519 supported to the actual VA driver implementation.
14520 https://bugzilla.gnome.org/show_bug.cgi?id=728144
14522 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14524 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14525 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
14526 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14527 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14528 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14529 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14530 decoder: default to YUV 4:2:0 VA surfaces.
14531 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
14532 make sure all codecs use YUV 4:2:0 output format for now, by default.
14534 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14536 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14537 * gst-libs/gst/vaapi/gstvaapidecoder.h:
14538 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
14539 decoder: re-indent GstVaapiDecoder base object.
14541 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14543 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14544 encoder: derive chroma type from video format.
14545 Cope with previous VA context change to derive the correct surface chroma
14546 type from the input video format.
14548 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14550 * gst-libs/gst/vaapi/gstvaapicontext.c:
14551 * gst-libs/gst/vaapi/gstvaapicontext.h:
14552 context: add support for non-YUV 4:2:0 formats.
14553 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
14554 for the upper layer to specify the desired chroma type. If the chroma
14555 type field is not set (or yields zero), then YUV 4:2:0 format is used
14558 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14560 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14561 vp8: fix per-segment deblocking filter level in relative mode.
14562 Fix possible bug when a per-segment deblocking filter level value
14563 needs to be set in non-absolute mode, i.e. when the loop filter update
14564 value is negative in delta mode.
14565 Also clamp the resulting filter level value to 0..63 range.
14567 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14569 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14570 vp8: fix check for disabling the loop filter (again).
14571 Improve condition to disable the loop filter. The previous heuristic
14572 used to check all filter levels, for all segments. It turns out that
14573 only the base filter_level value defined in the frame header needs
14575 This fixes 00-comprehensive-013.
14577 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14579 * gst-libs/gst/codecparsers/Makefile.am:
14580 * gst/vaapi/Makefile.am:
14581 build: fix make dist with certain conditionals not met.
14582 Fix generation of source tarballs when certain conditionals are not
14583 met. e.g. always include all buildable codecparsers sources in the
14584 distribution tarball, fix plug-in element sources set to include X11
14587 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14590 build: add missing files for GStreamer 0.10.
14591 Add missing GstVideoEncoder implementation files to fix build with ancient
14592 GStreamer 0.10 stack.
14593 https://bugzilla.gnome.org/show_bug.cgi?id=723964
14595 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14598 build: add missing files for VP8 bitstream parser.
14599 Fix make dist for building the VP8 bitstream parser.
14601 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14604 * ext/libvpx/Makefile.am:
14605 * gst-libs/gst/codecparsers/Makefile.am:
14606 vp8: allow compilation without the built-in libvpx.
14607 The built-in libvpx serves multiple purposes, among which the most
14608 important ones could be: track the most up-to-date, and optimized,
14609 range decoder; allow for future hybrid implementations (non-VLD);
14610 and have a completely independent range decoder implementation.
14612 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14614 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14615 vp8: propagate PTS from demux frame.
14616 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
14617 or parser would already have determined the PTS from a previous stage.
14619 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14622 * debian.upstream/libgstvaapi.install.in:
14623 * ext/libvpx/Makefile.am:
14624 * ext/libvpx/sources.frag:
14625 * gst-libs/gst/codecparsers/Makefile.am:
14626 vp8: fix compilation with built-in libvpx.
14627 Apply correct patch from fd.o #722760 to fix several issues: update the
14628 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
14631 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14637 * ext/libvpx/Makefile.am:
14638 * ext/libvpx/gstlibvpx.c:
14639 * ext/libvpx/gstlibvpx.h:
14640 * ext/libvpx/libgstcodecparsers_vpx.vers:
14641 * ext/libvpx/sources.frag:
14642 * ext/libvpx/upstream:
14643 * gst-libs/gst/codecparsers/Makefile.am:
14644 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
14645 vp8: use range decoder from libvpx.
14646 Add libvpx submodule that tracks the upstream version 1.3.0. This is
14647 needed to build a libgstcodecparsers_vpx.so library with all symbols
14648 placed into the GSTREAMER namespace.
14650 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14652 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14653 vp8: fix check for disabling the loop filter.
14655 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
14659 * gst-libs/gst/codecparsers/Makefile.am:
14660 * gst-libs/gst/vaapi/Makefile.am:
14661 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
14662 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
14663 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
14664 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
14665 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14666 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
14667 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14668 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14669 * gst/vaapi/gstvaapidecode.c:
14670 Add initial VP8 decoder.
14671 https://bugzilla.gnome.org/show_bug.cgi?id=722761
14672 [complete overhaul, fixed support for resolution changes]
14673 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14675 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14677 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14678 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
14679 The gst_h264_parse_parse_sei() function now returns an array of SEI
14680 messages, instead of a single SEI message. Reason: it is allowed to
14681 have several SEI messages packed into a single SEI NAL unit, instead
14682 of multiple NAL units.
14684 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14686 * ext/codecparsers:
14687 codecparsers: update to gst-vaapi-branch commit a454f86.
14688 b2eb5f6 vp8: rename dboolhuff symbols
14689 b74a881 vp8: add GStreamer native utilities
14690 2940ac6 add VP8 bitstream parser
14692 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14694 * ext/codecparsers:
14695 codecparsers: update to gst-vaapi-branch commit d459bc5.
14696 d459bc5 h264: set framerate even for interlaced videos
14697 c78b82c h264: add support for Recovery Point SEI message
14698 7693bac h264: add support for Frame Packing Arrangement SEI message
14699 31fafa7 h264: add support for Stereo Video Information SEI message
14700 8b113a6 h264: parse seq_parameter_set_mvc_extension()
14701 040f9b8 h264: parse MVC syntax elements
14702 cc18ef3 h264: add nal_reader_skip_long() helper
14703 7e76a48 h264: fix slice_header() parsing for MVC
14704 caf46d8 h264: add gst_h264_parse_nalu_header() helper
14705 f75074e h264: add gst_h264_parse_sps_data() helper
14706 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
14707 4e36737 h264: fix skipping of unsupported SEI messages
14708 5300766 h264: fix SEI buffering_period() parsing
14710 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14712 * ext/codecparsers:
14713 * gst-libs/gst/codecparsers/Makefile.am:
14714 codecparsers: update to gst-vaapi-branch commit 8fadf40.
14715 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
14716 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
14717 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
14718 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
14719 8ec5816 h265: Fix segfault when parsing HRD parameter
14720 5b1730f h265: Fix segfault when parsing VPS
14721 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
14722 7ba641d h265: Fix debug output
14723 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
14725 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14727 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14728 decoder: h264: fix robustness patch for bytestream format.
14729 Fix parser and decoder state to sync at the right locations. This is
14730 because we could reset the parser state, while the decoder state was
14731 not copied yet, e.g. when parsing several NAL units from multiple frames
14732 whereas the current frame was not decoded yet.
14733 This is a regression brought in by commit 6fe5496.
14735 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14738 * pkgconfig/Makefile.am:
14739 * pkgconfig/gstreamer-vaapi-drm.pc.in:
14740 * pkgconfig/gstreamer-vaapi-glx.pc.in:
14741 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
14742 * pkgconfig/gstreamer-vaapi-x11.pc.in:
14743 build: fix pkgconfig file names (again).
14744 It turns out it is more convenient to have only pkgconfig files named
14745 after the installed GStreamer API version (1.0) instead of using all
14746 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
14747 altogether anyway, so align pkgconfig file names to that.
14749 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14751 * debian.upstream/libgstvaapi-dev.install.in:
14752 * gst-libs/gst/vaapi/Makefile.am:
14753 * pkgconfig/gstreamer-vaapi.pc.in:
14754 build: fix packaging for GStreamer 1.2.
14755 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
14756 the pkgconfig version (1.0) instead of the intended API version (1.2).
14757 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
14758 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
14760 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14763 Bump version for development.
14765 === release 0.5.8 ===
14767 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14769 * debian.upstream/control.in:
14770 debian: fix trailing whitespace in description.
14772 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14774 * debian.upstream/control.in:
14775 * debian.upstream/copyright:
14776 debian: fix package description.
14777 Try to improve package description for the compiled plug-in elements
14778 available in there. e.g. only display vaapidownload and vaapiupload
14779 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
14780 encoding is enabled, etc.
14781 Also increase the copyright notice date.
14783 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14785 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14786 build: fix warnings on 64-bit platforms.
14788 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14790 * gst-libs/gst/vaapi/gstvaapicontext.c:
14791 * gst-libs/gst/vaapi/gstvaapiutils.c:
14792 build: fix for older versions of VA-API (< 0.34.0).
14793 Fix build with older versions of VA-API (< 0.34.0), or versions without
14794 good enough headers for encoding support for instance.
14796 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14802 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14806 VA-API up to 0.34.0 is actually supported. Mention new video encoding
14807 support. Update copyright years, list of supported Intel HD Graphics
14810 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14815 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14817 * tests/test-filter.c:
14818 tests: test-filter: fix "deinterlace" option parse.
14819 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
14820 string was provided, i.e. if it remained set to NULL.
14822 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14824 * gst-libs/gst/vaapi/Makefile.am:
14825 * gst-libs/gst/vaapi/gstvaapicontext.c:
14826 * gst-libs/gst/vaapi/gstvaapicontext.h:
14827 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14828 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
14829 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
14830 libs: factor out usages of vaGetConfigAttributes().
14831 Add gst_vaapi_get_config_attribute() helper function that takes a
14832 GstVaapiDisplay and the rest of the arguments with VA types. The aim
14833 is to have thread-safe VA helpers by default.
14835 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14837 * gst-libs/gst/vaapi/gstvaapiutils.c:
14838 * gst-libs/gst/vaapi/gstvaapiutils.h:
14839 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
14840 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
14841 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
14842 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
14843 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
14844 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
14845 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
14846 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14847 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
14848 libs: re-indent all source code related to VA utilities.
14850 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14852 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
14853 libs: add missing file (libgstvaapi_priv_check.h).
14855 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14857 * gst-libs/gst/vaapi/gstvaapicontext.c:
14858 * gst-libs/gst/vaapi/gstvaapicontext.h:
14859 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14860 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14861 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
14862 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
14863 encoder: notify the encoder of the submitted packed headers.
14864 Make sure to configure the encoder with the set of packed headers we
14865 intend to generate and submit. i.e. make selection of packed headers
14866 to submit more robust.
14868 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14870 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14871 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14872 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
14873 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
14874 encoder: fix and factor out check for supported rate-control modes.
14875 Cache the first compatible GstVaapiProfile found if the encoder is not
14876 configured yet. Next, factor out the code to check for the supported
14877 rate-control modes by moving out vaGetConfigAttributes() to a separate
14878 function, while also making sure that the attribute type is actually
14879 supported by the encoder.
14880 Also fix the default set of supported rate control modes to not the
14881 "none" variant. It's totally useless to expose it at this point.
14883 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14885 * gst-libs/gst/vaapi/gstvaapicontext.c:
14886 * gst-libs/gst/vaapi/gstvaapicontext.h:
14887 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14888 context: move rate-control mode to encoder specific config.
14889 Move usage-specific config out of the common GstVaapiContextInfo.
14890 Create a specialized config for encoding and move rate-control mode
14893 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14895 * gst-libs/gst/vaapi/gstvaapicontext.c:
14896 * gst-libs/gst/vaapi/gstvaapicontext.h:
14897 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14898 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14899 context: introduce concept of usage.
14900 Introduce GstVaapiContextUsage so that to explicitly determine the
14901 usage of a VA context. This is useful in view to simplifying the
14902 creation of VA context for VPP too.
14904 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14906 * gst-libs/gst/vaapi/gstvaapicontext.c:
14907 context: fix get_attribute() value result.
14908 Unknown attributes, or attributes that are not supported for the given
14909 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
14910 So, return failure in this case.
14912 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14914 * gst-libs/gst/vaapi/Makefile.am:
14915 * gst-libs/gst/vaapi/gstvaapicontext.c:
14916 * gst-libs/gst/vaapi/gstvaapicontext.h:
14917 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
14918 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
14919 * gst-libs/gst/vaapi/gstvaapisurface.c:
14920 context: move overlay composition to separate files.
14921 Move GstVideoOverlayComposition handling to separate source files.
14922 This helps keeing GstVaapiContext core implementation to the bare
14923 minimal, i.e. simpy helpers to create a VA context and handle pool
14924 of associated VA surfaces.
14926 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14928 * gst-libs/gst/vaapi/gstvaapicontext.c:
14929 * gst-libs/gst/vaapi/gstvaapicontext.h:
14930 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14931 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14932 context: clean-ups. Strip down APIs.
14933 Improve documentation and debug messages. Clean-up APIs, i.e. strip
14934 them down to the minimal set of interfaces. They are private, so no
14935 need expose getters for instance.
14937 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14939 * gst-libs/gst/vaapi/gstvaapicontext.c:
14940 * gst-libs/gst/vaapi/gstvaapicontext.h:
14941 context: re-indent all GstVaapiContext related source code.
14943 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14945 * gst-libs/gst/vaapi/Makefile.am:
14946 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
14947 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
14948 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
14949 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
14950 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
14951 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
14952 * gst-libs/gst/vaapi/gstvaapiutils.h:
14953 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
14954 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
14955 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
14956 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
14957 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
14958 libs: check that private headers remain private.
14959 Make sure that libgstvaapi private headers remain internally used to
14960 build libgstvaapi libraries only. All header dependencies were reviewed
14961 and checks for IN_LIBGSTVAAPI definition were added accordingly.
14962 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
14965 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14968 Bump library major version.
14969 Bump the library major version due to API/ABI changes that occurred in
14970 the imaging API. In particular, GstVaapiDisplay interfaces no longer
14971 expose any GstCaps but provide GArray based ones e.g. to determine the
14972 set of supported decode/encode profiles.
14974 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14976 * gst-libs/gst/vaapi/glibcompat.h:
14977 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
14978 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
14979 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14980 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
14981 * gst-libs/gst/vaapi/gstvaapicontext.c:
14982 * gst-libs/gst/vaapi/gstvaapicontext.h:
14983 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14984 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14985 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
14986 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
14987 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
14988 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14989 * gst-libs/gst/vaapi/gstvaapiencoder.h:
14990 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14991 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
14992 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
14993 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
14994 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
14995 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
14996 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
14997 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
14998 * gst-libs/gst/vaapi/gstvaapifilter.c:
14999 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
15000 * gst-libs/gst/vaapi/gstvaapisurface.c:
15001 * gst-libs/gst/vaapi/gstvaapisurface.h:
15002 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
15003 * gst-libs/gst/vaapi/gstvaapitypes.h:
15004 * gst-libs/gst/vaapi/gstvaapiutils.c:
15005 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15006 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
15007 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
15008 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
15009 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
15010 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
15011 * gst-libs/gst/vaapi/gstvaapivalue.c:
15012 * gst-libs/gst/vaapi/gstvaapivalue.h:
15013 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15014 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
15015 * gst/vaapi/gstvaapidecode.c:
15016 * gst/vaapi/gstvaapiencode.c:
15017 * gst/vaapi/gstvaapiencode.h:
15018 * gst/vaapi/gstvaapiencode_h264.c:
15019 * gst/vaapi/gstvaapiencode_h264.h:
15020 * gst/vaapi/gstvaapiencode_mpeg2.c:
15021 * gst/vaapi/gstvaapiencode_mpeg2.h:
15022 * gst/vaapi/gstvaapipluginbase.c:
15023 * gst/vaapi/gstvaapipluginutil.c:
15024 * gst/vaapi/gstvaapipluginutil.h:
15025 * gst/vaapi/gstvaapipostproc.c:
15026 * gst/vaapi/gstvaapipostproc.h:
15027 * gst/vaapi/gstvaapisink.c:
15028 * gst/vaapi/gstvaapisink.h:
15029 * gst/vaapi/gstvaapivideometa_texture.c:
15030 * tests/simple-decoder.c:
15031 legal: update copyright notice dates.
15033 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15035 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15036 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15037 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15038 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15039 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15040 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
15041 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15042 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15043 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
15044 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15045 * gst/vaapi/gstvaapiencode.c:
15046 * gst/vaapi/gstvaapiencode.h:
15047 * gst/vaapi/gstvaapiencode_h264.c:
15048 * gst/vaapi/gstvaapiencode_h264.h:
15049 * gst/vaapi/gstvaapiencode_mpeg2.c:
15050 * gst/vaapi/gstvaapiencode_mpeg2.h:
15051 legal: add per-file authorship information.
15053 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15055 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15056 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15057 decoder: fix video codec frame number in standalone mode.
15058 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
15059 stream in standalone mode. While we are at it, improve the debugging
15060 messages to also include that frame number.
15062 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
15064 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15065 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
15066 decoder: fix crash on invalid pointer for GST_DEBUG().
15067 When decoding failed, or that the frame was dropped, the associated
15068 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
15069 message needs to check whether the proxy is actually present or not.
15070 https://bugzilla.gnome.org/show_bug.cgi?id=722403
15071 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
15072 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15074 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15076 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15077 encoder: h264: disable NAL HRD parameters for now.
15078 Don't emit NAL HRD parameters for now in the SPS headers because the
15079 SEI buffering_period() and picture_timing() messages are not handled
15080 yet. Some additional changes are necessary to get it right.
15081 https://bugzilla.gnome.org/show_bug.cgi?id=722734
15083 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15085 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15086 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15087 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15088 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
15089 encoder: h264: fix default CPB buffer size.
15090 Fix default CPB buffer size to something more reasonable (1500 ms)
15091 and that still fits the level limits. This is a non configurable
15092 property for now. The initial CPB removal delay is also fixed to
15094 https://bugzilla.gnome.org/show_bug.cgi?id=722087
15096 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15098 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15099 encoder: h264: fix bitrate encoding for HRD conformance.
15100 Round down the calculated, or supplied, bitrate (kbps) into a multiple
15101 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
15102 that to have less losses in precision. Likewise, don't round up because
15103 that could be a strict constraint imposed by the user.
15105 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15107 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15108 encoder: h264: fix level lookup constraints wrt. bitrate.
15109 Fix the level calculation involving bitrate limits. Since we are
15110 targetting NAL HRD conformance, the check against MaxBR from the
15111 Table A-1 limits shall involve cpbBrNalFactor depending on the
15114 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15116 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15117 encoder: h264: submit sequence parameter only once.
15118 Submit sequence parameter buffers only once, or when the bitstream
15119 was reconfigured in a way that requires such. Always submit packed
15120 sequence parameter buffers at I-frame period, if the VA driver needs
15122 https://bugzilla.gnome.org/show_bug.cgi?id=722737
15124 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15126 * gst-libs/gst/vaapi/gstvaapicontext.c:
15127 * gst-libs/gst/vaapi/gstvaapicontext.h:
15128 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15129 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15130 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15131 encoder: h264: only submit packed headers when required.
15132 Make sure to submit the packed headers only if the underlying VA driver
15133 requires those. Currently, only handle packed sequence and picture
15135 https://bugzilla.gnome.org/show_bug.cgi?id=722737
15137 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15139 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15140 encoder: h264: fix ip_period value in sequence parameter.
15141 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
15142 between the I-frame and the next P-frame. So, this also accounts for
15143 any additional B-frame in the middle of it.
15144 This fixes rate control heuristics for certain VA drivers.
15145 https://bugzilla.gnome.org/show_bug.cgi?id=722735
15147 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15149 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15150 encoder: h264: fix level when bitrate is automatically computed.
15151 Fix level characterisation when the bitrate is automatically computed
15152 from the active coding tools. i.e. ensure the bitrate once the profile
15153 is completely characterized but before the level calculation process.
15155 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15157 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15158 encoder: h264: clean-ups.
15159 Document and rename a few functions here and there. Drop code that
15160 caps num_bframes variable in reset_properties() since they shall
15161 have been checked beforehand, during properties initialization.
15163 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15165 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15166 encoder: h264: clean-up bitwriter related utilities.
15167 Clean-up GstBitWriter related utility functions and simplify notations.
15168 While we are at it, also make bitstream writing more robust should an
15169 overflow occur. We could later optimize for writing headers capped to
15170 their maximum possible size by using the _unchecked() helper variants.
15172 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15174 * gst-libs/gst/vaapi/Makefile.am:
15175 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15176 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15177 encoder: h264: completely remove private headers.
15178 Drop private header since it was originally used to expose internals
15179 to the plugin element. The proper interface is now the properties API,
15180 thus rendering private headers totally obsolete.
15182 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15184 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15185 encoder: h264: fix PPS header packing with profile < high.
15186 Fix PPS header packing when profile is below High since 8x8 transform
15187 mode and scaling lists are High Profile features.
15189 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15191 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15192 encoder: h264: always emit VUI parameters for framerate.
15193 Always emit VUI parameters for timing_info, which includes framerate
15196 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15198 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15199 encoder: h264: really fix frame cropping rectangle calculation.
15200 Make frame cropping rectangle calculation future proof, i.e. exactly
15201 follow the specification (7-18) to (7-21), and subsampling definitions
15203 https://bugzilla.gnome.org/show_bug.cgi?id=722089
15204 https://bugzilla.gnome.org/show_bug.cgi?id=722238
15206 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
15208 * gst/vaapi/gstvaapisink.c:
15209 * gst/vaapi/gstvaapisink.h:
15210 vaapisink: set csc render flags from sinkpad caps.
15211 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
15212 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
15214 https://bugzilla.gnome.org/show_bug.cgi?id=722255
15215 [factored out code, added SMPTE240M, handle per-buffer flags]
15216 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15218 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15220 * gst-libs/gst/vaapi/gstvaapisurface.h:
15221 * gst-libs/gst/vaapi/gstvaapiutils.c:
15222 * gst/vaapi/gstvaapipostproc.c:
15223 surface: rework render flags.
15224 Pack render flags per category and provide more flags into the color
15225 standard category. In particular, cover for SMPTE-240M.
15227 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
15229 * gst-libs/gst/vaapi/gstvaapifilter.c:
15230 * gst/vaapi/gstvaapipostproc.c:
15231 * gst/vaapi/gstvaapipostproc.h:
15232 vaapipostproc: add support for colorbalance filters.
15233 Add support for hue, saturation, brightness and constrat adjustments.
15234 Also fix cap info local copy to match the really expected cap subtype
15236 https://bugzilla.gnome.org/show_bug.cgi?id=720376
15237 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15239 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
15241 * gst/vaapi/gstvaapipostproc.c:
15242 vaapipostproc: fix support for "sharpen" filter.
15243 Fix copy/paste error when submitting the "sharpen" value to the
15244 GstVaapiFilter instance.
15245 https://bugzilla.gnome.org/show_bug.cgi?id=720375
15246 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15248 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
15251 * pkgconfig/gstreamer-vaapi-drm.pc.in:
15252 * pkgconfig/gstreamer-vaapi-glx.pc.in:
15253 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15254 * pkgconfig/gstreamer-vaapi-x11.pc.in:
15255 * pkgconfig/gstreamer-vaapi.pc.in:
15256 pkgconfig: plugin dir should use PKG version not API version.
15257 Fix the pluginsdir and includedir variables in the generated pkgconfig
15258 (.pc) files. The location needs to be built with the PKG version in
15259 mind instead of the API version.
15260 While we are at it, also fix the PKG version for GStreamer >= 1.3.
15261 https://bugzilla.gnome.org/show_bug.cgi?id=720820
15262 [additional fixes for includedir and pkg requirements]
15263 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15265 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
15267 * gst/vaapi/gstvaapisink.c:
15268 vaapisink: fix display initialization in GstVideoOverlay implementation.
15269 When gst_vaapisink_video_overlay_set_window_handle() is called early,
15270 before the pipeline has been set to PLAYING, the display has not yet
15271 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
15272 up-to-date. For this reason the foreign XID is not attached.
15273 Now _ensure_display() is called earlier.
15274 https://bugzilla.gnome.org/show_bug.cgi?id=722244
15275 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15277 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15279 * gst/vaapi/gstvaapisink.c:
15280 vaapisink: expose the raw video formats in static caps template.
15281 Expose all raw video formats in the static caps template since the
15282 vaapisink is supporting raw data. We will get the exact set of formats
15283 supported by the driver dynamically through the _get_caps() routine.
15284 https://bugzilla.gnome.org/show_bug.cgi?id=703271
15285 https://bugzilla.gnome.org/show_bug.cgi?id=720737
15286 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15288 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
15290 * gst/vaapi/gstvaapidecode.c:
15291 vaapidecode: query downstream caps features like GLTextureUploadMeta.
15292 Fix vaapidecode to correctly report caps features downstream, when
15293 a custom pipeline is built manually.
15294 https://bugzilla.gnome.org/show_bug.cgi?id=719372
15295 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15297 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
15299 * gst/vaapi/gstvaapidecode.c:
15300 vaapidecode: add system memory caps to template caps.
15301 Since vaapidecode provides buffer that can be mapped as regular memory,
15302 those caps should be added to the template caps. That only applies to
15304 https://bugzilla.gnome.org/show_bug.cgi?id=720608
15305 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15307 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
15309 * gst/vaapi/gstvaapidecode.c:
15310 vaapidecode: fix hang on SIGINT.
15311 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
15312 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
15313 locked. This fixes a deadlock on state change from PAUSED to READY.
15314 https://bugzilla.gnome.org/show_bug.cgi?id=720584
15315 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15317 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
15319 * gst/vaapi/gstvaapiencode.c:
15320 vaapiencode: fix possible hang on SIGINT.
15321 vaapiencode might hang when the pipeline is stopped without any EOS,
15322 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
15323 running and locked. This fixes a possible deadlock on state change
15324 from PAUSED to READY.
15325 https://bugzilla.gnome.org/show_bug.cgi?id=720584
15326 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15328 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15330 * gst/vaapi/gstvaapiencode.c:
15331 vaapiencode: fix typo in error message.
15332 Fix incomplete error message in gst_vaapiencode_push_frame().
15334 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15336 * gst/vaapi/gstvaapipluginutil.c:
15337 * gst/vaapi/gstvaapipluginutil.h:
15338 plugins: add helpers to create video caps with features.
15339 Add gst_vaapi_video_format_new_template_caps_with_features() helper
15340 function to add the supplied caps feature string on GStreamer >= 1.2.
15341 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
15342 the "best" caps feature to use for the supplied pad. In practice, we
15343 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
15344 and finally the system memory caps.
15345 https://bugzilla.gnome.org/show_bug.cgi?id=719372
15347 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
15349 * gst/vaapi/gstvaapivideometa_texture.c:
15350 plugins: don't apply overlay composition in GLTextureUpload function.
15351 The GLTextureUpload function is not in charge of doing the overlay
15352 composition if any.
15353 https://bugzilla.gnome.org/show_bug.cgi?id=721859
15354 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15356 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15358 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15359 encoder: re-order submission of VA objects.
15360 Change the submission order of VA objects so that to make that process
15361 more logical. i.e. submit sequence parameter first, if any; next the
15362 packed headers associated to sequece, picture or slices; and finally
15363 the actual picture and associated slices.
15365 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15367 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15368 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15369 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15370 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15371 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
15372 encoder: clean-up objects.
15373 Various clean-ups to improve consistency and readability: rename some
15374 variables, drop unused macro definitions, drop initialization of vars
15375 that are zero-initialized from the base class, drop un-necessary casts,
15376 allocate GPtrArrays with a destroy function.
15378 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15380 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15381 encoder: h264: fix frame cropping rectangle calculation.
15382 Fix frame cropping rectangle calculation to handle horizontal resolutions
15383 that don't match a multiple of 16 pixels, but also the vertical resolution
15384 that was incorrectly computed for progressive sequences too.
15385 https://bugzilla.gnome.org/show_bug.cgi?id=722089
15387 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15389 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15390 encoder: h264: improve automatic bitrate calculation.
15391 For non "Constant-QP" modes, we could provide more reasonable heuristics
15392 for the target bitrate. In general, 48 bits per macroblock with all the
15393 useful coding tools enable looks safe enough. Then, this rate is raised
15394 by +10% to +15% for each coding tool that is disabled.
15395 https://bugzilla.gnome.org/show_bug.cgi?id=719699
15397 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15399 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15400 encoder: h264: support "high-compression" tuning option.
15401 Add support for "high-compression" tuning option. First, determine the
15402 largest supported profile by the hardware. Next, check any target limit
15403 set by the user. Then, enable each individual coding tool based on the
15404 resulting profile_idc value to use.
15405 https://bugzilla.gnome.org/show_bug.cgi?id=719696
15407 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15409 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15410 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15411 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15412 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15413 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
15414 * gst/vaapi/gstvaapiencode_h264.c:
15415 encoder: h264: allow target decoder constraints.
15416 Allow user to precise the largest profile to use for encoding due
15417 to target decoder constraints. For instance, if CABAC entropy coding
15418 mode is requested by "constrained-baseline" profile only is desired,
15419 then an error is returned during codec configuration.
15420 Also make sure that the suitable profile we derived actually matches
15421 what the HW can cope with.
15422 https://bugzilla.gnome.org/show_bug.cgi?id=719694
15424 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15426 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15427 encoder: h264: refine size of coded buffer.
15428 Refine the heuristic to determine the maximum size of a coded buffer
15429 to account for the exact number of slices. set_context_info() is the
15430 last step during codec reconfiguration, no additional change is done
15431 afterwards, so re-using the num_slices field here is fine.
15432 https://bugzilla.gnome.org/show_bug.cgi?id=719953
15434 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
15436 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15437 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15438 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15439 encoder: h264: expose more coding tools.
15440 Add new H.264 coding tools to improve compression:
15441 - "cabac": enable CABAC entropy coding (default: FALSE);
15442 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
15443 https://bugzilla.gnome.org/show_bug.cgi?id=719693
15444 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15446 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15448 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15449 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15450 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15451 encoder: h264: derive profile and level from active coding tools.
15452 Automatically derive the minimum profile and level to be used for
15453 encoding, based on the activated coding tools. The encoder will
15454 be trying to generate a bitstream that has the best chances to be
15455 decoded on most platforms by default.
15456 Also change the default profile to "constrained-baseline" so that
15457 to ensure maximum compatibility when the stream is decoded.
15458 https://bugzilla.gnome.org/show_bug.cgi?id=719691
15460 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15462 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15463 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15464 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15465 encoder: h264: fix hardware profile lookup.
15466 Fix lookup for a suitable HW profile, as to be used by the underlying
15467 hardware, based on heuristics that lead to characterize the SW profile,
15468 i.e. the one used by the SW level encoding logic.
15469 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
15470 as they should respectively match the baseline and main profile.
15471 https://bugzilla.gnome.org/show_bug.cgi?id=719827
15473 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15475 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15476 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15477 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15478 encoder: h264: support only the byte-stream format.
15479 The libgstvaapi core encoders are meant to support raw bitstreams only.
15480 Henceforth, we are always producing a stream in "byte-stream" format.
15481 However, the "codec-data" buffer which holds SPS and PPS headers is
15482 always available. The "lengthSizeMinusOne" field is always set to 3
15483 so that in-place "byte-stream" format to "avc" format conversion could
15486 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15488 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15489 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15490 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15491 * gst/vaapi/gstvaapiencode_h264.c:
15492 encoder: h264: clean-ups.
15493 Various clean-ups to improve consistency and readability: rename some
15494 variables, drop unused macro definitions, drop initialization of vars
15495 that are zero-initialized from the base class, drop un-necessary casts.
15497 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15499 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15500 encoder: mpeg2: fix hardware profile lookup.
15501 Fix lookup for a suitable HW profile, as to be used by the underlying
15502 hardware, based on heuristics that lead to characterize the SW profile,
15503 i.e. the one used by the SW level encoding logic.
15505 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15507 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15508 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15509 encoder: mpeg2: derive profile and level from active coding tools.
15510 Automatically derive the minimum profile and level to be used for
15511 encoding, based on the activated coding tools. Improve lookup for
15512 the best suitable level with the new MPEG-2 helper functions.
15513 Also change the default profile to "simple" so that to ensure maximum
15514 compatibility when the stream is decoded.
15515 https://bugzilla.gnome.org/show_bug.cgi?id=719703
15517 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15519 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15520 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
15521 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15522 encoder: mpeg2: clean-ups.
15523 Various clean-ups to improve consistency and readability: drop unused
15524 macro definitions, drop initialization of vars that are zero-initialized
15525 from the base class, drop un-necessary casts.
15527 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15529 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15530 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15531 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15532 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15533 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15534 encoder: add tuning options API.
15535 Add encoder "tune" option to override the default behaviour that is to
15536 favor maximum decoder compatibility at the expense of lower compression
15538 Expected tuning options to be developed are:
15539 - "high-compression": improve compression, target best-in-class decoders;
15540 - "low-latency": tune for low-latency decoding;
15541 - "low-power": tune for encoding in low power / resources conditions.
15543 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15545 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15546 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15547 encoder: fix bitrate units to match kbps.
15548 Bitrate is expressed in kilobits per second (kbps). So, this exactly
15549 means in multiple of 1000 bits, not 1024 bits.
15550 https://bugzilla.gnome.org/show_bug.cgi?id=722086
15552 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15554 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15555 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15556 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15557 encoder: clean-ups.
15558 Drop obsolete and unused macros. Add a few doc comments. Slightly
15559 improve indentation of a few leftovers.
15561 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15563 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15564 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15565 * gst-libs/gst/vaapi/gstvaapivalue.c:
15566 * gst-libs/gst/vaapi/gstvaapivalue.h:
15567 encoder: filter out the supported set of rate-control properties.
15568 Only expose the exact static set of supported rate-control properties
15569 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
15570 only support CQP rate control, then only add it the the exposed enum
15572 Add helper macros and functions to build a GType for an enum subset.
15574 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15576 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15577 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15578 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15579 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15580 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15581 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15582 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
15583 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15584 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15585 encoder: add keyframe period API.
15586 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
15587 user control the maximum distance between two keyframes. This new
15588 property can only be set prior to gst_vaapi_encoder_set_codec_state().
15589 A value of zero for "keyframe-period" gets it re-evaluated to the
15590 actual framerate during encoder reconfiguration.
15592 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15594 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15595 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15596 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15597 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15598 encoder: improve codec reconfiguration.
15599 Improve codec reconfiguration to be performed only through a single
15600 function. That is, remove the _set_context_info() hook as subclass
15601 should not alter the parent GstVaapiContextInfo itself. Besides, the
15602 VA context is constructed only at the final stages of reconfigure().
15604 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15606 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15607 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
15608 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15609 encoder: fix possible memory leak of coded buffer pools.
15610 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
15611 buffer pool only if the coded buffer size actually changed.
15613 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15615 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15616 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15617 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15618 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15619 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15620 * gst/vaapi/gstvaapiencode.c:
15621 * gst/vaapi/gstvaapiencode.h:
15622 encoder: add video codec-state API.
15623 Add interface to communicate the encoder resolution and related info
15624 like framerate, interlaced vs. progressive, etc. This new interface
15625 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
15626 but rather use GstVideoCodecState.
15627 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
15628 point for codec config. This means that the encoder is reconfigured
15629 there to match the latest properties.
15631 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15633 * gst/vaapi/gstvaapiencode.c:
15634 vaapiencode: don't crash on NULL encoder on _finish().
15635 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
15636 if it was not created in the first place. Return "not-negotiated" error
15637 since this means we did not even reach GstVideoEncoder::set_format(),
15638 where the encoder could have been created.
15639 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
15640 and that we failed to negotiate either pad.
15641 https://bugzilla.gnome.org/show_bug.cgi?id=719704
15643 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15645 * gst/vaapi/gstvaapiencode.c:
15646 * gst/vaapi/gstvaapiencode.h:
15647 * gst/vaapi/gstvaapiencode_h264.c:
15648 vaapiencode: use more GstVaapiPluginBase facilities.
15649 Avoid duplication of pad references or query functions since they are
15650 provided through the GstVaapiPluginBase object.
15652 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15654 * gst/vaapi/gstvaapiencode.c:
15655 * gst/vaapi/gstvaapiencode.h:
15656 * gst/vaapi/gstvaapiencode_h264.c:
15657 * gst/vaapi/gstvaapiencode_h264.h:
15658 * gst/vaapi/gstvaapiencode_mpeg2.c:
15659 vaapiencode: fix negotiation process of output caps.
15660 The specified caps in gst_video_encoder_set_output_state() function
15661 arguments should not contain any resolution, pixel-aspect-ratio,
15662 framerate, codec-data et al. Those rather should be set through the
15663 returned GstVideoCodecState. This means that output caps creation
15664 could be delayed until before gst_video_encoder_finish_frame() is
15666 This greatly simplifies the GstVideoEncoder::set_format() callback
15669 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15671 * gst/vaapi/gstvaapiencode.c:
15672 vaapiencode: make GstVaapiEncode an abstract type.
15673 Make base GstVaapiEncode class an abstract type so that we cannot
15674 create an instance from it without going through any of the codec
15675 specific derived class.
15677 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15679 * gst/vaapi/gstvaapiencode.c:
15680 * gst/vaapi/gstvaapiencode.h:
15681 * gst/vaapi/gstvaapiencode_h264.c:
15682 * gst/vaapi/gstvaapiencode_mpeg2.c:
15683 vaapiencode: rename a few member functions.
15684 Rename a few member functions to make them more consistent:
15685 - alloc_encoder(): now reduced to allocate the encoder object only;
15686 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
15688 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15690 * gst/vaapi/gstvaapiencode.c:
15691 * gst/vaapi/gstvaapiencode.h:
15692 * gst/vaapi/gstvaapiencode_h264.c:
15693 * gst/vaapi/gstvaapiencode_h264.h:
15694 * gst/vaapi/gstvaapiencode_mpeg2.c:
15695 vaapiencode: update for new properties API.
15696 Update MPEG-2 and H.264 encode elements to cope with the new core
15697 libgstvaapi properties API. i.e. all configurable properties are now
15698 directly handled at the GstVaapiEncoder level.
15699 Besides, this also makes sure to not use or modify the GstVaapiEncoder
15700 private definitions directly. Private data need to remain private.
15701 https://bugzilla.gnome.org/show_bug.cgi?id=719529
15703 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15705 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15706 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15707 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15708 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15709 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15710 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
15711 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15712 encoder: add properties API.
15713 Add interface to communicate configurable properties to the encoder.
15714 This covers both the common ones (rate-control, bitrate), and the
15715 codec specific properties.
15716 https://bugzilla.gnome.org/show_bug.cgi?id=719529
15718 2014-01-06 18:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15720 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15721 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15722 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15723 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15724 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15725 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15726 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15727 * gst/vaapi/gstvaapiencode.c:
15728 * gst/vaapi/gstvaapiencode_h264.c:
15729 * gst/vaapi/gstvaapiencode_mpeg2.c:
15730 encoder: add bitrate API.
15731 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
15732 the bitrate for encoding. Currently, changing this parameter is only
15733 valid before the first frame is encoded. Should the value be modified
15734 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
15736 https://bugzilla.gnome.org/show_bug.cgi?id=719529
15738 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15740 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15741 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15742 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15743 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15744 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
15745 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15746 * gst-libs/gst/vaapi/gstvaapitypes.h:
15747 * gst/vaapi/gstvaapiencode.c:
15748 * gst/vaapi/gstvaapiencode.h:
15749 * gst/vaapi/gstvaapiencode_h264.c:
15750 * gst/vaapi/gstvaapiencode_mpeg2.c:
15751 encoder: add rate control API.
15752 Add gst_vaapi_encoder_set_rate_control() interface to request a new
15753 rate control mode for encoding. Changing the rate control mode is
15754 only valid prior to encoding the very first frame. Afterwards, an
15755 error ("operation-failed") is issued.
15756 https://bugzilla.gnome.org/show_bug.cgi?id=719529
15758 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15760 * gst/vaapi/gstvaapiencode.c:
15761 * gst/vaapi/gstvaapiencode_h264.c:
15762 * gst/vaapi/gstvaapiencode_mpeg2.c:
15763 vaapiencode: fix indentation.
15765 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15767 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15768 * gst-libs/gst/vaapi/gstvaapiencoder.h:
15769 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15770 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15771 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
15772 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15773 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15774 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
15775 * gst/vaapi/gstvaapiencode.h:
15776 encoder: fix indentation.
15778 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15780 * gst-libs/gst/vaapi/Makefile.am:
15781 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
15782 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
15783 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
15784 utils: add new MPEG-2 helper functions.
15785 Add various helper functions to convert profile, level, chroma formats
15786 from gstreamer-vaapi world and the MPEG-2 specification world.
15788 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15790 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15791 utils: h264: don't use fatal asserts.
15792 Replace g_assert() with a g_debug() so that to not make the program
15793 abort when an unsupported value is supplied.
15795 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15797 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15798 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
15799 utils: h264: add helpers for profile and level string mappings.
15800 Add profile and level helper functions to convert to/from strings.
15802 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15804 * gst-libs/gst/vaapi/Makefile.am:
15805 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15806 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15807 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
15808 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
15809 utils: h264: expose levels in public header.
15810 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
15811 H.264 levels in there. The additional helper functions are meant
15812 to be private for now.
15814 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15816 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
15817 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
15818 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15819 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
15820 codec: add helper macros to maintain object refcount.
15821 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
15822 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
15824 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15826 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15827 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
15828 codec: re-indent decoder objects.
15830 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15832 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
15833 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
15834 codec: re-indent base codec objects.
15836 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
15838 * gst/vaapi/gstvaapipluginbase.c:
15839 plugins: do not free debug category in finalize method.
15840 Fixes a crash when multiple vaapidecode elements are finalized since
15841 the debug category is created once in the class init method.
15842 This is a regression from git commit 7e58d60.
15843 https://bugzilla.gnome.org/show_bug.cgi?id=721390
15844 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15846 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15848 * gst-libs/gst/vaapi/glibcompat.h:
15849 * tests/simple-decoder.c:
15850 tests: simple-decoder: don't use deprecated g_thread_create().
15851 Use g_thread_try_new() instead of the deprecated g_thread_create()
15852 function. Provide compatibility glue for any GLib version < 2.31.2.
15854 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15856 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15857 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
15858 * gst-libs/gst/vaapi/gstvaapisurface.c:
15859 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15860 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
15861 * gst/vaapi/gstvaapiencode.c:
15862 Fix printf()-like formats.
15863 Fix formts for various GST_DEBUG et al. invocations. More precisely,
15864 make size_t arguments use the %zu format specifier accordingly; force
15865 XID formats to be a 32-bit unsigned integer; and fix the format used
15866 for gst_vaapi_create_surface_with_format() error cases since we have
15867 been using strings nowadays.
15869 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15871 * gst-libs/gst/vaapi/video-format.c:
15872 * gst-libs/gst/vaapi/video-format.h:
15873 utils: format: drop unused helper functions.
15874 The following helper functions are no longer used, thus are removed:
15875 - gst_vaapi_video_format_from_structure()
15876 - gst_vaapi_video_format_from_caps()
15877 - gst_vaapi_video_format_to_caps()
15879 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15881 * gst-libs/gst/vaapi/video-format.c:
15882 * gst-libs/gst/vaapi/video-format.h:
15883 utils: re-indent GstVideoFormat related helpers.
15885 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15887 * gst/vaapi/gstvaapidownload.c:
15888 download: use GstVideoInfo facilities to build output caps.
15889 Use standard GstVideoInfo related functions to build the output caps,
15890 thus directly preserving additional fields as needed, instead of
15891 manually copying them over through gst_vaapi_append_surface_caps().
15892 Also ensure that the input caps are fixated first.
15894 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15896 * gst/vaapi/gstvaapidownload.c:
15897 * gst/vaapi/gstvaapipluginutil.c:
15898 * gst/vaapi/gstvaapipluginutil.h:
15899 * gst/vaapi/gstvaapiuploader.c:
15900 plugins: factor out construction of template caps.
15901 Add new helper functions to build video template caps.
15902 - gst_vaapi_video_format_new_template_caps():
15903 create GstCaps with size, frame rate and PAR to full range
15904 - gst_vaapi_video_format_new_template_caps_from_list():
15905 try to create a "simplified" list from the supplied formats
15907 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15909 * gst/vaapi/gstvaapipluginutil.c:
15910 * gst/vaapi/gstvaapipluginutil.h:
15911 * gst/vaapi/gstvaapipostproc.c:
15912 plugins: factor out construction of GValue from GstVideoFormat.
15913 Add new helper functions to build GValues from GstVideoFormat:
15914 - gst_vaapi_value_set_format():
15915 build a GValue from the supplied video format
15916 - gst_vaapi_value_set_format_list():
15917 build a GValue list from the supplied array of video formats
15919 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15921 * gst/vaapi/gstvaapipluginutil.c:
15922 * gst/vaapi/gstvaapipluginutil.h:
15923 * gst/vaapi/gstvaapivideocontext.c:
15924 * gst/vaapi/gstvaapivideocontext.h:
15925 plugins: re-indent common and video context creation utils.
15927 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15929 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15930 * gst-libs/gst/vaapi/gstvaapidisplay.h:
15931 * gst/vaapi/gstvaapidecode.c:
15932 * tests/test-display.c:
15933 display: don't use GstCaps for decode or encode profiles list.
15934 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
15935 more convenient APIs that return an array of GstVaapiProfile instead
15936 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
15938 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15940 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15941 * gst-libs/gst/vaapi/gstvaapidisplay.h:
15942 * gst/vaapi/gstvaapidownload.c:
15943 * gst/vaapi/gstvaapiuploader.c:
15944 * tests/test-display.c:
15945 display: don't use GstCaps for image or subpicture formats list.
15946 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
15947 returned GstCaps, with more convenient APIs that return an array of
15948 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
15950 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15952 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15953 * gst-libs/gst/vaapi/gstvaapidisplay.h:
15954 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
15955 display: allocate queried resources on-demand.
15956 Allocate the set of decoders or encoders on-demand, when they are
15957 queried. Likewise for VA display attributes, image and subpicture
15960 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15962 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15963 * gst-libs/gst/vaapi/gstvaapidisplay.h:
15964 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
15965 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
15966 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
15967 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
15968 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
15969 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
15970 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
15971 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
15972 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
15973 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
15974 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
15975 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
15976 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
15977 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
15978 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
15979 display: re-indent all GstVaapiDisplay related source code.
15981 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15983 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15984 * gst-libs/gst/vaapi/gstvaapiprofile.h:
15985 utils: add helper functions to get codec or profile name.
15987 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15989 * gst/vaapi/gstvaapipostproc.c:
15990 * gst/vaapi/gstvaapipostproc.h:
15991 * gst/vaapi/gstvaapiuploader.c:
15992 plugins: fix permissions for certain files.
15993 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
15996 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
15998 * gst/vaapi/gstvaapivideometa_texture.c:
15999 plugins: implement GLTextureUploadMeta user data copy.
16000 Makes the copies of a buffer reference their own GLTextureUploadMeta
16001 user data and prevent the original buffer accessing already freed
16002 memory if its copies has been released and freed.
16003 https://bugzilla.gnome.org/show_bug.cgi?id=720336
16004 [Propagate the original meta texture to the copy too]
16005 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16007 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16009 * gst/vaapi/gstvaapiencode.c:
16010 * gst/vaapi/gstvaapiencode.h:
16011 * gst/vaapi/gstvaapipluginbase.c:
16012 * gst/vaapi/gstvaapipluginbase.h:
16013 * gst/vaapi/gstvaapipostproc.c:
16014 * gst/vaapi/gstvaapipostproc.h:
16015 * gst/vaapi/gstvaapisink.c:
16016 * gst/vaapi/gstvaapisink.h:
16017 plugins: factor out support for raw YUV buffers on sink pads.
16018 Factor out propose_allocation() hooks, creation of video buffer pool
16019 for the sink pad, conversion from raw YUV buffers to VA surface backed
16020 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
16021 with the new GstVaapiPluginBase abilities.
16023 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16025 * gst-libs/gst/vaapi/gstcompat.h:
16026 * gst/vaapi/gstvaapidecode.c:
16027 * gst/vaapi/gstvaapidecode.h:
16028 * gst/vaapi/gstvaapidownload.c:
16029 * gst/vaapi/gstvaapipluginbase.c:
16030 * gst/vaapi/gstvaapipluginbase.h:
16031 * gst/vaapi/gstvaapipostproc.c:
16032 * gst/vaapi/gstvaapipostproc.h:
16033 * gst/vaapi/gstvaapisink.c:
16034 * gst/vaapi/gstvaapiupload.c:
16035 plugins: factor out pad caps.
16037 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16039 * gst/vaapi/gstvaapidecode.c:
16040 * gst/vaapi/gstvaapidownload.c:
16041 * gst/vaapi/gstvaapiencode.c:
16042 * gst/vaapi/gstvaapipluginbase.c:
16043 * gst/vaapi/gstvaapipostproc.c:
16044 * gst/vaapi/gstvaapisink.c:
16045 * gst/vaapi/gstvaapiupload.c:
16046 plugins: factor out video context sharing code.
16048 2013-12-13 13:24:24 +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/gstvaapipostproc.c:
16056 * gst/vaapi/gstvaapisink.c:
16057 * gst/vaapi/gstvaapiupload.c:
16058 plugins: factor out GstImplementsInterface.
16060 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16062 * gst-libs/gst/vaapi/gstvaapidisplay.c:
16063 * gst-libs/gst/vaapi/gstvaapidisplay.h:
16064 * gst/vaapi/gstvaapipluginbase.c:
16065 * gst/vaapi/gstvaapipluginutil.c:
16066 plugins: check type of display obtained from neighbours.
16067 Fix display creation code to check that any display obtained from a
16068 neighbour actually has the type we expect. Note: if display type is
16069 set to "any", we can then accept any VA display type.
16071 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16073 * gst/vaapi/gstvaapidecode.c:
16074 * gst/vaapi/gstvaapidownload.c:
16075 * gst/vaapi/gstvaapiencode.c:
16076 * gst/vaapi/gstvaapipluginbase.c:
16077 * gst/vaapi/gstvaapipluginbase.h:
16078 * gst/vaapi/gstvaapipluginutil.c:
16079 * gst/vaapi/gstvaapipluginutil.h:
16080 * gst/vaapi/gstvaapipostproc.c:
16081 * gst/vaapi/gstvaapisink.c:
16082 * gst/vaapi/gstvaapisink.h:
16083 * gst/vaapi/gstvaapiupload.c:
16084 plugins: factor out display creation process.
16085 Move common VA display creation code to GstVaapiPluginBase, with the
16086 default display type remaining "any". Also add a "display-changed"
16087 hook so that subclasses could perform additional tasks when/if the
16088 VA display changed, due to a new display type request for instance.
16089 All plug-ins are updated to cope with the new internal APIs.
16091 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16093 * gst/vaapi/Makefile.am:
16094 * gst/vaapi/gstvaapidecode.c:
16095 * gst/vaapi/gstvaapidecode.h:
16096 * gst/vaapi/gstvaapidownload.c:
16097 * gst/vaapi/gstvaapidownload.h:
16098 * gst/vaapi/gstvaapiencode.c:
16099 * gst/vaapi/gstvaapiencode.h:
16100 * gst/vaapi/gstvaapipluginbase.c:
16101 * gst/vaapi/gstvaapipluginbase.h:
16102 * gst/vaapi/gstvaapipostproc.c:
16103 * gst/vaapi/gstvaapipostproc.h:
16104 * gst/vaapi/gstvaapisink.c:
16105 * gst/vaapi/gstvaapisink.h:
16106 * gst/vaapi/gstvaapiupload.c:
16107 * gst/vaapi/gstvaapiupload.h:
16108 plugins: add new base object, store display in there.
16109 Introduce a new GstVaapiPluginBase object that will contain all common
16110 data structures and perform all common tasks. First step is to have a
16111 single place to hold VA displays.
16112 While we are at it, also make sure to store and subsequently release
16113 the appropriate debug category for the subclasses.
16115 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16117 * gst-libs/gst/vaapi/gstvaapiobject.h:
16118 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
16119 * gst/vaapi/gstvaapivideometa_texture.c:
16120 * gst/vaapi/gstvaapivideometa_texture.h:
16121 plugins: fix GLTextureUploadMeta to work with different texture ids.
16122 The GLTextureUploadMeta implementation assumed that for each upload()
16123 sequence, the supplied texture id is always the same as the one that
16124 was previously cached into the underlying GstVaapiTexture. Cope with
16125 any texture id change the expense to recreate the underlying VA/GLX
16127 https://bugzilla.gnome.org/show_bug.cgi?id=719643
16129 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16131 * gst/vaapi/gstvaapidecode.c:
16132 * gst/vaapi/gstvaapivideobufferpool.c:
16133 * gst/vaapi/gstvaapivideometa_texture.c:
16134 plugins: allow builds without GLX enabled for GStreamer 1.2.
16135 Don't try to build GLTextureUploadMeta related code if GLX is not
16136 enabled during GStreamer >= 1.2 builds.
16138 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
16140 * gst/vaapi/gstvaapidecode.c:
16141 * gst/vaapi/gstvaapivideobufferpool.c:
16142 * gst/vaapi/gstvaapivideobufferpool.h:
16143 * gst/vaapi/gstvaapivideometa_texture.c:
16144 * gst/vaapi/gstvaapivideometa_texture.h:
16145 plugins: request GLTextureUpload meta on buffers in the buffer pool.
16146 Requesting the GLTextureUpload meta on buffers in the bufferpool
16147 prevents such metas from being de-allocated when buffers are released
16149 This is particulary useful in terms of performance when using the
16150 GLTextureUploadMeta API since the GstVaapiTexture associated with
16151 the target texture is stored in the meta.
16152 https://bugzilla.gnome.org/show_bug.cgi?id=712558
16153 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16155 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16157 * gst/vaapi/gstvaapivideometa_texture.c:
16158 plugins: robustify GstVideoGLTextureUploadMeta implementation.
16159 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
16160 when the GstVaapiTexture associated with the supplied texture id could
16163 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16165 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16166 h264: improve robustness when packets are missing.
16167 Improve robustness when some expected packets where not received yet
16168 or that were not correctly decoded. For example, don't try to decode
16169 a picture if there was no valid frame headers parsed so far.
16170 https://bugs.freedesktop.org/show_bug.cgi?id=57902
16172 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16174 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16175 decoder: h264: fix decoding of BA3_SVA_C.264.
16176 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
16177 extended profile specifications. However, the SPS header has the
16178 constraint_set1_flag syntax element set to 1. This means that, if
16179 a Main profile compliant decoder is available, then it should be
16180 able to decode this stream.
16181 This changes makes it possible to fall-back from Extended profile
16182 to Main profile if constraint_set1_flag is set to 1.
16183 https://bugzilla.gnome.org/show_bug.cgi?id=720190
16185 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16187 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16188 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
16189 utils: h264: add more profiles.
16190 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
16191 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
16192 multiview profiles (H.10.1.1, H.10.1.2).
16193 Document "Constrained Baseline" and "High 10" profiles.
16195 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16197 * ext/codecparsers:
16198 codecparsers: update to gst-vaapi-branch commit e7d0e18.
16199 e7d0e18 h264: complete set of NAL unit types
16201 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
16203 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16204 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16205 decoder: h264: add support for constrained baseline profile.
16206 Recognize streams marked as conforming to the "Constrained Baseline
16207 Profile". If VA driver supports that as is, fine. Otherwise, fallback
16208 to baseline, main or high profile.
16209 Constrained Baseline Profile conveys coding tools that are common
16210 to baseline profile and main profile.
16211 https://bugzilla.gnome.org/show_bug.cgi?id=719947
16212 [Added fallbacks to main and high profiles]
16213 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16215 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16217 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16218 decoder: h264: fix decoding of scaling lists.
16219 The GStreamer codecparser layer now parses the scaling lists in zigzag
16220 scan order, as expected, so that to match the original bitstream layout
16221 and specification. However, further convert the scaling lists into
16222 raster scan order to fit the existing practice in most VA drivers.
16223 https://bugzilla.gnome.org/show_bug.cgi?id=706406
16225 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16227 * ext/codecparsers:
16228 codecparsers: update to gst-vaapi-branch commit 177c73b.
16229 a7e3255 add H.265 (HEVC) bitstream parser
16230 177c73b h264: fix picture level scaling lists derivation (rule B)
16231 14733f1 h264: fix parsing of VCL HRD parameters
16232 59a0b47 h264: store quantization matrices in zig-zag order
16233 ffb6e26 h264: add helpers to convert quantization matrices
16234 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
16235 719d1b0 mpeg2: turn internal consistency check into a g_assert()
16236 5241d8e all: remove some unused functions
16237 18eb312 all: fix for GST_DISABLE_GST_DEBUG
16238 963c04a all: make warnings more meaningful
16240 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16242 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16243 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
16244 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
16245 utils: add helpers for H.264 levels.
16246 - gst_vaapi_utils_h264_get_level():
16247 Returns GstVaapiLevelH264 from H.264 level_idc value
16248 - gst_vaapi_utils_h264_get_level_idc():
16249 Returns H.264 level_idc value from GstVaapiLevelH264
16250 - gst_vaapi_utils_h264_get_level_limits():
16251 Returns level limits as specified in Table A-1 of the H.264 standard
16252 - gst_vaapi_utils_h264_get_level_limits_table():
16253 Returns the Table A-1 specification
16255 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16257 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16258 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16259 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
16260 utils: add new H.264 profiles.
16261 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
16262 and helper functiions.
16264 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16266 utils: add new H.264 helper functions.
16268 - gst_vaapi_utils_h264_get_profile():
16269 Returns GstVaapiProfile from H.264 profile_idc value
16270 - gst_vaapi_utils_h264_get_profile_idc():
16271 Returns H.264 profile_idc value from GstVaapiProfile
16273 - gst_vaapi_utils_h264_get_chroma_type():
16274 Returns GstVaapiChromaType from H.264 chroma_format_idc value
16275 - gst_vaapi_utils_h264_get_chroma_format_idc():
16276 Returns H.264 chroma_format_idc value from GstVaapiChromaType
16278 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
16280 * gst-libs/gst/base/Makefile.am:
16281 * gst-libs/gst/vaapi/Makefile.am:
16282 Fix missing files in distribution tarball.
16283 https://bugzilla.gnome.org/show_bug.cgi?id=719776
16284 [Additional fixes and clean-ups]
16285 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16287 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16289 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16290 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16291 encoder: fix computation of max coded buffer size (again).
16292 The previous fix was only valid to express the maximum size of the
16293 macroblock layer, i.e. without any headers. Now, also account for
16294 the slice headers and top picture header, but also any other header
16295 we might stuff into the VA coded buffer, e.g. sequence headers.
16297 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16299 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16300 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16301 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16302 encoder: fix computation of max coded buffer size.
16303 Fix coded buffer size for each codec. A generic issue was that the
16304 number of macroblocks was incorrectly computed. The second issue was
16305 specific to MPEG-2 were the max number of bits per macroblock, and
16306 as defined by the standard, was incorrectly mapped to the (lower)
16307 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
16309 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16311 * gst-libs/gst/vaapi/gstvaapiencoder.c:
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 encoder: simplify VA context initialization process.
16316 Change get_context_info() into a set_context_info() function that
16317 initializes common defaults into the base class, thus allowing the
16318 subclasses to specialize the context info further on.
16319 The set_context_info() hook is also the location where additional
16320 context specific data could be initialized. At this point, we are
16321 guaranteed to have valid video resolution size and framerate. i.e.
16322 gst_vaapi_encoder_set_format() was called beforehand.
16324 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
16326 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16327 encoder: fix mpeg2 compilation error.
16328 https://bugzilla.gnome.org/show_bug.cgi?id=719746
16329 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16331 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16333 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16334 * gst-libs/gst/vaapi/gstvaapiencoder.h:
16335 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16336 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16337 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16338 * gst/vaapi/gstvaapiencode.c:
16339 encoder: clean-ups and document public APIs.
16340 Clean public APIs up so that to better align with the decoder APIs.
16341 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
16342 return the VA coded buffer proxy. Also provide useful documentation
16343 for the public APIs.
16345 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16347 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16348 * gst-libs/gst/vaapi/gstvaapiencoder.h:
16349 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16350 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
16351 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
16352 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
16353 through GstVaapiCodedBufferProxy user-data facility.
16354 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
16356 Partial fix for the following report:
16357 https://bugzilla.gnome.org/show_bug.cgi?id=719530
16359 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16361 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16362 * gst-libs/gst/vaapi/gstvaapiencoder.h:
16363 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16364 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16365 * gst/vaapi/gstvaapiencode.c:
16366 encoder: refactor status codes.
16367 Drop obsolete or unused status codes. Align some status codes with the
16368 decoder counterparts.
16370 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16372 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16373 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16374 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
16375 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16376 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
16377 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16378 encoder: fix subclassing process.
16379 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
16380 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
16381 thus avoiding useless run-time checks. Also simplify the subclass
16382 initialization process to be less error prone.
16384 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16386 encoder: rework GstVaapiCodedBuffer and related proxy.
16387 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
16388 public and private interfaces. Besides, the map/unmap APIs should not
16389 be exposed as is but appropriate accessors should be provided instead.
16390 * GstVaapiCodedBuffer: VA coded buffer abstraction
16391 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
16392 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
16393 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
16394 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
16395 the specified max size, and bound to the supplied encoder
16396 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
16397 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
16398 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
16399 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
16400 Rationale: more optimized transfer functions might be provided in the
16401 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
16402 https://bugzilla.gnome.org/show_bug.cgi?id=719775
16404 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16406 * gst/vaapi/gstvaapidecode.c:
16407 * gst/vaapi/gstvaapiencode.c:
16408 * gst/vaapi/gstvaapipostproc.c:
16409 * gst/vaapi/gstvaapisink.c:
16410 plugins: fix reference leaks of VA display objects.
16411 Fix GstElement::set_context() implementation for all plug-in elements
16412 to avoid leaking an extra reference to the VA display, thus preventing
16413 correct cleanup of VA resources in GStreamer 1.2 builds.
16415 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16417 * gst/vaapi/gstvaapipluginutil.c:
16418 * gst/vaapi/gstvaapivideocontext.c:
16419 plugins: simplify gst_vaapi_ensure_display().
16420 Return earlier if the creation of a VA display failed. Likewise, simplify
16421 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
16424 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16426 * gst/vaapi/gstvaapivideomemory.c:
16427 plugins: fix memory leaks through GstVideoMeta maps.
16428 When GstVideoMeta maps were used, the supporting functions incorrectly
16429 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
16430 always increasing the associated GstMemory reference count and giving
16431 zero chance to actually release that, and subsequently the VA display.
16433 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16435 * gst-libs/gst/vaapi/gstvaapifilter.c:
16436 * gst/vaapi/gstvaapiencode_h264.c:
16437 * gst/vaapi/gstvaapiencode_mpeg2.c:
16438 * gst/vaapi/gstvaapipostproc.c:
16439 * gst/vaapi/gstvaapisink.c:
16440 * gst/vaapi/gstvaapiuploader.c:
16441 plugins: use G_PARAM_STATIC_STRINGS.
16442 This avoids a few string copies during initialization.
16444 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16446 * gst/vaapi/gstvaapivideometa.c:
16447 plugins: simplify VA video meta to only reference surface proxies.
16448 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
16449 now allocated from a surface pool. This also means that the local
16450 reference to the VA surface is also gone, as it could be extracted
16451 from the associated surface proxy.
16453 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16455 * gst/vaapi/gstvaapivideobuffer.c:
16456 * gst/vaapi/gstvaapivideobuffer.h:
16457 * gst/vaapi/gstvaapivideometa.c:
16458 * gst/vaapi/gstvaapivideometa.h:
16459 plugins: drop obsolete functions.
16460 Drop the following functions that are not longer used:
16461 - gst_vaapi_video_buffer_new_with_surface()
16462 - gst_vaapi_video_meta_new_with_surface()
16463 - gst_vaapi_video_meta_set_surface()
16464 - gst_vaapi_video_meta_set_surface_from_pool()
16466 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16468 * gst/vaapi/gstvaapivideometa.c:
16469 plugins: allow VA video meta to be allocated from surface proxy pools.
16470 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
16471 from surface pools instead of plain VA surfaces. This is to simplify
16472 allocations now that surface proxies are created from a surface pool.
16474 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16476 * docs/reference/libs/libs-sections.txt:
16477 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
16478 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
16479 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
16480 surfaceproxy: add copy function.
16481 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
16482 proxy with the same information from the parent proxy, except that the
16483 user-defined destroy notify function is not copied over.
16484 The underlying VA surface is pushed back to the video pool only when
16485 the last reference to the parent surface proxy is released.
16487 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16489 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
16490 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
16491 * gst/vaapi/gstvaapiencode.c:
16492 vaapiencode: optimize _handle_frame() to avoid extra allocation.
16493 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
16494 and in particular the GstVaapiEncObjUserData object. i.e. directly use
16495 the VA surface proxy from the source buffer. This also makes the user
16496 data attached to the GstVideoCodecFrame more consistent between both
16497 the decoder and encoder plug-in elements.
16499 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16501 * gst/vaapi/gstvaapiencode.c:
16502 vaapiencode: fix memory leaks in _push_frame() on error.
16503 Simplify gst_vaapiencode_push_frame(), while also removing the call
16504 to gst_video_encoder_negotiate() since this is implicit in _finish()
16505 if caps changed. Also fixed memory leaks that occured on error.
16507 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16509 * gst/vaapi/gstvaapiencode.c:
16510 * gst/vaapi/gstvaapiencode.h:
16511 * gst/vaapi/gstvaapiencode_h264.c:
16512 * gst/vaapi/gstvaapiencode_h264.h:
16513 * gst/vaapi/gstvaapiencode_mpeg2.c:
16514 vaapiencode: additional clean-ups.
16515 Constify pointers wherever possible. Drop unused variables, and use
16516 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
16517 to correctly report errors, especially when in-place conversion from
16518 bytestream to avcC format failed.
16520 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16522 * gst/vaapi/gstvaapiencode.c:
16523 * gst/vaapi/gstvaapiencode.h:
16524 * gst/vaapi/gstvaapiencode_h264.c:
16525 * gst/vaapi/gstvaapiencode_h264.h:
16526 * gst/vaapi/gstvaapiencode_mpeg2.c:
16527 * gst/vaapi/gstvaapiencode_mpeg2.h:
16528 vaapiencode: move common properties to base class.
16529 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
16530 base class. The actual range of supported rate control modes is currently
16531 implemented as a plug-in element hook. This ought to be determined from
16532 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
16534 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16536 * gst/vaapi/gstvaapiencode_h264.c:
16537 * gst/vaapi/gstvaapiencode_mpeg2.c:
16538 vaapiencode: fix plugin description and debug name.
16539 Align the plug-in debug category to its actual name. i.e. enable debug
16540 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
16541 the plug-in element description to make it more consistent with other
16544 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16547 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16548 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16549 * gst-libs/gst/video/Makefile.am:
16550 * gst/vaapi/gstvaapiencode.c:
16551 * gst/vaapi/gstvaapiencode.h:
16552 * gst/vaapi/gstvaapiencode_h264.c:
16553 * gst/vaapi/gstvaapiencode_mpeg2.c:
16554 vaapiencode: add initial support for GStreamer 0.10.
16556 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16558 * gst-libs/gst/vaapi/gstcompat.h:
16559 libs: add more GstBuffer compat glue for GStreamer 0.10.
16560 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
16561 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
16564 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16567 * gst-libs/gst/video/Makefile.am:
16568 libs: always use built-in videoutils for GStreamer 0.10.
16569 GStreamer 0.10.36 is the latest and ultimate version to be released
16570 from the GStreamer 0.10 branch. i.e. no further releases are to be
16571 made. So, we can safely enable the built-in videoutils replacement
16572 now that they are in sync with the 0.10 branch.
16574 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16577 videoutils: update to master commit d4a15a5.
16578 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
16579 86096cc videodecoder: minor cosmetic changes to align a bit more with master
16580 b4b8b52 videodecoder: allow parse function to not use all data on adapter
16581 2145495 videodecoder: warn if frame list gets long
16582 36c3753 videodecoder: Also use the object lock to protect the output_state
16583 518c93d videodecoder: fix seeking again
16584 185fb63 video: Correct usage of the base class stream lock
16585 170e944 videodecoder: Expose _negotiate function
16587 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
16590 * gst-libs/gst/vaapi/Makefile.am:
16591 * tests/Makefile.am:
16592 Fix build with GStreamer >= 1.3.
16593 http://bugzilla.gnome.org/show_bug.cgi?id=715183
16594 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16596 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16599 configure: disable encoders with GStreamer 0.10.
16600 Don't try to build video encoders for GStreamer 0.10. Support code is
16601 not there yet, and probably will never for such an ancient version.
16603 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16605 * gst/vaapi/gstvaapiencode.c:
16606 vaapiencode: fix error handling while allocating output buffers.
16607 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
16608 unmap the coded buffer prior to returning an error.
16610 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16612 * gst/vaapi/gstvaapiencode.c:
16613 vaapiencode: fix error handling in _finish() hook.
16614 Fix GstVideoEncoder::finish() implementation to really return possible
16615 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
16617 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16619 * gst/vaapi/gstvaapiencode.c:
16620 * gst/vaapi/gstvaapiencode.h:
16621 * gst/vaapi/gstvaapiencode_h264.c:
16622 * gst/vaapi/gstvaapiencode_h264.h:
16623 * gst/vaapi/gstvaapiencode_mpeg2.c:
16624 * gst/vaapi/gstvaapiencode_mpeg2.h:
16625 vaapiencode: minor clean-ups.
16626 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
16627 the GObject type system. We are guaranteed to only deal with the same
16628 plug-in element object.
16630 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16632 * gst/vaapi/gstvaapiencode.c:
16633 * gst/vaapi/gstvaapiencode_h264.c:
16634 * gst/vaapi/gstvaapiencode_mpeg2.c:
16635 vaapiencode: fix support for raw YUV sink buffers.
16636 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
16637 The most efficient way to do so is to let the vaapiencode elements
16638 allocate a buffer pool, and subsequently buffers from it. This means
16639 that upstream elements are expected to honour downstream pools.
16640 If upstream elements insist on providing their own allocated buffers
16641 to the vaapiencode elements, then it possibly would be more efficient
16642 to insert a vaapipostproc element before the vaapiencode element.
16643 This is because vaapipostproc currently has better support than other
16644 elements for "foreign" raw YUV buffers.
16646 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16648 * gst/vaapi/gstvaapiencode.c:
16649 vaapiencode: fix support for GStreamer 1.2.
16651 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
16653 * gst/vaapi/gstvaapiencode.c:
16654 * gst/vaapi/gstvaapiencode_h264.c:
16655 * gst/vaapi/gstvaapiencode_mpeg2.c:
16656 vaapiencode: initial port to GStreamer 1.2.
16657 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16659 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
16661 * gst/vaapi/Makefile.am:
16662 * gst/vaapi/gstvaapi.c:
16663 * gst/vaapi/gstvaapiencode_mpeg2.c:
16664 * gst/vaapi/gstvaapiencode_mpeg2.h:
16665 plugins: add mpeg2 encoder element.
16666 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
16667 is called "vaapiencode_mpeg2".
16669 - rate-control: rate control mode (default: cqp - constant QP)
16670 - bitrate: desired bitrate in kbps (default: auto-calculated)
16671 - key-period: maximal distance between two key frames (default: 30)
16672 - max-bframes: number of B-frames between I and P (default: 2)
16673 - quantizer: constant quantizer (default: 8)
16674 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16676 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
16678 * gst/vaapi/Makefile.am:
16679 * gst/vaapi/gstvaapi.c:
16680 * gst/vaapi/gstvaapiencode_h264.c:
16681 * gst/vaapi/gstvaapiencode_h264.h:
16682 plugins: add h264 encoder element.
16683 Add GstVaapiEncodeH264 element object. The actual plug-in element
16684 is called "vaapiencode_h264".
16686 - rate-control: rate control mode (default: none)
16687 - bitrate: desired bitrate in kbps (default: auto-calculated)
16688 - key-period: maximal distance between two key frames (default: 30)
16689 - num-slices: number of slices per frame (default: 1)
16690 - max-bframes: number of B-frames between I and P (default: 0)
16691 - min-qp: minimal quantizer (default: 1)
16692 - init-qp: initial quantizer (default: 26)
16693 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16695 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
16697 * gst/vaapi/Makefile.am:
16698 * gst/vaapi/gstvaapiencode.c:
16699 * gst/vaapi/gstvaapiencode.h:
16700 plugins: add base encoder element.
16701 vaapiencode element is based on GstVideoEncoder APIs.
16702 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16704 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
16706 * gst-libs/gst/vaapi/Makefile.am:
16707 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16708 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
16709 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
16710 encoder: add mpeg2 encoder.
16711 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
16712 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16714 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
16716 * gst-libs/gst/vaapi/Makefile.am:
16717 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16718 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
16719 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
16720 encoder: add h264 encoder.
16721 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16723 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
16726 * gst-libs/gst/vaapi/Makefile.am:
16727 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16728 * gst-libs/gst/vaapi/gstvaapiencoder.h:
16729 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
16730 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
16731 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16732 Add initial infrastructure for video encoding.
16733 Add initial API for video encoding: only basic interfaces and small
16734 encoder objects are implemented so far.
16735 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16737 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
16740 * gst-libs/gst/Makefile.am:
16741 * gst-libs/gst/base/Makefile.am:
16742 * gst-libs/gst/base/gstbitwriter.c:
16743 * gst-libs/gst/base/gstbitwriter.h:
16744 * gst-libs/gst/vaapi/Makefile.am:
16745 libs: add generic bitstream writer.
16746 GstBitWriter provides a bit writer that can write any number of bits
16747 to a pre-allocated memory buffer. Helper functions are also provided
16748 to write any number of bits from 8, 16, 32 and 64 bit variables.
16749 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16751 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
16753 * gst-libs/gst/vaapi/gstvaapicontext.c:
16754 * gst-libs/gst/vaapi/gstvaapicontext.h:
16755 libs: add support for rate-control to GstVaapiContext.
16756 Extend GstVaapiContextInfo structure to hold the desired rate control
16757 mode for encoding purposes. For decoding purposes, this field is not
16758 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
16759 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16761 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
16763 * gst-libs/gst/vaapi/gstvaapitypes.h:
16764 * gst-libs/gst/vaapi/gstvaapiutils.c:
16765 * gst-libs/gst/vaapi/gstvaapiutils.h:
16766 * gst-libs/gst/vaapi/gstvaapivalue.c:
16767 * gst-libs/gst/vaapi/gstvaapivalue.h:
16768 libs: add rate-control attributes.
16769 Add GstVaapiRateControl types and GType values in view to supporting
16770 rate controls for encoding. This is meant to be used for instance in
16772 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16774 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16777 Bump version for development.
16779 === release 0.5.7 ===
16781 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16783 * gst/vaapi/Makefile.am:
16784 build: fix for Wayland headers not in standard include dirs.
16785 Fix build when Wayland headers don't live in plain system include dirs
16786 like /usr/include but rather in /usr/include/wayland for instance.
16787 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
16788 https://bugzilla.gnome.org/show_bug.cgi?id=712282
16790 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
16792 * gst-libs/gst/vaapi/Makefile.am:
16793 build: link libgstvaapi-wayland against videoutils.
16794 This library is using symbols that don't exist in GStreamer 0.10 so
16795 it needs to link to built-in implementation (libgstvaapi-videoutils).
16796 https://bugzilla.gnome.org/show_bug.cgi?id=712282
16797 Signed-off-by: Ross Burton <ross.burton@intel.com>
16798 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16800 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16802 * gst-libs/gst/vaapi/gstvaapifilter.c:
16803 * gst/vaapi/gstvaapipostproc.c:
16804 vaapostproc: fix memory leaks.
16805 Destroy VPP output surface pool on exit. Also avoid a possible crash
16806 in double-free situation caused by insufficiently reference counted
16807 array of formats returned during initialization.
16809 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16811 * gst/vaapi/gstvaapipostproc.c:
16812 * gst/vaapi/gstvaapipostproc.h:
16813 vaapipostproc: fix and optimize advanced deinterlacing mode.
16814 Fix advanced deinterlacing modes with VPP to track only up to 2 past
16815 reference buffers. This used to be 3 past reference buffers but this
16816 doesn't fit with the existing decode pipeline that only has 4 extra
16818 Also optimize references tracking to be only enabled when needed, i.e.
16819 when advanced deinterlacing mode is used. This means that we don't
16820 need to track past references for basic bob or weave deinterlacing.
16822 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16824 * gst/vaapi/gstvaapipostproc.c:
16825 vaapipostproc: fix "mixed" mode deinterlacing.
16826 In "mixed" interlaced streams, the buffer contains additional flags that
16827 specify whether the frame contained herein is interlaced or not. This means
16828 that we can alternatively get progressive or interlaced frames. Make sure
16829 to disable deinterlacing at the VPP level when the source buffer is no longer
16832 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16834 * gst/vaapi/gstvaapipostproc.c:
16835 vaapipostproc: fix memory leaks with advanced deinterlacing.
16836 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
16837 of past buffers. Completely reset the deinterlace state, thus destroying
16838 any buffer currently held, on _start(), _stop() and _destroy().
16840 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16844 - GStreamer 1.2 APIs are supported ;
16845 - Video Processing (VA/VPP) features.
16847 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16850 README: update for GStreamer >= 1.0.x and VPP features.
16852 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16854 * gst-libs/gst/vaapi/glibcompat.h:
16855 * gst-libs/gst/vaapi/gstvaapicontext.h:
16856 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
16857 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
16858 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
16859 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
16860 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
16861 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
16862 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
16863 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
16864 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
16865 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16866 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
16867 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
16868 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
16869 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
16870 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
16871 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
16872 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
16873 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
16874 * gst-libs/gst/vaapi/gstvaapiimage.c:
16875 * gst-libs/gst/vaapi/gstvaapiimage.h:
16876 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
16877 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
16878 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
16879 * gst-libs/gst/vaapi/gstvaapiobject.c:
16880 * gst-libs/gst/vaapi/gstvaapiobject.h:
16881 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
16882 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16883 * gst-libs/gst/vaapi/gstvaapisurface.h:
16884 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
16885 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
16886 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
16887 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
16888 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
16889 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
16890 * gst-libs/gst/vaapi/gstvaapitexture.c:
16891 * gst-libs/gst/vaapi/gstvaapitexture.h:
16892 * gst-libs/gst/vaapi/gstvaapitypes.h:
16893 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
16894 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
16895 * gst-libs/gst/vaapi/gstvaapivalue.c:
16896 * gst-libs/gst/vaapi/gstvaapivalue.h:
16897 * gst-libs/gst/vaapi/gstvaapivideopool.c:
16898 * gst-libs/gst/vaapi/gstvaapivideopool.h:
16899 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
16900 * gst-libs/gst/vaapi/gstvaapiwindow.c:
16901 * gst-libs/gst/vaapi/gstvaapiwindow.h:
16902 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
16903 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
16904 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
16905 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
16906 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
16907 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
16908 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
16909 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
16910 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
16911 * gst/vaapi/gstvaapi.c:
16912 * gst/vaapi/gstvaapidecode.h:
16913 * gst/vaapi/gstvaapidownload.h:
16914 * gst/vaapi/gstvaapipluginutil.c:
16915 * gst/vaapi/gstvaapipluginutil.h:
16916 * gst/vaapi/gstvaapipostproc.h:
16917 * gst/vaapi/gstvaapisink.h:
16918 * gst/vaapi/gstvaapivideoconverter_glx.h:
16922 * tests/test-display.c:
16923 * tests/test-jpeg.c:
16924 * tests/test-jpeg.h:
16925 * tests/test-mpeg4.c:
16926 * tests/test-mpeg4.h:
16927 * tests/test-surfaces.c:
16928 * tests/test-windows.c:
16929 legal: update copyright notice dates.
16931 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16933 * gst-libs/gst/vaapi/glibcompat.h:
16934 * gst-libs/gst/vaapi/gstcompat.h:
16935 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
16936 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
16937 * gst-libs/gst/vaapi/gstvaapicompat.h:
16938 * gst-libs/gst/vaapi/gstvaapicontext.c:
16939 * gst-libs/gst/vaapi/gstvaapicontext.h:
16940 * gst-libs/gst/vaapi/gstvaapidebug.h:
16941 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16942 * gst-libs/gst/vaapi/gstvaapidecoder.h:
16943 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
16944 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
16945 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16946 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
16947 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16948 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
16949 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
16950 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
16951 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
16952 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
16953 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
16954 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
16955 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16956 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
16957 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
16958 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
16959 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
16960 * gst-libs/gst/vaapi/gstvaapidisplay.c:
16961 * gst-libs/gst/vaapi/gstvaapidisplay.h:
16962 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
16963 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
16964 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
16965 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
16966 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16967 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
16968 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
16969 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
16970 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
16971 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
16972 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
16973 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
16974 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
16975 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
16976 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
16977 * gst-libs/gst/vaapi/gstvaapifilter.c:
16978 * gst-libs/gst/vaapi/gstvaapifilter.h:
16979 * gst-libs/gst/vaapi/gstvaapiimage.c:
16980 * gst-libs/gst/vaapi/gstvaapiimage.h:
16981 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
16982 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
16983 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
16984 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
16985 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
16986 * gst-libs/gst/vaapi/gstvaapiobject.c:
16987 * gst-libs/gst/vaapi/gstvaapiobject.h:
16988 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
16989 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
16990 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
16991 * gst-libs/gst/vaapi/gstvaapipixmap.c:
16992 * gst-libs/gst/vaapi/gstvaapipixmap.h:
16993 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
16994 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
16995 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
16996 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16997 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16998 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
16999 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
17000 * gst-libs/gst/vaapi/gstvaapisurface.c:
17001 * gst-libs/gst/vaapi/gstvaapisurface.h:
17002 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
17003 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
17004 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
17005 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
17006 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
17007 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
17008 * gst-libs/gst/vaapi/gstvaapitexture.c:
17009 * gst-libs/gst/vaapi/gstvaapitexture.h:
17010 * gst-libs/gst/vaapi/gstvaapitypes.h:
17011 * gst-libs/gst/vaapi/gstvaapiutils.c:
17012 * gst-libs/gst/vaapi/gstvaapiutils.h:
17013 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
17014 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
17015 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
17016 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
17017 * gst-libs/gst/vaapi/gstvaapivalue.c:
17018 * gst-libs/gst/vaapi/gstvaapivalue.h:
17019 * gst-libs/gst/vaapi/gstvaapivideopool.c:
17020 * gst-libs/gst/vaapi/gstvaapivideopool.h:
17021 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
17022 * gst-libs/gst/vaapi/gstvaapiwindow.c:
17023 * gst-libs/gst/vaapi/gstvaapiwindow.h:
17024 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
17025 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
17026 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
17027 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
17028 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17029 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17030 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
17031 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
17032 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
17033 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
17034 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
17035 * gst-libs/gst/vaapi/sysdeps.h:
17036 * gst-libs/gst/vaapi/video-format.c:
17037 * gst-libs/gst/vaapi/video-format.h:
17038 * gst/vaapi/gstvaapi.c:
17039 * gst/vaapi/gstvaapidecode.c:
17040 * gst/vaapi/gstvaapidecode.h:
17041 * gst/vaapi/gstvaapidownload.c:
17042 * gst/vaapi/gstvaapidownload.h:
17043 * gst/vaapi/gstvaapipluginutil.c:
17044 * gst/vaapi/gstvaapipluginutil.h:
17045 * gst/vaapi/gstvaapipostproc.c:
17046 * gst/vaapi/gstvaapipostproc.h:
17047 * gst/vaapi/gstvaapisink.c:
17048 * gst/vaapi/gstvaapisink.h:
17049 * gst/vaapi/gstvaapiupload.c:
17050 * gst/vaapi/gstvaapiupload.h:
17051 * gst/vaapi/gstvaapiuploader.c:
17052 * gst/vaapi/gstvaapiuploader.h:
17053 * gst/vaapi/gstvaapivideobuffer.c:
17054 * gst/vaapi/gstvaapivideobuffer.h:
17055 * gst/vaapi/gstvaapivideobufferpool.c:
17056 * gst/vaapi/gstvaapivideobufferpool.h:
17057 * gst/vaapi/gstvaapivideocontext.c:
17058 * gst/vaapi/gstvaapivideocontext.h:
17059 * gst/vaapi/gstvaapivideoconverter_glx.c:
17060 * gst/vaapi/gstvaapivideoconverter_glx.h:
17061 * gst/vaapi/gstvaapivideoconverter_x11.c:
17062 * gst/vaapi/gstvaapivideoconverter_x11.h:
17063 * gst/vaapi/gstvaapivideomemory.c:
17064 * gst/vaapi/gstvaapivideomemory.h:
17065 * gst/vaapi/gstvaapivideometa.c:
17066 * gst/vaapi/gstvaapivideometa.h:
17067 * gst/vaapi/gstvaapivideometa_texture.c:
17068 * gst/vaapi/gstvaapivideometa_texture.h:
17077 * tests/simple-decoder.c:
17078 * tests/test-decode.c:
17079 * tests/test-decode.h:
17080 * tests/test-display.c:
17081 * tests/test-filter.c:
17082 * tests/test-h264.c:
17083 * tests/test-h264.h:
17084 * tests/test-jpeg.c:
17085 * tests/test-jpeg.h:
17086 * tests/test-mpeg2.c:
17087 * tests/test-mpeg2.h:
17088 * tests/test-mpeg4.c:
17089 * tests/test-mpeg4.h:
17090 * tests/test-surfaces.c:
17091 * tests/test-textures.c:
17092 * tests/test-vc1.c:
17093 * tests/test-vc1.h:
17094 * tests/test-windows.c:
17095 legal: add per-file authorship information.
17096 Credit original authors on a per-file basis as we cannot expect people
17097 to know all country-specific rules, or bother browsing through the git
17100 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17106 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17111 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17113 * gst-libs/gst/vaapi/gstvaapidecoder.h:
17114 decoder: don't include obsolete headers.
17115 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
17116 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
17119 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17121 * gst/vaapi/Makefile.am:
17122 * gst/vaapi/gstvaapi.c:
17123 * gst/vaapi/gstvaapipostproc.c:
17124 vaapipostproc: add initial support for GStreamer 1.2.
17125 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
17126 right now so that to cope with auto-plugging issues/regressions. e.g.
17127 this happens when the correct set of expected caps are being exposed.
17128 This means that, currently, the proposed caps are not fully accurate.
17130 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
17132 * gst/vaapi/gstvaapipostproc.c:
17133 * gst/vaapi/gstvaapipostproc.h:
17134 vaapipostproc: add support for denoise and sharpen filters.
17135 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17137 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17139 * gst/vaapi/gstvaapipostproc.c:
17140 * gst/vaapi/gstvaapipostproc.h:
17141 vaapipostproc: add support for advanced deinterlacing.
17142 Add initial support for advanced deinterlacing. The history buffer
17143 size is arbitrarily set to 3 references for now.
17145 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17147 * gst/vaapi/gstvaapipostproc.c:
17148 vaapipostproc: fix deinterlacing with VPP.
17149 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
17150 for the first field. Render flags were supplied instead of the actual
17151 deinterlacing flags (deint_flags).
17153 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17155 * gst/vaapi/gstvaapipostproc.c:
17156 vaapipostproc: fix transform caps.
17157 Fix GstBaseTransform::transform_caps() implementation to always return
17158 the complete set of allowed sink pad caps (unfixated) even if the src
17159 pad caps we are getting are fixated. Rationale: there are just so many
17160 possible combinations, and it was wrong to provide a unique set anyway.
17161 As a side effect, this greatly simplifies the ability to derive src pad
17162 caps from fixated sink pad caps.
17164 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
17166 * docs/reference/libs/libs-sections.txt:
17167 * gst-libs/gst/vaapi/gstvaapifilter.c:
17168 * gst-libs/gst/vaapi/gstvaapifilter.h:
17169 filter: add helper to specify references for deinterlacing.
17170 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
17171 list of surfaces used for forward or backward reference in advanced
17172 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
17173 The list of surfaces used as deinterlacing references shall be live
17174 until the next call to gst_vaapi_filter_process().
17175 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17177 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17179 * gst-libs/gst/vaapi/gstvaapifilter.c:
17180 * gst-libs/gst/vaapi/gstvaapifilter.h:
17181 * gst-libs/gst/vaapi/gstvaapiutils.c:
17182 * gst/vaapi/gstvaapipostproc.c:
17183 * tests/test-filter.c:
17184 filter: fix semantics of deinterlacing flags.
17185 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
17186 flag is meant to specify the organization of reference frames used in
17187 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
17188 to specify that the top-field of the supplied input surface is to be
17189 used for deinterlacing. Conversely, if not set, this means that the
17190 bottom field of the supplied input surface will be used instead.
17192 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17194 * docs/reference/libs/libs-sections.txt:
17195 * gst-libs/gst/vaapi/gstvaapifilter.c:
17196 * gst-libs/gst/vaapi/gstvaapifilter.h:
17197 filter: add helpers to check for supported/active operation.
17198 Add a couple of helper functions:
17199 - gst_vaapi_filter_has_operation(): checks whether the VA driver
17200 advertises support for the supplied operation ;
17201 - gst_vaapi_filter_use_operation(): checks whether the supplied
17202 operation was already enabled to its non-default value.
17204 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17206 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
17207 libs: fix GstVaapiSurfaceProxy destroy notify call site.
17208 The user-defined destroy notify function is meant to be called only when
17209 the surface proxy was fully released, i.e. once it actually released the
17210 VA surface back to the underlying pool.
17212 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
17214 * gst-libs/gst/vaapi/gstvaapivideopool.c:
17215 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
17216 libs: make GstVaapiVideoPool thread-safe.
17217 https://bugzilla.gnome.org/show_bug.cgi?id=707108
17218 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17220 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
17222 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17223 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
17224 libs: robustify decoder objects and surface proxy initialization.
17225 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
17226 sequences to have the expected default values set beforehand in case of an
17227 error raising up further during creation. i.e. make it possible to cleanly
17228 destroy those partially initialized objects.
17229 https://bugzilla.gnome.org/show_bug.cgi?id=707108
17230 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17232 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17234 * gst/vaapi/gstvaapidecode.c:
17235 vaapidecode: fix decoder flush.
17236 There are situations where gst_video_decoder_flush() is called, and
17237 this subsequently produces a gst_video_decoder_reset() that kills the
17238 currently active GstVideoCodecFrame. This means that it no longer
17239 exists by the time we reach GstVideoDecoder::finish() callback, thus
17240 possibly resulting in a crash if we assumed spare data was still
17241 available for decode (current_frame_size > 0).
17242 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
17243 that means a flush, thus performing the actual operations there like
17244 calling gst_video_decoder_have_frame() if pending data is available.
17246 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17248 * gst/vaapi/gstvaapidecode.c:
17249 * gst/vaapi/gstvaapidecode.h:
17250 vaapidecode: fix dead-locks with decoder task.
17251 Review all interactions between the main video decoder stream thread
17252 and the decode task to derive a correct sequence of operations for
17253 decoding. Also avoid extra atomic operations that become implicit under
17254 the GstVideoDecoder stream lock.
17256 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
17258 * gst/vaapi/gstvaapidecode.c:
17259 vaapidecode: fix hard reset for seek cases.
17260 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
17261 and completely purge any decoded output frame that may come out from
17262 it. At this stage, the GstVaapiDecoder shall be in a complete clean
17263 state to start decoding over new buffers.
17264 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17266 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
17268 * gst/vaapi/gstvaapidecode.c:
17269 * gst/vaapi/gstvaapidecode.h:
17270 vaapidecode: drop decode timeout, always wait for a free surface.
17271 vaapidecode used to wait up to one second past the expected time of
17272 presentation for the last decoded frame. This is not realistic in
17273 practice when it comes to video pause/resume. Changed behaviour to
17274 unconditionnally wait for a free VA surface prior to continuing the
17275 decoding. The decode task will continue pushing the output frames to
17276 the downstream element while also reporting errors at the same time
17277 to the main thread.
17278 https://bugzilla.gnome.org/show_bug.cgi?id=707108
17279 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17281 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17283 * gst/vaapi/gstvaapidecode.c:
17284 vaapidecode: fix srcpad caps for GStreamer 1.2.
17285 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
17286 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
17287 that it relied on possibly un-initialized data. Fix srcpad caps to be
17288 initialized from a sanitized copy of GstVideoDecoder output state caps.
17289 Note: the correct way to expose the srcpad caps triggers an additional
17290 issue in core GStreamer auto-plugging capabilities as the correct caps
17291 to be exposed should be format=ENCODED with memory:VASurface caps feature
17292 at the minimum. In some situations, we could determine the underlying
17293 VA surface format, but this is not always possible. e.g. cases where it
17294 is not allowed to expose the underlying VA surface data, or when the
17295 VA driver implementation cannot actually provide such information.
17297 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17299 * gst/vaapi/gstvaapidecode.c:
17300 * gst/vaapi/gstvaapisink.c:
17301 plugins: streamline VA formats exposed in caps to a realistic set.
17302 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
17303 output formats for GStreamer 1.2 in caps to a realistic subset. This
17304 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
17305 underlying VA surface format, or if it is actually not allowed to get
17306 access to the surface contents.
17308 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17310 * gst/vaapi/gstvaapidecode.c:
17311 * gst/vaapi/gstvaapisink.c:
17312 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
17313 Fix vaapidecode srcpad caps to only expose RGBA video format for the
17314 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
17315 so far. Besides, drop this meta from the vaapisink sinkpad caps since
17316 we really don't support that for rendering.
17317 https://bugzilla.gnome.org/show_bug.cgi?id=711828
17319 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17322 configure: automatically detect GStreamer API version.
17323 Automatically detect GStreamer API version. The --with-gstreamer-api
17324 configure option now defaults to "autodetect" and configure then tries
17325 to derive the GStreamer API version from the highest version based on
17326 what pkg-config --modversion would report.
17327 https://bugzilla.gnome.org/show_bug.cgi?id=711657
17329 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
17331 * gst/vaapi/gstvaapipostproc.c:
17332 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
17333 Fix raw YUV data uploaded as in the following pipeline:
17334 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
17335 The main reason why it failed was that the videoparse element simply
17336 allocates GstBuffer with raw data chunk'ed off the sink pad without
17337 any prior knowledge of the actual frame info. i.e. it basically just
17338 calls gst_adapter_take_buffer().
17339 We could avoid the extra copy performed in vaapipostproc if the videoparse
17340 element was aware of the downstream pool and bothers copying line by
17341 line, for each plane. This means that, for a single frame per buffer,
17342 the optimizatin will be to allocate the video buffer downstream, map
17343 it, and copy each line that is coming through until we need to fills
17344 in the successive planes.
17345 Still, optimized raw YUV uploads already worked with the following:
17346 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
17347 https://bugzilla.gnome.org/show_bug.cgi?id=711250
17348 [clean-ups, fixed error cases to unmap and unref outbuf]
17349 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17351 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17353 * gst/vaapi/gstvaapipostproc.c:
17354 vaapipostproc: try to downgrade deinterlace-method when needed.
17355 If the currently selected deinterlacing method is not supported by the
17356 underlying hardware, then try to downgrade the method to a supported one.
17357 At the minimum, basic bob-deinterlacing shall always be supported.
17359 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17361 * gst/vaapi/gstvaapipostproc.c:
17362 vaapipostproc: add initial support for deinterlacing with VPP.
17363 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
17364 this only covers bob-deinterlacing when the output pixel format is
17367 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17369 * gst/vaapi/gstvaapipostproc.c:
17370 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
17371 The size argument for GstBaseTransform::transform_size() hook is a
17372 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
17374 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17376 * gst/vaapi/gstvaapipostproc.c:
17377 * gst/vaapi/gstvaapipostproc.h:
17378 vaapipostproc: add initial support for scaling.
17379 Add initial support for basic scaling with size specified through the
17380 "width" and "height" properties. If either user-provided dimension is
17381 zero and "force-aspect-ratio" is set to true (the default), then the
17382 other dimension is scaled to preserve the aspect ratio.
17384 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17386 * gst/vaapi/gstvaapipostproc.c:
17387 * gst/vaapi/gstvaapipostproc.h:
17388 vaapipostproc: add initial support for color conversion.
17389 If VPP is available, we always try to implicitly convert the source
17390 buffer to the "native" surface format for the underlying accelerator.
17391 This means that no optimization is performed yet to propagate raw YUV
17392 buffers to the downstream element as is, if VPP is available. i.e. it
17393 will always cause a color conversion.
17395 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17397 * gst/vaapi/gstvaapipostproc.c:
17398 vaapipostproc: fix bug when user disabled deinterlacing.
17399 Fix pipeline error / hang when the user disabled deinterlacing through
17400 the deinterlace-mode=disabled property setting.
17402 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17404 * gst/vaapi/gstvaapipostproc.c:
17405 * gst/vaapi/gstvaapipostproc.h:
17406 vaapipostproc: factor out operations to be applied into flags.
17407 Even if we only support deinterlacing for now, use flags to specify
17408 which filters are to be applied to each frame we receive in transform().
17409 This is preparatory work for integrating new filters.
17411 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17413 * gst/vaapi/gstvaapipostproc.c:
17414 * gst/vaapi/gstvaapipostproc.h:
17415 vaapipostproc: add support for raw YUV video source buffers.
17416 Allow video processing from raw YUV buffers coming from the sink pad,
17417 while still producing a VA surface for the downstream elements.
17419 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17421 * gst/vaapi/gstvaapipluginutil.c:
17422 * gst/vaapi/gstvaapipluginutil.h:
17423 * gst/vaapi/gstvaapipostproc.c:
17424 vaapipostproc: add support for "mixed" interlace mode.
17425 Add support for "mixed" interlace-mode, whereby the video frame buffer
17426 shall be deinterlaced only if its flags mention that's actually an
17427 interlaced frame buffer.
17429 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17431 * gst-libs/gst/vaapi/gstcompat.h:
17432 * gst/vaapi/gstvaapipostproc.c:
17433 * gst/vaapi/gstvaapipostproc.h:
17434 * gst/vaapi/gstvaapivideobuffer.c:
17435 * gst/vaapi/gstvaapivideobuffer.h:
17436 vaapipostproc: rework plug-in element.
17437 Rewrite the vaapipostproc plug-in element so that it derives from
17438 GstBaseTransform, thus simplifying the caps negotiation process.
17440 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17442 * gst/vaapi/gstvaapivideobufferpool.c:
17443 * gst/vaapi/gstvaapivideomemory.c:
17444 * gst/vaapi/gstvaapivideomemory.h:
17445 plugins: fix and optimize check for buffer pool allocator params.
17446 Reset the buffer pool allocator only if the config caps changed in a
17447 sensible way: format or resolution change. i.e. don't bother with
17448 other caps like colorimetry et al. as this doesn't affect the way to
17449 allocate VA surfaces or images.
17451 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17453 * gst/vaapi/gstvaapivideomemory.c:
17454 plugins: enable memory maps for read & write with direct-rendering.
17455 Enable read and write mappings only if direct-rendering is supported.
17456 Otherwise, this means that we may need to download data from the VA
17457 surface first for correctness, even if the VA surface doesn't need to
17458 be read at all. i.e. sometimes, READWRITE mappings are meant for
17459 surfaces that are written to first, and read afterwards for further
17461 https://bugzilla.gnome.org/show_bug.cgi?id=704078
17463 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17465 * gst/vaapi/gstvaapivideomemory.c:
17466 plugins: fix check for direct-rendering support.
17467 Fix check for direct-rendering if the creation of VA surfaces with
17468 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
17469 that we tried to allocate a VA surface based on the corresponding
17470 chroma type. i.e. in that particular case, we have to make sure that
17471 the derived image has actually the expected format.
17473 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17475 * gst/vaapi/gstvaapivideobufferpool.c:
17476 * gst/vaapi/gstvaapivideomemory.c:
17477 * gst/vaapi/gstvaapivideomemory.h:
17478 plugins: fix buffer pool reset_buffer() to reset memory resources.
17479 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
17480 memory resources, and more particularly the VA surface proxy. Most
17481 importantly, the GstVaapiVideoMeta is retained. Cached surface in
17482 memory are released, thus triggering a new allocation the next time
17483 we need to map the buffer.
17485 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17487 * gst/vaapi/gstvaapivideomemory.c:
17488 * gst/vaapi/gstvaapivideomemory.h:
17489 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
17490 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
17491 pool stored in the parent VA memory allocator.
17492 This fixes the following scenario:
17493 - VA video buffer 1 is allocated from a buffer pool
17494 - Another video buffer is created, and inherits info from buffer 1
17495 - Buffer 1 is released, thus pushing it back to the buffer pool
17496 - New buffer alloc request comes it, this yields buffer 1 back
17497 - At this stage, buffers 1 and 2 still share the same underlying VA
17498 surface, but buffer 2 was already submitted downstream for further
17499 processing, thus conflicting with additional processing we were
17500 about to perform on buffer 1.
17501 Maybe the core GstBufferPool implementation should have been fixed
17502 instead to actually make sure that the returned GstBuffer memory we
17503 found from the pool is writable?
17505 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17507 * gst/vaapi/gstvaapiuploader.c:
17508 plugins: create a proxy for GstVaapiUploader allocated buffers.
17509 Always make sure to allocate a VA surface proxy for GstVaapiUploader
17510 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
17512 This fixes cases where we want to retain the underlying surface longer,
17513 instead of releasing it back to the surface pool right away.
17515 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17517 * gst/vaapi/gstvaapidecode.c:
17518 * gst/vaapi/gstvaapipluginutil.c:
17519 * gst/vaapi/gstvaapipluginutil.h:
17520 * gst/vaapi/gstvaapipostproc.c:
17521 plugins: add helper function to disable deinterlacing in caps.
17522 Add gst_caps_set_interlaced() helper function that would reset the
17523 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
17524 interlaced field to "false" for GStreamer 0.10.
17526 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17528 * gst-libs/gst/vaapi/gstvaapifilter.c:
17529 filter: fix memory leak of VPP operations.
17530 Fix ensure_operations() to release the VPP operations array if non
17531 NULL, prior to returning to the caller. The former function was also
17532 renamed to a more meaningful get_operations() since the caller owns
17533 the returned array that needs to be released.
17535 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
17537 * gst-libs/gst/vaapi/gstvaapifilter.c:
17538 filter: fix first-time operation lookup.
17539 Fix first-time operation lookup through find_operation() if the set
17540 of supported operations was not initially determined through the
17541 gst_vaapi_filter_get_operations() helper function.
17542 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17544 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
17546 * gst-libs/gst/vaapi/gstvaapifilter.c:
17547 filter: fix colorbalance related subtypes.
17548 Fix intiialization of GstVaapiFilterOpData for colorbalance related
17549 operations. In particular, fill in the va_subtype field accordingly.
17550 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17552 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17554 * gst-libs/gst/vaapi/gstvaapifilter.c:
17555 filter: fix VA-API 0.34.0 symbol guards.
17556 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
17557 that need to be guarded for libva 0.34 and 0.33, respectively.
17558 https://bugzilla.gnome.org/show_bug.cgi?id=709102
17559 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17561 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17563 * gst/vaapi/gstvaapidecode.c:
17564 * gst/vaapi/gstvaapipluginutil.c:
17565 * gst/vaapi/gstvaapisink.c:
17566 plugins: hanle the context query in any pad.
17567 Also this patch simplifies the code, since now the query is common for the
17568 decoder and the sink.
17569 https://bugzilla.gnome.org/show_bug.cgi?id=709200
17571 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17573 * gst/vaapi/gstvaapivideocontext.c:
17574 plugins: query upstream element for a GstContext.
17575 Fix gst_vaapi_video_context_prepare() to also query upstream elements
17576 for a valid GstContext. Improve comments regarding the steps used to
17577 lookup or build that context, thus conforming to the GstContext API
17579 https://bugzilla.gnome.org/show_bug.cgi?id=709112
17580 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17582 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17585 * debian.upstream/control.in:
17586 Fix detection and packaging of GStreamer 1.2.x builds.
17587 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
17588 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
17589 purposes, update the versioning to -1.2 suffix instead.
17591 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17593 * gst/vaapi/Makefile.am:
17594 * gst/vaapi/gstvaapidecode.c:
17595 * gst/vaapi/gstvaapidecode.h:
17596 * gst/vaapi/gstvaapisink.c:
17597 * gst/vaapi/gstvaapivideometa_texture.c:
17598 * gst/vaapi/gstvaapivideometa_texture.h:
17599 plugins: add support for GstVideoGLTextureUploadMeta.
17600 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
17601 requested, and more specifically under a GLX configuration, then add
17602 the GstVideoGLTextureUploadMeta to the output buffer.
17603 https://bugzilla.gnome.org/show_bug.cgi?id=703236
17604 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17606 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17608 * gst/vaapi/gstvaapidecode.c:
17609 * gst/vaapi/gstvaapisink.c:
17610 * gst/vaapi/gstvaapivideomemory.h:
17611 plugins: add support for GstCaps features.
17612 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
17613 as expressed in caps, to the more standard use of caps features. i.e.
17614 add "memory:VASurface" feature attribute to the associated caps.
17615 https://bugzilla.gnome.org/show_bug.cgi?id=703271
17616 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17618 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17620 * gst/vaapi/gstvaapidecode.c:
17621 * gst/vaapi/gstvaapisink.c:
17622 plugins: improve ::query() debugging messages.
17623 Fix gst_vaapidecode_query() to correctly display the query type name,
17624 instead of randomly displaying that we shared the underlying display.
17625 Also add debug info for the GstVaapiSink::query() handler, i.e. the
17626 supplied query type name actually.
17627 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17629 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17631 * gst/vaapi/gstvaapidecode.c:
17632 * gst/vaapi/gstvaapisink.c:
17633 plugins: add support for GstContext API.
17634 Add support for the new GstContext API from GStreamer 1.2.x.
17635 - implement the GstElement::set_context() hook ;
17636 - reply to the `context' query from downstream elements.
17637 https://bugzilla.gnome.org/show_bug.cgi?id=703235
17638 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17640 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17642 * gst/vaapi/Makefile.am:
17643 * gst/vaapi/gstvaapipluginutil.c:
17644 * gst/vaapi/gstvaapivideocontext.c:
17645 * gst/vaapi/gstvaapivideocontext.h:
17646 plugins: add compat layer for GstVideoContext.
17647 Add thin compatibility layer for the deprecated GstVideoContext API.
17648 For GStreamer API >= 1.2, this involves the following two functions:
17649 - gst_vaapi_video_context_prepare(): queries if a context is already
17650 set in the pipeline ;
17651 - gst_vaapi_video_context_propagate(): propagates the newly-created
17652 context to the rest of the pipeline.
17653 https://bugzilla.gnome.org/show_bug.cgi?id=703235
17654 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17656 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17659 * gst/vaapi/Makefile.am:
17660 * gst/vaapi/gstvaapi.c:
17661 * gst/vaapi/gstvaapidecode.c:
17662 * gst/vaapi/gstvaapipluginutil.c:
17663 * gst/vaapi/gstvaapisink.c:
17664 * gst/vaapi/gstvaapivideobuffer.c:
17665 plugins: initial port to GStreamer 1.2.
17666 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
17667 is rather minimalistic so that to test the basic functionality.
17668 Disable vaapipostproc plugin for now as further polishing is needed.
17669 Also disable GstVideoContext interface support since this API is now
17670 gone in 1.2.x. This is preparatory work for GstContext support.
17671 https://bugzilla.gnome.org/show_bug.cgi?id=703235
17672 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17674 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17676 * tests/simple-decoder.c:
17677 tests: simple-decoder: fix for non-X11 backends.
17678 Don't try to create pixmaps if we have not requested that feature. This
17679 fixes execution for non-X11 backends, and most specifically DRM video
17682 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17684 * ext/codecparsers:
17685 codecparsers: update to gst-vaapi-branch commit b33bd32.
17686 b33bd32 jpeg: fix and optimize scan for next marker code
17688 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17690 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17691 jpeg: fix calculation of MCU count.
17692 Fix calculation of MCU count for image sizes that are not a multiple
17693 of 8 pixels in either dimension, but also for non-common sampling
17694 factors like 4:2:2 in non-interleaved mode.
17696 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17698 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17699 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17700 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17701 jpeg: add support for multiscan images.
17702 Add support for images with multiple scans per frame. The Huffman table
17703 can be updated before SOS, and thus possibly requiring multiple uploads
17704 of Huffman tables to the VA driver. So, the latter must be able to cope
17705 with multiple VA buffers of type 'huffman-table' and with the correct
17708 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17710 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17711 jpeg: improve robustness when packets are missing.
17712 Improve robustness when some expected packets where not received yet
17713 or that were not correctly decoded. For example, don't try to decode
17714 a picture if there was no valid frame headers.
17716 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17718 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17719 jpeg: minor clean-ups.
17720 Improve debugging and error messages. Rename a few variables to fit the
17721 existing naming conventions. Change some fatal asserts to non-fatal
17724 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17726 * gst-libs/gst/vaapi/gstvaapidecoder.c:
17727 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17728 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
17729 jpeg: rework and optimize parser.
17730 Split the input buffer data into decoder units that represent a JPEG
17731 segment. Handle scan decoder unit specifically so that it can include
17732 both the scan header (SOS) but also any other ECS or RSTi segment.
17733 That way, we parse the input buffer stream only once at the gst-vaapi
17734 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
17735 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
17736 determine segment boundaries and decode them.
17737 In practice, this is a +15 to +25% performance improvement.
17739 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
17741 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17742 jpeg: handle comment segments.
17743 Fix decode_buffer() function to gracefully skip comment (COM) segments.
17744 This fixes decoding of streams generated by certain cameras, e.g. like
17745 the Logitech Pro C920.
17746 https://bugzilla.gnome.org/show_bug.cgi?id=708208
17747 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
17749 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17751 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17752 jpeg: fix determination of image bounds.
17753 Look for the exact image bounds characterised by the <SOI> and <EOI>
17754 markers. Use the gst_jpeg_parse() codec parser utility function to
17755 optimize the lookup for the next marker segment.
17756 https://bugzilla.gnome.org/show_bug.cgi?id=707447
17758 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
17760 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17761 jpeg: fix calculation of offset to next marker segment.
17762 Fix calculation of the offset to the next marker segment since the
17763 correction of the codecparser part to match the API specification.
17764 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
17765 of the segment minus any marker prefix.
17766 https://bugzilla.gnome.org/show_bug.cgi?id=707447
17767 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
17769 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17771 * ext/codecparsers:
17772 codecparsers: update to gst-vaapi-branch commit 23c7dde.
17773 23c7dde jpeg: fix calculation of segment size
17775 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17778 Bump version for development.
17780 === release 0.5.6 ===
17782 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17788 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17793 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
17796 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17797 configure: fix detection of VA/JPEG decoding API.
17798 Fix detection of VA/JPEG decoding API with non-standard libva packages.
17799 More precisely, some packages were shipping with a <va/va.h> header that
17800 did not include <va/va_dec_jpeg.h>.
17801 https://bugzilla.gnome.org/show_bug.cgi?id=706055
17802 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17804 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
17806 * gst/vaapi/gstvaapisink.c:
17807 vaapisink: ensure the uploader is setup for upstream allocated buffers.
17808 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
17809 is setup in case upstream elements allocate buffers themselves without
17810 honouring our GstVaapiSink::bufer_alloc() hook.
17811 In particular, this fixes support for OGG video streams with WebKit.
17812 https://bugzilla.gnome.org/show_bug.cgi?id=703934
17813 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17815 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17817 * gst/vaapi/gstvaapisink.c:
17818 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
17819 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
17822 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17824 * gst/vaapi/gstvaapisink.c:
17825 * gst/vaapi/gstvaapisink.h:
17826 vaapisink: handle raw buffers not created from VA video buffer pool.
17827 Handle raw video buffers that were not created from a VA video buffer
17828 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
17829 builds instead of the GstVaapiUploader.
17830 https://bugs.freedesktop.org/show_bug.cgi?id=55818
17832 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17834 * gst/vaapi/gstvaapidecode.c:
17835 vaapidecode: remove extraneous size information from allowed caps.
17836 Fix _getcaps() implementation to not report codecs with size information
17837 filled in the returned caps. That's totally useless nowadays. Ideally,
17838 this is a hint to insert a video parser element, thus allowing future
17839 optimizations, but this is not a strict requirement for gstreamer-vaapi,
17840 which is able to parse the elementary bitstreams itself.
17841 https://bugzilla.gnome.org/show_bug.cgi?id=704734
17843 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
17845 * gst/vaapi/gstvaapidecode.c:
17846 * gst/vaapi/gstvaapidecode.h:
17847 vaapidecode: submit the last frame from output adapter to decoder.
17848 If there is no frame delimiter at the end of the stream, e.g. no
17849 end-of-stream or end-of-sequence marker, and that the current frame
17850 was fully parsed correctly, then assume that last frame is complete
17851 and submit it to the decoder.
17852 https://bugzilla.gnome.org/show_bug.cgi?id=705123
17853 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
17854 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17856 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17858 * gst/vaapi/gstvaapidecode.c:
17859 * gst/vaapi/gstvaapidecode.h:
17860 vaapidecode: push all decoded frames from within the task.
17861 Make sure to push all decoded frames from the task so that the unlying
17862 VA surfaces could all be rendered from the same thread.
17864 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17866 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17867 wayland: render the raw surface if VPP failed.
17868 As a last resort, if video processing capabilities (VPP) are not available,
17869 or they did not produce anything conclusive enough, then try to fallback to
17870 the original rendering code path whereby the whole VA surface is rendered
17871 as is, no matter of video cropping or deinterlacing requests.
17872 Note: under those conditions, the visual outcome won't be correct but at
17873 least, something gets displayed instead of bailing out.
17875 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17877 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17878 wayland: add supporting for video processing.
17879 Try to use VA/VPP processing capabilities to handle video cropping and
17880 additional rendering flags that may not be directly supported by the
17881 underlying hardware when exposing a suitable Wayland buffer for the
17882 supplied VA surface. e.g. deinterlacing, different color primaries than
17885 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17887 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17888 wayland: add new frame redraw infrastructure.
17889 Update the frame redraw infrastructure with a new FrameState stucture
17890 holds all the necessary information used to display the next pending
17892 While we are at it, delay the sync operation down to when it is actually
17893 needed. That way, we keep performing additional tasks meanwhile.
17895 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17897 * docs/reference/libs/libs-sections.txt:
17898 * gst-libs/gst/vaapi/gstvaapifilter.c:
17899 * gst-libs/gst/vaapi/gstvaapifilter.h:
17900 filter: allow specification of render target regions.
17901 Add support for rendering the source surface to a particular region within
17902 the supplied target surface. The default background color is black.
17904 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17906 * gst/vaapi/gstvaapivideobuffer.c:
17907 decode: fix creation of GLX video buffers for GStreamer 0.10.
17908 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
17909 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
17911 This fixes support for cluttersink with GStreamer 0.10 builds.
17913 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17915 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17916 mpeg2: disable video cropping as picture_display_extension() is missing.
17917 Disable video cropping in MPEG-2 codec because it is partially implemented
17918 and actually because nobody implements it that way, and the standard spec
17919 does not specify the display process either anyway.
17920 Most notably, there are two possible use cases for sequence_display_extension()
17921 horizontal_display_size & vertical_display_size: (i) guesstimating the
17922 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
17923 in conjunction with picture_display_extension() information.
17924 https://bugzilla.gnome.org/show_bug.cgi?id=704848
17926 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17928 * gst/vaapi/gstvaapisink.c:
17929 * gst/vaapi/gstvaapisink.h:
17930 vaapisink: allow scaling to ignore aspect ratio.
17931 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
17932 which allows you to say that you don't want the sink to respect aspect
17933 ratio. Add the same property to vaapisink.
17934 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
17935 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
17937 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
17939 * gst/vaapi/gstvaapisink.c:
17940 vaapisink: fix memory leak of GstVaapiUploader instance.
17941 Make sure gst_vaapisink_ensure_uploader() checks for the existence
17942 of a former GstVaapiUploader instance prior to forcibly creating a
17944 https://bugzilla.gnome.org/show_bug.cgi?id=703980
17946 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
17948 * gst/vaapi/gstvaapisink.c:
17949 vaapisink: fix get_caps() implementation for GStreamer 1.0.
17950 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
17951 by honouring the filter caps argument. More precisely, this fixes the
17952 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
17953 https://bugzilla.gnome.org/show_bug.cgi?id=705192
17954 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
17955 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17957 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17959 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
17960 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
17961 This fixes the following issue:
17962 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
17963 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
17964 'GstVaapiDecoderMpeg4Class'
17965 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
17966 'GstVaapiDecoderMpeg4Class' was here
17967 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
17968 make[5]: Leaving directory
17969 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
17970 https://bugzilla.gnome.org/show_bug.cgi?id=705148
17972 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17974 * tests/test-filter.c:
17975 tests: filter: add support for deinterlacing.
17976 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
17977 deinterlacing filter. However, if --deinterlace option is not set but the
17978 --deinterlace-flags option is set with "top-field-first", then the very
17979 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
17981 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
17983 * tests/test-filter.c:
17984 tests: filter: add support for denoising and sharpening.
17985 Add --denoise option to enable noise reduction with the level specified
17986 as the option value (float). Likewise, add --sharpen option to enable
17988 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17990 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17992 * tests/test-filter.c:
17993 tests: filter: add support for frame cropping.
17994 Add support for frame cropping through the --crop-rect|-c argument.
17995 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
17996 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
17998 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18000 * tests/test-filter.c:
18001 tests: filter: dump supported operations and formats.
18003 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
18005 * tests/Makefile.am:
18006 * tests/test-filter.c:
18007 tests: add initial test for video processing.
18008 Add minimal test case for video processing: scaling and color format
18010 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18012 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
18014 * docs/reference/libs/libs-sections.txt:
18015 * gst-libs/gst/vaapi/gstvaapifilter.c:
18016 * gst-libs/gst/vaapi/gstvaapifilter.h:
18017 * gst-libs/gst/vaapi/gstvaapiutils.c:
18018 * gst-libs/gst/vaapi/gstvaapiutils.h:
18019 * gst/vaapi/gstvaapipostproc.c:
18020 * gst/vaapi/gstvaapipostproc.h:
18021 filter: add initial support for deinterlacing.
18022 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
18023 the selected field from the input surface is kept for the target surface.
18024 Setting gst_vaapi_filter_set_deinterlacing() method argument to
18025 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
18026 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
18027 to libgstvaapi core library.
18028 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18030 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
18032 * docs/reference/libs/libs-sections.txt:
18033 * gst-libs/gst/vaapi/gstvaapifilter.c:
18034 * gst-libs/gst/vaapi/gstvaapifilter.h:
18035 filter: add support for color balance adjustment.
18036 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
18037 and contrast. The respective range for each filter shall be the same as
18038 for the VA display attributes.
18039 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18041 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
18043 * docs/reference/libs/libs-sections.txt:
18044 * gst-libs/gst/vaapi/gstvaapifilter.c:
18045 * gst-libs/gst/vaapi/gstvaapifilter.h:
18046 filter: add support for sharpening.
18047 Sharpening is configured with a float value. The supported range is
18048 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
18050 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18052 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
18054 * docs/reference/libs/libs-sections.txt:
18055 * gst-libs/gst/vaapi/gstvaapifilter.c:
18056 * gst-libs/gst/vaapi/gstvaapifilter.h:
18057 filter: add support for denoising.
18058 Noise reduction is configured with a float value. The supported range
18059 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
18061 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18063 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18065 * docs/reference/libs/libs-sections.txt:
18066 * gst-libs/gst/vaapi/gstvaapifilter.c:
18067 * gst-libs/gst/vaapi/gstvaapifilter.h:
18068 filter: add support for frame cropping.
18069 Frame cropping is defined with a GstVaapiRectangle value. The default
18070 behaviour is to treat the source surface as a whole
18072 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18074 * gst-libs/gst/vaapi/gstvaapifilter.c:
18075 filter: add helper functions.
18076 Add helper functions to ensure an operation VA buffer is allocated to
18077 the right size; that filter caps get parsed and assigned to the right
18078 operation too; and that float parameters are correctly scaled to fit
18079 the reported range from the VA driver.
18081 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18084 * docs/reference/libs/libs-docs.xml.in:
18085 * docs/reference/libs/libs-sections.txt:
18086 * gst-libs/gst/vaapi/Makefile.am:
18087 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18088 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
18089 * gst-libs/gst/vaapi/gstvaapifilter.c:
18090 * gst-libs/gst/vaapi/gstvaapifilter.h:
18091 Add initial infrastructure for video processing.
18092 Add initial API for video processing: only scaling and color format
18093 conversion operations are supported.
18095 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18097 * gst-libs/gst/vaapi/video-format.c:
18098 * gst-libs/gst/vaapi/video-format.h:
18099 libs: add gst_vaapi_video_format_from_string() helper.
18100 Add gst_vaapi_video_format_from_string() helper function to convert from
18101 a video format string representation to a suitable GstVideoFormat. This
18102 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
18103 builds, and a proper iteration over all GstVideoFormat string representations
18104 otherwise for earlier GStreamer 0.10.x builds.
18106 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18108 * gst-libs/gst/vaapi/video-format.c:
18109 * gst-libs/gst/vaapi/video-format.h:
18110 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
18111 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
18112 VA fourcc value to a suitable GstVideoFormat.
18114 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18116 * gst-libs/gst/vaapi/gstvaapivalue.c:
18117 * gst-libs/gst/vaapi/gstvaapivalue.h:
18118 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
18119 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
18120 structures as a standard GType. This could be useful to have them
18121 described as a GValue later on.
18123 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18125 * docs/reference/libs/libs-docs.xml.in:
18126 * docs/reference/libs/libs-sections.txt:
18127 * gst-libs/gst/vaapi/Makefile.am:
18128 * gst-libs/gst/vaapi/gstvaapicontext.h:
18129 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
18130 libs: drop some public APIs.
18131 Don't expose GstVaapiContext APIs and make them totally private to
18132 libgstvaapi core library. That API would also tend to disappear in
18133 a future revision. Likewise, don't expose GstVaapiDisplayCache API
18134 but keep symbols visible so that the various render backends could
18135 share a common display cache implementation in libgstvaapi.
18136 Try to clean-up the documentation from any stale entry too.
18138 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18142 tests: image: allow creation of images with interleaved patterns.
18143 Add image_generate_full() function to create interleaved color rectangles.
18144 If flags is zero, the whole frame is generated with a unique pattern. If
18145 flags is non-zero, then each field is handled individually.
18147 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18150 tests: image: fix conversion from RGB to YUV.
18151 Fix RGB to YUV conversion to preserve full data range.
18153 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18156 tests: image: try to upload images through vaDeriveImage() too.
18157 On some platforms, vaPutImage() would fail even if it does not involve
18158 color format conversion or scaling, whereas copying raw pixels through
18159 vaDeriveImage() could work instead.
18161 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18164 tests: image: add support for packed YUV formats.
18165 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
18167 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18170 tests: image: fix generation of I420/YV12 images.
18171 U/V planes were reversed, thus producing invalid images.
18173 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18176 tests: image: fix string representation for GstVideoFormat.
18178 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18180 * docs/reference/libs/libs-sections.txt:
18181 * gst-libs/gst/vaapi/Makefile.am:
18182 * gst-libs/gst/vaapi/gstvaapiimage.c:
18183 * gst-libs/gst/vaapi/gstvaapiimage.h:
18184 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
18185 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18186 * gst-libs/gst/vaapi/gstvaapisurface.c:
18187 image: clean image API up.
18188 Don't expose functions that reference a GstVaapiImageRaw, those are
18189 meant to be internal only for implementing subpictures sync. Also add
18190 a few private definitions to avoid functions calls for retrieving
18191 image size and format information.
18193 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18195 * docs/reference/libs/libs-sections.txt:
18196 * gst-libs/gst/vaapi/gstvaapiimage.c:
18197 * gst-libs/gst/vaapi/gstvaapiimage.h:
18198 image: add gst_vaapi_image_copy() helper.
18199 Add gst_vaapi_image_copy() helper function to copy images of same format
18202 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18204 * gst/vaapi/gstvaapivideoconverter_x11.c:
18205 plugins: handle video cropping in X11 pixmap converter.
18206 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
18207 we could decode from the stream.
18209 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18211 * gst/vaapi/Makefile.am:
18212 * gst/vaapi/gstvaapivideobuffer.c:
18213 * gst/vaapi/gstvaapivideoconverter_glx.c:
18214 * gst/vaapi/gstvaapivideoconverter_x11.c:
18215 * gst/vaapi/gstvaapivideoconverter_x11.h:
18216 plugins: add support for "x11-pixmap" video converter type.
18217 Install a new video converter that supports X11 pixmap targets for X11
18218 backends only, or make the GLX converter creation function chain up to
18219 the X11 converter whenever requested.
18221 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18223 * tests/simple-decoder.c:
18224 tests: simple-decoder: add support for pixmap API.
18225 Add support for the new render-to-pixmap API. Avoid flickering on
18226 platforms supporting video overlay by keeping up to 2 intermediate
18229 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18231 * tests/simple-decoder.c:
18232 tests: simple-decoder: add support for video cropping.
18233 Handle video cropping information attached to a VA surface proxy.
18235 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18239 * tests/test-decode.c:
18240 tests: add support for render-to-pixmap.
18241 Add --pixmap option to test-decode so that to allow copies of VA
18242 surface to an intermediate pixmap and rendering from that pixmap.
18243 Only X11 backends are supported for now.
18245 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18248 * gst-libs/gst/vaapi/Makefile.am:
18249 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
18250 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
18251 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
18252 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
18253 x11: implement pixmap rendering with RENDER extension.
18254 Use hardware accelerated XRenderComposite() function, from the RENDER
18255 extension, to blit a pixmap to screen. Besides, this can also support
18256 cropping and scaling.
18258 2013-07-19 15:05:34 +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/gstvaapidisplay_x11.c:
18264 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
18265 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
18266 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
18267 x11: implement pixmap API.
18268 Implement the new render-to-pixmap API. The only supported pixmap format
18269 that will work is xRGB, with native byte ordering. Others might work but
18270 they were not tested.
18272 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18274 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
18275 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
18276 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
18277 x11: update x11_get_geometry() helper function with depth output.
18278 Allow x11_get_geometry() utility function to also return the depth
18279 assigned to the X drawable.
18281 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18283 * docs/reference/libs/libs-docs.xml.in:
18284 * docs/reference/libs/libs-sections.txt:
18285 * gst-libs/gst/vaapi/Makefile.am:
18286 * gst-libs/gst/vaapi/gstvaapipixmap.c:
18287 * gst-libs/gst/vaapi/gstvaapipixmap.h:
18288 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
18289 * gst-libs/gst/vaapi/gstvaapiwindow.c:
18290 * gst-libs/gst/vaapi/gstvaapiwindow.h:
18291 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
18292 Add initial Pixmap API.
18293 Add API to transfer VA urfaces to native pixmaps. Also add an API to
18294 render a native pixmap, for completeness. In general, rendering to
18295 pixmap would only be useful to certain VA drivers and use cases on
18296 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
18299 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18301 * docs/reference/libs/libs-sections.txt:
18302 * gst-libs/gst/vaapi/gstvaapiimage.c:
18303 * gst-libs/gst/vaapi/gstvaapisurface.c:
18304 * gst-libs/gst/vaapi/video-format.c:
18305 * gst-libs/gst/vaapi/video-format.h:
18306 libs: add and expose gst_vaapi_video_format_to_string() helper.
18307 This is just a wrapper over gst_video_format_to_string() for older
18308 GStreamer 0.10 builds.
18310 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
18312 * gst/vaapi/gstvaapipluginutil.c:
18313 plugins: fix display type comparison in gst_vaapi_create_display().
18314 After the code got moved to create the gst_vaapi_create_display() helper,
18315 this comparison was not updated to dereference the newly-created
18316 pointer, so the code was comparing the pointer itself to the type, and
18317 therefore failing to retrieve the VA display.
18318 This fixes the following error (and gets gst-vaapi decoding again):
18319 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
18320 https://bugzilla.gnome.org/show_bug.cgi?id=704410
18321 Signed-off-by: Emilio López <emilio@elopez.com.ar>
18323 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18326 Bump version for development.
18328 === release 0.5.5 ===
18330 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18332 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18333 mpeg2: don't output dummy pictures.
18334 Mark dummy pictures as output already so that we don't try to submit
18335 them to the upper layer since this is purely internal / temporary
18336 picture for helping the decoder.
18338 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18340 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
18341 decoder: dispose GstVideoCodecFrame earlier.
18342 Once the picture was output, it is no longer necessary to keep an extra
18343 reference to the underlying GstVideoCodecFrame. So, we can release it
18344 earlier, and maybe subsequently release the associate surface proxy
18347 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18353 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18355 * docs/reference/libs/libs-sections.txt:
18356 * gst-libs/gst/vaapi/Makefile.am:
18357 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18358 * gst-libs/gst/vaapi/gstvaapiimage.c:
18359 * gst-libs/gst/vaapi/gstvaapisurface.c:
18360 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
18361 * gst-libs/gst/vaapi/video-format.c:
18362 * gst-libs/gst/vaapi/video-format.h:
18363 * gst/vaapi/gstvaapidownload.c:
18364 * gst/vaapi/gstvaapiuploader.c:
18366 * tests/test-display.c:
18367 Fix new video format API.
18368 Fix new internal video format API, based on GstVideoFormat, to not
18369 clobber with system symbols. So replace the gst_video_format_* prefix
18370 with gst_vaapi_video_format_ prefix, even if the format type remains
18373 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18376 Bump library major version.
18377 Bump the library major version due to API/ABI changes that occurred in
18378 the imaging API. In particular, GstVaapiImageFormat type was replaced
18379 with the standard GstVideoFormat type. All dependent APIs were updated
18380 to match this change.
18382 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18387 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18389 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
18390 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
18391 decoder: fix memory leak when processing interlaced pictures.
18392 Fix memory leak when processing interlaced pictures and that occurs
18393 because the first field, represented as a GstVideoCodecFrame, never
18394 gets released. i.e. when the picture is completed, this is generally
18395 the case when the second field is successfully decoded, we need to
18396 propagate the GstVideoCodecFrame of the first field to the original
18397 GstVideoDecoder so that it could reclaim memory.
18398 Otherwise, we keep accumulating the first fields into GstVideoDecoder
18399 private frames list until the end-of-stream is reached. The frames
18400 are eventually released there, but too late, i.e. too much memory
18401 may have been consumed.
18402 https://bugzilla.gnome.org/show_bug.cgi?id=701257
18404 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18406 * gst/vaapi/gstvaapipluginutil.c:
18407 plugins: simlpify gst_vaapi_create_display() helper.
18408 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
18409 performs the necessary validation checks for the underlying VA display
18410 prior to returning to the caller. So, if an error occurred, then NULL is
18411 really returned in that case.
18413 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18415 * gst/vaapi/gstvaapipluginutil.c:
18416 plugins: add gst_vaapi_create_display() helper.
18417 https://bugzilla.gnome.org/show_bug.cgi?id=703235
18418 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18420 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18422 * gst/vaapi/gstvaapivideobufferpool.c:
18423 plugins: don't reallocate pool allocator for the same caps.
18424 If the video buffer pool config doesn't have new caps, then it's not
18425 necessary to reinstantiate the allocator. That could be a costly
18426 operation as we could do some extra heavy checking in there.
18428 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18430 * gst/vaapi/gstvaapivideomemory.c:
18431 plugins: fix ref counting of GstVaapiVideoMemory allocator.
18432 Fix reference counting issue whereby gst_memory_init() does not hold
18433 an extra reference to the GstAllocator. So, there could be situations
18434 where the last instance of GstVaapiVideoAllocator gets released before
18435 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
18437 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18439 * gst/vaapi/gstvaapiuploader.c:
18440 vaapiupload: use implicit color conversion to NV12.
18441 Always perform conversion of sources buffers to NV12 since this is
18442 the way we tested for this capability in ensure_allowed_caps(). This
18443 also saves memory bandwidth for further rendering. However, this may
18444 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
18446 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18448 * gst-libs/gst/vaapi/gstvaapivideopool.c:
18449 pool: fix deallocation of video pools.
18450 The queue of free objects to used was deallocated with g_queue_free_full().
18451 However, this convenience function shall only be used if the original queue
18452 was allocated with g_queue_new(). This caused memory corruption, eventually
18453 leading to a crash.
18454 The correct solution is to pair the g_queue_init() with the corresponding
18455 g_queue_clear(), while iterating over all free objects to deallocate them.
18457 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
18459 * gst/vaapi/gstvaapidownload.c:
18460 vaapidownload: fix src caps format error.
18461 This fixes direct linking of vaapidownload element to xvimagesink with
18462 VA drivers supporting vaGetImage() from the native VA surface format to
18463 a different VA image format. i.e. color conversion during download.
18464 http://bugzilla.gnome.org/show_bug.cgi?id=703937
18465 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18467 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18469 * gst/vaapi/gstvaapidownload.c:
18470 vaapidownload: fix debug string for image formats.
18471 The image is now expressed as a standard GstVideoFormat, which is not
18472 a FOURCC but rather a regular enum value.
18473 This is a regression introduced in commit 09397fa.
18475 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
18477 * gst-libs/gst/vaapi/gstvaapiimage.c:
18478 image: add support for raw YUY2/UYVY image copies.
18479 Implement raw image copies for YUY2 format. Add support for UYVY format
18480 too, with the same copy function as for YUY2. Even though components
18481 ordering differs, copying line strides is essentially the same.
18482 https://bugzilla.gnome.org/show_bug.cgi?id=703939
18483 https://bugzilla.gnome.org/show_bug.cgi?id=703940
18484 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18486 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18488 * gst/vaapi/gstvaapiuploader.c:
18489 plugins: clean-up video uploader helper.
18490 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
18491 were already negotiated beforehand, and they are not used from the
18492 buffer in upstream elements.
18493 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
18494 represented as a GstVideoInfo.
18496 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18498 * gst/vaapi/gstvaapiuploader.c:
18499 plugins: use GstVideoInfo in video uploader helper.
18501 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18503 * gst/vaapi/gstvaapivideomemory.c:
18504 plugins: allow creation of VA surfaces with explicit pixel format.
18505 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
18506 with an explicit pixel format. This allows for direct rendering to
18507 VA surface memory from a software decoder.
18509 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18511 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
18512 surface: fix surface pool creation with an explicit pixel format.
18513 Fix creation of surface pool objects to honour explicit pixel format
18514 specification. If this operation is not supported, then fallback to
18515 the older interface with chroma format.
18517 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18519 * gst-libs/gst/vaapi/gstvaapisurface.c:
18520 surface: try to determine the underlying VA surface format.
18521 If a VA surface was allocated with the chroma-format interface, try to
18522 determine the underlying pixel format on gst_vaapi_surface_get_format(),
18523 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
18525 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18527 * docs/reference/libs/libs-sections.txt:
18528 * gst-libs/gst/vaapi/gstvaapisurface.c:
18529 * gst-libs/gst/vaapi/gstvaapisurface.h:
18530 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
18531 surface: allow creation with explicit pixel format.
18532 Make it possible to create VA surfaces with a specific pixel format.
18533 This is a new capability brought in by VA-API >= 0.34.0. If that
18534 capability is not built-in (e.g. using VA-API < 0.34.0), then
18535 gst_vaapi_surface_new_with_format() will return NULL.
18537 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18539 * docs/reference/libs/libs-sections.txt:
18540 * gst-libs/gst/vaapi/video-format.c:
18541 * gst-libs/gst/vaapi/video-format.h:
18542 surface: add helper function to get chroma type from GstVideoFormat.
18543 Add gst_video_format_get_chroma_type() helper function to determine
18544 the GstVaapiChromaType from a standard GStreamer video format. It is
18545 possible to reconstruct that from GstVideoFormatInfo but it is much
18546 simpler (and faster?) to use the local GstVideoFormatMap table.
18548 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18550 * gst-libs/gst/vaapi/gstvaapisurface.c:
18551 * gst-libs/gst/vaapi/gstvaapisurface.h:
18552 * gst-libs/gst/vaapi/gstvaapiutils.c:
18553 * gst-libs/gst/vaapi/gstvaapiutils.h:
18554 surface: add new chroma formats.
18555 Add new chroma formats available with VA-API >= 0.34.0. In particular,
18556 this includes "RGB" chroma formats, and more YUV subsampled formats.
18557 Also add a new from_GstVaapiChromaType() helper function to convert
18558 libgstvaapi chroma type to VA chroma format.
18560 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18562 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
18563 pool: fix image pool to check for the video format to use.
18564 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
18565 image pool object, only if the underlying VA display does support the
18566 requested VA image format.
18568 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18570 * gst-libs/gst/vaapi/gstvaapicontext.c:
18571 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
18572 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
18573 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
18574 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
18575 * gst-libs/gst/vaapi/gstvaapivideopool.h:
18576 * gst/vaapi/gstvaapidownload.c:
18577 * gst/vaapi/gstvaapiuploader.c:
18578 * tests/Makefile.am:
18579 * tests/test-surfaces.c:
18580 Use GstVideoInfo for video pools.
18581 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
18582 structures instead. Those are smaller, and allows for streamlining
18585 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18587 * gst-libs/gst/vaapi/gstvaapiimage.c:
18588 * gst-libs/gst/vaapi/video-format.c:
18589 Add more video formats.
18590 Add new video format mappings to VA image formats:
18591 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
18592 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
18594 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18596 * gst-libs/gst/vaapi/gstvaapiimage.c:
18597 image: fix debug message with video format.
18598 Fix debug message string with image format expressed with GstVideoFormat
18599 instead of the obsolete format that turned out to be a fourcc.
18600 This is a regression from git commit e61c5fc.
18602 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18606 * tests/test-display.c:
18607 * tests/test-textures.c:
18608 * tests/test-windows.c:
18609 tests: port to new video format API.
18611 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18613 * gst/vaapi/gstvaapidownload.c:
18614 * gst/vaapi/gstvaapiuploader.c:
18615 * gst/vaapi/gstvaapivideomemory.c:
18616 plugins: port to new video format API.
18618 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18620 * gst-libs/gst/vaapi/gstvaapiimage.c:
18621 libs: use GstVideoInfo wherever possible.
18622 In particular, use gst_video_info_from_caps() helper function in VA image
18623 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
18624 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
18626 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18628 * docs/reference/libs/libs-docs.xml.in:
18629 * docs/reference/libs/libs-sections.txt:
18630 * gst-libs/gst/vaapi/Makefile.am:
18631 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
18632 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
18633 libs: drop GstVaapiImageFormat helpers.
18634 Drop GstVaapiImageFormat helpers since everything was moved to the new
18635 GstVideoFormat based API. Don't bother with backwards compatibility and
18636 just bump the library major version afterwards.
18638 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18640 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18641 * gst-libs/gst/vaapi/gstvaapidisplay.h:
18642 * gst-libs/gst/vaapi/gstvaapiimage.c:
18643 * gst-libs/gst/vaapi/gstvaapiimage.h:
18644 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
18645 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18646 libs: port to new video format API.
18648 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18650 * docs/reference/libs/libs-docs.xml.in:
18651 * docs/reference/libs/libs-sections.txt:
18652 * gst-libs/gst/vaapi/Makefile.am:
18653 * gst-libs/gst/vaapi/video-format.c:
18654 * gst-libs/gst/vaapi/video-format.h:
18655 Add new video format API.
18656 Leverage GstVideoFormat utilities from core GStreamer to provide an
18657 adaptation layer to VA image formats.
18659 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18664 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18666 * gst/vaapi/gstvaapisink.c:
18667 vaapisink: fix creation of GLX texture.
18668 Fix creation of GLX texture, to not depend on the GstCaps video size that
18669 could be wrong, especially in presence of frame cropping. So, use the size
18670 from the source VA surfaces.
18671 An optimization could be to reduce the texture size to the actual visible
18672 size on screen. i.e. scale down the texture size to match the screen dimensions,
18673 while preserving the VA surface aspect ratio. However, some VA drivers don't
18676 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18678 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18679 mpeg2: add support for video cropping.
18680 If the stream has a sequence_display_extenion, then attach the
18681 display_horizontal/display_vertical dimension as the cropping
18682 rectangle width/height to the GstVaapiPicture.
18683 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18685 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18687 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18688 vc1: add support for video cropping.
18689 If the Advanced profile has display_extension fields, then set the display
18690 width/height dimension as cropping rectangle to the GstVaapiPicture.
18691 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18693 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18695 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18696 h264: add support for video cropping.
18697 If the encoded stream has the frame_cropping_flag set, then associate
18698 the cropping rectangle to GstVaapiPicture.
18699 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18701 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18705 * tests/test-decode.c:
18706 * tests/test-subpicture.c:
18707 tests: add basic support for video cropping.
18708 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
18709 instead of a plain GstVaapiSurface. This means that we can now retrieve
18710 the frame cropping rectangle from the surface proxy, along with additional
18711 information if ever needed.
18713 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18715 * gst/vaapi/gstvaapidecode.c:
18716 * gst/vaapi/gstvaapisink.c:
18717 * gst/vaapi/gstvaapivideometa.c:
18718 plugins: add support for video cropping.
18719 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
18720 specific meta information to hold video cropping details. Make the sink
18721 support video cropping in X11 and GLX modes.
18723 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18725 * gst/vaapi/gstvaapivideometa.c:
18726 * gst/vaapi/gstvaapivideometa.h:
18727 plugins: add helper functions to set the render rectangle.
18728 Some video clips may have a clipping region that needs to propogate to
18729 the renderer. These helper functions make it possible to attach that
18730 clipping region, as a GstVaapiRectangle, the the video meta associated
18732 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18733 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18735 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18737 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
18738 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
18739 surfaceproxy: allow for NULL cropping rectangle.
18740 Make it possible associate an empty cropping rectangle to the surface
18741 proxy, thus resetting any cropping rectangle that was previously set.
18742 This allows for returning plain NULL when no cropping rectangle was
18743 initially set up to the surface proxy, or if it was reset to defaults.
18745 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18747 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
18748 surfaceproxy: clean-up helper macros.
18749 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
18750 proxy macro argument to a GstVaapiSurfaceProxy pointer.
18752 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18754 * gst-libs/gst/vaapi/gstvaapisurface.c:
18755 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
18756 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
18757 * gst-libs/gst/vaapi/gstvaapiwindow.c:
18758 surface: add simple surface info accessors as helper macros.
18759 Add helper macros to retrieve the VA surface information like size
18760 (width, height) or chroma type. This is a micro-optimization to avoid
18761 useless function calls and NULL pointer re-checks in internal routines.
18763 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18765 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
18766 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
18767 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
18768 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
18769 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
18770 decoder: add support for video cropping.
18771 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
18772 cropping information from raw bitstreams to each picture being decoded.
18773 Also add helper function to surface proxy to propagate that information
18774 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
18775 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18776 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18778 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18780 * ext/codecparsers:
18781 codecparsers: update to gst-vaapi-branch commit f90de0a.
18782 f90de0a h264: fix calculation of the frame cropping rectangle
18783 535515c h264: parse the cropping rectangle separately
18785 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18787 * ext/codecparsers:
18788 codecparsers: update to gst-vaapi-branch commit 0f68a71.
18789 0f68a71 mpeg2: fix video packet header size checks
18791 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
18793 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18794 mpeg2: reset quantization matrices on new sequence headers.
18795 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
18796 shall be reset to their default values when a Sequence_Header() is
18798 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18800 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18803 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18804 mpeg2: cope with latest codecparser changes.
18805 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
18806 used in individual header parsers. Also use the new slice parsing API.
18808 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18810 * ext/codecparsers:
18811 codecparsers: update to gst-vaapi-branch commit dddd182.
18812 dddd182 mpeg2: add slice header parsing API
18813 94e6228 mpeg2: add sequence scalable extension parsing API
18814 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
18815 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
18817 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18819 * gst/vaapi/gstvaapisink.c:
18820 vaapisink: expose the raw video formats in static caps template.
18821 Expose all raw video formats in the static caps template since the
18822 vaapisink is supporting raw data. We will get the exact set of formats
18823 supported by the driver dynamically through the _get_caps() routine.
18824 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
18825 https://bugzilla.gnome.org/show_bug.cgi?id=702178
18826 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18828 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18830 * gst/vaapi/gstvaapisink.c:
18831 * gst/vaapi/gstvaapisink.h:
18832 vaapisink: add "use-glx" property for OpenGL rendering.
18833 Now that VA/GLX capable buffers are generated by default on X11, thus
18834 depending on a VA/GLX display, we stil want to use vaPutSurface() for
18835 rendering since it is faster.
18836 Anyway, OpenGL rendering in vaapisink was only meant for testing and
18837 enabling "fancy" effects to play with. This has no real value. So,
18838 disable OpenGL rendering by default.
18840 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18842 * gst/vaapi/gstvaapipluginutil.c:
18843 plugins: try to allocate a GLX display first over an X11 one.
18844 If the gstreamer-vaapi plug-in elements are built with GLX support, then
18845 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
18847 https://bugzilla.gnome.org/show_bug.cgi?id=701742
18849 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
18852 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
18853 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
18854 https://bugzilla.gnome.org/show_bug.cgi?id=698858
18855 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18857 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
18859 * gst-libs/gst/vaapi/gstvaapiimage.c:
18860 image: fix wrong check for rect bounds in copy_image().
18862 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18865 Bump version for development.
18867 === release 0.5.4 ===
18869 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18875 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18880 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18883 * gst-libs/gst/codecparsers/Makefile.am:
18884 configure: always build the MPEG-4 parser.
18885 Always build the MPEG-4 parser for now as there are also core fixes
18886 included in the parser that cannot be tested for with API checks.
18888 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18891 configure: add --enable-builtin-codecparsers [default="yes"] option.
18892 Add flag to have all codecparsers built-in, thus ensuring that the
18893 resulting binaries have all the necessary bug fixes and this is what
18894 the QA has been testing anyway.
18895 Of course, for a completely up-to-date Linux distribution, you could
18896 also opt for --disable-builtin-codecparsers and use the system ones.
18897 Though, some core fixes could be missing, and those cannot be tested
18898 for with API checks.
18900 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18902 * ext/codecparsers:
18903 codecparsers: update to gst-vaapi-branch commit 843ce3e.
18904 843ce3e jpeg: fix default Huffman tables generation.
18905 8655187 mpeg2: fix the pixel-aspect-ratio calculation
18906 21099dc mpeg2: actually store video bitrate values
18907 dd02087 mpeg2: fix picture packet extension size check
18908 25948e9 mpeg2: increase min size for picture coding ext
18909 f1f5a40 ensure the debug category is properly initialized
18911 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18913 * debian.upstream/Makefile.am:
18914 debian: fix list of generated files for .deb packaging.
18916 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18919 * debian.upstream/Makefile.am:
18920 * debian.upstream/control.in:
18921 debian: fix libgstvaapi -dev package name.
18922 Fix libgstvaapi -dev package name so that to allow installation of both
18923 GStreamer 0.10 and 1.0.x based packages.
18925 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18930 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18932 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
18933 wayland: fix memory leak of display resources.
18935 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
18937 * gst/vaapi/gstvaapisink.c:
18938 vaapisink: fix build without VA/GLX support.
18940 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18942 * gst/vaapi/gstvaapivideomemory.c:
18943 * gst/vaapi/gstvaapivideomemory.h:
18944 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
18945 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
18946 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
18947 caller. This is the only sensible enough thing to do in this mode as
18948 the underlying surface pixels need to be extracted through an explicit
18949 call to the gst_video_frame_map() function instead.
18950 A possible use-case of this is to implement a "handoff" signal handler
18951 to fakesink or identity element for further processing.
18953 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18955 * gst/vaapi/gstvaapivideomemory.c:
18956 plugins: silence check for direct-rendering mode in video memory.
18957 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
18958 mode support, and not trigger fatal-criticals if either test surface or
18959 image could not be created. Typical case: pixel format mismatch, e.g. NV12
18960 supported by most hardware vs. I420 supported by most software decoders.
18962 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18964 * gst/vaapi/gstvaapivideomemory.c:
18965 plugins: improve video memory flags safety checks.
18966 On map, ensure we have GST_MAP_WRITE flags since this is only what we
18967 support for now. Likewise, on unmap, make sure that the VA image is
18968 unmapped for either read or write, while still committing it to the
18969 VA surface if write was requested.
18971 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18973 * gst-libs/gst/vaapi/gstvaapisurface.c:
18974 surface: fix memory leak through unreleased parent context.
18975 Break the circular references between GstVaapiContext and its children
18976 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
18977 context, which holds a reference to its VA surfaces, then none of those
18979 How does this impact support for subpictures?
18980 The only situation when the parent context needs to disappear is when
18981 it is replaced with another one because of a resolution change in the
18982 video stream for instance, or a normal destroy. In this case, it does
18983 not really matter to apply subpictures to the peer surfaces since they
18984 are either gone, or those that are left in the pipe can probably bear
18985 a reinstantiation of the subpictures for it.
18986 So, parent_context is set to NULL when the parent context is destroyed,
18987 other VA surfaces can still get subpictures attached to them, individually
18988 not as a whole. i.e. subpictures for surface S1 will be created from
18989 active composition buffers and associated to S1, subpictures for S2 will
18990 be created from the next active composition buffers, etc. We don't try
18991 to cache the subpictures in those cases (pending surfaces until EOS
18992 is reached, or pending surfaces until new surfaces matching new VA context
18993 get to be used instead).
18995 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18997 * gst/vaapi/gstvaapisink.c:
18998 vaapisink: fix one-time initialization when display property is set.
18999 Fix gst_vaapisink_ensure_display() to perform one-time initialization
19000 tasks even if the `display' property was explicitly set.
19002 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19004 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19005 window: fix GLX window initialization.
19006 Make sure to create the GLX context once the window object has completed
19007 its creation. Since gl_resize() relies on the newly created window size,
19008 then we cannot simply overload the GstVaapiWindowClass::create() hook.
19009 So, we just call into gst_vaapi_window_glx_ensure_context() once the
19010 window object is created in the gst_vaapi_window_glx_new*() functions.
19012 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19014 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19015 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19016 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19017 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19018 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19019 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19020 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19021 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19022 * gst-libs/gst/vaapi/gstvaapitexture.c:
19023 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19024 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19025 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19026 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19027 display: validate display types.
19029 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19031 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19032 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19033 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19034 display: drop internal NAME_PREFIX, store the real display name.
19035 Always store a valid display name/device path, instead of adding a
19036 particular prefix. i.e. make it simply a strdup(), or "" if it was
19039 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19041 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19042 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19043 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19044 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19045 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19046 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19047 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19048 display: make it possible to lookup the display cache by type.
19049 Make it possible to add extra an extra filter to most of display cache
19050 lookup functions so that the GstVaapiDisplay instance can really match
19051 a compatible and existing display by type, instead of relying on extra
19052 string tags (e.g. "X11:" prefix, etc.).
19054 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19056 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19057 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19058 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19059 display: cope with new display cache API.
19061 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19063 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19064 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19065 display: rework display cache API.
19066 Simplify display cache API, while making it more flexible. We can now create
19067 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
19069 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19071 * tests/test-display.c:
19072 tests: improve check for display cache.
19073 Improve check for display cache infrastructure. In particular, for X11 and
19074 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
19075 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
19076 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
19077 already exists will have to generate different VA displays.
19079 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
19081 * gst/vaapi/gstvaapiuploader.c:
19082 uploader: fix memory leak in GStreamer 0.10 builds.
19083 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
19084 but it exhibited a memory leak because the surface generated for the
19085 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
19086 possible to release that surface back to the parent pool when the meta
19087 gets released, and the memory consumption kept growing.
19088 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19090 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19092 * gst/vaapi/gstvaapivideometa.c:
19093 plugins: fix gst_vaapi_video_meta_new_from_pool().
19094 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
19095 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
19096 was hereby totally broken. Fixed this regression by using the newly
19097 provided gst_vaapi_video_pool_get_object_type() function.
19099 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19101 * gst/vaapi/gstvaapiuploader.c:
19102 * gst/vaapi/gstvaapivideomemory.c:
19103 * gst/vaapi/gstvaapivideometa.c:
19104 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
19106 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19109 tests: cope with GST_VAAPI_IS_xxx() macros removal.
19111 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19113 * docs/reference/libs/libs-sections.txt:
19114 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19115 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19116 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19117 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19118 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19119 libs: add query for GstVaapiVideoPool object types.
19120 Add API to identify the underlying GstVaapiVideoPool object type.
19122 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19124 * docs/reference/libs/libs-sections.txt:
19125 * gst-libs/gst/vaapi/gstvaapicontext.c:
19126 * gst-libs/gst/vaapi/gstvaapicontext.h:
19127 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19128 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19129 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19130 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19131 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19132 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
19133 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
19134 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19135 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
19136 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19137 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
19138 * gst-libs/gst/vaapi/gstvaapiimage.c:
19139 * gst-libs/gst/vaapi/gstvaapiimage.h:
19140 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19141 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19142 * gst-libs/gst/vaapi/gstvaapiobject.c:
19143 * gst-libs/gst/vaapi/gstvaapiobject.h:
19144 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
19145 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
19146 * gst-libs/gst/vaapi/gstvaapisurface.c:
19147 * gst-libs/gst/vaapi/gstvaapisurface.h:
19148 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19149 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19150 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19151 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19152 * gst-libs/gst/vaapi/gstvaapitexture.c:
19153 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19154 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19155 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19156 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19157 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
19158 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19159 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19160 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
19161 libs: drop GST_VAAPI_IS_xxx() helper macros.
19162 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
19163 deriving from GObject and so those were only checking for whether the
19164 argument was NULL or not. This is now irrelevant, and even confusing
19165 to some extent, because we no longer have type checking.
19166 Note: this incurs more type checking (review) but the libgstvaapi is
19167 rather small, so this is manageable.
19169 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19172 Bump library major version.
19173 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
19174 This is a fundamental change that requires a new SONAME. More changes are
19175 underway to streamline the core libraries.
19176 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
19177 On one particular test (sintel HD trailer), the total number of executed
19178 instruction was reduced by 8%.
19180 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19182 * docs/reference/libs/Makefile.am:
19183 * docs/reference/libs/libs-docs.xml.in:
19184 * docs/reference/libs/libs-sections.txt:
19185 * docs/reference/libs/libs.core.types:
19186 * docs/reference/libs/libs.glx.types:
19187 * docs/reference/libs/libs.x11.types:
19188 docs: cope with removed APIs.
19189 Some APIs are dead because they are no longer based on GObject.
19191 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19193 * gst/vaapi/gstvaapidecode.c:
19194 * gst/vaapi/gstvaapidownload.c:
19195 * gst/vaapi/gstvaapipluginutil.c:
19196 * gst/vaapi/gstvaapipostproc.c:
19197 * gst/vaapi/gstvaapisink.c:
19198 * gst/vaapi/gstvaapiupload.c:
19199 * gst/vaapi/gstvaapiuploader.c:
19200 * gst/vaapi/gstvaapivideobufferpool.c:
19201 * gst/vaapi/gstvaapivideoconverter_glx.c:
19202 * gst/vaapi/gstvaapivideomemory.c:
19203 * gst/vaapi/gstvaapivideometa.c:
19204 plugins: cope with new GstVaapiMiniObject objects.
19206 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19211 * tests/simple-decoder.c:
19212 * tests/test-decode.c:
19213 * tests/test-display.c:
19214 * tests/test-subpicture.c:
19215 * tests/test-surfaces.c:
19216 * tests/test-textures.c:
19217 * tests/test-windows.c:
19218 tests: cope with new GstVaapiMiniObject objects.
19220 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19222 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19223 display: fix set_synchronous() to lock display.
19225 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19227 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19228 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19229 videopool: simplify creation of video objects pool.
19231 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19233 * gst-libs/gst/vaapi/gstvaapiobject.c:
19234 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19235 * gst-libs/gst/vaapi/gstvaapitypes.h:
19236 libs: simplify GstVaapiID definitions.
19237 Make GstVaapiID a gsize instead of guessing an underlying integer large
19238 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
19239 this is plain zero and that it is no longer passed as varargs.
19241 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19243 * gst-libs/gst/vaapi/Makefile.am:
19244 * gst-libs/gst/vaapi/gstvaapi_priv.h:
19245 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
19246 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
19247 * gst-libs/gst/vaapi/gstvaapivalue.c:
19248 * gst-libs/gst/vaapi/gstvaapivalue.h:
19249 libs: drop obsolete function helpers and objects.
19250 Drop obsolete GstVaapiID related function helpers for passing them as
19253 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19255 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19256 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19257 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19258 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19259 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
19260 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19261 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19262 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
19263 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19264 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19265 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19266 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
19267 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19268 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19269 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
19270 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19271 * gst-libs/gst/vaapi/gstvaapiobject.c:
19272 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19273 libs: use GstVaapiMiniObject for display objects.
19275 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19277 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
19278 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19279 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19280 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19281 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
19282 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19283 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
19284 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
19285 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
19286 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19287 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
19288 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19289 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19290 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19291 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
19292 libs: use GstVaapiMiniObject for video decoders.
19293 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
19294 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
19295 helper function to let the user add a callback to a function triggered
19296 whenever the codec state (e.g. caps) changes.
19298 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19300 * docs/reference/libs/libs-sections.txt:
19301 * gst-libs/gst/vaapi/Makefile.am:
19302 * gst-libs/gst/vaapi/gstvaapicontext.c:
19303 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19304 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19305 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19306 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19307 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19308 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19309 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19310 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19311 libs: use GstVaapiMiniObject for video object pools.
19312 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
19313 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
19314 no longer used for a long time. Make object allocators static, i.e.
19315 local to the shared library.
19317 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19319 * gst-libs/gst/vaapi/gstvaapitexture.c:
19320 * gst-libs/gst/vaapi/gstvaapitexture.h:
19321 libs: use GstVaapiObject for texture objects.
19323 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19325 * gst-libs/gst/vaapi/Makefile.am:
19326 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19327 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19328 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19329 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
19330 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19331 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
19332 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19333 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19334 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
19335 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19336 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
19337 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19338 libs: use GstVaapiObject for window objects.
19340 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19342 * gst-libs/gst/vaapi/gstvaapicontext.c:
19343 * gst-libs/gst/vaapi/gstvaapicontext.h:
19344 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19345 * gst-libs/gst/vaapi/gstvaapiimage.c:
19346 * gst-libs/gst/vaapi/gstvaapiimage.h:
19347 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
19348 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
19349 * gst-libs/gst/vaapi/gstvaapisurface.c:
19350 * gst-libs/gst/vaapi/gstvaapisurface.h:
19351 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19352 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19353 libs: use GstVaapiObject for VA objects.
19355 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19357 * gst-libs/gst/vaapi/Makefile.am:
19358 * gst-libs/gst/vaapi/gstvaapiobject.c:
19359 * gst-libs/gst/vaapi/gstvaapiobject.h:
19360 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19361 Port GstVaapiObject to GstVaapiMiniObject.
19363 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19365 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
19366 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
19367 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19368 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
19369 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19370 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19371 libs: refine GstVaapiMiniObject.
19372 Drop support for user-defined data since this capability was not used
19373 so far and GstVaapiMiniObject represents the smallest reference counted
19374 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
19375 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
19376 is also possible to further simplify the layout of the object. i.e. merge
19377 GstVaapiMiniObjectBase into GstVaapiMiniObject.
19379 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19381 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19382 decoder: update picture size from the bitstream.
19383 Propagate the picture size from the bitstream to the GstVaapiDecoder,
19384 and subsequent user who installed a signal on notify::caps. This fixes
19385 decoding of TS streams when the demuxer failed to extract the required
19388 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19390 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19391 decoder: fix raw decoding mode.
19392 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
19393 surface proxy to the caller.
19395 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19397 * docs/reference/libs/libs-sections.txt:
19398 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19399 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19400 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19401 * gst/vaapi/gstvaapidecode.c:
19402 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
19403 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
19404 wait for a frame to be decoded, until the specified timeout in microseconds,
19405 prior to returning to the caller.
19406 This is a fix to performance regression from 851cc0, whereby the vaapidecode
19407 loop executed on the srcpad task was called to often, thus starving all CPU
19410 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19413 Bump version for development.
19415 === release 0.5.3 ===
19417 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19423 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19428 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19430 * gst/vaapi/gstvaapidecode.c:
19431 vaapidecode: rework heuristics to detect decode timeout.
19432 Rework heuristics to detect when downstream element ran into errors,
19433 and thus failing to release any VA surface in due time for the current
19434 frame to get decoded. In particular, recalibrate the render time base
19435 when the first frame gets submitted downstream, or when there is no
19436 timestamp that could be inferred.
19438 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19440 * gst-libs/gst/vaapi/gstcompat.h:
19441 * gst/vaapi/gstvaapidecode.c:
19442 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
19443 Rework GstVideoDecoder::handle_frame() to decode the current frame,
19444 while possibly waiting for a free surface, and separately submit all
19445 decoded frames from a task. This makes it possible to pop and render
19446 decoded frames as soon as possible.
19448 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19450 * gst/vaapi/gstvaapidecode.c:
19451 * gst/vaapi/gstvaapidownload.c:
19452 * gst/vaapi/gstvaapisink.c:
19453 * gst/vaapi/gstvaapiupload.c:
19454 plugins: use gst_object_unref() wherever applicable.
19455 Use gst_object_unref() wherever applicable, e.g. objects derived from
19456 GstElement, GstVideoPool, etc.
19458 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19460 * docs/reference/plugins/plugins-docs.xml.in:
19461 * docs/reference/plugins/plugins-sections.txt:
19462 * docs/reference/plugins/plugins.types:
19463 docs: drop obsolete plug-ins.
19464 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
19465 i.e. vaapiupload and vaapidownload are no longer the recommended
19468 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19470 * debian.upstream/rules:
19471 debian: fix build of GStreamer 0.10 packages.
19472 Fix build of Debian packages to scan the actual GStreamer API version
19473 from the generated changelog file.
19475 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19477 * gst/vaapi/gstvaapipostproc.c:
19478 vaapipostproc: minor clean-ups.
19479 Use g_clear_object() wherever appropriate and remove dead-code.
19481 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19483 * gst/vaapi/gstvaapipostproc.c:
19484 vaapipostproc: fix reference counting buf for passthrough mode.
19485 Fix reference counting bug for passthrough mode, whereby the input buffer
19486 was propagated as is downstream through gst_pad_push() without increasing
19487 its reference count before. The was a problem when gst_pad_push() returns
19488 an error and we further decrease the reference count of the input buffer.
19490 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19492 * gst-libs/gst/vaapi/gstcompat.h:
19493 * gst/vaapi/Makefile.am:
19494 * gst/vaapi/gstvaapi.c:
19495 * gst/vaapi/gstvaapidecode.c:
19496 * gst/vaapi/gstvaapipluginutil.h:
19497 * gst/vaapi/gstvaapipostproc.c:
19498 vaapipostproc: port to GStreamer 1.0.
19499 Add support for interlaced streams with GStreamer 1.0 too. Basically,
19500 this enables vaapipostproc, though it is not auto-plugged yet. We also
19501 make sure to reply to CAPS queries, and happily handle CAPS events.
19503 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19505 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19506 decoder: fix GstVideoCodecFrame flags for interlaced contents.
19507 Fix support for interlaced contents with GStreamer 0.10. In particular,
19508 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
19510 This is a regression from commit 87e5717.
19512 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19514 * gst-libs/gst/vaapi/Makefile.am:
19515 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19516 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19517 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
19518 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
19519 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
19520 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
19521 structure was only useful to parsing and a proper GstvaapiDecoderFrame
19522 instance will be created instead.
19524 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19526 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19527 decoder: export presentation timestamp for raw decoding mode.
19528 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
19529 held any information about the expected presentation timestamp, frame
19530 duration or additional flags like interlaced or top-field-first.
19532 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19534 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19535 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19536 decoder: use new GstVaapiSurfaceProxy utility functions.
19537 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
19538 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
19539 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
19540 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
19541 than gst_vaapi_picture_output().
19543 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19545 * docs/reference/libs/libs-sections.txt:
19546 * gst-libs/gst/vaapi/Makefile.am:
19547 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19548 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19549 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19550 surfaceproxy: add more attributes for raw decoding modes.
19551 Add more attributes for raw decoding modes, i.e. directly through the
19552 libgstvaapi helper library. In particular, add presentation timestamp,
19553 duration and a couple of flags (interlaced, TFF, RFF, one-field).
19555 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19557 * docs/reference/libs/libs-sections.txt:
19558 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19559 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19560 * gst/vaapi/gstvaapidecode.c:
19561 * tests/simple-decoder.c:
19562 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
19563 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
19564 to call some user-provided function when the surface proxy is released.
19566 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19569 * gst-libs/gst/vaapi/Makefile.am:
19570 build: link libgstvaapi-glx-1.0.so against libdl.
19571 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
19572 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
19574 https://bugzilla.gnome.org/show_bug.cgi?id=698046
19575 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19577 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19579 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19580 decoder: fix gst_vaapi_decoder_get_codec_state().
19581 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
19582 supposed to make GstVaapiDecoder own the return GstVideoCodecState
19583 object. Only comment was updated, not the actual code.
19585 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19587 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19588 * gst/vaapi/gstvaapidecode.c:
19589 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
19590 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
19591 i.e. make the GstVaapiDecoder object own the return state so that callers
19592 that want an extra reference to it would just gst_video_codec_state_ref()
19593 it before usage. This aligns the behaviour with what we had before with
19594 gst_vaapi_decoder_get_caps().
19595 This is an ABI incompatible change, library major version was bumped from
19596 previous release (0.5.2).
19598 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19600 * gst/vaapi/gstvaapivideobufferpool.h:
19601 * gst/vaapi/gstvaapivideoconverter_glx.h:
19602 plugins: mark a few more functions as internal.
19603 Mark the following functions are internal, i.e. private to the vaapi plug-in:
19604 - gst_vaapi_video_buffer_pool_get_type()
19605 - gst_vaapi_video_converter_glx_get_type()
19606 - gst_vaapi_video_converter_glx_new()
19608 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19610 * gst/vaapi/gstvaapivideobuffer.c:
19611 plugins: implement GstSurfaceMeta API.
19612 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
19613 an unstable/deprecated API, this makes it possible to support Clutter
19614 sink with minimal changes. Tested against clutter-gst 1.9.92.
19616 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19618 * gst/vaapi/gstvaapisink.c:
19619 vaapisink: optimize GstVideoOverlayInterface::expose().
19620 When render-mode is "overlay", then it is not really useful to peek into
19621 the GstBaseSink::last_buffer, since we have our own video_buffer already
19622 recorded and maintained into GstVaapiSink.
19624 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19626 * gst/vaapi/gstvaapisink.c:
19627 vaapisink: fix memory leak of GstSample objects.
19628 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
19629 This also fixes extra unreferencing of the underlying GstBuffer in the common
19630 path afterwards (for both 0.10 or 1.0).
19632 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19634 * gst-libs/gst/vaapi/gstcompat.h:
19635 * gst/vaapi/gstvaapi.c:
19636 plugins: fix description for gst-inspect.
19637 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
19638 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
19639 incorrectly uses #name for creating the plug-in name, instead of using macro
19640 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
19642 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19646 Update build requirements for GStreamer 1.0.x support. Add section for
19647 ways to report bugs.
19649 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19654 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19656 * gst-libs/gst/vaapi/Makefile.am:
19657 * gst/vaapi/Makefile.am:
19658 Fix make dist to include all source files, in any case.
19659 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
19660 sure to include all source files in either case while generating source
19663 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19666 Bump library major version.
19667 Bump library major version, while preserving a major version of 0 for
19668 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
19669 0.10 based librarieS.
19671 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19673 * gst/vaapi/gstvaapivideomemory.c:
19674 * gst/vaapi/gstvaapivideomemory.h:
19675 plugins: implement direct-rendering mode for raw YUV buffer uploads.
19676 Allow direct-rendering (writes) into target VA surfaces.
19678 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19680 * gst/vaapi/gstvaapivideobufferpool.c:
19681 * gst/vaapi/gstvaapivideomemory.c:
19682 * gst/vaapi/gstvaapivideomemory.h:
19683 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
19684 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
19685 the last component is unmapped. Downloads are not supported yet. The aim
19686 was to first support SW decoding + HW accelerated rendering (vaapisink).
19689 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19691 * gst/vaapi/gstvaapidecode.c:
19692 vaapidecode: submit all decoded frames before decoding a new one.
19693 Make sure to purge all pending frames that were already decoded prior
19694 to decoding a new one. This helps release VA surfaces as early as
19697 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19699 * gst/vaapi/gstvaapidecode.c:
19700 vaapidecode: reply to CAPS queries.
19701 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
19702 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
19703 This fixes fallback to SW decoding if no HW decoder is available.
19705 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19707 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19708 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19709 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19710 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
19711 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19712 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19713 decoder: fix unpaired GstBuffer map/unmaps.
19714 This possibly fixes a few memory leaks along the way.
19716 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19719 * gst-libs/gst/vaapi/gstcompat.h:
19720 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
19721 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19722 * gst/vaapi/Makefile.am:
19723 * gst/vaapi/gstvaapi.c:
19724 * gst/vaapi/gstvaapidecode.c:
19725 * gst/vaapi/gstvaapisink.c:
19726 * gst/vaapi/gstvaapisink.h:
19727 * gst/vaapi/gstvaapiuploader.c:
19729 Allow build against either GStreamer API (0.10 or 1.0).
19730 Introduce a new configure option --with-gstreamer-api that determines
19731 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
19732 Also integrate more compatibility glue into gstcompat.h and plugins.
19734 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19736 * gst/vaapi/gstvaapidecode.c:
19737 * gst/vaapi/gstvaapisink.c:
19738 * gst/vaapi/gstvaapisink.h:
19739 plugins: use new video buffer pools.
19740 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
19741 GstBaseSink::propose_allocation() to expose that pool to upstream
19742 elements; and also implement GstVideoDecoder::decide_allocation() to
19743 actually use that pool (from downstream), if any, or create one.
19744 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19746 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19748 * gst/vaapi/Makefile.am:
19749 * gst/vaapi/gstvaapivideobufferpool.c:
19750 * gst/vaapi/gstvaapivideobufferpool.h:
19751 * gst/vaapi/gstvaapivideomemory.c:
19752 * gst/vaapi/gstvaapivideomemory.h:
19753 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
19754 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
19755 object currently holds a reference to GstVaapiVideoMeta.
19756 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19758 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19760 * gst/vaapi/gstvaapivideometa.c:
19761 * gst/vaapi/gstvaapivideometa.h:
19762 plugins: allow copies of GstVaapiVideoMeta objects.
19763 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
19764 objects created from GstVaapiVideoPool. This is mostly useful to clone a
19765 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
19768 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19770 * gst/vaapi/gstvaapivideometa.c:
19771 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
19772 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
19773 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
19774 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
19777 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19779 * gst/vaapi/Makefile.am:
19780 * gst/vaapi/gstvaapi.c:
19781 * gst/vaapi/gstvaapidecode.c:
19782 * gst/vaapi/gstvaapidownload.c:
19783 * gst/vaapi/gstvaapipluginutil.c:
19784 * gst/vaapi/gstvaapipostproc.c:
19785 * gst/vaapi/gstvaapisink.c:
19786 * gst/vaapi/gstvaapiupload.c:
19787 * gst/vaapi/gstvaapiuploader.c:
19788 * gst/vaapi/gstvaapivideobuffer.c:
19789 * gst/vaapi/gstvaapivideoconverter_glx.c:
19790 * gst/vaapi/gstvaapivideometa.c:
19791 * gst/vaapi/gstvaapivideometa.h:
19792 plugins: initial port to GStreamer 1.0.
19793 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
19794 is rather minimalistic so that to test the basic functionality.
19795 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
19796 needs polishing wrt. to GStreamer 1.x functionality and the former are
19797 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
19798 which are yet to be implemented.
19799 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19801 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19803 * gst-libs/gst/vaapi/gstcompat.h:
19806 * tests/simple-decoder.c:
19807 * tests/test-subpicture.c:
19808 tests: add support for GStreamer 1.0.
19810 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19813 * gst-libs/gst/vaapi/gstcompat.h:
19814 * gst-libs/gst/vaapi/gstvaapicontext.c:
19815 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19816 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19817 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19818 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
19819 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19820 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19821 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19822 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19823 * gst-libs/gst/vaapi/gstvaapiimage.c:
19824 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
19825 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19826 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
19827 * gst-libs/gst/vaapi/gstvaapisurface.h:
19828 Add initial support for GStreamer 1.0.
19829 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
19830 core decoding library. The changes are kept rather minimal here so that
19831 the library retains as little dependency as possible on core GStreamer
19833 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19835 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19837 * gst/vaapi/gstvaapisink.c:
19838 vaapisink: improve check for raw YUV format mode.
19839 Improve check for raw YUV format modes by avoiding checks against strings
19840 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
19841 GstBaseSink::set_caps() is called first and if VA surface format mode is
19842 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
19843 called before set_caps(), then we just make a full check. This one is
19844 pretty rare though, e.g. it usually happens once for custom pipelines.
19846 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19848 * gst/vaapi/gstvaapipluginutil.c:
19849 plugins: don't fail if there is no overlay composition to apply.
19850 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
19851 was found. i.e. return success (TRUE). This was harmless though extra
19852 debug messages are not nice.
19853 This is a regression introduced by commit 95b8659.
19855 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19857 * gst/vaapi/gstvaapidecode.c:
19858 * gst/vaapi/gstvaapidecode.h:
19859 vaapidecode: expose the exact set of supported HW decoders.
19860 Don't return static caps that don't mean anything for the underlying codecs
19861 that are actually supported for decoding. i.e. always allocate a VA display
19862 and retrieve the exact set of HW decoders available. That VA display may be
19863 re-used later on during negotiation through GstVideoContext "prepare-context".
19864 This fixes fallback to SW decoding if no HW decoder is available.
19866 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19868 * docs/reference/libs/libs-sections.txt:
19869 * gst-libs/gst/vaapi/gstvaapicontext.c:
19870 * gst-libs/gst/vaapi/gstvaapicontext.h:
19871 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19872 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19873 decoder: drop obsolete functions.
19874 Drop the following functions that are now obsolete:
19875 - gst_vaapi_context_get_surface()
19876 - gst_vaapi_context_put_surface()
19877 - gst_vaapi_context_find_surface_by_id()
19878 - gst_vaapi_surface_proxy_new()
19879 - gst_vaapi_surface_proxy_get_context()
19880 - gst_vaapi_surface_proxy_set_context()
19881 - gst_vaapi_surface_proxy_set_surface()
19882 This is an API change.
19884 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19886 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19887 decoder: delegate surface size check to VA context reset.
19888 Now that the surface pool is reference counted in the surface proxy wrapper,
19889 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
19890 Besides, this check is already performed in gst_vaapi_context_reset_full().
19892 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19894 * docs/reference/libs/libs-sections.txt:
19895 * gst-libs/gst/vaapi/gstvaapicontext.c:
19896 * gst-libs/gst/vaapi/gstvaapicontext.h:
19897 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19898 * gst-libs/gst/vaapi/gstvaapisurface.h:
19899 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19900 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19901 decoder: simplify acquisition/release of spare surface.
19902 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
19903 proxy from the context surface pool. This change also makes sure to retain
19904 the parent surface pool in the proxy.
19905 Besides, it was also totally useless to attach/detach parent context to
19906 VA surface each time we acquire/release it. Since the whole context owns
19907 all associated VA surfaces, we can mark this as such only once and for all.
19909 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19912 Bump version for development.
19914 === release 0.5.2 ===
19916 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19922 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19927 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19929 * gst/vaapi/gstvaapipluginutil.c:
19930 * gst/vaapi/gstvaapisink.c:
19931 plugins: fix usage of gst_vaapi_reply_to_query().
19932 Make gst_vaapi_reply_to_query() first check whether the query argument
19933 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
19934 Then, make sure vaapisink propagates the query to the parent class if
19935 it is not a video-context query.
19937 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19939 * gst/vaapi/gstvaapivideobuffer.c:
19940 * gst/vaapi/gstvaapivideobuffer.h:
19941 plugins: streamline video buffers.
19942 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
19943 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
19944 gst_vaapi_video_buffer_get_meta().
19946 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19948 * docs/reference/libs/libs-sections.txt:
19949 * gst-libs/gst/vaapi/Makefile.am:
19950 * gst/vaapi/Makefile.am:
19951 * gst/vaapi/gstvaapidecode.c:
19952 * gst/vaapi/gstvaapidownload.c:
19953 * gst/vaapi/gstvaapipostproc.c:
19954 * gst/vaapi/gstvaapisink.c:
19955 * gst/vaapi/gstvaapiupload.c:
19956 * gst/vaapi/gstvaapiuploader.c:
19957 * gst/vaapi/gstvaapivideobuffer.h:
19958 * gst/vaapi/gstvaapivideoconverter_glx.c:
19959 * gst/vaapi/gstvaapivideometa.c:
19960 * gst/vaapi/gstvaapivideometa.h:
19961 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
19962 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
19963 actual plugin elements. That's only useful there. Also inline reference
19964 counting code from GstVaapiMiniObject.
19966 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19968 * gst/vaapi/Makefile.am:
19969 * gst/vaapi/gstvaapidecode.c:
19970 * gst/vaapi/gstvaapidownload.c:
19971 * gst/vaapi/gstvaapipluginbuffer.c:
19972 * gst/vaapi/gstvaapipluginbuffer.h:
19973 * gst/vaapi/gstvaapipostproc.c:
19974 * gst/vaapi/gstvaapiupload.c:
19975 * gst/vaapi/gstvaapiuploader.c:
19976 * gst/vaapi/gstvaapivideobuffer.c:
19977 * gst/vaapi/gstvaapivideobuffer.h:
19978 plugins: drop gstvaapipluginbuffer.[ch] helper files.
19979 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
19980 to gstvaapivideobuffer.[ch], and drop the obsolete files.
19982 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19984 * docs/reference/libs/libs-sections.txt:
19985 * docs/reference/libs/libs.core.types:
19986 * gst-libs/gst/vaapi/Makefile.am:
19987 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
19988 * gst/vaapi/Makefile.am:
19989 * gst/vaapi/gstvaapidownload.h:
19990 * gst/vaapi/gstvaapipluginbuffer.c:
19991 * gst/vaapi/gstvaapipostproc.h:
19992 * gst/vaapi/gstvaapivideobuffer.c:
19993 * gst/vaapi/gstvaapivideobuffer.h:
19994 * gst/vaapi/gstvaapivideoconverter_glx.h:
19995 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
19996 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
19997 actual plugin elements. That's only useful there.
19999 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20001 * gst/vaapi/gstvaapipluginutil.c:
20002 * gst/vaapi/gstvaapipluginutil.h:
20003 * gst/vaapi/gstvaapisink.c:
20004 * gst/vaapi/gstvaapivideoconverter_glx.c:
20005 plugins: use common helper function to apply compositions.
20006 Use common gst_vaapi_apply_composition() helper function to apply compositions
20007 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
20009 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20011 * gst-libs/gst/vaapi/Makefile.am:
20012 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
20013 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
20014 * gst/vaapi/Makefile.am:
20015 * gst/vaapi/gstvaapipluginbuffer.c:
20016 * gst/vaapi/gstvaapivideoconverter_glx.c:
20017 * gst/vaapi/gstvaapivideoconverter_glx.h:
20018 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
20019 Make sure libgstvaapi core decoding library doesn't include un-needed
20020 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
20021 Besides, even if the vaapisink element is not used, we are bound to have
20022 a correctly populated GstSurfaceBuffer from vaapidecode.
20023 Also clean-up the file along the way.
20025 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20027 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20028 vc1: fix use of possibly uninitialized variable.
20029 In decode_codec_data(), force initialization of format to zero so that
20030 we can catch up cases where codec-data has neither "format" nor "wmvversion"
20031 fields, thus making it possible to gracefully fail in this case.
20033 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20035 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
20036 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
20038 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20040 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20041 * gst-libs/gst/vaapi/gstvaapidecoder.h:
20042 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20043 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20044 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
20045 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20046 decoder: sanitize codec-data decoding.
20047 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
20048 codec-data in the decoder sub-class. Provide a common shared helper
20049 function to do the actual work and delegating further to the sub-class.
20051 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20053 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
20054 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20055 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
20056 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
20057 decoder: get rid of GstVaapiDecoderUnit::buffer field.
20058 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
20059 useless nowadays as creating sub-buffers doesn't bring any value. It
20060 actually means more memory allocations. We can't do without that in
20061 JPEG and MPEG-4:2 decoders.
20063 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20065 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20066 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
20067 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20068 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20069 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20070 decoder: sanitize uses of codec frame input buffer (cosmetics).
20071 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
20074 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20076 * gst/vaapi/gstvaapisink.c:
20077 vaapisink: add helper function to apply a composition buffer.
20078 Simplify application of a composition buffer to a GstVaapiSurface, and
20079 all its peers, until that function is eventually promoted to libgstvaapi.
20081 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20083 * gst/vaapi/gstvaapisink.c:
20084 vaapisink: fix support for raw YUV buffers.
20085 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
20086 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
20087 However, we previously assumed in that case that it was a "native" VA buffer,
20088 thus not calling into GstVaapiUploader::process().
20090 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20092 * gst-libs/gst/vaapi/gstcompat.h:
20093 * gst/vaapi/gstvaapidecode.c:
20094 * gst/vaapi/gstvaapidownload.c:
20095 * gst/vaapi/gstvaapipostproc.c:
20096 * gst/vaapi/gstvaapisink.c:
20097 * gst/vaapi/gstvaapiupload.c:
20098 plugins: use modern GstElement metadata information.
20099 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
20100 basically is the same as gst_element_class_set_details_simple() in
20101 GStreamer 0.10 context.
20103 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20105 * gst/vaapi/gstvaapidecode.c:
20106 * gst/vaapi/gstvaapidownload.c:
20107 * gst/vaapi/gstvaapipostproc.c:
20108 * gst/vaapi/gstvaapisink.c:
20109 * gst/vaapi/gstvaapiupload.c:
20110 plugins: move up interfaces (cosmetics).
20111 Move GstImplementsInterface and GstVideoContext support functions up
20112 so that to keep a clear separation between the plugin element and its
20115 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20117 * gst/vaapi/gstvaapisink.c:
20118 * gst/vaapi/gstvaapiuploader.c:
20119 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
20120 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
20121 Also use the newly added gst_vaapi_image_format_from_structure() helper
20122 in GstVaapiUploader::ensure_allowed_caps().
20124 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20126 * gst/vaapi/gstvaapipluginbuffer.c:
20127 plugins: fix creation of video buffer from another source buffer.
20128 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
20129 buffer video meta since it would be unreference'd from the get_buffer()
20130 helper function. For other cases, we still use (steal) the newly created
20133 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20135 * gst/vaapi/gstvaapipluginbuffer.c:
20136 * gst/vaapi/gstvaapipluginutil.c:
20137 plugins: include "sysdeps.h" header instead of "config.h".
20139 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20141 * gst-libs/gst/vaapi/gstcompat.h:
20143 tests: modernize GstTypeFind functions.
20144 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
20145 exactly correspond to the expected behaviour.
20147 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20151 * tests/test-decode.c:
20152 * tests/test-display.c:
20153 * tests/test-h264.c:
20154 * tests/test-h264.h:
20155 * tests/test-jpeg.c:
20156 * tests/test-jpeg.h:
20157 * tests/test-mpeg2.c:
20158 * tests/test-mpeg2.h:
20159 * tests/test-mpeg4.c:
20160 * tests/test-mpeg4.h:
20161 * tests/test-textures.c:
20162 * tests/test-vc1.c:
20163 * tests/test-vc1.h:
20164 * tests/test-windows.c:
20165 tests: fix license templates.
20167 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20169 * tests/test-display.c:
20170 tests: use gst_vaapi_image_format_from_structure() in test-display.
20171 Use gst_vaapi_image_format_from_structure() helper in test-display and
20172 then extract a VAImageFormat from it instead of relying on GstCaps for
20173 YUV and RGB formats.
20175 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20180 * tests/test-decode.c:
20181 * tests/test-display.c:
20182 * tests/test-subpicture.c:
20183 * tests/test-textures.c:
20184 * tests/test-windows.c:
20185 tests: include "sysdeps.h" header instead of "config.h".
20187 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20189 * gst-libs/gst/vaapi/gstcompat.h:
20190 * gst-libs/gst/vaapi/gstvaapicontext.c:
20191 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
20192 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
20193 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
20194 function with GStreamer 0.10 compatible semantics, or that tries to
20195 approach the current meaning. Basically, this is also just about moving
20196 the helper to gstcompat.h.
20198 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20200 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
20201 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
20202 image: add gst_vaapi_image_format_from_structure() helper.
20203 Add helper function to convert video formats from a GstStructure to a
20204 plain GstVaapiImageFormat.
20206 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20208 * gst-libs/gst/vaapi/Makefile.am:
20209 * gst-libs/gst/vaapi/gstcompat.h:
20210 * gst-libs/gst/vaapi/sysdeps.h:
20211 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
20213 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20215 * gst-libs/gst/vaapi/sysdeps.h:
20216 sysdeps: add more standard includes by default.
20218 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20221 configure: improve GStreamer API version checks.
20223 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20226 * debian.upstream/Makefile.am:
20227 * debian.upstream/changelog.in:
20228 * debian.upstream/control.in:
20229 * debian.upstream/gstreamer-vaapi-doc.install.in:
20230 * debian.upstream/libgstvaapi-dev.install.in:
20231 * debian.upstream/libgstvaapi-drm.install.in:
20232 * debian.upstream/libgstvaapi-glx.install.in:
20233 * debian.upstream/libgstvaapi-wayland.install.in:
20234 * debian.upstream/libgstvaapi-x11.install.in:
20235 * debian.upstream/libgstvaapi.install.in:
20236 * docs/reference/libs/Makefile.am:
20237 * docs/reference/libs/libs-docs.xml.in:
20238 * docs/reference/plugins/Makefile.am:
20239 * docs/reference/plugins/plugins-docs.xml.in:
20240 * gst-libs/gst/vaapi/Makefile.am:
20241 * gst/vaapi/Makefile.am:
20242 * pkgconfig/Makefile.am:
20243 * pkgconfig/gstreamer-vaapi-drm.pc.in:
20244 * pkgconfig/gstreamer-vaapi-glx.pc.in:
20245 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
20246 * pkgconfig/gstreamer-vaapi-x11.pc.in:
20247 * pkgconfig/gstreamer-vaapi.pc.in:
20248 * tests/Makefile.am:
20249 configure: rename GST_MAJORMINOR to GST_API_VERSION.
20251 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20254 configure: improve check for H.264 codecparser.
20256 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
20258 * gst/vaapi/gstvaapiuploader.c:
20259 vaapiupload: fix illegal write in ensure_image().
20260 Fix ensure_image() to only zero-initialize the first line of each plane.
20261 Properly initializing each plane to their full vertical resolution would
20262 require to actually compute it based on the image format.
20263 In particular, for NV12 images, the UV plane has half vertical resolution
20264 vs. the Y plane. So using the full image height to initialize the UV plane
20265 will obviously lead to a buffer overflow. Likewise for other YUV format.
20266 Since ensure_image() is only a helper function to initialize something,
20267 and not necessarily the whole thing, it is fine to initializ the first
20268 line only. Besides, the target surface is not rendered either.
20269 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20271 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
20273 * gst-libs/gst/codecparsers/Makefile.am:
20274 * gst-libs/gst/video/Makefile.am:
20275 build: fix compiling of local GstVideoDecoder and codecparsers.
20276 Generated source files were missing a dependency on the complete set of
20277 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
20278 to build and almost every codec parser source depends on parserutils.h.
20279 https://bugs.freedesktop.org/show_bug.cgi?id=59575
20280 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
20281 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20283 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20285 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20286 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
20287 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
20288 there is no pred_weight_table() that was parsed.
20289 This is a workaround for the VA intel-driver on Ivy Bridge.
20291 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20293 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20294 h264: use new profile definitions from codecparsers.
20296 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20298 * ext/codecparsers:
20299 codecparsers: update to gst-vaapi-branch commit 500bc02.
20300 500bc02 h264: add profile enums
20302 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20307 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20309 * ext/codecparsers:
20310 codecparsers: update to gst-vaapi-branch commit 31b1c57.
20311 8957fb7 mpeg2: add helpers to convert quantization matrices
20312 07c4034 mpeg2: store quantization matrices in zigzag scan order
20314 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20316 * tests/simple-decoder.c:
20317 tests: simple-decoder: fix build on older platforms.
20318 Make simple-decoder build and execute correctly on older platforms,
20319 and more precisely older versions of glib.
20321 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20323 * gst-libs/gst/vaapi/glibcompat.h:
20324 glibcompat: add replacement for g_async_queue_timeout_pop().
20325 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
20326 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
20327 new data to arrive in the queue.
20329 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20331 * gst-libs/gst/vaapi/glibcompat.h:
20332 glibcompat: add replacement for g_cond_wait().
20334 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20336 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20337 mpeg2: fix decoding of 4K videos.
20338 Account for slice_vertical_position_extension when vertical_size > 2800.
20340 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20342 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20343 mpeg2: fix decoding of sequence_end().
20344 There shall be only one place to call decode_current_picture(), and this
20345 is in the end_frame() hook. The EOS unit is processed after end_frame()
20346 so this means we cannot have a valid picture to decode/output at this
20349 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20351 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20352 mpeg2: improve robustness when packets are missing.
20353 Improve robustness when some expected packets where not received yet
20354 or that were not correctly decoded. For example, don't try to decode
20355 a picture if there was no valid sequence or picture headers.
20357 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20359 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20360 decoder: handle decode-only frames in raw API mode.
20361 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
20362 surface proxy, i.e. with a valid VA surface. This means that any frame
20363 marked as decode-only is simply skipped.
20365 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20367 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20368 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
20369 decoder: allow frames to be dropped.
20370 If the decoder was not able to decode a frame because insufficient
20371 information was available, e.g. missing sequence or picture header,
20372 then allow the frame to be gracefully dropped without generating
20374 It is also possible that a frame is not meant to be displayed but
20375 only used as a reference, so dropping that frame is also a valid
20376 operation since GstVideoDecoder base class has extra references to
20377 that GstVideoCodecFrame that needs to be released.
20379 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20381 * gst/vaapi/gstvaapidecode.c:
20382 vaapidecode: handle decode-only frames.
20383 Decode-only frames may not have a valid surface proxy. So, simply discard
20384 them gracefully, i.e. don't create meta data information. GstVideoDecoder
20385 base class will properly handle this case and won't try to push any buffer
20386 to downstream elements.
20388 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20390 * gst/vaapi/gstvaapidecode.c:
20391 vaapidecode: add support for post-seek semantics reset.
20392 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
20393 and the creation of a new VA decoder.
20394 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20396 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20399 Bump version for development.
20401 === release 0.5.1 ===
20403 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20409 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20411 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20412 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
20414 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20416 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
20417 decoder: fix documentation for GstVaapiDecoderFrame.
20418 Drop superfluous reference to prev_slice member.
20420 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20422 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20423 decoder: assume current frame is complete at end-of-stream.
20424 Assume we got a complete frame when the end-of-stream is reached and that
20425 the current codec frame contains at least one slice data unit.
20427 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20431 * debian.upstream/copyright:
20432 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
20433 * gst-libs/gst/vaapi/gstvaapicontext.c:
20434 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20435 * gst-libs/gst/vaapi/gstvaapidecoder.h:
20436 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
20437 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
20438 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
20439 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
20440 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20441 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
20442 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20443 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20444 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20445 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20446 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
20447 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
20448 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
20449 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20450 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20451 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20452 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
20453 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
20454 * gst-libs/gst/vaapi/gstvaapiprofile.h:
20455 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
20456 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
20457 * gst-libs/gst/vaapi/gstvaapisurface.c:
20458 * gst-libs/gst/vaapi/gstvaapiutils.c:
20459 * gst-libs/gst/vaapi/gstvaapiutils.h:
20460 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
20461 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
20462 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
20463 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20464 * gst-libs/gst/vaapi/sysdeps.h:
20465 * gst/vaapi/gstvaapidecode.c:
20466 * gst/vaapi/gstvaapidownload.c:
20467 * gst/vaapi/gstvaapipluginbuffer.c:
20468 * gst/vaapi/gstvaapipluginbuffer.h:
20469 * gst/vaapi/gstvaapipostproc.c:
20470 * gst/vaapi/gstvaapisink.c:
20471 * gst/vaapi/gstvaapiupload.c:
20472 * gst/vaapi/gstvaapiuploader.c:
20474 * tests/test-decode.c:
20475 * tests/test-subpicture.c:
20476 legal: fix year for some copyright notices (2013).
20478 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20480 * gst-libs/gst/vaapi/gstvaapicontext.h:
20481 * gst-libs/gst/vaapi/gstvaapidecoder.h:
20482 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20483 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
20484 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20485 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
20486 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20487 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
20488 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
20489 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
20490 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
20491 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
20492 * gst-libs/gst/vaapi/gstvaapisurface.c:
20493 * gst-libs/gst/vaapi/gstvaapisurface.h:
20494 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
20495 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
20496 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
20497 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
20498 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
20499 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
20500 * gst/vaapi/gstvaapidecode.h:
20501 * gst/vaapi/gstvaapisink.h:
20502 * tests/test-subpicture.c:
20503 legal: fix year for some copyright notices (2012).
20505 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20507 * gst-libs/gst/vaapi/gstvaapicompat.h:
20508 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
20509 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
20510 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
20511 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
20512 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
20513 * gst-libs/gst/vaapi/gstvaapiobject.c:
20514 * gst-libs/gst/vaapi/gstvaapiobject.h:
20515 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
20516 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
20517 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
20518 * gst-libs/gst/vaapi/gstvaapiprofile.c:
20519 * gst-libs/gst/vaapi/gstvaapiprofile.h:
20520 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
20521 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
20522 * gst-libs/gst/vaapi/gstvaapitexture.c:
20523 * gst-libs/gst/vaapi/gstvaapitexture.h:
20524 * gst-libs/gst/vaapi/gstvaapitypes.h:
20525 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
20526 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
20527 * gst-libs/gst/vaapi/gstvaapivalue.c:
20528 * gst-libs/gst/vaapi/gstvaapivalue.h:
20529 * gst-libs/gst/vaapi/gstvaapivideopool.c:
20530 * gst-libs/gst/vaapi/gstvaapivideopool.h:
20531 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20532 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20533 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20534 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20535 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20536 * tests/test-display.c:
20537 * tests/test-surfaces.c:
20538 * tests/test-windows.c:
20539 legal: add Intel copyright on modified files.
20541 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20546 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20548 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20549 wayland: use a local event queue to avoid lock contention.
20550 This improves performance when rendering several surfaces from within
20551 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
20553 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20555 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20556 wayland: fix thread-safe issues.
20557 The Wayland API is not fully thread-safe and client applications shall
20558 perform locking themselves on key functions. Besides, make sure to
20559 release the lock if the _render() function fails.
20561 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20563 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20564 wayland: really wait until the pending redraw completed.
20565 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
20566 the completion of the redraw request. Use it in _render() function to
20567 actually block until the previous draw request is completed.
20569 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20571 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20572 wayland: fix frame_redraw callback.
20573 The redraw callback needs to be attached to the surface prior to the
20574 commit. Otherwise, the callback notifies the next surface repaint,
20575 which is not the desired behaviour. i.e. we want to be notified for
20576 the surface we have just filled.
20577 Another isse was the redraw_pending was reset before the actual completion
20578 of the frame redraw callback function, thus causing concurrency issues.
20579 e.g. the callback could have been called again, but with a NULL buffer.
20581 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20583 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
20584 wayland: fix display sharing.
20585 When the Wayland display is shared, we still have to create our own local
20586 shell and compositor objects, since they are not propagated from the cache.
20587 Likewise, we also need to determine the display size or vaapisink would
20588 fail to account for the display aspect ratio, and will try to create a 0x0
20591 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20593 * ext/codecparsers:
20594 codecparsers: update to gst-vaapi-branch commit 21a098e.
20595 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
20596 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
20598 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20600 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20601 vc1: handle frames with multiple slices.
20603 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20605 * ext/codecparsers:
20606 codecparsers: update to gst-vaapi-branch commit 3fba492.
20607 3fba492 vc1: add API to parse slice headers
20609 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20611 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20612 vc1: handle CLOSED_ENTRY.
20613 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
20614 lack a reference anchor picture, these B pictures shall be discarded.
20615 https://bugs.freedesktop.org/show_bug.cgi?id=59505
20617 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20619 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20620 vc1: cope with latest codecparser changes.
20621 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
20622 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
20623 the actual value of DQPROFILE.
20625 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20627 * ext/codecparsers:
20628 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
20629 3d2c67c vc1: simplify GstVC1VopDquant structure
20631 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20633 * ext/codecparsers:
20634 codecparsers: update to gst-vaapi-branch commit 5d33da8.
20635 5d33da8 vc1: fix bitplanes decoding
20636 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
20637 0b13d2b vc1: fix calculation of ALTPQUANT
20638 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
20640 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20642 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20643 vc1: fix size of encapsulated BDU.
20644 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
20645 the size of the BDU data, starting from offset, i.e. after any start
20647 This fixes a buffer overflow during the unescaping process.
20649 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
20651 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20652 vc1: fix decoding of WMV3 videos in AVI format.
20653 The AVI demuxer (avidemux) does not set a proper "format" attribute
20654 to the generated caps. So, try to recover the video codec format from
20655 the "wmvversion" property instead.
20656 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20658 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20660 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20661 vc1: review and report errors accordingly.
20662 Use GST_ERROR() to report real errors instead of hiding them into
20665 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20667 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20668 vc1: don't create GstBuffers for all decoder units.
20669 Don't create temporary GstBuffers for all decoder units, even if they
20670 are lightweight "sub-buffers", since it is not really necessary to keep
20671 the buffer data around.
20673 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20675 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20676 vc1: implement flush() hook.
20677 Make it a simple DPB flush.
20679 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20681 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20682 vc1: implement {start,end}_frame() hooks.
20683 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
20684 that to create new VA context earlier and submit VA pictures to the
20685 HW for decoding as soon as possible. i.e. don't wait for the next
20686 frame to start decoding the previous one.
20688 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20690 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20691 vc1: fix next POC for new sequence layers.
20692 Fix next POC when a new sequence layer is reached. At this point, we
20693 need to reset any previous reference picture, i.e. non B-frame.
20695 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20697 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20698 vc1: port to common GstVaapiDpb interface.
20699 Use GstVaapiDpb interface instead of maintaining our own prev and next
20700 picture pointers. While doing so, try to derive a sensible POC value.
20701 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20703 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20705 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20706 vc1: fix decode_sequence_end() to return success, not EOS.
20708 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20710 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20711 decoder: simplify gst_vaapi_decoder_get_surface().
20712 Avoid extraenous branches, i.e. immediately return with success once we
20713 have a decoded frame available.
20715 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20717 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20718 decoder: optimize and clean decode_step() up.
20719 Avoid usage of goto. Simplify decode_step() process to first accumulate all
20720 pending buffers into the GstAdapter, and then parse and decode units from
20721 that input adapter. Stop the process once a frame is fully decoded or an
20724 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20726 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20727 display: move "vaapi" debug init to libgstvaapi_init_once().
20729 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20732 * gst-libs/gst/vaapi/Makefile.am:
20733 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20734 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
20735 display: dump gstreamer-vaapi version for debugging purposes.
20737 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20739 * tests/Makefile.am:
20740 tests: simple-decoder: fix build with built-in videoutils.
20741 Fix build with built-in videoutils, i.e. when system GStreamer installation
20742 does not know about GstVideoDecoder API.
20744 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20746 * tests/simple-decoder.c:
20747 tests: simple-decoder: flush decoded frames at EOS.
20748 Flush the remaining decoded frames when an end-of-stream is reached.
20750 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20752 * tests/simple-decoder.c:
20753 tests: simple-decoder: drop use of GstVaapiVideoMeta.
20754 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
20755 in libgstvaapi forever. Rather, that'd move to plugin elements at some
20758 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20760 * tests/simple-decoder.c:
20761 tests: simple-decoder: add benchmark mode.
20762 Add --benchmark option to enable benchmark mode where rendering is not
20763 synchronized with presentation timestamps of the decoded surfaces.
20765 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20767 * tests/Makefile.am:
20768 * tests/simple-decoder.c:
20769 tests: simple-decoder: honour framerate from the bitstream.
20770 Try to honour the framerate from the bitstream, or cap the playback to
20773 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20775 * tests/simple-decoder.c:
20776 tests: simple-decoder: set window size to the surface dimensions.
20777 Set the window size to the decoded surface dimensions, if the user has
20778 not requested the application to run in full-screen mode. Besides, no
20779 effort is made to preserve aspect ratio or to center the video within
20782 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20784 * tests/Makefile.am:
20785 * tests/simple-decoder.c:
20786 tests: add simple decoder application.
20787 Add simple decoder application to show off decoding capabilities from
20788 raw bitstreams, for debugging or performance evaluation purposes.
20790 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20792 * tests/Makefile.am:
20795 tests: add codec helper utils.
20796 Add helper functions to determine the codec type from a specific file
20797 or utility functions to convert from codec type to GstCaps or from
20798 codec name to codec type.
20800 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20803 tests: allow fullscreen mode.
20804 Add new --fullscreen|-f option to create new windows in fullscreen mode.
20806 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20808 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20809 h264: implement GstVaapiDecoder::flush() as a DPB flush.
20811 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20813 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20814 h264: handle end-of-stream NALU.
20815 Handle <end-of-stream> NAL unit to actually flush any pending picture
20818 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20820 * gst/vaapi/gstvaapidecode.c:
20821 vaapidecode: handle EOS events.
20822 Flush all decoded frames to downstream when EOS is received. This is
20823 performed by implementing GstVideoDecoder::finish() hook.
20825 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20827 * gst/vaapi/gstvaapidecode.c:
20828 vaapidecode: split gvd_handle_frame() into decode/push frames.
20829 Split GstVideoDecoder::handle_frame() implementation into two functions:
20830 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
20831 for purging all decoded frames and submit them downstream.
20833 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20835 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20836 * gst-libs/gst/vaapi/gstvaapidecoder.h:
20837 decoder: add GstVaapiDecoder::flush() hook.
20839 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20841 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20842 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
20843 decoder: fix check for end-of-stream in raw API mode.
20844 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
20845 if the end-of-stream was already reached at the previous iteration.
20847 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20849 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20850 decoder: make decode_step() return once the frame is decoded.
20851 Make sure we always have a free surface left to use for decoding the
20852 current frame. This means that decode_step() has to return once a frame
20853 gets decoded. If the current adapter contains more buffers with valid
20854 frames, they will get parsed and decoded on subsequent iterations.
20856 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20858 * ext/codecparsers:
20859 codecparsers: update to gst-vaapi-branch commit b47983a.
20860 8840c2d h264: zero-initialize SPS VUI parameters
20862 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20865 Bump version for development.
20867 === release 0.5.0 ===
20869 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20875 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20877 * docs/reference/libs/libs-docs.xml.in:
20878 * docs/reference/libs/libs-sections.txt:
20879 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20880 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20881 * gst-libs/gst/vaapi/gstvaapiprofile.h:
20882 docs: expose new interfaces.
20884 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20889 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20891 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
20892 dpb: cosmetics (clean-ups).
20894 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20896 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
20897 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
20898 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20899 dpb: port to GstVaapiMiniObject.
20901 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20903 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
20904 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
20905 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20906 dpb: drop GstVaapiDpb2 interface, keep only one class.
20907 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
20908 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
20909 around the specified picture POC.
20911 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20913 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
20914 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
20915 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20916 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
20917 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
20918 useful to other decoders that require 2 reference pictures, e.g. VC-1.
20919 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20921 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20924 Bump version for pre-release.
20926 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20931 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
20934 * gst-libs/gst/vaapi/gstvaapicontext.c:
20935 * gst-libs/gst/vaapi/gstvaapiutils.c:
20936 * gst-libs/gst/vaapi/sysdeps.h:
20937 * tests/test-subpicture.c:
20938 overlay: fix build without advanced GstVideoOverlayFormatFlags.
20939 Check for global-alpha support in GstVideoOverlayComposition API.
20940 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20942 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20944 * tests/test-subpicture.c:
20945 tests: add support for global-alpha subpictures.
20946 Add --global-alpha option to test-subpicture.
20948 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20950 * tests/Makefile.am:
20951 * tests/test-subpicture.c:
20952 tests: use GstVideoOverlayComposition API for subpicture test.
20954 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20956 * tests/Makefile.am:
20957 * tests/test-subpicture.c:
20958 tests: use common decoder helpers for subpicture test.
20959 Use common decoder helpers for subpicture test, thus allowing to decode
20960 sample images in an alternate format.
20962 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20964 * tests/Makefile.am:
20967 * tests/test-decode.c:
20968 tests: add decoder helpers.
20970 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20972 * gst-libs/gst/vaapi/gstvaapicontext.c:
20973 overlay: fix ordering of composition layers.
20974 Make sure to maintain the association order of composition layers when
20975 GstVideoOverlayRectangle objects are kept around (cached).
20977 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
20979 * gst-libs/gst/vaapi/gstvaapicontext.c:
20980 overlay: fix support for global-alpha.
20981 Fix support for global-alpha subpictures. The previous changes brought
20982 the ability to check for GstVideoOverlayRectangle changes by comparing
20983 the underlying pixel buffer pointers. If sequence number and pixel data
20984 did not change, then this is an indication that only the global-alpha
20985 value changed. Now, try to update the underlying VA subpicture global-alpha
20987 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20989 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20991 * gst-libs/gst/vaapi/gstvaapicontext.c:
20992 overlay: detect render-rect changes.
20993 Don't re-upload VA subpicture if only the render rectangle changed.
20994 Rather deassociate the subpicture and re-associate it with the new
20997 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20999 * gst-libs/gst/vaapi/gstvaapicontext.c:
21000 overlay: fix check for pixels buffer change.
21001 A GstVideoOverlayRectangle is created whenever the underlying pixels data
21002 change. However, when global-alpha is supported, it is possible to re-use
21003 the same GstVideoOverlayRectangle but with a change to the global-alpha
21004 value. This process causes a change of sequence number, so we can no longer
21006 Still, if sequence numbers did not change, then there was no change in
21007 global-alpha either. So, we need a way to compare the underlying GstBuffer
21008 pointers. There is no API to retrieve the original pixels buffer from
21009 a GstVideoOverlayRectangle. So, we use the following heuristics:
21010 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
21011 format flags from which the GstVideoOverlayRectangle was created. This
21012 will work if there was no prior consumer of the GstVideoOverlayRectangle
21013 with alternate (non-"native") format flags.
21014 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
21015 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
21016 with flags that match the subpicture. This is needed to cope with
21017 platforms that don't support global-alpha in HW, so the gst-video
21018 layer takes care of that and fixes this up with a possibly new
21019 GstBuffer, and hence pixels data (or) in-place by caching the current
21020 global-alpha value applied. So we have to determine the rectangle
21021 was previously used, based on what previous flags were used to
21022 retrieve the ARGB pixels buffer.
21024 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21026 * gst-libs/gst/vaapi/gstvaapicontext.c:
21027 overlay: optimize cache at the GstVideoOverlayRectangle level.
21028 We previously assumed that an overlay composition changed if the number
21029 of overlay rectangles in there actually changed, or that the rectangle
21030 was updated, and thus its seqnum was also updated.
21031 Now, we can cope with cases where the GstVideoOverlayComposition grew
21032 by one or a few more overlay rectangles, and the initial overlay rectangles
21035 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21037 * gst-libs/gst/vaapi/gstvaapicontext.c:
21038 overlay: simplify caching of GstVideoOverlayComposition objects.
21039 Create the GPtrArray once in the _init() function and destroy it only
21040 in the _finalize() function. Then use overlay_clear() to remove all
21041 subpicture associations for intermediate updates, don't recreate the
21043 Make GstVaapiOverlayRectangle a reference counted object. Also make
21044 sure that overlay_rectangle_new() actually creates and associates the
21047 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
21049 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
21050 * gst-libs/gst/vaapi/gstvaapiutils.c:
21051 * gst-libs/gst/vaapi/gstvaapiutils.h:
21052 overlay: add support for global-alpha.
21053 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
21054 the same code path could also work for premultiplied-alpha but this
21056 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21058 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
21060 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21061 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21062 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
21063 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
21064 * gst-libs/gst/vaapi/gstvaapisurface.c:
21066 * tests/test-subpicture.c:
21067 subpicture: add support for global-alpha.
21068 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
21069 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
21070 to address this feature.
21071 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21073 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21075 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
21076 * gst-libs/gst/vaapi/gstvaapiutils.c:
21077 * gst-libs/gst/vaapi/gstvaapiutils.h:
21078 subpicture: add premultiplied-alpha and global-alpha feature flags.
21079 Add premultiplied-alpha and global-alpha feature flags, along with converters
21080 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
21081 also necessary for GstVideoOverlayComposition API.
21083 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21085 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21086 display: allow image/subpicture formats with additional flags.
21087 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
21088 and any additional flags needed. Currently, all flags are set to zero.
21090 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21092 * gst-libs/gst/codecparsers/Makefile.am:
21093 * gst-libs/gst/video/Makefile.am:
21094 * tests/Makefile.am:
21095 libs: fix build of submodule wrappers.
21096 Make sure to build codecparsers/ and videoutils/ sources against the
21097 newly generated headers when out-of-source builds are used.
21099 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21102 configure: fix checks for packages installed in non-standard roots.
21104 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21106 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
21107 decoder: fix mini object implementation on 64-bit systems.
21108 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
21109 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
21110 Only a gsize can hold all bits of a pointer.
21111 Thanks to Ouping Zhang for spotting this error.
21113 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21115 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21116 mpeg2: optimize scan for the end of the frame.
21117 Heuristic: if the second start-code is available, check whether that
21118 one marks the start of a new frame because e.g. this is a sequence
21119 or picture header. This doesn't save much, since we already cache the
21122 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21124 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21125 mpeg2: optimize scan for start codes.
21126 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
21127 A start code prefix is defined by the following bytes: 00 00 01. Thus,
21128 for any group of 3 bytes (xx yy zz), we have the following possible cases:
21129 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
21130 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
21131 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
21132 4. xx == 00, yy == 00, zz == 1, we have match!
21133 This algorithm requires to peek bytes from the adapter. This increases the
21134 amount of bytes copied to a temporary buffer, but this process is much faster
21135 than scanning for all the bytes and using shift/masks. So, overall, this is
21138 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21140 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21141 mpeg2: drop useless gst_adapter_peek().
21142 Drop useless gst_adapter_peek() since the returned buffer was not used
21143 and this could incur superfluous memcpy().
21145 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21147 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21148 mpeg2: cosmetics: move parse_slice() down.
21150 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21152 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21153 mpeg2: avoid too many allocations of parser info objects.
21154 Move parsing back to decoding step, but keep functions separate for now.
21155 This is needed for future optimizations that may introduce some meta data
21156 for parsed info attached to codec frames.
21158 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21160 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
21161 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
21162 decoder: decoder units are no longer dynamically allocated objects.
21164 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21166 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21167 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
21168 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
21169 decoder: optimize pre-allocation of decoder units.
21170 Optimize pre-allocation of decoder units, thus avoiding un-necessary
21171 memory reallocations. The heuristic used is that we could have around
21172 one slice unit per macroblock line.
21174 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21176 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21177 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
21178 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
21179 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21180 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
21181 decoder: use an array of units instead of a single-linked list.
21182 Use a GArray to hold decoder units in a frame, instead of a single-linked
21183 list. This makes 'append' calls faster, but not that much. At least, this
21184 makes things clearer.
21186 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21188 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21189 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21190 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21191 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21192 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21193 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21194 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
21195 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
21196 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21197 decoder: refactor decoder unit API.
21198 Allocate decoder unit earlier in the main parse() function and don't
21199 delegate this task to derived classes. The ultimate purpose is to get
21200 rid of dynamic allocation of decoder units.
21202 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21204 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21205 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
21206 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
21207 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
21209 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21211 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21212 h264: introduce parser info instead of H.264 specific decoder unit.
21213 Use a new GstVaapiParserInfoH264 data structure instead of deriving
21214 from GstVaapiDecoderUnit for H.264 specific parser information.
21216 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21218 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21219 h264: set default values for some header fields.
21220 The SPS, PPS and slice headers are not fully zero-initialized in the
21221 codecparsers/ library. Rather, the standard upstream behaviour is to
21222 initialize only certain syntax elements with some inferred values if
21223 they are not present in the bitstream.
21224 At the gstreamer-vaapi decoder level, we need to further initialize
21225 certain syntax elements with some sensible default values so that to
21226 not complicate VA drivers that just pass those verbatim to the HW,
21227 and also avoid an memset() of the whole decoder unit.
21228 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21229 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21231 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21233 * ext/codecparsers:
21234 codecparsers: update to gst-vaapi-rebased commit b47983a.
21235 b47983a h264: add inferred value for slice_beta_offset_div2
21237 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21239 * gst/vaapi/gstvaapidecode.c:
21240 * gst/vaapi/gstvaapidownload.c:
21241 * gst/vaapi/gstvaapipluginbuffer.c:
21242 * gst/vaapi/gstvaapipluginbuffer.h:
21243 * gst/vaapi/gstvaapipostproc.c:
21244 * gst/vaapi/gstvaapisink.c:
21245 * gst/vaapi/gstvaapiupload.c:
21246 * gst/vaapi/gstvaapiuploader.c:
21247 plugins: cope with new GstVaapiVideoMeta API.
21248 Update plugin elements with the new GstVaapiVideoMeta API.
21249 This also fixes support for subpictures/overlay because GstVideoDecoder
21250 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
21251 is marked as read-only. However, when comes in the textoverlay element
21252 for example, it checks whether the input buffer is writable. Since that
21253 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
21254 does not preserve the parent field, the generated buffer in textoverlay
21255 is not exploitable because we lost all VA specific information.
21256 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
21257 all information are preserved through gst_buffer_copy() since the latter
21258 does copy metadata (qdata in this case).
21260 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21262 * gst-libs/gst/vaapi/Makefile.am:
21263 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
21264 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
21265 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
21266 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
21267 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
21268 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
21269 videobuffer: wrap video meta into a surface buffer.
21270 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
21271 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
21272 expecting a GstSurfaceBuffer like Clutter.
21274 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21276 * gst-libs/gst/vaapi/Makefile.am:
21277 * gst-libs/gst/vaapi/gstvaapivideometa.c:
21278 * gst-libs/gst/vaapi/gstvaapivideometa.h:
21279 videobuffer: add video meta information.
21280 Add new GstVaapiVideoMeta object that holds all information needed to
21281 convey gst-vaapi specific data as a GstBuffer.
21283 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21285 * gst/vaapi/gstvaapidecode.c:
21286 vaapidecode: fix calculation of the time-out value.
21287 Fix calculation of the time-out value for cases where no VA surface is
21288 available for decoding. In this case, we need to wait until downstream
21289 sink consumed at least one surface. The time-out was miscalculated as
21290 it was always set to <current-time> + one second, which is not suitable
21291 for streams with larger gaps.
21293 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21295 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21296 decoder: always use the calculated presentation timestamp.
21297 Use PTS value computed by the decoder, which could also be derived from
21298 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
21299 the original one was miscomputed or only represented a DTS instead.
21301 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21303 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21304 h264: don't create sub-buffer for slice data.
21306 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21308 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21309 decoder: create new context when encoded resolution changes.
21310 Create a new VA context if the encoded surface size changes because we
21311 need to keep the underlying surface pool until the last one was released.
21312 Otherwise, either of the following cases could have happened: (i) release
21313 a VA surface to an inexistent pool, or (ii) release VA surface to an
21314 existing surface pool, but with different size.
21316 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21318 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21319 mpeg2: don't create sub-buffer for slice data.
21320 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
21321 frame input buffer data. This is possible because the codec frame is valid
21322 until end_frame() where we submit the VA buffers for decoding. Anyway, the
21323 slice data buffer is copied into the VA buffer when it is created.
21325 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21327 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21328 mpeg2: minor clean-ups.
21329 Drop explicit initialization of most fields that are implicitly set to
21330 zero. Remove some useless checks for NULL pointers.
21332 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21334 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21335 mpeg2: optimize scan for the second start code.
21336 Optimize scan for the second start code, on the next parse() call so that
21337 to avoid scanning again earlier bytes where we didn't find any start code.
21339 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21341 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21342 mpeg2: use sequence_display_extension() to compute PAR.
21343 Also compute pixel-aspect-ratio from sequence_display_extension(),
21344 should it exist in the bitstream.
21346 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21348 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21349 mpeg2: handle sequence_display_extension().
21351 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21353 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21354 mpeg2: implement {start,end}_frame() hooks.
21355 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
21356 that to create new VA context earlier and submit VA pictures to the
21357 HW for decoding as soon as possible. i.e. don't wait for the next
21358 frame to start decoding the previous one.
21360 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21362 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21363 mpeg2: parse slice() header earlier.
21364 Parse slice() header and first macroblock position earlier in _parse()
21365 function instead of waiting for the _decode() stage. This doesn't change
21366 anything but readability.
21368 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21370 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21371 mpeg2: add codec specific decoder unit.
21372 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
21373 GstMpegVideoPacket and additional parsed header info. Besides, we now
21374 parse as early as in the _parse() function so that to avoid un-necessary
21375 creation of sub-buffers in _decode() for video packets that are not slices.
21377 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21379 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21380 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
21381 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
21382 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
21383 decoder: introduce lists of units to decode before/after frame.
21384 Theory of operations: all units marked as "slice" are moved to the "units"
21385 list. Since this list only contains slice data units, the prev_slice pointer
21386 was removed. Besides, we now maintain two extra lists of units to be decoded
21387 before or after slice data units.
21388 In particular, all units in the "pre_units" list will be decoded before
21389 GstVaapiDecoder::start_frame() is called and units in the "post_units"
21390 list will be decoded after GstVaapiDecoder::end_frame() is called.
21392 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21394 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21395 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21396 decoder: drop useless checks for codec objects.
21397 Codec objects are used internally only and they are bound to be created
21398 with a valid GstVaapiDecoder object.
21400 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21402 * gst/vaapi/gstvaapidecode.c:
21403 vaapidecode: use GST_ERROR to print error messages.
21405 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21407 * gst/vaapi/gstvaapidecode.c:
21408 vaapidecode: avoid double release of frame on error.
21409 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
21410 was already called before and it returned an error. In that case, we were
21411 releasing the frame again, thus leading to a "double-free" condition.
21413 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21420 * gst-libs/gst/Makefile.am:
21421 * gst-libs/gst/vaapi/Makefile.am:
21422 * gst-libs/gst/video/Makefile.am:
21423 * gst/vaapi/Makefile.am:
21424 Add videoutils submodule for GstVideoDecoder APIs.
21426 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21429 configure: check for GstVideoDecoder API.
21430 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
21431 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
21432 parties may either use upstream git 0.10 branch or backport the necessary support
21433 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
21435 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21437 * docs/reference/libs/libs.core.types:
21438 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
21439 GstVaapiSurfaceProxy is no longer based on the GType system.
21441 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21443 * docs/reference/libs/libs-sections.txt:
21444 docs: fix entries for GstVaapiSurfaceProxy.
21446 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21451 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21454 * gst-libs/gst/vaapi/Makefile.am:
21455 Bump library major version.
21456 Increase library major so that to cope with API/ABI incompatible changes
21457 since 0.4.x series and avoid user issues.
21459 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21461 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21462 surfaceproxy: minor clean-ups.
21464 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21466 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21467 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21468 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
21469 surfaceproxy: drop accessors to obsolete attributes.
21470 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
21471 VA surface. i.e. drop any other attribute like timestamp, duration,
21472 interlaced or top-field-first.
21474 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21476 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21477 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21478 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21479 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21480 * gst/vaapi/gstvaapidecode.c:
21481 decoder: maintain decoded frames as GstVideoCodecFrame objects.
21482 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
21483 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
21484 the strict minimum: a context and a surface.
21486 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21488 * gst/vaapi/gstvaapidecode.c:
21489 vaapidecode: output all decoded frames as soon as possible.
21490 Make sure to push all decoded frames downstream as soon as possible.
21491 This makes sure we don't need to wait for a new frame to be ready to
21492 be decoded before receiving new decoded frames.
21493 This also separates the decode process and the output process. The latter
21494 could be moved to a specific GstTask later on.
21496 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21498 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21499 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21500 decoder: add gst_vaapi_decoder_get_frame() API.
21501 Add new gst_vaapi_decoder_get_frame() function meant to be used with
21502 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
21503 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
21504 as the user-data object.
21506 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21508 * gst/vaapi/gstvaapipostproc.c:
21509 vaapipostproc: use GstBuffer flags for TFF.
21510 Determine whether the buffer represents the top-field only by checking for
21511 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
21512 flag. Also trust "interlaced" caps to determine whether the input frame
21513 is interleaved or not.
21515 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21517 * gst/vaapi/gstvaapipostproc.c:
21518 vaapipostproc: handle video sub-buffers.
21519 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
21520 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
21522 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21524 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21525 h264: optimize initialization process of decoder units.
21526 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
21527 The latter don't require zero-initialization since the codecparsers/ lib
21528 will do so for key variables already. This is not a great value per se but
21529 at least it makes it possible to check whether the default initialization
21530 decisions made in the codecparsers/ lib were right or not.
21531 This can be reverted if this exposes too many issues.
21533 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21535 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21536 h264: minor clean-ups.
21537 Drop explicit initialization of most fields that are implicitly set to
21538 zero. Drop helper macros for casting to GstVaapiPictureH264 or
21539 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
21541 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21543 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21544 h264: drop GstVaapiSliceH264 object.
21545 Use standard GstVaapiSlice object from now on since we already have
21546 parsed and recorded the slice headers (GstH264SliceHdr decode units).
21548 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21550 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21551 h264: detect new pictures from decode-units.
21552 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
21553 of assuming frame boundaries when first_mb_in_slice is zero.
21555 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21557 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21558 h264: implement {start,end}_frame() hooks.
21559 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
21560 that to create new VA context earlier and submit VA pictures to the
21561 HW for decoding as soon as possible. i.e. don't wait for the next
21562 frame to start decoding the previous one.
21564 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21566 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21567 h264: optimize scan for the second start code.
21568 Optimize scan for the second start code, on the next parse() call so that
21569 to avoid scanning again earlier bytes where we didn't find any start code.
21571 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21573 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21574 h264: add codec specific decoder unit.
21575 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
21576 NAL unit header (GstH264NalUnit) and additional parsed header info.
21577 Besides, we now parse headers as early as in the _parse() function so
21578 that to avoid un-necessary creation of sub-buffers in _decode() for
21579 NAL units that are not slices.
21580 This is a performance win by ~+1.1% only.
21582 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21584 * gst/vaapi/gstvaapisink.c:
21585 vaapisink: handle sub video-buffers.
21586 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
21587 for non raw YUV cases. Make sure vaapisink now understands those buffers.
21589 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21591 * gst/vaapi/gstvaapidecode.c:
21592 vaapidecode: use gst_vaapi_decoder_get_codec_state().
21593 Directly use the GstVideoCodecState associated with the VA decoder
21594 instead of parsing caps again.
21595 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21596 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21598 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21600 * gst/vaapi/gstvaapidecode.c:
21601 vaapidecode: use more standard helpers.
21602 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
21605 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21607 * gst/vaapi/gstvaapidecode.c:
21608 * gst/vaapi/gstvaapidecode.h:
21609 vaapidecode: move to GstVideoDecoder base class.
21610 Make vaapidecode derive from the standard GstVideoDecoder base element
21611 class. This simplifies the code to the strict minimum for the decoder
21612 element and makes it easier to port to GStreamer 1.x API.
21613 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21614 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21616 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21618 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21619 jpeg: initial port to new GstVaapiDecoder API
21621 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21623 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21624 vc1: initial port to new GstVaapiDecoder API
21626 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21628 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21629 h264: initial port to new GstVaapiDecoder API
21631 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21633 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21634 mpeg4: initial port to new GstVaapiDecoder API
21636 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21638 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21639 mpeg2: initial port to new GstVaapiDecoder API.
21641 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21643 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21644 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21645 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21646 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21647 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21648 * gst-libs/gst/vaapi/gstvaapiprofile.h:
21649 decoder: use GstVideoCodecState.
21650 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
21651 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
21652 it possible to drop picture size (width, height) information, framerate
21653 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
21654 and interlace mode (is_interlaced field).
21655 This is a new API with backwards compatibility maintained. In particular,
21656 gst_vaapi_decoder_get_caps() is still available.
21657 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21658 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21660 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21662 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21663 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21664 * tests/test-decode.c:
21665 * tests/test-subpicture.c:
21666 decoder: update gst_vaapi_decoder_get_surface() semantics.
21667 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
21668 API. That is, return a GstVaapiDecoderStatus and the decoded surface
21669 as a handle to GstVaapiSurfaceProxy in parameter.
21670 This is an API/ABI change.
21672 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21674 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21675 decoder: use standard helper functions.
21676 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
21677 whenever necessary.
21679 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21681 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21682 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21683 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21684 decoder: expose new parse/decode API.
21685 Introduce new decoding process whereby a GstVideoCodecFrame is created
21686 first. Next, input stream buffers are accumulated into a GstAdapter,
21687 that is then passed to the _parse() function. The GstVaapiDecoder object
21688 accumulates all parsed units and when a complete frame or field is
21689 detected, that GstVideoCodecFrame is passed to the _decode() function.
21690 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
21691 process was successful.
21693 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21695 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21696 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21697 decoder: add {start,end}_frame() hooks.
21698 The start_frame() hook is called prior to traversing all decode-units
21699 for decoding. The unit argument represents the first slice in the frame.
21700 Some codecs (e.g. H.264) need to wait for the first slice in order to
21701 determine the actual VA context parameters.
21703 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21705 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21706 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21707 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21708 decoder: add new GstVaapiDecoder API.
21709 Split decoding process into two steps: (i) parse incoming bitstreams
21710 into simple decoder-units until the frame or field is complete; and
21711 (ii) decode the whole frame or field at once.
21712 This is an ABI change.
21714 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21716 * gst-libs/gst/vaapi/Makefile.am:
21717 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
21718 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
21719 decoder: add new "decoder-frame" object.
21720 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
21721 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
21722 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
21723 as the user-data member element.
21724 This is a libgstvaapi internal object.
21726 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21728 * gst-libs/gst/vaapi/Makefile.am:
21729 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
21730 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
21731 decoder: add new "decoder-unit" object.
21732 Introduce GstVaapiDecoderUnit which represents a fragment of the source
21733 stream to be decoded. For instance, a decode-unit will be a NAL unit for
21734 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
21736 This is a libgstvaapi internal object.
21738 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21740 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21741 Port GstVaapiFrameStore to GstVaapiMiniObject.
21743 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21745 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21746 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
21747 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21748 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21749 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21750 Port codec objects to GstVaapiMiniObject.
21752 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21754 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21755 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21756 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21757 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
21758 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
21759 * gst/vaapi/gstvaapidecode.c:
21760 * gst/vaapi/gstvaapipluginbuffer.c:
21761 * tests/test-decode.c:
21762 * tests/test-subpicture.c:
21763 surfaceproxy: port to GstVaapiMiniObject.
21764 GstVaapiSurfaceProxy does not use any particular functionality from
21765 GObject. Actually, it only needs a basic object type with reference
21767 This is an API and ABI change.
21769 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21771 * gst-libs/gst/vaapi/Makefile.am:
21772 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
21773 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
21774 Add GstVaapiMiniObject.
21775 Introduce a new reference counted object that is very lightweight and
21776 also provides flags and user-data functionalities. Initialization and
21777 finalization times are reduced by up to a factor 5x vs GstMiniObject
21778 from GStreamer 0.10 stack.
21779 This is a libgstvaapi internal object.
21781 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21783 * tests/Makefile.am:
21784 * tests/test-decode.c:
21785 * tests/test-mpeg4.c:
21786 * tests/test-mpeg4.h:
21787 tests: add test for MPEG-4:2 decoding.
21789 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21791 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21792 h264: initialize VA context before allocating the first slice.
21793 Fix decode_slice() to ensure a VA context exists prior to creating a
21794 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
21795 context ID. i.e. the latter was not initialized, thus causing failures
21796 on Cedar Trail for example.
21798 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
21801 configure: install plugin elements in GST_PLUGIN_PATH, if set.
21802 If GST_PLUGIN_PATH environment variable exists and points to a valid
21803 directory, then use it as the system installation path for gst-vaapi
21805 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21807 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21810 configure: downgrade glib required version to 2.28.
21812 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21814 * gst-libs/gst/vaapi/glibcompat.h:
21815 * gst/vaapi/gstvaapi.c:
21816 libs: fix compatibility with glib 2.28.
21817 Always prefer non deprecated APIs by default and provide compatibility
21818 glue for older glib versions when necessary.
21820 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21822 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21823 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21824 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
21825 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
21826 libs: use glib >= 2.32 semantics for mutexes.
21827 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
21828 and termination. Basically, the new mutex objects can be used as static
21829 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
21831 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21833 * gst-libs/gst/vaapi/Makefile.am:
21834 libs: only export gst_vaapi_*() symbols.
21835 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
21836 library and the system-provided one, mainly used by videoparses/. Now,
21837 only symbols with the gst_vaapi_* prefix will be exported, if they are
21838 not marked as "hidden" to libgstvaapi.
21840 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21842 * gst/vaapi/gstvaapiuploader.c:
21843 vaapiupload: reset direct-rendering to zero when changing caps.
21844 Make sure to reset direct-rendering flag to zero when caps are changed,
21845 and only derive it to one when the next checks succeed.
21847 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21849 * gst/vaapi/gstvaapiupload.c:
21850 vaapiupload: fix sink caps to report the supported set of YUV caps.
21851 Try to allocate the GstVaapiUploader helper object prior to listing the
21852 supported image formats. Otherwise, only a single generic caps is output
21853 with no particular pixel format referenced in there.
21855 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
21857 * gst/vaapi/gstvaapiupload.c:
21858 * gst/vaapi/gstvaapiupload.h:
21859 vaapiupload: use new GstVaapiUploader helper.
21860 Use GstVaapiUploader helper that automatically handles direct rendering
21861 mode, thus making the "direct-rendering" property obsolete and hence it
21863 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
21864 really well supported and it could actually trigger degraded performance.
21865 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21867 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21869 * gst/vaapi/gstvaapisink.c:
21870 * gst/vaapi/gstvaapiuploader.c:
21871 * gst/vaapi/gstvaapiuploader.h:
21872 vaapisink: compute and expose the supported set of YUV caps.
21873 Make vaapisink expose only the set of supported caps for raw YUV buffers.
21874 Add gst_vaapi_uploader_get_caps() helper function to determine the set
21875 of supported YUV caps as source (for images). This function actually
21876 tries to zero and upload each image to a 64x64 test surface. Of course,
21877 this relies on VA drivers to not claim success if vaPutImage() is not
21878 correctly supported.
21880 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21883 * gst/vaapi/Makefile.am:
21884 * gst/vaapi/gstvaapisink.c:
21885 * gst/vaapi/gstvaapisink.h:
21886 * gst/vaapi/gstvaapiuploader.c:
21887 * gst/vaapi/gstvaapiuploader.h:
21888 vaapisink: add support for raw YUV buffers.
21889 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
21890 It is up to the caller to negotiate source caps (for images) and output
21891 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
21892 to help decide between the creation of a GstVaapiVideoBuffer or a regular
21893 GstBuffer on sink pads.
21894 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
21895 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21897 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21899 * gst-libs/gst/vaapi/gstvaapiimage.c:
21900 image: fix GstVaapiImage map and unmap.
21901 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
21902 structure correctly filled in if the image was already mapped.
21903 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
21904 was already unmapped.
21906 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
21909 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
21910 videobuffer: fix memory leak for surface and image.
21911 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
21912 thus resulting on actual memory leak of GstVaapiImage when using them
21913 for downloads/uploads from VA surfaces and more specifically surfaces
21914 when the pipeline is shutdown. i.e. vaTerminate() was never called
21915 because the resources were not unreferenced, and thus not deallocated
21917 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21919 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21924 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21926 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21927 h264: fix picture size in macroblocks.
21928 The picture size signalled by sps->{width,height} is the actual size with
21929 cropping applied, not the original size derived from pic_width_in_mbs_minus1
21930 and pic_height_in_map_units_minus1. VA driver expects that original size,
21932 There is another issue pending: frame cropping information needs to be
21935 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21937 * gst-libs/gst/codecparsers/Makefile.am:
21938 codecparsers: always build parserutils first.
21939 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
21940 This is needed since that's the common dependency for actual codec
21941 parsers (gstvc1parser.c for instance).
21943 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21945 * gst-libs/gst/codecparsers/Makefile.am:
21946 codecparsers: always build the VC-1 parser library.
21947 ... this is useful to make sure pixel-aspect-ratio and framerate
21948 information are correctly parsed since we have no means to detect
21949 that at configure time.
21951 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21954 * gst-libs/gst/codecparsers/Makefile.am:
21955 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21956 mpeg2: fix PAR calculation from commit bd11bae.
21957 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
21958 correct PAR values. While doing so, require a newer version of the
21959 bitstream parser library.
21960 Note: it may be necessary to also parse the Sequence_Display_Extension()
21962 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21963 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21965 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21967 * gst-libs/gst/vaapi/Makefile.am:
21968 Fix build with the GNU gold linker.
21969 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
21970 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
21972 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
21975 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21976 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
21977 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
21978 wayland: port to 1.0 version of the protocol.
21979 This patch updates to relect the 1.0 version of the protocol. The main
21980 changes are the switch to wl_registry for global object notifications
21981 and the way that the event queue and file descriptor is processed.
21982 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21984 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21986 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21987 h264: fix incorrect integration of previous commit (4d31e1e).
21988 git am got confused somehow, though the end result doesn't change at
21989 all since we require both SPS and PPS to be parsed prior to decoding
21992 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21994 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21995 h264: start decoding slices after first SPS/PPS activation.
21996 Only start decoding slices when at least one SPS and PPS got activated.
21997 This fixes cases when a source represents a substream of another stream
21998 and no SPS and PPS was inserted before the first slice of the generated
22001 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22003 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22004 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
22005 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
22006 contain up to 32 fields but VA ReferenceFrames[] array expects up to
22007 16 reference frames, thus including both fields.
22009 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22011 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22012 h264: fix interlaced stream decoding with MMCO.
22013 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
22014 is equal to 1, i.e. when memory management control operations are used. In
22015 particular, when field_pic_flag is set to 0, the new reference flags shall
22016 be applied to both fields.
22018 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22020 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22021 h264: add initial support for interlaced streams.
22022 Decoded frames are only output when they are complete, i.e. when both
22023 fields are decoded. This also means that the "interlaced" caps is not
22024 propagated to vaapipostproc or vaapisink elements. Another limitation
22025 is that interlaced bitstreams with MMCO are unlikely to work.
22027 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22029 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22030 h264: split remove_reference_at() into finer units.
22031 Split remove_reference_at() into a function that actually removes the
22032 specified entry from the short-term or long-term reference picture array,
22033 and a function that sets reference flags to the desired value, possibly
22034 zero. The latters marks the picture as "unused for reference".
22036 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22038 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22039 decoder: fix gst_vaapi_picture_new_field() object type.
22040 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
22041 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
22042 shall generate a GstVaapiPictureH264 object.
22044 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22046 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22047 h264: add picture structure for reference picture marking process.
22048 Introduce new `structure' field to the H.264 specific picture structure
22049 so that to simplify the reference picture marking process. That local
22050 picture structure is derived from the original picture structure, as
22051 defined by the syntax elements field_pic_flag and bottom_field_flag.
22053 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22055 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22056 h264: introduce new frame store structure.
22057 The frame store represents a Decoded Picture Buffer entry, which can
22058 hold up to two fields. So far, the frame store is only used to hold
22061 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22063 * ext/codecparsers:
22064 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
22065 73d6aab h264: fix rbsp_more_data() implementation
22066 25d04cf h264: fix error code for invalid size parsed in SPS
22067 84798e5 fix FSF address
22069 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22071 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22072 h264: minor clean-ups.
22073 Move DPB flush up if the current picture to decode is an IDR. Besides,
22074 don't bother to check for IDR pictures in dpb_add() function since an
22075 explicit DPB flush was already performed in this case.
22077 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22079 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22080 h264: simplify reference picture marking process.
22081 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
22082 of maintaining them separately. This avoids refs/unrefs while making it
22083 possible to generate the list based on the actual picture structure.
22084 This also ensures that the list of generated ReferenceFrames[] actually
22085 matches what reference frames are available in the DPB. i.e. short_ref[]
22086 and long_ref[] entries are implied from the DPB, so there is no risk of
22087 having "dangling" references.
22089 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22091 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22092 h264: introduce per-field POC in GstVaapiPictureH264.
22093 Use the POC member available in the GstVaapiPicture base class and
22094 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
22095 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
22096 initialized to INT_MAX, so that to simplify picture POC calculation
22097 for non frame pictures.
22099 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22101 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22102 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
22103 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
22104 reference bits, thus simplifying the reference picture marking process
22105 to only track a single set of reference flags. Also introduce a new
22106 long_term_frame_idx member.
22108 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22110 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22111 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
22113 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22115 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22116 h264: fill in GstVaapiPicture structure.
22117 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
22119 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22121 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22122 h264: add vaapi_fill_picture() helper.
22123 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
22124 to VAPictureH264 structure. This is preparatory work to get rid of the
22125 local VAPictureH264 member in GstVaapiPictureH264.
22127 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22129 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22130 h264: fix activation order of picture and sequence parameters.
22131 Delay ensure_context() until we actually need a VA context for allocating
22132 new VA surfaces, and then GstVaapiPictures, but also when a real activation
22133 of a new picture parameter set occurs, thus also implying an activation
22134 of the related sequence parameter set.
22135 The most important thing was to drop the global pps and sps pointers since
22136 they may not have matched the currently activated picture parameter or
22137 sequence parameter sets at the specified decode point.
22138 Anoter positive side-effect is that this cleans up all occurrences of
22139 decode_current_picture() to only keep those useful in decode_picture(),
22140 before a new picture is allocated, or in decode_sequence_end() when
22141 an end-of-stream or end-of-sequence condition occurred.
22143 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22145 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22146 h264: fix scaling list generation.
22147 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
22148 array was partially copied to the VAIQMatrixBufferH264. While we are
22149 at it, also improve bounds checking and avoid copying 8x8 scaling
22150 lists if transform_8x8_mode_flag is set to 0.
22152 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22154 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22155 h264: fix detection of picture boundaries.
22156 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
22157 unit of a primary coded picture.
22159 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22161 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22162 h264: optimize handling of scaling lists.
22163 Don't copy scaling lists twice to an intermediate state. Rather, directly
22164 use the scaling lists from GstH264PPS since they would match those provided
22165 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
22166 available in the bitstream.
22168 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22170 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22171 h264: simplify code when MMCO is 5.
22172 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
22173 is now updated accordingly to the standard. Besides, MMCO = 5 specific
22174 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
22176 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22178 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22179 h264: fix MMCO-based reference picture marking process.
22180 Fix adaptive memory control decoded reference picture marking process
22181 implementation for operations 2 to 6, thus also fixing support for
22182 long-term reference pictures.
22184 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22186 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22187 h264: move MMCO handlers out of the loop (cosmetics).
22188 This change only splits each individual MMCO handler into several functions
22189 dedicated for each operation. This is needed to perform further work later
22192 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22195 debian: fix make dist for packaging.
22196 bzip2 tarballs are now used, so update the deb.upstream dependencies
22197 to include dist-bzip2 instead of plain old dist, and use the correct
22198 tar extract options to handle that format.
22200 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22203 configure: generate bzip2 tarballs in ustar format by default.
22205 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22208 configure: bump glib required version to 2.31.2.
22209 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
22210 rather than g_mutex_new() and g_cond_new() respectively.
22212 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
22214 * gst/vaapi/gstvaapidecode.c:
22215 * gst/vaapi/gstvaapidecode.h:
22216 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
22217 The use of heap allocated GMutex/GCond is deprecated. Instead place them
22218 inside the structure they are locking.
22219 These changes switch to use g_mutex_init/g_cond_init rather than the heap
22220 allocation functions.
22221 Because we cannot test for a NULL pointer for the GMutex/GCond we must
22222 initialise inside the GObject _init function and clear inside the _finalize
22223 which is guaranteed to only be called once and after the object is no longer
22226 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22228 * gst/vaapi/gstvaapidecode.c:
22229 vaapidecode: fix compiler warnings.
22230 Don't care of the return value for gst_vaapi_decoder_put_buffer()
22231 during destruction of the element. Don't print out (uninitialised)
22232 error code when allocation of video buffer failed.
22234 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22236 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22237 h264: add flag to compile with strict DPB ordering mode.
22238 Allow build with strict DPB ordering mode whereby evicted entries
22239 are replaced by the next entries, in order instead of optimizing
22240 it away with the last entry in the DPB.
22241 This is only useful for debugging purpose, against a reference SW
22242 decoder for example.
22244 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22246 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22247 h264: drop extra code covered by built-in codecparsers.
22248 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
22249 a newer version of codecparsers/ are used if the system provided one is
22250 now recent enough to have those required extensions.
22252 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22254 * gst-libs/gst/codecparsers/Makefile.am:
22255 codecparsers: fix generation of symlinks.
22256 Try to improve dependencies while generating symlinks to externally
22257 maintained copy of codecparsers (derived from upstream git master
22260 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22262 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22263 vc1: use framerate information from bitstream parser.
22265 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22267 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22268 vc1: use pixel-aspect-ratio from bitstream parser.
22269 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22270 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22272 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22274 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22275 mpeg2: use pixel-aspec-ratio information from bitstream parser.
22276 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22277 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22279 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22282 * gst-libs/gst/codecparsers/Makefile.am:
22283 codecparsers: h264: use submodule sources.
22284 Use newer sources from the codecparsers/ submodule for
22285 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
22286 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
22288 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22292 * gst-libs/gst/codecparsers/Makefile.am:
22293 * gst-libs/gst/codecparsers/gstjpegparser.c:
22294 * gst-libs/gst/codecparsers/gstjpegparser.h:
22295 * gst-libs/gst/vaapi/Makefile.am:
22296 codecparsers: jpeg: use submodule sources.
22298 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22305 * ext/codecparsers:
22306 Add codecparsers submodule.
22308 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22311 .gitignore: updates.
22313 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22316 autogen: fix check for gtkdocize and autoreconf.
22317 If gtkdocize or autoreconf programs were not found, then the autogen.sh
22318 script would fail to report that correctly because test -z was not passed
22319 any argument (empty string "" in this case).
22321 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22323 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22324 h264: use pixel-aspect-ratio from SPS header.
22325 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
22326 from the sequence headers.
22327 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22328 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22330 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22332 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22333 h264: add decode_nalu() helper function.
22334 Split decode_buffer() into the core infrastructure that determines
22335 the NAL units contained in the adapter and the actual function that
22336 decodes the NAL unit.
22338 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22340 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22341 h264: fix end-of-stream conditions (flush).
22342 Decode pending data in the adapter prior to processing the actual
22343 code for end-of-stream.
22345 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22347 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22348 mpeg2: add decode_packet() helper function.
22349 Split decode_buffer() into the core infrastructure that determines
22350 the packets contained in the adapter and the actual function that
22351 decodes the packet data.
22353 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22355 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22356 mpeg2: fix end-of-stream conditions (flush).
22357 Decode pending data in the adapter prior to processing the actual
22358 code for end-of-stream. Initial code from Feng Yuan.
22360 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22362 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22363 mpeg2: fix memory leak of empty packets.
22364 Fix memory leakage of empty packets, i.e. packets that only contain
22365 the start code prefix. In particular, free empty user-data packets.
22366 Besides, the codec parser will already fail gracefully if the packet
22367 to parse does not have the minimum required size. So, we can also
22368 completely drop the block of code that used to handle packets of size 4
22369 (including the start code).
22371 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22373 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22374 mpeg2: fix return value for "no-data" conditions.
22375 Fix return value when the second scan for start code fails. This means
22376 there is not enough data to determine the full extents of the current
22377 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
22378 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
22380 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22382 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22383 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
22384 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
22385 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
22386 or with a size equals to zero. In this case, that buffer is simply
22387 skipped and the function returns TRUE. A NULL buffer argument still
22388 marks the end-of-stream.
22390 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22392 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22393 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22394 decoder: drop unused functions.
22396 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
22398 * gst/vaapi/gstvaapidecode.c:
22399 vaapidecode: flush buffers when receiving EOS.
22400 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22402 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22404 * debian.upstream/Makefile.am:
22405 debian: fix make dist for packaging.
22407 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22409 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
22410 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22411 wayland: cosmetics (remove tabs).
22413 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
22415 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22416 wayland: add support for windowed mode.
22417 Rather than always making the surface fullscreen instead implement the
22418 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
22419 fullscreen on not depending on that.
22420 Reviewed-by: Joe Konno <joe.konno@intel.com>
22421 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22423 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22426 Bump version for development.
22428 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22432 Fix and document build dependencies better.
22434 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22436 * debian.upstream/control.in:
22437 debian: fix GStreamer build dependencies.
22439 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22442 * debian.upstream/control.in:
22443 debian: fix Wayland build dependencies.
22445 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22447 * debian.upstream/control.in:
22448 debian: fix conditional build of packages.
22449 Make it still possible to build package even if one of the build dependencies
22450 for a specific video backend is not available.
22452 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22454 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22455 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22456 utils: drop unused GLX helpers.
22457 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
22458 extensions since they are not used throughout gstreamer-vaapi.
22460 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22462 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22463 utils: fix build with <GL/glext.h> version >= 85.
22464 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
22465 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
22466 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
22467 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
22468 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
22469 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
22470 newer versions of the <GL/glext.h> header.
22472 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22475 configure: update VA-API version requirements.
22476 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
22478 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22480 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22481 h264: review and report errors accordingly.
22482 Use GST_ERROR() to report real errors instead of hiding them into
22485 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22487 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22488 h264: exclusively use GstAdapter, drop sub-buffer hack.
22489 Maintaining the sub-buffer is rather suboptimal especially since we
22490 were also maintaining a GstAdapter. Now, we only use the GstAdapter
22491 thus requiring minor extra parsing when receiving avcC buffers.
22493 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22498 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22503 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22505 * debian.upstream/gstreamer-vaapi.install.in:
22506 debian: fix packaging on recent Ubuntu platforms.
22507 Use explicit GStreamer plugins path.
22509 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22511 * docs/reference/libs/libs-docs.xml.in:
22512 * docs/reference/libs/libs.core.types:
22513 docs: fix build for make dist.
22515 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
22517 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22518 wayland: set opaque region for YUV surface.
22519 This allows the compositor to optimize redraws and cull away changes
22520 obscured by the video surface.
22521 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22523 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22526 configure: fix check for libva-glx and libva-drm.
22528 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22530 * gst-libs/gst/vaapi/glibcompat.h:
22531 glibcompat: add replacement for g_cond_wait_until().
22533 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22535 * gst/vaapi/gstvaapidecode.c:
22536 * gst/vaapi/gstvaapidownload.c:
22537 * gst/vaapi/gstvaapipostproc.c:
22538 * gst/vaapi/gstvaapisink.c:
22539 * gst/vaapi/gstvaapiupload.c:
22540 plugins: include "sysdeps.h" instead of "config.h".
22542 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22544 * gst-libs/gst/codecparsers/gstjpegparser.c:
22545 codecparsers: jpeg: add missing includes.
22547 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22549 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22550 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22551 * gst/vaapi/gstvaapidecode.c:
22552 vaapidecode: don't reset decoder if codec type is the same.
22553 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
22554 if the underlying codec type actually changed. This makes it possible
22555 to be more tolerant with certain MPEG-2 streams that get parsed to
22556 form caps that are compatible with the previous state but minor changes
22559 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22561 * gst/vaapi/gstvaapidecode.c:
22562 vaapidecode: simplify codec lookup from caps.
22563 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
22564 the specified caps. Don't globally expose this function since this is
22565 really trivial and only used in the vaapidecode element.
22567 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22569 * gst/vaapi/gstvaapidecode.c:
22570 * gst/vaapi/gstvaapidecode.h:
22571 vaapidecode: improve "no free surface" conditions.
22572 Previously, vaapidecode would wait up to one second until a free surface
22573 is available, or it aborts decoding. Now, vaapidecode waits until the
22574 last decoded surface was to be presented, plus one second. Besides, end
22575 times are now expressed relative to the monotonic clock.
22577 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22579 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22580 * gst/vaapi/gstvaapidecode.c:
22581 decoder: propagate buffer duration downstream.
22583 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22585 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22586 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
22587 surfaceproxy: add "duration" property.
22589 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22591 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22592 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22593 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
22594 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22595 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22596 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22597 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22598 decoder: cope with new GstVaapiContextInfo based API.
22599 Update decoders to report the maximum number of reference frames to use.
22601 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22603 * gst-libs/gst/vaapi/gstvaapicontext.c:
22604 context: JPEG codec does not need any reference frame.
22606 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22608 * gst-libs/gst/vaapi/gstvaapicontext.c:
22609 * gst-libs/gst/vaapi/gstvaapicontext.h:
22610 context: allow number of reference frames to be set.
22611 Make it possible to specify the maximum number of references to use within
22612 a single VA context. This helps reducing GPU memory allocations to the useful
22613 number of references to be used.
22615 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22617 * gst/vaapi/gstvaapipostproc.c:
22618 vaapipostproc: fix deinterlace-{mode,method} types definition.
22620 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22622 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22623 mpeg4: fix debug info for unsupported profile.
22625 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22627 * gst-libs/gst/vaapi/gstvaapicontext.c:
22628 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22629 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22630 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
22631 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22632 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22633 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22634 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22635 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
22636 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
22637 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
22638 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
22639 * gst-libs/gst/vaapi/gstvaapiimage.c:
22640 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
22641 * gst-libs/gst/vaapi/gstvaapiobject.c:
22642 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
22643 * gst-libs/gst/vaapi/gstvaapisurface.c:
22644 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
22645 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22646 * gst-libs/gst/vaapi/gstvaapitexture.c:
22647 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22648 * gst-libs/gst/vaapi/gstvaapivalue.c:
22649 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
22650 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
22651 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
22652 * gst-libs/gst/vaapi/gstvaapivideopool.c:
22653 * gst-libs/gst/vaapi/gstvaapiwindow.c:
22654 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
22655 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22656 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22657 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22658 libs: fix build in strict ISO C mode.
22660 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22662 * gst/vaapi/gstvaapi.c:
22663 * gst/vaapi/gstvaapidecode.c:
22664 * gst/vaapi/gstvaapidownload.c:
22665 * gst/vaapi/gstvaapipostproc.c:
22666 * gst/vaapi/gstvaapisink.c:
22667 * gst/vaapi/gstvaapiupload.c:
22668 plugins: fix build in strict ISO C mode.
22670 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22672 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22673 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22674 * pkgconfig/gstreamer-vaapi.pc.in:
22675 pkgconfig: fix dependencies and slightly improve description.
22676 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
22677 descriptions with clearer renderer names.
22679 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
22681 * gst/vaapi/gstvaapidecode.c:
22682 vaapidecode: acquire lock only if the mutex exists.
22683 When playback stops the GstVaapiDecode object is reset into a clean
22684 state. However, surfaces may still be referenced by library users and
22685 unreferencing them after the reset triggers an access to an unset mutex.
22686 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22688 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22690 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22691 decoder: drop extraneous return for void function.
22693 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22695 * gst-libs/gst/vaapi/gstvaapiimage.c:
22696 image: don't use (void *) pointer arithmetic.
22698 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
22700 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22701 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22702 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22703 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
22704 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
22705 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22706 * gst-libs/gst/vaapi/gstvaapisurface.h:
22707 * gst-libs/gst/vaapi/gstvaapitypes.h:
22708 * gst/vaapi/gstvaapipostproc.h:
22709 Do not forward declare enums.
22710 Forward declaring enums is not allowed by the C standard and aborts
22711 compilation if the header file is included in a C++ project.
22712 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22714 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22717 configure: fix check for VA/DRM API.
22719 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22721 * gst/vaapi/gstvaapisink.c:
22722 vaapisink: fix calculation of window size.
22723 If either dimension is out-of-bounds, then scale window to fit the
22724 display size, even if the output is to be rotated. Use the standard
22725 gst_video_sink_center_rect() function to center and scale the window
22726 wrt. the outer (display) bounds.
22728 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
22730 * gst/vaapi/gstvaapisink.c:
22731 * gst/vaapi/gstvaapisink.h:
22732 vaapisink: add video rotation support.
22733 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22735 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22737 * gst/vaapi/gstvaapipluginutil.h:
22738 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
22739 This macro helps swapping variables while maintaining the correct underlying
22740 and primitive type.
22742 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22744 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22745 display: fix display aspect ratio when display is rotated.
22747 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22750 * gst-libs/gst/vaapi/Makefile.am:
22751 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
22752 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
22753 display: fix physical display size when display is rotated.
22755 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22757 * gst-libs/gst/vaapi/gstvaapivalue.c:
22758 display: fix GstVaapiRotation enumeration of values.
22760 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22762 * docs/reference/libs/libs-docs.xml.in:
22763 * docs/reference/libs/libs-sections.txt:
22764 * gst-libs/gst/vaapi/Makefile.am:
22765 * gst-libs/gst/vaapi/gstvaapivideosink.c:
22766 * gst-libs/gst/vaapi/gstvaapivideosink.h:
22767 * gst/vaapi/gstvaapidecode.c:
22768 * gst/vaapi/gstvaapidownload.c:
22769 * gst/vaapi/gstvaapipostproc.c:
22770 * gst/vaapi/gstvaapisink.c:
22771 * gst/vaapi/gstvaapiupload.c:
22772 vaapisink: drop obsolete GstVaapiVideoSink interface.
22773 This interface was deprecated since 0.3.x series when the GstVideoContext
22774 interface was added to the main GStreamer APIs.
22776 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22778 * gst/vaapi/gstvaapisink.c:
22779 * gst/vaapi/gstvaapisink.h:
22780 vaapisink: automatically detect overlay rendering mode.
22781 Retain the VA surface until another surface is to be displayed only
22782 if VA display rendering mode is determined to be "overlay" mode.
22784 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22786 * gst/vaapi/gstvaapisink.c:
22787 * gst/vaapi/gstvaapisink.h:
22788 vaapisink: retain VA surface until another one is displayed.
22789 Keep VA surface proxy associated with the surface that is currently
22790 being displayed. This makes sure that surface is not released back
22791 to the pool of surfaces free to use for decoding. This is necessary
22792 with VA driver implementations that support rendering to an overlay
22793 pipe. Otherwise, there could be cases where we are decoding into a
22794 surface that is being displayed, hence some flickering.
22796 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22798 * gst/vaapi/gstvaapisink.h:
22799 vaapisink: fix build with older toolchains.
22800 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
22802 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22804 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22805 display: partially revert 8ebe4d6.
22806 Don't try to fix up the initial values, this could make things worse.
22807 Simply assume the driver does not support the capability in this case.
22809 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22811 * tests/test-display.c:
22812 tests: dump VA display properties.
22814 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22816 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22817 display: fix validation process of properties during discovery.
22818 Some VA drivers (e.g. EMGD) can have completely random values for initial
22819 display attributes. So, try to improve the discovery process to check the
22820 initial display attribute values actually fall within valid bounds. If not,
22821 try to reset those to some sensible values like the default value reported
22822 through vaQueryDisplayAttributes().
22824 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22826 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22827 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22828 display: add color balance properties.
22829 Add support for hue, saturation, brightness and contrast attributes.
22831 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22833 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22834 display: initialize default attribute values.
22835 Ensure the display attribute is actually supported by trying to retrieve
22836 its current value during GstVaapiDisplay creation.
22838 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22840 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22841 display: raise "notify" for property changes.
22843 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22845 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22846 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22847 display: expose display attributes as GObject properties.
22848 Expose VA display "render-mode" and "rotation" attributes as standard
22849 GObject properties.
22851 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22853 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22854 display: install properties in batch.
22855 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
22856 It is useful to maintain properties as GParamSpec so that to be able to raise
22857 "notify" signals by id instead of by name in the future.
22859 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22861 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22862 display: fix gst_vaapi_display_has_property().
22863 Append the "render-mode" and "rotation" properties, should they be supported
22864 by the underlying VA driver.
22866 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
22868 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22869 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22870 * gst-libs/gst/vaapi/gstvaapitypes.h:
22871 * gst-libs/gst/vaapi/gstvaapiutils.c:
22872 * gst-libs/gst/vaapi/gstvaapiutils.h:
22873 * gst-libs/gst/vaapi/gstvaapivalue.c:
22874 * gst-libs/gst/vaapi/gstvaapivalue.h:
22875 display: add support for rotation modes.
22876 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22878 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22880 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22881 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22882 * gst-libs/gst/vaapi/gstvaapitypes.h:
22883 * gst-libs/gst/vaapi/gstvaapivalue.c:
22884 * gst-libs/gst/vaapi/gstvaapivalue.h:
22885 display: add support for rendering modes.
22886 A rendering mode can be "overlay" or "texture"'ed blit.
22887 The former mode implies that a VA surface used for rendering can't be
22888 re-used right away for decoding, so the sink shall make provisions to
22889 retain the associated surface proxy until the next surface is to be
22891 The latter mode implies that the VA surface is implicitly copied to an
22892 intermediate backing store, or back buffer of a frame buffer, so the
22893 associated surface proxy can be disposed right away.
22895 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22897 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22898 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22899 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22900 display: add initial support for display attributes.
22901 The VA display attributes are mapped to properties so that to maintain the
22902 GStreamer terminology. Properties are to be identified by name, but internal
22903 functions are available to lookup the property by the actual VA display
22906 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22908 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
22909 jpeg: fix end-of-image (EOI) handler.
22910 decode_current_picture() was converted to return a gboolean instead
22911 of a GstVaapiDecoderStatus, so we were not getting out of the decode
22912 loop as expected, or could cause an error instead.
22913 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22915 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22917 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22918 mpeg2: include start code into VA slice data buffer.
22919 Integrate the start code prefix in the slice data buffer that is submitted
22920 to the hardware. VA-API specifies that slice_data_offset is the offset to
22921 the first byte of slice data. And, for MPEG-2, slice() data begins with
22922 the slice_start_code. Some VA driver implementations (EMGD) expect this.
22924 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
22927 autogen: fix configure script generation when srcdir != builddir.
22928 This patch allows for regenerating the configure script from a build
22929 directory that is not the actual source directory.
22930 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22932 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
22935 configure: use new libtool syntax.
22936 This now requires libtool >= 2.2 to regenerate the configure script.
22937 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22939 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
22941 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22942 decoder: use g_object_notify_by_pspec().
22943 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
22944 avoid a property name lookup. i.e. this makes notifications faster to
22945 the `vaapidecode' element.
22946 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22948 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22950 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22951 wayland: handle de-interlacing flags.
22952 VA/Wayland API was updated to allow flags for bob deinterlacing.
22953 More elaborated filters will require a complete VA/VPP pipeline.
22955 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22957 * gst-libs/gst/codecparsers/gstjpegparser.c:
22958 jpeg: fix default quantization tables.
22959 Two elements in the luminance quantization table were wrong. So,
22960 gst_jpeg_get_default_quantization_tables() now reconstructs tables
22961 in zig-zag order from the standard ones (Tables K.1 and K.2).
22963 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22965 * gst-libs/gst/codecparsers/gstjpegparser.c:
22966 jpeg: compute default Huffman tables.
22967 ... instead of having them pre-calculated. This saves around 1.5 KB
22968 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
22969 to do more work. Though, the client application may have to call that
22970 function at most once, only.
22972 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22974 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22975 display: drop VAProfileNone entries from debug messages.
22977 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
22979 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22980 display: query for supported display attributes.
22981 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22983 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
22985 * gst-libs/gst/vaapi/gstvaapiutils.c:
22986 * gst-libs/gst/vaapi/gstvaapiutils.h:
22987 utils: add string_of_VADisplayAttributeType() helper.
22988 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22990 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22992 * gst/vaapi/gstvaapisink.c:
22993 vaapisink: handle VA/DRM API.
22994 This is not useful in practice but for raw performance evaluation when
22995 the sink is invoked with display=drm sync=false. fakesink could also be
22998 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23000 * gst/vaapi/Makefile.am:
23001 * gst/vaapi/gstvaapipluginutil.c:
23002 plugins: add support for headless pipelines.
23004 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23006 * tests/Makefile.am:
23008 * tests/test-display.c:
23009 * tests/test-windows.c:
23010 tests: add support for headless decoding.
23012 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23016 * debian.upstream/Makefile.am:
23017 * debian.upstream/control.in:
23018 * debian.upstream/libgstvaapi-drm.install.in:
23019 * gst-libs/gst/vaapi/Makefile.am:
23020 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23021 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23022 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23023 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23024 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23025 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
23026 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
23027 * pkgconfig/Makefile.am:
23028 * pkgconfig/gstreamer-vaapi-drm.pc.in:
23029 Add initial support for VA/DRM.
23031 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23034 * gst-libs/gst/vaapi/Makefile.am:
23035 Fix build without X11 (again).
23036 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
23037 files list wrt. x11, glx and wayland backends.
23039 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23042 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23043 * gst-libs/gst/vaapi/gstvaapicompat.h:
23044 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23045 jpeg: update to the latest VA-API changes (0.32.1+).
23047 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23049 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23050 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23051 * gst/vaapi/gstvaapisink.c:
23052 wayland: implement display ::get_size*() hooks.
23054 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23056 * gst/vaapi/gstvaapipluginutil.c:
23057 plugins: prefer X11 rendering over GLX.
23058 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
23059 for rendering instead of texturing.
23061 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
23063 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
23064 wayland: use scale fullscreen method.
23065 This makes the compositor scale the surface to fit and preserves aspect
23067 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23069 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
23071 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
23072 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
23073 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23075 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23077 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23078 wayland: fix double disconnect of display.
23080 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23082 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23083 wayland: mangle display name for cache lookups.
23085 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23088 * debian.upstream/Makefile.am:
23089 * debian.upstream/control.in:
23090 * debian.upstream/libgstvaapi-wayland.install.in:
23091 * pkgconfig/Makefile.am:
23092 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
23093 wayland: add packaging files.
23095 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23097 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23098 * gst/vaapi/gstvaapipluginutil.c:
23099 * gst/vaapi/gstvaapisink.c:
23100 * pkgconfig/Makefile.am:
23101 Fix build without X11.
23103 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23105 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23106 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23107 * gst/vaapi/Makefile.am:
23108 * gst/vaapi/gstvaapipluginutil.c:
23109 * gst/vaapi/gstvaapisink.c:
23110 plugins: add support for Wayland.
23112 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23114 * tests/Makefile.am:
23116 * tests/test-display.c:
23117 * tests/test-windows.c:
23118 tests: add support for Wayland.
23120 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23124 * gst-libs/gst/vaapi/Makefile.am:
23125 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23126 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23127 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23128 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23129 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
23130 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
23131 Add initial support for VA/Wayland.
23132 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23134 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23136 * gst/vaapi/gstvaapipluginbuffer.c:
23137 plugins: fix creation of video buffer from surface proxy.
23138 Fix a regression introduced with commit 8ef490a.
23140 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23142 * gst/vaapi/gstvaapipluginbuffer.c:
23143 * gst/vaapi/gstvaapipluginutil.c:
23144 plugins: use new display types more.
23145 In particular, simplify gst_vaapi_reply_to_query() with display types.
23146 Likewise for creating new video buffers.
23148 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23150 * gst/vaapi/gstvaapidecode.c:
23151 * gst/vaapi/gstvaapidownload.c:
23152 * gst/vaapi/gstvaapipluginutil.c:
23153 * gst/vaapi/gstvaapipluginutil.h:
23154 * gst/vaapi/gstvaapipostproc.c:
23155 * gst/vaapi/gstvaapisink.c:
23156 * gst/vaapi/gstvaapiupload.c:
23157 plugins: fix display type selection and propagation.
23158 If vaapisink is in the GStreamer pipeline, then we shall allocate a
23159 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
23160 queries from vaapidecode shall get a valid answer from vaapisink.
23162 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23164 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23165 display: fix destruction of mutex.
23167 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23169 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23170 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23171 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23172 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23173 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23174 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23175 * gst/vaapi/gstvaapipluginutil.c:
23176 * gst/vaapi/gstvaapipluginutil.h:
23177 * gst/vaapi/gstvaapisink.c:
23178 display: add display types.
23179 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
23180 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
23181 type to "any", and add a "display-type" attribute.
23183 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23185 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23186 display: use prefixed display names for cache lookups.
23187 This improves display name comparisons by always allocating a valid display
23188 name. This also helps to disambiguate lookups by name in the global display
23189 cache, should a new backend be implemented.
23191 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23193 * gst/vaapi/gstvaapipluginutil.h:
23194 plugins: declare helper functions as internal.
23196 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23198 * docs/reference/libs/libs-sections.txt:
23199 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
23200 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
23201 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
23202 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
23203 * gst/vaapi/Makefile.am:
23204 * gst/vaapi/gstvaapidecode.c:
23205 * gst/vaapi/gstvaapidownload.c:
23206 * gst/vaapi/gstvaapipluginbuffer.c:
23207 * gst/vaapi/gstvaapipluginbuffer.h:
23208 * gst/vaapi/gstvaapipostproc.c:
23209 * gst/vaapi/gstvaapiupload.c:
23210 videobuffer: drop deprecated functions.
23211 Move video buffer creation routines to plugin elements. That exclusively
23212 uses *_typed_new*() variants.
23214 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23216 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
23217 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
23218 videobuffer: mark video buffer creation routines as deprecated.
23219 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
23220 plugin elements. So deprecate any explicit creation routines that are not the
23221 new *_typed_new*() variants.
23223 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23225 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
23226 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
23227 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
23228 videobuffer: factor out base and GLX implementations.
23229 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
23230 This avoids duplication of code, and makes it possible to further implement
23231 generic video buffer creation routines that automatically map to base or GLX
23234 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23236 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
23237 utils: fix gl_create_context() with parent context set.
23238 If GLX window was created from a foreign Display, then that same Display shall
23239 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
23240 will now use the same Display that the parent, if available.
23241 This fixes cluttersink with the Intel GenX VA driver.
23243 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23245 * gst/vaapi/gstvaapidecode.c:
23246 * gst/vaapi/gstvaapidownload.c:
23247 * gst/vaapi/gstvaapipluginutil.c:
23248 * gst/vaapi/gstvaapipluginutil.h:
23249 * gst/vaapi/gstvaapipostproc.c:
23250 * gst/vaapi/gstvaapisink.c:
23251 * gst/vaapi/gstvaapiupload.c:
23252 pluginutils: improve automatic display type selection.
23254 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23256 * gst/vaapi/gstvaapipluginutil.c:
23257 * gst/vaapi/gstvaapipluginutil.h:
23258 pluginutils: cosmetics (indentation fixes).
23260 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23263 configure: simplify video outputs summary.
23265 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23268 * gst/vaapi/gstvaapipluginutil.c:
23269 * gst/vaapi/gstvaapipluginutil.h:
23270 * gst/vaapi/gstvaapisink.c:
23271 * gst/vaapi/gstvaapisink.h:
23272 configure: drop check for --enable-vaapisink-glx.
23273 vaapisink is now built with support for multiple display types, whenever
23274 they are enabled. The new "display" attribute is used to select a particular
23277 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23280 * gst-libs/gst/vaapi/gstvaapicompat.h:
23281 * gst/vaapi/Makefile.am:
23282 * gst/vaapi/gstvaapidecode.c:
23283 * gst/vaapi/gstvaapidownload.c:
23284 * gst/vaapi/gstvaapipluginutil.c:
23285 * gst/vaapi/gstvaapipostproc.c:
23286 * gst/vaapi/gstvaapiupload.c:
23287 * tests/test-display.c:
23288 configure: drop check for --enable-vaapi-glx.
23289 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
23290 support, or fallback to TFP+FBO if this API is not found. Now, we check for
23291 the VA/GLX API by default if --enable-glx is set. If this API is not found,
23292 we now default to use TFP+FBO.
23293 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
23294 will be removed in the future. If GLX rendering is requested, then the VA/GLX
23295 API shall be used as it covers most usages. e.g. AMD driver can't render to
23298 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23301 tests: allow GLX output, if available and selected.
23303 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23305 * tests/Makefile.am:
23308 * tests/test-decode.c:
23309 * tests/test-subpicture.c:
23310 * tests/test-surfaces.c:
23311 tests: use common display and window creation routines.
23312 Add new --output option to select the renderer. Use --list-outputs to
23313 print a list of supported renderers.
23315 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23317 * tests/Makefile.am:
23318 tests: move encoded bitstreams to libutils.la.
23320 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23322 * tests/Makefile.am:
23323 tests: build convenience library for common utilities.
23325 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23327 * tests/Makefile.am:
23328 * tests/test-display.c:
23329 tests: simplify build with various display options.
23331 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23334 configure: improve checks for X11.
23336 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23338 * tests/Makefile.am:
23339 configure: fix previous commit for GLX deps.
23341 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23344 * gst-libs/gst/vaapi/Makefile.am:
23345 configure: improve checks for GLX.
23347 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23350 * gst-libs/gst/vaapi/gstvaapicompat.h:
23351 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23352 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23353 * gst-libs/gst/vaapi/gstvaapiutils.h:
23354 Drop support for obsolete VA-API versions < 0.30.4.
23356 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23359 * gst-libs/gst/Makefile.am:
23360 * gst-libs/gst/gstutils_version.h.in:
23361 * gst/vaapi/gstvaapisink.c:
23362 vaapisink: drop checks for new APIs used by default.
23363 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
23364 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
23365 are no longer necessary.
23367 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23370 configure: cosmetics and some minor changes.
23371 - Better grouping of feature checks
23372 - Sort list of config files to generate
23374 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23377 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23378 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
23379 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23380 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
23381 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
23382 * gst-libs/gst/vaapi/gstvaapiutils.h:
23383 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
23384 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
23385 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
23387 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23389 * gst-libs/gst/vaapi/Makefile.am:
23390 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
23391 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
23392 Drop obsolete GstVaapiTSB.
23393 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
23395 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23397 * docs/reference/libs/libs-sections.txt:
23398 docs: add missing entries for the JPEG decoder.
23400 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23403 * gst-libs/gst/vaapi/Makefile.am:
23404 * gst/vaapi/gstvaapidecode.c:
23405 * tests/test-decode.c:
23406 * tests/test-subpicture.c:
23407 Drop all references to USE_CODEC_PARSERS.
23409 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23413 * docs/reference/libs/libs-sections.txt:
23414 * docs/reference/libs/libs.core.types:
23415 * gst-libs/gst/vaapi/Makefile.am:
23416 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
23417 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
23418 * gst/vaapi/gstvaapidecode.c:
23419 * gst/vaapi/gstvaapidecode.h:
23420 * tests/test-decode.c:
23421 * tests/test-subpicture.c:
23422 Drop FFmpeg-based decoders.
23423 GStreamer codecparsers-based decoders are the only supported decoders now.
23424 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
23426 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
23429 * debian.upstream/control.in:
23430 configure: bump glib required version to 2.28.
23431 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23433 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
23435 * gst/vaapi/gstvaapidecode.h:
23436 * gst/vaapi/gstvaapidownload.h:
23437 * gst/vaapi/gstvaapipostproc.h:
23438 * gst/vaapi/gstvaapisink.h:
23439 * gst/vaapi/gstvaapiupload.h:
23440 plugins: declare _get_type() functions as const.
23441 Declaring a function as const enables better optimization of calls to
23443 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23445 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
23447 * gst/vaapi/gstvaapidecode.c:
23448 * gst/vaapi/gstvaapidownload.c:
23449 * gst/vaapi/gstvaapipostproc.c:
23450 * gst/vaapi/gstvaapisink.c:
23451 * gst/vaapi/gstvaapiupload.c:
23452 plugins: use g_clear_object() wherever applicable.
23453 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23455 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
23457 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23458 * gst-libs/gst/vaapi/gstvaapicontext.h:
23459 * gst-libs/gst/vaapi/gstvaapidecoder.h:
23460 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
23461 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
23462 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
23463 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
23464 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
23465 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
23466 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23467 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
23468 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23469 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23470 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23471 * gst-libs/gst/vaapi/gstvaapiimage.h:
23472 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
23473 * gst-libs/gst/vaapi/gstvaapiobject.h:
23474 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
23475 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
23476 * gst-libs/gst/vaapi/gstvaapisurface.h:
23477 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
23478 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23479 * gst-libs/gst/vaapi/gstvaapitexture.h:
23480 * gst-libs/gst/vaapi/gstvaapivalue.h:
23481 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
23482 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
23483 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
23484 * gst-libs/gst/vaapi/gstvaapivideopool.h:
23485 * gst-libs/gst/vaapi/gstvaapivideosink.h:
23486 * gst-libs/gst/vaapi/gstvaapiwindow.h:
23487 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
23488 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
23489 libs: declare _get_type() functions as const.
23490 Declaring a function as const enables better optimization of calls
23492 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23494 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
23496 * gst-libs/gst/vaapi/glibcompat.h:
23497 * gst-libs/gst/vaapi/gstvaapicontext.c:
23498 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23499 * gst-libs/gst/vaapi/gstvaapiobject.c:
23500 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
23501 * gst-libs/gst/vaapi/gstvaapisurface.c:
23502 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23503 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
23504 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
23505 * gst-libs/gst/vaapi/gstvaapivideopool.c:
23506 libs: use g_clear_object() wherever applicable.
23507 This is a preferred thread-safe version. Also add an inline version of
23508 g_clear_object() if compiling with glib < 2.28.
23509 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23511 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
23515 * docs/reference/libs/Makefile.am:
23516 * gst-libs/gst/vaapi/Makefile.am:
23517 * gst-libs/gst/vaapi/gstvaapimarshal.list:
23518 * gst-libs/gst/vaapi/gstvaapiobject.c:
23519 libs: use generic g_cclosure_marshal_VOID__VOID().
23520 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23522 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23525 * gst-libs/gst/vaapi/glibcompat.h:
23526 glibcompat: drop explicit check for g_list_free_full().
23528 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23531 Bump version for development.
23533 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23535 * gst-libs/gst/codecparsers/Makefile.am:
23536 jpeg: fix make dist.
23538 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
23542 * docs/Makefile.am:
23543 configure: fix build without gtk-doc support.
23544 Also do not generate tamplate files as all the documentation is inline.
23545 Drop un-needed code in autogen.sh as well.
23546 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23548 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
23553 configure: put m4 macros and autogenerated files into m4/ directory.
23554 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23556 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
23559 configure: drop deprecated autoconf macros.
23560 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
23561 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23563 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
23566 configure: don't use AC_SUBST for some variables.
23567 PKG_CHECK_MODULES already does this for us.
23568 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23570 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23572 * gst/vaapi/gstvaapidecode.c:
23573 * gst/vaapi/gstvaapidownload.c:
23574 * gst/vaapi/gstvaapipostproc.c:
23575 * gst/vaapi/gstvaapiupload.c:
23576 plugins: add support for GstImplementsInterface.
23578 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
23581 * gst/vaapi/gstvaapidecode.c:
23582 * gst/vaapi/gstvaapidownload.c:
23583 * gst/vaapi/gstvaapipostproc.c:
23584 * gst/vaapi/gstvaapisink.c:
23585 * gst/vaapi/gstvaapiupload.c:
23586 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
23587 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23589 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
23592 * gst/vaapi/gstvaapisink.c:
23593 plugins: do not use deprecated GStreamer -base symbols.
23594 Bump GStreamer plugins -base required version to 0.10.31, needed for
23595 gst_x_overlay_got_window_handle().
23596 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23598 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
23601 * gst/vaapi/gstvaapidecode.c:
23602 * gst/vaapi/gstvaapidownload.c:
23603 * gst/vaapi/gstvaapipostproc.c:
23604 * gst/vaapi/gstvaapisink.c:
23605 * gst/vaapi/gstvaapiupload.c:
23606 plugins: do not use deprecated core GStreamer symbols.
23607 Bump GStreamer required version to 0.10.14, needed for
23608 gst_element_class_set_details_simple().
23609 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23611 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23613 * tests/test-decode.c:
23614 tests: fix build without JPEG decoder support.
23616 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23618 * tests/Makefile.am:
23619 * tests/test-decode.c:
23620 * tests/test-jpeg.c:
23621 * tests/test-jpeg.h:
23622 tests: add test for JPEG decoding.
23624 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23626 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23627 jpeg: update to match latest parser API.
23629 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23631 * gst-libs/gst/codecparsers/gstjpegparser.c:
23632 * gst-libs/gst/codecparsers/gstjpegparser.h:
23633 codecparsers: jpeg: tweak parser API.
23634 ... to allow for more consistent parsing API among various codec parsers.
23635 In particular, drop use of GList.
23637 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23640 jpeg: fix configure check for VA/JPEG decoding API.
23642 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23644 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23645 jpeg: fix build with VA-API < 0.32.0.
23647 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23652 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23655 Bump version for development.
23657 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23663 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23668 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
23670 * gst/vaapi/gstvaapipluginutil.c:
23671 vaapiplugin: fix build when compiling without GLX.
23672 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23674 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23677 configure: disable FFmpeg-based decoders.
23678 FFmpeg decoders are still available through the --enable-ffmpeg option
23679 but are no longer maintained.
23681 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23683 * gst-libs/gst/vaapi/Makefile.am:
23684 Fix build with recent GStreamer stack.
23686 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23689 * gst-libs/gst/vaapi/gstvaapicompat.h:
23690 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23691 jpeg: update to current VA/JPEG decoding API.
23693 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23695 * gst-libs/gst/codecparsers/gstjpegparser.c:
23696 * gst-libs/gst/codecparsers/gstjpegparser.h:
23697 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23698 codecparsers: jpeg: track valid quantization and Huffman tables.
23699 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
23700 to determine whether a table actually changed since the last user
23701 synchronization point. That way, this makes it possible for some
23702 hardware accelerated decoding solution to upload only those tables
23705 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
23707 * gst-libs/gst/codecparsers/gstjpegparser.c:
23708 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
23709 Use GstByteReader *_unchecked() variants as much as possible.
23710 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23712 2012-06-04 16:20:13 +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: add new GstJpegHuffmanTables structure.
23718 Add new GstJpegHuffmanTables helper structure to hold all possible
23719 AC/DC Huffman tables available to all components.
23720 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23722 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
23724 * gst-libs/gst/codecparsers/gstjpegparser.c:
23725 * gst-libs/gst/codecparsers/gstjpegparser.h:
23726 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23727 jpeg: make gst_jpeg_parse() support multiple scans.
23728 gst_jpeg_parse() now gathers all scans available in the supplied
23729 buffer. A scan comprises of the scan header and any entropy-coded
23730 segments or restart marker following it. The size and offset to
23731 the associated data (ECS + RST segments) are append to a new
23732 GstJpegScanOffsetSize structure.
23733 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23735 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
23737 * gst-libs/gst/codecparsers/gstjpegparser.c:
23738 * gst-libs/gst/codecparsers/gstjpegparser.h:
23739 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23740 jpeg: update to match latest parser API.
23741 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23743 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23745 * gst-libs/gst/codecparsers/gstjpegparser.h:
23746 jpeg: simplify and optimize parser API.
23748 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
23750 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23751 mpeg: fix picture used to determine backward_reference_vop_coding_type.
23752 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
23753 but Gwenole did not apply all the bits.
23754 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23756 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
23758 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23759 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
23760 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23762 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
23764 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23765 mpeg4: handle skipped frames (vop_hdr->coded = 0).
23766 Gracefully skip non VOP coded frames.
23767 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23769 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
23771 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23772 mpeg4: fix timestamp issues on too fast playback.
23773 Improve generation of presentation timestamps to be less sensitive
23774 to input stream errors. In practise, GOP is also a synchronization
23775 point for PTS calculation.
23776 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23778 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23780 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23781 Fix build without JPEG decoder.
23783 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
23785 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23786 mpeg4: fix VOP coding type of backward reference pictures.
23787 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23789 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
23791 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23792 mpeg4: fix handling of temporal reference distances.
23793 TRD and TRB fields are not large enough to hold the difference of PTS
23794 expressed with nanosecond resolution. So, compute them from the original
23796 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23798 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23800 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
23801 dpb: mpeg2: cosmetics.
23802 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
23804 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
23807 * gst-libs/gst/vaapi/Makefile.am:
23808 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23809 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23810 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23811 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
23812 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23813 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23814 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23815 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23816 * gst/vaapi/gstvaapidecode.c:
23817 Add initial JPEG decoder.
23818 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23820 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
23823 * gst-libs/gst/Makefile.am:
23824 * gst-libs/gst/codecparsers/Makefile.am:
23825 * gst-libs/gst/codecparsers/gstjpegparser.c:
23826 * gst-libs/gst/codecparsers/gstjpegparser.h:
23827 * gst-libs/gst/vaapi/Makefile.am:
23828 codecparsers: add JPEG parser.
23829 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23831 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
23833 * gst/vaapi/gstvaapidecode.c:
23834 vaapidecode: fix VA display type.
23835 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
23837 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23839 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23841 * gst/vaapi/gstvaapidecode.c:
23842 vaapidecode: fix includes when compiling for a single API.
23844 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23847 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23848 mpeg2: fix calculation of macroblock_offset.
23849 Fix decoding of streams with extra slice() information before the first
23850 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
23852 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23854 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23855 mpeg2: fix interpolation of GOP TSN from new PTS.
23856 New GOP TSN base could be mis-calculated. In particular, this fixes
23857 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
23859 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23862 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23863 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23864 mpeg2: fix decoding of high profile streams.
23865 Allow MPEG-2 High profile streams only if the HW supports that profile
23866 or no High profile specific bits are used, and thus Main profile could
23867 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
23868 set to 11 and no sequence_scalable_extension() was parsed.
23870 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23873 * gst/vaapi/gstvaapidecode.c:
23874 vaapidecode: report unsupported codec profiles.
23875 Try to gracefully abort when the HW does not support the requested
23876 profile. There is no fallback unless profiles are correctly parsed
23877 and matched through caps beforehand.
23879 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
23882 * gst/vaapi/gstvaapisink.c:
23883 vaapisink: don't resize a 'foreign' X-window.
23884 Don't forcibly resize foreign X windows. The user is responsible for
23885 their size and vaapisink shall not change this.
23886 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23888 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
23891 * gst/vaapi/gstvaapisink.c:
23892 * gst/vaapi/gstvaapisink.h:
23893 vaapisink: recalculate render rect only if caps are negotiated.
23894 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
23895 caps got negotiated. Besides, when a foreign window is provided by the
23896 user, so should the render rect.
23897 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23899 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23902 Bump version for development.
23904 === release 0.3.6 ===
23906 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23911 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23913 * docs/reference/libs/libs-docs.xml.in:
23914 * docs/reference/libs/libs-sections.txt:
23915 * docs/reference/plugins/plugins-docs.xml.in:
23916 * docs/reference/plugins/plugins-sections.txt:
23917 * docs/reference/plugins/plugins.types:
23918 * gst-libs/gst/vaapi/gstvaapiimage.c:
23919 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
23920 * gst/vaapi/gstvaapipostproc.c:
23921 Fix a few documentation issues.
23923 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23927 Update introduction and changelog.
23929 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23931 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
23932 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
23933 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23934 mpeg2: allocate dummy picture for first field based I-frame.
23935 In P-pictures, prediction shall be made from the two most recently
23936 decoded reference fields. However, when the first I-frame is a field,
23937 the next field of the current picture could be a P-picture but only a
23938 single field was decoded so far. In this case, create a dummy picture
23939 with POC = -1 that will be used as reference.
23940 Some VA drivers would error out if P-pictures don't have a forward
23941 reference picture. This is true in general but not in this very specific
23944 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23946 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23947 mpeg2: fix simple to main profile fallback.
23948 Allow fallback from simple to main profile when the HW decoder does
23949 not support the former profile and that no sequence_header_extension()
23950 is available to point out this.
23952 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
23954 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23955 mpeg4: improve error checking while decoding packets.
23956 decode_picture() could return an error when an MPEG-4 profile is not
23957 supported for example. In this case, the underlying VA context is not
23958 allocated and no other proper action can be taken. Likewise on exit
23959 from decode_slice().
23960 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23962 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23964 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
23965 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23966 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23967 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23968 decoder: use POC to maintain the DPB.
23969 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
23970 numbers. A signed 32-bit integer should be enough for 1 year of continuous
23971 video streaming at 60 Hz.
23972 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
23973 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
23975 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23977 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23978 mpeg2: rework generation of presentation timestamps.
23979 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
23980 i.e. demuxer could not determine the PTS or the generated PTS is lower than
23981 max PTS from past pictures, then try to fix it up based on the duration of
23983 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
23984 reconstruct a current time. Also now handle wrapped TSN correctly.
23986 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23988 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23989 mpeg2: ignore empty user-data packets.
23990 Fix tcela-8.bits conformance test.
23992 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23994 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23995 mpeg2: review and report errors accordingly.
23996 Use GST_ERROR() to report real errors instead of hiding them into
23999 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24001 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24002 mpeg2: fix invalid interlaced frame in progressive sequence.
24003 Some streams, badly constructed, could have signaled an interlaced
24004 frame while the sequence was meant to be progressive. Warn and force
24005 frame to be progressive in this case.
24007 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24009 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24010 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24011 mpeg2: add support for interlaced streams.
24012 Pictures are submitted to the HW for rendering only when both fields
24013 are decoded or current picture is a full frame.
24015 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24017 * gst-libs/gst/vaapi/Makefile.am:
24018 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24019 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24020 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24021 mpeg2: add new decoded picture buffer infrastructure.
24022 Decoded pictures are now maintained into DPB, similarly to H.264.
24023 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
24025 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24027 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24028 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24029 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24030 decoder: add first-field flag to picture.
24031 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
24032 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
24033 as the first field. Any subsequent allocated field will become the second field.
24035 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24037 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24038 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24039 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24040 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24041 decoder: allow pictures to be cloned for field decoding.
24042 Add gst_vaapi_picture_new_field() function that clones a picture, while
24043 preserving the parent picture surface. i.e. the surface proxy reference
24044 count is increased and other fields copied as is. Besides, the picture
24045 is reset into a "non-output" mode.
24047 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24049 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24050 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24051 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24052 decoder: rework picture field flags.
24053 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
24054 could be propagated to the surface proxy when it is pushed for rendering.
24055 Besides, top and bottom fields are now expressed with picture structure flags
24056 from GstVaapiSurfaceRenderFlags.
24058 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24060 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24061 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24062 decoder: add OUTPUT flag to pictures.
24063 Allow pictures to be marked as output gst_vaapi_picture_output().
24065 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24067 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24068 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24069 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24070 decoder: fix semantics of SKIPPED pictures.
24071 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
24072 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
24073 has nothing to do with rendering. This only means that the currently decoded
24074 picture is just a copy of its reference picture.
24076 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24078 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24079 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24080 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24081 * gst/vaapi/gstvaapipostproc.c:
24082 vaapipostproc: get "interlaced" attribute from surface proxy.
24083 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
24084 vaapipostproc so that to handles cases where bitstream is interlaced
24085 but almost only frame pictures are generated. In this case, we should
24086 not be alternating between top/bottom fields.
24088 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24091 * debian.upstream/control.in:
24092 * gst/vaapi/Makefile.am:
24093 * gst/vaapi/gstvaapi.c:
24094 * gst/vaapi/gstvaapipostproc.c:
24095 * gst/vaapi/gstvaapipostproc.h:
24096 vaapipostproc: add new element for video postprocessing.
24097 Add vaapipostproc element for video postprocessing. So far, only basic
24098 bob deinterlacing is implemented. Interlaced mode is automatically
24099 detected based on sink caps ("interlaced" field).
24101 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24103 * docs/reference/libs/libs-sections.txt:
24104 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
24105 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
24106 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
24107 * gst/vaapi/gstvaapisink.c:
24108 videobuffer: add surface render flags.
24109 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
24110 to be set to the video buffer. In particular, this is mostly useful for
24111 basic deinterlacing.
24113 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24115 * gst-libs/gst/vaapi/gstvaapicompat.h:
24116 compat: add compatibility glue with VA-API 0.34+ (WIP).
24118 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24120 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24121 h264: skip all Filler Data NALs.
24123 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
24125 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24126 mpeg4: check for decoder status prior to decoding packet.
24127 Make sure there is a VA surface free prior to decoding the current frame.
24128 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24130 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
24132 * gst/vaapi/gstvaapidecode.c:
24133 * gst/vaapi/gstvaapidecode.h:
24134 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
24135 Rationale: playbin2 links all elements at run-time. Once vaapidecode
24136 is created and a NEWSEGMENT event arrives, downstream element may not
24137 be ready yet. So, delay this event until next element is chained in,
24138 otherwise basesink could output "Received buffer without a new-segment.
24139 Assuming timestamps start from 0".
24140 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24142 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
24144 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24145 mpeg2: fix GOP timestamps when incorrect data is received.
24146 Some streams have incorrect GOP timestamps, or nothing set at all.
24147 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
24148 from demuxer timestamps, which are monotonic.
24149 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24151 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
24153 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24154 mpeg2: don't decode anything before the first sequence_header().
24155 Skip all pictures prior to the first sequence_header(). Besides,
24156 skip all picture_data() if there was no prior picture_header().
24157 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24159 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
24161 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24162 ffmpeg: add support for interlaced streams.
24163 Evaluate interlaced stream properties.
24164 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24166 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
24168 * gst/vaapi/gstvaapidecode.c:
24169 vaapidecode: propagate interlaced and TFF properties downstream.
24170 Propagate "interlaced" caps downstream and set "tff" buffer flag
24171 appropriately to output buffers for interlaced pictures.
24172 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24174 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
24176 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24177 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24178 decoder: maintain caps for interlaced streams.
24179 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
24181 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24183 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
24185 * docs/reference/libs/libs-sections.txt:
24186 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24187 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24188 surfaceproxy: add TFF property.
24189 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
24190 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24192 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24195 AUTHORS: update to match current authors.
24197 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24199 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24200 mpeg2: fix is_first_field calculation.
24201 Reset is_first_field for frame pictures. Factor out locations where
24202 the flag is updated.
24204 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24206 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24207 mpeg2: catch incorrect picture_structure from bitstreams.
24208 Assume "frame" picture structure if the syntax element was zero or if
24209 progressive_frame is set.
24211 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24213 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24214 mpeg2: fix slice_vertical_position calculation (again).
24215 VA-API expects slice_vertical_position as the initial position from the
24216 bitstream. i.e. the direct slice() information. VA drivers will be fixed
24219 === release 0.3.5 ===
24221 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24223 * gst/vaapi/gstvaapidecode.c:
24224 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
24225 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
24226 For gst_element_class_get_pad_template(), no unreferencing is necessary
24227 according to the GStreamer documentation.
24229 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24232 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24233 h264: fix slice_data_bit_offset calculation.
24234 Unlike what VA-API documentation defines, the slice_data_bit_offset
24235 represents the offset to the first macroblock in the slice data, minus
24236 any emulation prevention bytes in the slice_header().
24237 This fix copes with binary-only VA drivers that won't be fixed any
24238 time soon. Besides, this aligns with the current FFmpeg behaviour
24239 that was based on those proprietary drivers implementing the API
24242 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
24244 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24245 h264: skip all Access Unit (AU) NALs.
24246 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24248 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
24250 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24251 h264: fix modification process of reference picture lists.
24252 Construction of RefPicList0/1 could be off by one element.
24253 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24255 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24257 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24258 mpeg2: fix size calculation from sequence_extension().
24259 Original values from sequence_header() are 12-bit and the remaining
24260 2 most significant bits are coming from sequence_extension().
24261 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24263 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24265 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24266 mpeg2: fix slice_vertical_position calculation.
24267 Make sure to adjust slice_vertical_position if picture structure
24268 is a top or bottom field.
24270 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24272 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24273 decoder: add picture structure flags.
24275 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24277 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24278 mpeg2: fix decoding at end-of-sequence.
24280 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24282 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24283 mpeg2: fix slice_horizontal_position calculation.
24285 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24287 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24288 mpeg2: drop useless mb_y and mb_height members.
24290 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24292 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24293 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
24294 6.3.15 says that "some slices may have the same slice_vertical_position,
24295 since slices may start and finish anywhere". So, we can't submit the current
24296 picture to the HW right away since subsequent slices would be missing.
24298 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24300 * gst-libs/gst/vaapi/gstvaapiimage.c:
24301 image: fix source stride in picture copy.
24303 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24305 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24306 decoder: fix double buffer free with some VA drivers.
24307 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
24308 push the VA buffer object into a list of free buffers to be re-used. However,
24309 reference pictures (and data) that was kept would explicitly release the VA
24310 buffer object later on, thus possibly destroying a valid (re-used) object.
24311 Besides, some other VA drivers don't support correctly the vaRenderPicture()
24312 semantics for VA buffers disposal and would leak memory if there is no explicit
24313 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
24314 right after vaRenderPicture(). All VA drivers need to be aligned.
24316 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24318 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24319 h264: complete any current picture decoder before SPS / PPS change.
24320 This ensures the VA context is clear when the encoded resolution
24321 changes. i.e. make sure older picture is decoded with the older
24322 VA context before it changes.
24324 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24326 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24327 h264: create VA context earlier when SPS is parsed.
24329 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24331 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24332 h264: don't allocate too big data structures on stack.
24334 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24336 * gst-libs/gst/vaapi/glibcompat.h:
24337 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24338 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24339 glib: map deprecated API to glib >= 2.32 equivalents.
24340 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
24341 GRecMutex, which no longer require any prior call to g_thread_init().
24343 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24345 * gst-libs/gst/vaapi/gstvaapiutils.h:
24346 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24347 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24348 glib: fix includes.
24350 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24352 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24353 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24354 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24355 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24356 cosmetics: fix warnings (drop unused variables).
24358 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24360 * gst/vaapi/gstvaapidecode.c:
24361 vaapidecode: fix another pad template ref leak.
24363 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24365 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24366 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24367 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24368 mpeg2: fix crash when there is no free surface to decode into.
24370 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
24372 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24373 display: skip profiles which have no entrypoints.
24374 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24376 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24378 * gst/vaapi/gstvaapiupload.c:
24379 vaapiupload: use g_object_unref() for GstVaapiImage.
24381 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24383 * gst/vaapi/gstvaapidecode.c:
24384 * gst/vaapi/gstvaapidownload.c:
24385 * gst/vaapi/gstvaapisink.c:
24386 * gst/vaapi/gstvaapiupload.c:
24387 plugins: fix pad template ref leaks.
24389 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24392 Bump version for development.
24394 === release 0.3.4 ===
24396 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24402 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24406 Mention codecparsers-based decoders, FFmpeg is now optional. Update
24407 list of support HW.
24409 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24414 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24416 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24417 decoder: allocate proxy surface earlier.
24418 This simplifies gst_vaapi_picture_output() to only update the presentation
24419 timestamp and submit the proxy to the decoder for output.
24421 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24423 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24424 decoder: fix memory leak of VA objects on exit.
24425 On sequence end, if the last decoded picture is not output for rendering,
24426 then the proxy surface is not created. In this case, the original surface
24427 must be released explicitly to the context.
24429 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24431 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24432 mpeg2: use GstAdapter to track input sequence.
24433 This fixes possible memory leaks and improves performance by removing
24436 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24439 * gst-libs/gst/vaapi/Makefile.am:
24440 * gst-libs/gst/vaapi/glibcompat.h:
24441 * gst-libs/gst/vaapi/sysdeps.h:
24442 Add glib compatibility glue for older versions.
24444 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24446 * gst-libs/gst/vaapi/Makefile.am:
24447 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24448 * gst-libs/gst/vaapi/gstvaapicontext.c:
24449 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24450 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24451 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24452 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24453 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24454 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24455 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24456 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24457 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24458 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24459 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24460 * gst-libs/gst/vaapi/gstvaapiimage.c:
24461 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
24462 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24463 * gst-libs/gst/vaapi/gstvaapiobject.c:
24464 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
24465 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24466 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24467 * gst-libs/gst/vaapi/gstvaapisurface.c:
24468 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24469 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24470 * gst-libs/gst/vaapi/gstvaapitexture.c:
24471 * gst-libs/gst/vaapi/gstvaapiutils.c:
24472 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24473 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24474 * gst-libs/gst/vaapi/gstvaapivalue.c:
24475 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
24476 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
24477 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
24478 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24479 * gst-libs/gst/vaapi/gstvaapivideosink.c:
24480 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24481 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24482 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24483 * gst-libs/gst/vaapi/sysdeps.h:
24484 Add header for system-dependent definitions.
24486 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24488 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24489 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24490 * gst-libs/gst/vaapi/gstvaapiutils.c:
24491 * gst-libs/gst/vaapi/gstvaapiutils.h:
24492 decoder: optimize slice data buffers initialization.
24493 VA drivers may have a faster means to transfer user buffers to GPU
24494 buffers than using memcpy(). In particular, on Intel Gen graphics, we
24495 can use pwrite(). This provides for faster upload of bitstream and can
24496 help higher bitrates.
24497 vaapi_create_buffer() helper function was also updated to allow for
24498 un-mapped buffers and pre-initialized data for buffers.
24500 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24502 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24503 h264: simplify RefPicList reconstruction.
24505 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24507 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24508 h264: flush DPB when the end of the sequence is reached.
24510 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24512 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24513 h264: handle Decoded Picture Buffer (DPB).
24515 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24517 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24518 h264: fix pred_weight_table() reconstruction.
24519 Only the explicit pred_weight_table(), possibly with the inferred default
24520 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
24521 is not set for P/SP slices.
24523 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24525 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24526 h264: execute reference picture marking process (MMCO).
24528 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24530 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24531 h264: fix presentation timestamps.
24533 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24535 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24536 h264: execute reference picture marking process (sliding window).
24538 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24540 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24541 h264: handle avcC format for decoding buffers.
24543 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24545 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24546 h264: handle codec-data.
24547 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24549 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24551 * gst-libs/gst/vaapi/Makefile.am:
24552 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24553 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24554 * gst/vaapi/gstvaapidecode.c:
24555 * tests/test-decode.c:
24556 Add initial H.264 decoder.
24558 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24560 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24561 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24562 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
24563 Keep a valid reference to the proxy in GstVaapiPicture so that frames
24564 marked as "used for reference" could be kept during the lifetime of the
24565 picture. i.e. don't release them too soon as they could be re-used right
24568 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24570 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24571 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24572 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24573 decoder: properly reference count pictures.
24574 This fixes cases where a GstVaapiPicture would be destroyed whereas
24575 there is still a valid instance of it in either prev, current or
24578 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24580 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24581 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24582 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24583 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24584 decoder: simplify output of decoded frames.
24585 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
24586 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
24587 is already set correctly and reference count increased, if necessary.
24589 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24591 * gst-libs/gst/vaapi/Makefile.am:
24592 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24593 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24594 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24595 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24596 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24597 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24598 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24599 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24600 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24601 decoder: rework the internal VA objects API.
24602 The new API simplifies a lot reference counting and makes it more
24603 flexible for future additions/changes. The GstVaapiCodecInfo is
24604 also gone. Rather, new helper macros are provided to allocate
24605 picture, slice and quantization matrix parameter buffers.
24607 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24609 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24610 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24611 decoder: allow slices to be attached to pictures later.
24613 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24615 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24616 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24617 decoder: add ref_count to GstVaapiPicture.
24619 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24621 * gst/vaapi/gstvaapisink.c:
24622 vaapisink: cap window size to the maximum display size.
24624 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
24626 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24627 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24628 profile: match video/x-h263 as H.263 Baseline profile.
24629 HACK: qtdemux does not report profiles for H.263. So, assume plain
24630 "video/x-h263" is H.263 Baseline profile.
24631 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24633 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24635 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24636 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24637 display: report H.263 Baseline profile.
24638 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
24639 profile (VAProfileMPEG4Simple) is supported.
24641 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24643 * gst-libs/gst/vaapi/Makefile.am:
24644 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24645 Add template for workarounds.
24647 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24649 * tests/test-decode.c:
24650 tests: error out if FFmpeg|codecparsers are not supported.
24652 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24654 * docs/reference/libs/libs-sections.txt:
24655 * gst-libs/gst/vaapi/gstvaapisurface.h:
24656 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24657 surface: don't expose gst_vaapi_surface_get_parent_context().
24658 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
24659 It's just an internal helper function. However, it's still possible to get
24660 the parent context through the "parent-context" property.
24662 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24664 * tests/Makefile.am:
24665 * tests/test-subpicture.c:
24666 tests: fix build without FFmpeg.
24668 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24671 Bump version for development.
24673 === release 0.3.3 ===
24675 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24681 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24684 * debian.upstream/copyright:
24685 * gst-libs/gst/vaapi/gstvaapicontext.c:
24686 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24687 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24688 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24689 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24690 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24691 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24692 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24693 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24694 * gst-libs/gst/vaapi/gstvaapiimage.c:
24695 * gst-libs/gst/vaapi/gstvaapiimage.h:
24696 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24697 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24698 * gst-libs/gst/vaapi/gstvaapiutils.c:
24699 * gst-libs/gst/vaapi/gstvaapiutils.h:
24700 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24701 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24702 * gst/vaapi/gstvaapi.c:
24703 * gst/vaapi/gstvaapidecode.c:
24704 * gst/vaapi/gstvaapidownload.c:
24705 * gst/vaapi/gstvaapidownload.h:
24706 * gst/vaapi/gstvaapipluginutil.c:
24707 * gst/vaapi/gstvaapipluginutil.h:
24708 * gst/vaapi/gstvaapisink.c:
24709 * gst/vaapi/gstvaapiupload.c:
24710 * gst/vaapi/gstvaapiupload.h:
24711 * tests/test-decode.c:
24712 legal: fix year for some copyright notices.
24714 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24716 * gst-libs/gst/vaapi/gstvaapicontext.c:
24717 * gst-libs/gst/vaapi/gstvaapicontext.h:
24718 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24719 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24720 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24721 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24722 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24723 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24724 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24725 * gst-libs/gst/vaapi/gstvaapiimage.c:
24726 * gst-libs/gst/vaapi/gstvaapiimage.h:
24727 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
24728 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
24729 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24730 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24731 * gst-libs/gst/vaapi/gstvaapisurface.c:
24732 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24733 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24734 * gst-libs/gst/vaapi/gstvaapiutils.c:
24735 * gst-libs/gst/vaapi/gstvaapiutils.h:
24736 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24737 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24738 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
24739 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
24740 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24741 * gst/vaapi/gstvaapidownload.h:
24742 * gst/vaapi/gstvaapisink.h:
24743 * gst/vaapi/gstvaapiupload.h:
24744 * tests/test-decode.c:
24745 legal: add Intel copyright on modified files.
24747 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24749 * gst-libs/gst/vaapi/gstvaapi_priv.h:
24750 * gst-libs/gst/vaapi/gstvaapicompat.h:
24751 * gst-libs/gst/vaapi/gstvaapicontext.c:
24752 * gst-libs/gst/vaapi/gstvaapicontext.h:
24753 * gst-libs/gst/vaapi/gstvaapidebug.h:
24754 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24755 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24756 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
24757 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
24758 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24759 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24760 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24761 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24762 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24763 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24764 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24765 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24766 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24767 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24768 * gst-libs/gst/vaapi/gstvaapiimage.c:
24769 * gst-libs/gst/vaapi/gstvaapiimage.h:
24770 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
24771 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
24772 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24773 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24774 * gst-libs/gst/vaapi/gstvaapiobject.c:
24775 * gst-libs/gst/vaapi/gstvaapiobject.h:
24776 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24777 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
24778 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
24779 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24780 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24781 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24782 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24783 * gst-libs/gst/vaapi/gstvaapisurface.c:
24784 * gst-libs/gst/vaapi/gstvaapisurface.h:
24785 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24786 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24787 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24788 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24789 * gst-libs/gst/vaapi/gstvaapitexture.c:
24790 * gst-libs/gst/vaapi/gstvaapitexture.h:
24791 * gst-libs/gst/vaapi/gstvaapitypes.h:
24792 * gst-libs/gst/vaapi/gstvaapiutils.c:
24793 * gst-libs/gst/vaapi/gstvaapiutils.h:
24794 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24795 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24796 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24797 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24798 * gst-libs/gst/vaapi/gstvaapivalue.c:
24799 * gst-libs/gst/vaapi/gstvaapivalue.h:
24800 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
24801 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
24802 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24803 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24804 * gst-libs/gst/vaapi/gstvaapivideosink.c:
24805 * gst-libs/gst/vaapi/gstvaapivideosink.h:
24806 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24807 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24808 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24809 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24810 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24811 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24812 * gst/vaapi/gstvaapidecode.c:
24813 * gst/vaapi/gstvaapidecode.h:
24814 * gst/vaapi/gstvaapidownload.c:
24815 * gst/vaapi/gstvaapidownload.h:
24816 * gst/vaapi/gstvaapisink.c:
24817 * gst/vaapi/gstvaapisink.h:
24818 * gst/vaapi/gstvaapiupload.c:
24819 * gst/vaapi/gstvaapiupload.h:
24822 * tests/test-decode.c:
24823 * tests/test-decode.h:
24824 * tests/test-display.c:
24825 * tests/test-h264.c:
24826 * tests/test-h264.h:
24827 * tests/test-mpeg2.c:
24828 * tests/test-mpeg2.h:
24829 * tests/test-surfaces.c:
24830 * tests/test-textures.c:
24831 * tests/test-vc1.c:
24832 * tests/test-vc1.h:
24833 * tests/test-windows.c:
24834 legal: fix copyright notices to include "Copyright" term.
24836 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
24838 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24839 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24840 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
24841 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24843 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
24845 * gst-libs/gst/vaapi/Makefile.am:
24846 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24847 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24848 * gst/vaapi/gstvaapidecode.c:
24849 Add initial MPEG-4 decoder.
24850 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24852 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24854 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24855 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24856 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
24857 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24859 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24861 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24862 vc1: fix codec-data decoding for WMV3 format.
24864 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24866 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24867 vc1: fix presentation timestamps.
24869 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24871 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24872 vc1: fix MV mode packing.
24874 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24876 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24877 vc1: handle codec-data.
24879 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24881 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24882 vc1: handle encapsulated bitstreams.
24884 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24886 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24887 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24888 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24889 vc1: fix bitplanes decoding.
24891 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24893 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24894 vc1: fix BFRACTION reconstruction.
24896 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24898 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24899 vc1: fix framerate calculation.
24901 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24903 * gst-libs/gst/vaapi/Makefile.am:
24904 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24905 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24906 * gst/vaapi/gstvaapidecode.c:
24907 * tests/test-decode.c:
24908 Add initial VC-1 decoder.
24910 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
24912 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24913 mpeg2: fix first field detection.
24914 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24916 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24918 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24919 mpeg2: fix quantisation matrix construction.
24921 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24923 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24924 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24925 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
24926 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24928 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24930 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24931 mpeg2: fix packets spanning over two buffers.
24933 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24935 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24936 mpeg2: ignore system start codes (PES headers).
24938 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24940 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24941 mpeg2: handle closed_gop.
24943 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24945 * gst-libs/gst/vaapi/Makefile.am:
24946 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24947 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24948 * gst/vaapi/gstvaapidecode.c:
24949 * tests/test-decode.c:
24950 Add initial MPEG-2 decoder.
24952 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24955 * gst-libs/gst/vaapi/Makefile.am:
24956 * gst/vaapi/gstvaapidecode.c:
24957 * tests/test-decode.c:
24958 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
24960 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24962 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24963 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24964 Add VA decoder helpers.
24966 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24968 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24969 decoder: add new error codes.
24970 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
24971 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
24973 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24975 * gst-libs/gst/vaapi/Makefile.am:
24976 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
24977 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
24978 Add timestamp buffer store helper utils.
24980 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24982 * gst-libs/gst/vaapi/gstvaapiutils.c:
24983 * gst-libs/gst/vaapi/gstvaapiutils.h:
24984 Add VA buffer helpers.
24986 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24988 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24989 utils: slight improvements to gl_bind_texture().
24991 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24993 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24994 utils: pretty-print output of gl_get_error_string().
24996 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24998 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24999 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
25001 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25003 * gst-libs/gst/vaapi/gstvaapiutils.c:
25004 utils: simplify string of VAProfile/VAEntrypoint.
25006 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25008 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25009 * gst-libs/gst/vaapi/gstvaapiutils.c:
25010 * gst-libs/gst/vaapi/gstvaapiutils.h:
25011 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
25013 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25018 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25020 * tests/test-decode.c:
25021 tests: check for shared VA displays (display cache).
25023 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25025 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25026 display: always free VA display cache if it is empty.
25028 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25030 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25031 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25032 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
25033 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25034 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25035 display: use VA display cache for X11 and GLX winsys.
25037 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25039 * gst-libs/gst/vaapi/Makefile.am:
25040 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25041 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
25042 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25043 display: implement a VA display cache.
25045 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25047 * gst/vaapi/gstvaapipluginutil.c:
25048 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
25049 This ensures the display name provided to gst_vaapi_display_*_new()
25050 maps to the system defaults, instead of forcing "" that could be different
25051 from the current DISPLAY name.
25053 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25055 * gst/vaapi/gstvaapiupload.c:
25056 vaapiupload: only set caps on newly created buffers.
25057 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25059 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25061 * gst/vaapi/gstvaapisink.c:
25062 vaapisink: ensure VA display in GstBaseSink::start() hook.
25063 This ensures a VA display is ready by the time upstream elements request
25066 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25068 * gst/vaapi/gstvaapisink.c:
25069 vaapisink: don't leak GL texture.
25070 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25072 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25074 * gst/vaapi/gstvaapisink.c:
25075 vaapisink: fix calculation of render region.
25077 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25079 * gst/vaapi/gstvaapisink.c:
25080 vaapisink: automatically fit video to window.
25082 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25084 * gst/vaapi/gstvaapisink.c:
25085 vaapisink: implement GstXOverlay::set_render_rectangle().
25087 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25089 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25090 window: always check geometry when the window is mapped.
25092 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
25094 * gst-libs/gst/vaapi/gstvaapiutils.c:
25095 Add missing profiles from VA-API 0.32.0.
25096 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25098 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25101 .gitignore: add test-subpicture.
25103 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25106 Bump version for development.
25108 === release 0.3.2 ===
25110 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25116 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25118 * tests/Makefile.am:
25119 tests: fix make dist (ship with test-subpicture-data.h).
25121 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25126 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25128 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25129 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25130 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25131 decoder: fix possible leak of VA surfaces.
25132 Under some circumstances, we could have leaked a surface, thus not
25133 releasing it to the pool of available surfaces in the VA context.
25134 The strategy is now to use a proxy earlier and automatically ref/unref
25135 whenever necessary. In particular, during the lifetime needed for FFmpeg.
25137 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25139 * docs/reference/libs/libs-sections.txt:
25140 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25141 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
25142 surfaceproxy: add helper to retrieve the VA surface ID.
25144 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25146 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25147 surfaceproxy: simplify destruction.
25148 Also make sure to always make sure to release the surface back to the
25149 pool of surfaces in the associated VA context, if any.
25151 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25153 * gst/vaapi/gstvaapidecode.c:
25154 vaapidecode: fix deinitialization order.
25156 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25158 * gst-libs/gst/vaapi/gstvaapicontext.c:
25159 context: avoid self reference loops with surfaces.
25161 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25163 * debian.upstream/control.in:
25164 debian: update control.in description for new plugins.
25166 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25168 * gst/vaapi/gstvaapiupload.c:
25169 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
25170 This also fixes extra structures, beyond the one at index 0, to hold
25171 the right additional values.
25173 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25175 * gst/vaapi/gstvaapiupload.c:
25176 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
25178 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25181 * docs/reference/plugins/plugins-docs.xml.in:
25182 * docs/reference/plugins/plugins-sections.txt:
25183 * docs/reference/plugins/plugins.types:
25184 * gst/vaapi/Makefile.am:
25185 * gst/vaapi/gstvaapi.c:
25186 * gst/vaapi/gstvaapidownload.c:
25187 * gst/vaapi/gstvaapidownload.h:
25188 vaapidownload: add new plugin to download pixels from VA surfaces.
25190 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25192 * gst/vaapi/gstvaapipluginutil.c:
25193 * gst/vaapi/gstvaapipluginutil.h:
25194 vaapipluingutils: add helper to append surface caps to YUV caps.
25196 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25198 * docs/reference/libs/libs-sections.txt:
25199 * gst-libs/gst/vaapi/gstvaapiimage.c:
25200 * gst-libs/gst/vaapi/gstvaapiimage.h:
25201 image: add helpers to extract pixels to user buffers.
25203 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25205 * gst-libs/gst/vaapi/gstvaapiimage.c:
25206 image: simplify initialization of raw images from video buffers.
25208 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25210 * gst-libs/gst/vaapi/gstvaapiimage.c:
25211 image: fix update from NV12 buffers.
25213 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25215 * gst/vaapi/gstvaapiupload.c:
25216 vaapiupload: fix memory leak in _init() function.
25218 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25222 * debian.upstream/control.in:
25223 * docs/reference/plugins/plugins-docs.xml.in:
25224 * docs/reference/plugins/plugins-sections.txt:
25225 * docs/reference/plugins/plugins.types:
25226 * gst/vaapi/Makefile.am:
25227 * gst/vaapi/gstvaapi.c:
25228 * gst/vaapi/gstvaapiupload.c:
25229 * gst/vaapi/gstvaapiupload.h:
25230 Rename vaapiconvert element to vaapiupload.
25232 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25235 Bump version for development.
25237 === release 0.3.1 ===
25239 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25245 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25250 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25252 * gst-libs/gst/vaapi/gstvaapisurface.c:
25253 * gst-libs/gst/vaapi/gstvaapisurface.h:
25254 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25255 * gst/vaapi/gstvaapisink.c:
25256 surface: apply composition to the parent context, if requested.
25258 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25260 * docs/reference/libs/libs-sections.txt:
25261 * gst-libs/gst/vaapi/gstvaapicontext.c:
25262 * gst-libs/gst/vaapi/gstvaapicontext.h:
25263 context: make it possible to apply composition globally.
25265 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25267 * gst-libs/gst/vaapi/gstvaapisurface.c:
25268 surface: fix associate subpicture to not report deassociation errors.
25270 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25272 * gst-libs/gst/vaapi/gstvaapisurface.c:
25273 surface: fix typo in debug message.
25275 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25277 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25278 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
25279 * gst-libs/gst/vaapi/gstvaapisurface.c:
25280 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
25282 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25284 * docs/reference/libs/libs-sections.txt:
25285 * gst-libs/gst/vaapi/Makefile.am:
25286 * gst-libs/gst/vaapi/gstvaapicontext.c:
25287 * gst-libs/gst/vaapi/gstvaapisurface.c:
25288 * gst-libs/gst/vaapi/gstvaapisurface.h:
25289 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25290 surface: record parent context.
25292 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25294 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25295 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25296 * gst/vaapi/gstvaapidecode.c:
25297 * gst/vaapi/gstvaapisink.c:
25300 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25302 * gst-libs/gst/vaapi/gstvaapisurface.c:
25303 * gst-libs/gst/vaapi/gstvaapisurface.h:
25304 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25305 * gst/vaapi/gstvaapisink.c:
25306 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
25308 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25311 configure: check for GstVideoOverlayComposition.
25313 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25318 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25320 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25321 converter: add support for GstVideoOverlayComposition planes.
25322 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25324 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
25326 * gst/vaapi/gstvaapisink.c:
25327 vaapisink: handle GstVideoOverlayComposition planes.
25328 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25330 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25332 * gst-libs/gst/vaapi/gstvaapisurface.c:
25333 surface: use unscaled overlay rectangle for blending.
25335 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25337 * gst-libs/gst/vaapi/gstvaapisurface.c:
25338 surface: fix VA image leak when an error occurred.
25340 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25342 * gst-libs/gst/vaapi/gstvaapisurface.c:
25343 * gst-libs/gst/vaapi/gstvaapisurface.h:
25344 surface: add helper to handle GstVideoOverlayComposition.
25345 This helper resets the subpictures to reflect the current composition
25346 layers provided with the buffers.
25347 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25349 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25351 * docs/reference/libs/libs-sections.txt:
25352 * gst-libs/gst/vaapi/Makefile.am:
25353 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25354 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
25355 * gst/vaapi/gstvaapiconvert.c:
25356 image: add gst_vaapi_image_format_from_video() helper.
25358 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25360 * gst-libs/gst/vaapi/gstvaapiimage.c:
25361 * gst-libs/gst/vaapi/gstvaapiimage.h:
25362 image: allow updates from GstVaapiImageRaw.
25364 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25366 * gst-libs/gst/vaapi/gstvaapiimage.c:
25367 * gst-libs/gst/vaapi/gstvaapiimage.h:
25368 * gst/vaapi/gstvaapiconvert.c:
25369 * tests/test-subpicture.c:
25370 image: allow partial updates.
25372 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25374 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25375 subpicture: fix doc for gst_vaapi_subpicture_set_image().
25377 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25379 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25380 display: fix has_image_format() to check against subpicture formats.
25382 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25384 * tests/test-subpicture.c:
25385 tests: fix subpicture test.
25387 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
25389 * tests/Makefile.am:
25390 * tests/test-subpicture-data.c:
25391 * tests/test-subpicture-data.h:
25392 * tests/test-subpicture.c:
25393 tests: add test for subpictures.
25394 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25396 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25398 * gst/vaapi/gstvaapiconvert.c:
25399 * gst/vaapi/gstvaapidecode.c:
25400 Add missing video context queries.
25401 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25403 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25406 Bump version for development.
25408 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25410 * gst-libs/gst/video/Makefile.am:
25411 * gst-libs/gst/video/gstbasevideocodec.c:
25412 * gst-libs/gst/video/gstbasevideocodec.h:
25413 * gst-libs/gst/video/gstbasevideodecoder.c:
25414 * gst-libs/gst/video/gstbasevideodecoder.h:
25415 * gst-libs/gst/video/gstbasevideoutils.c:
25416 * gst-libs/gst/video/gstbasevideoutils.h:
25417 Drop unused copy of GstBaseVideoDecoder.
25419 === release 0.3.0 ===
25421 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25427 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25430 README: update dependencies.
25432 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25437 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25440 configure: check for GstBaseSink 'query' vfunc.
25442 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25444 * gst/vaapi/Makefile.am:
25445 vaapiplugin: include local build dir to CFLAGS for generated files.
25447 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25450 autogen: don't configure if NO_CONFIGURE variable is set.
25452 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25454 * gst/vaapi/gstvaapidecode.c:
25455 * gst/vaapi/gstvaapidecode.h:
25456 vaapidecode: return sink caps template if decoder is in NULL state.
25457 Otherwise, the decoder would always create its own X display instead
25458 of probing it from the downstream element, which is not reliable.
25459 e.g. DISPLAY is not :0 or when running on Wayland.
25460 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25462 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25464 * gst/vaapi/gstvaapiconvert.c:
25465 * gst/vaapi/gstvaapidecode.c:
25466 vaapiplugin: properly set surface type to "vaapi" in caps.
25468 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25470 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25471 decoder: drop unused headers.
25473 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25475 * gst/vaapi/gstvaapiconvert.c:
25476 * gst/vaapi/gstvaapidecode.c:
25477 vaapiplugin: properly set opengl support in caps.
25478 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25480 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25482 * gst/vaapi/gstvaapiconvert.c:
25483 * gst/vaapi/gstvaapidecode.c:
25484 vaapiplugin: allocate GLX buffers when supported.
25485 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25487 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25489 * gst-libs/gst/vaapi/Makefile.am:
25490 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25491 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
25492 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
25493 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
25494 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25495 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
25496 videobuffer: add GLX buffer support.
25497 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25499 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25501 * gst-libs/gst/vaapi/Makefile.am:
25502 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25503 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
25504 Port to GstSurfaceBuffer interface.
25505 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25507 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25509 * gst/vaapi/gstvaapidecode.c:
25510 * gst/vaapi/gstvaapisink.c:
25511 Don't use downstream buffer allocation.
25512 With the new video/x-surface abstraction, we can't rely on having a VA
25513 specific sink downstream. Also, there was no particular reason to do that.
25514 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25516 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25518 * gst-libs/gst/vaapi/Makefile.am:
25519 * gst-libs/gst/vaapi/gstvaapicontext.c:
25520 * gst-libs/gst/vaapi/gstvaapisurface.h:
25521 * gst/vaapi/gstvaapiconvert.c:
25522 * gst/vaapi/gstvaapisink.c:
25523 * tests/Makefile.am:
25524 * tests/test-surfaces.c:
25525 Change caps to use new video/x-surface generic type.
25526 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25528 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
25531 * gst-libs/gst/vaapi/Makefile.am:
25532 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
25533 * gst/vaapi/Makefile.am:
25534 * gst/vaapi/gstvaapiconvert.c:
25535 * gst/vaapi/gstvaapidecode.c:
25536 * gst/vaapi/gstvaapipluginutil.c:
25537 * gst/vaapi/gstvaapipluginutil.h:
25538 * gst/vaapi/gstvaapisink.c:
25539 * gst/vaapi/gstvaapisink.h:
25540 Port to GstVideoContext interface.
25541 This new interface allows for upstream and downstream display sharing
25542 that works in both static and dynamic pipelines.
25543 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25545 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25547 * gst/vaapi/gstvaapisink.c:
25548 vaapisink: use GST_ERROR to print error messages.
25550 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25552 * gst/vaapi/Makefile.am:
25553 vaapiplugin: link against VA/GLX when enabled.
25555 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25557 * gst/vaapi/gstvaapiconvert.c:
25558 * gst/vaapi/gstvaapisink.c:
25559 Add Intel copyright information.
25561 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25563 * gst/vaapi/gstvaapisink.c:
25564 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
25566 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25570 * gst-libs/gst/Makefile.am:
25571 * gst-libs/gst/gstutils_version.h.in:
25572 Add new GStreamer version check utilities.
25574 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25576 * gst/vaapi/gstvaapisink.c:
25577 vaapisink: replace the deprecated xoverlay API with the new one.
25578 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25580 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25583 configure: allow for pre-releases.
25585 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25587 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25588 display: destroy display on creation failure.
25589 This allows element to detect that the display creation has actually
25591 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25593 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25595 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25596 display: don't crash when config is empty.
25597 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25599 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25602 * debian.upstream/copyright:
25603 doc: mention Collabora copyrights.
25605 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25608 .gitignore: refine for generated docs.
25610 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25613 * docs/reference/plugins/Makefile.am:
25615 * gst/vaapi/Makefile.am:
25616 * gst/vaapi/gstvaapi.c:
25617 * gst/vaapi/gstvaapiconvert.c:
25618 * gst/vaapi/gstvaapiconvert.h:
25619 * gst/vaapi/gstvaapidecode.c:
25620 * gst/vaapi/gstvaapidecode.h:
25621 * gst/vaapi/gstvaapisink.c:
25622 * gst/vaapi/gstvaapisink.h:
25623 * gst/vaapiconvert/Makefile.am:
25624 * gst/vaapidecode/Makefile.am:
25625 Group all plugins into the same bundle
25626 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25628 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25631 Bump version for development.
25633 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25636 * debian.upstream/control.in:
25637 debian: build against upstream libva packages.
25639 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25641 * docs/reference/libs/Makefile.am:
25642 * docs/reference/plugins/Makefile.am:
25643 * tests/Makefile.am:
25644 Fix build on Ubuntu 11.10 (Oneric).
25646 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25651 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25655 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25657 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
25659 * gst/vaapiconvert/gstvaapiconvert.c:
25660 * gst/vaapidecode/gstvaapidecode.c:
25661 * gst/vaapisink/gstvaapisink.c:
25662 Update license in plugin definition
25663 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25665 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25668 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25669 decoder: fix use of invalid data at the end-of-stream.
25671 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25673 * gst/vaapiconvert/gstvaapiconvert.c:
25674 vaapiconvert: fix some warnings.
25676 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25679 * debian.upstream/changelog.in:
25680 * debian.upstream/control.in:
25681 * debian.upstream/copyright:
25682 * gst/vaapiconvert/gstvaapiconvert.c:
25683 * gst/vaapidecode/gstvaapidecode.c:
25684 * gst/vaapisink/gstvaapisink.c:
25685 Update with my current e-mail address.
25687 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25691 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
25693 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
25697 * tests/test-decode.c:
25698 * tests/test-decode.h:
25699 * tests/test-display.c:
25700 * tests/test-h264.c:
25701 * tests/test-h264.h:
25702 * tests/test-mpeg2.c:
25703 * tests/test-mpeg2.h:
25704 * tests/test-surfaces.c:
25705 * tests/test-textures.c:
25706 * tests/test-vc1.c:
25707 * tests/test-vc1.h:
25708 * tests/test-windows.c:
25709 switch tests licence to LGPL v2.1+
25711 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
25715 * debian.upstream/copyright:
25716 * gst/vaapiconvert/gstvaapiconvert.c:
25717 * gst/vaapiconvert/gstvaapiconvert.h:
25718 * gst/vaapidecode/gstvaapidecode.c:
25719 * gst/vaapidecode/gstvaapidecode.h:
25720 * gst/vaapisink/gstvaapisink.c:
25721 * gst/vaapisink/gstvaapisink.h:
25722 move plugins to LGPL v2.1+
25724 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25726 * gst/vaapidecode/gstvaapidecode.c:
25727 vaapidecode: fix sink caps to not expose size information.
25728 This fixes this particular issue:
25729 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
25730 a real subset of its template caps
25732 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25735 * gst/vaapidecode/gstvaapidecode.c:
25736 vaapidecode: fix decoding of MPEG-2 PS files.
25738 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25740 * gst-libs/gst/vaapi/Makefile.am:
25741 Cosmetics (sort source files).
25743 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25745 * gst/vaapiconvert/gstvaapiconvert.c:
25746 * gst/vaapiconvert/gstvaapiconvert.h:
25747 vaapiconvert: fix direct-rendering caps detection.
25749 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25751 * gst-libs/gst/vaapi/gstvaapiimage.c:
25752 Fix gst_vaapi_image_new_with_image().
25754 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25756 * gst/vaapiconvert/gstvaapiconvert.c:
25757 vaapiconvert: warn when surface failed to be updated with image.
25759 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25761 * gst/vaapiconvert/gstvaapiconvert.c:
25762 vaapiconvert: fix autodetection for vaDeriveImage() support.
25764 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25766 * gst/vaapiconvert/gstvaapiconvert.c:
25767 vaapiconvert: fix memory leak (VA surface image).
25769 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25772 * gst/vaapiconvert/gstvaapiconvert.c:
25773 vaapiconvert: fix direct-rendering mode.
25775 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25777 * docs/reference/libs/libs-sections.txt:
25778 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25779 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
25780 Add gst_vaapi_video_buffer_new_from_buffer().
25781 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
25782 Any image, surface or surface proxy will be inherited from the source buffer
25783 if it is a GstVaapiVideoBuffer.
25785 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25787 * gst/vaapiconvert/gstvaapiconvert.c:
25788 vaapiconvert: protect access to direct_rendering.
25790 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25792 * gst/vaapiconvert/gstvaapiconvert.c:
25793 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
25795 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25799 * debian.upstream/copyright:
25800 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25801 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25802 * gst-libs/gst/vaapi/gstvaapisurface.h:
25803 * gst/vaapidecode/gstvaapidecode.c:
25804 * gst/vaapidecode/gstvaapidecode.h:
25805 Add Intel copyright information.
25807 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25812 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25814 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25815 Fix build with newer FFmpeg versions.
25817 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25819 * gst/vaapidecode/gstvaapidecode.c:
25820 * gst/vaapidecode/gstvaapidecode.h:
25821 Fix decoding of MPEG-2 TS files.
25823 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25825 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25826 Report caps update only once per video resolution change.
25828 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25830 * gst-libs/gst/vaapi/gstvaapisurface.h:
25831 Add canonical form (type name) of VA surface caps.
25833 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25836 Bump version for development.
25838 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25841 Use pretty build output with automake >= 1.11.
25843 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25845 * gst/vaapiconvert/Makefile.am:
25846 * gst/vaapidecode/Makefile.am:
25847 * gst/vaapisink/Makefile.am:
25848 * tests/Makefile.am:
25849 Fix build with libva headers not in a standard include dir.
25851 === release 0.2.6 ===
25853 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
25858 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
25860 * gst-libs/gst/vaapi/gstvaapi_priv.h:
25861 * gst-libs/gst/vaapi/gstvaapicompat.h:
25862 * gst-libs/gst/vaapi/gstvaapicontext.c:
25863 * gst-libs/gst/vaapi/gstvaapicontext.h:
25864 * gst-libs/gst/vaapi/gstvaapidebug.h:
25865 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25866 * gst-libs/gst/vaapi/gstvaapidecoder.h:
25867 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25868 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
25869 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25870 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25871 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25872 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
25873 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
25874 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
25875 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25876 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25877 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
25878 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25879 * gst-libs/gst/vaapi/gstvaapiimage.c:
25880 * gst-libs/gst/vaapi/gstvaapiimage.h:
25881 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25882 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
25883 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25884 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
25885 * gst-libs/gst/vaapi/gstvaapiobject.c:
25886 * gst-libs/gst/vaapi/gstvaapiobject.h:
25887 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
25888 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
25889 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
25890 * gst-libs/gst/vaapi/gstvaapiprofile.c:
25891 * gst-libs/gst/vaapi/gstvaapiprofile.h:
25892 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25893 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
25894 * gst-libs/gst/vaapi/gstvaapisurface.c:
25895 * gst-libs/gst/vaapi/gstvaapisurface.h:
25896 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25897 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
25898 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25899 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
25900 * gst-libs/gst/vaapi/gstvaapitexture.c:
25901 * gst-libs/gst/vaapi/gstvaapitexture.h:
25902 * gst-libs/gst/vaapi/gstvaapitypes.h:
25903 * gst-libs/gst/vaapi/gstvaapiutils.c:
25904 * gst-libs/gst/vaapi/gstvaapiutils.h:
25905 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
25906 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
25907 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
25908 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
25909 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25910 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25911 * gst-libs/gst/vaapi/gstvaapivalue.c:
25912 * gst-libs/gst/vaapi/gstvaapivalue.h:
25913 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25914 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
25915 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25916 * gst-libs/gst/vaapi/gstvaapivideopool.h:
25917 * gst-libs/gst/vaapi/gstvaapivideosink.c:
25918 * gst-libs/gst/vaapi/gstvaapivideosink.h:
25919 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25920 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25921 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
25922 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
25923 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25924 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
25925 * gst/vaapiconvert/gstvaapiconvert.c:
25926 * gst/vaapiconvert/gstvaapiconvert.h:
25927 * gst/vaapidecode/gstvaapidecode.c:
25928 * gst/vaapidecode/gstvaapidecode.h:
25929 * gst/vaapisink/gstvaapisink.c:
25930 * gst/vaapisink/gstvaapisink.h:
25933 * tests/test-decode.c:
25934 * tests/test-decode.h:
25935 * tests/test-display.c:
25936 * tests/test-h264.c:
25937 * tests/test-h264.h:
25938 * tests/test-mpeg2.c:
25939 * tests/test-mpeg2.h:
25940 * tests/test-surfaces.c:
25941 * tests/test-textures.c:
25942 * tests/test-vc1.c:
25943 * tests/test-vc1.h:
25944 * tests/test-windows.c:
25945 Update copyright notice.
25947 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
25950 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25951 * gst-libs/gst/vaapi/gstvaapisurface.c:
25952 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25953 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25954 * gst-libs/gst/vaapi/gstvaapitexture.c:
25955 * gst-libs/gst/vaapi/gstvaapiutils.c:
25956 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
25957 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25958 * gst-libs/gst/vaapi/gstvaapivalue.c:
25959 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25960 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25961 * gst-libs/gst/vaapi/gstvaapivideosink.c:
25962 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25963 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
25964 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25965 Fix licensing terms.
25967 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25972 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25974 * debian.upstream/copyright:
25975 Fix license terms...
25977 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25979 * gst/vaapisink/gstvaapisink.c:
25980 Render pretty background only in use-reflection=true mode.
25982 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25987 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25989 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
25990 Drop the GLX 1.3 requirement.
25992 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
25994 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
25995 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
25996 Call the GLX/Pixmap related functions through the vtable.
25998 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26002 * gst-libs/gst/vaapi/Makefile.am:
26003 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26004 Drop dependency on libavformat.
26006 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26008 * gst-libs/gst/video/gstbasevideodecoder.c:
26009 * gst-libs/gst/video/gstbasevideodecoder.h:
26010 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
26012 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26014 * gst-libs/gst/video/gstbasevideodecoder.c:
26015 * gst-libs/gst/video/gstbasevideoutils.c:
26016 * gst-libs/gst/video/gstbasevideoutils.h:
26017 Drop superfluous functions.
26019 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26021 * gst-libs/gst/video/gstbasevideodecoder.c:
26022 Really drop any dependency on libgstvideo. i.e. inline the helpers.
26024 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26026 * gst-libs/gst/video/gstbasevideodecoder.c:
26027 Further drop dependency on libgstvideo.
26029 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26031 * gst-libs/gst/video/Makefile.am:
26032 * gst-libs/gst/video/gstbasevideocodec.c:
26033 * gst-libs/gst/video/gstbasevideocodec.h:
26034 * gst-libs/gst/video/gstbasevideodecoder.c:
26035 * gst-libs/gst/video/gstbasevideodecoder.h:
26036 * gst-libs/gst/video/gstbasevideoutils.c:
26037 * gst-libs/gst/video/gstbasevideoutils.h:
26038 Add GstBaseVideoDecoder from gst-plugins-bad git.
26040 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26042 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
26043 Fix GLX version check.
26045 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26049 Bump version for development.
26051 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26054 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26055 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
26057 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26062 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26064 * gst-libs/gst/vaapi/gstvaapicompat.h:
26065 Fix build with older VA-API 0.29-sds.
26067 === release 0.2.4 ===
26069 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26071 * gst/vaapisink/gstvaapisink.c:
26072 * gst/vaapisink/gstvaapisink.h:
26073 Fix upscaling in foreign window (Totem).
26075 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26077 * gst/vaapisink/gstvaapisink.c:
26078 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
26080 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26083 * gst/vaapisink/gstvaapisink.c:
26084 Fix video rendering rect within an embedder window (Totem).
26086 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26089 * gst/vaapisink/gstvaapisink.c:
26090 Disable GLX rendering when vaapisink uses a foreign X window.
26092 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26094 * gst/vaapisink/gstvaapisink.c:
26095 Simplify GLX rendering code.
26097 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26100 Bump version for development.
26102 === release 0.2.3 ===
26104 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26109 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26111 * gst/vaapidecode/gstvaapidecode.c:
26112 Wait for at most one second for a VA surface to become available.
26114 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26118 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
26120 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26124 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26125 Fix decoder caps to report codec aliases.
26127 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26130 * gst/vaapidecode/gstvaapidecode.c:
26131 * gst/vaapidecode/gstvaapidecode.h:
26132 Fix VC-1 decoding through the playbin2 pipeline.
26134 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26136 * docs/reference/libs/libs-sections.txt:
26137 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26138 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26139 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26140 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26141 Regularly update and expose decoder caps.
26143 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26145 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26146 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26147 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26148 Add mechanism to reinsert buffer leftovers into the queue.
26150 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26153 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26154 Fix memory leak of encoded buffers.
26156 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26158 * docs/reference/libs/libs-sections.txt:
26159 * gst-libs/gst/vaapi/gstvaapicontext.c:
26160 * gst-libs/gst/vaapi/gstvaapicontext.h:
26161 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26162 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26163 Check for out-of-free-surfaces condition.
26165 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26167 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26168 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
26170 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26172 * gst/vaapisink/gstvaapisink.c:
26173 Improve debug info for gst_vaapisink_ensure_render_rect().
26175 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26178 Bump version for development.
26180 === release 0.2.2 ===
26182 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26187 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26189 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26190 Improve previous fix.
26192 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26195 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26196 Fix a crash in the FFmpeg decoder on close.
26198 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26201 Sort platforms by name.
26203 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26207 Bump version for development.
26209 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26211 * gst/vaapisink/gstvaapisink.c:
26212 Add debug info for _show_frame().
26214 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26217 Nuke older build dir.
26219 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26221 * debian.upstream/control.in:
26222 Fix packaging deps.
26224 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26229 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26232 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
26233 Fix OpenGL texture internal format (Clutter).
26235 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26240 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26242 * gst/vaapisink/gstvaapisink.c:
26243 Debug video & display PARs.
26245 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26247 * gst/vaapisink/gstvaapisink.c:
26248 Use XGetGeometry() to retrieve the window size.
26250 === release 0.2.1 ===
26252 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26254 * gst/vaapisink/gstvaapisink.c:
26257 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26259 * gst/vaapisink/gstvaapisink.c:
26260 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
26262 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26265 Drop obsolete comment.
26267 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26272 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26274 * gst/vaapidecode/gstvaapidecode.c:
26275 Fix GstVaapiDisplay refcounting in vaapidecode.
26277 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26279 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
26282 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26284 * gst/vaapisink/gstvaapisink.c:
26285 * gst/vaapisink/gstvaapisink.h:
26286 Fix render rect when the foreign window size changes.
26288 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26292 * gst/vaapisink/Makefile.am:
26293 * gst/vaapisink/gstvaapisink.c:
26294 Add GstXOverlay interface to vaapisink (e.g. for Totem).
26296 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26299 Update deps to match configure.ac versions.
26301 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26303 * gst/vaapiconvert/gstvaapiconvert.c:
26304 * gst/vaapidecode/gstvaapidecode.c:
26305 * gst/vaapisink/gstvaapisink.c:
26308 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26311 * gst/vaapidecode/Makefile.am:
26312 * gst/vaapidecode/gstvaapidecode.c:
26313 * gst/vaapidecode/gstvaapidecode.h:
26314 Fix vaapidecode to expose the HW supported caps only.
26316 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26318 * gst/vaapidecode/gstvaapidecode.c:
26319 Initialize decoder earlier.
26321 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26325 * gst/vaapidecode/gstvaapidecode.c:
26326 Fix integration within the playbin2 pipeline.
26328 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26330 * docs/reference/libs/Makefile.am:
26331 Exclude gstvaapiutils_gst.h from docs for now.
26333 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26335 * gst/vaapiconvert/gstvaapiconvert.c:
26336 * gst/vaapidecode/gstvaapidecode.c:
26337 * gst/vaapisink/gstvaapisink.c:
26338 Raise VA-API plugins ranks.
26340 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26342 * gst-libs/gst/vaapi/Makefile.am:
26343 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
26344 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
26345 Add gst_vaapi_display_lookup_downstream() helper.
26347 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26349 * gst/vaapidecode/gstvaapidecode.c:
26350 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
26352 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26354 * docs/reference/libs/libs-sections.txt:
26355 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26356 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26357 * gst/vaapisink/gstvaapisink.c:
26358 Expose VA display through GstVaapiVideoBuffer.
26360 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26362 * gst/vaapidecode/gstvaapidecode.c:
26363 Simplify gst_vaapidecode_set_caps() and fix memory leak.
26365 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26367 * docs/reference/libs/libs-sections.txt:
26368 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26369 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26370 Expose video pool display.
26372 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26374 * gst-libs/gst/vaapi/gstvaapivideosink.c:
26375 Stop iteration if there is no more element to examine.
26377 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26379 * gst/vaapiconvert/gstvaapiconvert.c:
26380 * gst/vaapidecode/gstvaapidecode.c:
26381 * gst/vaapisink/gstvaapisink.c:
26382 Improve plugin details.
26384 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26386 * gst-libs/gst/vaapi/gstvaapisurface.h:
26387 * gst/vaapiconvert/gstvaapiconvert.c:
26388 * gst/vaapidecode/gstvaapidecode.c:
26389 * gst/vaapisink/gstvaapisink.c:
26390 Factor out VA surface caps.
26392 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26394 * gst/vaapidecode/gstvaapidecode.c:
26395 Add gst_vaapidecode_ensure_display() helper for set-caps.
26397 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26400 Bump version for development.
26402 === release 0.2.0 ===
26404 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26407 Really make it 0.2.0.
26409 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26414 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26416 * docs/reference/libs/Makefile.am:
26417 Don't exclude GstVaapiParamSpecs.
26419 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26421 * docs/reference/libs/Makefile.am:
26422 * docs/reference/libs/libs-sections.txt:
26423 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26424 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26427 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26429 * gst/vaapiconvert/gstvaapiconvert.c:
26430 * gst/vaapidecode/gstvaapidecode.c:
26431 * gst/vaapisink/gstvaapisink.c:
26432 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.
26434 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26436 * gst-libs/gst/vaapi/Makefile.am:
26437 Really link all helper libraries with libtool -no-undefined.
26439 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26441 * gst-libs/gst/vaapi/Makefile.am:
26442 Link helper libraries with libtool -no-undefined.
26444 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26447 * debian.upstream/gstreamer-vaapi.install.in:
26448 * gst/vaapiconvert/Makefile.am:
26449 * gst/vaapidecode/Makefile.am:
26450 * gst/vaapisink/Makefile.am:
26451 Don't build plugins with SONAME. Make them plain *.so.
26453 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26456 Improve documentation for release.
26458 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26460 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26461 Fix build with older VA-API 0.29.
26463 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26468 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26470 * tests/Makefile.am:
26473 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26475 * docs/reference/libs/Makefile.am:
26476 * docs/reference/libs/libs-docs.xml.in:
26477 * docs/reference/libs/libs-sections.txt:
26478 * docs/reference/libs/libs.core.types:
26479 * docs/reference/plugins/Makefile.am:
26480 * docs/reference/plugins/plugins-docs.xml.in:
26481 * docs/reference/plugins/plugins-sections.txt:
26482 * docs/reference/plugins/plugins.types:
26485 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26487 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26490 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26492 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26493 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
26494 * gst/vaapidecode/gstvaapidecode.c:
26495 * tests/test-decode.c:
26496 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
26498 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26500 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26501 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26502 Extract framerate information from caps.
26504 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26506 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26507 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26508 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26509 Move caps initialization to parent class.
26511 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26513 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26516 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26518 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26521 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26523 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26524 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26525 More simplifications.
26527 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26529 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26530 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26531 * tests/test-decode.c:
26532 Simplify GstVaapiDecoder API.
26534 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26536 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26537 Drop obsolete defs.
26539 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26541 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26542 Drop obsolete decls.
26544 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26546 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26547 * gst/vaapidecode/gstvaapidecode.c:
26548 Add more aliases for MPEG-4 decoding.
26550 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26552 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26553 Use avctx->coded_{width,height} info to create the VA context.
26555 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26557 * tests/test-decode.c:
26558 * tests/test-decode.h:
26559 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
26561 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26563 * tests/test-decode.c:
26564 * tests/test-decode.h:
26565 * tests/test-h264.c:
26566 * tests/test-h264.h:
26567 * tests/test-mpeg2.c:
26568 * tests/test-mpeg2.h:
26569 * tests/test-vc1.c:
26570 * tests/test-vc1.h:
26571 Simplify tests info.
26573 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26575 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26576 Try to improve heuristics to use an AVCodecContextParser.
26578 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26580 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26581 Fix VC-1 decoding, it does not require any specific parser.
26583 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26585 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26586 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
26588 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26590 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26591 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26592 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
26594 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26596 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26597 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26598 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
26599 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26600 * gst/vaapidecode/gstvaapidecode.c:
26601 * gst/vaapidecode/gstvaapidecode.h:
26602 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
26604 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26606 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26607 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26608 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26609 Improve WMV3 detection yet further.
26611 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26613 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26614 Fix detection of plain old WMV3 contents.
26616 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26618 * tests/test-vc1.c:
26619 Add End-of-Sequence start code.
26621 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26623 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26624 * gst/vaapidecode/gstvaapidecode.c:
26625 Fix VC-1 detection.
26627 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26629 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26630 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
26632 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26634 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26635 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26636 Drop obsolete (and wrong) code.
26638 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26640 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26641 Cosmetics (spelling).
26643 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26645 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26646 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26647 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26648 Try to fix timestamps (step 1). Looks OK on H55.
26650 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26652 * debian.upstream/Makefile.am:
26653 Ship with COPYING.LIB.
26655 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26660 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26661 * gst-libs/gst/vaapi/gstvaapicompat.h:
26662 * gst-libs/gst/vaapi/gstvaapicontext.c:
26663 * gst-libs/gst/vaapi/gstvaapicontext.h:
26664 * gst-libs/gst/vaapi/gstvaapidebug.h:
26665 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26666 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26667 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26668 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
26669 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26670 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26671 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26672 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26673 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26674 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26675 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26676 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26677 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26678 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26679 * gst-libs/gst/vaapi/gstvaapiimage.c:
26680 * gst-libs/gst/vaapi/gstvaapiimage.h:
26681 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26682 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
26683 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26684 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26685 * gst-libs/gst/vaapi/gstvaapiobject.c:
26686 * gst-libs/gst/vaapi/gstvaapiobject.h:
26687 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26688 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26689 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26690 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26691 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26692 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26693 * gst-libs/gst/vaapi/gstvaapisurface.h:
26694 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26695 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26696 * gst-libs/gst/vaapi/gstvaapitexture.h:
26697 * gst-libs/gst/vaapi/gstvaapitypes.h:
26698 * gst-libs/gst/vaapi/gstvaapiutils.h:
26699 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
26700 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
26701 * gst-libs/gst/vaapi/gstvaapivalue.h:
26702 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26703 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26704 * gst-libs/gst/vaapi/gstvaapivideosink.h:
26705 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26706 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26707 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26708 Relicense gst-libs/ code to LGPL v2.1+.
26710 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26712 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26713 Drop extraneous comma.
26715 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26717 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26718 Drop variant=itu field to help codec detection.
26720 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26722 * gst/vaapidecode/gstvaapidecode.c:
26723 Decode as many surfaces as possible in gst_vaapidecode_step().
26725 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26727 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26728 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26729 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26730 * gst/vaapidecode/gstvaapidecode.c:
26731 * gst/vaapidecode/gstvaapidecode.h:
26732 * tests/test-decode.c:
26733 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
26735 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26740 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26742 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26743 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
26745 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26747 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26748 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26749 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
26751 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26753 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26754 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26755 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
26757 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26759 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26760 Document H.264 / AVC1 format case better.
26762 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26764 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26765 Fix H.264 decoding with AVC1 format bitstreams.
26767 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26769 * gst/vaapidecode/gstvaapidecode.c:
26770 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
26772 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26774 * gst/vaapisink/gstvaapisink.c:
26775 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
26777 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26779 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26780 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26781 Export gst_vaapi_video_buffer_new().
26783 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26785 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26786 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
26788 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26793 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26798 * gst/vaapidecode/Makefile.am:
26799 * gst/vaapidecode/gstvaapidecode.c:
26800 * gst/vaapidecode/gstvaapidecode.h:
26801 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
26803 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26805 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26806 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26807 Add gst_vaapi_decoder_pause().
26809 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26811 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26812 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26813 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26814 Use a GstTask with start/stop semantics for the decoder thread.
26816 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26818 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26819 Drop extraneous var.
26821 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26823 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26824 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26825 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
26827 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26829 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26830 Fix gst_vaapi_decoder_get_surface() status.
26832 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26834 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26835 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26836 Try to set correct timestamps to the decoded surface proxy.
26838 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26840 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26841 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26842 * tests/test-decode.c:
26843 Add timestamps to GstVaapiSurfaceProxy.
26845 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26847 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26848 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
26850 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26852 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26853 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
26855 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26857 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26858 Prefer profile from codec-data if any was found there.
26860 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26862 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26863 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
26865 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26867 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26868 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
26870 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26872 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26873 Fix VC-1 codec initialization, it really needs an extradata buffer.
26875 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26877 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26878 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26879 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.
26881 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26883 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26884 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
26886 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26888 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26889 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26890 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
26891 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26892 * tests/test-decode.c:
26893 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
26895 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26897 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26898 Cosmetics (weird indentation).
26900 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26902 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26903 Cosmetics (extraneous variable, debug message).
26905 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26908 Fix check for VA-API enabled FFmpeg.
26910 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26912 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26913 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26914 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26915 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26916 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
26918 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26920 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26921 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26922 Add more error codes. Fix documentation.
26924 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26926 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26927 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
26929 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26931 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26932 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26933 * tests/test-decode.c:
26934 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
26936 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26938 * tests/test-vc1.c:
26939 Drop useless End-of-Sequence marker.
26941 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26943 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26944 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.
26946 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26948 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26949 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26950 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.
26952 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26954 * tests/test-h264.c:
26955 * tests/test-vc1.c:
26956 Regenerate correct clips.
26958 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26960 * tests/Makefile.am:
26961 * tests/test-decode.c:
26962 * tests/test-h264.c:
26963 * tests/test-h264.h:
26964 * tests/test-mpeg2.c:
26965 * tests/test-mpeg2.h:
26966 * tests/test-vc1.c:
26967 * tests/test-vc1.h:
26968 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
26969 XXX: only VC-1 decoding works at this time because of awful
26970 bugs left in GstVaapiDecoderFfmpeg et al.
26972 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26975 * gst-libs/gst/vaapi/Makefile.am:
26976 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26977 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26978 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26979 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
26980 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26981 Add initial (multithreaded) decoder based on FFmpeg.
26982 There are tons of bugs left:
26983 - Decoder API not nice enough with error conditions
26984 - FFmpeg parser is sometimes broken
26985 - Packets queue can be lost
26987 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26989 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26990 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26991 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
26993 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
26995 * gst-libs/gst/vaapi/gstvaapicontext.c:
26996 * gst-libs/gst/vaapi/gstvaapicontext.h:
26997 Add VA context abstraction.
26999 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27001 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27002 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
27004 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27006 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27007 * gst-libs/gst/vaapi/gstvaapivideopool.h:
27008 Add a means to cap the number of objects allocated in the pool.
27010 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27012 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27013 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27014 Add VA entrypoint abstraction.
27016 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27018 * docs/reference/libs/libs-docs.xml.in:
27019 * docs/reference/libs/libs-sections.txt:
27020 * gst-libs/gst/vaapi/Makefile.am:
27021 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27022 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27023 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
27024 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27025 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27026 * tests/test-display.c:
27027 Add VA profile abstraction.
27029 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27031 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27032 Fix OpenGL rendering on G45 systems.
27034 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27036 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27037 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
27039 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27041 * gst-libs/gst/vaapi/gstvaapitexture.c:
27042 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27043 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27044 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.
27046 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27048 * gst-libs/gst/vaapi/gstvaapitexture.c:
27049 Fix get-out conditions.
27051 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27053 * gst-libs/gst/vaapi/gstvaapitexture.c:
27054 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27055 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.
27057 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27059 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27062 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27064 * docs/reference/libs/libs-sections.txt:
27065 * gst-libs/gst/vaapi/Makefile.am:
27066 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
27067 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
27068 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
27069 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27070 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27071 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
27072 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27073 * gst-libs/gst/vaapi/gstvaapitexture.c:
27074 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27075 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27076 * tests/test-windows.c:
27077 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
27079 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27081 * gst-libs/gst/vaapi/Makefile.am:
27082 * gst-libs/gst/vaapi/gstvaapi_priv.h:
27083 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27084 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27085 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
27086 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
27087 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27088 * gst-libs/gst/vaapi/gstvaapiimage.c:
27089 * gst-libs/gst/vaapi/gstvaapiobject.c:
27090 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27091 * gst-libs/gst/vaapi/gstvaapisurface.c:
27092 * gst-libs/gst/vaapi/gstvaapitexture.c:
27093 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27094 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27095 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27096 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
27098 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27100 * gst-libs/gst/vaapi/gstvaapitexture.c:
27101 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27102 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27103 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27104 Improve handling of GL contexts.
27106 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27111 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27114 Bump version for development.
27116 === release 0.1.2 ===
27118 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27121 * debian.upstream/Makefile.am:
27122 * debian.upstream/control.in:
27123 Rename -dev package to libgstvaapi-dev.
27125 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27131 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27133 * gst-libs/gst/vaapi/gstvaapiutils.c:
27134 Fix build with VA-API < 0.30.
27136 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27139 * gst-libs/gst/vaapi/gstvaapicompat.h:
27140 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
27141 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27142 * gst-libs/gst/vaapi/gstvaapitexture.c:
27143 * tests/test-display.c:
27144 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
27146 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27148 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27149 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27150 Add TFP and FBO helpers.
27152 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27154 * gst-libs/gst/vaapi/gstvaapiutils.c:
27155 * gst-libs/gst/vaapi/gstvaapiutils.h:
27156 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
27158 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27160 * gst-libs/gst/vaapi/gstvaapitexture.c:
27161 * gst-libs/gst/vaapi/gstvaapiutils.c:
27162 * gst-libs/gst/vaapi/gstvaapiutils.h:
27163 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27164 Use a shorter function name.
27166 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27168 * docs/reference/libs/libs-sections.txt:
27169 * gst-libs/gst/vaapi/gstvaapisurface.c:
27170 * gst-libs/gst/vaapi/gstvaapisurface.h:
27171 * gst-libs/gst/vaapi/gstvaapiutils.c:
27172 * gst-libs/gst/vaapi/gstvaapiutils.h:
27173 Add gst_vaapi_surface_query_status() wrapper.
27175 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27177 * docs/reference/plugins/Makefile.am:
27178 Fix leftover during migration.
27180 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27184 * docs/reference/plugins/Makefile.am:
27186 * gst/vaapiconvert/Makefile.am:
27187 * gst/vaapiconvert/gstvaapiconvert.c:
27188 * gst/vaapiconvert/gstvaapiconvert.h:
27189 * gst/vaapisink/Makefile.am:
27190 * gst/vaapisink/gstvaapisink.c:
27191 * gst/vaapisink/gstvaapisink.h:
27192 Rename to gst/ as sys/ was too vague.
27194 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27196 * gst-libs/gst/vaapi/gstvaapiimage.c:
27197 * gst-libs/gst/vaapi/gstvaapiimage.h:
27198 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27199 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27200 * gst-libs/gst/vaapi/gstvaapisurface.c:
27201 * gst-libs/gst/vaapi/gstvaapisurface.h:
27202 Try to not reference VA-API types directly.
27204 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27206 * sys/vaapisink/gstvaapisink.c:
27207 Fix reflection code to preserve aspect ratio.
27209 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27211 * sys/vaapisink/gstvaapisink.c:
27212 * sys/vaapisink/gstvaapisink.h:
27213 Fix fullscreen mode.
27215 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27217 * sys/vaapisink/gstvaapisink.c:
27218 * sys/vaapisink/gstvaapisink.h:
27219 Add OpenGL reflection effect ("use-reflection").
27221 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27224 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27225 Use a projection suitable for rotation around the Y axis.
27227 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27230 * sys/vaapisink/Makefile.am:
27231 * sys/vaapisink/gstvaapisink.c:
27232 * sys/vaapisink/gstvaapisink.h:
27233 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
27235 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27238 * debian.upstream/Makefile.am:
27239 * debian.upstream/control.in:
27240 * debian.upstream/libgstvaapi-glx.install.in:
27241 Add libgstvaapi-glx-0 package.
27243 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27245 * pkgconfig/Makefile.am:
27246 Really fix make distclean.
27248 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27250 * docs/reference/libs/Makefile.am:
27253 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27255 * pkgconfig/Makefile.am:
27256 Fix make distclean.
27258 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27260 * tests/Makefile.am:
27263 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27265 * docs/reference/libs/Makefile.am:
27266 * docs/reference/libs/libs.core.types:
27267 * docs/reference/libs/libs.glx.types:
27268 * docs/reference/libs/libs.x11.types:
27271 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27273 * sys/vaapisink/gstvaapisink.h:
27274 Fix build without GLX.
27276 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27281 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27283 * sys/vaapisink/Makefile.am:
27284 * sys/vaapisink/gstvaapisink.c:
27285 * sys/vaapisink/gstvaapisink.h:
27286 Add VA/GLX support to vaapisink.
27288 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27290 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27291 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27292 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27293 Add glXSwapBuffers() workaround for NVIDIA.
27295 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27297 * tests/Makefile.am:
27298 * tests/test-textures.c:
27299 Improve VA/GLX textures test.
27301 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27303 * gst-libs/gst/vaapi/gstvaapitexture.c:
27304 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27305 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27306 Fix texture rendering.
27308 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27310 * docs/reference/libs/libs-docs.xml.in:
27311 * docs/reference/libs/libs-sections.txt:
27312 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27313 * gst-libs/gst/vaapi/gstvaapitexture.c:
27316 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27318 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27319 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27320 Add gst_vaapi_window_glx_put_texture() helper.
27322 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27324 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27327 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27331 * tests/test-windows.c:
27334 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27336 * gst-libs/gst/vaapi/Makefile.am:
27337 * gst-libs/gst/vaapi/gstvaapitexture.c:
27338 * gst-libs/gst/vaapi/gstvaapitexture.h:
27339 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27340 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27341 Add initial VA/GLX texture abstraction though the API is not good enough yet.
27343 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27345 * docs/reference/libs/libs-sections.txt:
27346 * gst-libs/gst/vaapi/gstvaapiobject.c:
27347 * gst-libs/gst/vaapi/gstvaapiobject.h:
27348 Add gst_vaapi_object_{,un}lock_display() helpers.
27350 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27352 * tests/Makefile.am:
27355 * tests/test-windows.c:
27356 Factor out image utilities.
27358 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27360 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27361 MT-Safe: lock display.
27363 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27365 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27366 Make sure window resize completed prior to resizing the GL viewport.
27368 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27370 * gst-libs/gst/vaapi/Makefile.am:
27371 gstvaapicompat.h is a private header, don't install it.
27373 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27375 * docs/reference/libs/libs-sections.txt:
27376 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27377 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27378 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27379 Add gst_vaapi_display_{sync,flush}() helpers.
27381 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27383 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27384 * sys/vaapisink/gstvaapisink.c:
27385 * sys/vaapisink/gstvaapisink.h:
27386 Add "synchronous" mode.
27388 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27390 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27391 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27392 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
27394 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27396 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27397 Restore GLX context only if there is one.
27399 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27401 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27402 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27403 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27404 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27405 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
27407 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27409 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27410 Check GstVaapiWindow::render() is available prior to calling it.
27412 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27414 * tests/Makefile.am:
27415 * tests/test-display.c:
27416 * tests/test-textures.c:
27417 Add VA/GLX display tests.
27419 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27422 * gst-libs/gst/vaapi/Makefile.am:
27425 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27427 * docs/reference/libs/Makefile.am:
27428 * docs/reference/libs/libs-docs.xml.in:
27429 * docs/reference/libs/libs-sections.txt:
27430 * docs/reference/libs/libs.types:
27431 Add missing API documentation.
27433 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27436 * gst-libs/gst/vaapi/Makefile.am:
27437 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
27438 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27439 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27440 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27441 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27442 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27443 * pkgconfig/Makefile.am:
27444 * pkgconfig/gstreamer-vaapi-glx.pc.in:
27445 * tests/Makefile.am:
27446 * tests/test-textures.c:
27447 Add initial VA/GLX support.
27449 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27451 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27452 Add missing includes (for vaapi_check_status()).
27454 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27456 * gst-libs/gst/vaapi/gstvaapidebug.h:
27457 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
27459 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27461 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27462 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27463 Add gst_vaapi_window_x11_is_foreign_xid() helper.
27465 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27467 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27468 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27469 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27470 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27471 Allow derived classes to specify custom Visual and Colormap.
27473 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27475 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27476 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27477 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27478 Allow window creation with a specific visual (e.g. for GLX support).
27480 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27482 * gst-libs/gst/vaapi/gstvaapiimage.c:
27483 Fix return value on error (though it's the same in the end).
27485 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27487 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27488 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27489 Simplify initialization of VADisplay.
27491 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27494 Move __attribute__((visibility("hidden"))) check down.
27496 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27498 * docs/reference/libs/libs-sections.txt:
27499 * gst-libs/gst/vaapi/gstvaapiimage.c:
27500 * gst-libs/gst/vaapi/gstvaapiimage.h:
27501 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27502 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27503 * gst-libs/gst/vaapi/gstvaapisurface.c:
27504 * gst-libs/gst/vaapi/gstvaapisurface.h:
27505 * tests/test-surfaces.c:
27506 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
27508 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27510 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27511 Use the parent display object, no need to maintain another one.
27512 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
27514 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27516 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27517 Add more internal helpers.
27519 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27521 * gst-libs/gst/vaapi/gstvaapiimage.c:
27522 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27523 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27524 * gst-libs/gst/vaapi/gstvaapisurface.c:
27525 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27526 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27527 Rename to GST_VAAPI_OBJECT_DISPLAY().
27529 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27531 * docs/reference/libs/libs-sections.txt:
27532 * gst-libs/gst/vaapi/gstvaapiimage.c:
27533 * gst-libs/gst/vaapi/gstvaapiobject.c:
27534 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27535 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27536 * gst-libs/gst/vaapi/gstvaapisurface.c:
27537 * gst-libs/gst/vaapi/gstvaapitypes.h:
27538 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27539 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
27541 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27543 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27544 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27545 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27546 Make GstVaapiWindow* derive from GstVaapiObject.
27548 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27551 Factor out use gstreamer-vaapi (PACKAGE name).
27553 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27556 Improve versioning summary.
27558 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27560 * gst-libs/gst/vaapi/Makefile.am:
27561 gstvaapicompat.h is now a private header (not installed).
27563 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27565 * gst-libs/gst/vaapi/gstvaapiimage.c:
27566 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27567 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27568 * gst-libs/gst/vaapi/gstvaapiobject.c:
27569 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27570 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27571 Include gstvaapicompat.h in source files only, not headers.
27573 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27576 * gst-libs/gst/vaapi/Makefile.am:
27577 * sys/vaapiconvert/Makefile.am:
27578 * sys/vaapisink/Makefile.am:
27579 * tests/Makefile.am:
27580 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
27582 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27586 * gst-libs/gst/vaapi/Makefile.am:
27587 * gst-libs/gst/vaapi/gstvaapicompat.h:
27588 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27589 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27590 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27591 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27592 * gst-libs/gst/vaapi/gstvaapisurface.c:
27593 * gst-libs/gst/vaapi/gstvaapiutils.c:
27594 * gst-libs/gst/vaapi/gstvaapiutils.h:
27595 * pkgconfig/gstreamer-vaapi-x11.pc.in:
27596 * pkgconfig/gstreamer-vaapi.pc.in:
27597 * sys/vaapiconvert/Makefile.am:
27598 * sys/vaapisink/Makefile.am:
27599 * tests/Makefile.am:
27600 Add compatibility with the original VA-API 0.29.
27602 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27604 * gst-libs/gst/vaapi/gstvaapivalue.h:
27605 Add missing file (gstvaapivalue.h).
27607 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27609 * gst-libs/gst/vaapi/gstvaapiimage.c:
27610 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27611 * gst-libs/gst/vaapi/gstvaapisurface.c:
27612 Fix g_warning() invocation.
27614 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27616 * gst-libs/gst/vaapi/gstvaapisurface.c:
27617 Deassociate subpictures while destroying the surface.
27619 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27621 * gst-libs/gst/vaapi/gstvaapisurface.c:
27622 Fix destruction order of subpictures. They should be destroyed first.
27624 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27627 * gst-libs/gst/vaapi/gstvaapiimage.c:
27628 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27629 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27630 * tests/test-windows.c:
27631 Add support for AYUV format.
27633 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27635 * tests/test-windows.c:
27636 Simplify upload process and fallback to subpictures.
27638 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27640 * docs/reference/libs/libs-docs.xml.in:
27641 * docs/reference/libs/libs-sections.txt:
27642 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27645 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27647 * gst-libs/gst/vaapi/Makefile.am:
27648 * gst-libs/gst/vaapi/gstvaapiobject.c:
27649 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27650 * gst-libs/gst/vaapi/gstvaapitypes.h:
27651 * gst-libs/gst/vaapi/gstvaapivalue.c:
27652 Move GValue specific stuff to a dedicated file.
27654 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27656 * tests/test-surfaces.c:
27657 Cosmetics (lowercase for consistency).
27659 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27661 * gst-libs/gst/vaapi/gstvaapiobject.c:
27662 Cosmetics (vertical alignment).
27664 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27666 * gst-libs/gst/vaapi/gstvaapiobject.c:
27667 Fix return value on error.
27669 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27671 * docs/reference/libs/libs-sections.txt:
27672 * gst-libs/gst/vaapi/gstvaapiimage.c:
27673 * gst-libs/gst/vaapi/gstvaapiimage.h:
27674 * gst-libs/gst/vaapi/gstvaapiobject.c:
27675 * gst-libs/gst/vaapi/gstvaapiobject.h:
27676 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27677 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27678 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27679 * gst-libs/gst/vaapi/gstvaapisurface.c:
27680 * gst-libs/gst/vaapi/gstvaapisurface.h:
27681 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27682 * tests/test-surfaces.c:
27683 Move "id" down to the GstVaapiObject base.
27685 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27687 * gst-libs/gst/vaapi/gstvaapitypes.c:
27688 Cosmetics (drop extraneous empty line).
27690 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27692 * gst-libs/gst/vaapi/Makefile.am:
27693 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27694 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
27695 Add GParamSpecs for GstVaapiID.
27697 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27699 * docs/reference/libs/libs.types:
27700 Drop gst_vaapi_id_get_type().
27702 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27704 * docs/reference/libs/libs-sections.txt:
27705 * gst-libs/gst/vaapi/gstvaapitypes.h:
27706 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
27708 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27710 * docs/reference/libs/libs-sections.txt:
27711 * docs/reference/libs/libs.types:
27712 * gst-libs/gst/vaapi/Makefile.am:
27713 * gst-libs/gst/vaapi/gstvaapitypes.c:
27714 * gst-libs/gst/vaapi/gstvaapitypes.h:
27715 Add GstVaapiID abstraction.
27717 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27719 * docs/reference/libs/libs.types:
27722 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27724 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27725 * gst-libs/gst/vaapi/gstvaapiimage.c:
27726 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27727 * gst-libs/gst/vaapi/gstvaapisurface.c:
27728 Drop useless include (<va/va_backend.h>).
27730 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27732 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27733 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
27735 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27737 * gst-libs/gst/vaapi/Makefile.am:
27738 * gst-libs/gst/vaapi/gstvaapiimage.c:
27739 * gst-libs/gst/vaapi/gstvaapiobject.c:
27740 * gst-libs/gst/vaapi/gstvaapiobject.h:
27741 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27742 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27743 * gst-libs/gst/vaapi/gstvaapisurface.c:
27744 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27745 Move private definitions and accessors to gstvaapiobject_priv.h.
27747 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27749 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27750 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27751 * gst-libs/gst/vaapi/gstvaapiimage.c:
27752 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27753 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
27754 * gst-libs/gst/vaapi/gstvaapiobject.c:
27755 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27756 * gst-libs/gst/vaapi/gstvaapisurface.c:
27757 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27758 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27759 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27760 * gst-libs/gst/vaapi/gstvaapivideosink.c:
27761 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27762 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27763 Fix short descriptions.
27765 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27769 * debian.upstream/Makefile.am:
27770 * debian.upstream/changelog.in:
27771 * debian.upstream/compat:
27772 * debian.upstream/control.in:
27773 * debian.upstream/copyright:
27774 * debian.upstream/gstreamer-vaapi-doc.install.in:
27775 * debian.upstream/gstreamer-vaapi.install.in:
27776 * debian.upstream/libgstvaapi-dev.install.in:
27777 * debian.upstream/libgstvaapi-x11.install.in:
27778 * debian.upstream/libgstvaapi.install.in:
27779 * debian.upstream/rules:
27780 Generate upstream packages through make deb.upstream.
27782 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27785 Bump version for development.
27787 === release 0.1.1 ===
27789 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27791 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27792 Use a black background for new windows.
27794 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27799 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27802 * docs/reference/libs/libs.types:
27803 * gst-libs/gst/vaapi/Makefile.am:
27804 * gst-libs/gst/vaapi/gstvaapimarshal.list:
27805 * gst-libs/gst/vaapi/gstvaapiobject.c:
27806 * gst-libs/gst/vaapi/gstvaapiobject.h:
27807 * tests/test-surfaces.c:
27808 Add "destroy" signal.
27810 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27812 * docs/reference/libs/libs-docs.xml.in:
27813 Improve gst-plugins-vaapi Library reference template.
27815 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27817 * docs/reference/libs/libs-docs.xml.in:
27818 * docs/reference/libs/libs-sections.txt:
27819 * gst-libs/gst/vaapi/Makefile.am:
27820 * gst-libs/gst/vaapi/gstvaapiimage.c:
27821 * gst-libs/gst/vaapi/gstvaapiimage.h:
27822 * gst-libs/gst/vaapi/gstvaapiobject.c:
27823 * gst-libs/gst/vaapi/gstvaapiobject.h:
27824 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27825 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27826 * gst-libs/gst/vaapi/gstvaapisurface.c:
27827 * gst-libs/gst/vaapi/gstvaapisurface.h:
27828 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27829 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
27831 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27833 * sys/vaapisink/gstvaapisink.c:
27836 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27838 * sys/vaapisink/gstvaapisink.c:
27839 Make sure VA display is valid when created with an explicit "display" name.
27841 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27843 * sys/vaapisink/gstvaapisink.c:
27844 Use plain "display" property for the X11 display name.
27846 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27848 * sys/vaapiconvert/gstvaapiconvert.c:
27849 * sys/vaapisink/gstvaapisink.c:
27850 Document vaapiconvert & vaapisink plugins.
27852 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27855 * docs/reference/Makefile.am:
27856 * docs/reference/plugins/Makefile.am:
27857 * docs/reference/plugins/plugins-docs.xml.in:
27858 * docs/reference/plugins/plugins-overrides.txt:
27859 * docs/reference/plugins/plugins-sections.txt:
27860 * docs/reference/plugins/plugins.types:
27861 Add plugins documentation template.
27863 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27865 * sys/vaapisink/gstvaapisink.c:
27866 * sys/vaapisink/gstvaapisink.h:
27867 Don't export gst_vaapisink_get_display().
27869 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27872 * docs/reference/libs/libs-docs.xml.in:
27873 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27874 * gst-libs/gst/vaapi/gstvaapiimage.c:
27875 * gst-libs/gst/vaapi/gstvaapisurface.c:
27876 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27877 Drop introspection annotations since they require gtk-doc >= 1.12.
27879 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27881 * gst-libs/gst/vaapi/gstvaapisurface.c:
27882 Add note about the fact that the surface holds an extra reference to the subpicture.
27884 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27886 * gst-libs/gst/vaapi/gstvaapiimage.c:
27887 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27888 * gst-libs/gst/vaapi/gstvaapisurface.c:
27889 Improve debugging messages.
27891 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27893 * tests/test-windows.c:
27894 Unref subpicture earlier as the surface is supposed to hold a reference to it.
27896 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27898 * docs/reference/libs/libs-sections.txt:
27899 * gst-libs/gst/vaapi/gstvaapisurface.c:
27900 * gst-libs/gst/vaapi/gstvaapisurface.h:
27901 * tests/test-windows.c:
27902 Add gst_vaapi_surface_{,de}associate_subpicture() API.
27904 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27906 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27907 Wait for MapNotify or UnmapNotify events on foreign windows too.
27909 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27911 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27912 Check whether the foreign XID is mapped at binding time.
27914 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27916 * sys/vaapisink/gstvaapisink.c:
27917 Add missing includes.
27919 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27922 * debian/Makefile.am:
27923 * debian/control.in:
27924 * debian/gstreamer-vaapi-doc.install.in:
27928 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27930 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27931 Fix warnings (drop extraneous var).
27933 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27935 * docs/reference/libs/libs-sections.txt:
27936 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27937 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
27939 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27941 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27944 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27946 * gst-libs/gst/vaapi/Makefile.am:
27947 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27948 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27949 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
27950 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27951 Try to improve switch to fullscreen mode.
27953 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27955 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27956 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27957 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27958 Improve display locking and rework X event wait functions.
27960 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27962 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27963 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
27964 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
27966 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27968 * gst-libs/gst/vaapi/Makefile.am:
27969 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27970 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
27971 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.
27973 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27975 * docs/reference/libs/libs-sections.txt:
27976 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27977 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27978 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
27980 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27982 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27983 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27984 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27985 Add gst_vaapi_window_get_display() to base.
27987 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27989 * docs/reference/libs/libs-docs.xml.in:
27990 * docs/reference/libs/libs-sections.txt:
27991 * gst-libs/gst/vaapi/Makefile.am:
27992 * gst-libs/gst/vaapi/gstvaapitypes.h:
27993 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27994 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27995 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27996 * sys/vaapisink/gstvaapisink.c:
27997 * sys/vaapisink/gstvaapisink.h:
27998 Add GstVaapiPoint & GstVaapiRectangle data structures.
28000 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28005 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28008 * sys/vaapisink/gstvaapisink.c:
28009 * sys/vaapisink/gstvaapisink.h:
28010 Allow `vaapisink` to render videos in fullscreen mode.
28012 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28014 * docs/reference/libs/libs-sections.txt:
28015 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28016 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28017 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28018 Add gst_vaapi_window_set_fullscreen() API.
28020 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28022 * sys/vaapisink/gstvaapisink.c:
28023 Size window so that to respect the video and pixel aspect ratio.
28025 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28027 * docs/reference/libs/libs-sections.txt:
28028 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28029 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28030 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28031 * tests/test-display.c:
28032 Add gst_vaapi_display_get_pixel_aspect_ratio().
28034 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28036 * docs/reference/libs/libs-sections.txt:
28039 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28041 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28042 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28043 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28044 * tests/test-display.c:
28045 Add display size accessors.
28047 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28050 * debian/control.in:
28051 Build-Requires: gstreamer-plugins-base >= 0.10.16.
28053 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28055 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28056 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28057 * gst-libs/gst/vaapi/gstvaapiimage.h:
28058 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
28059 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28060 * gst-libs/gst/vaapi/gstvaapisurface.h:
28061 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28062 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28063 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28064 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28065 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
28066 Fix documentation of *Class'es.
28068 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28070 * gst-libs/gst/vaapi/gstvaapiutils.c:
28071 * gst-libs/gst/vaapi/gstvaapiutils.h:
28072 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28073 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
28075 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28077 * docs/reference/libs/libs-sections.txt:
28078 * gst-libs/gst/vaapi/gstvaapisurface.h:
28079 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28080 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
28082 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28084 * docs/reference/libs/libs-sections.txt:
28085 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28086 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28087 * sys/vaapisink/gstvaapisink.c:
28088 * tests/test-windows.c:
28089 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
28091 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28093 * docs/reference/libs/Makefile.am:
28094 Fix make dist for --enable-gtk-doc builds.
28096 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28099 Improve autogen.sh.
28101 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28105 Generate gtk-doc.make from gtkdocize.
28107 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28112 * docs/Makefile.am:
28113 * docs/reference/Makefile.am:
28114 * docs/reference/libs/Makefile.am:
28115 * docs/reference/libs/libs-docs.xml.in:
28116 * docs/reference/libs/libs-overrides.txt:
28117 * docs/reference/libs/libs-sections.txt:
28118 * docs/reference/libs/libs.types:
28119 Document public API for libgstvaapi-*.so.*.
28121 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28123 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28124 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28125 Document GstVaapiVideoBuffer.
28127 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28129 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
28130 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
28131 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28132 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28133 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28134 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28135 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
28137 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28139 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28140 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28141 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28142 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28143 * gst-libs/gst/vaapi/gstvaapiimage.c:
28144 * gst-libs/gst/vaapi/gstvaapiimage.h:
28145 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28146 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28147 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28148 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28149 * gst-libs/gst/vaapi/gstvaapisurface.c:
28150 * gst-libs/gst/vaapi/gstvaapisurface.h:
28151 * gst-libs/gst/vaapi/gstvaapivideosink.c:
28152 * gst-libs/gst/vaapi/gstvaapivideosink.h:
28153 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28154 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28155 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28156 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
28157 Add tedious documentation.
28159 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28161 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28162 Beautify append_formats().
28164 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28166 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28167 Simplify GstVaapiDisplay (use GArray).
28169 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28172 * sys/vaapiconvert/gstvaapiconvert.c:
28173 * sys/vaapiconvert/gstvaapiconvert.h:
28174 Factor out direct-rendering infrastructure.
28176 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28178 * sys/vaapiconvert/gstvaapiconvert.c:
28179 * sys/vaapiconvert/gstvaapiconvert.h:
28180 Allow user to specify inout-buffers & derive-image optimizations.
28182 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28184 * sys/vaapiconvert/gstvaapiconvert.c:
28185 Reduce number of debug messaged printed out.
28187 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28189 * sys/vaapiconvert/gstvaapiconvert.c:
28190 * sys/vaapiconvert/gstvaapiconvert.h:
28191 Add vaDeriveImage() optimization.
28193 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28195 * gst-libs/gst/vaapi/gstvaapiimage.c:
28196 Fix gst_vaapi_image_create() from a foreign VA image.
28198 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28200 * gst-libs/gst/vaapi/gstvaapiimage.c:
28201 * gst-libs/gst/vaapi/gstvaapiimage.h:
28202 * gst-libs/gst/vaapi/gstvaapisurface.c:
28203 * gst-libs/gst/vaapi/gstvaapisurface.h:
28204 Add gst_vaapi_surface_derive_image() API.
28206 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28208 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28209 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28210 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28211 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().
28213 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28215 * tests/test-windows.c:
28216 Try YV12 & I420 image formats too.
28218 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28220 * gst-libs/gst/vaapi/gstvaapiimage.c:
28221 Split map/unmap functions into internal functions that don't check preconditions.
28223 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28225 * gst-libs/gst/vaapi/gstvaapiimage.c:
28226 Improve gst_vaapi_image_new() sanity checks.
28228 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28230 * tests/test-windows.c:
28233 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28235 * sys/vaapiconvert/gstvaapiconvert.c:
28236 Check if our inout buffer is still alive or default to a separate output buffer.
28238 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28240 * sys/vaapiconvert/gstvaapiconvert.c:
28241 * sys/vaapiconvert/gstvaapiconvert.h:
28242 Factor out buffers negotiation and optimization checks.
28244 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28246 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28247 * gst-libs/gst/vaapi/gstvaapiimage.c:
28248 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
28249 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
28250 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28251 * sys/vaapiconvert/gstvaapiconvert.h:
28254 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28256 * gst-libs/gst/vaapi/gstvaapiimage.c:
28257 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
28259 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28261 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28262 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28263 * gst-libs/gst/vaapi/gstvaapiimage.c:
28264 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28265 * gst-libs/gst/vaapi/gstvaapisurface.c:
28266 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28267 Add VA display locking utilities.
28269 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28271 * sys/vaapisink/gstvaapisink.c:
28272 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
28274 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28276 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28277 * tests/test-windows.c:
28278 Don't show window by default during creation.
28280 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28282 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28283 Fix gst_vaapi_window_x11_destroy().
28285 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28287 * sys/vaapiconvert/gstvaapiconvert.c:
28288 * sys/vaapiconvert/gstvaapiconvert.h:
28289 Alias sink & src pad buffers whenever possible.
28291 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28293 * gst-libs/gst/vaapi/gstvaapiimage.c:
28294 * gst-libs/gst/vaapi/gstvaapiimage.h:
28295 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
28297 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28299 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28300 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28301 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
28303 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28305 * sys/vaapiconvert/gstvaapiconvert.c:
28306 Fix image & surface size cache.
28308 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28311 Move gstreamer-vaapi package versioning to the top.
28313 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28316 Bump version for development.
28318 === release 0.1.0 ===
28320 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28323 Cosmetics (shorten lines).
28325 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28331 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28333 * debian/Makefile.am:
28334 * debian/changelog.in:
28336 * debian/control.in:
28337 * debian/copyright:
28338 * debian/gstreamer-vaapi.install.in:
28339 * debian/libgstvaapi-dev.install.in:
28340 * debian/libgstvaapi-x11.install.in:
28341 * debian/libgstvaapi.install.in:
28343 Add debian packaging.
28345 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28349 Add debian packaging.
28351 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28353 * pkgconfig/Makefile.am:
28354 Silence GNU make extensions warning.
28356 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28359 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'
28361 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28365 * pkgconfig/Makefile.am:
28366 * pkgconfig/gstreamer-vaapi-x11.pc.in:
28367 * pkgconfig/gstreamer-vaapi.pc.in:
28368 Add pkgconfig files.
28370 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28373 * gst-libs/gst/vaapi/Makefile.am:
28374 * sys/vaapisink/Makefile.am:
28375 * tests/Makefile.am:
28376 Split X11 support to libgstvaapi-x11-*.so.*
28378 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28380 * gst-libs/gst/vaapi/Makefile.am:
28381 Don't install private headers.
28383 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28385 * gst-libs/gst/vaapi/gstvaapidebug.h:
28386 * gst-libs/gst/vaapi/gstvaapiutils.c:
28387 * gst-libs/gst/vaapi/gstvaapiutils.h:
28390 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28392 * gst-libs/gst/vaapi/Makefile.am:
28393 * gst-libs/gst/vaapi/gstvaapidebug.h:
28394 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28395 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28396 * gst-libs/gst/vaapi/gstvaapiimage.c:
28397 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
28398 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28399 * gst-libs/gst/vaapi/gstvaapisurface.c:
28400 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28401 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28402 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28403 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28404 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28405 Rename vaapi_debug.h to gstvaapidebug.h.
28407 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28409 * gst-libs/gst/vaapi/Makefile.am:
28410 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28411 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28412 * gst-libs/gst/vaapi/gstvaapiimage.c:
28413 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28414 * gst-libs/gst/vaapi/gstvaapisurface.c:
28415 * gst-libs/gst/vaapi/gstvaapiutils.c:
28416 * gst-libs/gst/vaapi/gstvaapiutils.h:
28417 * gst-libs/gst/vaapi/vaapi_debug.h:
28418 Move vaapi_utils.* to gstvaapiutils.*
28420 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28422 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
28423 Cosmetics (remove an extra line).
28425 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28427 * gst-libs/gst/vaapi/Makefile.am:
28428 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
28429 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
28430 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28431 Move X11 utilties to gstvaapiutils_x11.[ch].
28433 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28435 * gst-libs/gst/vaapi/Makefile.am:
28436 * gst-libs/gst/vaapi/gstvaapivideosink.c:
28437 * gst-libs/gst/vaapi/gstvaapivideosink.h:
28438 * sys/vaapiconvert/gstvaapiconvert.c:
28439 * sys/vaapisink/gstvaapisink.c:
28440 Rename GstVaapiSinkBase to GstVaapiVideoSink.
28442 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28445 * tests/Makefile.am:
28446 * tests/examples/Makefile.am:
28447 * tests/examples/generic/Makefile.am:
28448 * tests/test-display.c:
28449 * tests/test-surfaces.c:
28450 * tests/test-windows.c:
28451 Move tests to top-level tests/ directory.
28453 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28455 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28456 * gst-libs/gst/vaapi/gstvaapiimage.c:
28457 * sys/vaapiconvert/gstvaapiconvert.c:
28458 * sys/vaapiconvert/gstvaapiconvert.h:
28459 Handle I420 formats internally in GstVaapiImage.
28461 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28463 * sys/vaapiconvert/gstvaapiconvert.c:
28464 * sys/vaapiconvert/gstvaapiconvert.h:
28465 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
28467 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28469 * gst-libs/gst/vaapi/gstvaapiimage.c:
28470 Implement I420 and YV12 if the underlying implementation does not.
28472 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28474 * sys/vaapiconvert/Makefile.am:
28475 * sys/vaapiconvert/gstvaapiconvert.c:
28476 * sys/vaapiconvert/gstvaapiconvert.h:
28477 Add initial vaapiconvert plugin.
28479 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28481 * sys/vaapisink/gstvaapisink.c:
28482 * sys/vaapisink/gstvaapisink.h:
28485 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28487 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28490 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28492 * tests/examples/generic/test-windows.c:
28493 Generate R/G/B rects.
28495 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28497 * gst-libs/gst/vaapi/gstvaapisurface.c:
28498 * gst-libs/gst/vaapi/gstvaapisurface.h:
28499 Add gst_vaapi_surface_sync().
28501 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28503 * gst-libs/gst/vaapi/gstvaapiimage.c:
28504 Cosmetics (reverse args order).
28506 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28508 * gst-libs/gst/vaapi/gstvaapiimage.c:
28509 * gst-libs/gst/vaapi/gstvaapiimage.h:
28510 * gst-libs/gst/vaapi/gstvaapisurface.c:
28513 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28515 * gst-libs/gst/vaapi/Makefile.am:
28516 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28517 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28518 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28519 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
28520 * tests/examples/generic/Makefile.am:
28521 * tests/examples/generic/test-windows.c:
28522 Add VA/X11 window abstraction.
28524 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28526 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28527 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28528 Add VA and X11 display accessors.
28530 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28532 * gst-libs/gst/vaapi/gstvaapiimage.c:
28535 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28537 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28540 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28542 * gst-libs/gst/vaapi/gstvaapiimage.c:
28543 * gst-libs/gst/vaapi/gstvaapiimage.h:
28544 * gst-libs/gst/vaapi/gstvaapisurface.c:
28545 * gst-libs/gst/vaapi/gstvaapisurface.h:
28546 Add gst_vaapi_{get,put}_image() API.
28548 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28550 * gst-libs/gst/vaapi/gstvaapiimage.c:
28551 * gst-libs/gst/vaapi/gstvaapiimage.h:
28552 Add gst_vaapi_image_update_from_buffer() helper.
28554 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28556 * sys/vaapisink/Makefile.am:
28557 * sys/vaapisink/gstvaapisink.c:
28558 * sys/vaapisink/gstvaapisink.h:
28559 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
28561 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28563 * tests/examples/generic/Makefile.am:
28564 * tests/examples/generic/test-surfaces.c:
28567 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28569 * gst-libs/gst/vaapi/Makefile.am:
28570 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28571 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28572 Add basic GstVaapiVideoBuffer.
28574 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28576 * gst-libs/gst/vaapi/Makefile.am:
28577 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
28578 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
28579 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28580 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28581 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28582 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28583 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
28585 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28587 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28588 Simplify format conversion code.
28590 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28592 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28593 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28594 Add gst_vaapi_image_format_from_caps() helper.
28596 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28598 * gst-libs/gst/vaapi/Makefile.am:
28599 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28600 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28601 Add VA surface pool (lazy allocator).
28603 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28605 * gst-libs/gst/vaapi/gstvaapisurface.c:
28606 * gst-libs/gst/vaapi/gstvaapisurface.h:
28607 Add gst_vaapi_surface_get_size() helper.
28609 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28611 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28612 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
28614 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28616 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28617 Reset display-name if the user provided his own X11 display.
28619 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28621 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28622 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28623 * tests/examples/generic/test-display.c:
28624 Add gst_vaapi_display_x11_new_with_display() API.
28626 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28628 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28629 * gst-libs/gst/vaapi/gstvaapiimage.h:
28630 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28631 * gst-libs/gst/vaapi/gstvaapisurface.h:
28632 Fix *_GET_CLASS() definitions...
28634 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28636 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28637 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28638 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28639 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28640 * tests/examples/generic/test-display.c:
28641 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
28643 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28645 * gst-libs/gst/vaapi/gstvaapisurface.c:
28646 * gst-libs/gst/vaapi/gstvaapisurface.h:
28647 Use GstVaapiChromaType abstraction.
28649 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28651 * gst-libs/gst/vaapi/gstvaapiimage.c:
28652 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28653 * gst-libs/gst/vaapi/gstvaapisurface.c:
28654 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
28656 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28658 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28659 Don't warn on failure, just return an appropriate error or value.
28661 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28663 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28664 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28665 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28666 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
28668 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28670 * gst-libs/gst/vaapi/Makefile.am:
28671 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
28672 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
28673 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
28675 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28677 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28678 * gst-libs/gst/vaapi/gstvaapiimage.c:
28679 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28680 * gst-libs/gst/vaapi/gstvaapisurface.c:
28681 * gst-libs/gst/vaapi/vaapi_debug.h:
28684 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28686 * gst-libs/gst/vaapi/gstvaapiimage.c:
28687 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28688 Fix GstVaapiImage and GstVaapiSubpicture initialization.
28690 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28692 * gst-libs/gst/vaapi/gstvaapisurface.c:
28693 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
28695 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28697 * tests/examples/generic/test-display.c:
28700 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28702 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28703 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28704 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28705 Fix GstVaapiDisplay initialization.
28707 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28709 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28710 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28711 Get VA image & subpicture formats as GstCaps.
28713 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28715 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28716 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28717 Add helper to convert from GstVaapiImageFormat to GstCaps.
28719 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28721 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28722 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28723 * gst-libs/gst/vaapi/gstvaapisurface.c:
28724 Cosmetics (drop unused variables).
28726 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28729 * sys/vaapiconvert/Makefile.am:
28730 * sys/vaapiconvert/gstvaapiconvert.c:
28731 * sys/vaapiconvert/gstvaapiconvert.h:
28732 * sys/vaapisink/Makefile.am:
28733 * sys/vaapisink/gstvaapisink.c:
28734 * sys/vaapisink/gstvaapisink.h:
28735 Add boilerplate for vaapiconvert and vaapisink elements.
28737 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28741 * sys/vaapiconvert/Makefile.am:
28742 Add vaapiconvert element hierarchy.
28744 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28746 * sys/vaapisink/Makefile.am:
28747 Rename to vaapisink.
28749 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28751 * gst-libs/gst/vaapi/gstvaapisurface.c:
28752 Shorter code (and more correct).
28754 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28756 * gst-libs/gst/vaapi/gstvaapisurface.c:
28757 * gst-libs/gst/vaapi/gstvaapisurface.h:
28758 Add helper to get GstVaapiDisplay from a surface.
28760 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28762 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28763 Fix subpicture formats list length.
28765 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28767 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28768 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28769 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
28771 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28773 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28774 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28775 Cosmetics (more checks, includes).
28777 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28779 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28780 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28781 Really add VA subpicture abstraction.
28783 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28785 * gst-libs/gst/vaapi/Makefile.am:
28786 * gst-libs/gst/vaapi/gstvaapiimage.c:
28787 * gst-libs/gst/vaapi/gstvaapiimage.h:
28788 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28789 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28790 * gst-libs/gst/vaapi/gstvaapisurface.c:
28791 * gst-libs/gst/vaapi/gstvaapisurface.h:
28792 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
28794 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28797 * gst-libs/gst/vaapi/Makefile.am:
28798 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28799 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28800 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28801 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28802 * gst-libs/gst/vaapi/vaapi_debug.h:
28803 * gst-libs/gst/vaapi/vaapi_utils.c:
28804 * gst-libs/gst/vaapi/vaapi_utils.h:
28805 * tests/examples/generic/Makefile.am:
28806 * tests/examples/generic/test-display.c:
28807 Add initial VA display abstraction.
28809 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28813 * tests/Makefile.am:
28814 * tests/examples/Makefile.am:
28815 * tests/examples/generic/Makefile.am:
28816 Add tests infrastructure.
28818 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28821 Clean up VA-API checks.
28823 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28826 Check for __attribute__((visibility("hidden"))).