3 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
9 * gstreamer-vaapi.doap:
13 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
15 * docs/plugins/inspect/plugin-vaapi.xml:
18 2019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
20 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
22 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
23 libs: encoder: h264,h265: guard VA version for max_qp property
24 This patch fixes a regression from commit 5b1fe9c6.
25 max_qp, in rate control configuration, appeared in libva release
26 2.1 (API 1.1), thus it is required to guard the VA API version.
29 2019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com>
31 * gst-libs/gst/vaapi/gstvaapiimage.c:
32 * gst-libs/gst/vaapi/video-format.c:
33 libs: Add RGB565 image format support.
35 2019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
38 build: configure: delay USE_GTK conditional until check libva-x11
39 libva-x11 is used for X11 applications, so it is required to build
41 Later, when Wayland test is added, we should change this.
43 2019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
46 build: configure: disable GLX if libva-x11 is not found
48 2019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com>
50 * gst-libs/gst/vaapi/gstvaapiutils.c:
51 libs: utils: avoid macro evaluation when stringify
52 string_of_va_chroma_format() gets a wrong string format description.
53 For example, the YUV420_10BPP get a string of 0x00000100 as output.
54 It's because VA_RT_FORMAT_xxx values are macro definitions. And
55 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
57 To avoid the macro evaluation, it is changed to show only the color
58 format without VA_RT_FORMAT_ prefix.
60 2019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
62 * gst-libs/gst/vaapi/gstvaapiutils.c:
63 libs: utils: use glib's macros
64 Don't reinvent the wheel.
66 2019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com>
68 * gst/vaapi/gstvaapipluginutil.c:
69 plugins: find the preferred format from right caps.
70 When the downstream has any caps, then raw video feature will
71 be used. At this situation, the preferred format should be chose
72 from caps which contains "vide/x-raw" feature instead of from
73 the fist allowed caps.
76 2019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
78 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
79 libs: encoder: h265: fill tier in va seq param buf
80 Now that tier is calculated in commit 58e74f9440fe (!68),
81 ensure we fill in the general_tier_flag in the
82 VAEncSequenceParameterBufferHEVC.
84 === release 1.15.90 ===
86 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
92 * gstreamer-vaapi.doap:
96 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
98 * docs/plugins/inspect/plugin-vaapi.xml:
101 2019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com>
103 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
104 libs: encoder: h265: Recognize the correct level and tier.
105 The current manner can not recognize the correct level and always
106 set the tier to main. Need to add frame rate check to recognize
107 levels such as 4.1, 6.2, etc. We also add a logic to check main
108 and high tier based on bitrate.
111 2019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com>
113 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
114 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
115 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
116 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
117 media-driver currently fails to set a correct value of max_qp when
118 min_qp is different to zero, in CBR and VBR mode, generating full
119 quality frames, thus unexpected huge output.
120 This patch sets max_qp to an arbitrary value to avoid this output
124 2019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
126 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
127 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
128 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
129 libs: encoder: h264,h265: initial and minimal QP can be zero
130 Currently the minimal value for either min_qp and init_qp are 1,
131 but VA documentation specifiy that zero is also valid and means
132 to ignore the quantiser.
133 The default value is not changed though to avoid behaivor changes
136 2019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
138 * tests/elements/meson.build:
139 meson: build test-vaapicontext when using X11
140 x11_dep and libva_x11_dep are optional and meson ignores these
141 dependencies even if they are added into the dependency list.
142 This fixes the error below when libva-x11 is not avaiblabe:
143 cc -Itests/elements/tests@elements@@test-vaapicontext@exe
144 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
145 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
146 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
147 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
148 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
149 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
150 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
151 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
152 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
153 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
154 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
155 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
156 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
157 -DHAVE_CONFIG_H -MD -MQ
158 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
160 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
162 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
163 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
164 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
165 error: va/va_x11.h: No such file or directory
166 #include <va/va_x11.h>
168 2019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com>
170 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
171 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
172 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
173 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
174 GValueArray is deprecated. Use GstValueArray instead.
176 2019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com>
178 * gst/vaapi/gstvaapipluginutil.c:
179 vaapipluginutil: Fix #endif for USE_X11
181 2019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
183 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
184 libs: encoder: h264: simplify the view-ids setting
186 2019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com>
188 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
189 libs: encoder: h264: Use gst_param_spec_array for view-ids
190 GValueArray is deprecated. Use GstValueArray instead.
191 gst_param_spec_array can be deserialized from command line using:
192 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
193 While the g_param_spec_value_array() can not, and always get
194 error: "gst_value_deserialize_g_value_array: unimplemented"
195 Also fixed an out-of-range bug.
197 2019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com>
199 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
200 libs: Change the parameter setting order when encode picture.
201 The order in gst_vaapi_enc_picture_encode when encoding one
202 picture is not very correct. The misc parameters are set before
203 the picture parameters. Some of the misc parameters such as
204 ROI may change the current picture parameters. But the later
205 setting of picture parameter will re-init all picture related
206 parameters and clear the previous setting. The right order
207 should be picture parameter first and then misc parameters.
208 Signed-off-by: He Junyan <junyan.he@hotmail.com>
210 2019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com>
212 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
213 libs: decoder: jpeg: support dynamic resolution change decode.
214 Add size_changed flag to watch out resolution. if change, reset
215 jpeg decoder's context.
217 2019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com>
219 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
220 libs: encoder: h265: add low power mode encode.
221 By now, this feature only support by media-driver on Ice Lake
222 platform, more information you can reference:
223 https://github.com/intel/media-driver
225 2019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com>
227 * gst/vaapi/gstvaapiencode.c:
228 vaapiencode: gobject's prop_id differ from vaapi encoder
229 The vaapi internal encoder's property id are negative, thus they are
230 different from GObject's property ids.
231 gst_vaapi_encoder_set_property() should map to the internal encoder
232 property id, assigned in gst_vaapiencode_default_set_property().
234 2019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com>
237 meson: disable compiler warnings for unused vars and args if gst debug system is disabled
239 2019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com>
242 meson: use new 'python' module instead of deprecated 'python3' one
244 2019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com>
247 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
248 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
250 2019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
255 * docs/plugins/inspect/plugin-vaapi.xml:
259 2019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com>
261 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
262 libs: Fix a typo in comments.
263 Fix a typo in function description of
264 gst_vaapi_surface_pool_new_with_chroma_type.
265 Signed-off-by: He Junyan <junyan.he@hotmail.com>
267 2019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
269 * gst/vaapi/gstvaapipluginutil.c:
270 plugin: if any caps in downstream, negotiate raw video
271 When downstream has any caps, vaapi should not shovel vaapi featured
272 buffers, but rather plain raw video, assuming always the worst case
273 scenario (downstream cannot handle featured video memory but raw
274 system memory buffers).
275 This patch query the peer caps without any filter, to know if
276 donwstream just ask for any caps, if so jump to the color space
277 checking, otherwise do the caps intersection and continue with the
278 feature selection algorithm.
281 === release 1.15.2 ===
283 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
289 * gstreamer-vaapi.doap:
293 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
295 * docs/plugins/inspect/plugin-vaapi.xml:
298 2019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com>
300 * gst/vaapi/gstvaapivideomemory.c:
301 vaapivideomemory: Prefer same format for surface and image
302 We prefer to use the same format between image and surface for gst
303 vaapi allocator. The old way may choose different formats between
304 image and surface. For example, the RGBA image may have a NV12 surface.
305 So we need to do format conversion when we put/get image to surface.
306 Some drivers such as iHD can not support such conversion and always
307 cause a data flow error. There may also have some performance cost
308 for format conversion when put/get images.
309 So we prefer to use the same format for image and surface in the
310 allocator. If the surface can not support that format, we then
311 fallback to find a best one as the surface format.
312 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
314 2019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com>
316 * gst-libs/gst/vaapi/video-format.c:
317 libs: Delete the duplicated ARGB video format.
318 Two ARGB formats with the same format information.
319 Should be verbose and delete one.
320 Signed-off-by: He Junyan <junyan.he@hotmail.com>
322 2019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com>
325 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
326 glx: Stop specifying GLX_DEPTH_SIZE
327 This code is just confused. It's asking for at least as many bits of
328 (z-axis) depth as the root window has bits of (color) depth. For rgb565
329 or rgb888 this is harmless, but at 10 bits per channel this demands a
330 30-bit or deeper Z buffer. While some hardware could in principle do a
331 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
333 We're not actually using the Z buffer, so just stop asking for one.
335 2019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com>
338 * gst-libs/gst/vaapi/Makefile.am:
339 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
340 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
341 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
342 * gst-libs/gst/vaapi/meson.build:
343 * gst/vaapi/gstvaapisink.c:
345 libs: wayland: add support for XDG-shell protocol
346 [wl_shell] is officially [deprecated], so provide support for the
347 XDG-shell protocol should be provided by all desktop-like compositors.
348 (In case they don't, we can of course fall back to wl_shell).
349 Note that the XML file is directly provided by the `wayland-protocols`
350 dependency and generates the protocol marshalling code.
351 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
352 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
354 2019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com>
356 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
357 libs: window: wayland: Prefix wl_shell_surface field with `wl_`
358 It will help us to distinguish from other Wayland shell surface
359 (such as XDG-shell) later on.
361 2019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com>
363 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
364 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
365 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
366 libs: wayland: Prefix wl_shell field with `wl_`
367 It will help us to distinguish from other Wayland shells (such as
370 2019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com>
372 * gst-libs/gst/vaapi/gstvaapidisplay.c:
373 libs: display: lock ensure_profile()
374 Thread safety patch for ensure_profile() function
377 2019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
380 meson: bump the minimum wayland version requirement to 1.11.0
381 This was missed on commit 77bb3424
383 2019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
385 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
386 * gst/vaapi/gstvaapisink.c:
387 vaapisink: x11: trap WM_DELETE_WINDOW message
388 Register the WM_DELETE_WINDOW message from window manager and
389 trap it to stop the pipeline cleanly.
390 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
392 2019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
394 * gst-libs/gst/vaapi/gstvaapiwindow.c:
395 libs: window: remove native-id property
396 native-id property is problematic since the variable that stores it is
397 gsize, which is platform specific, and in some is bigger than unsigned
398 long, and there are not way to handle gsize properties.
399 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
400 like to keep using it for this scope.
401 This patch removes the native-id property and set it manually in
402 gst_vaapi_window_new_internal().
404 2019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
406 * gst-libs/gst/vaapi/gstvaapiwindow.c:
407 libs: window: use G_GSIZE_MODIFIER for window id
408 gsize type is not equal in all platforms, then the 'l' print modifier
409 shall not be used always.
410 This issue was found in Debian builds.
412 2019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com>
414 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
415 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
416 encoder: h264/h265: set SPS cbr_flag with correct value.
417 The flag only set as 1 when the rate-control mode is CBR.
419 === release 1.15.1 ===
421 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
427 * gstreamer-vaapi.doap:
431 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
433 * docs/plugins/inspect/plugin-vaapi.xml:
436 2019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
438 * gst-libs/gst/vaapi/gstvaapiencoder.c:
439 libs: encoder: refactor to avoid code duplication
440 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
441 the same code segment where the coded buffer is created, the picture
442 encoded on it and pushed to the async queue.
443 The function gst_vaapi_encoder_encode_and_queue() refactor this.
445 2019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
447 * gst-libs/gst/vaapi/gstvaapiencoder.c:
448 * gst-libs/gst/vaapi/gstvaapiencoder.h:
449 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
450 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
451 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
452 libs: encoder: h264/h265: flush pending ordered pictures
453 In order to flush the pending pictures, a new internal encoder vmethod
454 is used: get_pending_reordered()
455 This method follows an iterator pattern which will return the next
456 picture to encode and push.
457 The base encoder will call this function in a loop when flush() is called.
458 For now, only H.264 and H.265 encoders implement this flushing mechanism.
460 2018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.com>
462 * gst-libs/gst/vaapi/gstvaapiencoder.c:
463 * gst-libs/gst/vaapi/gstvaapiencoder.h:
464 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
465 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
466 libs: encoder: h264/h265: fix encode lose frame issue.
467 Instead of dropping all remain frames in reorder_frame_list during
468 flush, keep encoding.
469 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
471 2019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com>
473 * gst/vaapi/gstvaapipostproc.c:
474 vaapipostproc: before set surface proxy, check if it already been created and exist.
475 Fix the deinterlace black frame when playing with glimagesink:
476 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
477 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
479 2019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com>
481 * gst-libs/gst/vaapi/gstvaapiutils.c:
482 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
484 2018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
486 * gst-libs/gst/vaapi/meson.build:
487 * gst/vaapi/meson.build:
490 meson: build h264 fei encoder if possible
492 2018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
495 configure: bump the minimum wayland version requirement to 1.11.0
497 2018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com>
500 * gst-libs/gst/vaapi/Makefile.am:
501 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
502 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
503 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
504 * gst-libs/gst/vaapi/gstvaapicompat.h:
505 * gst-libs/gst/vaapi/gstvaapicontext.c:
506 * gst-libs/gst/vaapi/gstvaapidisplay.c:
507 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
508 * gst-libs/gst/vaapi/gstvaapifilter.c:
509 * gst-libs/gst/vaapi/gstvaapiprofile.c:
510 * gst-libs/gst/vaapi/gstvaapisurface.c:
511 * gst-libs/gst/vaapi/gstvaapiutils.c:
512 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
513 * gst-libs/gst/vaapi/meson.build:
514 * gst/vaapi/Makefile.am:
515 * gst/vaapi/gstvaapi.c:
516 * gst/vaapi/gstvaapidecode.c:
517 * gst/vaapi/gstvaapidecodebin.c:
518 * gst/vaapi/gstvaapipluginbase.c:
519 * gst/vaapi/meson.build:
522 * tests/simple-decoder.c:
523 vaapi: bump the minimum vaapi version requirement to 0.39.0
524 And reduce unnecessary API version and structures check as well.
525 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
527 2018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
529 * gst-libs/gst/vaapi/gstvaapiwindow.c:
530 * gst-libs/gst/vaapi/gstvaapiwindow.h:
531 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
532 * tests/test-decode.c:
533 * tests/test-filter.c:
534 * tests/test-subpicture.c:
535 * tests/test-textures.c:
536 * tests/test-windows.c:
537 libs: window: remove custom ref() and unref()
538 Use gst_object_ref() and gst_object_unref() instead.
540 2018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
542 * gst-libs/gst/vaapi/gstvaapiwindow.c:
543 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
544 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
545 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
546 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
547 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
548 libs: window: use its own debug category
550 2018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
552 * gst-libs/gst/vaapi/gstvaapiwindow.c:
553 * gst-libs/gst/vaapi/gstvaapiwindow.h:
554 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
555 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
556 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
557 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
558 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
559 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
560 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
561 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
562 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
563 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
564 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
565 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
566 libs: window: refactor as gobject
567 This is another step in the gobjectification of the internal library
568 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
570 The idea is to minimize the changeset keeping the same design as
572 GstVaapiWindow is defined as an abstract class with two properties:
573 the GstVaapiDisplay and the native ID. Thus, many of the
574 GstVaapiObject macros were copied as GstVaapiWindow macros.
575 The function gst_vaapi_window_new_internal() is kept as a decorator
576 of for calling gst_vaapi_window_create() and the possibility of
578 The descendant classes, such as glx, still use the private
579 structures, but through the gobject mechanism.
581 2018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
583 * gst-libs/gst/vaapi/gstvaapifilter.c:
584 libs: filter: use its own debug category
586 2018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com>
588 * gst/vaapi/gstvaapidecode.c:
589 * gst/vaapi/gstvaapipluginbase.c:
590 * gst/vaapi/gstvaapipluginbase.h:
591 * gst/vaapi/gstvaapipostproc.c:
592 * gst/vaapi/gstvaapisink.c:
593 plugins: Add more check for allowed raw caps.
594 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
595 pad and src pad, which cause some bugs. For sink pad, we need to verify
596 vaPutImage() while for the src pad we need to verify vaGetImage().
597 For vaapidecoderXXX kind of plugins, the case is more complex. We need
598 to verify whether the decoded result(in some surface, NV12 format most
599 of the time) can be vaGetImage to some raw image format. Add more check
600 to fix all these problems.
601 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
602 Signed-off-by: He Junyan <junyan.he@hotmail.com>
604 2018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com>
606 * gst/vaapi/gstvaapipostproc.c:
607 vaapipostproc: fix csc fail when only change width or height.
609 2018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com>
611 * tests/elements/meson.build:
614 2018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com>
616 * gst/vaapi/gstvaapiencode_h264.c:
617 libs: enc: h264: set max profile idc with correct profile.
618 Use the highest rank of available profile as the max profile to
620 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
622 2018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com>
624 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
625 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
626 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
627 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
628 This gets rid of the strange `do_init` macro and makes the intent a bit
631 2018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com>
634 Automatic update of common submodule
635 From ed78bee to 59cb678
637 2018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com>
639 * gst-libs/gst/vaapi/gstvaapiimage.c:
640 * gst-libs/gst/vaapi/gstvaapiprofile.c:
641 * gst-libs/gst/vaapi/gstvaapiprofile.h:
642 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
643 * gst-libs/gst/vaapi/video-format.c:
644 * gst/vaapi/gstvaapidecode.c:
645 * gst/vaapi/gstvaapipluginutil.h:
646 libs: dec: h265: support decode for main-444 10bit streams.
647 Add 444 10bit yuv format Y410, which can be used to decode
648 main-444 10bit streams. Currently, this feature is only
649 supported by media-driver in Icelake.
651 2018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com>
653 * gst/vaapi/gstvaapidecode.c:
654 * gst/vaapi/gstvaapisink.c:
655 Run gst-indent through the files
656 This is required before we enabled an indent test in the CI.
657 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
659 2018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com>
661 * gst/vaapi/gstvaapipluginbase.c:
662 plugins: modify image check of extract_allowed_surface_formats.
663 The extract_allowed_surface_formats function just check whether
664 we can support some kind of surface/image format pair. We just
665 need to create a surface, create an image with the same video-format
666 and putImage from image to surface. All these operations success,
667 that kind of video-format is supported.
668 The old manner do not work for some kind of video-format. For example,
669 the RGBA kind of format will create a NV12 surface and RGBA image,
670 and the putImage will fail because the format is not same. And so
671 the RGBA format is not supported but actually it is supported.
673 2018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
675 * gst/vaapi/gstvaapipostproc.c:
676 vaapipostproc: add some missing locking
677 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
678 in gst_vaapipostproc_transform_caps(). The usage is already protected by
680 This is needed when the pipeline is stopped during startup.
682 2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com>
684 * gst/vaapi/gstvaapivideomemory.c:
686 Otherwise it will result in resource leak when failed to create
689 2018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
691 * gst/vaapi/gstvaapiencode.c:
692 vaapiencode: don't start src pad task in set_format
693 Otherwise the task may be restarted during shutdown. Start the task in
694 gst_vaapiencode_handle_frame() instead.
696 2018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com>
698 * gst-libs/gst/vaapi/gstvaapiprofile.c:
699 * gst-libs/gst/vaapi/gstvaapiprofile.h:
700 * gst-libs/gst/vaapi/gstvaapiutils.c:
701 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
702 * gst/vaapi/gstvaapidecode.c:
703 * gst/vaapi/gstvaapipluginutil.h:
704 libs: dec: h265: support decode for main-444 8bit streams.
705 Add 444 8bit yuv format AYUV, which can be used to decode
706 main-444 8bit streams. Currently, this feature is only
707 supported by media-driver in Icelake.
708 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
710 2018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
713 Add Gitlab CI configuration
714 This commit adds a .gitlab-ci.yml file, which uses a feature
715 to fetch the config from a centralized repository. The intent is
716 to have all the gstreamer modules use the same configuration.
717 The configuration is currently hosted at the gst-ci repository
718 under the gitlab/ci_template.yml path.
719 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
721 2018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com>
723 * gst-libs/gst/vaapi/gstvaapisurface.h:
724 * gst-libs/gst/vaapi/gstvaapiutils.c:
725 libs: Sync the GstVaapiChromaType to VA header file.
726 Add more kinds of chrometype which will be used to describe
727 new video formats. Sync it with 1.4.0 version header file.
728 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
729 Signed-off-by: He Junyan <junyan.he@hotmail.com>
731 2018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com>
733 * gst-libs/gst/vaapi/meson.build:
735 Fixes #117 hopefully.
737 2018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com>
740 meson: bump meson required to 0.47 for feature options
742 2018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com>
744 * gst-libs/gst/vaapi/video-format.c:
745 libs: Modify the video format of endianness.
746 We lack some video format because endianness declare.
747 The video format should not directly relate to endianness. For example,
748 ARGB on big endian should not be simplely seen as BGRA on little endian
749 machine. We should provide endianess convert or format convert help
750 functions if endianness does not match.
751 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
752 Signed-off-by: Junyan He <junyan.he@intel.com>
754 2018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com>
756 * gst/vaapi/gstvaapipluginutil.c:
757 plugins: Fix build error when GL is enabled while EGL is disabled.
758 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
759 unused-variable warning and may block build when Werror enabled.
760 Several functions like gst_vaapi_display_egl_new_with_native_display
761 have no prototype warning and link error when GL is enabled but EGL
762 is disabled. Fix all these warning and link error.
763 https://bugzilla.gnome.org/show_bug.cgi?id=797358
764 Signed-off-by: Junyan He <junyan.he@intel.com>
766 2018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com>
768 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
769 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
770 libs: encoder: h264/h264fei: remove unuseless code.
771 The variable are set twice, remove previous one.
772 https://bugzilla.gnome.org/show_bug.cgi?id=797365
774 2018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com>
776 * tests/simple-encoder.c:
777 * tests/test-fei-enc-in.c:
778 tests: check return value when using gst_buffer_map.
779 https://bugzilla.gnome.org/show_bug.cgi?id=797366
781 2018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
785 * tests/elements/meson.build:
787 build: meson: build examples
789 2018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
791 * gst-libs/gst/vaapi/meson.build:
792 build: meson: declare headers for libgstvaapi
793 Thus handling its recompilation if needed.
795 2018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com>
798 Update common submodule location
799 Remove the git directory
801 2018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
804 * gstreamer-vaapi.doap:
805 Clone the code from gitlab
806 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
808 2018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com>
810 * gst-libs/gst/vaapi/gstvaapiimage.c:
811 * gst-libs/gst/vaapi/gstvaapisurface.h:
812 * gst-libs/gst/vaapi/gstvaapiutils.c:
813 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
814 * gst-libs/gst/vaapi/video-format.c:
815 * gst/vaapi/gstvaapidecode.c:
816 * gst/vaapi/gstvaapipluginutil.h:
817 libs: dec: h265: support decode for main-10-422 10bit streams.
818 Add 422 10bit yuv format Y210, which can be used to decode
819 main-10-422 10bit streams. Currently, this feature is only
820 supported by media-driver in Icelake.
821 https://bugzilla.gnome.org/show_bug.cgi?id=797264
823 2018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com>
825 * gst-libs/gst/vaapi/gstvaapicontext.c:
826 libs: context: roi_rc_qp_delta_support should not be checked when CQP.
827 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
828 rate control mode is set as CQP. In CQP mode, it shouldn't check
829 roi_rc_qp_delta_support return value from driver backend.
830 https://bugzilla.gnome.org/show_bug.cgi?id=797087
832 2018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
834 * gst/vaapi/gstvaapipostproc.c:
835 vaapipostproc: fix classification string
836 The classification string is splitted by '/' and then looks for the
838 This patch removes the ';' by unifying all the components.
840 2018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com>
842 * gst/vaapi/gstvaapipostproc.c:
843 vaapipostproc: Add Hardware classifier to metadata
845 2018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com>
847 * gst-libs/gst/vaapi/gstvaapicontext.c:
848 libs: context: create context first before using it to create surface.
849 In gst_vaapi_context_reset(), if the context has to be destroyed, make
850 sure to create it first before allocating its associated surfaces.
851 This patch fixes a regression introduced in commit 82872f4 because
852 the formats available in the current context now are ensured before
853 creating the context's surfaces.
854 https://bugzilla.gnome.org/show_bug.cgi?id=797277
856 2018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com>
858 * docs/plugins/inspect/plugin-vaapi.xml:
859 * gst/vaapi/gstvaapidecode.c:
860 * gst/vaapi/gstvaapiencode_h264.c:
861 * gst/vaapi/gstvaapiencode_h264_fei.c:
862 * gst/vaapi/gstvaapiencode_h265.c:
863 * gst/vaapi/gstvaapiencode_jpeg.c:
864 * gst/vaapi/gstvaapiencode_mpeg2.c:
865 * gst/vaapi/gstvaapiencode_vp8.c:
866 * gst/vaapi/gstvaapiencode_vp9.c:
867 gst: Advertise elements interacting with hardware devices
869 2018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com>
871 * gst-libs/gst/vaapi/gstvaapicontext.c:
872 * gst-libs/gst/vaapi/gstvaapisurface.c:
873 * gst-libs/gst/vaapi/gstvaapisurface.h:
874 libs: context: query surface format before context to create surface.
875 Before using context to create surface, the supported surface format
876 should be checked first.
877 https://bugzilla.gnome.org/show_bug.cgi?id=797222
879 2018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
881 * gst-libs/gst/vaapi/gstvaapiimage.c:
882 * gst-libs/gst/vaapi/gstvaapivalue.c:
883 libs: replace g_error with GST_ERROR
884 And handle those errors rather than halting.
886 2018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
888 * gst-libs/gst/vaapi/gstvaapiimage.c:
889 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
890 * gst-libs/gst/vaapi/gstvaapisurface.c:
891 libs: replace g_warning with GST_WARNING
893 2018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com>
895 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
896 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
897 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
898 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
899 libs: Move from g_debug to GST_DEBUG.
900 https://bugzilla.gnome.org/show_bug.cgi?id=797202
902 2018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com>
904 * gst/vaapi/gstvaapipostproc.c:
905 vaapipostproc: change the way of handling deinterlace
906 The current vaapipostproc calls driver's video processing
907 pipeline for deinterlacing only if it is Advance deinterlacing.
908 Modify in the way that it always tries with driver's video
909 processing pipeline for deinterlacing, and falls back to software
910 method of appending picture structure meta data only if it fails
911 with driver's method.
912 https://bugzilla.gnome.org/show_bug.cgi?id=797095
914 2018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com>
916 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
917 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
918 libs: h264: Update level table to "Recommendation H.264 (04/17)".
919 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
920 from T-REC-H.264-201704.
921 https://bugzilla.gnome.org/show_bug.cgi?id=797202
923 2018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com>
925 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
926 * gst-libs/gst/vaapi/gstvaapiprofile.c:
927 * gst-libs/gst/vaapi/gstvaapiprofile.h:
928 * gst-libs/gst/vaapi/gstvaapisurface.c:
929 * gst-libs/gst/vaapi/gstvaapiutils.c:
930 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
931 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
932 * gst-libs/gst/vaapi/video-format.c:
933 * gst-libs/gst/vaapi/video-format.h:
934 * gst/vaapi/gstvaapidecode.c:
935 * gst/vaapi/gstvaapipluginbase.c:
936 * gst/vaapi/gstvaapipluginutil.h:
937 libs: dec: h265: add 422 chroma format support.
938 Add main-422-10 profile which support 422 chroma format stream.
939 Currently, this feature is only supported by media-driver in Icelake.
940 https://bugzilla.gnome.org/show_bug.cgi?id=797143
942 2018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com>
945 tests: include sysdeps.h in compilation unit
946 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
947 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
949 2018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
953 tests: fix compilation
954 https://bugzilla.gnome.org/show_bug.cgi?id=797204
956 2018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
959 tests: don's use sysdeps.h in header
961 2018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
963 * gst-libs/gst/vaapi/gstvaapiutils.h:
964 libs: utils: no need of include config.h
966 2018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
970 * tests/test-decode.c:
971 * tests/test-subpicture.c:
972 tests: remove already include string.h
973 Since sysdeps.h includes string.h there's no need to include it again.
975 2018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
977 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
978 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
979 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
980 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
981 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
982 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
983 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
984 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
985 * gst-libs/gst/vaapi/gstvaapidisplay.c:
986 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
987 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
988 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
989 * gst-libs/gst/vaapi/gstvaapiimage.c:
990 * gst-libs/gst/vaapi/gstvaapiprofile.c:
991 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
992 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
993 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
994 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
995 libs: remove already include string.h
996 Since sysdeps.h includes string.h there's no need to include it again.
998 2018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1000 * gst-libs/gst/vaapi/gstvaapiobject.h:
1001 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
1002 * gst/vaapi/gstvaapivideometa_texture.c:
1003 libs: object: separation of internal API and plugins
1004 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
1005 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
1007 The purpose is readability.
1008 https://bugzilla.gnome.org/show_bug.cgi?id=797139
1010 2018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1012 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
1013 libs: parser_frame: change macros for inlined functions
1014 https://bugzilla.gnome.org/show_bug.cgi?id=797139
1016 2018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1018 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
1019 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
1020 * gst-libs/gst/vaapi/gstvaapivideopool.c:
1021 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
1022 libs: videopool: remove unneeded code
1023 The removed code comes frome the bad practice of copy&paste. Better
1024 move it as internal function.
1025 https://bugzilla.gnome.org/show_bug.cgi?id=797139
1027 2018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1029 * gst-libs/gst/vaapi/Makefile.am:
1030 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
1031 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
1032 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
1033 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
1034 * gst-libs/gst/vaapi/gstvaapiobject.c:
1035 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
1036 * gst-libs/gst/vaapi/gstvaapipixmap.c:
1037 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
1038 * gst-libs/gst/vaapi/gstvaapitexture.c:
1039 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
1040 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1041 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1042 * gst-libs/gst/vaapi/meson.build:
1043 libs: remove dependency on IN_LIBGSTVAAPI_CORE
1044 This conditional code was when libgstvaapi was intended to be library
1045 used outside GStreamer. This not the case anymore, thus removing it.
1046 https://bugzilla.gnome.org/show_bug.cgi?id=797139
1048 2018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com>
1050 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1051 libs: dec: h265: fix the macros used for IDC profile
1052 profile_idc flag in SPS only indicate the IDC profile, which may
1053 need some other flags together to get the real profile.
1054 https://bugzilla.gnome.org/show_bug.cgi?id=797160
1056 2018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com>
1058 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1059 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
1060 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1061 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
1062 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1063 libs: use g_clear_pointer() when possible
1064 https://bugzilla.gnome.org/show_bug.cgi?id=797131
1066 2018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1068 * gst-libs/gst/vaapi/gstvaapifilter.h:
1069 libs: filter: add gobject's cleanup function
1071 2018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1073 * gst-libs/gst/vaapi/gstvaapifilter.c:
1074 * gst-libs/gst/vaapi/gstvaapifilter.h:
1075 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
1076 * tests/test-filter.c:
1077 libs: filter: remove custom ref() and unref()
1078 Replacing them by gst_object_ref() and gst_object_unref()
1079 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1081 2018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1083 * gst-libs/gst/vaapi/gstvaapifilter.c:
1084 * gst-libs/gst/vaapi/gstvaapifilter.h:
1085 libs: filter: refactor filter as gobject
1086 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1088 2018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1090 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1091 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
1092 libs: decoder: remove destoy() and create() callbacks
1093 They were all replaced by reset()
1094 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1096 2018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1098 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1099 libs: decoder: vp9: implement reset() callback
1100 remove destroy() and create() callback
1101 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1103 2018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1105 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
1106 libs: decoder: vp8: implement reset() callback
1107 remove create() and destroy() callbacks
1108 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1110 2018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1112 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
1113 libs: decoder: vc1: implement reset() callback
1114 remove destroy() and create() callbacks
1115 use g_clear_pointer for rbdu_buffer
1117 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1119 2018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1121 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
1122 libs: decoder: mpeg4: implement reset() callback
1123 remove destroy() and create() callback
1124 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1126 2018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1128 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
1129 libs: decoder: mpeg2: implement reset() callback
1130 remove create() and destroy() callbacks
1131 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1133 2018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1135 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
1136 libs: decoder: jpeg: implement reset() callback
1137 and remove create() and destroy() callbacks.
1138 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1140 2018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1142 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1143 libs: decoder: h265: implement reset() callback
1144 and remove create() and destroy()
1145 and use g_clear_pointer for dpb structure
1146 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1148 2018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1150 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1151 libs: decoder: h264: remove create() and destroy() callbacks
1152 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1154 2018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1156 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1157 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1158 * tests/test-decode.c:
1159 * tests/test-subpicture.c:
1160 libs: decoder: remove gst_vaapi_decoder_unref()
1161 Replaced by gst_object_unref() in tests
1162 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1164 2018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1166 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1167 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1168 libs: decoder: remove gst_vaapi_decoder_ref()
1169 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1171 2018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1173 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1174 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
1175 libs: decoder: remove gst_vaapi_decoder_new()
1176 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1178 2018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1180 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1181 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1182 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1183 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
1184 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1185 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
1186 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
1187 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
1188 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
1189 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
1190 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
1191 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
1192 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
1193 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
1194 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
1195 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
1196 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
1197 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1198 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
1199 libs: decoder: refactor decoders as gobject
1200 https://bugzilla.gnome.org/show_bug.cgi?id=796308
1202 2018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
1204 * gst/vaapi/gstvaapidecode.c:
1205 vaapidecode: Requests upstream a key unit at parse or decode error.
1206 This is done to resume decoding after a parse error or decode error.
1207 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
1209 2018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
1211 * gst/vaapi/gstvaapidecode.c:
1212 vaapidecode: sets return value in failure case.
1213 In gst_vaapidecode_handle_frame, when there is a decode error
1214 there is a code path the returns an uninitialized value.
1215 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
1217 2018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1219 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1220 libs: display: lock at extracting available image formates
1221 When running several vaapi elements at the concurrently, at
1222 initialization, there is a race condition when extractin the avaible
1223 formats for images and subpictures.
1224 This patch add a lock when the those arrays are filled.
1225 https://bugzilla.gnome.org/show_bug.cgi?id=797039
1227 2018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
1230 meson: Sync libversion and osxversion code from other repos
1231 gstreamer-vaapi does not build any libraries, only plugins, so this is
1232 not used, but sync it just in case someone does add it in the future.
1234 2018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1236 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1237 libs: encoder: h265: trivial documentation fix
1239 2018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com>
1241 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1242 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1243 libs: encoder: h265: add low delay B frame support.
1244 Low delay B frame provide the function of transforming
1245 P frame into low delay B frame which frame type is B, but
1246 only reference predictive frames. This can be used when P
1247 frame unsupported. Especially for P and B both unsupported,
1248 in this case, I and low delay B frame can be encoded in a
1250 https://bugzilla.gnome.org/show_bug.cgi?id=796984
1252 2018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1254 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1255 libs: decoder: h264: Avoid using picture after it has been free
1256 In some cases, the found_picture ended up being evicted and freed, which
1257 would lead to a use after free when accessing picture->base.poc. In this
1258 fix, we take a ref on the picture before calling dpb_evict.
1259 https://bugzilla.gnome.org/show_bug.cgi?id=787124
1261 2018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1263 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1264 h264decoder: Fail decoding slice with missing inter-view reference
1265 Similarly to previous patch, we have no error concealment. As a side
1266 effect, it's better to skip slices with missing references then passing
1267 NULL pointers to the accelerator. Passing NULL pointer would lead to
1268 major visual artifact, a behaviour that is likely undefined.
1269 https://bugzilla.gnome.org/show_bug.cgi?id=787124
1271 2017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com>
1273 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1274 libs: decoder: h264: reset context when the number of view is increased
1275 Usually in case of MVC decoding, dpb size is increasedi if subset sps.
1276 That's why it resets context without this patch.
1277 But for some media it doesn't increase dpb size. Even in this case we
1278 should reset context to deal with MVC decoding.
1279 Otherwise, it leads to assert.
1280 https://bugzilla.gnome.org/show_bug.cgi?id=787124
1282 2018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1284 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1285 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1286 * gst/vaapi/gstvaapidecode.c:
1287 vaapidecode: Skip unparsable units from adapter
1288 If the unit could not be parsed, just skip this nal and keep parsing
1289 what is left in the adapter. We need to flush the broken unit in the
1290 decoder specific parser because the generic code does not know about
1291 units boundary. This increases error resilliance.
1292 Before this, the broken unit would stay in the adapter and EOS would be
1293 returned. Which stopped the streaming. Just removing the EOS would have
1294 lead to the adapter size growing indefinitely.
1295 https://bugzilla.gnome.org/show_bug.cgi?id=796863
1297 2018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1299 * gst/vaapi/gstvaapidecode.c:
1300 vaapidecoder: Don't error out on decode errors
1301 This is problematic on live pipeline where loosing network can
1302 cause an important amount of errors.
1303 https://bugzilla.gnome.org/show_bug.cgi?id=796832
1305 2018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1307 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1308 h265decoder: Don't scan empty buffer
1309 Same as what we did for H264 decoder, this is to avoid an assertion
1311 https://bugzilla.gnome.org/show_bug.cgi?id=796832
1313 2018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1315 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1316 libs: h264: renable the vaapi category for logging
1317 h264 log messages were logged in default category because a regression
1318 in code. This patch renable the usage of vaapi logging category.
1319 This regression was introduced in commit 7c365bdd.
1321 2018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1323 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1324 h264decoder: Fail decoding slice if modification process failed
1325 This patch chains up failure to executing the modification process. The
1326 end result is that we now fail decoding the slice if this process fails.
1327 This avoid sending a corrupted state to the accelerator. In some special
1328 cases, this could lead to unrecoverable errors.
1329 https://bugzilla.gnome.org/show_bug.cgi?id=796832
1331 2018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1333 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1334 h264decoder: Don't scan empty buffer
1335 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
1336 try and scan in that case. This fixes assertion that would some times
1337 happen when the stream is corrupted.
1338 https://bugzilla.gnome.org/show_bug.cgi?id=796832
1340 2018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com>
1342 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1343 libs: encoder: jpeg: set component id and Tqi
1344 This change is due a problem encoding JPEGs with Intel's
1345 media-driver: green/black image when playback jpeg
1346 This patch sets component identifier and quantization table
1347 destination selector in frame header to support packing headers
1348 by Intel's media-driver that does not accept packed header
1350 https://bugzilla.gnome.org/show_bug.cgi?id=796705
1352 2018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1354 * gst/vaapi/gstvaapipluginutil.c:
1355 pluginutil: downgrade unsupported driver logging
1356 On systems with an Nvidia card, this error is output each time
1357 the registry is rebuilt, which happens pretty often when
1358 using gst-build as a development environment.
1359 https://bugzilla.gnome.org/show_bug.cgi?id=796663
1361 2018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com>
1363 * gst/vaapi/gstvaapivideobufferpool.c:
1364 Update for g_type_class_add_private() deprecation in recent GLib
1366 2018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1368 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1369 h264dec: Remove false assumption about parity order
1370 The decoder was trying to detect earlier that a field was lost base
1371 on guessing the parity order. This breaks in streams were the parity
1373 This patch reverts the field order prediction code added by commit
1375 https://bugzilla.gnome.org/show_bug.cgi?id=796169
1377 2018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1379 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1380 h264dec: Properly set sentinel in ref frame list
1381 This ensure that we always have sentinels set in the reference
1382 pictures arrays. The code wasn't unsafe, this simply improve the
1383 tracing, so instead of printing 32 lines of zeros, va tracer
1384 prints proper empty lists.
1385 https://bugzilla.gnome.org/show_bug.cgi?id=796169
1387 2018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1389 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1390 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1391 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1392 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1393 * gst-libs/gst/vaapi/gstvaapifilter.c:
1394 * gst-libs/gst/vaapi/gstvaapiobject.c:
1395 * gst-libs/gst/vaapi/gstvaapivideopool.c:
1396 * gst/vaapi/gstvaapipluginbase.c:
1397 * gst/vaapi/gstvaapivideometa.c:
1398 * tests/test-decode.c:
1399 libs: display: remove gst_vaapi_display_ref()
1400 Replace it with gst_object_ref()
1401 https://bugzilla.gnome.org/show_bug.cgi?id=796470
1403 2018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1405 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1406 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1407 * gst/vaapi/gstvaapi.c:
1408 * gst/vaapi/gstvaapidecode.c:
1409 * gst/vaapi/gstvaapiencode.c:
1410 * gst/vaapi/gstvaapipluginbase.c:
1411 * gst/vaapi/gstvaapipluginutil.c:
1413 * tests/simple-encoder.c:
1414 * tests/test-decode.c:
1415 * tests/test-display.c:
1416 * tests/test-fei-enc-in.c:
1417 * tests/test-filter.c:
1418 * tests/test-subpicture.c:
1419 * tests/test-surfaces.c:
1420 * tests/test-textures.c:
1421 * tests/test-windows.c:
1422 libs: display: remove gst_vaapi_display_unref()
1423 Use gst_object_unref() instead.
1424 https://bugzilla.gnome.org/show_bug.cgi?id=796470
1426 2018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1428 * gst/vaapi/gstvaapivideobufferpool.c:
1429 vaapibufferpool: declare parameter display as object
1430 We have neglected to update this code since GstVaapiDisplay turned
1431 into a GstObject descendant.
1432 https://bugzilla.gnome.org/show_bug.cgi?id=796470
1434 2018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
1436 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1437 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
1438 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
1439 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
1440 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
1441 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1442 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
1443 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
1444 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
1445 But still something breaking GObject code convention remains, which is
1446 calling gst_vaapi_display_new() in each decendants.
1447 This patch replaces it with gst_vaapi_display_config(), defined in private
1449 https://bugzilla.gnome.org/show_bug.cgi?id=796470
1451 2018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1453 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1454 libs: display: redefine gst_vaapi_display_create()
1455 The function name was gst_vaapi_display_create_unlocked(), nonetheless
1456 it wasn't called unlocked. In order to keep the semantics this patch
1457 renames the gst_vaapi_display_create_unlocked() as
1458 gst_vaapi_display_create(), removing the previous function
1459 gst_vaapi_display_create().
1460 https://bugzilla.gnome.org/show_bug.cgi?id=796470
1462 2018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1465 Revert "build: meson: libva gst-uninstall friendly"
1466 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
1468 2018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1470 * gst/vaapi/gstvaapipluginutil.c:
1471 plugins: fix compilation
1472 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
1474 2018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1477 build: meson: libva gst-uninstall friendly
1478 Make gstreamer-vaapi to use libva uninstalled.
1480 2018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1482 * gst/vaapi/gstvaapipluginutil.c:
1483 plugins: refactor gst_vaapi_create_display_from_gl_context()
1484 gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
1485 This path refactors it, in order to make the code readable and
1487 https://bugzilla.gnome.org/show_bug.cgi?id=796564
1489 2018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1491 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1492 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
1493 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
1494 libs: display: resurrect parent private member
1495 This is, practically, a revert of commit dcf135e2.
1496 The parent logic is useful for the EGL display, which is a decorator
1497 of the real windowing subsystem (X11 or Wayland). Thus it is avoided
1498 calling vaInitialize() and vaTerminate() twice.
1499 https://bugzilla.gnome.org/show_bug.cgi?id=795391
1501 2018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1503 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
1504 libs: display: egl: initialize params structure
1505 Statically initialise the internal params structure.
1506 https://bugzilla.gnome.org/show_bug.cgi?id=795391
1508 2018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1510 * gst/vaapi/gstvaapipluginutil.c:
1511 plugins: handle EGL when creating VAAPI display from gl
1512 If GstGL reports a EGL platform force to create a EGL display using
1513 the native EGL display.
1514 https://bugzilla.gnome.org/show_bug.cgi?id=795391
1516 2018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com>
1518 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
1519 * gst/vaapi/gstvaapipluginutil.c:
1520 display: egl: create VaapiDisplayEGL with native EGL display
1521 gst_vaapi_display_egl_new_with_native_display() has been broken since
1523 Currently it's needed to call this API to create a display providing
1524 the EGL display, so it could avoid duplicated calls to the native
1525 display (eg. eglTerminate).
1526 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
1527 https://bugzilla.gnome.org/show_bug.cgi?id=795391
1529 2018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com>
1531 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
1532 libs: decoder: release VA buffers after vaEndPicture
1533 This change is due a problem decoding JPEGs with Intel's media-driver:
1534 no image was generated.
1535 This patch relases the VA buffers after vaEndPicture() is called,
1536 and not before (after vaRenderPicture()).
1537 https://bugzilla.gnome.org/show_bug.cgi?id=796505
1539 2018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com>
1541 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
1542 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
1543 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
1544 meson: fix build when xrender or xrandr are not available
1545 HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
1547 2018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1549 * gst/vaapi/gstvaapipostproc.c:
1550 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
1551 Otherwise a reference to a DMABuf input buffer is kept until the output
1553 https://bugzilla.gnome.org/show_bug.cgi?id=796399
1555 2018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com>
1557 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1558 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
1559 libs: display: remove unnecessary legacy code since gobjectification
1560 https://bugzilla.gnome.org/show_bug.cgi?id=796470
1562 2018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com>
1564 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1565 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1566 libs: display: remove unused code
1567 https://bugzilla.gnome.org/show_bug.cgi?id=796470
1569 2018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1571 * gst/vaapi/gstvaapiencode_h264.c:
1572 vaapiencode: h264: log output caps
1574 2018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1576 * gst/vaapi/gstvaapiencode_h264.c:
1577 vaapiencode: h264: find profile in available and allowed caps
1578 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
1579 find best profile in those available") changed the code to pick a profile
1580 that is actually supported by the hardware. Unfortunately it dropped the
1581 downstream constraints. This can cause negotiation failures under certain
1583 The fix is split in two cases:
1584 1\ the available VA-API caps doesn't intersect with pipeline's allowed
1586 * The best allowed profile (pipeline's caps) is set as the encoding
1587 target profile (it will be adjusted later by the available profiles
1589 2\ the available VA-API caps does intersect with pipeline's allowed
1591 * The intersected caps are fixed, and its profile is set as the
1592 encoding target profile. In this case the is not the best profile,
1593 but the minimal one (if VA-API reports the profiles in order).
1594 Setting the minimal profile of the intersected caps is better for
1596 This patch fixes other tests related with caps negotiation, for
1597 example, it handles baseline profile, even when VA only supports
1598 constrained-baseline.
1599 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
1600 https://bugzilla.gnome.org/show_bug.cgi?id=794306
1602 2018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com>
1604 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1605 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
1606 The specification says,
1607 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
1608 This patch changes the upper limit from 6 to 12.
1609 https://bugzilla.gnome.org/show_bug.cgi?id=796179
1611 2018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1613 * gst/vaapi/gstvaapipluginutil.c:
1614 plugins: guard GstGL code
1616 2018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1618 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1619 libs: decoder: h264: use g_clear_pointer()
1621 2018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1623 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
1624 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
1625 libs: decoder: mpeg4, vc1: remove unused header
1627 2018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1629 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
1630 libs: decoder: remove unused forward declaration
1632 2018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
1635 fix configure.ac regression
1636 Fixes regression introduced by 77527d67abe
1637 https://bugzilla.gnome.org/show_bug.cgi?id=795885
1639 2018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1641 * gst-libs/gst/Makefile.am:
1642 * gst-libs/gst/base/Makefile.am:
1643 * gst-libs/gst/base/gstbitwriter.c:
1644 * gst-libs/gst/base/gstbitwriter.h:
1645 * gst-libs/gst/base/meson.build:
1646 * gst-libs/gst/meson.build:
1647 * gst-libs/gst/vaapi/Makefile.am:
1648 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1649 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
1650 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1651 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1652 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1653 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
1654 * gst-libs/gst/vaapi/meson.build:
1655 libs: remove gstbitwriter
1656 Since it is deployed in gstreamer-core, there is no need to use
1658 https://bugzilla.gnome.org/show_bug.cgi?id=795848
1660 2018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com>
1662 * gst/vaapi/gstvaapidecode.c:
1663 vaapih264dec: add constrained and progressive profiles
1664 Those profiles have been added in the version 2012-01
1665 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
1666 Both are supported by VAProfileH264High
1667 https://bugzilla.gnome.org/show_bug.cgi?id=795624
1669 2018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1671 * gst/vaapi/gstvaapipluginbase.c:
1672 * gst/vaapi/gstvaapipluginutil.c:
1673 * gst/vaapi/gstvaapivideocontext.c:
1674 * gst/vaapi/gstvaapivideocontext.h:
1675 plugin: remove custom GstGL context handling
1676 Instead of using our own context handling for looking for GstGL
1677 parameters (display, context and other context), this patch changes
1678 the logic to use the utility function offered by GstGL.
1679 https://bugzilla.gnome.org/show_bug.cgi?id=793643
1681 2018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1683 * gst/vaapi/gstvaapipluginbase.c:
1684 plugins: GstGL API must use the member variables
1685 This commit basically is a revert of commits 8092537 and fc1c415
1686 https://bugzilla.gnome.org/show_bug.cgi?id=793643
1688 2018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com>
1690 * gst/vaapi/gstvaapipluginbase.c:
1691 plugins: pass members as parameters of gst_gl_ensure_element_data()
1692 The parameters of gst_gl_ensure_element_data() have to be not
1693 local variable since they are going to be used to see if they're
1694 set in gst_element_set_context() inside the API.
1695 This is basically a revert of commit 3d56306c
1696 https://bugzilla.gnome.org/show_bug.cgi?id=793643
1698 2018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1701 meson: fix USE_GLES_VERSION_MASK
1702 1. The macro in the code is USE_GLES_VERSION_MASK
1703 2. glesv3 is provided by glesv2 pkg-config, then it's required to
1705 https://bugzilla.gnome.org/show_bug.cgi?id=795391
1707 2018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com>
1709 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
1710 libs: egl: utils: mark context as wrapped when it is
1711 The returning egl context may be null, so we should check the
1713 https://bugzilla.gnome.org/show_bug.cgi?id=795391
1715 2018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1717 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
1718 libs: egl: utils: fix usage of GstGL macros
1719 Include gl.h for the required GstGL symbols.
1720 https://bugzilla.gnome.org/show_bug.cgi?id=795391
1722 2018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com>
1725 meson: use -Wl,-Bsymbolic-functions where supported
1726 Just like the autotools build.
1728 2018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1731 meson: use get_pkgconfig_variable()
1732 Use get_pkgconfig_variable() method, of dependency class, rather
1733 than using run_command().
1735 2018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com>
1737 * gst-libs/gst/base/meson.build:
1738 * gst-libs/gst/vaapi/meson.build:
1740 meson: fix miscellaneous meson warnings
1741 WARNING: Passed invalid keyword argument "rqeuired".
1742 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
1743 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
1744 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
1745 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
1747 2018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com>
1749 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
1750 display: drm: Allow finding DRM paths out of the PCI subsystem
1751 This removes hard-coded checks on the parent subsystem of potential DRM
1752 devices. These checks were set to exlude devices that do not originate
1753 from the PCI bus, which is only a valid approach on x86 devices.
1754 Other devices may have a DRM device originating from the platform
1755 subsystem, so the checks that were previously restricted to PCI are
1756 extended to cover platform devices as well.
1757 https://bugzilla.gnome.org/show_bug.cgi?id=794840
1758 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
1760 2017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com>
1762 * gst/vaapi/gstvaapivideocontext.c:
1763 videocontext: support wl-display in "gst.vaapi.app.Display"
1764 Through "gst.vaapi.app.Display" context, users can set their own
1765 VADisplay and native display of their backend.
1766 So far we support only X11 display, from now we also support Wayland
1769 - wl-display : pointer of struct wl_display .
1770 https://bugzilla.gnome.org/show_bug.cgi?id=705821
1772 2017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com>
1774 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1775 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
1776 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
1777 Implements new API function so that users could create GstVaapiDisplay
1778 with their own VADisplay within a native display as backend.
1779 https://bugzilla.gnome.org/show_bug.cgi?id=705821
1781 2018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1783 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1784 wayland: don't poll if there are no pending frames
1785 Otherwise the following poll may not return for an arbitrary amount of
1786 time. This can happen if another wayland event queue has flushed and read
1788 https://bugzilla.gnome.org/show_bug.cgi?id=795224
1790 2017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com>
1792 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1793 libs: encoder: h265: 16 bit rounding of picture width and height
1794 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
1796 In addition, codedbuf_size must be calculated according to this change.
1797 https://bugzilla.gnome.org/show_bug.cgi?id=753229
1799 2018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com>
1802 Automatic update of common submodule
1803 From 3fa2c9e to ed78bee
1805 2018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1807 * gst/vaapi/gstvaapiencode_h264.c:
1808 vaapiencode: h264: find best profile in those available
1809 Instead to look for the best profile in the allowed profiles by
1810 downstream, the encoder should look for the base profile in the
1811 available profile in VA-API.
1812 https://bugzilla.gnome.org/show_bug.cgi?id=794306
1814 2018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
1819 * docs/plugins/inspect/plugin-vaapi.xml:
1823 === release 1.14.0 ===
1825 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
1830 * gstreamer-vaapi.doap:
1834 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
1836 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1837 libs: decoder: h264: ensure num_ref_frames is greater than 0
1838 Even if it is the h264parse fault or bad video file, vaapih264dec
1839 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
1840 as the driver might use it.
1841 Also see "info.ref_frames = dpb_size;" in
1842 gstvaapidecoder_h264.c::ensure_context
1843 https://bugzilla.gnome.org/show_bug.cgi?id=793836
1845 === release 1.13.91 ===
1847 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
1852 * gstreamer-vaapi.doap:
1856 === release 1.13.90 ===
1858 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
1863 * gstreamer-vaapi.doap:
1867 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1869 * gst/vaapi/gstvaapipostproc.c:
1870 vaapipostproc: change how the metadata is copied
1871 Instead of copying the metada in prepare_output_buffer() vmethod,
1872 it is done in append_output_buffer_metadata() thus deinterlaced
1873 buffers could also have the proper metas.
1874 GstVideoCropMeta now it is copied internally and it is decided via
1875 transform_meta() vmethod.
1876 A new internal method, copy_metadata() was added to handle VPP
1877 transformation where non-GstVideoVaapiMeta metas were lost.
1879 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1881 * gst/vaapi/gstvaapipostproc.c:
1882 postproc: Copy meta data from input to output
1883 This will ensure that meta data without memory tags will be copied. This
1884 was noticed when testing ROI.
1885 https://bugzilla.gnome.org/show_bug.cgi?id=768248
1887 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1889 * tests/elements/test-roi.c:
1890 tests: element: rewrite ROI test
1891 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
1892 than injecting GstEvents. These meta are added as a pad probe in
1895 * Use of navigation messages to control de test
1896 * Use signal watch for processing messages
1897 * Change to H265 rather than H264 since current intel-vaapi-driver
1898 only supports ROI on kabylake.
1899 TODO: add a parameter to change the encoder/decoder to test.
1900 https://bugzilla.gnome.org/show_bug.cgi?id=768248
1902 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1904 * gst-libs/gst/vaapi/gstvaapicontext.c:
1905 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1906 * gst-libs/gst/vaapi/gstvaapiencoder.h:
1907 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1908 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1909 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1910 libs: encoder: reimplement ROI using meta
1911 Check input buffers for ROI metas and pass them to VA. Also added a
1912 new "default-roi-delta-qp" property in order to tell the encoder what
1913 delta QP should be applied to ROI by default.
1914 Enabled it for H264 and H265 encoders.
1915 https://bugzilla.gnome.org/show_bug.cgi?id=768248
1917 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1919 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1920 * gst-libs/gst/vaapi/gstvaapiencoder.h:
1921 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1922 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
1923 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
1924 https://bugzilla.gnome.org/show_bug.cgi?id=768248
1926 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1928 * tests/simple-encoder.c:
1929 Revert "tests: simple-encoder: add an option to set ROI"
1930 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
1931 https://bugzilla.gnome.org/show_bug.cgi?id=768248
1933 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1935 * gst/vaapi/gstvaapiencode.c:
1936 * gst/vaapi/gstvaapiencode_h264.c:
1937 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
1938 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
1939 https://bugzilla.gnome.org/show_bug.cgi?id=768248
1941 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1943 * gst/vaapi/gstvaapipluginbase.c:
1944 plugins: copy input buffer metas
1945 When importing buffers to a VA-base buffer, it is required to copy
1946 the metas in the original buffer, otherwise information will be
1947 lost, such as GstVideoRegionOfInterestMeta.
1948 https://bugzilla.gnome.org/show_bug.cgi?id=768248
1950 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1952 * gst-libs/gst/vaapi/gstvaapisurface.c:
1953 libs: surface: cast to uintptr_t pointer
1954 According to Debian package auto-building, uintptr_t is not an
1955 unsigned long in i386 arch, raising an "incompatible pointer type"
1957 This patch adds a casting for compiler's satisfaction in i386.
1959 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
1961 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1962 libs: encoder: add zero as valid value for periodic keyframe.
1963 Enabled zero as valid value for keyframe-period property.
1964 https://bugzilla.gnome.org/show_bug.cgi?id=793829
1966 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1968 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1969 libs: encoder: code-style fix
1971 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1973 * gst/vaapi/gstvaapidecode.c:
1974 vaapidecode: generate system allocated buffers
1975 Generate system allocated output buffers when downstream doesn't
1976 support GstVideoMeta.
1977 The VA buffer content is copied to the new output buffer, and it
1978 replaces the VA buffer.
1979 https://bugzilla.gnome.org/show_bug.cgi?id=785054
1981 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1983 * gst/vaapi/gstvaapipostproc.c:
1984 vaapipostproc: handle system allocated buffers when required
1985 When downstream can't handle GstVideoMeta it is required to send
1986 system allocated buffers.
1987 The system allocated buffers are produced in prepare_output_buffer()
1988 vmethod if downstream can't handl GstVideoMeta.
1989 At transform() vmethod if the buffer is a system allocated buffer,
1990 a VA buffer is instanciated and replaces the out buffer. Later
1991 the VA buffer is copied to the system allocate buffer and it
1992 replaces the output buffer.
1993 https://bugzilla.gnome.org/show_bug.cgi?id=785054
1995 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1997 * gst/vaapi/gstvaapipluginbase.c:
1998 * gst/vaapi/gstvaapipluginbase.h:
1999 plugins: add gst_vaapi_copy_va_buffer()
2000 This helper function aims to copy buffers with VA memory to dumb
2001 buffers, when GstVideoMeta is not available dowstream.
2002 https://bugzilla.gnome.org/show_bug.cgi?id=785054
2004 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2006 * gst/vaapi/gstvaapipluginbase.c:
2007 * gst/vaapi/gstvaapipluginbase.h:
2008 plugins: add COPY_OUTPUT_FRAME flag
2009 This patch add the member copy_output_frame and set it TRUE when
2010 when downstream didn't request GstVideoMeta API, the caps are raw
2011 and the internal allocator is the VA-API one.
2012 https://bugzilla.gnome.org/show_bug.cgi?id=785054
2014 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2016 * gst/vaapi/gstvaapipluginbase.c:
2017 * gst/vaapi/gstvaapipluginbase.h:
2018 plugins: store the first downstream allocator if available
2019 The allocator will be required if we need to allocate a buffer
2020 to store the frame with the expected strides.
2021 https://bugzilla.gnome.org/show_bug.cgi?id=785054
2023 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2025 * gst/vaapi/gstvaapivideobufferpool.c:
2026 * gst/vaapi/gstvaapivideobufferpool.h:
2027 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
2028 This function will inform the element if it shall copy the generated
2029 buffer by the pool to a system allocated buffer before pushing it
2031 https://bugzilla.gnome.org/show_bug.cgi?id=785054
2033 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2035 * gst/vaapi/gstvaapivideobufferpool.c:
2036 vaapibufferpool: don't change config when forcing video meta
2037 VA-API based buffer might need a video meta because of different
2038 strides. But when donwstream doesn't support video meta we need to
2039 force the usage of video meta.
2040 Before we changed the buffer pool configuration, but actually this
2041 is a hack and we cannot rely on that for downstream.
2042 This patch add a check fo raw video caps and allocator is VA-API,
2043 then the option is enabled without changing the pool configuration.
2044 In this case the element is responsible to copy the frame to a
2045 simple buffer with the expected strides.
2046 https://bugzilla.gnome.org/show_bug.cgi?id=785054
2048 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2050 * gst/vaapi/gstvaapipostproc.c:
2051 vaapipostproc: set discont flag at vpp deinterlacing
2052 When deinterlacing with VPP the discont flag was not forwarded to
2053 the new created buffer. This patch sets the discont flag if input
2056 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2058 * gst/vaapi/gstvaapivideobufferpool.h:
2059 vaapibufferpool: remove wrong gcc annotation
2061 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
2063 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2064 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2065 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
2066 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2067 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
2068 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
2069 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
2070 libs: encoder: h264,h265: extend max periodic keyframe.
2071 Increased max values of periodic key frame for h26x codecs.
2072 This allow more fine tunning of encoder that in certian scenario
2073 want higher periodic key frame.
2074 For example: it doesn't want a key frame each 10 seconds but
2076 https://bugzilla.gnome.org/show_bug.cgi?id=786320
2078 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
2084 === release 1.13.1 ===
2086 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
2091 * gstreamer-vaapi.doap:
2095 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
2097 * gst/vaapi/Makefile.am:
2098 vaapi: dist new header
2100 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2102 * gst/vaapi/gstvaapi.c:
2103 vaapi: register vaapisink as marginal on wayland
2104 vaapsink, when used with the Intel VA-API driver, tries to display
2105 surfaces with format NV12, which are handled correctly by
2106 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
2107 pipelines on mutter.
2108 This shall be solved either by COGL or by making the driver to paint
2109 RGB surfaces. In the meanwhile, let's just demote vaapisink as
2110 marginal when the Wayland environment is detected, no matter if it is
2112 https://bugzilla.gnome.org/show_bug.cgi?id=775698
2114 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2116 * gst/vaapi/gstvaapipluginutil.c:
2117 plugins: update mesa's vendor string in whitelist
2118 Mesa has updated its VA-API Gallium driver vendor string:
2119 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
2120 This patch tries to cover both, the old and the new one.
2121 https://bugzilla.gnome.org/show_bug.cgi?id=793386
2123 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
2126 meson: make version numbers ints and fix int/string comparison
2127 WARNING: Trying to compare values of different types (str, int).
2128 The result of this is undefined and will become a hard error
2129 in a future Meson release.
2131 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2133 * gst/vaapi/gstvaapipluginbase.c:
2134 plugins: handle vaapi allocator in allocation query
2135 In propose_allocation() if the numer of allocation params is zero, the
2136 system's allocator is added first, and lastly the native VA-API
2138 In decide_allocation(), the allocations params in query are travered,
2139 looking for a native VA-API allocator. If it is found, it is reused as
2140 src pad allocator. Otherwise, a new allocator is instantiated and
2141 appended in the query.
2142 https://bugzilla.gnome.org/show_bug.cgi?id=789476
2144 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2146 * gst/vaapi/gstvaapivideomemory.h:
2147 vaapivideomemory: remove unused macro
2148 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
2149 was never used, since the native VA-API allocator name has been
2150 GST_VAAPI_VIDEO_MEMORY_NAME.
2151 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
2152 https://bugzilla.gnome.org/show_bug.cgi?id=789476
2154 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
2156 * gst/vaapi/gstvaapisink.c:
2157 vaapisink: don't mask button events for foreign windows
2158 Don't subscribe to button press events when using a foreing window,
2159 because the user created window would trap those events, preveting the
2161 https://bugzilla.gnome.org/show_bug.cgi?id=791615
2163 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
2166 autotools: use -fno-strict-aliasing where supported
2167 https://bugzilla.gnome.org/show_bug.cgi?id=769183
2169 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
2172 meson: use -fno-strict-aliasing where supported
2173 https://bugzilla.gnome.org/show_bug.cgi?id=769183
2175 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
2177 * gst/vaapi/gstvaapi.c:
2178 vaapi: add NULL-sentinel to kernel_names
2179 The array needs to be NULL-terminated according to the
2180 gst_plugin_add_dependency() documentation.
2182 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2184 * gst/vaapi/gstvaapipostprocutil.c:
2185 vaapipostproc: remove spurious code
2186 This assignation is dead code, since gst_video_info_from_caps() set
2188 https://bugzilla.gnome.org/show_bug.cgi?id=790149
2190 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2192 * gst/vaapi/gstvaapipostprocutil.c:
2193 vaapipostproc: if no p-a-r in out caps define a range
2194 Instead of copying the pixel-aspect-ratio from the sink caps, define
2195 an open range for the src caps pixel-aspect-ratio. Later it will be
2197 https://bugzilla.gnome.org/show_bug.cgi?id=790149
2199 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2201 * gst/vaapi/gstvaapisink.c:
2202 vaapisink: check for display's color-balance properties
2203 Check for display's color-balance properties, available by the VA-API
2204 driver, before setting them.
2205 Also logs an info message of those unavailable properties.
2206 https://bugzilla.gnome.org/show_bug.cgi?id=792638
2208 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2210 * gst/vaapi/gstvaapipluginbase.c:
2211 plugins: re-using buffer pool breaks renegotiation
2212 at propose_allocation() we should not reuse the proposed buffer,
2213 because it could break renegotiation.
2214 https://bugzilla.gnome.org/show_bug.cgi?id=792620
2216 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2218 * gst/vaapi/gstvaapipluginbase.c:
2219 plugins: use g_clear_object() to unref sinkpad_buffer_pool
2220 https://bugzilla.gnome.org/show_bug.cgi?id=792620
2222 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2224 * gst-libs/gst/vaapi/meson.build:
2225 build: meson: add missing GstGL dependency
2227 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2229 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
2230 libs: utils: egl: add missing guards for GstGL
2232 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2234 * gst/vaapi/gstvaapipluginbase.c:
2235 plugins: remove dmabuf-import hack
2236 Remove the hack to check if an upstream element has enabled the
2237 property io-mode enabled as dmabuf-import.
2238 https://bugzilla.gnome.org/show_bug.cgi?id=792034
2240 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2242 * gst-libs/gst/vaapi/Makefile.am:
2243 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
2244 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
2245 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
2246 libs: egl: utils: use eglGetPlatformDisplay()
2247 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
2248 eglGetDisplay() is rather fragile, and it is recommended to use
2249 eglGetPlatformDisplay() when possible.
2250 In order to do that, this patch uses the helper in GstGL. If
2251 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
2253 https://bugzilla.gnome.org/show_bug.cgi?id=790493
2255 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
2257 * gst/vaapi/gstvaapipostproc.c:
2258 vaapipostproc: lock ensure_filter with postproc_lock
2259 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
2260 and allowed_sinkpad_caps. This can race with copying these caps in
2261 gst_vaapipostproc_transform_caps and lead to segfaults.
2262 The gst_vaapipostproc_transform_caps function already locks
2263 postproc_lock before copying the caps. Make sure that calls to
2264 gst_vaapipostproc_ensure_filter also acquire this lock.
2265 https://bugzilla.gnome.org/show_bug.cgi?id=791404
2267 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2269 * tests/test-filter.c:
2270 tests: test-filter: fix dereference before null check
2271 Null-checking op_info suggests that it may be null, but it has already
2272 been dereferenced on all paths leading to the check.
2273 There may be a null pointer dereference, or else the comparison
2274 against null is unnecessary.
2276 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2278 * tests/y4mreader.c:
2279 tests: y4mreader: fix string state checkup
2280 str cannot be null in that moment, but it may be the end of string.
2282 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2284 * tests/y4mreader.c:
2285 tests: y4mreader: use int for fgetc
2286 Assigning the return value of fgetc to char truncates its value.
2287 It will not be possible to distinguish between EOF and a valid
2290 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2292 * tests/y4mreader.c:
2293 tests: y4mreader: fix incompatible cast
2294 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
2295 they are dereferenced as a wider long (64 bits, signed). This may lead
2296 to memory corruption.
2298 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
2301 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
2303 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
2306 Automatic update of common submodule
2307 From e8c7a71 to 3fa2c9e
2309 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
2311 * gst/vaapi/gstvaapivideocontext.c:
2312 videoconvert: gst_element_post_message() is transfer full on msg
2313 For this reson we need not to unref the message, even if it failed.
2315 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
2317 * gst/vaapi/gstvaapivideocontext.c:
2318 Revert "vaapivideocontext: possible memleak when no bus attached"
2319 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
2321 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2323 * tests/elements/test-vaapicontext.c:
2324 test: vaapicontext: process have-context bus message
2326 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2328 * tests/elements/test-vaapicontext.c:
2329 test: vaapicontext: app context is not persistent
2331 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2333 * gst/vaapi/gstvaapipluginbase.c:
2334 * gst/vaapi/gstvaapivideocontext.c:
2335 * gst/vaapi/gstvaapivideocontext.h:
2336 vaapivideocontext: only vaapisink process app context
2337 gst.vaapi.app.Display context is made for applications that will
2338 provide the VA display and the native display to used by the
2339 pipeline, when are using vaapisink as overlay. There are no use
2340 case for encoders, decoders, neither for the postprocessor.
2341 In the case of the vaapisink, it shall query for gst.vaapi.Display
2342 upstream first, and then, if there is no reply,
2343 gst.vaapi.app.Display context will be posted in the bus for the
2344 application. If the application replies, a GstVaapiDisplay object
2345 is instantiated given the context info, otherwise a
2346 GstVaapiDisplay is created with the normal algorithm to guess the
2347 graphics platform. Either way, the instantiated GstVaapiDisplay
2348 is propagated among the pipeline and the have-message bus message.
2349 Also only vaapisink will process the gst.vaapi.app.Display, if
2350 and only if, it doesn't have a display already set. This is
2351 caused because if vaapisink is in a bin (playsink, for example)
2352 the need-context is posted twice, leading to an error state.
2353 https://bugzilla.gnome.org/show_bug.cgi?id=790999
2355 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2357 * gst/vaapi/gstvaapivideocontext.c:
2358 vaapivideocontext: log the name of GstVaapiDisplay
2359 https://bugzilla.gnome.org/show_bug.cgi?id=790999
2361 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2363 * gst/vaapi/gstvaapivideocontext.c:
2364 vaapivideocontext: possible memleak when no bus attached
2365 https://bugzilla.gnome.org/show_bug.cgi?id=790999
2367 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2369 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2370 libs: window: wayland: remove unused header include
2371 Remove wayland-client.h include since there is no exposed symbols from
2374 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2376 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2377 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2378 libs: encoder: h264,h265: guard rate control's macroblock
2379 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
2381 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
2384 Automatic update of common submodule
2385 From 3f4aa96 to e8c7a71
2387 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2389 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2390 libs: encoder: h264: Add Hierarchical-B encode
2391 Frames are encoded as different layers. Frame in a particular
2392 layer will use pictures in lower or same layer as references.
2393 Which means decoder can drop the frames in upper layer but still
2394 decode lower layer frames.
2395 B-frames, except the one in top most layer, are reference frames.
2396 All the base layer frames are I or P.
2397 eg: with 3 temporal layers
2401 T1, T2, T3: Temporal Layers
2404 T1: I0->P4 , P4->P8 etc..
2406 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
2407 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2408 https://bugzilla.gnome.org/show_bug.cgi?id=788918
2410 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2412 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2413 libs: encoder: h264: Add Hierarchical-P encode
2414 Frames are encoded as different layers. A frame in a particular
2415 layer will use pictures in lower or same layer as references.
2416 Which means decoder can drop the frames in upper layer but still
2417 decode lower layer frames.
2418 eg: with 3 temporal layers
2422 T1, T2, T3: Temporal Layers
2424 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
2425 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2426 https://bugzilla.gnome.org/show_bug.cgi?id=788918
2428 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2430 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2431 libs: encoder: h264: Fix frame_num generation
2432 The frame_num generation was not correctly implemented.
2433 According to h264 spec, frame_num should get incremented
2434 for each frame if previous frame is a referece frame.
2435 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
2436 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2437 https://bugzilla.gnome.org/show_bug.cgi?id=788918
2439 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2441 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2442 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2443 libs: encoder: h264: Add new property "prediction-type"
2444 Adds new property "prediction-type" to select different reference
2445 picture selection modes like hierarchical-p, hierarchical-b etc.
2446 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2447 https://bugzilla.gnome.org/show_bug.cgi?id=788918
2449 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
2451 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2452 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
2453 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
2454 Adds some basic building blocks to ease the implementation
2455 of hierarchical prediction modes.
2456 -- add an utility method to find temporal level of each frame
2457 -- define max_ref_frame count based on temporal level count
2458 -- add temporal_level_div[] for finding temporal level each frame
2460 -- find ip_period based on temporal level count
2461 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2462 https://bugzilla.gnome.org/show_bug.cgi?id=788918
2464 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
2466 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2467 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2468 libs: encoder: h264: Add property "temporal-levels"
2469 Adds new property "temporal-levels" to select the number of
2470 temporal levels to be included in the encoded stream.
2471 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2472 https://bugzilla.gnome.org/show_bug.cgi?id=788918
2474 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
2476 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
2477 libs: encoder: objects: Add a reference flag
2478 We can have p-frame as non-ref and also b-frame as ref
2479 which are not supported yet. Reference flag
2480 is the first machinery needed for more advanced
2481 reference picture selection modes.
2482 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
2483 https://bugzilla.gnome.org/show_bug.cgi?id=788918
2485 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
2487 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2488 libs: surface: egl: add comment
2489 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
2490 where the creation of surfaces from GEM fd may fail.
2491 https://bugzilla.gnome.org/show_bug.cgi?id=773453
2493 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2495 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
2496 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2497 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2498 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
2499 Adds a new function that changes the internal EGL display to the
2500 current one (eglGetCurrentDisplay()) and sets the current context
2501 too (eglGetCurrentContext()).
2502 This new function is called by gst_vaapi_texture_egl_create() updating
2503 the GstVaapiDisplayEGL with the current EGL display.
2504 https://bugzilla.gnome.org/show_bug.cgi?id=773453
2506 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2508 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2509 libs: texture: egl: update EGL display and context
2510 It is required to use the context of the calling thread when wrapping
2511 a foreign texture. According the documentation of
2512 GstVideoGLTextureUploadMeta:
2513 "The caller of gst_video_gl_texture_upload_meta_upload() must
2514 have OpenGL set up and call this from a thread where it is valid
2515 to upload something to an OpenGL texture."
2516 This patch updates the EGL display and context in GstVaapiDisplay
2517 instance to the one used by te renderer that uploads the texture.
2518 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
2519 https://bugzilla.gnome.org/show_bug.cgi?id=773453
2521 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2523 * gst/vaapi/gstvaapipluginbase.c:
2524 plugins: centralize assignation of GL objects
2525 Add plugin_set_gst_gl() where the GstGL objects are assigned.
2526 https://bugzilla.gnome.org/show_bug.cgi?id=773453
2528 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2530 * gst/vaapi/gstvaapipluginbase.c:
2531 plugins: set GL objects if ensured
2532 Only set the GL display and GL other context if they are ensured.
2533 https://bugzilla.gnome.org/show_bug.cgi?id=773453
2535 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2537 * gst/vaapi/gstvaapipluginbase.c:
2538 plugins: set GL objects if context is handled
2539 Only set the GL display and GL other context if they are extracted
2540 correctly from the gstreamer's context.
2541 https://bugzilla.gnome.org/show_bug.cgi?id=773453
2543 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2545 * gst/vaapi/gstvaapipluginbase.c:
2546 plugins: fix memory leak when GL context is created
2547 When the GL display and context are created inside an VAAPI element
2548 the created GL context is leaked.
2549 https://bugzilla.gnome.org/show_bug.cgi?id=773453
2551 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2553 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
2554 libs: display: egl: free leaked memory
2555 The EGL VAAPI display forgot to release the egl display, context and
2556 proxied VAAPI display.
2557 https://bugzilla.gnome.org/show_bug.cgi?id=773453
2559 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2561 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2562 libs: texture: egl: code style
2563 https://bugzilla.gnome.org/show_bug.cgi?id=773453
2565 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2567 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2568 libs: surface: egl: error message if no extension
2569 Instead of silently fail to export the image if there is not available
2570 the EGL_MESA_drm_image, log an error message. Also a code refactoring
2572 https://bugzilla.gnome.org/show_bug.cgi?id=773453
2574 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2576 * gst/vaapi/gstvaapipluginbase.c:
2577 plugins: direct rendering on memory:VASurface
2578 As buffers negotiated with memory:VASurface caps feature can also be
2579 mapped, they can also be configured to use VA derived images, in other
2580 words "direct rendering".
2581 Also, because of the changes in dmabuf allocator as default allocator,
2582 the code for configuring the direct rendering was not clear.
2583 This patch cleans up the code and enables direct rendering when the
2584 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
2585 even then the memory:VASurface cap feature is negotiated.
2586 https://bugzilla.gnome.org/show_bug.cgi?id=786054
2588 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2590 * gst/vaapi/gstvaapipluginbase.c:
2591 * gst/vaapi/gstvaapipluginutil.c:
2592 plugins: only dmabuf on srcpad if downstream
2593 Set if source pad can handle dmabuf only if the GstGL context comes
2595 It is possible to know that at two moments:
2596 1\ In the case of GstGLTextureUpload caps feature is negotiated and
2597 downstream pool reports back gst.gl.GstGLContext.
2598 2\ When GstGLContext is found as GstContext from dowstream.
2599 https://bugzilla.gnome.org/show_bug.cgi?id=788503
2601 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2603 * gst/vaapi/gstvaapivideocontext.c:
2604 vaapivideocontext: add inline documentation
2605 Document function gst_vaapi_find_gl_local_context().
2606 https://bugzilla.gnome.org/show_bug.cgi?id=788503
2608 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2610 * gst/vaapi/gstvaapipluginutil.c:
2611 * gst/vaapi/gstvaapivideocontext.c:
2612 * gst/vaapi/gstvaapivideocontext.h:
2613 vaapivideocontext: return the direction of gl context
2614 In function gst_vaapi_find_gl_context() add a direction parameter to
2615 return back the direction where the GstGL context was found.
2616 This is going to be useful when checking if downstream can import
2617 dmabuf-based buffers.
2618 https://bugzilla.gnome.org/show_bug.cgi?id=788503
2620 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2622 * gst/vaapi/gstvaapipluginbase.c:
2623 * gst/vaapi/gstvaapipluginbase.h:
2624 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
2625 This patch refactors the code by adding the function
2626 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
2627 GstGLContext can handle dmabuf-based buffers.
2628 The function is exposed publicly since it is intended to be used later
2629 at GstVaapiDisplay instantiation.
2630 https://bugzilla.gnome.org/show_bug.cgi?id=788503
2632 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
2634 * gst/vaapi/gstvaapiencode.c:
2635 vaapiencode: allow to set property on runtime
2636 Tis patch, allows some properties that we want to be set on
2637 runtime. (eg. bitrate)
2638 Note that all properties are under control by num_codedbuf_queued.
2639 https://bugzilla.gnome.org/show_bug.cgi?id=786321
2641 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
2643 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2644 libs: encoder: allow to set bitrate on runtime
2645 In case of streaming, controlling bitrate dynamically for encoder might be
2646 important to manage quality of the streaming.
2647 This patch is to support such a scenario.
2648 https://bugzilla.gnome.org/show_bug.cgi?id=786321
2650 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
2652 * gst/vaapi/gstvaapi.c:
2653 * gst/vaapi/gstvaapi.h:
2654 * gst/vaapi/gstvaapidecodebin.c:
2655 vaapidecodebin: Register element if no VPP support is available too
2656 VPP support is only needed for advanced deinterlacing, which is not
2657 enabled by default either. Error out if it is selected but VPP is not
2658 supported, and otherwise just work without VPP support.
2659 https://bugzilla.gnome.org/show_bug.cgi?id=788758
2661 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
2663 * gst/vaapi/gstvaapipluginutil.c:
2664 Avoid infinite loop when vaapi_create_display fails
2665 Which might be the case when using, for example, xvfb.
2667 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2669 * gst-libs/gst/vaapi/gstvaapiutils.c:
2670 libs: utils: log warn if display fail
2671 gstreamer-vaapi initializes the display by trial-and-error, thus
2672 logging an error message if the display initialisation fails the user
2673 may be weary of the error message in the screen, if using VA-API 1.0
2674 This commit set the VA error log handler to GStreamer warning level
2675 while calling vaInitialize() and set it to error after that.
2676 https://bugzilla.gnome.org/show_bug.cgi?id=783169
2678 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2680 * gst/vaapi/gstvaapipluginutil.c:
2681 plugins: try to create test display in order
2682 When creating the test display for querying capabilites, it try in
2683 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
2684 since they are either composited with X11 or Wayland.
2685 The reason for this is to reduce the posibility of failure that could
2686 blacklist the plugin.
2687 https://bugzilla.gnome.org/show_bug.cgi?id=782212
2689 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2691 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2692 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
2693 libs: display: delay getting screen resolution
2694 Instead of extracting the screen resolution at GstVaapiDisplay
2695 creation, this patch delay it until the screen size is requested for
2697 https://bugzilla.gnome.org/show_bug.cgi?id=782212
2699 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2701 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
2702 libs: display: egl: avoid two vaDisplay instantiates
2703 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
2704 or Wayland. Nonetheless it created another vaDisplay for it, instead
2705 of using the wrapped one.
2706 This patch enables the reuse of the wrapped vaDisplay avoiding
2708 https://bugzilla.gnome.org/show_bug.cgi?id=782212
2710 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2712 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2713 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2714 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2715 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
2716 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2717 libs: display: remove display_type from display info
2718 Since it's no required to pass the display type in the display info,
2719 the structure member is removed.
2720 https://bugzilla.gnome.org/show_bug.cgi?id=782212
2722 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2724 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2725 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
2726 libs: display: remove display_type member
2727 It is not used any more since GstVaapiDisplay was ported as a
2728 GstObject-based. This information is part of the class information.
2729 https://bugzilla.gnome.org/show_bug.cgi?id=782212
2731 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2733 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2734 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
2735 libs: display: remove parent member
2736 Parent was a crumb left from display cache.
2737 https://bugzilla.gnome.org/show_bug.cgi?id=782212
2739 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
2741 * gst/vaapi/gstvaapi.c:
2742 vaapi: Also register vaapipostproc without VPP support
2743 It can still do simple deinterlacing then.
2745 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
2747 * gst/vaapi/gstvaapipostproc.c:
2748 vaapipostproc: Allow running without VPP support
2749 We returned FALSE from ::start() if VPP support is not available, but it
2750 is only really needed for complex filters and during transform we check
2751 for that. For simple deinterlacing it is not needed.
2753 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2755 * gst/vaapi/gstvaapipostproc.c:
2756 vaapipostproc: use scoped variable for return value
2757 Instead of reusing a parameter variable for the return value of
2758 gst_vaapipostproc_transform_caps(), this patch uses the function
2759 scoped pointer. Thus, the code is cleaner.
2760 https://bugzilla.gnome.org/show_bug.cgi?id=785706
2762 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2764 * gst/vaapi/gstvaapipostproc.c:
2765 vaapipostproc: removed unused parameter
2766 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
2767 helper function since the it is not used.
2768 https://bugzilla.gnome.org/show_bug.cgi?id=785706
2770 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2772 * gst/vaapi/gstvaapipostproc.c:
2773 vaapipostproc: use scoped variable for return value
2774 Instead of reusing a parameter variable for the return value of
2775 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
2776 pointer. Thus, the code is cleaner.
2777 https://bugzilla.gnome.org/show_bug.cgi?id=785706
2779 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2781 * gst/vaapi/gstvaapipluginutil.h:
2782 plugins: memory:DMABuf only handles planar formats
2783 When glimagesink negotiates the caps feature memory:DMABuf the
2784 exported dmabufs buffers with NV12 format are not well rendered, thus
2785 setting only planar.
2786 https://bugzilla.gnome.org/show_bug.cgi?id=788229
2788 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2790 * gst/vaapi/gstvaapiencode.c:
2791 vaapiencode: flush pending frames before set format
2792 Flush pending frames, if any, in the internal encorder, before setting
2793 the new negotiated format.
2794 https://bugzilla.gnome.org/show_bug.cgi?id=786173
2796 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2798 * gst/vaapi/gstvaapidecode.c:
2799 vaapidecode: drain pending frames before set format
2800 Drain pending frames, if any, in the internal decoder before setting
2801 the new negotiated format.
2802 https://bugzilla.gnome.org/show_bug.cgi?id=786173
2804 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2806 * tests/test-display.c:
2807 tests: display: use GObject getter
2808 Instead of using the gst_vaapi_display_get_property(), this patch
2809 replaces it with g_object_get_property() to dump the available VA
2811 https://bugzilla.gnome.org/show_bug.cgi?id=788058
2813 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2815 * gst/vaapi/gstvaapisink.c:
2816 vaapisink: use GObject setter and getter
2817 Instead of using gst_vaapi_display_set_property() or
2818 gst_vaapi_display_get_property(), this patch set replace it usage
2819 with g_object_set() or g_object_get().
2820 Also the internal helper cb_set_value() is removed since it is not
2822 https://bugzilla.gnome.org/show_bug.cgi?id=788058
2824 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2826 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2827 libs: display: initialize value if they are not yet
2828 This is a difference between the GObject API and the GstVaapi one: the
2829 GValue passed to get a property value, in GObject has to be
2830 initialized with g_value_init(), but in GstVaapi is has not.
2831 In order to overcome this mismatch, this patch call g_value_init()
2832 internally only in the passed one is not already initialized.
2833 https://bugzilla.gnome.org/show_bug.cgi?id=788058
2835 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2837 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2838 libs: display: optimize properties setters and getters
2839 Shuffled some code to avoid to find the properties descriptor in the
2840 array twice, adding the internal functions _set_property() and
2842 https://bugzilla.gnome.org/show_bug.cgi?id=788058
2844 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2846 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2847 libs: display: install properties in class
2848 Install the properties in the class as a normal GObject. Implement
2849 set_property() and get_property() vmethods.
2850 https://bugzilla.gnome.org/show_bug.cgi?id=788058
2852 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2854 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2855 libs: display: remove gst_vaapi_display_properties_init()
2856 Remove gst_vaapi_display_properties_init() since it can be unrolled in
2857 gst_vaapi_display_class_init()
2858 https://bugzilla.gnome.org/show_bug.cgi?id=788058
2860 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2862 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2863 libs: display: remove libgstvaapi_init_once()
2864 It is not required since it can be unrolled in
2865 gst_vaapi_display_class_init()
2866 https://bugzilla.gnome.org/show_bug.cgi?id=788058
2868 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2870 * tests/test-display.c:
2871 tests: test-display: remove display cache tests
2872 Since commit ec3e10f6, display cache was removed. This patch removes
2873 this leftovers in the display test.
2875 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
2877 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2878 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2879 libs: decoder: h264/h265: decode codec data only if opened
2880 Fixes regression introduced by commit 2eb2b26a.
2881 There is a use case when the decoder set the src caps and immediatly
2882 tries to process the media codec_data, this happens before decoder is
2883 even opened, thus priv->parser is not instantiated yet.
2884 https://bugzilla.gnome.org/show_bug.cgi?id=787818
2886 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2888 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2889 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2890 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2891 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2892 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2893 libs: encoder: change mbbrc from uint to enum
2894 Instead of handling the macroblock bitrate control as a integer, this
2895 patch changes it as a enum, which is more self documented in the
2897 https://bugzilla.gnome.org/show_bug.cgi?id=787855
2899 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
2901 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2902 Fix a typo in the prop string for compliance-mode
2904 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2906 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2907 libs: encoder: don't unref properties
2908 This patch fixes a regression introduced in commit 148f867c, since the
2909 props variable is set to object's member variable
2910 encoder->properties. And it is set in the instance initialization,
2911 thus it will not be leaked.
2912 https://bugzilla.gnome.org/show_bug.cgi?id=787733
2914 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
2916 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2917 * gst/vaapi/gstvaapiencode.c:
2918 vaapiencode/libs: encoder: fix leaks of properties
2919 https://bugzilla.gnome.org/show_bug.cgi?id=786321
2921 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2923 * gst-libs/gst/vaapi/gstvaapidecoder.c:
2924 libs: decoder: at update_caps() decode codec_data
2925 When updating the caps in decoder, if the caps has codec_data (avC
2926 format), it has to be parsed to update the state of the decoder.
2927 https://bugzilla.gnome.org/show_bug.cgi?id=786173
2929 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
2931 * gst-libs/gst/vaapi/gstvaapicontext.c:
2932 libs: context: fix wrong counter of the array of attributes
2933 The counter value passed to vaCreateConfig is always +1.
2934 This is a regression caused by commit e42ec3ad.
2935 The present patch fixes wrong counting of the array of attributes.
2936 https://bugzilla.gnome.org/show_bug.cgi?id=787613
2938 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
2940 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2941 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2942 libs: encoder: h265: support I/P/B QP setting seperatedly
2943 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
2945 and set slice_qp_delta for each frame according to the value provided.
2946 https://bugzilla.gnome.org/show_bug.cgi?id=785923
2948 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
2950 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2951 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2952 libs: encoder: h264: support I/P/B QP setting seperatedly
2953 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
2955 and set slice_qp_delta for each frame according to the value provided.
2956 In addition, remove the limitation of (<= 4) when setting
2958 https://bugzilla.gnome.org/show_bug.cgi?id=785923
2960 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
2962 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2963 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2964 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
2965 Creates new variable for QP for I frame and keep it at configuration and
2966 use this for pic_init_qp and slice_qp_delta setting.
2967 Since changing min qp doesn't make sense, keep min qp as is.
2968 https://bugzilla.gnome.org/show_bug.cgi?id=785923
2970 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
2972 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2973 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2974 libs: encoder: h265: Add mbbrc property
2975 This property supports Macroblock level Bitrate Control as the
2976 following (same as h264 encoder):
2980 https://bugzilla.gnome.org/show_bug.cgi?id=785917
2982 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
2984 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2985 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2986 libs: encoder: h264: Add mbbrc property
2987 This property supports Macroblock level Bitrate Control as the
2992 https://bugzilla.gnome.org/show_bug.cgi?id=785917
2994 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
2996 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2997 libs: encoder: h265: add multi reference support
2998 This is doing the same as h264 encoder as the following:
2999 Using num_ref_frames provided and the result of the Query
3000 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
3001 and perform encoding with multi reference frames as the following:
3002 1\ The num_ref_frames is being considered as the number of
3003 reference picture list0
3004 2\ Encoder adds 1 reference frame more to the reference picture list1
3005 internally if b-frame encoding.
3006 3\ If num_ref_frames is bigger than the number of refrence frames
3007 supported in the driver, it will be lowered.
3008 Also this patch includes:
3009 - Set num_negative_pics and num_positive_pics according to the number of
3011 - Set delta_poc according to the number of refs.
3012 - Increase max_dec_pic_buffering according to the number of refs
3013 - Change max_num_reorder_pics according to num of bframes
3014 https://bugzilla.gnome.org/show_bug.cgi?id=783804
3016 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
3018 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3019 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
3020 libs: encoder: h265: add refs property
3021 Users can provide the number of reference frame by this property,
3022 which is exaclty same as h264.
3023 The value of the property will be considered as the number of
3024 reference picture list0 and will add 1 reference frame more to the
3025 reference picture list1 internally if b-frame encoding.
3026 If the value provided is bigger than the number of refrence frames
3027 supported in the driver, it will be lowered.
3028 The maximum value is aligned to the value of the driver supported now.
3029 https://bugzilla.gnome.org/show_bug.cgi?id=783804
3031 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
3033 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3034 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3035 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
3036 Follows the specification as below:
3037 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
3038 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
3039 element num_ref_idx_l0_active_minus1 is present for P and B slices and
3040 that the syntax element num_ref_idx_l1_active_minus1 is present for B
3042 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
3043 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
3045 https://bugzilla.gnome.org/show_bug.cgi?id=783804
3047 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
3049 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3050 libs: encoder: h265: keep idr_period equal to keyframe period
3051 Remove FIXME code, which makes previous assignation spurious.
3052 This also means to make idr_period equal to keyframe period,
3053 which is same as h264 encoder.
3054 https://bugzilla.gnome.org/show_bug.cgi?id=783804
3056 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
3058 * gst/vaapi/gstvaapipluginbase.c:
3059 Request minimum buffer even if need_pool is FALSE
3060 When tee is used, it will not request a pool, but still it wants to
3061 know how many buffers are required.
3062 https://bugzilla.gnome.org/show_bug.cgi?id=730758
3064 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3066 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3067 libs: encoder: h264_fei: VA-API 1.0 compat
3068 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
3070 https://bugzilla.gnome.org/show_bug.cgi?id=787322
3071 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
3073 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3075 * gst/vaapi/gstvaapisink.c:
3076 vaapisink: Fix rendering in drm display
3077 Make sure vaapisink create a va surface backed buffer pool and all
3078 required attributes get assigned correctly for drm display type.
3079 This is needed to make the below pipeline working:
3080 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
3081 width=320 height=240 framerate=30/1 ! vaapisink display=drm
3082 https://bugzilla.gnome.org/show_bug.cgi?id=786954
3084 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3086 * tests/Makefile.am:
3087 * tests/test-fei-enc-in.c:
3088 * tests/test-fei-enc-out.c:
3089 FEI: Add test applications to showcase fei use case
3090 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
3092 ./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
3093 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
3095 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
3096 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
3097 from saved files is still not working
3099 Wang, Yi <yi.a.wang@intel.com>
3100 Leilei <leilei.shang@intel.com>
3101 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
3102 xiaominc <xiaomin.chen@intel.com>
3103 Li, Jing B <jing.b.li@intel.com>
3104 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3105 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3107 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3109 * gst/vaapi/Makefile.am:
3110 * gst/vaapi/gstvaapi.c:
3111 * gst/vaapi/gstvaapiencode_h264_fei.c:
3112 * gst/vaapi/gstvaapiencode_h264_fei.h:
3113 FEI: plugin: Add vaapih264feienc element
3114 A new FEI based encoder element for h264 is added: vaapih264feienc
3115 FEI is a an extension to VA-API which is providing low level
3116 advanced control over different stages of encoding.
3117 Extending vaapih264enc with fei support is possible, but it will
3118 make the code too much complicated and will be difficult
3119 to debug. So adding the new encoder element, but keeping
3120 the rank as 0 , vaapih264enc will stay as the primary
3121 encoder for normal use cases.
3122 The vaaih264feienc is mainly useful for customers who want to play
3123 with MotionVectors and Macroblock Predictions. Also user can
3124 do one stage of encoding(eg: only the Motion Vector Calculation)
3125 in software and offload trasformation/entroy-coding etc to
3126 Hardware (which is what PAK module is doing) using FEI element.
3127 vaapih264feienc can work in different modes using fei-mode properoty
3128 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
3129 Important Note: ENC only mode won't produce any encoded data which is expected.
3130 But ENC alwys requires the output of PAK in order to do the inter-prediction
3131 over reconstructed frames.
3132 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
3133 upstream element providing those buffers, PAK only won't work as expected.
3134 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
3135 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
3136 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
3137 separately in vaapih264feienc.
3139 Wang, Yi <yi.a.wang@intel.com>
3140 Leilei <leilei.shang@intel.com>
3141 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
3142 xiaominc <xiaomin.chen@intel.com>
3143 Li, Jing B <jing.b.li@intel.com>
3144 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3145 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3146 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3148 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
3150 * gst/vaapi/gstvaapiencode.c:
3151 * gst/vaapi/gstvaapiencode.h:
3152 FEI: plugin: Add virtual methods to base encode
3153 Two new virtual methods are added to gstvaapiencode.
3154 load_control_data(): load the FEI input buffers set by the upstream elements
3155 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
3156 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3157 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3158 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3160 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
3162 * gst/vaapi/Makefile.am:
3163 * gst/vaapi/gstvaapifeivideometa.c:
3164 * gst/vaapi/gstvaapifeivideometa.h:
3165 FEI: plugin: Add fei specific video meta
3166 GstVaapiFeiVideoMeta holds the below fei codec objects:
3167 GstVaapiEncFeiMbCode
3169 GstVaapiEncFeiMvPredictor
3170 GstVaapiEncFeiMbControl
3172 GstVaapiEncFeiDistortion
3173 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3174 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3175 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3177 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3179 * gst-libs/gst/vaapi/Makefile.am:
3180 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3181 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3182 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3183 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3184 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3185 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3186 FEI: libs: Add FEI encoder
3187 Adding FEI encoder to core lib.
3188 The code is splitted into three session:
3189 1: gstvaapiencoder_h264_fei.{h,c}
3190 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
3191 All the modes ENC, PAK and ENC_PAK are running based
3192 the code in these files.
3193 2: gstvaapifeienc_h264.{h,c}
3194 Abstract implementation intended for ENC (only VME) operation.
3195 3: gstvaapifeipak_h264.{h,c}
3196 Abstrct implementation intended for PAK (only the PAK module)
3197 Right now ENC_PAK, ENC and PAK are running based on code
3198 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
3199 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
3200 needed if user request for ENC+PAK mode operation.
3201 ENC+PAK: Here we need to invoke two sequence of
3202 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
3203 first for the ENC only and the second for PAK only.
3204 Each mode associated with separate context ,but same pool of surfaces are
3205 shared between the modes.
3206 This is more useful once we have custom BRC algorithms.
3208 Wang, Yi <yi.a.wang@intel.com>
3209 Leilei <leilei.shang@intel.com>
3210 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
3211 xiaominc <xiaomin.chen@intel.com>
3212 Li, Jing B <jing.b.li@intel.com>
3213 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3214 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3216 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3218 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3219 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3220 FEI: libs: Add fei codec objects to GstVaapiEncPicture
3221 All the codec objects(vaapi buffers) supposed to be
3222 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
3223 for each frame, follow the same design for FEI too.
3224 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3225 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3227 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3229 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3230 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3231 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3232 FEI: libs: Add fei codec objects in codedbufferproxy
3233 MbCode, MV and Distortion buffers (fei codec objects)
3234 can be treated as output of different fei modes based user request.
3235 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
3236 can be dumped as output in ENC_PAK mode for analysis purpose.
3237 So treating them as a part of CodedBufferProxy too.
3238 Here we avoided Qp, MbControl and MvPredictor codec objects since
3239 there is no practical use case of treating them as "output buffers".
3241 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
3242 xiaominc <xiaomin.chen@intel.com>
3243 Leilei <leilei.shang@intel.com>
3244 Li, Jing B <jing.b.li@intel.com>
3245 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3246 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3248 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3250 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3251 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3252 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3253 FEI: libs: Add fei codec objects to surface proxy
3254 Add fei codec objects to surface proxy since handling the
3255 fei buffers(codec objects here) external to gstvaapisurfaceproxy
3256 will make the code complicated. Especially considering the behavior
3257 of encoder where the input frame order from upstream and output
3258 frame order to the downstream are not sequential.
3260 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
3261 xiaominc <xiaomin.chen@intel.com>
3262 Leilei <leilei.shang@intel.com>
3263 Li, Jing B <jing.b.li@intel.com>
3264 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3265 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3267 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3269 * gst-libs/gst/vaapi/Makefile.am:
3270 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3271 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3272 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3273 FEI: Add codec objects for fei usecase
3274 There are 6 new va buffer types, each defined as a specific codec object.
3275 Borrowed the code from gstvaapicodecobject , but made a clear separation
3276 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
3277 feicodecobjects can be shared between elements and also can be accessed
3278 from different thread.
3279 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
3280 object is not shared between elements.So we utilize the already
3281 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
3282 in gstvaapfei_objects_priv.h in order to have a better
3285 -- Probably we need _locked_map() and _unlocked_map()
3286 -- Context can be associated with PreEnc(not just Enoder)
3287 once we have the proper support inplace, but for now we don't have
3288 PreEnc support, so should be safe enough to use GstVaapiEncoder.
3289 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3290 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3292 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3294 * gst-libs/gst/vaapi/Makefile.am:
3295 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3296 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3297 FEI: libs: add H264 fei specific utility functions
3298 Added enum/flag type definitions for a number of FEI
3299 input and output parameters.
3300 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
3301 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3302 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3303 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
3304 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3306 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3308 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3309 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3310 FEI: libs: Add virtual method for secondary context creation.
3311 Add a new vitrual method ensure_secondary_context to the
3312 base encoder which is only required for the FEI entrypoint, that too
3313 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
3314 supported directly by libva or driver, but this can be enabled
3315 from the middleware.
3316 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
3317 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
3318 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
3319 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3320 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3321 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3323 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3325 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3326 FEI: libs: make sure the default context creation works as expected.
3327 Current code always guess the entrypoint during init phase in case
3328 if there is no entrypoint already configured in GstVaapiContextInfo.
3329 Make sure FEI Entrypoint is not messing up with this logic.
3330 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3331 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3333 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3335 * gst-libs/gst/vaapi/gstvaapicontext.c:
3336 * gst-libs/gst/vaapi/gstvaapicontext.h:
3337 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3338 FEI: libs: Add FEI functional mode configuration
3339 FEI Entrypoint can work in either one of the 3 different modes:
3340 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
3341 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
3342 functioal mode configuration.
3343 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3344 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3346 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3348 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3349 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3350 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3351 FEI: libs: Add FEI Entrypoint mapping
3352 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
3353 for VAEntrypointFEI.
3354 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3355 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3357 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3360 FEI: Add support for FEI conditional build
3361 FEI(Flexible Encoding Infrastructure) is an extension
3362 to VA API. Define USE_H264_FEI_ENCODER based on
3363 fei header file and required structures availability.
3364 https://bugzilla.gnome.org/show_bug.cgi?id=785712
3365 https://bugzilla.gnome.org/show_bug.cgi?id=784667
3367 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
3369 * gst/vaapi/gstvaapidecode.c:
3370 vaapidecode: force add h264 SVC profiles in caps
3371 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
3373 https://bugzilla.gnome.org/show_bug.cgi?id=732266
3374 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3376 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
3378 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3379 libs: decoder: h264: decode SVC base layer only
3380 Drops non-base NALs when the base-only property is set to TRUE.
3381 This modifies the behavior for MVC streams with base-only too: All the
3382 non-base units are dropped before they are decoded instead of dropping
3383 the non-base frames.
3384 The relevant part from the H264 spec is:
3385 > Decoders that conform to one or more of the profiles specified in
3386 Annex A rather than the profiles specified in Annexes G or H shall
3387 ignore (remove from the bitstream and discard) the contents of all NAL
3388 units with nal_unit_type equal to 14, 15, or 20.
3389 To eliminate side effects from the offending units:
3390 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
3392 - The NAL parsing is skipped and their flags are set to
3393 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
3394 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
3395 use them even if they are flagged to be skipped. Subset SPS's and slice
3396 extension units are not stored there either.
3397 https://bugzilla.gnome.org/show_bug.cgi?id=732266
3398 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3400 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
3402 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3403 libs: decoder: h264: check nalu validity in parser info finalize
3404 https://bugzilla.gnome.org/show_bug.cgi?id=732266
3405 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3407 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3409 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3410 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3411 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3412 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3413 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3414 libs: encoder: remove unused cast macro
3415 Remove internal macro to cast structure that are already declared
3418 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3420 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3421 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
3422 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
3423 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
3424 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
3425 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
3426 Revert "libs: encoders: remove unused cast macros"
3427 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
3429 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3431 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3432 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
3433 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
3434 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
3435 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
3436 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
3437 libs: encoders: remove unused cast macros
3438 They are only used inside the code, where another macro is defined.
3439 Thus these exported macros have no use.
3441 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3443 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3444 libs: decoder: h264: improve code-style
3445 https://bugzilla.gnome.org/show_bug.cgi?id=786173
3447 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3449 * gst-libs/gst/vaapi/gstvaapicompat.h:
3450 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3451 libs: encoder: h264: handle deprecated enum
3452 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
3453 instead VAEncPackedHeaderRawData should be used.
3454 This patch creates a compatibility symbol,
3455 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
3457 https://bugzilla.gnome.org/show_bug.cgi?id=784398
3459 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3461 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3462 * gst-libs/gst/vaapi/gstvaapiutils.c:
3463 libs: guard deprecated symbols
3464 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
3465 guards the H.264 baseline usage. Consider this commit as a
3466 continuation of commit e0e0a474
3467 https://bugzilla.gnome.org/show_bug.cgi?id=784398
3469 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3473 * meson_options.txt:
3474 Revert "build: check for libva-2.0"
3475 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
3476 https://bugzilla.gnome.org/show_bug.cgi?id=784398
3478 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3480 * gst-libs/gst/vaapi/gstvaapicompat.h:
3481 * gst-libs/gst/vaapi/gstvaapicontext.c:
3482 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3483 libs: macro to get a renamed value in VA-API 1.0
3484 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
3485 renamed one member from roi_value_is_qp_delat to
3486 roi_value_is_qp_delta, which is the correct name.
3487 In order to keep back compatibility a macro has added to access this
3489 https://bugzilla.gnome.org/show_bug.cgi?id=784398
3491 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3493 * gst/vaapi/gstvaapipluginbase.h:
3494 * gst/vaapi/gstvaapipluginutil.c:
3495 plugins: include main gstgl header
3496 Instead including particular gstgl header files in a header file
3497 that doesn't export a gstgl symbol, the main gstgl header file is
3498 included in gstvaapipluginutil.c where the symbols are used.
3499 https://bugzilla.gnome.org/show_bug.cgi?id=786597
3501 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3503 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3504 libs: encoder: h264: fix enum namespace
3506 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
3509 Automatic update of common submodule
3510 From 48a5d85 to 3f4aa96
3512 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3514 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3515 libs: encoder: h264: remove spurious assignation
3517 An assigned value that is never used may represent unnecessary
3518 computation, an incorrect algorithm, or possibly the need for cleanup
3520 ip_period is assigned first to be rewritter inmediatly after. The
3521 first assignation is spurious.
3523 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
3525 * gst/vaapi/gstvaapidecode.c:
3526 vaapidecode: fix mismatch of the return type
3527 https://bugzilla.gnome.org/show_bug.cgi?id=786307
3529 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3531 * gst-libs/gst/vaapi/Makefile.am:
3532 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
3533 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
3534 * gst-libs/gst/vaapi/gstvaapiutils.h:
3535 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
3536 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
3537 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
3538 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
3539 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
3540 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
3541 * gst-libs/gst/vaapi/meson.build:
3542 libs: remove unused header
3543 Since libgstvaapi is not distributed, there is no need to check for
3544 private header inclusion. Thus removing it.
3545 https://bugzilla.gnome.org/show_bug.cgi?id=786119
3547 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3549 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
3550 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
3551 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
3552 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
3553 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
3554 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
3555 libs: utils: move gstvaapisurface.h to private headers
3556 Since the utils don't expose API defined in gstvaapisource.h, it is
3557 moved to their private headers where they are used.
3558 https://bugzilla.gnome.org/show_bug.cgi?id=786119
3560 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3562 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
3563 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
3564 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3565 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
3566 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
3567 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
3568 libs: utils: remove va.h include in header
3569 And include gstvaapicompat.h in the C files, since the VA-API is not
3570 exposed in the headers.
3571 https://bugzilla.gnome.org/show_bug.cgi?id=786119
3573 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3575 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3576 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3577 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3578 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3579 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3580 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3581 libs: encoder: remove va.h include
3582 Since it is already managed by gstvaapicompat.h
3583 https://bugzilla.gnome.org/show_bug.cgi?id=786119
3585 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3587 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
3588 * gst-libs/gst/vaapi/gstvaapicompat.h:
3589 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
3590 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
3591 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
3592 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3593 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3594 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3595 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3596 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3597 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3598 * gst-libs/gst/vaapi/gstvaapifilter.c:
3599 * gst-libs/gst/vaapi/gstvaapiutils.c:
3601 build: consolidate the VA sub API includes
3602 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
3603 since they are all already included in va.h after VA-API 0.38.
3604 https://bugzilla.gnome.org/show_bug.cgi?id=786119
3606 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3610 build: check for va_vpp.h
3611 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
3612 allow us to handle the inclusion of the header better.
3613 https://bugzilla.gnome.org/show_bug.cgi?id=786119
3615 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
3618 meson: don't export symbols by default
3619 Only plugin entry points should be exported.
3621 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3623 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3624 libs: decoder: h265: remove spurious code
3626 Logically dead code: The indicated dead code may have performed some
3627 action; that action will never occur.
3628 By using pointer arithmetic is impossible to get NULL.
3630 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3632 * gst-libs/gst/vaapi/gstvaapicontext.c:
3633 libs: context: use attribs index instead pointers
3635 Out-of-bounds write. This could cause an immediate crash or incorrect
3637 Coverity basically found that it is possible to assign more than 4
3638 attribs in the array.
3639 In my opinion this was produced because code pattern used pointer
3640 arithmetic, which is not readable nor maintainable.
3641 This patch refactors config_create() to use an array index rather than
3642 pointer arithmetic. Also a run-time check for index size was added.
3644 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3646 * gst/vaapi/gstvaapiencode_h264.c:
3647 vaapiencode: h264: remove spurious code
3649 An unsigned value can never be negative, so this test will always
3650 evaluate the same way.
3651 As len is guint32, there is no need to check it if it is equal or
3654 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3656 * gst/vaapi/gstvaapidecode.c:
3657 vaapidecode: initialize variable
3659 The variable will contain an arbitrary value left from earlier
3661 Variable base_only is fetched from base-only property, and it may be
3662 not assigned. It needs to be initialized.
3664 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3666 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3667 libs: windows: wayland: fail if cannot remove last frame
3669 If the function returns an error value, the error value may be
3670 mistaken for a normal value.
3671 If g_atomic_pointer_compare_and_exchange() fails because the frame is
3672 not the last one, the function fails. Thus, logging an info message.
3674 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3676 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
3677 libs: utils: glx: check return value
3679 If the function returns an error value, the error value may be
3680 mistaken for a normal value.
3681 Function sscanf returns the number of assignations done. Validate this
3682 return value with the number of expected variables to match.
3684 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3686 * gst-libs/gst/vaapi/gstvaapiobject.c:
3687 libs: vaapi: object: remove unrequired NULL check
3689 Dereference after null check: Either the check against null is
3690 unnecessary, or there may be a null pointer dereference.
3691 Variable klass has been validated as non-NULL several time before in
3692 gst_vaapi_object_new() function, so there is no need to check it
3695 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3697 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3698 libs: encoder: h265: remove spurious assignation
3700 An assigned value that is never used may represent unnecessary
3701 computation, an incorrect algorithm, or possibly the need for cleanup
3703 ip_period is assigned first to be rewritter inmediatly after. The
3704 first assignation is spurious.
3706 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3708 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3709 libs: encoder: h264: fix copy & paste error
3711 The copied code will not have its intended effect.
3712 This is a bug from commit cdaf15b2, where the intention is to
3713 initialize RefPicList1 while setting RefPicList0.
3715 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3717 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3718 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3719 libs: encoder: h265: fix possible integer overflow
3721 Unintentional integer overflow. The expression's value may not be what
3722 the programmer intended, because the expression is evaluated using a
3723 narrow (i.e. few bits) integer type.
3724 Cast operator to guint64 before computation to avoid narrowing.
3727 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3729 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
3730 libs: decoder: mpeg4: fail if return value is not OK
3732 An assigned value that is never used may represent unnecessary
3733 computation, an incorrect algorithm, or possibly the need for cleanup
3735 In the return value of decode_slice() or
3736 gst_mpeg4_parse_video_packet_header() are not success, thus fail
3737 decode_packet() function.
3739 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3741 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3742 libs: decoder: h265: check for null
3744 Dereference after null check: Either the check against null is
3745 unnecessary, or there may be a null pointer dereference.
3746 While looking for hte lowest poc, according to rest of the code, the
3747 picture in the dbp (decoded picture buffer) might be NULL, thus we
3748 could check for a NULL picture before assigned as found.
3749 Also, split a comma operator because it is considered as a bad
3750 practice because it possible side effects.
3752 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3754 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3755 libs: decoder: h265: untaint loop control variable
3757 Scalars (for example, integers) are not properly
3758 bounds-checked (sanitized) before being used as array or pointer
3759 indexes, loop boundaries, or function arguments are considered as
3761 In this case, num_nals were not checked before used as loop control.
3763 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3765 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3766 libs: decoder: h264: remove unrequired NULL check
3768 Dereference after null check: Either the check against null is
3769 unnecessary, or there may be a null pointer dereference.
3770 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
3771 prev_picture could be NULL, that's why the code did a null check. But,
3772 since commit 52adebe7, the previous reference frames are tracked, thus
3773 there is no need to check null anymore.
3775 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
3777 * gst/vaapi/gstvaapidecode.c:
3778 vaapidecode: fix gst_caps_new_simple call
3779 https://bugzilla.gnome.org/show_bug.cgi?id=732265
3781 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
3783 * gst/vaapi/gstvaapidecode.c:
3784 vaapidecode: force add h264 MVC profiles in caps
3785 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
3787 https://bugzilla.gnome.org/show_bug.cgi?id=732265
3789 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
3791 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3792 libs: decoder: h264: decode MVC base view only
3793 If processed SPS has mvc profile and the configuration is set to
3794 base-only, the frame is drop.
3795 https://bugzilla.gnome.org/show_bug.cgi?id=732265
3797 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
3799 * gst/vaapi/gstvaapidecode.c:
3800 * gst/vaapi/gstvaapidecode_props.c:
3801 vaapidecode: set h264 base-only to decoder
3802 Set the base-only value when property is set and the internal
3803 decoder is already instantiated or when the internal decoder
3805 https://bugzilla.gnome.org/show_bug.cgi?id=732265
3807 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
3809 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3810 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
3811 libs: decoder: h264: add setter for base-only mode
3812 https://bugzilla.gnome.org/show_bug.cgi?id=732265
3814 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
3816 * gst/vaapi/gstvaapidecode_props.c:
3817 * gst/vaapi/gstvaapidecode_props.h:
3818 vaapidecode_props: h264: add base-only property
3819 https://bugzilla.gnome.org/show_bug.cgi?id=732265
3821 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3823 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3824 libs: encoder: h264: missing property enum documentation
3826 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
3828 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3829 libs: encoder: h264: add multi reference support
3830 Using num_ref_frames provided and the result of the Query
3831 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
3832 and perform encoding with multi reference frames as the following:
3833 1\ The num_ref_frames is being considered as the number of
3834 reference picture list0
3835 2\ Encoder adds 1 reference frame more to the reference picture list1
3836 internally if b-frame encoding.
3837 3\ If num_ref_frames is bigger than the number of refrence frames
3838 supported in the driver, it will be lowered.
3839 https://bugzilla.gnome.org/show_bug.cgi?id=783803
3841 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
3843 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3844 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3845 libs: encoder: h264: add refs property
3846 Users can provide the number of reference frame by this property.
3847 The value of the property will be considered as the number of
3848 reference picture list0 and will add 1 reference frame more to the
3849 reference picture list1 internally if b-frame encoding.
3850 If the value provided is bigger than the number of refrence frames
3851 supported in the driver, it will be lowered.
3852 https://bugzilla.gnome.org/show_bug.cgi?id=783803
3854 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
3856 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3857 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3858 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
3859 This function will query VAConfigAttribEncMaxRefFrames to get the
3860 maximum number of reference frames supported in the driver.
3861 This will be used for h264/h265 encoding.
3862 https://bugzilla.gnome.org/show_bug.cgi?id=783803
3864 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3866 * gst/vaapi/gstvaapiencode_h265.c:
3867 vaapiencode: h265: compare an unsigned int if not zero
3868 An unsigned value can never be negative, so this test (greater than
3869 zero) will always evaluate the same way. Thus change it to just if
3872 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3874 * gst/vaapi/gstvaapipluginbase.c:
3875 plugins: check gst_gl_ensure_element_data() return value
3876 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
3877 the return value of gst_gl_ensure_element_data(). The result is a code
3880 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3882 * gst/vaapi/gstvaapipluginutil.c:
3883 plugins: avoid dead code detection
3884 By using #elif macro, the static code analysis would stop to detect
3885 these lines as dead code. Also it is inforced the mutually exclusive
3888 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3890 * gst/vaapi/gstvaapivideobufferpool.c:
3891 vaapivideobufferpool: don't shift by negative since it's undefined
3892 The function g_bit_nth_lsf() may return -1 if the request bit position
3893 is not avaible. Thus, this patch check if the return value is not -1
3894 in order to continue.
3896 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3898 * gst/vaapi/gstvaapisink.c:
3899 vaapisink: fix memory leak
3901 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3903 * gst/vaapi/gstvaapipostprocutil.c:
3904 vaapipostproc: fix memory leaks
3906 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
3908 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3909 libs: display: when appending formats change pointers to indexes
3910 Thus, it fixes an invalid read when YV12 or I420 are not supported by
3912 https://bugzilla.gnome.org/show_bug.cgi?id=785085
3914 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3916 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3917 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3918 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
3919 Added a new property "compliance-mode", which default is the normal
3920 strict compliant mode.
3921 The second mode, "restrict-buf-alloc", is to limit the coded buffer
3922 allocation size to improve performance in some specific Intel
3923 platforms (there is asignificant performance improvement in parallel
3924 encodings). Under this new mode, we use the MinCR field in A.3.1 for
3925 pre-calculating the coded-buffer size.
3926 https://bugzilla.gnome.org/show_bug.cgi?id=784590
3928 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
3930 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
3931 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
3932 libs: utils_h264: Extend LevelLimit table with MinCR field
3933 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
3935 https://bugzilla.gnome.org/show_bug.cgi?id=784590
3937 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3939 * gst-libs/gst/vaapi/gstvaapiutils.c:
3940 libs: utils: libva 1.0 changed the logging
3941 The logging mechanism in libva has changed it's functions
3942 signatures. This patch updates that for libva versions >= 1.0
3943 https://bugzilla.gnome.org/show_bug.cgi?id=784398
3945 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3947 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3948 libs: decoder: h264: libva 1.0 deprecated baseline
3949 libva 1.0 deprecated H.264 baseline profile and FMO support
3951 https://bugzilla.gnome.org/show_bug.cgi?id=784398
3953 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3957 * meson_options.txt:
3958 build: check for libva-2.0
3959 Check for libva-2.0 since libva's developers decided to increase the
3960 library's version number.
3961 https://bugzilla.gnome.org/show_bug.cgi?id=784398
3963 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3967 build: blacklist only libva 0.99.0
3968 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
3969 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
3971 https://bugzilla.gnome.org/show_bug.cgi?id=784398
3973 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3975 * gst-libs/gst/vaapi/meson.build:
3976 build: meson: remove gstvaapidisplaycache.c
3977 This is a missing bit of commit ec3e10f6
3979 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3982 configure: do not break configure if gtk+-3.0 devel missing
3983 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
3984 set USE_GTK=0 if gtk+-3.0 is not available.
3985 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
3986 Author: Hyunjun Ko <zzoon@igalia.com>
3987 Date: Wed Jul 5 15:59:43 2017 +0900
3988 tests: elements: add testsuite of vaapi context
3989 ...configure fails if gtk+-3.0 development files are missing.
3990 The "with_gtk" option defaults to "check" in configure.ac
3991 which implies that if it is not explicitly requested then
3992 configure will only enable it if it's available on the system.
3993 However, the PKG_CHECK_MODULES rule that get's activated on
3994 "check" condition did not provide default when gtk+-3.0 devel
3995 packages are not found on the system. Thus, it resulted in
3997 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
3998 https://bugzilla.gnome.org/show_bug.cgi?id=785452
4000 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
4003 * tests/elements/Makefile.am:
4004 * tests/elements/test-vaapicontext.c:
4005 tests: elements: add testsuite of vaapi context
4006 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4007 https://bugzilla.gnome.org/show_bug.cgi?id=766704
4009 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
4011 * gst/vaapi/gstvaapisink.c:
4012 vaapisink: fail if surface display is different
4013 Replacing GstVaapiDisplay during rendering might be hiding problems
4014 at some cases, even though it's safe currently since we use cache
4016 Play safe by failing if this happens.
4017 https://bugzilla.gnome.org/show_bug.cgi?id=766704
4019 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
4021 * gst/vaapi/gstvaapivideocontext.c:
4022 * gst/vaapi/gstvaapivideocontext.h:
4023 videocontext: support "gst.vaapi.app.Display" context
4024 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
4025 and native display of their backend.
4027 - display : pointer of VADisplay
4028 - x11-display : pointer of X11 display (Display *), if they're using.
4029 This patch creates GstVaapidisplayX11 if information provided through
4030 "gst.vaapi.app.Display"
4031 https://bugzilla.gnome.org/show_bug.cgi?id=766704
4033 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
4035 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
4036 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
4037 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
4038 Implements new API function so that users could create GstVaapiDisplay
4039 with their own VADisplay within a native display as backend.
4040 https://bugzilla.gnome.org/show_bug.cgi?id=766704
4042 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
4044 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4045 libs: display: pass display info when foreign display
4046 When creating a GstVaapiDisplay using a foreign VADisplay, and render
4047 with that display, it also requires native display of the backend.
4048 https://bugzilla.gnome.org/show_bug.cgi?id=766704
4050 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4052 * gst-libs/gst/vaapi/Makefile.am:
4053 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4054 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
4055 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
4056 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
4057 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
4058 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
4059 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
4060 libs: display: remove cache
4061 Remove a bunch of code that handles the VADisplay cache, since the
4062 context sharing should be doing this correctly.
4063 https://bugzilla.gnome.org/show_bug.cgi?id=747946
4065 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
4067 * tests/elements/Makefile.am:
4068 * tests/elements/test-vaapipostproc.c:
4069 tests: elements: add test for vaapipostproc
4070 https://bugzilla.gnome.org/show_bug.cgi?id=754885
4072 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
4074 * gst/vaapi/gstvaapipostproc.c:
4075 postproc: reconfigure when width or height changes
4076 https://bugzilla.gnome.org/show_bug.cgi?id=754885
4078 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4080 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4081 libs: encoder: vp9: array terminated in zeros
4082 There is a crash when setting ref-pic-mode since the #GEnumValue
4083 array is not terminated with a structured with all memvers being
4085 https://bugzilla.gnome.org/show_bug.cgi?id=785032
4087 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4089 * gst/vaapi/gstvaapiencode_h264.c:
4090 vaapiencode: h264: add plugin documentation
4091 Comment how the profile is set and other parameters.
4093 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
4095 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4096 libs: decoder: h264: push frames as soon as possible
4097 Push frames downstream as soon as possible instead of waiting until
4098 they are ejected from the DPB.
4099 This patch makes the decoder not comply with the H.264 specification,
4100 but it is required for some video cameras.
4101 https://bugzilla.gnome.org/show_bug.cgi?id=762509
4102 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4104 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4106 * gst/vaapi/gstvaapidecode_props.c:
4107 vaapidecode_props: h264: set low-latency in decoder
4108 Set the low-latency property if the H264 decoder is already
4109 instantiated, thus you could change the behavior in run-time.
4110 https://bugzilla.gnome.org/show_bug.cgi?id=783588
4112 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4114 * gst/vaapi/gstvaapidecode.c:
4115 vaapidecode: set h264 low latency to decoder
4116 https://bugzilla.gnome.org/show_bug.cgi?id=783588
4118 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4120 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4121 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
4122 libs: decoder: h264: add getter/setter for low latency mode
4123 https://bugzilla.gnome.org/show_bug.cgi?id=783588
4125 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4127 * gst/vaapi/gstvaapidecode_props.c:
4128 * gst/vaapi/gstvaapidecode_props.h:
4129 vaapidecode_props: h264: add low latency property
4130 Adding support for private data.
4131 https://bugzilla.gnome.org/show_bug.cgi?id=783588
4133 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4135 * gst/vaapi/Makefile.am:
4136 * gst/vaapi/gstvaapidecode.c:
4137 * gst/vaapi/gstvaapidecode_props.c:
4138 * gst/vaapi/gstvaapidecode_props.h:
4139 * gst/vaapi/meson.build:
4140 vaapidecode_props: add skeleton for h264 decoder properties
4141 https://bugzilla.gnome.org/show_bug.cgi?id=783588
4143 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4145 * gst/vaapi/gstvaapidecode.c:
4146 vaapidecode: properties callback in decoders map
4147 https://bugzilla.gnome.org/show_bug.cgi?id=783588
4149 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
4152 meson: find python3 via python3 module
4153 https://bugzilla.gnome.org/show_bug.cgi?id=783198
4155 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
4157 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4158 libs: encoder: h264: submit sps in case of IDR picture
4159 If the picture is IDR, also submit a SPS header.
4160 This means when frame number reaches to keyframe-period or an force
4161 key unit event arrives, we insert SPS/PPS again.
4162 https://bugzilla.gnome.org/show_bug.cgi?id=776712
4164 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
4166 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4167 libs: encoder: h264: set the frame as IDR if forced key unit
4168 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
4169 the `frame-lost` event in the case of streaming, such as RTP.
4170 In case of this event, it is needed to start new GOP rather than just
4172 https://bugzilla.gnome.org/show_bug.cgi?id=776712
4174 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
4176 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4177 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4178 libs: encoder: h264: insert AU delimiter
4179 Insert an AUD as the first NAL of each encoded frame.
4180 Some applications require Access Unit Delimiter for decoding the
4182 The AU delimeter insertion is done only when the aud parameter is
4183 TRUE (by default is disabled). The reason of this it is because this
4184 header is only available from Intel Gen9 and the VA intel driver
4185 should be 1.8 or superior. Otherwise, the output will be corrupted.
4186 https://bugzilla.gnome.org/show_bug.cgi?id=776712
4187 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
4189 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
4191 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4192 libs: encoder: h264: initialize all elements of view_ids
4193 Currently when num_views is changed by multiview-mode on sink caps, it produces
4194 wrong MVC encoded stream since the array view_ids is not set properly according
4195 to changed num_views.
4196 So this patch initializes all of the array sequentially to handle this case.
4197 Side effect is not going to happen by this patch since this array is being
4198 handled by num_views.
4199 https://bugzilla.gnome.org/show_bug.cgi?id=784321
4201 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
4203 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4204 Revert "encoder: h264: Use high profile by default"
4205 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
4206 https://bugzilla.gnome.org/show_bug.cgi?id=757941
4208 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
4210 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4211 libs: encoder: h264: set profile via capsfilter
4212 Until now, the encoder ignored the profile in src caps and chose one
4213 according with the given parameters. But the encoder must honor the
4214 profile specifed in src caps.
4215 This patch do that, and if the encoder needs to choose the profile,
4216 it will do it by following these rules:
4217 1\ If given parameters are not compatible with given profile, the
4218 encoder will bail out with an error.
4219 2\ The encoder will choose the higher profile indicated in the
4221 https://bugzilla.gnome.org/show_bug.cgi?id=757941
4223 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
4225 * gst/vaapi/gstvaapiencode_h264.c:
4226 vaapiencode: h264: set profile to src caps
4227 So far vaapi encoder does not set profile to src caps. This patch makes it
4228 setting profile to src caps, which is determined by itself.
4229 In addition, if encoder chose different profile, which is not negotiated with
4230 downstream, we should set compatible profile to make negotiation working.
4231 https://bugzilla.gnome.org/show_bug.cgi?id=757941
4233 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4235 * gst/vaapi/gstvaapiencode_h264.c:
4236 * gst/vaapi/gstvaapiencode_h264.h:
4237 vaapiencode: h264: verify if requested profile is supported
4238 Check if the requested profile in source caps, is supported by the
4239 VA driver. If it is not, an info log message is send saying that
4240 another (compatible?) profile will be used.
4241 https://bugzilla.gnome.org/show_bug.cgi?id=757941
4243 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4245 * gst/vaapi/gstvaapiencode_h264.c:
4246 vaapiencode: h264: improve set_config() vmethod
4247 First check if downstream requests ANY caps. If so, byte-stream is
4248 used and the profile will be choose by the encoder. If dowstream
4249 requests EMPTY caps, the negotiation will fail.
4250 Lately, byte-stream and profile are looked in the allowed caps.
4251 https://bugzilla.gnome.org/show_bug.cgi?id=757941
4253 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4255 * gst/vaapi/gstvaapiencode_h264.c:
4256 vaapiencode: h264: check for avc in set_config()
4257 The check for avc stream format was done in the vaapi encoder's
4258 vmethod get_caps(), but that is wrong since it has to be check
4259 when encoder set_format().
4260 https://bugzilla.gnome.org/show_bug.cgi?id=757941
4262 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
4264 * gst/vaapi/gstvaapipostprocutil.c:
4265 vaapipostproc: set multivew-mode flags to src caps
4266 vaapipostproc didn't negotiate the proper multiview caps losing
4267 downstream information.
4268 This patch enables the playing of MVC encoded stream by setting
4269 the proper multiview mode/flags and views to src caps, according
4271 https://bugzilla.gnome.org/show_bug.cgi?id=784320
4273 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
4275 * gst/vaapi/gstvaapipostproc.c:
4276 vaapipostproc: add support for DMABuf caps feature
4277 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4278 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
4280 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4282 * gst/vaapi/gstvaapidecode.c:
4283 vaapidecode: add support for DMABuf caps feature
4284 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4285 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
4287 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4289 * gst/vaapi/gstvaapipluginbase.c:
4290 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
4291 Instantiate all dmabuf allocator for src pad buffer pool if the
4292 src caps ask for memory:DMABuf feature.
4293 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4295 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
4297 * gst/vaapi/gstvaapipluginutil.c:
4298 * gst/vaapi/gstvaapipluginutil.h:
4299 vaapipluginutil: add support for DMABuf caps feature
4300 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4301 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
4302 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
4303 vaapipluginutil: add support for DMABuf caps feature
4305 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4307 * gst/vaapi/gstvaapipluginbase.c:
4308 vaapipluginbase: dmabuf memory map trial for raw caps
4309 Only push dmabuf-based buffers with raw caps if gst_memory_map()
4310 succeeds. Otherwise, use the the vaapi surfaces allocator.
4311 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4312 https://bugzilla.gnome.org/show_bug.cgi?id=774649
4313 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
4315 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4317 * gst/vaapi/gstvaapivideomemory.c:
4318 * gst/vaapi/gstvaapivideomemory.h:
4319 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
4320 This new method checks the specified allocator can create GstMemory that can
4322 https://bugzilla.gnome.org/show_bug.cgi?id=755072
4324 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4326 * gst/vaapi/gstvaapivideobufferpool.c:
4327 vaapivideobufferpool: fix regression with video metas
4328 There is another regression with 7a206923 when setting the video
4329 info for the video meta, it should be the one from the image's
4330 allocator rather from the allocation caps.
4332 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
4333 ! tee ! videoconvert ! videoscale \
4334 ! video/x-raw, width=1920, height=1080 ! xvimagesink
4336 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4338 * gst/vaapi/gstvaapipluginbase.c:
4339 * gst/vaapi/gstvaapivideobufferpool.c:
4340 plugins: update buffer size with the one reported by allocator
4341 There is a regression in 7a206923, since the buffer pool ditches all
4342 the buffers generated by them because the pool config size is
4343 different of the buffer's size.
4345 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
4346 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
4347 --gst-debug=GST_PERFORMANCE:5
4348 The allocator may update the buffer size according to the VA surface
4349 properties. In order to do this, the video info is modified when the
4350 allocator is created, which reports through the allocation info the
4351 updated size, and set it to the pool config.
4353 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
4355 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4356 libs: decoder: h264: initialize active_sps/pps in reset
4357 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
4358 they introduced regression in seek.
4359 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
4360 But since the commits landed, it doesn't drop P-frame and does try to
4361 decode it continuously because active_sps is still alive. See ensure_sps function.
4362 But there are prev_frames and prev_ref_frames reset already, then it
4364 So it's necessary to reset active_sps/pps also in reset method.
4365 https://bugzilla.gnome.org/show_bug.cgi?id=783726
4367 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4369 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4370 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4371 libs: encoder: fix compilation with old versions of libva
4372 There are some symbols that are not used when compiling with old
4373 version of libva and those generates a compilation error.
4374 Original-patch-by: Matt Staples <staples255@gmail.com>
4376 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
4378 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4379 libs: encoder: Fix the quality level clamping
4380 Change the hard-coded range of quality-level from {1-8} to {1-7},
4381 since it is the range Intel Open source driver supports.
4382 Also perform the range clamping only if the user provided
4383 quality-level is greater than the max-range suppored by the driver,
4384 because there could be non-intel drivers giving lower value than
4385 the hard-coded max value 7.
4386 https://bugzilla.gnome.org/show_bug.cgi?id=783567
4388 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
4390 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4391 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4392 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4393 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4394 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4395 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4396 libs: encoder: log out the name of the profile
4397 Instead of printing a number, it is more readable to log out, in
4398 case of error, the name of the failing profile.
4400 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
4402 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4403 libs: encoder: h264: changes raw number of profile to macro name of its
4404 Changes raw number of profile to macro name of its to improve readability.
4405 https://bugzilla.gnome.org/show_bug.cgi?id=757941
4407 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4409 * gst/vaapi/gstvaapivideobufferpool.c:
4410 vaapivideobufferpool: remove allocation_vinfo private attribute
4411 There is no need to keep this attribute internally since it is
4412 already managed by the allocator.
4413 https://bugzilla.gnome.org/show_bug.cgi?id=783599
4415 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4417 * gst/vaapi/gstvaapivideobufferpool.c:
4418 vaapivideobufferpool: refactor set_config()
4419 Refactor the set_config() virtual method considering a cleaner
4420 approach to allocator instanciation, if it it not set or if it is
4421 not valid for the pool.
4422 https://bugzilla.gnome.org/show_bug.cgi?id=783599
4424 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4426 * gst/vaapi/gstvaapipluginbase.c:
4427 * gst/vaapi/gstvaapivideobufferpool.c:
4428 * gst/vaapi/gstvaapivideomemory.c:
4429 * gst/vaapi/gstvaapivideomemory.h:
4430 plugins: distinguish allocation and negotiation caps
4431 The vaapi video decoders might have different allocation caps from
4432 the negotiation caps, thus the GstVideoMeta shall use the negotiation
4433 caps, not the allocation caps.
4434 This was done before reusing gst_allocator_get_vaapi_video_info(),
4435 storing there the negotiation caps if they differ from the allocation
4436 ones, but this strategy felt short when the allocator had to be reset
4437 in the vaapi buffer pool, since we need both.
4438 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
4439 gst_allocator_get_vaapi_negotiated_video_info() to store the
4440 negotiated video info in the allocator, and distinguish it from
4441 the allocation video info.
4442 https://bugzilla.gnome.org/show_bug.cgi?id=783599
4444 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4446 * gst/vaapi/gstvaapivideomemory.c:
4447 * gst/vaapi/gstvaapivideomemory.h:
4448 vaapivideomemory: rename qdata quarks and ids
4449 Also the parameter names were renamed to reflect their origin
4451 https://bugzilla.gnome.org/show_bug.cgi?id=783599
4453 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4455 * gst/vaapi/gstvaapivideobufferpool.c:
4456 vaapivideobufferpool: rename local variables
4457 Renamed local video info structure names in set_config() vitual
4458 method. The purpose of their renaming is to clarify the origin
4459 of those structures, whether come from passed caps parameter
4460 (new_allocation_vinfo) or from the configured allocator
4462 https://bugzilla.gnome.org/show_bug.cgi?id=783599
4464 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4466 * gst/vaapi/gstvaapivideobufferpool.c:
4467 vaapivideobufferpool: rename video info structures
4468 Renamed private GstVideoInfo structure video_info to allocation_vinfo
4469 and alloc_info to negotiated_vinfo.
4470 The purpose of these renaming is to clarify the origin and purpose of
4471 these private variables:
4472 video_info (now allocation_vinfo) comes from the bufferpool
4473 configuration. It describes the physical video resolution to be
4474 allocated by the allocator, which may be different from the
4476 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
4477 the pipeline. It represents how the frame is going to be mapped
4478 using the video meta.
4479 In Intel's VA-API backend, the allocation_vinfo resolution is
4480 bigger than the negotiated_info.
4481 https://bugzilla.gnome.org/show_bug.cgi?id=783599
4483 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4485 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4486 libs: encoder: set framerate if bigger than 0/1
4487 Just set the framerate parameter if the framerate numerator and
4488 denominator are bigger than zero.
4489 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
4491 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
4492 https://bugzilla.gnome.org/show_bug.cgi?id=783532
4494 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4496 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4497 libs: encoder: bitrate target percentage calculation
4498 If the rate control is set to Constant Bit Rate (CBR) the target
4499 percentage is 100%, otherwise is 70%
4501 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4503 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4504 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4505 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4506 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4507 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4508 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4509 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
4510 Centralize the common configuration for the Rate Control parameter,
4511 thus can be overloaded per each specific encoder.
4513 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4515 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4516 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4517 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4518 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4519 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4520 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4521 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
4522 Since the framerate VA parameter is calculated equally among all the
4523 encoders, it is better to handle it in the base encoder class.
4525 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
4527 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4528 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4529 libs: encoder: vp9: Adds CBR and VBR Encoding support
4530 https://bugzilla.gnome.org/show_bug.cgi?id=766832
4531 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
4532 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4534 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
4536 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4537 libs: encoder: vp8: Adds VBR Encoding support
4538 https://bugzilla.gnome.org/show_bug.cgi?id=778732
4540 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
4542 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4543 libs: encoder: h265: Adds VBR Encoding support
4544 Enables Variable BitRate mode, which does set FrameRate and RateControl
4546 https://bugzilla.gnome.org/show_bug.cgi?id=778732
4548 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
4550 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4551 libs: encoder: Describes more detail about the bitrate property
4552 https://bugzilla.gnome.org/show_bug.cgi?id=778732
4554 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4556 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4557 libs: encoder: h265: add rate control parameter
4558 https://bugzilla.gnome.org/show_bug.cgi?id=783449
4560 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4562 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4563 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4564 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4565 libs: encoder: h264,h265,mpeg2: add framerate parameter
4566 https://bugzilla.gnome.org/show_bug.cgi?id=783449
4568 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4570 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4571 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4572 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4573 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4574 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
4575 Instead of recalculating the miscellaneous buffer parameters for
4576 every buffer, it is only done once, when the encoder is configured.
4577 And for every buffer, the same structures are just copied.
4578 https://bugzilla.gnome.org/show_bug.cgi?id=783449
4580 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4582 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4583 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4584 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4585 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4586 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4587 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4588 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
4589 This is patch pretends to decouple the assignation of the values
4590 in the parameter structures and the VA buffer's parameters setting.
4591 It may lead to some issues since HRD, framerate or controlrate may
4592 not be handled by the specific encoder, but they are set in
4593 the VA buffer's parameters.
4594 I leave as it because this patch is just a transitional patch.
4595 https://bugzilla.gnome.org/show_bug.cgi?id=783449
4597 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4599 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4600 libs: encoder: vp8: fix frame rate calculation
4601 According to the VA documentation:
4602 The framerate is specified as a number of frames per second,
4603 as a fraction. The denominator of the fraction is given in
4604 the top half (the high two bytes) of the framerate field, and
4605 the numerator is given in the bottom half (the low two bytes).
4606 For example, if framerate is set to (100 << 16 | 750), this is
4607 750 / 100, hence 7.5fps.
4608 If the denominator is zero (the high two bytes are both zero)
4609 then it takes the value one instead, so the framerate is just
4610 the integer in the low 2 bytes.
4611 This patch fixes the the framerate calculation in vp8 encoder
4613 https://bugzilla.gnome.org/show_bug.cgi?id=783449
4615 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4617 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4618 libs: encoder: vp8: refactor FrameRate parameter
4619 Move frame-rate parameter from ensure_misc_params() to
4620 ensure_contro_rate_param() since it only has meaning when the
4621 control rate is either VBR or CBR.
4622 https://bugzilla.gnome.org/show_bug.cgi?id=783449
4624 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4626 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4627 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4628 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4629 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4630 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
4631 Move the Hypothetical Reference Decoder (HRD) parameter, from
4632 ensure_misc_params() to ensure_control_rate_params(), since it
4633 only shall be defined when the control rate is either VBR or CBR.
4634 https://bugzilla.gnome.org/show_bug.cgi?id=783449
4636 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4638 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4639 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4640 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4641 libs: encoder: h264,vp8,mpeg2: refactor control rate
4642 Instead of filling the control rate param in ensure_misc_params(),
4643 this patch refactor it out, as a first step to merge the same code
4644 for all the encoders.
4645 https://bugzilla.gnome.org/show_bug.cgi?id=783449
4647 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4649 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4650 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4651 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4652 libs: encoder: h264, h265, mpeg2: remove assert
4653 Remove spurious asserts for misc parameters. If they cannot be
4654 allocated, FALSE is already returned.
4656 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4658 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4659 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4660 libs: encoder: use VA quality level structure
4661 Instead of using a proxy to story the buffer quality level, the
4662 encoder now uses the native VA structure, which is copied to the
4663 dynamically allocated VAEncMiscParameterBuffer.
4664 This approach is computationally less expensive.
4666 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4668 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4669 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
4670 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4671 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4672 libs: standardize the FIXME comment
4673 This is a trivial patch that makes homogeneous the FIXME tag in
4675 For more info about these comment style:
4676 http://wiki.c2.com/?FixmeComment
4678 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
4680 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4681 libs: encoder: vp8: set quality level regardless of rate control mode
4682 https://bugzilla.gnome.org/show_bug.cgi?id=782957
4684 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4686 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4687 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4688 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4689 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4690 libs: encoder: check for maximum number of slices
4691 Right now, H264 and HEVC can set as a property the number of slices to
4692 process. But each driver can set a maximum number of slices, depending
4693 on the supported profile & entry point.
4694 This patch verifies the current num_slices to process against the maximum
4695 permitted by the driver and the media size.
4696 https://bugzilla.gnome.org/show_bug.cgi?id=780955
4698 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4700 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
4701 libs: utils: mark functions as internals
4702 The functions in this header are internal to the library.
4704 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4706 * gst-libs/gst/vaapi/gstvaapicontext.h:
4707 libs: context: add missing documentation
4708 Document the region-of-interest configuration variables.
4710 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4712 * tests/elements/test-vaapisink.c:
4713 tests: elements: vaapisink: handle nav events
4714 The test app can now handle navigation events to rotate the
4717 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4719 * tests/elements/test-vaapisink.c:
4720 tests: elements: clean up vaapisink test
4721 - Use gst_element_send_event() instead of gst_pad_push_event()
4722 - don't zero App structure
4723 - check for pipeline parsing error
4724 - only get vaapisink for property set
4726 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
4728 * gst/vaapi/gstvaapisink.c:
4729 vaapisink: keep handle_events flag except that if user want to set
4730 When state of vaapisink is changed from PLAYING to NULL, the handle_events
4731 flag is set to FALSE, and never recovered, and then event thread is never
4733 So we should allow to set the flag only when users try it.
4734 https://bugzilla.gnome.org/show_bug.cgi?id=782543
4736 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
4738 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4739 libs: window: x11: fix src rect info when using vpp
4740 Since we started using VPP in VaapiWindowX11, we need to care about
4741 the case that src rect and window's size are different.
4742 So, once VPP has converted to other format, we should honor the
4743 size of the VPP's surface as source rect. Otherwise, it is cropped
4744 according the previous size of the source rect.
4745 https://bugzilla.gnome.org/show_bug.cgi?id=782542
4747 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4749 * gst/vaapi/gstvaapipluginutil.c:
4750 plugins: remove par from caps negotiation
4751 https://bugzilla.gnome.org/show_bug.cgi?id=781759
4753 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
4755 * tests/elements/Makefile.am:
4756 * tests/elements/test-roi.c:
4757 tests: elements: add an example for ROI
4758 This implements a pipleint to recognize difference between ROI and non-ROI.
4759 See comments in this code in detail.
4760 https://bugzilla.gnome.org/show_bug.cgi?id=768248
4761 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4763 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
4765 * gst/vaapi/gstvaapiencode.c:
4766 * gst/vaapi/gstvaapiencode_h264.c:
4767 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
4768 Handles new custom event GstVaapiEncoderRegionOfInterest
4769 to enable/disable a ROI region.
4770 Writes a way to use new event to document.
4771 https://bugzilla.gnome.org/show_bug.cgi?id=768248
4772 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4774 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
4776 * tests/simple-encoder.c:
4777 tests: simple-encoder: add an option to set ROI
4778 $ simple-encoder -r inputfile.y4m
4779 And you'll got an output file in H264 with two regions of interest.
4780 https://bugzilla.gnome.org/show_bug.cgi?id=768248
4781 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4783 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
4785 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4786 libs: encoder: h264: set ROI params during encoding
4787 Set ROI params during encoding each frame, which are set via
4788 gst_vaapi_encoder_add_roi ()
4789 https://bugzilla.gnome.org/show_bug.cgi?id=768248
4790 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4792 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
4794 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4795 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4796 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4797 libs: encoder: add api gst_vaapi_encoder_add/del_roi
4798 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
4799 https://bugzilla.gnome.org/show_bug.cgi?id=768248
4801 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
4803 * gst-libs/gst/vaapi/gstvaapicontext.c:
4804 * gst-libs/gst/vaapi/gstvaapicontext.h:
4805 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4806 libs: encoder/context: query region of interest support
4807 Queries if the driver supports "Region of Interest" (ROI) during the config
4809 This attribute conveys whether the driver supports region-of-interest (ROI)
4810 encoding, based on user provided ROI rectangles. The attribute value is
4811 partitioned into fields as defined in the VAConfigAttribValEncROI union.
4812 If ROI encoding is supported, the ROI information is passed to the driver
4813 using VAEncMiscParameterTypeROI.
4814 https://bugzilla.gnome.org/show_bug.cgi?id=768248
4815 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4817 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4819 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
4820 libs: encoder: fix a comment
4822 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4824 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4825 libs: encoder: guard quality level configuration
4826 The quality level appeared in VA-API 0.36. So let's guard its
4829 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
4831 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4832 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4833 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4834 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4835 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4836 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
4837 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4838 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4839 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4840 encoders: add quality level tuning
4841 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
4842 in gstreamer-vaapi encoders:
4843 The encoding quality could be set through this structure, if the
4844 implementation supports multiple quality levels. The quality level set
4845 through this structure is persistent over the entire coded sequence, or
4846 until a new structure is being sent. The quality level range can be queried
4847 through the VAConfigAttribEncQualityRange attribute. A lower value means
4848 higher quality, and a value of 1 represents the highest quality. The quality
4849 level setting is used as a trade-off between quality and speed/power
4850 consumption, with higher quality corresponds to lower speed and higher power
4852 The quality level is set by the element's parameter "quality-level" with a
4853 hard-coded range of 1 to 8.
4854 Later, when the encoder is configured in run time, just before start
4855 processing, the quality level is scaled to the codec range. If
4856 VAConfigAttribEncQualityRange is not available in the used VA backend, then
4857 the quality level is set to zero, which means "disabled".
4858 All the available codecs now process this parameter if it is available.
4859 https://bugzilla.gnome.org/show_bug.cgi?id=778733
4860 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4862 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
4868 === release 1.12.0 ===
4870 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
4875 * gstreamer-vaapi.doap:
4879 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4881 * gst/vaapi/gstvaapidecodebin.c:
4882 Revert "vaapidecodebin: fix element's classification"
4883 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
4885 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
4889 build: Require libva < 0.99.0
4890 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
4891 fail to configure instead of failing late in the build.
4892 This libva is bundled in msdk[1] and it is ahead in time with
4893 respect the official and open source libva[2]. GStreamer-VAAPI
4894 only supports the latter for now.
4895 1. https://software.intel.com/en-us/media-sdk/download
4896 2. https://github.com/01org/libva/
4897 https://bugzilla.gnome.org/show_bug.cgi?id=781866
4899 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
4901 * gst/vaapi/gstvaapidecodebin.c:
4902 vaapidecodebin: fix element's classification
4903 This bin should have similar classification as decodebin which is
4904 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
4906 Signed-off-by: Victor Toso <victortoso@redhat.com>
4907 https://bugzilla.gnome.org/show_bug.cgi?id=782063
4909 === release 1.11.91 ===
4911 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
4916 * gstreamer-vaapi.doap:
4920 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4922 * gst/vaapi/gstvaapipluginutil.c:
4923 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
4924 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
4926 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4928 * gst/vaapi/gstvaapipluginutil.c:
4929 plugins: reject pixel-aspect-ratio with value 0/1
4930 Do not negotiate a pixel-aspect-ratio of 0/1.
4931 https://bugzilla.gnome.org/show_bug.cgi?id=781759
4933 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4935 * gst/vaapi/gstvaapipostprocutil.c:
4936 * gst/vaapi/gstvaapisink.c:
4937 plugins: handle pixel-aspect-ratio with value 0/1
4938 When downstream negotiates a pixel-aspect-ratio of 0/1, the
4939 calculations for resizing and formatting in vaapipostproc and
4940 vaapisink, respectively, failed, and thus the pipeline.
4941 This patch handles this situation by converting p-a-r of 0/1 to
4942 1/1. This is how other sinks, such as glimagesink, work.
4943 https://bugzilla.gnome.org/show_bug.cgi?id=781759
4945 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
4947 * gst/vaapi/gstvaapivideobufferpool.c:
4948 vaapivideobufferpool: fix leak of created allocator
4949 Since it's created by itself, it should be unref-counted
4950 after gst_buffer_pool_config_set_allocator call. Afterwards,
4951 this allocator will be ref-counted again when assigning to priv->allocator.
4952 https://bugzilla.gnome.org/show_bug.cgi?id=781577
4954 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4956 * gst/vaapi/gstvaapivideobufferpool.c:
4957 vaapivideobufferpool: create or reconfig allocator
4958 Sometimes a video decoder could set different buffer pool
4959 configurations, because their frame size changes. In this case we
4960 did not reconfigure the allocator.
4961 This patch enables this use case, creating a new allocator inside
4962 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
4963 If so, it is just reconfigured, since it doesn't have a surface pool.
4964 https://bugzilla.gnome.org/show_bug.cgi?id=781577
4966 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4968 * tests/elements/Makefile.am:
4969 test: elements: fix compilation flags
4970 This issue was spotten on bug #766704
4971 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
4973 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
4975 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
4976 libs: windows: wayland: fix leak if failure of sync
4977 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
4979 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
4980 This surface is not attached to anything at this moment, so we should release
4982 https://bugzilla.gnome.org/show_bug.cgi?id=781695
4984 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
4987 Automatic update of common submodule
4988 From 60aeef6 to 48a5d85
4990 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
4992 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
4993 libs: window: wayland: mark frames as done
4994 When the frame listener callbacks 'done', the number of pending
4995 frames are decreased. Nonetheless, there might be occasions where
4996 the buffer listener callbacks 'release', without calling previously
4997 frame's 'done'. This leads to problem with
4998 gst_vaapi_window_wayland_sync() operation.
4999 This patch marks as done those frames which were callbacked, but if
5000 the buffer callbacks 'release' and associated frame is not marked
5001 as 'done' it is so, thus the number of pending frames keeps correct.
5002 https://bugzilla.gnome.org/show_bug.cgi?id=780442
5003 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5005 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5007 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5008 libs: window: wayland: don't sync at destroy()
5009 Don't call gst_vaapi_window_wayland_sync() when destroying the
5010 wayland window instance, since it might lead to a lock at
5011 gst_poll_wait() when more than one instances of vaapisink are
5012 rendering in the same pipeline, this is because they share the
5014 Since now all the frames are freed we don't need to freed the
5015 private last_frame, since its address is invalid now.
5016 https://bugzilla.gnome.org/show_bug.cgi?id=780442
5017 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
5019 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
5021 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5022 libs: window: wayland: null buffer at destroy()
5023 Fix leakage of the last wl buffer.
5024 VAAPI wayland sink needs to send a null buffer while destruction,
5025 it assures that all the wl buffers are released. Otherwise, the last
5026 buffer's callback might be not called, which leads to leak of
5028 This was inspired by gstwaylandsink.
5029 https://bugzilla.gnome.org/show_bug.cgi?id=774029
5030 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5032 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
5034 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5035 libs: window: wayland: rt event queue at destroy()
5036 The proxy object of wl_buffer for the last frame remains in the
5037 wl_map. Even though we call wl_buffer_destroy() in
5038 frame_release_callback(), the proxy object remains without being
5039 removed, since proxy object is deleted when wayland server sees the
5040 delete request and sends 'delete_id' event.
5041 We need to call roundtrip before destroying event_queue so that the
5042 proxy object is removed. Otherwise, it would be mess up as receiving
5043 'delete_id' event from previous play, when playing in the next
5044 va/wayland window with the same wl_display connection.
5045 https://bugzilla.gnome.org/show_bug.cgi?id=773689
5046 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5048 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5050 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5051 libs: window: wayland: cancel read at poll message
5052 Always call wl_display_cancel_read() when an errno is set, but
5053 different to EAGAIN or EINTR.
5054 https://bugzilla.gnome.org/show_bug.cgi?id=780442
5056 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
5058 * gst/vaapi/gstvaapidecodebin.c:
5059 * gst/vaapi/gstvaapidecodebin.h:
5060 vaapidecodebin: skips configuration once it's done
5061 Skips configuration of creation of vpp/capsfilter and link them once it's done.
5062 Otherwise, it always fails when it's trying to re-start playback.
5063 https://bugzilla.gnome.org/show_bug.cgi?id=781573
5065 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5067 * gst/vaapi/gstvaapipostprocutil.c:
5068 vaapipostproc: fixes for memory leaks
5069 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
5070 requires to clear the used GValue to avoid a memory leak.
5072 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5074 * gst/vaapi/gstvaapipluginbase.c:
5075 * gst/vaapi/gstvaapipluginbase.h:
5076 plugins: enable direct rendering with envvar
5077 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
5078 performance in some Intel platforms (Haswell, for example) but in others
5079 (Skylake) is the opposite.
5080 In order to have some control, the patch enables the direct rendering
5081 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
5082 Also it seems to generating some problems with gallium/radeon backend.
5084 https://bugzilla.gnome.org/show_bug.cgi?id=775848
5086 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
5088 * gst/vaapi/gstvaapidecode.c:
5089 vaapidecode: Don't renegotiate on every flush
5090 If caps don't actually change, don't update the
5091 decoder and don't set the do_renego flag forcing
5092 downstream renegotiation
5093 https://bugzilla.gnome.org/show_bug.cgi?id=781142
5095 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
5097 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5098 h264 decoder: Implement reset() for faster flush
5099 Implement a custom reset() function for faster flushes
5100 that just clear the reference pictures but don't reallocate
5101 the DPB or clear out SPS/PPS
5102 https://bugzilla.gnome.org/show_bug.cgi?id=781142
5104 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
5106 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5107 * gst-libs/gst/vaapi/gstvaapidecoder.h:
5108 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5109 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5110 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
5111 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
5112 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
5113 * gst/vaapi/gstvaapidecode.c:
5114 Implement decoder reset on flush, rather than recreating
5115 Clear decoders out on a flush but keep the same instance,
5116 rather than completely recreating them. That avoids
5117 unecessarily freeing and recreating surface pools
5118 and contexts, which can be quite expensive
5119 https://bugzilla.gnome.org/show_bug.cgi?id=781142
5121 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5123 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5124 libs: window: don't add an unused function
5125 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
5126 a function that is never used, thus when compiling we might see
5127 this warning (clang):
5128 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
5129 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
5131 https://bugzilla.gnome.org/show_bug.cgi?id=759533
5133 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5135 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5136 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
5137 libs: window: remove surface_format member
5138 Since we always convert to NV12, there is no need to keep a
5139 variable for that. Let us hard code it.
5140 https://bugzilla.gnome.org/show_bug.cgi?id=759533
5142 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
5144 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5145 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5146 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5147 libs: window: x11/wayland: use new api for conversion
5148 Since gst_vaapi_window_vpp_convert_internal is created,
5149 GstVaapiWindowX11/Wayland can use it for conversion.
5150 Note that once it chooses to use vpp, it's going to use vpp
5151 until the session is finished.
5152 https://bugzilla.gnome.org/show_bug.cgi?id=759533
5154 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
5156 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5157 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
5158 libs: window: add gst_vaapi_window_vpp_convert_internal()
5159 If a backend doesn't support specific format, we can use vpp for conversion
5160 and make it playing.
5161 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
5162 so that GstVaapiWindowX11 could use it.
5163 https://bugzilla.gnome.org/show_bug.cgi?id=759533
5165 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
5167 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5168 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
5169 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5170 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5171 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5172 libs: window: x11/wayland: chaining up to GstVaapiWindow
5173 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
5174 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
5175 https://bugzilla.gnome.org/show_bug.cgi?id=759533
5177 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
5179 * gst/vaapi/gstvaapipluginutil.c:
5180 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
5181 When these definitions are false, they are undef in the
5182 preprocessor, not a defined value of 0. When they are unset the
5184 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
5185 https://bugzilla.gnome.org/show_bug.cgi?id=780948
5187 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
5190 Automatic update of common submodule
5191 From 39ac2f5 to 60aeef6
5193 === release 1.11.90 ===
5195 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
5200 * gstreamer-vaapi.doap:
5204 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5206 * gst/vaapi/gstvaapiencode_h265.c:
5207 vaapiencode: h265: add main-10 in caps template
5208 This patch adds h265's main-10 profile in encoder src caps template.
5209 https://bugzilla.gnome.org/show_bug.cgi?id=771291
5211 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5213 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5214 libs: encoder: h265: chroma and luma with format
5215 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
5216 parameter buffer, shall be the color format bit depth minus 8, 10-8
5217 which is 2. Also for bit_depth_chroma_minus8.
5218 This patch gets the negotiated sink caps format and queries its
5219 luma's depth and uses that value to fill the mentioned parameters.
5220 https://bugzilla.gnome.org/show_bug.cgi?id=771291
5222 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5224 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5225 libs: encoder: admit YUV420_10BPP as valid chroma
5226 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
5228 https://bugzilla.gnome.org/show_bug.cgi?id=771291
5230 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5232 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5233 libs: encoder: h265: ensures profile given format
5234 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
5235 configured color format is P010_10LE.
5236 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
5237 https://bugzilla.gnome.org/show_bug.cgi?id=771291
5239 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5241 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5242 libs: encode: merge all possible surface formats
5243 When the function gst_vaapi_encoder_get_surface_formats() was added
5244 it was under the assumption that any VA profile of the specific codec
5245 supported the same format colors. But it is not, for example the
5246 profiles that support 10bit formats.
5247 In other words, different VA profiles of a same codec may support
5248 different color formats in their upload surfaces.
5249 In order to expose all the possible color formats, if no profile is
5250 specified via source caps, or if the encoder doesn't have yet a
5251 context, all the possible VA profiles for the specific codec are
5252 iterated and their color formats are merged.
5253 https://bugzilla.gnome.org/show_bug.cgi?id=771291
5255 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5257 * gst/vaapi/gstvaapiencode.c:
5258 * gst/vaapi/gstvaapiencode.h:
5259 * gst/vaapi/gstvaapiencode_h264.c:
5260 * gst/vaapi/gstvaapiencode_h265.c:
5261 vaapiencode: add get_profile() vmethod
5262 This new virtual method, get_profile(), if implemented by specific
5263 encoders, will return the VA profile potentially determined by the
5265 Also it is implemented by h264 and h265 encoders, which are the main
5266 users of this vmethod.
5267 https://bugzilla.gnome.org/show_bug.cgi?id=771291
5269 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5271 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5272 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5273 * gst/vaapi/gstvaapiencode.c:
5274 libs: encoder: pass profile to get_surface_formats()
5275 In order to get the supported surface formats within a specific
5276 profile this patch adds the GstVaapiProfile as property to
5277 gst_vaapi_encoder_get_surface_formats().
5278 Currently the extracted formats are only those related with the
5279 default profile of the element's codec.
5280 https://bugzilla.gnome.org/show_bug.cgi?id=771291
5282 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5284 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5285 libs: encoder: dummy context for get_surface_formats()
5286 Instead of creating (if it doesn't exist, yet) the encoder's context
5287 the method gst_vaapi_encoder_get_surface_formats() now it creates
5288 dummy contexts, unless the encoder has it already created.
5289 The purpose of this is to avoid setting a encoder's context with a
5291 https://bugzilla.gnome.org/show_bug.cgi?id=771291
5293 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5295 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5296 libs: encoder: refactor init_context_info()
5297 In order to generate vaapi contexts iterative, the function
5298 init_context_info() is refactored to pass, as parameters the
5299 GstVaapiContextInfo and the GstVaapiProfile.
5300 https://bugzilla.gnome.org/show_bug.cgi?id=771291
5302 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5304 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5305 * gst-libs/gst/vaapi/gstvaapiutils.c:
5306 * gst-libs/gst/vaapi/gstvaapiutils.h:
5307 libs: encoder: initialize chroma_type
5308 Instead of initialize the chroma_type with a undefined value, which
5309 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
5310 this patch queries the VA config, given the received
5311 GstVaapiContextInfo's parameters, and gets the first response.
5312 In order to get the GstVaapiChromaType value, also it was needed to
5313 add a new utility function: to_GstVaapiChromaType(), which, given a
5314 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
5315 https://bugzilla.gnome.org/show_bug.cgi?id=771291
5317 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5319 * gst/vaapi/gstvaapiencode.c:
5320 vaapiencode: enhance logs of negotiated caps
5321 https://bugzilla.gnome.org/show_bug.cgi?id=771291
5323 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
5325 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5326 libs: encoder: vp9: Fix initialization of ref_list
5327 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
5328 'memset' used with length equal to number of elements without
5329 multiplication by element size [-Werror=memset-elt-size]
5330 https://bugzilla.gnome.org/show_bug.cgi?id=780947
5332 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
5334 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5335 encoder: h264: Fix Backward ReferencePicture flag setting
5336 This is a regression introduced by e829b62 which
5337 override the reference flags and caused issues with
5338 latest intel-vaapi-driver.
5340 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5342 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5343 libs: encoder: h265: fix code style
5344 Trivial patch to remove a double ';' as end of instruction.
5346 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
5348 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5349 encoder: h264: Fix B frame encoding artifacts
5350 The current implementation is updating the POC values only
5351 in Slice parameter Buffer.But we are not filling the
5352 picture order count and reference flags in VAPictureH264
5353 while populating VA Picture/Slice structures.The latest
5354 intel-vaapi-driver is directly accessing the above fields
5355 from VAPicutreH264 provided as RefPicLists, which resulted
5356 some wrong maths and prediction errors in driver.
5357 https://bugzilla.gnome.org/show_bug.cgi?id=780620
5359 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5361 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5362 libs: encoder: h265: remove unused macro definition
5363 Since the h265 encoder doesn't use GValueArray, there is no need to
5364 disable the Glib deprecation warnings, thus removing the macro
5367 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5369 * gst/vaapi/gstvaapidecode.c:
5370 * gst/vaapi/gstvaapiencode.c:
5371 * gst/vaapi/gstvaapipostproc.c:
5372 * gst/vaapi/gstvaapisink.c:
5373 plugins: when debug disabled, default category is NULL
5374 As in gstreamer-vaapi a common base class is used, the specific
5375 default category is passed to the base-plugin initializator, thus
5376 the log messages are categorized with the used plugin.
5377 Nonetheless, when the gst-debug is disabled in compilation time,
5378 it is needed to pass NULL to the base-plugin initializator. This
5380 https://bugzilla.gnome.org/show_bug.cgi?id=780302
5382 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
5384 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5385 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5386 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
5387 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
5388 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
5389 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
5390 unit length and data to a bitwriter.
5391 Note that this helper function applies EPB (Emulation Prevention
5392 Bytes), since otherwise produced codec_data might be broken when
5393 decoder/parser considering EPB, starts parsing.
5394 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
5395 describes the emulation_prevention_three_byte.
5396 https://bugzilla.gnome.org/show_bug.cgi?id=778750
5397 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5399 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
5401 * gst-libs/gst/vaapi/Makefile.am:
5402 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5403 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5404 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
5405 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
5406 * gst-libs/gst/vaapi/meson.build:
5407 libs: utils: h26x: create vaapiutils_h26x
5408 Since there is duplicated code in h264/265 encoder, we could
5409 refactor it to avoid duplicated code.
5410 https://bugzilla.gnome.org/show_bug.cgi?id=778750
5411 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5413 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
5415 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5416 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5417 libs: encoder: h264/5: fix wrong return value
5418 https://bugzilla.gnome.org/show_bug.cgi?id=778750
5420 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
5422 * gst/vaapi/gstvaapiencode_h264.c:
5423 * gst/vaapi/gstvaapiencode_h265.c:
5424 docs: h264/h265: put parser to the example pipeline
5425 https://bugzilla.gnome.org/show_bug.cgi?id=778749
5427 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
5429 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5430 libs: encoder: h265: fix reserved length of bits
5431 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
5432 https://bugzilla.gnome.org/show_bug.cgi?id=778749
5434 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
5436 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
5437 * tests/test-display.c:
5438 O_CLOEXEC needs _GNU_SOURCE defined
5440 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
5441 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
5442 2.12, one can obtain their definitions by defining either
5443 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
5444 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
5445 2.11 and earlier, one obtains the definitions by defining
5447 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
5448 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
5449 gstreamer-vaapi with the uClibc C library.
5450 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
5451 https://bugzilla.gnome.org/show_bug.cgi?id=779953
5453 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5456 README: fix "Sources" section
5457 Update the URL where the release source tarballs can be downloaded.
5459 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
5462 README: fix "Reporting bugs" section
5463 The "Reporting bugs" section gives
5464 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
5465 link to report a bug, but this link says "Sorry, entering a bug into the
5466 product gstreamer-vaapi has been disabled.".
5467 This commit fixes the URL to point to the proper location, and also
5468 removes the following paragraph that is no longer correct.
5469 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
5470 https://bugzilla.gnome.org/show_bug.cgi?id=779954
5472 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5474 * gst/vaapi/gstvaapipluginutil.c:
5475 plugins: retry to create the VA display
5476 Particularly in GNOME Wayland, the negotiated or created GL context
5477 defines a GLX environment, but VAAPI fails to create a GLX VA
5478 display because there is no a DRI2 connection.
5479 This patch retries to create the VA display if VA cannot create one
5480 with the GL context parameters. Now using the old list of display
5482 This should also work in the case of systems with two GPU, when the
5483 non-VAAPI has the graphics environment, and the VAAPI-enabled one
5484 shall work headless.
5485 https://bugzilla.gnome.org/show_bug.cgi?id=772838
5487 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
5489 * gst/vaapi/gstvaapipostproc.c:
5490 vaapipostproc: texture upload if driver supports GL
5491 Removes GstVideoGLTextureUploadMeta caps feature if the driver
5492 doesn't support opengl.
5493 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5494 https://bugzilla.gnome.org/show_bug.cgi?id=772838
5496 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5498 * gst/vaapi/gstvaapidecode.c:
5499 vaapidecode: texture upload if driver supports GL
5500 When the allowed source pad caps are generated, the GLTextureUpload caps are
5501 only inserted if the driver support OpenGL.
5502 https://bugzilla.gnome.org/show_bug.cgi?id=772838
5504 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
5507 configure: Add missing compiler flags
5508 The AC_CHECK_HEADERS macro was failing to locate some headers, in
5509 particular the va_enc_* headers due to missing compiler flags.
5510 https://bugzilla.gnome.org/show_bug.cgi?id=779101
5511 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5513 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
5515 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5516 libs: window: wayland: handle more VAStatus to use vpp
5517 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
5518 we should consider more returned VAStatus to use vpp.
5519 https://bugzilla.gnome.org/show_bug.cgi?id=779400
5521 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
5523 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5524 libs: encoder: ensure profile when context initialization
5525 We can't be sure that encoder's profile is assgined already or not
5526 at context initialization.
5527 https://bugzilla.gnome.org/show_bug.cgi?id=779120
5529 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
5531 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5532 libs: encoder: set rate control info only when query succeed
5533 Currently, it set rate control information even when query fails.
5534 In addition, it doesn't update any more since the flag
5535 got_rate_control_mask is set to TRUE.
5536 https://bugzilla.gnome.org/show_bug.cgi?id=779120
5538 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
5541 meson: Update version
5543 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
5548 === release 1.11.2 ===
5550 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
5555 * gstreamer-vaapi.doap:
5558 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5560 * gst/vaapi/gstvaapiencode.c:
5561 vaapiencode: merge tags for downstream's info
5562 Add encoder and codec name and the bitrate into the output for
5563 informational purposes. Some muxers or application use it as
5565 https://bugzilla.gnome.org/show_bug.cgi?id=778781
5567 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5569 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5570 libs: encoder: caps can change at any time
5571 The encoder should be able to change its caps even it is already
5572 processing a stream.
5573 This is suppose to happen after a flush so the codedbuf_queue should
5575 https://bugzilla.gnome.org/show_bug.cgi?id=775490
5577 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5579 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5580 libs: encoder: h265: bail if nal unit type fails
5581 Bail out if the NAL unit type is not recognized.
5582 https://bugzilla.gnome.org/show_bug.cgi?id=778782
5584 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5586 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5587 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5588 libs: decoder: h264,h265 avoid uninitialized variable
5589 Configuring GCC to verify possible usage of uninitialized variables,
5590 shows that found_index might be used without previous assignation.
5591 This patch assigns a initial value to found_index, also avoid a
5592 branching when returning the result value.
5593 https://bugzilla.gnome.org/show_bug.cgi?id=778782
5595 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
5598 * gst-libs/gst/vaapi/Makefile.am:
5599 * gst/vaapi/gstvaapidecode.c:
5600 * gst/vaapi/gstvaapidecodebin.c:
5601 build: rename USE_HEVC_DECODER to USE_H265_DECODER
5602 Rename to be consistent with H.264 and also H.265 encoder. The
5603 meson build assumed this was already consistently named, and so
5604 previously was not able to actually build the H.265 decoder.
5605 https://bugzilla.gnome.org/show_bug.cgi?id=778576
5607 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
5610 meson: gstreamer-codecparsers is a required dep
5611 Just like in configure.ac.
5613 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
5616 meson: dist meson build files
5617 Ship meson build files in tarballs, so people who use tarballs
5618 in their builds can start playing with meson already.
5620 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
5622 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5623 libs: encoder: vp8: add CBR encoding mode
5624 This patch enables the Constant BitRate encoding mode in VP8 encoder.
5625 Basically it adds the configuration parameters required by libva to
5627 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5628 https://bugzilla.gnome.org/show_bug.cgi?id=749950
5630 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
5632 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5633 libs: encoder: vp8: fix bitrate calculation
5634 Base encoder's unit of bitrate is in Kbps. We should honor it so
5635 we use the value of bitrate in VA, in which is expressed in bps.
5636 https://bugzilla.gnome.org/show_bug.cgi?id=749950
5638 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5640 * gst/vaapi/gstvaapipluginbase.c:
5641 plugins: fix build when gcc
5642 In commit a8e482f9 we added a function without parameters, but gcc
5645 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
5647 * gst-libs/gst/base/meson.build:
5648 * gst-libs/gst/meson.build:
5649 * gst-libs/gst/vaapi/meson.build:
5650 * gst-libs/meson.build:
5652 * gst/vaapi/meson.build:
5654 * meson_options.txt:
5655 vaapi: add meson build
5656 https://bugzilla.gnome.org/show_bug.cgi?id=778250
5658 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
5661 * gst-libs/gst/vaapi/Makefile.am:
5662 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5663 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
5664 make: remove gstvaapiversion.h generation
5665 https://bugzilla.gnome.org/show_bug.cgi?id=778250
5667 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
5669 * gst/vaapi/gstvaapipluginbase.c:
5670 plugins: use linear storage if not the same device
5671 When dmabuf is negotiated downstream and decoding and rendering are
5672 not done on the same device, the layout has to be linear in order for
5673 the memory to be shared accross devices, since each device has its
5674 own way to do tiling.
5675 Right now this code is rather just a to-do comment, since we are not
5676 fetching the device ids.
5677 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5679 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
5681 * gst-libs/gst/vaapi/gstvaapiutils.c:
5682 libs: utils: add HEVC profiles representation
5683 https://bugzilla.gnome.org/show_bug.cgi?id=778318
5685 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
5687 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5688 libs: decoder: h264: reduce frame number of gaps
5689 Reduce frame num gaps so that we don't have to create unnecessary
5690 dummy pictures, just throw them away.
5691 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5692 https://bugzilla.gnome.org/show_bug.cgi?id=777506
5694 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5696 * gst/vaapi/gstvaapidecode.c:
5697 vaapidecode: don't GLTextureUpload if dmabuf
5698 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
5699 element can handle dmabuf-based buffers, avoiding its negotiation.
5701 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
5703 * gst/vaapi/gstvaapidecode.c:
5704 vaapidecode: make pool to export decoder's surface
5705 Use new -base API gst_video_decoder_allocate_output_frame_full() to
5706 pass the current proxy/surface to the pool.
5707 The pool will will export thins given surface instead of exporting a
5708 brand new surface that will never be filled in with meaningfull data.
5709 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5711 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5713 * gst/vaapi/gstvaapipluginbase.c:
5714 plugins: decoder can negotiate dmabuf downstream
5716 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
5718 * gst/vaapi/gstvaapivideobufferpool.c:
5719 vaapivideobufferpool: override acquire_buffer()
5720 Overriding the vmethod acquire_buffer() it is possible to attach the
5721 right GstMemory to the current acquired buffer.
5722 As a matter of fact, this acquired buffer may contain any instantiated
5723 GstFdmemory, since this buffer have been popped out from the buffer
5724 pool, which is a FIFO queue. So there is no garantee that this buffer
5725 matches with the current processed surface. Evenmore, the VA driver
5726 might not use a FIFO queue. Therefore, it is no way to guess on the
5728 In short, acquire_buffer on the VA driver and on the buffer pool return
5729 none matching data, we have to manually attach the right GstFdMemory to
5730 the acquired GstBuffer. The right GstMemory is the one associated with
5731 the current surface.
5732 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5734 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
5736 * gst/vaapi/gstvaapivideobufferpool.c:
5737 * gst/vaapi/gstvaapivideomemory.c:
5738 vaapivideomemory: export surface if it is provided
5739 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
5740 had to create that surface. Now it can also export an already provided
5741 surface. It is useful to export decoder's surfaces (from VA context).
5742 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5744 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
5746 * gst/vaapi/gstvaapivideobufferpool.h:
5747 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
5748 Useful to let the pool know the current surface proxy when calling
5749 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
5750 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5752 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
5754 * gst-libs/gst/vaapi/gstvaapisurface.c:
5755 * gst-libs/gst/vaapi/gstvaapisurface.h:
5756 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
5757 These functions are useful when a dmabuf-based memory is instantiated in
5758 order to relate the generated buffer @proxy with the processed @surface.
5759 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5761 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
5763 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
5764 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
5765 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
5766 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
5767 This patch adds a GstMemory as a variable member of the buffer proxy,
5768 because we will need to associate the buffer proxy with the memory
5769 which exposes it. Later, we will know which memory, in the video buffer
5770 pool, is attached to the processed surface.
5771 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5773 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
5775 * gst/vaapi/gstvaapipostproc.c:
5776 vaapipostproc: don't GLTextureUpload if dmabuf
5777 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
5778 element can handle dmabuf-based buffers, avoiding its negotiation.
5779 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
5780 feature if can dmabuf"
5781 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5783 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5785 * gst/vaapi/gstvaapipluginbase.c:
5786 plugins: enable DMAbuf allocator to downstream
5787 If the negotiated caps are raw caps and downstream supports the
5788 EGL_EXT_image_dma_buf_import extension, then the created allocator
5789 is the DMAbuf, configured to downstream.
5790 At this moment, the only element which can push dmabuf-based buffers
5791 to downstream, is vaapipostproc.
5793 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5795 * gst/vaapi/gstvaapipluginbase.c:
5796 * gst/vaapi/gstvaapipluginbase.h:
5797 plugins: check if negotiate dmabuf with downstream
5798 In order to enable, in the future, dmabuf-based buffers, the vaapi base
5799 plugin needs to check if downstream can import dmabuf buffers.
5800 This patch checks if downstream can handle dmabuf, by introspecting the
5801 shared GL context. If the GL context is EGL/GLES2 and have the extension
5802 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
5803 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
5805 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
5807 * gst/vaapi/gstvaapivideomemory.c:
5808 vaapivideomemory: release proxy's data if downstream
5809 The surface created for downstream is going to be filled by VAAPI
5810 elements. So, the driver needs write access on that surface.
5811 This patch releases the derived image held by the proxy, thus the
5812 surface is unmarked as busy.
5813 This is how it has to be done as discussed on libva mailing list.
5814 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5816 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
5818 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
5819 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
5820 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
5821 Adds an API to request the user's data release in the buffer proxy.
5822 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5824 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
5826 * gst/vaapi/gstvaapipluginbase.c:
5827 * gst/vaapi/gstvaapivideomemory.c:
5828 * gst/vaapi/gstvaapivideomemory.h:
5829 vaapivideomemory: add direction to dmabuf allocator
5830 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
5831 we later could do different thing when the allocated memory is for
5832 upstream or dowstream, as required by VA-API.
5833 https://bugzilla.gnome.org/show_bug.cgi?id=755072
5835 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
5837 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5838 libs: utils: return NULL if failed to get surface formats
5839 Thus, when generating the allowed caps, the element will throw a
5840 warning and it will use its caps template.
5841 This behavior might be a bug in the VA driver.
5842 https://bugzilla.gnome.org/show_bug.cgi?id=775490
5844 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5846 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5847 Revert "vaapidisplay: mark X11 display as compatible with EGL"
5848 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
5850 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
5852 * gst/vaapi/gstvaapipostproc.c:
5853 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
5854 A value of width/height property should be set to out caps,
5855 if negotiation had been going properly.
5856 So we can use srcpad_info when making decision of scaling.
5857 https://bugzilla.gnome.org/show_bug.cgi?id=778010
5859 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5861 * gst/vaapi/gstvaapidecode.c:
5862 * gst/vaapi/gstvaapiencode.c:
5863 * gst/vaapi/gstvaapipluginutil.c:
5864 * gst/vaapi/gstvaapipluginutil.h:
5865 * gst/vaapi/gstvaapipostproc.c:
5866 * gst/vaapi/gstvaapisink.c:
5867 plugins: handle GL params through context query
5868 If the element instantiated the GL display and context, they should
5869 handle them too through the context query.
5870 https://bugzilla.gnome.org/show_bug.cgi?id=777409
5872 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5874 * gst/vaapi/gstvaapipluginbase.c:
5875 * gst/vaapi/gstvaapipluginbase.h:
5876 * gst/vaapi/gstvaapipluginutil.c:
5877 plugins: create a GL context on certain conditions
5878 If a GstVaapiDisplay is not found in the GStreamer context sharing,
5879 then VAAPI elements look for a local GstGLContext in gst context
5880 sharing mechanism ('gst.gl.local.context').
5881 If this GstGLContext not found either then, only the VAAPI decoders
5882 and the VAAPI post-processor, will try to instantiate a new
5884 If a valid GstGLContext is received, then a new GstVaapiDisplay will
5885 be instantiated with the platform, API and windowing specified by the
5886 instantiated GstGLContext.
5887 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
5888 https://bugzilla.gnome.org/show_bug.cgi?id=777409
5890 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5892 * gst/vaapi/gstvaapivideocontext.c:
5893 vaapivideocontext: context type can be rejected
5894 Instead of calling g_return_val_if_fail() to check the context type, we
5895 should use a normal conditional, since it is possible that other context types
5896 can arrive and try to be assigned. Otherwise a critical log message is
5898 This happens when we use playbin3 with vaapipostproc as video-filter.
5899 https://bugzilla.gnome.org/show_bug.cgi?id=777409
5901 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5903 * gst/vaapi/gstvaapipostprocutil.c:
5904 vaapipostproc: use sink caps par if not requested
5905 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
5907 https://bugzilla.gnome.org/show_bug.cgi?id=777395
5909 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5911 * gst/vaapi/gstvaapipostproc.c:
5912 * gst/vaapi/gstvaapipostprocutil.c:
5913 vaapipostproc: set interlace mode
5914 if the vaapipostproc is configured to not do deinterlacing, the
5915 interlace-mode in the src caps should be the same as the input caps.
5916 https://bugzilla.gnome.org/show_bug.cgi?id=777395
5918 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5920 * gst/vaapi/gstvaapisink.c:
5921 vaapisink: fix gcc compiler warning
5922 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
5924 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5926 * gst/vaapi/gstvaapisink.c:
5927 vaapisink: don't use member variable outside lock
5928 Thus a race condition segfault is avoided.
5929 Original-patch-by: Matt Staples <staples255@gmail.com>
5930 https://bugzilla.gnome.org/show_bug.cgi?id=777146
5932 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5934 * gst/vaapi/gstvaapipluginbase.c:
5935 * gst/vaapi/gstvaapipostproc.c:
5936 plugins: avoid log flood when activating pool
5937 Every time a new buffer is allocated, the pool is activated. This
5938 doesn't impact in performance since gst_buffer_pool_set_active()
5939 checks the current state of the pool. Nonetheless it logs out a
5940 message if the state is the same, and it floods the logging subsystem
5942 To avoid this log flooding first the pool state is checked before
5945 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5947 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5948 * gst-libs/gst/vaapi/gstvaapidecoder.h:
5949 * gst/vaapi/gstvaapidecode.c:
5950 * gst/vaapi/gstvaapidecode.h:
5951 vaapidecode: update internal decoder sink caps
5952 When a new sink caps arrive the internal decoder state is updated
5953 and, if it is, request a downstream renegotiation.
5954 Previously, when new caps arrived the whole decoder where destroyed
5955 and recreated. Now, if the caps are compatible or has the same codec,
5956 the internal decoder is kept, but a downstream renegotiation is
5958 https://bugzilla.gnome.org/show_bug.cgi?id=776979
5960 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
5965 === release 1.11.1 ===
5967 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
5972 * gstreamer-vaapi.doap:
5975 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5977 * gst-libs/gst/vaapi/gstvaapiutils.c:
5978 vaapi: bump ifdef to API 0.40.0 for log redirect
5979 vaSetInfoCallback() is not released yet. It is going to appear in
5982 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
5984 * gst-libs/gst/vaapi/gstvaapiutils.c:
5985 vaapiutils: Fix compilation with latest and previous libva releases
5986 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
5989 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
5991 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5992 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
5993 * gst-libs/gst/vaapi/gstvaapiutils.c:
5994 * gst-libs/gst/vaapi/gstvaapiutils.h:
5995 libs: display: redirect logging at initialize
5996 Redirect libva's logs to GStreamer logging mechanism. This is
5997 particularly useful when VA is initialized, because it always logs
5998 out the drivers details.
5999 In order to achieve this a new helper function was added as a wrapper
6000 for the vaInitialize() function.
6001 https://bugzilla.gnome.org/show_bug.cgi?id=777115
6003 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
6005 * gst/vaapi/gstvaapipluginbase.c:
6006 plugins: provide at least two buffers in sink pool
6007 Adds two buffers as the default value of minimum buffer.
6008 This would be used when creating and proposing vaapi bufferpool for
6009 sink pad, hence the upstream element will keep, at least, these two
6011 https://bugzilla.gnome.org/show_bug.cgi?id=775203
6012 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6014 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
6016 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6017 libs: decoder: h264: don't update cloned attributes
6018 If the frame is a cloned picture, its PTS comes from its parent
6019 picture. In addition, the base decoder doesn't set a valid PTS to
6020 the frame corresponding to the cloned picture.
6021 https://bugzilla.gnome.org/show_bug.cgi?id=774254
6023 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6025 * gst/vaapi/gstvaapivideomemory.c:
6026 vaapivideomemory: check for display
6027 This patch fixes the check of display, rather than check for the
6028 meta, which it is known it exists.
6030 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6032 * gst/vaapi/gstvaapivideomemory.c:
6033 * gst/vaapi/gstvaapivideomemory.h:
6034 vaapivideomemory: rename dmabuf allocator parameters
6035 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
6036 'surface_alloc_flags' respectively. The purpose of this change is
6037 to auto-document those parameters.
6038 Also, aligned to this patch, the local 'alloc_info' variable was
6039 renamed as 'surface_info', because it stores the possible surface's
6040 video info, not the allocate one.
6042 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6044 * gst/vaapi/gstvaapivideomemory.c:
6045 * gst/vaapi/gstvaapivideomemory.h:
6046 vaapivideomemory: rename vip to alloc_info parameter
6047 In order to auto-document the code, this patch renames the 'vip'
6048 parameter in the functions related to gst_vaapi_video_allocator_new ()
6049 to 'alloc_info', since it declares the allocation video info from
6050 the vaapi buffer pool.
6052 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6054 * gst/vaapi/gstvaapivideomemory.c:
6055 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
6056 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
6057 the video format string.
6059 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6061 * gst/vaapi/gstvaapivideomemory.c:
6062 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
6063 gst_vaapi_surface_new_with_format() is a wrapper for
6064 gst_vaapi_surface_new_full (). In this case, the former is simpler
6065 than the first. This patch changes that.
6067 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
6069 * gst/vaapi/gstvaapipostproc.c:
6070 vaapipostproc: notify if src pad caps changed
6071 If src pad caps have changed, it needs to notify it downstream. In
6072 addition, do not set passthrough if they have changed.
6073 Otherwise, transform sometimes starts processing before caps change.
6074 The passthrough value will be set in fixate later in this case.
6075 https://bugzilla.gnome.org/show_bug.cgi?id=775204
6077 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6079 * gst/vaapi/gstvaapidecodebin.c:
6080 vaapidecodebin: capsfilter to optimize negotiation
6081 Add a capsfilter forcing the caps
6082 "video/x-raw(memory:VASurface), format=(string)NV12" between the
6083 queue and the vaapipostproc so no renegotiation is required.
6084 https://bugzilla.gnome.org/show_bug.cgi?id=776175
6086 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
6088 * gst/vaapi/gstvaapivideomemory.c:
6089 vaapivideomemory: fail surface/image configuration
6090 To detect and handle errors during allocator_configure_surface_info()
6091 and allocator_conigure_image_info().
6092 https://bugzilla.gnome.org/show_bug.cgi?id=776084
6093 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6095 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
6097 * gst/vaapi/gstvaapisink.c:
6098 vaapisink: ensures raw caps at start()
6099 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
6100 race conditions at get_caps(), especially with multiple src elements.
6101 https://bugzilla.gnome.org/show_bug.cgi?id=776303
6103 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6105 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
6106 libs: surface: fix error handling code style
6108 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6110 * gst/vaapi/gstvaapivideomemory.c:
6111 vaapivideomemory: add gst_video_info_update_from_surface()
6112 With this function is possible to refactor and remove duplicated code
6113 between dmabuf configuration and direct rendering/uploading
6116 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6118 * gst/vaapi/gstvaapivideomemory.c:
6119 vaapivideomemory: no log object at initialization
6120 When an instance of GstVaapiVideoAllocator fails at initializing, the
6121 log message should not include the allocator's object, because it is
6122 going to be unrefed.
6124 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6126 * gst/vaapi/gstvaapidecode.c:
6127 vaapidecode: lock stream when setting caps
6129 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6131 * gst/vaapi/gstvaapidecode.c:
6132 Revert "vaapidecode: implement negotiate() vmethod"
6133 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
6134 videodecode's negotiate() vmethod is also called when events arrive,
6135 but this would mean that the proper configuration of sink pad might
6136 not be complete, thus we should not update the src pad.
6137 Let's keep the old non-vmethod negotitate().
6139 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6141 * gst/vaapi/gstvaapi.c:
6142 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
6143 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
6145 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
6147 * gst/vaapi/gstvaapiencode.c:
6148 * gst/vaapi/gstvaapiencode.h:
6149 vaapiencode: get surface formats in get_caps()
6150 Query for the supported surface formats in config at get_caps() vmethod.
6151 https://bugzilla.gnome.org/show_bug.cgi?id=769266
6152 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6154 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
6156 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6157 * gst-libs/gst/vaapi/gstvaapiencoder.h:
6158 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
6159 This method will return the valid surface formats in the current
6160 config. If the are no VAConfig it is created with the information
6162 https://bugzilla.gnome.org/show_bug.cgi?id=769266
6163 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6165 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
6167 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6168 libs: encoder: split set_context_info()
6169 Split set_context_info() adding init_context_info() which only
6170 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
6171 required for VAConfig.
6172 https://bugzilla.gnome.org/show_bug.cgi?id=769266
6173 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6175 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
6177 * gst-libs/gst/vaapi/gstvaapicontext.c:
6178 libs: context: skip VAContext if no frame size
6179 If GstVaapiContextInfo has just initial information, without frame's
6180 width and height, skip the creation of the VAContext, just keep the
6182 https://bugzilla.gnome.org/show_bug.cgi?id=769266
6183 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6185 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
6187 * gst-libs/gst/vaapi/gstvaapicontext.c:
6188 libs: context: split context_create()
6189 Split the funcion context_create() into context_create() and
6191 Decoupling VAConfig and VAContext during context creation, we could
6192 query the VAConfig for the supported surface's formats without creating
6194 https://bugzilla.gnome.org/show_bug.cgi?id=769266
6196 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6198 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6199 libs: drm: find render node in hybrid system
6200 Originally the drm backend only tried to open the first render node
6201 found. But in hybrid system this first render node might not support
6202 VA-API (propietary Nvidia driver, for example).
6203 This patch tries all the available nodes until a finding one with a
6204 VA-API supported driver.
6205 https://bugzilla.gnome.org/show_bug.cgi?id=774811
6206 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
6207 Reza Razavi <reza@userful.com>
6209 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6211 * gst/vaapi/gstvaapivideomemory.c:
6212 vaapivideomemory: refactor code for readability
6213 Added the inlined function allocator_configure_pools() moving out code
6214 from gst_vaapi_video_allocator_new() to make clear that it is a
6215 post-initalization of the object.
6217 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6219 * gst/vaapi/gstvaapivideomemory.c:
6220 vaapivideomemory: log error if not VA image
6221 Log an error message if the test image for surface downloading
6222 cannot be allocated or mapped.
6224 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6226 * gst/vaapi/gstvaapivideomemory.c:
6227 vaapivideomemory: remove unused macros
6228 These macros are not used. Let us remove them.
6230 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6232 * gst/vaapi/gstvaapivideomemory.c:
6233 * gst/vaapi/gstvaapivideomemory.h:
6234 vaapivideomemory: rename video for allocation_info
6235 Since video_info stores the GstVideoInfo of the allocation caps,
6236 it is clear if we rename it as allocation_info, to distinguish it
6237 later from negotiation_info.
6239 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
6241 * gst/vaapi/gstvaapivideomemory.c:
6242 * gst/vaapi/gstvaapivideomemory.h:
6243 vaapivideomemory: add real GstVaapiDmaBufAllocator
6244 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
6245 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
6246 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
6247 from GstDmaBufAllocator.
6248 https://bugzilla.gnome.org/show_bug.cgi?id=755072
6249 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6251 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
6253 * gst/vaapi/gstvaapivideomemory.c:
6254 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
6255 Add a helper function to initialize the gst_debug_vaapivideomemory,
6256 to use it either by the GstVaapiVideoAllocatorClass or
6257 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
6258 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
6259 https://bugzilla.gnome.org/show_bug.cgi?id=755072
6261 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
6263 * gst/vaapi/gstvaapiencode.c:
6264 vaapiencode: release internal encoder at stop()
6265 As the internal encoder is created at start(), let's release it at
6266 stop() vmethod, to be consistent.
6267 gst_vaapiencode_destroy() is called since it also resets the input and
6268 output states, which is something that the base class does internally
6269 after calling stop() vmethod.
6270 https://bugzilla.gnome.org/show_bug.cgi?id=769266
6271 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6273 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
6276 Automatic update of common submodule
6277 From f49c55e to 39ac2f5
6279 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
6281 * gst/vaapi/gstvaapiencode.c:
6282 vaapiencode: call ensure_encoder() at start()
6283 Currently, specific encoder is created during set_format(). This might
6284 lead to race condition when creating profiles with multiple encoders.
6285 This patch moves ensure_encoder() call to start() vmethod to ensure
6286 avoiding the race condition.
6287 https://bugzilla.gnome.org/show_bug.cgi?id=773546
6289 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6291 * gst/vaapi/gstvaapidecodebin.c:
6292 vaapidecodebin: bring back dynamic configuration
6293 In commit ca0c3fd6 we remove the dynamic configuration if the bin
6294 because we assumed that the bin will be always static as it is
6296 Nonetheless we were wrong, because it is possible to request, with a
6297 property, to avoid the use of the post-processor.
6298 Since we want to add a way to disable the post-processor through
6299 environment variables, this remove feature is required again.
6300 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
6301 postprocessor inside of the vaapidecodebin is disabled, then
6302 vaapidecodebin is an alias of the old vaapidecode.
6303 https://bugzilla.gnome.org/show_bug.cgi?id=775041
6305 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6307 * gst/vaapi/gstvaapidecode.c:
6308 vaapidecode: implement negotiate() vmethod
6309 Instead of decorating the negotiate() method, let us override it,
6310 so the stream is locked while called.
6311 https://bugzilla.gnome.org/show_bug.cgi?id=775040
6313 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
6316 common: use https protocol for common submodule
6317 https://bugzilla.gnome.org/show_bug.cgi?id=775110
6319 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
6321 * gst-libs/gst/vaapi/Makefile.am:
6322 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
6323 In case libva-wayland has its headers not installed in default
6324 locations (like /usr/include), the build fails to include "wayland-client.h":
6325 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
6326 In file included from gstvaapidisplay_wayland.h:27:0,
6327 from gstvaapidisplay_egl.c:35:
6328 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
6329 #include <wayland-client.h>
6330 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
6331 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
6332 for libva-wayland.pc in configure and use this in other places as well. It is thus only
6333 correct and consequent, to do it also at this spot.
6334 https://bugzilla.gnome.org/show_bug.cgi?id=773946
6336 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6338 * gst/vaapi/gstvaapivideocontext.c:
6339 vaapivideocontext: log a message if no bus
6340 Raise a warning if there is no bus when the element tries to post a
6343 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6345 * gst/vaapi/gstvaapisink.c:
6346 vaapisink: create display at open()
6347 Instead of creating the VA display before setting the bus to the
6348 element, it is created when the element is opened.
6349 Basically, this commit is a revert of
6350 5e5d62cac79754ba60057fc2516135aad8d7de35
6351 That was done when the GStreamer's context sharing was not mature
6352 enough as now. There is no reason to keep this hack.
6354 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6356 * gst/vaapi/gstvaapidecode.c:
6357 vaapidecode: don't add video crop meta
6358 Since the differentiation of negotiation caps and allocation caps,
6359 there is no need to add a video crop meta with the negotiation caps.
6361 https://bugzilla.gnome.org/show_bug.cgi?id=773948
6363 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6365 * gst/vaapi/gstvaapivideobuffer.c:
6366 * gst/vaapi/gstvaapivideometa.c:
6367 * gst/vaapi/gstvaapivideometa.h:
6368 remove the video converter from vaapi buffer meta
6369 Since all the video converter were deprecated in gstreamer-1.2, we don't need
6370 to handle them anymore in the vaapi's buffer meta.
6371 This patch removes its usage and the buffer meta's API for that.
6372 https://bugzilla.gnome.org/show_bug.cgi?id=745728
6374 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6376 * gst/vaapi/gstvaapipluginbase.c:
6377 plugins: destroy source pad allocator and pool
6378 First, deactivate source pad pool when the out caps change, and if so,
6379 destroy texture map, the source pad allocator and pool only if the
6380 new caps are different from the ones already set.
6382 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6384 * gst/vaapi/gstvaapipluginbase.c:
6385 plugins: don't destroy sink pad allocator
6386 Don't destroy sink pad allocator at _set_caps() because it will be done at
6387 ensure_sinkpad_buffer_pool() if it is required.
6389 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6391 * gst/vaapi/gstvaapipluginbase.c:
6392 plugins: first validate the out caps
6393 When calling _set_caps() first validate the out caps before doing
6396 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6398 * gst/vaapi/gstvaapidecode.c:
6399 vaapidecode: negotiate after destroying allocator
6400 This is related with bug 758907 when no vaapipostproc is used (no
6401 vaapidecodebin). In order to negotiate downstream we need to destroy
6402 the source pad allocator, otherwise the same allocated buffers are
6403 used, failing the mapping.
6405 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6407 * gst/vaapi/gstvaapivideomemory.c:
6408 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
6409 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
6410 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
6412 https://bugzilla.gnome.org/show_bug.cgi?id=774782
6414 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6416 * gst/vaapi/gstvaapipluginbase.c:
6417 plugins: update the src pad allocator video info
6418 Update the size, stride and offset of the source pad allocator video
6419 info, so the pool could set the correct GstVideoMeta
6420 https://bugzilla.gnome.org/show_bug.cgi?id=774782
6422 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6424 * gst/vaapi/gstvaapivideomemory.c:
6425 vaapivideomemory: add missing documentation
6426 https://bugzilla.gnome.org/show_bug.cgi?id=774782
6428 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6430 * gst/vaapi/gstvaapipluginbase.c:
6431 plugins: use early return without goto
6432 https://bugzilla.gnome.org/show_bug.cgi?id=774782
6434 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6436 * gst/vaapi/gstvaapipluginbase.c:
6437 * gst/vaapi/gstvaapivideomemory.c:
6438 * gst/vaapi/gstvaapivideomemory.h:
6439 plugins: add allocator to allocation query
6440 This patch adds the created allocator to the allocation query either
6441 in decide_allocation() and propose_allocation() vmehtods.
6442 With it, there's no need to set the modified allocator's size in the
6444 https://bugzilla.gnome.org/show_bug.cgi?id=774782
6446 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
6448 * gst/vaapi/gstvaapivideobufferpool.c:
6449 vaapivideobufferpool: set correct buffer size
6450 We should set the correct buffer size when we are configuring the pool,
6451 otherwise the buffer will be discarded when it returns to the pool.
6452 Indeed when the ref-count of a buffer reaches zero, its pool will queue
6453 it back (and ref it) if, and only if, the buffer size matches the
6454 configured buffer size on the pool.
6455 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
6456 https://bugzilla.gnome.org/show_bug.cgi?id=774782
6458 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6460 * gst/vaapi/gstvaapivideomemory.c:
6461 vaapivideomemory: check for memory allocator
6462 When calling gst_vaapi_video_memory_copy() the allocator of the memory
6463 to copy should be allocated by the vaapi allocator.
6464 This patch does this verification.
6466 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6468 * gst/vaapi/gstvaapivideomemory.c:
6469 vaapivideomemory: code style fixes
6470 A cosmetic commit for enhance readability of the casts and method
6473 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6475 * gst/vaapi/gstvaapivideomemory.c:
6476 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
6477 Instead of having a gst_vaapi_video_memory_free() that is only going to
6478 be called by gst_vaapi_video_allocator_free(), let's just remove the first
6479 and merged into the second.
6481 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6483 * gst/vaapi/gstvaapivideomemory.c:
6484 vaapivideomemory: avoid virtual methods casting
6485 Use the expected virtual method signatures for readability.
6487 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6489 * gst/vaapi/gstvaapivideomemory.c:
6490 vaapivideomemory: remove unimplemented methods
6491 Remove unimplemented method for allocator mem_share() and mem_is_span().
6493 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6495 * gst/vaapi/gstvaapivideomemory.c:
6496 vaapivideomemory: fail if frame map can't get plane
6497 If map() vmethod in GstVideMeta cannot get the plane data, return false,
6498 thus the caller will not try to read invalid memory.
6499 https://bugzilla.gnome.org/show_bug.cgi?id=774213
6501 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6503 * gst/vaapi/gstvaapivideomemory.c:
6504 * gst/vaapi/gstvaapivideomemory.h:
6505 vaapivideomemory: lock map and unmap operations
6506 In order to avoid race condition when two threads call map/unmap the same
6507 VA surface, this patch mutex these operations.
6508 https://bugzilla.gnome.org/show_bug.cgi?id=774213
6510 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6512 * gst/vaapi/gstvaapivideomemory.c:
6513 vaapivideomemory: refactor vaapi memory unmapping
6514 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
6515 gst_vaapi_video_memory_unmap() when unmapping.
6516 This patch refactors both methods adding the common function
6517 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
6519 Additionally, only when mapping flag has the WRITE bit, it set the image as
6520 current, which was done in gst_video_meta_map_vaapi_memory() but no in
6521 gst_vaapi_video_memory_map().
6522 In order to make this, the mapping flags were required, so instead of
6523 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
6524 https://bugzilla.gnome.org/show_bug.cgi?id=774213
6526 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6528 * gst/vaapi/gstvaapivideomemory.c:
6529 vaapivideomemory: refactor vaapi memory mapping
6530 There were duplicated code in gst_video_meta_map_vaapi_memory() and
6531 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
6532 This patch refactors both methods adding the common function
6534 Additionally, only when flag has the READ bit it calls
6535 ensure_images_is_current(), which was done in
6536 gst_video_meta_map_vaapi_memory() but no in
6537 gst_vaapi_video_memory_map().
6538 https://bugzilla.gnome.org/show_bug.cgi?id=772151
6540 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6542 * gst/vaapi/gstvaapidecode.c:
6543 vaapidecode: unref allowed_sinkpad_caps at close()
6544 The variable member allowed_sinkpad_caps is constructed querying the
6545 current VA display. Bearing that in mind, the variable shall be freed
6546 when the VA display changes or is removed.
6547 This patch moves the freeing of allowed_sinkpad_caps to close(), when
6548 the VA display is freed.
6550 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
6552 * gst/vaapi/gstvaapisink.c:
6553 vaapisink: finish event thread at stop()
6554 The thread that handles window's events should be finished during
6555 pipeline's shutdown, otherwise it will remain alive during pipeline
6556 re-activation, leading to unexpected problems.
6557 This patch fixes failures of intensive_state_change scenario of
6559 https://bugzilla.gnome.org/show_bug.cgi?id=774241
6561 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6563 * gst/vaapi/gstvaapipostproc.c:
6564 vaapipostproc: enhance debug message
6565 "gst_pad_push" is not a good description of the event.
6567 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
6569 * gst/vaapi/gstvaapipostproc.c:
6570 postproc: honor gst_pad_push() return value
6571 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
6572 deadlock during seek.
6573 This patch returns the same error of gst_pad_push() and log out the
6575 https://bugzilla.gnome.org/show_bug.cgi?id=774030
6577 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6579 * gst/vaapi/gstvaapidecode.c:
6580 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
6581 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
6582 compiled with out EGL/GLX support: it shall not support
6583 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
6584 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
6585 allowed src caps for vaapedecode if EGL/GLX.
6587 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6589 * gst/vaapi/gstvaapivideomemory.c:
6590 vaapivideomemory: increment map counter only if succeeded
6591 Previously the frame map counter increased independently if the map succeeded
6592 or not. This leaded to critical messages and crashes if the frame was unable
6593 to be mapped, but the counter increased.
6594 This patch increases the map counter only if the map operation occurred.
6595 https://bugzilla.gnome.org/show_bug.cgi?id=773939
6597 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6599 * gst/vaapi/gstvaapipluginbase.c:
6600 plugins: set negotiation caps in src allocator
6601 When the allocator is created, it stores the allocation caps. But sometimes
6602 the "allocation caps" may be different from the "negotiation caps".
6603 In this case, the allocator should store the negotiation caps since they
6604 are the ones used for frame mapping with GstVideoMeta.
6605 When vaapispostproc is used, this is not a problem since the element is assume
6606 to resize. But when using a vaapi decoder only, with a software renderer, it
6608 https://bugzilla.gnome.org/show_bug.cgi?id=773323
6610 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6612 * gst/vaapi/gstvaapidecode.c:
6613 * gst/vaapi/gstvaapidecode.h:
6614 vaapidecode: generate source pad caps
6615 Just as vaapipostproc, VA decoder's context can be queried to get the possible
6616 raw formats, so, the src caps can negotiate the exact caps that the context
6619 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6621 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6622 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6623 libs: decoder: add _get_surface_formats()
6624 This function exposes the available formats of the surfaces in the the current
6625 context to the plugins.
6627 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6629 * gst-libs/gst/vaapi/gstvaapicontext.c:
6630 * gst-libs/gst/vaapi/gstvaapicontext.h:
6631 libs: context: ensure context formats
6632 This patch ensures to get the formats, as filter does, available in the
6633 decoder / encoder context.
6634 The context fills up the array as soon it is created, otherwise the pipeline
6635 could get stalled (perhaps this is a bug in my HSW backend).
6636 https://bugzilla.gnome.org/show_bug.cgi?id=752958
6638 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6640 * gst-libs/gst/vaapi/gstvaapifilter.c:
6641 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
6642 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
6643 libs: move get_surface_formats to utils_core
6644 The query of all the supported formats for a VA config were only used by the
6645 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
6646 negotiate a suitable raw format with downstream, we need to query these
6647 formats against the decoder's config.
6648 This patch is the first step: moves the code in filter's ensure_image() to a
6649 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
6650 shared later by the decoder.
6651 https://bugzilla.gnome.org/show_bug.cgi?id=752958
6653 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6655 * gst/vaapi/gstvaapipluginbase.c:
6656 plugins: remove set_sinkpad_dmabuf_allocator()
6657 Since when the sink pad allocator is created, it is decided if the required
6658 one is vaapi allocator or dmabuf allocator, there is no need to force its set
6661 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6663 * gst/vaapi/gstvaapipluginbase.c:
6664 plugins: ensure display when getting raw caps
6665 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
6666 meanwhile it is transforming caps. The problem is that stop() calls
6667 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
6668 the va display is used in tranform_caps() when it is extracting the possible
6669 format conversions. This display disappearing generates warning messages.
6670 This patch holds a local reference of va display at ensure_allowed_raw_caps()
6671 hence it doesn't go away meanwhile it is used, even if the
6672 gst_vaapi_plugin_base_close() is called in other thread.
6673 https://bugzilla.gnome.org/show_bug.cgi?id=773593
6675 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6677 * gst/vaapi/gstvaapiencode_h264.c:
6678 * gst/vaapi/gstvaapiencode_h265.c:
6679 plugins: fix code style for errors
6681 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6683 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6684 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
6685 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6686 * gst-libs/gst/vaapi/gstvaapicontext.c:
6687 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
6688 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6689 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
6690 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6691 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6692 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6693 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6694 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6695 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6696 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6697 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6698 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
6699 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6700 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6701 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6702 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
6703 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
6704 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
6705 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
6706 * gst-libs/gst/vaapi/gstvaapifilter.c:
6707 * gst-libs/gst/vaapi/gstvaapiimage.c:
6708 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
6709 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
6710 * gst-libs/gst/vaapi/gstvaapipixmap.c:
6711 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6712 * gst-libs/gst/vaapi/gstvaapisurface.c:
6713 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
6714 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6715 * gst-libs/gst/vaapi/gstvaapitexture.c:
6716 * gst-libs/gst/vaapi/gstvaapiutils.c:
6717 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
6718 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6719 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6720 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6721 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6722 libs: fix code style for errors
6724 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6726 * gst/vaapi/gstvaapipluginbase.c:
6727 * gst/vaapi/gstvaapivideocontext.c:
6728 plugins: update GstGL deprecated symbol
6729 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
6731 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6733 * gst/vaapi/gstvaapipluginbase.c:
6734 plugins: direct render when raw video
6735 Enable the direct rendering with linear surfaces if the negotiated src caps
6736 are video/x-raw without features.
6737 Pass also the caps, since they are needed to know the requested caps features.
6739 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6741 * gst/vaapi/gstvaapipluginbase.c:
6742 plugins: move src allocator error to instantiator
6743 Just as we did in ensure_sinkpad_allocator(), let's move the error message
6744 into the ensure_srcpad_allocator() from the caller,
6745 gst_vaapi_plugin_base_decide_allocation()
6747 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6749 * gst/vaapi/gstvaapipluginbase.c:
6750 plugins: enable direct upload if raw video
6751 Enable the direct upload with linear surfaces if the negotiated sink caps are
6752 video/x-raw without features.
6754 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6756 * gst/vaapi/gstvaapipluginutil.c:
6757 * gst/vaapi/gstvaapipluginutil.h:
6758 pluginutil: add gst_caps_is_video_raw()
6760 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6762 * gst/vaapi/gstvaapipluginbase.c:
6763 plugins: receive caps in ensure_sinkpad_allocator()
6764 Instead of receiving the GstVideoInfo structure as parameter, get the original
6765 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
6766 which allocator instantiate.
6768 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6770 * gst/vaapi/gstvaapivideomemory.c:
6771 vaapivideomemory: destroy derived image at unmap
6772 If the allocator was configured to use direct upload or rendering, the
6773 generated derived image created at mapping needs to be destroyed after
6774 unmapping, because, in order to process the surface, it should not be marked
6775 as "busy" by the driver.
6777 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6779 * gst/vaapi/gstvaapivideomemory.c:
6780 vaapivideomemory: enhance logs for direct modes
6781 Print, conditionally, only the enabled direct mode.
6783 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6785 * gst/vaapi/gstvaapivideomemory.c:
6786 * gst/vaapi/gstvaapivideomemory.h:
6787 vaapivideomemory: add direct upload flag
6788 Adds the direct-upload flag in the GstVaapiVideoAllocator and
6789 GstVaapiVideoMemory.
6790 It still doesn't apply any functional change.
6792 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6794 * gst/vaapi/gstvaapipluginbase.c:
6795 * gst/vaapi/gstvaapivideomemory.c:
6796 * gst/vaapi/gstvaapivideomemory.h:
6797 vaapivideomemory: set direct rendering at run-time
6798 The way to experiment with the direct rendering is through and internal
6799 compiler pre-processor flag.
6800 The current change set enables a way to specified at run-time, as a flag
6801 passed to the allocator at instanciation time.
6803 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6805 * gst/vaapi/gstvaapivideomemory.c:
6806 vaapivideomemory: log in perf category when copy
6807 Log in performance category when the derive image handling fails, falling back
6810 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6812 * gst/vaapi/gstvaapivideomemory.c:
6813 vaapivideomemory: error log is derive image fails
6814 Instead of a silently failure of the derive image, this patch log an error
6815 message according to the failure.
6817 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6819 * gst/vaapi/gstvaapivideomemory.c:
6820 vaapivideomemory: store surface alloc flags in qdata
6821 For sake of consistency, we should add the requested surface allocation flags
6822 to the object's qdata structure.
6824 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6826 * gst/vaapi/gstvaapivideomemory.c:
6827 vaapivideomemory: category init when object define
6828 Move the Gstreamer debug category initialize to the GObject definition.
6830 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6832 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
6833 libs: vaapitexturemap: trivial code-style fix
6835 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6837 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6838 libs: display: egl: avoid recreate native display
6839 Instead of passing the native descriptor of the display, just pass the received
6840 GstVaapiDisplay and reuse it.
6842 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6844 * gst/vaapi/gstvaapipluginbase.c:
6845 plugins: log the GstVaapiDisplay name
6846 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
6847 name. Log it instead of the memory address.
6849 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
6851 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6852 libs: window: egl: pass native va display
6853 When creating a GstVaapiWindowEGL, it also creates native window by its own
6854 native display. It should pass the native display, either X11 or Wayland.
6855 https://bugzilla.gnome.org/show_bug.cgi?id=768266
6857 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
6859 * gst-libs/gst/vaapi/gstvaapidebug.h:
6860 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6861 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6862 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6863 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
6864 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
6865 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6866 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
6867 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
6868 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
6869 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
6870 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
6871 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6872 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6873 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
6874 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
6875 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6876 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
6877 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
6878 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
6879 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
6880 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
6881 * gst/vaapi/gstvaapivideocontext.c:
6882 libs: display: GstVaapiDisplay as GstObject descendant
6883 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
6884 instead of GstVaapiMiniObject. In this way we can use all the available
6885 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
6886 In addition, a new debug category for GstVaapiDisplay is created to make it
6887 easier to trace debug messages. It is named "vaapidisplay" and it transverse
6888 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
6889 This patch is a step forward to expose GstVaapiDisplay for users in a future
6891 https://bugzilla.gnome.org/show_bug.cgi?id=768266
6892 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6894 === release 1.11.0 ===
6896 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
6901 === release 1.10.0 ===
6903 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
6908 * gstreamer-vaapi.doap:
6911 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6913 * gst/vaapi/gstvaapidecodebin.c:
6914 vaapidecodebin: resurrect disable-vpp property
6915 https://bugzilla.gnome.org/show_bug.cgi?id=773589
6917 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6919 * gst/vaapi/gstvaapidecodebin.c:
6920 vaapidecodebin: name the internal queue
6921 https://bugzilla.gnome.org/show_bug.cgi?id=773589
6923 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6925 * gst/vaapi/gstvaapidecodebin.c:
6926 * gst/vaapi/gstvaapidecodebin.h:
6927 vaapidecodebin: remove unused variables
6928 Since vaapipostproc is only registered if the driver supports it, all the
6929 support for dynamic loading were removed. Though some leftovers remained.
6930 https://bugzilla.gnome.org/show_bug.cgi?id=773589
6932 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6934 * docs/plugins/Makefile.am:
6935 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
6936 * docs/plugins/running.xml:
6937 docs: document environment variables
6938 https://bugzilla.gnome.org/show_bug.cgi?id=773544
6940 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6942 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
6943 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
6944 * gst/vaapi/Makefile.am:
6945 * gst/vaapi/gstvaapidecode.c:
6946 * gst/vaapi/gstvaapidecodebin.c:
6947 * gst/vaapi/gstvaapidecodedoc.c:
6948 docs: replace vaapidecode with each codec
6949 In the spirit of the codec split, this patch removes the documentation of
6950 vaapidecode and adds a page per each possible decoder.
6951 Nonetheless, only those available in the compilation system are going to be
6952 instrospected, because the rest are not registered.
6954 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6956 * gst/vaapi/gstvaapipluginutil.c:
6957 * gst/vaapi/gstvaapivideobuffer.c:
6958 * gst/vaapi/gstvaapivideometa.c:
6959 docs: add missing long descriptions
6961 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6963 * gst/vaapi/gstvaapipostproc.c:
6964 vaapipostproc: use GST_*_OBJECT when possible
6965 Since we can have several vaapipostproc operating in a pipeline, it is useful
6966 to know which one is generating the logging message.
6967 https://bugzilla.gnome.org/show_bug.cgi?id=773497
6969 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6971 * gst/vaapi/gstvaapidecode.c:
6972 * gst/vaapi/gstvaapidecode.h:
6973 vaapidecode: rename member to allowed_sinkpad_caps
6974 vaapidecode has a member named allowed_caps, but this name is not enough
6975 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
6976 No functional changes were included.
6977 https://bugzilla.gnome.org/show_bug.cgi?id=773497
6979 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6981 * gst/vaapi/gstvaapiencode_h264.c:
6982 * gst/vaapi/gstvaapiencode_h265.c:
6983 * gst/vaapi/gstvaapisink.c:
6984 * gst/vaapi/gstvaapivideomemory.c:
6985 * gst/vaapi/gstvaapivideometa.c:
6986 * gst/vaapi/gstvaapivideometa_texture.c:
6987 plugins: fix code style for errors
6988 https://bugzilla.gnome.org/show_bug.cgi?id=773497
6990 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6992 * gst/vaapi/gstvaapivideomemory.c:
6993 vaapivideomemory: comment style
6994 https://bugzilla.gnome.org/show_bug.cgi?id=773497
6996 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
6998 * gst/vaapi/gstvaapivideomemory.c:
6999 * gst/vaapi/gstvaapivideomemory.h:
7000 vaapivideomemory: rename input parameter
7001 In order to clarify the use of flag as input parameter, it is renamed to
7002 surface_alloc_flag, since it is used when creating a VA surface with certain
7004 https://bugzilla.gnome.org/show_bug.cgi?id=773497
7006 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7008 * gst/vaapi/gstvaapidecode.c:
7009 vaapidecode: rename element description
7010 So encoders and decoders have similar descriptions.
7011 https://bugzilla.gnome.org/show_bug.cgi?id=773497
7013 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7015 * gst/vaapi/gstvaapiencode_h264.c:
7016 * gst/vaapi/gstvaapiencode_h265.c:
7017 vaapiencode: h264, h265: rename codec name
7018 So encoder and decoders have the same codec name.
7019 https://bugzilla.gnome.org/show_bug.cgi?id=773497
7021 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7023 * gst/vaapi/gstvaapipluginbase.c:
7024 plugins: simplify code
7025 Merge two lines of variable declarations.
7026 https://bugzilla.gnome.org/show_bug.cgi?id=773497
7028 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
7030 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7031 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
7032 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
7033 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
7034 libs: minor correction for logical consistency
7035 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
7036 use its methods, even though it doesn't change functionality.
7037 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
7038 GstVaapiObject, hence its methods shall be used.
7039 https://bugzilla.gnome.org/show_bug.cgi?id=772554
7041 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
7043 * gst/vaapi/gstvaapivideomemory.c:
7044 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
7045 In short GstFdMemory is configured to call close when using
7047 https://bugzilla.gnome.org/show_bug.cgi?id=755072
7049 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7052 * gst-libs/gst/vaapi/Makefile.am:
7053 build: clean up the dlopen usage
7055 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7057 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7058 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7059 encoder: h264,h265: fix regression in offset count
7060 In commit dc35dafa a bug was introduced because I assumed that
7061 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
7062 https://bugzilla.gnome.org/show_bug.cgi?id=772259
7064 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7069 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7071 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7072 libs: display: egl: remove unused header include
7073 The header gmodule.h is not used since the library dynamic loading for EGL
7074 display was removed.
7075 https://bugzilla.gnome.org/show_bug.cgi?id=772599
7077 === release 1.9.90 ===
7079 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
7085 * gstreamer-vaapi.doap:
7088 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
7090 * gst/vaapi/gstvaapidecode.c:
7091 * gst/vaapi/gstvaapidecodebin.c:
7092 * gst/vaapi/gstvaapiencode_h264.c:
7093 * gst/vaapi/gstvaapiencode_h265.c:
7094 * gst/vaapi/gstvaapiencode_jpeg.c:
7095 * gst/vaapi/gstvaapiencode_mpeg2.c:
7096 * gst/vaapi/gstvaapiencode_vp8.c:
7097 * gst/vaapi/gstvaapipostproc.c:
7098 * gst/vaapi/gstvaapisink.c:
7099 vaapi: use new gst_element_class_add_static_pad_template()
7100 https://bugzilla.gnome.org/show_bug.cgi?id=763083
7101 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7103 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
7105 * gst/vaapi/gstvaapipluginbase.c:
7106 plugins: reset textures at negotiation/shutdown
7107 When caps reconfiguration is called, the new downstream frame size might be
7108 different. Thus, if the downstream caps change,the display's texture map is
7110 In addition, during pipeline shutdown, textures in texture map have to be
7111 released, since each one have a reference to the GstVaapiDisplay object, which
7112 is a dangerous circular reference.
7113 https://bugzilla.gnome.org/show_bug.cgi?id=769293
7114 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7116 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
7118 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7119 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7120 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7121 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
7122 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
7123 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
7124 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7125 * gst/vaapi/gstvaapivideometa_texture.c:
7126 libs: display{egl,glx}: cache GstVaapiTextures
7127 instances when created and reuse
7128 This patch improves performance when glimagesink uploads a GL texture.
7129 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
7130 instance of GstVaapiTextureMap, so our internal texture structure can be found
7131 by matching the GL texture id for each frame upload process, avoiding the
7132 internal texture structure creation and its following destruction.
7133 https://bugzilla.gnome.org/show_bug.cgi?id=769293
7134 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7136 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
7138 * gst-libs/gst/vaapi/Makefile.am:
7139 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
7140 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
7141 libs: vaapitexturemap: implement GstVaapiTextureMap
7142 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
7143 reused. Internally it is a hash table.
7144 Note that it is GstObject based rather than GstVaapiObject, as part of the future
7145 converstion to GstObject of most of the code.
7146 https://bugzilla.gnome.org/show_bug.cgi?id=769293
7147 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7149 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7151 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
7152 encoder: vp8: Increase the allocation size for coded buffer
7153 We are not getting enough compression for some streams and
7154 encoded frame end up with more size than allocated.
7155 Assuming a compression ratio of 4, which should be good enough
7156 for holding the frames.
7157 https://bugzilla.gnome.org/show_bug.cgi?id=771528
7159 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7161 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
7162 encoder: vp9: Fix refresh frame flag setting
7163 While doing the mode-1 referece picture selection,
7164 the circular buffer logic was not correctly setting the
7165 refresh frame flags as per VP9 spec.
7166 Make sure refresh_flag[0] get updated correclty after
7167 each cycle of GST_VP9_REF_FRAMES.
7168 https://bugzilla.gnome.org/show_bug.cgi?id=771507
7170 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7172 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7173 vaapidecode: codec_data minimal size is 7
7174 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
7175 stream, not in the codec_data, so the size of codec_data might be 7.
7176 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
7177 https://bugzilla.gnome.org/show_bug.cgi?id=771441
7179 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7181 * gst/vaapi/gstvaapidecode.c:
7182 vaapidecode: reset decoder hard when set_format()
7183 set_format() is called by upstream when the stream capabilites has changed.
7184 Before, if the new stream is compatible with the old one the VA decoder was
7185 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
7186 when the upstreamer parsers gets more details of the stream, such as the
7187 framerate. Hence, when the src caps are negotiates, the further sink caps
7188 updates are ignored.
7189 This patch forces the VA decoder destroying and recreation when set_format()
7191 https://bugzilla.gnome.org/show_bug.cgi?id=770921
7193 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
7196 configure: Depend on gstreamer 1.9.2.1
7198 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7200 * gst/vaapi/gstvaapivideomemory.c:
7201 Revert "vaapivideomemory: load VA Image when mapping to write"
7202 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
7204 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
7207 Automatic update of common submodule
7208 From b18d820 to f980fd9
7210 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
7213 Automatic update of common submodule
7214 From f49c55e to b18d820
7216 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
7218 * gst/vaapi/gstvaapipluginbase.c:
7219 plugins: set allocator's image size to sinkpad bufferpool
7220 Otherwise the buffer is always ditched by the bufferpool, losing performance.
7221 https://bugzilla.gnome.org/show_bug.cgi?id=771035
7223 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7225 * gst-libs/gst/vaapi/gstvaapisurface.c:
7226 libs: surface: ensure composite overlay is not bigger
7227 Ensure the composition overlay rectangle (subtitles) is not bigger than
7228 the surface where it is going to be composited and rendered.
7229 https://bugzilla.gnome.org/show_bug.cgi?id=766978
7231 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
7233 * gst/vaapi/gstvaapivideomemory.c:
7234 vaapivideomemory: load VA Image when mapping to write
7235 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
7236 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
7238 https://bugzilla.gnome.org/show_bug.cgi?id=766978
7240 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7242 * gst/vaapi/gstvaapidecode.c:
7243 vaapidecode: merge vc1 and wmv3 elements
7244 This patch merges vaapivc1dec and vaapiwmv3dec into a single
7245 vaapivc1dec. Also, removed the WMVA format, since it is not
7247 https://bugzilla.gnome.org/show_bug.cgi?id=734093
7249 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7251 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
7252 decoder: vc1: fails only on advanced profile
7253 In commit 2eb4394 the frame coding mode was verified for progressive
7254 regardless the profile. But the FCM is only valid in the advanced
7255 profile. This patch checks for the advanced profile before verifying FCM for
7257 https://bugzilla.gnome.org/show_bug.cgi?id=769250
7259 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7261 * gst/vaapi/gstvaapi.c:
7262 vaapi: DISPLAY envvar as dependency
7263 In a multiple video cards system, a X11 environment may have different VA
7264 capabilities. This patch tracks the DISPLAY environment variable to
7265 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
7266 https://bugzilla.gnome.org/show_bug.cgi?id=770357
7268 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
7270 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
7271 decoder: vc1: Fail only on actual interlaced frames
7272 In the earlier patch:
7273 f31d9f3 decoder: vc1: Print error on interlaced content
7274 Decoding would error out if the interlace flag was set in the
7275 sequence bdu. This isn't quite right because a video can have this
7276 flag set and yet not have any interlaced pictures.
7277 Here instead we error out when either parsing a field bdu or
7278 decoding a frame bdu which has fcm set to anything other than
7280 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
7281 https://bugzilla.gnome.org/show_bug.cgi?id=769250
7283 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
7288 === release 1.9.2 ===
7290 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
7295 * gstreamer-vaapi.doap:
7298 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
7300 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
7301 decoder: vc1: Print error on interlaced content
7302 Interlaced video is as yet unsupported in the vc1 element. Print
7303 an error to make that more obvious.
7304 https://bugzilla.gnome.org/show_bug.cgi?id=769250
7306 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7308 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7309 encoder: h264: fix C90 mixed declarations and code
7310 Commit 4259d1a introduced this compilation error. This patch fixes it.
7312 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7314 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7315 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7316 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7317 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
7318 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
7319 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
7320 to avoid overflows, underflows and loss of precision.
7321 https://bugzilla.gnome.org/show_bug.cgi?id=768458
7323 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7325 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7326 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7327 vaapiencode: h264,h265: validate fps numerator
7328 Validate that fps numerator is non-zero so it can be used to calculate
7329 the duration of the B frame.
7330 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
7331 order to aviod overflows, underflows and loss of precision.
7332 https://bugzilla.gnome.org/show_bug.cgi?id=768458
7334 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
7336 * gst/vaapi/gstvaapi.c:
7337 encoders: demote to RANK_NONE since not fit for autoplugging yet
7338 Encoders claim to support a whole bunch of input formats but then
7339 just error out if the format is not actually supported, even if
7340 there's a converter in front. This means they're not fit for
7341 autoplugging in encodebin or camerabin yet and therefore should
7342 not have a rank. People can still use them in custom pipelines.
7343 https://bugzilla.gnome.org/show_bug.cgi?id=769266
7345 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7347 * gst/vaapi/gstvaapipluginbase.c:
7348 plugins: check dmabuf-import for sink pad allocator
7349 Check earlier if upstream video source has activated the dmabuf-import
7350 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
7353 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7355 * gst/vaapi/gstvaapipluginbase.c:
7356 plugins: reset allocators if video info changed
7357 If the frame size or format, change, the allocators are reset, so a new ones
7358 can be created with the new video info.
7360 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7362 * gst/vaapi/gstvaapipluginbase.c:
7363 plugins: remove sink pad allocator if caps change
7364 If the negotiated sinkpad caps change, destroy the assignated allocator,
7365 because it is not valid anymore.
7367 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7369 * gst/vaapi/gstvaapipluginutil.c:
7370 * gst/vaapi/gstvaapipluginutil.h:
7371 pluginutil: const params to gst_video_info_changed()
7372 Since they are not modified, we should mark them as const.
7374 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7376 * gst/vaapi/gstvaapipluginbase.c:
7377 * gst/vaapi/gstvaapivideomemory.c:
7378 * gst/vaapi/gstvaapivideomemory.h:
7379 gstvaapivideomemory: allocator's image size getter
7380 Add the method gst_allocator_get_vaapi_image_size() for the
7381 GstVaapiVideoAllocator, which gets the size of the allocated images with the
7383 This method replaces the direct call to the allocator's image info when the
7386 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
7388 * gst/vaapi/gstvaapipluginbase.c:
7389 plugins: update buffer pool size with new allocator's image size
7390 Depends on media, video size is sometimes updated with new allocator.
7391 It leads to dismatch between bufferpool's set size and real allocated buffer size.
7392 In this case, it causes every buffer is freed during release in bufferpool,
7393 which should be reused. This affects performance.
7394 https://bugzilla.gnome.org/show_bug.cgi?id=769248
7396 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7399 configure: remove gmodule-2.0 EGL dependency
7400 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
7401 thus the dependency to gmodule-2.0 is not mandatory anymore.
7403 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
7406 configure: Fix non-fatal PKG_CHECK_MODULES invocations
7407 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
7408 the package is missing, but action-if-not-found was given as an empty
7409 string which still causes the default action to run, which halts
7411 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
7412 https://bugzilla.gnome.org/show_bug.cgi?id=769237
7414 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7416 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7417 libs: egl: remove dynamic library loading code
7418 Since the upstream of gstreamer-vaapi, the library is not a public shared
7419 object anymore. But the EGL support depended on this dynamic library, so the
7420 EGL support was broken.
7421 This patch removes the dynamic library loading code and instantiates the
7422 EGL display using either X11 or Wayland if available.
7423 https://bugzilla.gnome.org/show_bug.cgi?id=767203
7425 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7427 * gst/vaapi/gstvaapi.c:
7428 * gst/vaapi/gstvaapidecode.c:
7429 * gst/vaapi/gstvaapidecode.h:
7430 vaapidecode: register only the available decoders
7431 In order to register only the available decoders, this patch queries the
7432 created test VA display, which uses the currently used back-end (X11, Wayland,
7433 DRM, …) on the used display device.
7434 https://bugzilla.gnome.org/show_bug.cgi?id=724352
7436 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7438 * gst/vaapi/gstvaapi.c:
7439 * gst/vaapi/gstvaapipluginutil.c:
7440 * gst/vaapi/gstvaapipluginutil.h:
7441 vaapi: register only the available encoders
7442 In order to register only the available encoders, this patch queries the
7443 created test VA display, which uses the currently used back-end (X11,
7444 Wayland, DRM, …) on the used display device.
7445 https://bugzilla.gnome.org/show_bug.cgi?id=724352
7447 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7449 * gst/vaapi/gstvaapidecode.c:
7450 * gst/vaapi/gstvaapidecodebin.c:
7451 vaapidecode: split all the codecs
7452 Split the vaapidecode to all the supported codecs with the format
7454 vaapidecode is stil registered as a GObject type, but not as a
7455 GStreamer feature, so it can be used internally by vaapidecodebin without
7456 changing its code too much.
7457 https://bugzilla.gnome.org/show_bug.cgi?id=734093
7459 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7461 * gst/vaapi/gstvaapidecodebin.c:
7462 vaapidecodebin: simplify the code
7463 Since the elements dependant of the VA video processor are now only registered
7464 if it is available, vaapidecodebin code can be simplified a lot, removing all
7465 the code required to check if the VA video processor was available.
7466 https://bugzilla.gnome.org/show_bug.cgi?id=768899
7468 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7470 * gst/vaapi/gstvaapidecode.c:
7471 vaapidecode: delay the GstVaapiDisplay instantiating
7472 Delay the GstVaapiDisplay instantiating until when changing the state from
7473 READY to PAUSE. In this way the element has more chances to find an already
7474 created GstVaapiDisplay, or a GL context, in the pipeline.
7475 https://bugzilla.gnome.org/show_bug.cgi?id=766206
7477 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7479 * gst/vaapi/gstvaapipluginutil.c:
7480 pluginutil: set GLX display type
7481 The function gst_vaapi_create_display_from_gl_context() cretes a
7482 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
7483 when the GL platform was GLX, but a plain X11 VA display.
7484 This patch fixes that, by querying the GL platform earlier.
7485 https://bugzilla.gnome.org/show_bug.cgi?id=766206
7487 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7489 * gst/vaapi/gstvaapipluginbase.c:
7490 * gst/vaapi/gstvaapivideocontext.c:
7491 * gst/vaapi/gstvaapivideocontext.h:
7492 plugins: add gst_vaapi_plugin_base_find_gl_context()
7493 Using the GstContext mechanism, it is possible to find if the pipeline
7494 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
7495 meta. This is interesting because we could negotiate system memory caps
7496 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
7497 https://bugzilla.gnome.org/show_bug.cgi?id=766206
7499 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7501 * gst/vaapi/gstvaapipluginbase.c:
7502 * gst/vaapi/gstvaapipluginbase.h:
7503 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
7504 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
7507 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7509 * gst/vaapi/gstvaapipluginbase.h:
7510 plugins: remove common change_state() vmethod
7511 Remove the common change_state() vmethod for all the plugins, since no one is
7514 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7516 * gst/vaapi/gstvaapidecode.c:
7517 vaapidecode: remove change_state() vmethod
7518 Since the driver checkup is done at registering, there is no need to do it
7519 when changing the element state from NULL to READY. This patch remove this
7520 vmethod from vaapidecode.
7522 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7524 * gst/vaapi/gstvaapi.c:
7525 vaapi: register vaapipostproc only if supported
7526 Query the GstVaapiDisplay to know if the driver supports video
7527 postprocessing. If does, then register vaapipostproc and vaapidecodebin
7529 This patch will simplify the design of vaapidecodebin.
7530 https://bugzilla.gnome.org/show_bug.cgi?id=724352
7532 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7534 * gst/vaapi/gstvaapi.c:
7535 vaapi: don't register if VA driver is unsupported
7536 Using the test VA display, the driver name is queried, and if it is not
7537 white-listed, the plugin rejects to register any element.
7538 https://bugzilla.gnome.org/show_bug.cgi?id=724352
7540 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7542 * gst/vaapi/gstvaapipluginbase.c:
7543 * gst/vaapi/gstvaapipluginutil.c:
7544 * gst/vaapi/gstvaapipluginutil.h:
7545 plugins: add gst_vaapi_driver_is_whitelisted()
7546 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
7547 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
7548 when registering the plugin's feature set with the test VA display.
7549 https://bugzilla.gnome.org/show_bug.cgi?id=724352
7551 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7553 * gst/vaapi/gstvaapi.c:
7554 vaapi: instantiate a VA display when registering
7555 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
7556 features, if it fails, no gstreamer-vaapi element is registering.
7557 The purpose of this patch is to avoid a situation where the user has
7558 gstreamer-vaapi installed but their VA-API setup is not functional, which may
7559 lead to unexpected behavior.
7560 https://bugzilla.gnome.org/show_bug.cgi?id=724352
7562 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7565 * gst/vaapi/gstvaapi.c:
7566 vaapi: declare external dependencies
7567 There are two main external dependencies that define the feature set of this
7568 plugin: a) the kernel and b) the VA driver
7569 This patch tracks both dependencies, if any of them change, GStreamer will
7570 re-inspect the plugin.
7571 The kernel is tracked through the device files /dev/dri/card*
7572 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
7573 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
7574 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
7575 since they modify the driver lookup.
7576 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
7577 https://bugzilla.gnome.org/show_bug.cgi?id=724352
7579 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7581 * gst/vaapi/gstvaapidecode.c:
7582 vaapidecode: remove unneeded initializations
7583 GObject's memory is set to zero, so there is no need to initialize to zero or
7584 NULL it's class variables.
7586 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7588 * gst/vaapi/gstvaapipluginbase.h:
7589 plugins: remove undefined macros
7591 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7593 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
7594 Revert "gstvaapisurface_drm: release image when done"
7595 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
7596 372a03a9e38acbf435eb80bf31d9a9844069e504.
7597 While the dmabuf handle is exported, the derive image must exist, otherwise
7598 the image's VA buffer is invalid, thus the dmabuf handle is never released,
7599 leading into a file descriptors leak.
7601 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7603 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7604 encoder: h265: fix code-style
7606 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7608 * gst/vaapi/gstvaapipostproc.c:
7609 vaapipostproc: update filters at color balance
7610 This is a fix for a regression of previous commit, which updates the filters
7611 only when the property is set, because it is also required to update the
7612 filter when the color balance interface change its values.
7614 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
7616 * gst/vaapi/gstvaapipostproc.c:
7617 * gst/vaapi/gstvaapipostproc.h:
7618 vaapipostproc: make it enable/disable pass-through mode
7619 In case that sink caps and src caps are same, and no filtering parameter set,
7620 pass-through mode is enabled.
7621 If new filtering parameter is set during playback, it makes it reconfiguring,
7622 so that pass-through mode is changed
7623 In addition, updating filter is performed during reconfiguration, if needed.
7624 https://bugzilla.gnome.org/show_bug.cgi?id=751876
7626 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
7628 * gst-libs/gst/vaapi/gstvaapifilter.c:
7629 * gst-libs/gst/vaapi/gstvaapifilter.h:
7630 * gst/vaapi/gstvaapipostproc.c:
7631 vaapipostproc: checking and updating filter parameter only when it's set
7632 This patch is to avoid checking filter value at every frame.
7633 https://bugzilla.gnome.org/show_bug.cgi?id=751876
7635 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
7637 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7638 decoder: h265: handle the SEI NAL units included in codec_data
7639 The prefix/suffix SEI nal units can appear in codec_data too
7640 which weren't handled before. Parse these SEI headers to
7642 https://bugzilla.gnome.org/show_bug.cgi?id=768544
7644 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7646 * docs/plugins/Makefile.am:
7647 build: doc: do not redefine MAINTAINERCLEANFILES
7648 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
7649 overload it, the files should be added.
7651 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7653 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7654 encoder: h264: Fix MVC encode while enabling dct8x8
7655 Pack the transform_8x8_mode_flag and other necessary rbsp data
7656 in packed_pps header for MVC encode.
7657 https://bugzilla.gnome.org/show_bug.cgi?id=768647
7659 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7661 * gst/vaapi/gstvaapisink.c:
7662 vaapisink: demote a debug message to trace
7663 Reduces noise when debugging.
7665 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
7667 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7668 wayland: Error check before using cached wl_display
7669 A planar(or some other) buffer allocation may fail on the driver, then
7670 the wayland connection becomes invalid, not able to send request or
7671 receive any event. So we need to set up a new wayland connection if
7672 there's an error detected on the cached wl_display.
7673 https://bugzilla.gnome.org/show_bug.cgi?id=768761
7674 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7676 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
7679 Automatic update of common submodule
7680 From ac2f647 to f49c55e
7682 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7684 * gst/vaapi/gstvaapiencode.c:
7685 vaapiencode: demote a log to trace level
7686 Removes noise when debugging.
7688 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
7690 * gst/vaapi/gstvaapiencode.c:
7691 vaapiencode: implement flush() vmethod
7692 In order to handle correctly seek and other operations, vaapiencode should
7693 flush all the remaining data from the encoder without pushing it downstream.
7694 This patch implements the flush() vmethod, only after of pausing the
7695 source pad task, and restarting it again after the flush stop.
7696 https://bugzilla.gnome.org/show_bug.cgi?id=767176
7697 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7699 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7701 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
7702 decoder: vc1: flush dpb only if opened
7703 Flush the decode picture buffer, if and only if, the decoder is
7704 started. Otherwise the dpb structure might be NULL.
7705 https://bugzilla.gnome.org/show_bug.cgi?id=742922
7707 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
7709 * gst/vaapi/gstvaapidecode.c:
7710 * gst/vaapi/gstvaapidecode.h:
7711 vaapidecode: drop non-keyframe in reverse playback
7712 To avoid surface-exhausted situation during reverse playback,
7713 drop frames except for key frame.
7714 Also, to avoid the corruption of the parser state, flush() vmethod
7715 doesn't destroy the VA decoder when playing in reverse.
7716 https://bugzilla.gnome.org/show_bug.cgi?id=742922
7717 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7719 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7721 * gst/vaapi/gstvaapidecode.c:
7722 vaapidecode: unref output frame earlier
7723 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
7724 unref that extra reference earlier making the code simpler to follow.
7725 https://bugzilla.gnome.org/show_bug.cgi?id=768652
7727 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7729 * gst/vaapi/gstvaapidecode.c:
7730 vaapidecode: remove gst_vaapidecode_internal_flush()
7731 As gst_vaapidecode_finish() is the only callee of
7732 gst_vaapidecode_internal_flush(), it is better to inline it.
7733 https://bugzilla.gnome.org/show_bug.cgi?id=768652
7735 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7737 * gst/vaapi/gstvaapidecode.c:
7738 vaapidecode: flush output adapter at drain()
7739 Calling drain() vmethod means "decode any data it can at this point, but that
7740 more data may arrive after". Hence, vaapidecode should check if there is data
7741 in the output adapter and process them, without destroying the decoded picture
7743 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
7744 was refactored into a new function gst_vaapidecode_flush_output_adapter().
7745 https://bugzilla.gnome.org/show_bug.cgi?id=768652
7747 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7749 * gst/vaapi/gstvaapidecode.c:
7750 vaapidecode: call purge at flush()
7751 Calling flush() vmethod means "to flush all remaining data from the decoder
7752 without pushing it downstream".
7753 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
7754 gst_video_decoder_have_frame() if there is still something in the input
7755 adapter, which may push buffers to downstream by calling handle_frame().
7756 This patch changes this behavior by calling gst_vaapidecode_purge() rather
7757 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
7758 decoder and releases all the rest of decoded frames.
7759 https://bugzilla.gnome.org/show_bug.cgi?id=768652
7761 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7763 * tests/elements/Makefile.am:
7764 * tests/elements/test-vaapisink.c:
7765 test: elements: remove spurious linkage
7766 Element tests only need to link against gstreamer libraries.
7768 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
7771 configure: Require GLib >= 2.40 like everywhere else
7773 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
7778 === release 1.9.1 ===
7780 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
7786 * gstreamer-vaapi.doap:
7789 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7791 * tests/elements/test-vaapisink.c:
7792 tests: elements: rotate orientation event
7794 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
7797 * tests/Makefile.am:
7798 * tests/elements/Makefile.am:
7799 * tests/elements/test-vaapisink.c:
7800 tests: elements: Add testsuite for vaapisink
7801 https://bugzilla.gnome.org/show_bug.cgi?id=765798
7803 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
7805 * gst-libs/gst/vaapi/gstvaapitypes.h:
7806 * gst-libs/gst/vaapi/gstvaapivalue.c:
7807 * gst/vaapi/gstvaapisink.c:
7808 * gst/vaapi/gstvaapisink.h:
7809 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
7810 https://bugzilla.gnome.org/show_bug.cgi?id=765798
7812 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7814 * gst/vaapi/gstvaapipostproc.c:
7815 vaapipostproc: return caps template if no display
7816 This patch is a fix for my bad review of commit 6d73ca8d. The element should
7817 be able to return the available raw caps handled by the VA display, but that
7818 only should happen when there a VA display. If there's none, the element
7819 should use the caps template.
7820 https://bugzilla.gnome.org/show_bug.cgi?id=768161
7822 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
7824 * gst/vaapi/gstvaapipostproc.c:
7825 vaapipostproc: don't require a vaapi display for all caps queries
7826 This delays the requirement of having a GstVaapiDisplay until later
7827 https://bugzilla.gnome.org/show_bug.cgi?id=768161
7829 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7831 * gst-libs/gst/vaapi/gstvaapiutils.c:
7832 utils: report VP9 profiles
7833 Add VP9Profile0-3 name mapping.
7835 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7837 * gst/vaapi/gstvaapi.c:
7838 vaapi: nest includes under USE_ENCODER macro
7839 This is a missed changeset from commit 1c05c53, since also header includes
7842 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7844 * gst/vaapi/gstvaapi.c:
7845 vaapi: nest encoders under USE_ENCODER macro
7846 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
7847 macro, it is clearer to nest them, showing explicitly the dependency relation.
7849 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7851 * gst/vaapi/gstvaapivideocontext.c:
7852 vaapivideocontext: check if query context is NULL
7853 Under certain conditions the element might receive a positive context query
7854 but without a context instance. This situation will lead to a segmentation
7855 fault when traversing the context list in the pipeline.
7856 https://bugzilla.gnome.org/show_bug.cgi?id=767946
7858 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
7860 * gst-libs/gst/vaapi/Makefile.am:
7861 * gst-libs/gst/vaapi/glibcompat.h:
7862 * gst-libs/gst/vaapi/sysdeps.h:
7863 remove unused glibcompat.h
7864 glibcompat.h is no longer doing anything. Remove it.
7865 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
7866 https://bugzilla.gnome.org/show_bug.cgi?id=767886
7868 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
7870 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7871 encoder: h264: Use high profile by default
7872 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
7873 by default. This will cause the default profile to be high instead
7874 of baseline. In most situations this is the right decision, and
7875 the profile can still be lowered in the case of caps restrictions.
7876 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
7877 https://bugzilla.gnome.org/show_bug.cgi?id=757941
7879 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7881 * gst/vaapi/gstvaapidecodebin.c:
7882 vaapidecodebin: element warning if missing element
7883 Raise an element warning if a required element is not available, thus the
7884 pipeline will post a warning message and the application will be informed.
7886 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
7888 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7889 decoder: h265: fix to release all dpb pictures
7890 Without this, all dpb pictures are not released during flush,
7891 because we used the global dpb_count variable for checking the
7892 dpb fullness which get decremented in dpb_remove_index()
7893 routine during each loop iteration.
7894 https://bugzilla.gnome.org/show_bug.cgi?id=767934
7896 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7899 Automatic update of common submodule
7900 From ac2f647 to f363b32
7902 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
7904 * gst/vaapi/gstvaapidecode.c:
7905 * gst/vaapi/gstvaapipostproc.c:
7906 vaapi: fix minor leaks
7907 https://bugzilla.gnome.org/show_bug.cgi?id=767868
7909 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7911 * gst/vaapi/gstvaapi.c:
7912 vaapi: remove an already included header
7913 gst/gst.h is already included in gstcompat.h
7915 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7917 * gst/vaapi/gstvaapidecodebin.c:
7918 vaapidecodebin: add vp9 in sink pad template
7920 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7922 * gst/vaapi/gstvaapisink.c:
7923 vaapisink: return caps template if no display
7924 If vaapisink received a caps query before getting a VA display, it returned
7925 only the surfaces related caps. This behavior broke the autovideosink
7927 This patch returns the pad's template caps if no VA display, otherwise the
7928 caps are crafted as before.
7929 https://bugzilla.gnome.org/show_bug.cgi?id=767699
7931 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
7933 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7934 decoder: vp9: Update comment about context resets
7935 Clarify that vaapi context resets are never needed for vp9, but
7936 that ensure_context() needs called when the size increases so that
7937 new surfaces can be allocated.
7938 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
7939 https://bugzilla.gnome.org/show_bug.cgi?id=767474
7941 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
7943 * gst-libs/gst/vaapi/gstvaapicontext.c:
7944 * gst-libs/gst/vaapi/gstvaapicontext.h:
7945 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7946 gstvaapicontext: control reset_on_resize with option
7947 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
7948 https://bugzilla.gnome.org/show_bug.cgi?id=767474
7950 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
7952 * gst/vaapi/gstvaapivideobufferpool.c:
7953 vaapivideobufferpool: add video meta to config when needed
7954 In cases where we know the video meta must be present, add it to
7955 the pool configuration.
7956 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
7957 https://bugzilla.gnome.org/show_bug.cgi?id=766184
7959 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
7961 * gst/vaapi/gstvaapipluginbase.c:
7962 plugins: retry pool config
7963 if gst_buffer_pool_set_config returns FALSE, check the modified
7964 config and retry set_config if the config is still acceptable.
7965 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
7966 https://bugzilla.gnome.org/show_bug.cgi?id=766184
7968 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7970 * gst/vaapi/gstvaapivideomemory.h:
7971 vaapivideomemory: internal attributes to methods
7972 Mark as internal the functions used by VA-API dmabuf allocator.
7974 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7976 * gst/vaapi/gstvaapipluginbase.c:
7977 plugins: remove precondition for decide_allocation()
7978 There's no need to check for the display in the plugin object when
7979 decide_allocation() vmethod is called, because the display will created or
7980 re-created along the method execution.
7982 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7984 * gst/vaapi/gstvaapipluginbase.c:
7985 plugins: avoid possible memory leaks
7986 Get the pool config just before use it, to avoid a memory leak if the
7987 allocator cannot be instantiated. Similarly, return FALSE if the configuration
7988 cannot be set, avoid keep a not used allocator in the pool.
7990 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
7992 * gst/vaapi/gstvaapipluginbase.c:
7993 plugins: use GstParentBufferMeta
7994 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
7995 use the GStreamer's GstParentBufferMeta.
7996 https://bugzilla.gnome.org/show_bug.cgi?id=765435
7998 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8000 * gst/vaapi/gstvaapipluginbase.c:
8001 plugins: cache VASurfaces from dmabufs
8002 This patch avoids the creation of a VASurface each time a new input buffer is
8003 processed, caching them in the input buffer itself.
8004 https://bugzilla.gnome.org/show_bug.cgi?id=765435
8006 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8008 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
8009 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
8010 * gst/vaapi/gstvaapipluginbase.c:
8011 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
8012 Instead of passing the data already in GstVideoInfo, let's just pass the
8013 GstVideoInfo structure.
8014 https://bugzilla.gnome.org/show_bug.cgi?id=765435
8016 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8018 * gst/vaapi/gstvaapipluginbase.c:
8019 * gst/vaapi/gstvaapipluginbase.h:
8020 plugins: use an unique allocator per pad
8021 Instead of instantiating an allocator per vaapivideobufferpool, only one
8022 allocator is instantiated per element's pad and shared among future pools.
8023 If the pad's caps changes, the allocator is reset.
8024 https://bugzilla.gnome.org/show_bug.cgi?id=765435
8026 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8028 * gst/vaapi/gstvaapipluginbase.c:
8029 * gst/vaapi/gstvaapivideobufferpool.c:
8030 * gst/vaapi/gstvaapivideobufferpool.h:
8031 vaapivideobufferpool: share options flag with pluginbase
8032 Originally, vaapivideobufferpool has a set of boolean variables for the
8033 buffer configuration options.
8034 This pach changes these boolean variables for a single bitwise, just as
8035 it is used in pluginbase. Hence, the internal enum was moved to
8036 vaapivideobufferpool header.
8037 https://bugzilla.gnome.org/show_bug.cgi?id=765435
8039 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8041 * gst/vaapi/gstvaapipluginbase.c:
8042 plugins: add gst_vaapi_plugin_base_create_pool()
8043 This patch refactors the code in pluginbase in order to centralize the buffer
8044 pool instantiation. As the buffer pool config may have different options, these
8045 are gathered using a bitwise flag.
8046 https://bugzilla.gnome.org/show_bug.cgi?id=765435
8048 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8050 pluginbase negotiates allocator with bufferpool
8051 Originally vaapivideobufferpool instantiates its own allocator regardless the
8052 received configuration, and it relies in custom configuration options to
8053 choose which kind of allocator instantiate.
8054 This patch transfers the responsibility of the allocator instantiate to
8055 vaapipluginbase and pass it to the vaapivideobufferpool through its
8057 * gst/vaapi/gstvaapipluginbase.c
8058 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
8059 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
8060 bufferpool configuration
8061 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
8063 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
8064 allocator in bufferpool configuration
8065 * gst/vaapi/gstvaapivideobufferpool.c
8066 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
8067 allocator, process the received one through its configuration.
8068 * gst/vaapi/gstvaapivideobufferpool.h: removed
8069 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
8070 * gst/vaapi/gstvaapivideomemory.c
8071 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
8072 allocator with the vaapi qdata.
8073 https://bugzilla.gnome.org/show_bug.cgi?id=765435
8075 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8077 * gst/vaapi/gstvaapivideobufferpool.c:
8078 vaapivideobufferpool: keep only current video info
8079 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
8080 the current one, the negotiated. The old one is not needed at all.
8081 https://bugzilla.gnome.org/show_bug.cgi?id=765435
8083 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8085 * gst/vaapi/gstvaapipluginbase.c:
8086 * gst/vaapi/gstvaapipluginutil.c:
8087 * gst/vaapi/gstvaapipluginutil.h:
8088 * gst/vaapi/gstvaapivideomemory.c:
8089 pluginutil: add gst_video_info_force_nv12_if_encoded()
8090 This lines repeat a couple times in the code, so it would be better to put it
8092 https://bugzilla.gnome.org/show_bug.cgi?id=765435
8094 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8096 * gst/vaapi/gstvaapipluginutil.c:
8097 * gst/vaapi/gstvaapipluginutil.h:
8098 * gst/vaapi/gstvaapipostproc.c:
8099 * gst/vaapi/gstvaapivideobufferpool.c:
8100 pluginutil: add gst_video_info_changed() helper
8101 This function is shared among different elements, so let factorized it.
8102 https://bugzilla.gnome.org/show_bug.cgi?id=765435
8104 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
8106 * gst/vaapi/gstvaapipostprocutil.c:
8107 vaapipostproc: Add colorimetry attributes to src caps
8108 https://bugzilla.gnome.org/show_bug.cgi?id=766596
8110 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
8112 * gst/vaapi/gstvaapidecode.c:
8113 vaapidecode: remove chroma-site and colorimetry from src caps
8114 https://bugzilla.gnome.org/show_bug.cgi?id=766596
8116 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
8118 * gst/vaapi/gstvaapipostproc.c:
8119 * gst/vaapi/gstvaapipostproc.h:
8120 vaapipostproc: add postproc_lock to protect data members
8121 Add a mutex to postproc to protect concurrent access to data members.
8122 Previously set_caps() could release the allowed_srcpad_caps while
8123 transform_caps was in the middle of using it.
8124 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
8125 https://bugzilla.gnome.org/show_bug.cgi?id=766940
8127 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8129 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8130 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8131 encoder: vp9: Add simple algorithms for reference picture selection
8132 Added two modes(as properties) for reference picture selection:
8133 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
8134 and LastRef is pointing to the previous frame.
8135 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
8136 and n-2 th frame as AltRef
8137 https://bugzilla.gnome.org/show_bug.cgi?id=766048
8139 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8141 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8142 encoder: vp9: Define Max frame width and height
8143 https://bugzilla.gnome.org/show_bug.cgi?id=766048
8145 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8147 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8148 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8149 encoder: vp9: Add more propertis for tuning encode quality
8150 Added three tuning properties:
8153 3: luma ac quant-table index
8154 https://bugzilla.gnome.org/show_bug.cgi?id=766048
8156 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8158 * gst/vaapi/Makefile.am:
8159 * gst/vaapi/gstvaapi.c:
8160 * gst/vaapi/gstvaapiencode_vp9.c:
8161 * gst/vaapi/gstvaapiencode_vp9.h:
8162 Add vp9 encode element to "vaapi" plugin
8163 https://bugzilla.gnome.org/show_bug.cgi?id=766048
8165 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8167 * gst-libs/gst/vaapi/Makefile.am:
8168 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8169 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8170 Add vp9 encoder support in libgstvaapi
8171 https://bugzilla.gnome.org/show_bug.cgi?id=766048
8173 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8176 build: Add check for VP9 encode API support in libva
8177 https://bugzilla.gnome.org/show_bug.cgi?id=766048
8179 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8181 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
8182 gstvaapisurface_drm: fix internal documentation
8184 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8186 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
8187 gstvaapisurface_drm: fix code-style
8189 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8191 * gst/vaapi/gstvaapipluginbase.c:
8192 plugins: remove unused header
8193 Remove the include of gst/allocators/allocators.h since it is not used.
8195 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8197 * gst/vaapi/gstvaapivideobufferpool.h:
8198 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
8199 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
8200 keep compatibility definition.
8201 This patch removes the definition of
8202 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
8203 gst-plugins-base version 1.2.2
8205 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8207 * gst/vaapi/gstvaapipluginbase.c:
8208 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
8209 This is a helper function to improve the readability of
8210 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
8213 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8215 * gst/vaapi/gstvaapipluginbase.c:
8216 plugins: deactivate buffer pool before unref
8217 This buffer pool may still be processing buffers when a caps renegotiation is
8218 done. This one-liner patch deactivates the pool to drain it before it
8221 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8223 * gst/vaapi/gstvaapipluginbase.c:
8224 plugins: no sinkpad bufferpool when decoder
8225 Right now, the decoders create a buffer pool for their sink pad which is not
8226 used at all, because the decoders have never proposed it to upstream.
8227 This patch avoids the buffer pool instantiating when the element inherits from
8228 the GstVideoDecoder class.
8230 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8232 * gst/vaapi/gstvaapipluginbase.c:
8233 plugins: avoid to get/set pool config twice
8234 This patch is a bit of optimization, since the bufferpool configuration is get
8235 when the pool is created. Hence, we only need to request it when the pool from
8236 the allocation query is reused.
8238 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8240 * gst/vaapi/gstvaapipluginbase.c:
8241 plugins: destroy pool earlier if non-vaapi
8242 If the offered pool in decide_allocation() vmethod doesn't have the
8243 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
8244 so it could be created later.
8246 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8248 * gst/vaapi/gstvaapivideobufferpool.c:
8249 vaapivideobufferpool: split caps validation
8250 When validating the caps from bufferpool config, this patch distinguishes the
8251 error from no caps received (NULL) from the invalid caps (cannot be converted
8252 into GstVideoInfo structure).
8254 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8256 * gst/vaapi/gstvaapidecode.c:
8257 * gst/vaapi/gstvaapipluginbase.c:
8258 plugins: check for caps in query earlier
8259 Check for caps as soon gst_query_parse_allocation() returns.
8261 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8263 * gst/vaapi/gstvaapipluginbase.c:
8264 * gst/vaapi/gstvaapipluginbase.h:
8265 plugins: remove unused variables
8266 This variables stopped to be used since commit 001a5c63, which removed the
8269 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8271 * gst/vaapi/gstvaapipluginbase.c:
8272 plugins: fix potential memleak from commit 9159328
8273 If gst_video_info_from_caps() fails it is required to unref the instantiated
8276 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8278 * gst/vaapi/gstvaapipostproc.c:
8279 vaapipostproc: handle if gst_video_info_from_caps() fails
8280 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
8283 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8285 * gst/vaapi/gstvaapipluginbase.c:
8286 plugins: handle if gst_video_info_from_caps() fails
8287 Let's play safe and return error if, somehow, the received caps are wrong.
8289 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8291 * gst/vaapi/gstvaapipluginbase.c:
8292 plugins: relate errors to instance
8293 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
8294 will show the name of the vaapipluginbase instance that failed.
8295 Also, the code-style is fixed, where some error labels need to be surrounded
8298 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8300 * gst/vaapi/gstvaapipluginbase.c:
8301 * gst/vaapi/gstvaapipluginutil.c:
8302 * gst/vaapi/gstvaapisink.c:
8303 plugins: use GstVideoInfo accessors
8304 Instead of access to GstVideInfo members directly, use their accessors
8305 macros. This patch makes more resistance to future changes in GStreamer core.
8307 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8309 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
8310 * gst/vaapi/gstvaapipluginbase.c:
8311 * gst/vaapi/gstvaapipostproc.c:
8312 * tests/simple-encoder.c:
8313 remove spurious gst_video_info_init()
8314 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
8315 gst_video_info_init(), hence it is not required to call it before them. This
8316 patch removes these spurious calls.
8318 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8320 * gst/vaapi/gstvaapipluginbase.c:
8321 vaapipluginbase: code-style: rename goto label
8322 The error labels have error_ prefix, but this one.
8324 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8326 * gst/vaapi/gstvaapivideomemory.c:
8327 vaapivideomemory: use allocator custom alloc flag
8328 Instead of a dummy alloc() vmethod, the allocator instance set the flag
8329 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
8330 gst_allocator_alloc() on the allocator.
8332 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8334 * gst/vaapi/gstvaapivideobufferpool.c:
8335 vaapivideobufferpool: relate errors to instance
8336 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
8337 the vaapivideobufferpool instance that failed.
8339 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8341 * gst/vaapi/gstvaapipluginbase.c:
8342 plugins: remove gst_vaapi_plugin_base_set_pool_config()
8343 This function helper make sense for GStreamer 1.2, but it is not helpful for
8344 greater version since the validation is already done in the API implementation.
8345 Thus, it is removed.
8347 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8349 * gst/vaapi/gstvaapipluginbase.c:
8350 gstvaapipluginbase: Fix typo in doc
8352 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8354 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8355 encoder : h264: Disable b-frame encode in low-power mode
8356 This is a workaround since vaapi-intel-driver doesn't have
8357 support for B-frame encode when utilizing low-power-enc
8359 Fixme :We should query the VAConfigAttribEncMaxRefFrames
8360 instead of blindly disabling b-frame support and set b/p frame count,
8361 buffer pool size etc based on the query result.
8362 https://bugzilla.gnome.org/show_bug.cgi?id=766050
8364 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8366 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8367 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8368 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
8369 Remove the duplicate property "low-power-enc" and use the
8370 tune property for enabling low power encoding mode.
8371 https://bugzilla.gnome.org/show_bug.cgi?id=766050
8373 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8375 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8376 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
8377 https://bugzilla.gnome.org/show_bug.cgi?id=766050
8379 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8381 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8382 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8383 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8384 encoder: h264: Add support of low power/high performance encoding mode
8385 Added a new property "low-power-enc" for enabling low power
8386 encoding mode. Certain encoding tools may not be available
8387 with the VAEntrypointEncSliceLP.
8388 https://bugzilla.gnome.org/show_bug.cgi?id=766050
8390 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8392 * gst-libs/gst/vaapi/gstvaapitypes.h:
8393 * gst-libs/gst/vaapi/gstvaapiutils.c:
8394 * gst-libs/gst/vaapi/gstvaapivalue.c:
8395 Add mapping for Macroblock level rate control (VA_RC_MB)
8397 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8399 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8400 gstvaapidisplay: Add VAEntrypointEncSliceLP support
8401 https://bugzilla.gnome.org/show_bug.cgi?id=766050
8403 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8405 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8406 * gst-libs/gst/vaapi/gstvaapiprofile.h:
8407 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
8408 This is for implementations that supports low_power/high_performance
8409 variant for slice level encode.
8410 https://bugzilla.gnome.org/show_bug.cgi?id=766050
8412 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8414 * gst/vaapi/gstvaapipostprocutil.c:
8415 vaapipostproc: negotiate frame size fixation
8416 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
8417 using the sink caps, also it use the next capsfilter.
8418 This code is a shameless copy of gst_video_scale_fixate_caps() from
8419 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
8420 https://bugzilla.gnome.org/show_bug.cgi?id=758548
8422 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
8424 * gst/vaapi/gstvaapipostprocutil.c:
8425 vaapipostproc: don't use GstVideoInfo for src caps
8426 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
8427 this patch enables the first step for caps negotiation with a possible
8428 following caps filter.
8429 _get_preferred_caps() will traverse the possible src caps looking for the one
8430 wit the preferred feature and the preferred color format. Then the color
8431 format, the frame size and the frame rate are fixated.
8432 https://bugzilla.gnome.org/show_bug.cgi?id=758548
8434 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8436 * gst/vaapi/gstvaapipostproc.c:
8437 * gst/vaapi/gstvaapipostprocutil.c:
8438 * gst/vaapi/gstvaapipostprocutil.h:
8439 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
8440 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
8441 No functional changes.
8442 https://bugzilla.gnome.org/show_bug.cgi?id=758548
8444 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8446 * gst/vaapi/gstvaapipostproc.c:
8447 vaapipostproc: simplify code
8448 Change a convoluted snippet to find the preferred color format in the peer
8450 https://bugzilla.gnome.org/show_bug.cgi?id=758548
8452 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8454 * gst/vaapi/gstvaapipostproc.c:
8455 vaapipostproc: use othercaps for preferred caps
8456 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
8457 from fixate_caps() vmethod to find the preferred caps feature and color
8459 https://bugzilla.gnome.org/show_bug.cgi?id=758548
8461 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
8463 * gst/vaapi/gstvaapipostproc.c:
8464 vaapipostproc: add fixate_caps() vmethod
8465 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
8466 implements the fixate_caps() vmethod and moves code around.
8467 https://bugzilla.gnome.org/show_bug.cgi?id=758548
8469 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8471 * gst/vaapi/Makefile.am:
8472 * gst/vaapi/gstvaapipostproc.c:
8473 * gst/vaapi/gstvaapipostprocutil.c:
8474 * gst/vaapi/gstvaapipostprocutil.h:
8475 vaapipostproc: set early properties restrictions
8476 When running transform_caps() vmethod, returning the srcpad caps, the caps are
8477 early restricted to the element properties set: width, height, format and
8479 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
8481 https://bugzilla.gnome.org/show_bug.cgi?id=758548
8483 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8485 * gst/vaapi/gstvaapipostproc.c:
8486 vaapipostproc: log the caps transformation
8487 https://bugzilla.gnome.org/show_bug.cgi?id=758548
8489 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8491 * gst/vaapi/gstvaapipostproc.c:
8492 vaapipostproc: no GLTextureUpload in sinkpad
8493 As the vaapipostproc does not process frames with the VideoGLTextureUpload
8494 meta, the feature is removed from the sink pad template.
8495 https://bugzilla.gnome.org/show_bug.cgi?id=765931
8497 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
8499 * gst/vaapi/gstvaapivideobufferpool.c:
8500 vaapibufferpool: do not create texture upload meta if dmabuf
8501 https://bugzilla.gnome.org/show_bug.cgi?id=755072
8503 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8506 build: update git.mk
8508 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8510 * gst/vaapi/gstvaapipluginbase.h:
8511 plugin: fix macro processor check
8512 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
8513 defined in config.h, but it would be 0 or 1 depending on the configure output.
8514 https://bugzilla.gnome.org/show_bug.cgi?id=765702
8516 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8518 * tests/test-display.c:
8519 tests: display: guard possible unused variables
8520 https://bugzilla.gnome.org/show_bug.cgi?id=765702
8522 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8528 * tests/simple-decoder.c:
8529 * tests/test-decode.c:
8530 * tests/test-display.c:
8531 * tests/test-filter.c:
8532 * tests/test-h264.c:
8533 * tests/test-jpeg.c:
8534 * tests/test-mpeg2.c:
8535 * tests/test-mpeg4.c:
8536 * tests/test-subpicture-data.c:
8537 * tests/test-subpicture.c:
8538 * tests/test-surfaces.c:
8539 * tests/test-textures.c:
8541 * tests/test-windows.c:
8542 tests: inforce gstreamer code-style
8544 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8546 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8547 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
8548 It seems driver requires enablement of cu_qp_delta_enabled_flag
8549 for modifying QP values to controll the CBR mode bitrate.
8550 https://bugzilla.gnome.org/show_bug.cgi?id=749852
8552 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8554 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8555 encoder: h265: Add CBR Encoding support
8556 https://bugzilla.gnome.org/show_bug.cgi?id=749852
8558 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
8560 * gst-libs/gst/vaapi/gstvaapisurface.c:
8561 gstvaapisurface: explicitely clear TILING flag if dmabuf
8562 https://bugzilla.gnome.org/show_bug.cgi?id=755072
8564 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
8566 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
8567 gstvaapisurface_drm: release image when done
8568 Otherwise intel-vaapi-driver will fail to process the exported surface because
8569 it will find it is currently derived, so considered as busy.
8570 https://bugzilla.gnome.org/show_bug.cgi?id=755072
8572 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
8574 * gst/vaapi/gstvaapipostproc.c:
8575 vaapipostproc: already have a surface proxy if dmabuf
8576 https://bugzilla.gnome.org/show_bug.cgi?id=755072
8578 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
8580 * gst/vaapi/gstvaapipostproc.c:
8583 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8585 * gst/vaapi/gstvaapidecode.c:
8586 * gst/vaapi/gstvaapipluginbase.c:
8587 * gst/vaapi/gstvaapipluginbase.h:
8588 vaapidecode: search driver in whitelist
8589 If the backend driver vendor string is not in a white-list, and the
8590 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
8591 change it state from NULL to READY, hence the auto-plug mechanism will look
8592 for another decoder.
8593 This patch assumes the GstContext has already being shared along the pipeline
8594 and the element has a valid GstVaapiDisplay instance.
8595 https://bugzilla.gnome.org/show_bug.cgi?id=764673
8597 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8599 * gst/vaapi/gstvaapidecode.c:
8600 * gst/vaapi/gstvaapiencode.c:
8601 * gst/vaapi/gstvaapipluginbase.c:
8602 * gst/vaapi/gstvaapipluginbase.h:
8603 * gst/vaapi/gstvaapipostproc.c:
8604 * gst/vaapi/gstvaapisink.c:
8605 plugins: rework set_context() vmethod definition
8606 In bug 757598 was added the set_context() vmethod chain up in
8607 GstVaapiPluginBase. But it is buggy, since the parent_class address is
8608 assigned to the last element which called gst_vaapi_plugin_base_class_init().
8609 No error has shown up since none of the element's base classes redefined
8610 set_context() vmethod from GstElement, so always the correct function was
8611 called. Still this code is wrong and this patch make it right.
8612 Since set_context() is the same code, a macro is used to implement that code
8613 in all the gst-vaapi elements.
8614 https://bugzilla.gnome.org/show_bug.cgi?id=765368
8616 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8618 * gst/vaapi/gstvaapipostproc.c:
8619 vaapipostproc: resize if negotiated and allocation caps are different
8620 Since commit 859a2b2, in vaapidecode, allocation query can be different from
8621 the negotiated caps.
8622 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
8623 resize the frame to the negotiated, if and only if, some other parameter is
8624 activated to avoid the passthrough. If it is not, the surface won't be mapped
8625 into a image. If not, the image won't be resized and the output buffer would be
8627 This patch will break the passthrough if the allocation query is different
8628 from the negotiation caps, forcing the resizing.
8629 https://bugzilla.gnome.org/show_bug.cgi?id=765095
8631 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8633 * gst/vaapi/gstvaapidecode.c:
8634 vaapidecode: improve code readability
8635 No functional changes.
8637 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8639 * gst/vaapi/gstvaapidecode.c:
8640 vaapidecode: move GstCapsFeatures near to its use
8641 Move the handling of the GstCapsFeatures just after it is used, in order to
8642 avoid handling its memory.
8644 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8646 * gst/vaapi/gstvaapidecode.c:
8647 vaapidecode: caps negotiation checks
8648 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
8649 compiled with GL support.
8651 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8653 * gst/vaapi/gstvaapidecode.c:
8654 * gst/vaapi/gstvaapipluginbase.c:
8655 * gst/vaapi/gstvaapipluginbase.h:
8656 * gst/vaapi/gstvaapipostproc.c:
8657 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
8659 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8661 * gst/vaapi/gstvaapidecode.c:
8662 vaapidecode: bail early if not caps in decide_allocation()
8664 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8666 * gst/vaapi/gstvaapidecode.c:
8667 * gst/vaapi/gstvaapipluginbase.c:
8668 * gst/vaapi/gstvaapipluginutil.c:
8669 * gst/vaapi/gstvaapipluginutil.h:
8670 * gst/vaapi/gstvaapipostproc.c:
8671 plugin: use allowed caps filter from element
8672 Instead of using the srcpad template caps for filtering the peer caps, the
8673 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
8674 for the element's allowed caps.
8675 With this modification, the vaapipostproc element simplifies a bit its code.
8676 https://bugzilla.gnome.org/show_bug.cgi?id=765223
8678 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8680 * gst/vaapi/gstvaapidecode.c:
8681 * gst/vaapi/gstvaapipluginbase.c:
8682 * gst/vaapi/gstvaapipluginutil.c:
8683 * gst/vaapi/gstvaapipluginutil.h:
8684 * gst/vaapi/gstvaapipostproc.c:
8685 plugin: remove function parameter
8686 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
8687 saved if the out format is used for both: in and out. Thus the code is more
8689 https://bugzilla.gnome.org/show_bug.cgi?id=765223
8691 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8693 * gst/vaapi/gstvaapidecode.c:
8694 vaapidecode: warns if driver will do color conversions
8695 If the downstream feature is system memory, the surface has to be mapped,
8696 hence a warning message is logged saying that the driver has to do color
8697 conversions. This might be troublesome because not all the color conversion
8698 combinations are supported by the VA-API drivers, and there is not a reliable
8699 way to know them before hand.
8700 https://bugzilla.gnome.org/show_bug.cgi?id=765223
8702 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8704 * gst/vaapi/gstvaapipluginutil.c:
8705 plugin: honour negotiated format
8706 Instead of setting the requested format by the caller, the function
8707 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
8708 the negotiated format.
8709 A new helper function was added: gst_vaapi_find_preferred_format(), which,
8710 given the format list from the negotiated caps, will choose the best one, if
8711 possible, given the native format.
8712 https://bugzilla.gnome.org/show_bug.cgi?id=765223
8714 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8716 * gst/vaapi/gstvaapipluginutil.c:
8717 plugin: simplify caps feature selection
8718 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
8719 Instead of intersecting custom caps to find the preferred feature, the peer
8720 caps are traversed in order to find the preferred feature, according to an
8721 ordered feature priority list.
8722 In the case of GLTextureUploadMeta, the colour format is computed using
8723 GstVideoInfo of the selected fixed caps.
8724 https://bugzilla.gnome.org/show_bug.cgi?id=765223
8726 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8728 * gst/vaapi/gstvaapidecode.c:
8729 vaapidecode: use macros for GstVideoInfo
8730 Instead of accessing directly to the members of the structure, use the macros.
8732 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8734 * gst/vaapi/gstvaapidecode.c:
8735 vaapidecode: refactor is_display_resolution_changed()
8736 Make the comparisons more readable and simple.
8737 https://bugzilla.gnome.org/show_bug.cgi?id=764316
8739 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8741 * gst/vaapi/gstvaapidecode.c:
8742 * gst/vaapi/gstvaapidecode.h:
8743 vaapidecode: keep only display_{width,height}
8744 Instead of keeping the structure GstVideoInfo when we are using its width and
8745 height, we only keep these two guints.
8746 https://bugzilla.gnome.org/show_bug.cgi?id=764316
8748 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8750 * gst/vaapi/gstvaapidecode.c:
8751 vaapidecode: decoded_info is valid at src caps update
8752 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
8753 is called, then we don't need to verify or replace it with the sinkpad info
8755 https://bugzilla.gnome.org/show_bug.cgi?id=764316
8757 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8759 * gst/vaapi/gstvaapidecode.c:
8760 vaapidecode: always a valid format in decoded_info
8761 Always set a valid format in decoded_info class variable.
8762 https://bugzilla.gnome.org/show_bug.cgi?id=764316
8764 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8766 * gst/vaapi/gstvaapidecode.c:
8767 vaapidecode: code style fixes
8768 No functional changes.
8769 https://bugzilla.gnome.org/show_bug.cgi?id=764316
8771 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8773 * gst/vaapi/gstvaapidecode.c:
8774 vaapidecode: init {decoded,display}_info at open()
8775 It is required to initialize {decoded,display}_info variables when the decoder
8776 is open, not only at instance initialization.
8777 https://bugzilla.gnome.org/show_bug.cgi?id=764316
8779 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8781 * gst/vaapi/gstvaapidecode.c:
8782 * gst/vaapi/gstvaapidecode.h:
8783 vaapidecode: remove spurious class variables
8784 active, do_pool_renego and do_outstate_renego class variables were used to
8785 indicate when negotiate downstream once, but now that each time a new surface
8786 resolution is pop out a renegotation verified, these variable are not required
8788 https://bugzilla.gnome.org/show_bug.cgi?id=764316
8790 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8792 * gst/vaapi/gstvaapidecode.c:
8793 * gst/vaapi/gstvaapipluginbase.c:
8794 * gst/vaapi/gstvaapipluginbase.h:
8795 * gst/vaapi/gstvaapipostproc.c:
8796 remove custom allocation query
8797 When resolving bug 753914, a custom allocation query was added, overlapping
8798 the responsibilities of GstVideoDecoder.
8799 But with the merge of the patches from bug 764421 this overlapping was not
8800 required anymore. This patch restores this situation setting the
8801 allocation_caps in the GstVideoCodecState when needed.
8802 https://bugzilla.gnome.org/show_bug.cgi?id=764316
8804 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
8807 Automatic update of common submodule
8808 From 6f2d209 to ac2f647
8810 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8812 * gst/vaapi/gstvaapidecode.c:
8813 * gst/vaapi/gstvaapidecodebin.c:
8814 * gst/vaapi/gstvaapipostproc.c:
8815 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
8816 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
8817 their caps templates if they were not compiled either with GLX or EGL support.
8819 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8821 * gst/vaapi/gstvaapipluginutil.c:
8822 plugins: fix compilation when EGL/GLX is disabled
8823 The compiler might complain of gst_vaapi_create_display_from_handle() being
8824 unused if both EGL and GLX are disabled. This patch avoid that compilation
8827 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
8829 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
8830 libs: fix deleting a GstVaapiCodedBufferPool object
8831 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
8832 Otherwise it is not called when the pool is destroyed and all objects
8833 referenced by the GstVaapiVideoPool are never released.
8834 https://bugzilla.gnome.org/show_bug.cgi?id=764993
8836 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8838 * gst-libs/gst/vaapi/gstvaapisurface.c:
8839 surface: destroy derived image
8840 If gst_vaapi_image_new_with_image() fails, the created derived image should be
8841 destroyed, otherwise the surface cannot be processed because is being used.
8842 https://bugzilla.gnome.org/show_bug.cgi?id=764607
8844 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
8846 * gst/vaapi/gstvaapidecode.c:
8847 vaapidecode: add stop function
8848 Clear any status on the current stream:
8849 stored frames, caps and decoder configuration
8850 https://bugzilla.gnome.org/show_bug.cgi?id=763460
8852 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8854 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8855 decoder: vp9: Align with the ABI changes in vp9 codecparser
8856 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
8857 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
8858 These fields are only present in keyframe or intra-only frame, no need to
8859 duplicate them for inter-frames.
8860 https://bugzilla.gnome.org/show_bug.cgi?id=764082
8862 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8864 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8865 decoder: vp9 : Add 10bit decoding support (Profile2)
8866 https://bugzilla.gnome.org/show_bug.cgi?id=764082
8868 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8870 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8871 * gst-libs/gst/vaapi/gstvaapiprofile.h:
8872 gstvaapiporfile: Add more VP9 profile definitions
8873 https://bugzilla.gnome.org/show_bug.cgi?id=764082
8875 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8879 build: possibility to disable tests
8880 The configuration option --disable-examples will disable the compilation of
8881 the sample apps in tests/ directory.
8883 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8885 * gst/vaapi/gstvaapiencode_h264.c:
8886 * gst/vaapi/gstvaapiencode_h265.c:
8887 * gst/vaapi/gstvaapiencode_jpeg.c:
8888 * gst/vaapi/gstvaapiencode_mpeg2.c:
8889 * gst/vaapi/gstvaapiencode_vp8.c:
8890 * gst/vaapi/gstvaapipluginutil.h:
8891 * gst/vaapi/gstvaapisink.c:
8892 unify caps template for VAAPI encoders and decoders
8893 There is no difference in VAAPI surface caps between encoders and decoders.
8894 Thus, the patch makes a simplification by removing encoders specific caps and
8895 shares the same definition of VAAPI surfaces caps for all the elements.
8897 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8899 * gst/vaapi/gstvaapidecode.c:
8900 vaapidecode: move gst_vaapidecode_negotiate() code
8901 With it we can remove a function declaration, making the code a bit
8903 https://bugzilla.gnome.org/show_bug.cgi?id=764316
8905 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8907 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
8908 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
8909 * gst/vaapi/gstvaapidecode.c:
8910 docs: generate vaapijpegdec documentation
8911 https://bugzilla.gnome.org/show_bug.cgi?id=764314
8913 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8915 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8916 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
8917 The array_completeness, reserved bit and num_nal_units fields
8918 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
8919 but not for each occurance of similar headers.
8920 https://bugzilla.gnome.org/show_bug.cgi?id=764274
8922 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8924 * gst-libs/gst/vaapi/video-format.c:
8925 video-format: Keep the HW order preference while mapping to GstVideoFormats
8927 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8929 * gst/vaapi/gstvaapidecode.c:
8930 * gst/vaapi/gstvaapipluginbase.c:
8931 * gst/vaapi/gstvaapipluginutil.c:
8932 * gst/vaapi/gstvaapipluginutil.h:
8933 * gst/vaapi/gstvaapivideomemory.c:
8934 gst/vaapi: keep precedence for NV12 over I420
8935 Use NV12 as default "assumption" format all over.
8936 NV12 is the default high priority format used my most of the
8939 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8941 * gst/vaapi/gstvaapidecode.c:
8942 vaapidecode: Use video format derived from decoded surface as default src pad format
8943 Use the surface format derived from first decoded surface
8944 to negotiate the downstream video format capabilities.
8945 https://bugzilla.gnome.org/show_bug.cgi?id=759181
8947 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
8949 * gst-libs/gst/vaapi/gstvaapiimage.c:
8950 * gst-libs/gst/vaapi/video-format.c:
8951 * gst/vaapi/gstvaapidecode.c:
8952 * gst/vaapi/gstvaapipluginutil.h:
8953 * gst/vaapi/gstvaapisink.c:
8954 Add P010 video format support
8955 The P010 video format is the native format used by the vaapi intel driver
8956 for HEVCMain10 decode . Add support for planes and images of this video format.
8957 https://bugzilla.gnome.org/show_bug.cgi?id=759181
8959 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
8961 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
8962 libs: x11: allows 30-bit colour depth
8963 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
8964 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
8965 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
8967 https://bugzilla.gnome.org/show_bug.cgi?id=764256
8969 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
8971 * gst/vaapi/gstvaapivideometa_texture.c:
8972 gltextureupload: use an array for texture type
8973 Instead of using a single value for the texture type, use an array with 4
8974 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
8976 https://bugzilla.gnome.org/show_bug.cgi?id=764231
8978 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8980 * gst/vaapi/gstvaapidecode.c:
8981 * gst/vaapi/gstvaapipluginbase.c:
8982 vaapidecode: Fix decide_allocation handling
8983 Set the already configured pool in decide_allocation query
8984 in cases where pool renegotiation is not required.
8985 https://bugzilla.gnome.org/show_bug.cgi?id=753914
8987 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8989 * gst/vaapi/gstvaapidecode.c:
8990 vaapidecode: Derive and save the decoded surface format
8991 After the decoding of first frame, try to extract the exact
8992 decoded surface format using vaDeriveImage and keep this
8993 as the format in decoded_info.
8994 https://bugzilla.gnome.org/show_bug.cgi?id=753914
8996 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8998 * gst/vaapi/gstvaapidecode.c:
8999 * gst/vaapi/gstvaapidecode.h:
9000 * gst/vaapi/gstvaapipluginbase.c:
9001 * gst/vaapi/gstvaapipluginbase.h:
9002 * gst/vaapi/gstvaapipostproc.c:
9003 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
9004 -- Maintaing decoded surface resoluton and actual display resoultion separately
9005 -- Before pushing every frames downstream, check for the requirement of pool negoation and
9006 output_state negotiation: This is needed to avoid multiple issuses with cropping,
9007 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
9008 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
9009 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
9010 This is slight overhead, but safe enough. Optimization could be possible though.
9011 https://bugzilla.gnome.org/show_bug.cgi?id=753914
9013 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9015 * gst/vaapi/gstvaapidecode.c:
9016 vaapidecode: Delay the output format setting until we have a decoded surface
9017 This will help to consoidate the out caps negotiation to a single place,
9018 which will make the code simpler, allows to get the exact decoded format
9019 if needed and the selected chroma type too.
9020 https://bugzilla.gnome.org/show_bug.cgi?id=753914
9022 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9024 * gst/vaapi/gstvaapidecode.h:
9025 vaapidecode: GST_VAAPIDECODE macro is a cast
9026 This patch is the continuation of commit 1e1d3b1d because the function
9027 gst_vaapidecode_get_type() got undefined since then.
9028 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
9029 structure. The rest of the GObject handling macros were deleted too.
9031 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
9036 === release 1.8.0 ===
9038 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
9043 * gstreamer-vaapi.doap:
9046 === release 1.7.91 ===
9048 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
9053 * gstreamer-vaapi.doap:
9056 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9058 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9059 decoder: h265: Fix offset calculation in codec_data parsing
9060 https://bugzilla.gnome.org/show_bug.cgi?id=762922
9062 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9064 * gst/vaapi/gstvaapidecodebin.c:
9065 vaapidecodebin: don't handle jpeg decoding
9066 As JPEG decoder has been split and demoted, it cannot be handled by
9068 Added a fixme comment regarding the future removal of vaapidecode.
9069 https://bugzilla.gnome.org/show_bug.cgi?id=734093
9071 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9073 * gst/vaapi/gstvaapidecode.c:
9074 vaapidecode: split out jpeg decoder
9075 Split, as a different element, the JPEG decoder.
9076 https://bugzilla.gnome.org/show_bug.cgi?id=734093
9078 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9080 * gst/vaapi/gstvaapi.c:
9081 * gst/vaapi/gstvaapidecode.c:
9082 * gst/vaapi/gstvaapidecode.h:
9083 vaapidecode: register decoder with internal GType
9084 Don't expose the the vaapidecode GType, instead expose a function
9085 which will register element.
9086 This is the first step to split the decoder by codecs.
9087 https://bugzilla.gnome.org/show_bug.cgi?id=734093
9089 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9091 * gst/vaapi/gstvaapidecode.c:
9092 vaapidecode: remove unused function declaration
9093 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
9094 code-style of the other pre-declared functions.
9096 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9098 * docs/plugins/Makefile.am:
9099 build: git ignore gtkdoc generated files
9101 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9104 build: handle git ignore in m4 directory
9106 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
9108 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9109 vaapidecoder_h265: plug leak of h265 parsing info
9110 If something goes wrong while parsing, the info object is
9112 https://bugzilla.gnome.org/show_bug.cgi?id=763121
9114 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
9116 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9117 vaapidecoder_h264: plug leak of h264 parsing info
9118 If something goes wrong while parsing, the info object is
9120 https://bugzilla.gnome.org/show_bug.cgi?id=763121
9122 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
9124 * gst/vaapi/gstvaapipluginutil.c:
9125 plugins: fix gstgl and vaapi memory leaks
9126 1\ Unref gl_display and gl_window as soon they are not needed.
9127 2\ Remove an unneeded display type check, since is handled by
9128 gst_vaapi_created_display_from_handle()
9129 3\ Unref vaapi's display if the display cannot be bind to a GL API.
9130 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9131 https://bugzilla.gnome.org/show_bug.cgi?id=763354
9133 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
9135 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9136 vaapidisplay: Fix uninitialized value error for VA attribute
9137 https://bugzilla.gnome.org/show_bug.cgi?id=763362
9139 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9141 * gst/vaapi/gstvaapidecode.c:
9142 * gst/vaapi/gstvaapiencode.c:
9143 plugins: proxy information from downstream caps
9144 Propagate to upstream the downstream information, such as fps, par, etc.
9145 This will fix several "getcaps" critical warnings in gst-validate.
9146 https://bugzilla.gnome.org/show_bug.cgi?id=763300
9148 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9150 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9151 decoder: vp9: Assign values for profile and bit_depth from frame header
9152 bit_depth field has added only in VA-API 0.39.0, added version check.
9154 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
9157 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
9158 https://bugzilla.gnome.org/show_bug.cgi?id=763067
9160 === release 1.7.90 ===
9162 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
9167 * gstreamer-vaapi.doap:
9170 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
9173 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
9175 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9177 * gst/vaapi/gstvaapidecode.c:
9178 vaapidecode: intersect with filter in getcaps()
9179 In commit 6034734d I forgot to add the caps filter intersection in the
9180 getcaps() vmethod generating a regression when a capsfilter is set in the
9182 This commit adds the caps filter intersection.
9184 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
9186 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9187 Add memset to initialize value for VAEncSliceParameterBufferJPEG
9188 https://bugzilla.gnome.org/show_bug.cgi?id=762850
9190 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
9193 Automatic update of common submodule
9194 From b64f03f to 6f2d209
9196 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9201 build: add m4 directory
9202 Instead of rely on the automatic creation of m4 directory by aclocal, we
9203 already control it. Later we could create our own m4 scripts in order to
9204 unclutter configure.ac
9205 https://bugzilla.gnome.org/show_bug.cgi?id=762528
9207 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
9209 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9210 decoder: hevc: Fill dependent slice segment headers while parsing
9211 Copy the data into the dependent slice segment header from the
9212 corresponding independent slice segment header during parsing.
9213 Previously the reference to the "previous" independent header was
9214 held through the parsing phase and then dereferenced during the
9215 decoding phase. This caused all dependent headers to be populated
9216 with the data of the AU's last independent header instead of the
9217 proper corresponding header.
9218 https://bugzilla.gnome.org/show_bug.cgi?id=762352
9220 - Reworded commit message
9222 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9224 * gst/vaapi/gstvaapidecode.c:
9225 vaapidecode: use video decoder getcaps()
9226 The usage of getcaps() vmethod is preferred than to handle manually the sink's
9228 In order to avoid function declarations, this patch moves the class_init()
9229 method to the end of the file.
9231 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9233 * gst/vaapi/gstvaapipluginbase.c:
9234 plugins: remove deprecated code
9235 Since we are only supporting current GStreamer version, since 1.3
9236 gst_buffer_pool_config_add_option() checks if the option to add is
9237 already set. There is no need to do it ourselves.
9239 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
9241 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9242 vaapidecoder_h265: fix parsing of NALU aligned data
9243 Don't assume the whole buffer is a single NAL, instead look for the
9244 next start code in case there are multiple NALs per buffer.
9245 https://bugzilla.gnome.org/show_bug.cgi?id=762328
9247 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
9249 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9250 vaapidecoder_h264: fix parsing of NALU aligned data
9251 Don't assume the whole buffer is a single NAL, instead look for the
9252 next start code in case there are multiple NALs per buffer.
9253 https://bugzilla.gnome.org/show_bug.cgi?id=762328
9255 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
9257 * gst/vaapi/gstvaapisink.c:
9258 vaapisink: Fix event,pad,structure memory leaks
9259 https://bugzilla.gnome.org/show_bug.cgi?id=762229
9261 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
9263 * gst/vaapi/gstvaapipluginbase.c:
9264 Add icamerasrc as dmabuf capable peer element
9265 icamerasrc is another gstreamer plugin using to capture RAW
9266 frames from camera device. It is based on libcamhal library.
9267 There are some properties available to control icamera behavior.
9268 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
9269 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
9270 https://bugzilla.gnome.org/show_bug.cgi?id=759481
9271 Fixme: This is the similar workaround we done for v4l2src.
9272 The workaround will be removed once we fix #755072
9274 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
9276 * gst/vaapi/gstvaapipluginbase.c:
9277 vaapipluginbase: Fix structure memory leak
9278 config structure is not being freed in all cases
9279 https://bugzilla.gnome.org/show_bug.cgi?id=762172
9281 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
9283 * gst/vaapi/gstvaapidecode.c:
9284 vaapidecode: Fix videocodec state memory leak
9285 When state is not NULL and either width/height of video info is 0, then state leaks
9286 https://bugzilla.gnome.org/show_bug.cgi?id=762173
9288 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
9290 * gst/vaapi/gstvaapisink.c:
9291 vaapisink: post message for application for unhandled keyboard/mouse events
9292 Makes (most) keyboard shortcuts work in gst-play-1.0 when
9293 the video window has focus.
9295 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
9297 * gst/vaapi/gstvaapidecode.c:
9298 vaapidecode: Fix capsfeature memory leak
9299 https://bugzilla.gnome.org/show_bug.cgi?id=762116
9301 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
9303 * gst/vaapi/gstvaapisink.c:
9304 vaapisink: Fix capsfeature memory leak
9305 caps feature allocated is not being freeing in some cases
9306 https://bugzilla.gnome.org/show_bug.cgi?id=762111
9308 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
9311 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
9312 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9313 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9314 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9315 * gst-libs/gst/vaapi/gstvaapifilter.c:
9316 * gst/vaapi/gstvaapidecodebin.c:
9317 * gst/vaapi/gstvaapipluginutil.c:
9318 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
9320 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
9323 configure: Fix setting of extra compiler warning flags
9325 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9327 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
9328 libs: fix build error
9329 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
9330 functions are used only when libva's API version is greater than 0.36.0
9331 This patch guards those functions completely rather than just their
9332 content. The patch is a continuation of commit 38f8fea4
9333 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
9334 https://bugzilla.gnome.org/show_bug.cgi?id=762055
9336 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
9338 * tests/simple-encoder.c:
9339 tests: simple-encoder: fix build error
9340 argument mismatch of gsize with 'long unsigned int'
9341 https://bugzilla.gnome.org/show_bug.cgi?id=762055
9343 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9345 * gst/vaapi/gstvaapisink.c:
9346 vaapisink: Fix wrong caps advertising
9347 The get_caps() should only report the supported formats.
9348 https://bugzilla.gnome.org/show_bug.cgi?id=761147
9350 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
9353 Automatic update of common submodule
9354 From e97c9bb to b64f03f
9356 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9358 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
9359 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
9360 * gst/vaapi/gstvaapi.c:
9361 * gst/vaapi/gstvaapiencode_h264.c:
9362 * gst/vaapi/gstvaapiencode_h265.c:
9363 * gst/vaapi/gstvaapiencode_jpeg.c:
9364 * gst/vaapi/gstvaapiencode_mpeg2.c:
9365 * gst/vaapi/gstvaapiencode_vp8.c:
9366 rename encoders to vaapi{codec}enc
9367 Trying to comply with GStreamer's element names, this patch renames the
9368 encoders using the name format vaapi{codec}enc.
9369 In this way, the plugin documentation is linked correctly.
9370 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9372 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9375 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
9376 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9378 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9381 build: remove vp9 parser check
9382 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
9383 the check of the parser, as we did for the others.
9384 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9386 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9391 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9393 === release 1.6.0 ===
9395 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9400 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9402 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
9403 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9404 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9405 libs: fix compiler warnings
9406 After setting the release flags, the compiler warns about a couple
9407 initialized variables.
9408 Also marked a couple of set variables as unused, because they are only
9410 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9412 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9414 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
9415 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
9416 * gst/vaapi/gstvaapidecode.c:
9417 * gst/vaapi/gstvaapidecodebin.c:
9418 * gst/vaapi/gstvaapiencode_h264.c:
9419 * gst/vaapi/gstvaapiencode_h265.c:
9420 * gst/vaapi/gstvaapiencode_jpeg.c:
9421 * gst/vaapi/gstvaapiencode_mpeg2.c:
9422 * gst/vaapi/gstvaapiencode_vp8.c:
9423 * gst/vaapi/gstvaapipostproc.c:
9424 * gst/vaapi/gstvaapisink.c:
9425 docs: update plugin documentation
9426 Update all the documentation of elements of the vaapi plugin.
9427 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9429 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9434 * docs/plugins/Makefile.am:
9435 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
9436 * docs/plugins/gstreamer-vaapi-plugins.types:
9437 * docs/reference/Makefile.am:
9438 * docs/reference/plugins/Makefile.am:
9439 * docs/reference/plugins/plugins-sections.txt:
9440 * docs/reference/plugins/plugins.types:
9441 * docs/version.entities.in:
9442 resurrect gtk-doc machinery
9443 Our auto-generated documentation has been a bit neglected. This patch replaces
9444 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
9445 plugins, elements and libraries.
9446 This patch also re-enables documentation generation.
9447 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9449 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9455 use gst-common submodule
9456 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
9457 GStreamer common submodule.
9458 The documentation generation has been disable temporarily since it needs a
9459 major rework, which will be done in the following commit.
9460 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9462 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9466 add gst-common submodule
9467 Pointing to branch 1.6
9468 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9470 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9472 * gstreamer-vaapi.doap:
9474 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
9475 describe software projects, in particular free and open source software.
9476 The description is used in GStreamer as in many other open source projects.
9477 This patch adds the doap description of this project.
9478 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9480 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9482 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
9483 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9484 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9485 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
9486 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9487 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
9488 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
9489 * gst-libs/gst/vaapi/gstvaapiimage.c:
9490 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
9491 * gst-libs/gst/vaapi/gstvaapipixmap.c:
9492 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
9493 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9494 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
9495 libs: humongous code style fix
9496 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
9497 umbrella, we need to comply with the project's code style. This meant to
9498 change a lot of code.
9499 It was decided to use a single massive patch to update the code style.
9500 I would like to apologize with the original developers of this code because of
9501 the history breakage.
9502 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9504 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9506 * gst-libs/gst/vaapi/gstvaapicontext.c:
9507 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9508 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
9509 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9510 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9511 * gst/vaapi/gstvaapivideomemory.c:
9512 libs: small refactors to enhance the code style
9513 As gst-indent generated ugly code in these cases, this patch changes the used
9514 idiomatic into other one.
9515 No functional changes were introduced.
9516 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9518 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9520 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
9521 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
9522 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
9523 * gst-libs/gst/vaapi/gstvaapidecoder.c:
9524 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9525 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
9526 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9527 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9528 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9529 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9530 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9531 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
9532 * gst-libs/gst/vaapi/gstvaapifilter.c:
9533 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
9534 * gst-libs/gst/vaapi/gstvaapisurface.c:
9535 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
9536 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
9537 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9538 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9539 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
9540 * gst-libs/gst/vaapi/gstvaapiwindow.c:
9541 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
9542 libs: small code style fixes
9543 This a set of small code style fixes detected as-is by gst-indent.
9544 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9546 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9548 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
9549 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9550 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
9551 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
9552 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
9553 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
9554 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
9555 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
9556 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9557 libs: trivial comment style fixes
9558 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9560 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9562 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
9563 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
9564 libs: avoid gst-indent mess up
9565 Guard pieces of code to avoid gst-ident to mess up the following code.
9566 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9568 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9570 * gst/vaapi/gstvaapidecode.c:
9571 * gst/vaapi/gstvaapidecodebin.c:
9572 * gst/vaapi/gstvaapipluginutil.c:
9573 * gst/vaapi/gstvaapisink.c:
9574 * gst/vaapi/gstvaapivideomemory.c:
9575 plugins: fix code style
9576 Minor code style changes by executing gst-indent in gst/vaapi directory.
9577 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9579 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
9581 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9582 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9583 Fix some more compiler warning
9584 Two (false) compiler warnings about variables potentially
9585 being used uninitialized, and one about a variable being
9587 https://bugzilla.gnome.org/show_bug.cgi?id=759192
9589 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
9591 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9592 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9593 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9594 * gst-libs/gst/vaapi/gstvaapifilter.c:
9595 * gst/vaapi/gstvaapidecode.c:
9596 * gst/vaapi/gstvaapipluginbase.c:
9597 * gst/vaapi/gstvaapipluginutil.c:
9598 * gst/vaapi/gstvaapipostproc.c:
9599 * tests/simple-encoder.c:
9600 * tests/test-filter.c:
9601 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
9602 Declare variables at the beginning of a code block, which
9603 is how it's done in GStreamer.
9604 https://bugzilla.gnome.org/show_bug.cgi?id=759192
9606 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9608 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9609 decoder: vp9: Fix crop rectangle setting
9610 Align with software vp9dec behaviour: Add crop rectangle
9611 only if display_width/display_height is less than the
9612 frame_hdr->width/frame_hdr->height
9614 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9616 * gst/vaapi/gstvaapidecode.c:
9617 vaapidecode: Fix renegotiation for resolution change
9618 Always renegotiate the pool if the immediate frame which going
9619 to be pushed has a different un-cropped resolution than the already
9622 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9624 * gst/vaapi/gstvaapipluginbase.h:
9625 plugins: use the same pre-processor macro
9626 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
9627 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
9628 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
9629 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
9631 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9633 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9635 * gst-libs/gst/vaapi/gstvaapidecoder.c:
9636 decoder: update a deprecated function
9637 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
9638 deprecated since GStreamer 1.0.
9639 This patch replace it with gst_adapter_prev_pts()
9640 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9642 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9645 build: honor configure's cache
9646 The user might enable --config-cache when calling configure script. If so, our
9647 configuration variables will not be correctly calculated.
9648 This patch extracts the value of our variables either from the cache or from
9649 the operation result.
9650 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9652 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9655 build: use common version variables
9656 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9658 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9661 build: hard-code an unneeded macro
9662 That macro is required for EGL's dynamic module loading, but since
9663 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
9664 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
9665 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9667 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9670 build: refactorization of dependency tracking
9671 This patch tries to avoid branching in configure.ac using a more functional
9672 approach in macros usage.
9673 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9675 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9678 build: check for OpenGL either GLX or EGL are requested
9679 Refactor some code in configure.ac to centralize $enable_opengl definition.
9680 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9682 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9685 build: indent and add square braces
9686 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9688 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9691 build: upgrade autotools version dependency
9692 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9694 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9697 build: enhance string comparisons
9698 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
9699 the string is empty or undefined.
9700 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9702 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9705 build: remove unused variables
9706 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9708 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9711 build: remove check for old version of gstreamer
9712 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9714 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9717 build: remove GStreamer's parsers checks
9718 This patch removes almost all the parsers check since they are already in place,
9719 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
9720 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9722 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9725 * gst/vaapi/Makefile.am:
9726 build: add gstreamer-pbutils dependency
9727 This dependency was added in gstvaapidecodebin with the call
9728 gst_missing_element_message_new().
9729 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9731 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9734 build: fix variable declaration
9735 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9737 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9739 * gst-libs/gst/vaapi/Makefile.am:
9740 build: fix when HEVC decoder is disabled
9741 This a very pathological situation: when we have a HEVC encoder but not a HEVC
9743 The encoder needs functions that are only available when the decoder is
9745 This patch moves the utils functions into the generic sources, such as the
9747 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9749 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9751 * gst/vaapi/Makefile.am:
9752 build: remove unused EGL specific sources
9753 These Makefile variables are not used at all.
9754 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9756 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9758 * gst/vaapi/Makefile.am:
9759 build: remove check for GStreamer 1.2
9760 Since we are working for current stable GStreamer 1.6
9761 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9763 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9765 * gst/vaapi/gstvaapiparse.h:
9766 Remove more video parser crufts
9767 This header is not used anymore since it declares parsers that are
9768 already in GStreamer 1.6
9769 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9771 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
9774 * docs/reference/Makefile.am:
9775 * docs/reference/libs/Makefile.am:
9776 * docs/reference/libs/libs-docs.xml.in:
9777 * docs/reference/libs/libs-overrides.txt:
9778 * docs/reference/libs/libs-sections.txt:
9779 docs: remove library documentation which is non-public now
9780 https://bugzilla.gnome.org/show_bug.cgi?id=759192
9782 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
9786 * debian.upstream/Makefile.am:
9787 * debian.upstream/changelog.in:
9788 * debian.upstream/compat:
9789 * debian.upstream/control.in:
9790 * debian.upstream/copyright:
9791 * debian.upstream/gstreamer-vaapi-doc.install.in:
9792 * debian.upstream/gstreamer-vaapi.install.in:
9793 * debian.upstream/rules:
9794 Remove debian.upstream packaging
9795 https://bugzilla.gnome.org/show_bug.cgi?id=759192
9797 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9799 * gst-libs/gst/vaapi/gstvaapidecoder.c:
9800 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9801 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
9802 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9803 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9804 * gst/vaapi/gstcompat.h:
9805 * gst/vaapi/gstvaapi.c:
9806 * gst/vaapi/gstvaapidecode.c:
9807 * gst/vaapi/gstvaapiencode.c:
9808 * gst/vaapi/gstvaapipluginbase.c:
9809 * gst/vaapi/gstvaapipluginbase.h:
9810 * gst/vaapi/gstvaapipluginutil.c:
9811 * gst/vaapi/gstvaapisink.c:
9812 Remove old gst version guards
9813 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
9814 all the old GStreamer version guards.
9815 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9817 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9819 * gst/vaapi/gstvaapiparse.c:
9820 Remove video parser crufts
9821 We forgot to remove gstvaapiparse.c when we removed all the videoparser
9823 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9825 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9827 * docs/reference/libs/Makefile.am:
9828 * docs/reference/plugins/Makefile.am:
9829 * gst-libs/gst/vaapi/Makefile.am:
9830 * gst/vaapi/Makefile.am:
9831 * tests/Makefile.am:
9832 libs: remove versioning
9833 Since we don't install libraries anymore, it makes no sense to keep
9834 versioning them according to the gstreamer's version.
9835 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9837 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9840 * debian.upstream/Makefile.am:
9841 * debian.upstream/control.in:
9842 * debian.upstream/libgstvaapi-dev.install.in:
9843 * debian.upstream/libgstvaapi-drm.install.in:
9844 * debian.upstream/libgstvaapi-glx.install.in:
9845 * debian.upstream/libgstvaapi-wayland.install.in:
9846 * debian.upstream/libgstvaapi-x11.install.in:
9847 * debian.upstream/libgstvaapi.install.in:
9848 * gst-libs/gst/vaapi/Makefile.am:
9849 * tests/Makefile.am:
9850 libs: make libraries no installables
9851 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9853 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9855 * debian.upstream/libgstvaapi-dev.install.in:
9856 * gst-libs/gst/vaapi/Makefile.am:
9857 Do not install libgstvaapi headers
9858 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9860 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9864 * patches/Makefile.am:
9865 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
9866 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
9867 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
9868 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
9869 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
9870 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
9871 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
9872 * patches/videoparsers/Makefile.am:
9873 * patches/videoparsers/series.frag:
9874 Remove videoparser patches
9876 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9880 * debian.upstream/libgstvaapi-dev.install.in:
9881 * pkgconfig/Makefile.am:
9882 * pkgconfig/gstreamer-vaapi-drm.pc.in:
9883 * pkgconfig/gstreamer-vaapi-glx.pc.in:
9884 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
9885 * pkgconfig/gstreamer-vaapi-x11.pc.in:
9886 * pkgconfig/gstreamer-vaapi.pc.in:
9887 Remove pkg-config files
9888 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9890 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9897 * gst-libs/gst/Makefile.am:
9898 * gst-libs/gst/codecparsers/Makefile.am:
9899 * gst-libs/gst/vaapi/Makefile.am:
9900 * gst/vaapi/Makefile.am:
9901 Remove codecparsers submodule
9902 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9904 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9909 * debian.upstream/libgstvaapi.install.in:
9911 * ext/libvpx/Makefile.am:
9912 * ext/libvpx/gstlibvpx.c:
9913 * ext/libvpx/gstlibvpx.h:
9914 * ext/libvpx/libgstcodecparsers_vpx.vers:
9915 * ext/libvpx/sources.frag:
9916 * ext/libvpx/upstream:
9917 * gst-libs/gst/codecparsers/Makefile.am:
9918 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
9919 Remove libvpx submodule
9920 We will be using upstream codecparsers always.
9921 No more internal libvpx !
9923 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9926 build: fix check for GstJpegParser
9927 Right now the local JPEG parser is always compiled because the check for the
9928 upstreamed version is broken: it looks for an non existent symbol:
9930 This patch changes that check for< GstJpegFrameHdr.
9931 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9933 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
9935 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9936 wayland: free the frame in frame_release_callback()
9937 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
9938 decouple wl_buffer from frame).
9939 Otherwise the frame may be overwritten while it is still used by the
9941 The frame done callback (frame_done_callback()) is called, when the
9942 compositor is done processing the frame and hands it to the hardware.
9943 The buffer release callback (frame_release_callback()) is called when the
9944 buffer memory is no longer used.
9945 This can be quite some time later: E.g. if weston (with the DRM backend)
9946 puts the buffer on a hardware plane, then then buffer release callback is
9947 called when the kernel is done with the buffer. This is usually when the
9948 next frame is shown, so most likely after the frame done callback for the
9950 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
9951 destroy()" the mentioned possible leak should no longer be a problem, so
9952 reverting this change should cause no leaking buffers.
9953 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9954 https://bugzilla.gnome.org/show_bug.cgi?id=758848
9955 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9957 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9959 * gst/vaapi/gstvaapipostproc.c:
9960 vaapipostproc: check ANY caps at transform_caps()
9961 When transforming downstream caps we should check for ANY caps from peer pad,
9962 otherwise we get a segmentation fault.
9963 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9964 https://bugzilla.gnome.org/show_bug.cgi?id=759893
9966 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9968 * gst/vaapi/gstvaapisink.c:
9969 vaapisink: ignore frame if its upload failed
9970 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
9971 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
9972 ignored by the vaapisink, leading to a segmentation fault.
9973 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
9974 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
9975 segmentation fault, but doing and effort to continue rendering. This is
9976 the same behavior of ximagesink.
9977 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9978 https://bugzilla.gnome.org/show_bug.cgi?id=759332
9980 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
9983 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
9984 https://bugzilla.gnome.org/show_bug.cgi?id=759184
9986 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9988 * gst-libs/gst/vaapi/gstvaapicontext.c:
9989 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9990 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9991 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9992 Add 10 HEVC 10 bit decoding support
9993 Only supporting vaapidecode ! vaapisink combination for now.
9994 Missing dependencies:
9995 1: No support for P010 video format in GStreamer
9996 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
9997 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
9998 through GstVideoMeta.
9999 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
10000 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
10001 of the surfaces is implementation (driver) defined, which is P010.
10003 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10005 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
10006 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
10007 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
10008 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
10009 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
10010 chroam type and dimensions. The underlying format of the surfaces is
10011 implementation (driver) defined.
10013 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10015 * gst-libs/gst/vaapi/gstvaapisurface.h:
10016 * gst-libs/gst/vaapi/gstvaapiutils.c:
10017 Add definitions for YUV420 with more than 8 bits per channel
10019 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10021 * gst-libs/gst/vaapi/gstvaapiprofile.c:
10022 gstvaapiporfile: Fix string representation of HEVCMain10 profile
10024 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10027 Bump version for development
10029 === release 0.7.0 ===
10031 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10036 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10041 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10046 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10051 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10053 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
10054 texture: detect GL version and use the proper API
10055 When receiving the texture from the application or the video sink, we must
10056 know it size and border. To query the texture the API has changed according to
10057 the OpenGL version used in the GL context of the application/vsink.
10058 This patch checks the current context API type and queries the texture
10059 according to this detected API.
10060 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10061 https://bugzilla.gnome.org/show_bug.cgi?id=753099
10063 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10065 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
10066 texture: check for expected target and format
10067 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
10068 formats GL_RGBA or GL_BGRA.
10069 This patch adds a debugging verification of those values.
10070 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10071 https://bugzilla.gnome.org/show_bug.cgi?id=753099
10073 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10075 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
10076 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
10077 libs: add gl3_bind_texture_2d()
10078 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
10079 needed. In particular, the Intel's Mesa implementation complains if it is
10081 This patch add a new binding function for 2D textures, without enabling
10082 gl3_bind_texture_2d()[2].
10083 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
10084 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
10085 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10086 https://bugzilla.gnome.org/show_bug.cgi?id=753099
10088 2015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10090 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
10091 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
10092 libs: add gl_get_current_api()
10093 In order to know which OpenGL API use, we must detect the API type of current
10094 context. This patch adds the function gl_get_current_api() which returns the
10096 This function is an adaptation of gst_gl_context_get_current_gl_api() from
10098 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10099 https://bugzilla.gnome.org/show_bug.cgi?id=753099
10101 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10104 * gst-libs/gst/vaapi/Makefile.am:
10105 build: Add gmodule dependency for libgstvaapi_egl
10106 https://bugzilla.gnome.org/show_bug.cgi?id=756259
10108 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10110 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
10111 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
10112 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
10113 * patches/videoparsers/series.frag:
10114 patches/videoparsers: h264: Disable passthorugh mode enabling
10115 This is a quick fix for regression introduced by the upstream
10116 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
10117 The patch is disabling the passthrough mode, otherwise it will
10118 break multi-layer mvc stream parsing.
10119 https://bugzilla.gnome.org/show_bug.cgi?id=758656
10121 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10123 * gst/vaapi/Makefile.am:
10124 * patches/videoparsers/Makefile.am:
10125 * patches/videoparsers/series.frag:
10126 build: add gsth265parse patches conditionally
10127 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
10128 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
10130 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10131 https://bugzilla.gnome.org/show_bug.cgi?id=755525
10133 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10135 * gst/vaapi/Makefile.am:
10136 build: declare correctly parse lib built files
10137 This is a continuation of commit fc8a0d12
10138 When declaring BUILT_SOURCES, those files should not be distributed. This
10139 patch avoids the distribution of the generated source code.
10140 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10141 https://bugzilla.gnome.org/show_bug.cgi?id=755525
10143 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10145 * ext/libvpx/sources.frag:
10146 build: libvpx: Add missing source file
10148 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10150 * gst/vaapi/gstvaapipostproc.c:
10151 vaapipostproc: Correctly detect the caps change
10152 This is a quick fix for regression introuduced by the
10153 commit 757833230bc73b8e3b4e31649e4618ba802bea51
10154 With out this, the gst_vaapipostproc_create() will
10156 https://bugzilla.gnome.org/show_bug.cgi?id=758543
10158 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10160 * ext/libvpx/Makefile.am:
10161 * ext/libvpx/sources.frag:
10162 build: libvpx: update the sources lists
10163 `make dist` broke since commit f06798 (libvpx: Update the submodule to
10164 libvpx-1.4.0) because the sources.frag does not contain all the module
10166 This patch updates thoroughly the sources.
10167 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10168 https://bugzilla.gnome.org/show_bug.cgi?id=755525
10170 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10172 * gst/vaapi/gstvaapipostproc.c:
10173 vaapipostproc: don't set caps change at first set
10174 When the source caps change, the filter is destroyed and recreated.
10175 Nonetheless, this happens every time the vaapipostproc starts, since the caps
10176 change detection algorithm does not take in consideration when the caps are
10178 This patch intents to be an optimization, to avoid a useless filter
10179 destroy-creation cycle when the sources caps are set for first time.
10180 The new helper function video_info_update() is a refactorization to avoid
10182 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10183 https://bugzilla.gnome.org/show_bug.cgi?id=758007
10185 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10187 * gst/vaapi/gstvaapipostproc.c:
10188 vaapipostproc: params video_info_changed() callers
10189 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
10190 swapped the the order. This didn't raise problems since the comparison of both
10191 structures were not affected by its semantics.
10192 But still it would be better to fix this to keep the coherence of the code.
10193 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10194 https://bugzilla.gnome.org/show_bug.cgi?id=758007
10196 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10198 * gst/vaapi/Makefile.am:
10199 build: declare real built files
10200 When runnig the `make dist` target from a clean tree, it fails because
10201 if could not find the copied files from codecparsers submodule.
10202 They weren't copied because they weren't declared as built sources.
10203 This patch removes the stamp mechanism and use the actual file list to copy
10204 as the built sources. Also it fixes the duplication of the parser files.
10205 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10206 https://bugzilla.gnome.org/show_bug.cgi?id=755525
10208 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10210 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10211 decoder: vp9: Fix last/golden/altref frame index setting
10212 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
10213 based on what ever reference frame indices encoded in frame header.
10215 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10217 * debian.upstream/rules:
10218 debian: remove custom parallel compilation
10219 In order to build a debian package with upstream source, the user should
10222 cp -a debian.upstream debian
10223 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
10224 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
10225 way to make a parallel build (-j8 in this case).
10226 This commit removes the script in debian/rules that detects the number of
10227 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
10228 official in debian.
10229 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10230 https://bugzilla.gnome.org/show_bug.cgi?id=754087
10232 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10234 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10235 decoder: vp9: Fix PTS calculation of cloned frames
10237 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10239 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10240 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
10241 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
10242 gstvaapidecoder base calss is reponsible for handling those frames later on.
10243 No need for explicit verification of frame header's show_frame in order to
10244 do picture outputing.
10246 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10248 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10249 decoder: vp9: Fix ref picture update while doing repeat frame
10250 Don't try to do frame decoding and reference picture update
10251 while receiving a vp9 frame having show_existing_frame flag
10254 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10256 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10257 decoder: vp9: Add repeat-frame display handling
10258 If vp9 frame header come up with show_existing_frame flag set,
10259 we should duplicate the existing decoded frame as current frame to
10262 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10264 * gst/vaapi/gstvaapidecodebin.c:
10265 vaapidecodebin: add me as element co-author
10266 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10267 https://bugzilla.gnome.org/show_bug.cgi?id=757957
10269 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10271 * gst/vaapi/gstvaapidecodebin.c:
10272 vaapidecodebin: try to get display from decoder
10273 Rather than create a dummy display, if none has propagated as a context, we
10274 should try to get the one from vaapidecode.
10275 As the bin is already in READY state, the vaapidecode should be also in that
10276 state. That means that the contexts have been negotiated, and it should have
10278 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10279 https://bugzilla.gnome.org/show_bug.cgi?id=757957
10281 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10283 * gst/vaapi/gstvaapidecodebin.c:
10284 * gst/vaapi/gstvaapidecodebin.h:
10285 vaapidecodebin: add postprocessor dynamically
10286 The former approach to left the bin unfinished has some problems: the context
10287 cannot be shared because the vaapidecode is unlinked in many cases, leading to
10288 creating a VADisplay twice.
10289 Initially the bin is fully functional, constructed as
10290 (-----------------------------------)
10292 | (-------------) (-------) |
10293 |<--| vaapidecode |--->| queue |--->|
10294 | (-------------) (-------) |
10295 (-----------------------------------)
10296 When the context is shared and the VADisplay has VPP capabilities, before
10297 changing to READY state, the bin is reconfigured dynamically, adding the
10298 vaapipostproc element afeter the queue:
10299 (--------------------------------------------------------)
10301 | (-------------) (-------) (---------------) |
10302 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
10303 | (-------------) (-------) (---------------) |
10304 (--------------------------------------------------------)
10305 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10306 https://bugzilla.gnome.org/show_bug.cgi?id=757957
10308 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10310 * gst/vaapi/gstvaapidecodebin.c:
10311 vaapidecodebin: delay the bin configuration
10312 Delay the bin configuration until changing to READY state. This is because we
10313 should add the vaapipostproc element until the vaapidecode has emitted the
10314 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
10316 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10317 https://bugzilla.gnome.org/show_bug.cgi?id=757957
10319 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10321 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10322 decoder: vp9: Add crop rectangle support.
10323 Set crop rectange if:
10324 There is display_width and display_height which is different from actual width/height
10326 The changed resolution is less than the actual configured dimension of surfaces
10328 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10330 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10331 decoder: vp9: Fix the context and surface pool reset for multi resolution video
10332 Unlike other decoders, vp9 decoder doesn't need to reset the
10333 whole context and surfaces for each resolution change. Context
10334 reset only needed if resolution of any frame is greater than
10335 what actullay configured. There are streams where a bigger
10336 resolution set in ivf header or webm header but actual resolution
10337 of all frames are less. Also it is possible to have inter-prediction
10338 between these multi resolution frames.
10340 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10342 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10343 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
10344 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
10345 Preliminary fix for supproting multi resolution video decode.
10347 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10349 * gst/vaapi/gstvaapidecode.c:
10350 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
10352 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10354 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10355 decoder: vp9: Set lossless flag from frame header
10357 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10359 * ext/codecparsers:
10360 codecparsers: Update to gst-vaapi-branch d9f25
10361 d9f2527: codecparsers: vp9: Set lossless flag in frame header
10363 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10365 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10366 libs: vp9: remove unused symbols
10367 clang complains about a couple variables and one label which were not
10368 used. This patch removes them.
10369 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10370 https://bugzilla.gnome.org/show_bug.cgi?id=757958
10372 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10374 * ext/codecparsers:
10375 codecparsers: Update to gst-vaapi-branch da251bb
10376 da251bb: codecparsers: vp9: Optimize the memory allocation
10377 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
10379 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10381 * gst/vaapi/gstvaapipluginbase.c:
10382 * gst/vaapi/gstvaapipluginbase.h:
10383 plugin: guard pointers to pad query functions
10384 Since gstreamer 1.4 is not required to have pad query functions if the query
10386 This patch guards out the pad query functions for gstreamer < 1.4
10387 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10388 https://bugzilla.gnome.org/show_bug.cgi?id=757629
10390 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10392 * gst/vaapi/gstvaapiencode.c:
10393 vaapiencode: use pad query vmethods
10394 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
10395 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
10396 while keeps support for previous versions of gstreamer.
10397 This patch is relevant since GstVideoEncoder takes care of other queries that
10398 we are currently ignoring.
10399 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10400 https://bugzilla.gnome.org/show_bug.cgi?id=757629
10402 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10404 * gst/vaapi/gstvaapidecode.c:
10405 vaapidecode: return pad's template caps if no display
10406 A caps query can occur before the element has a display. In that case, the
10407 element can return its pad's template. But when the element already has a
10408 display, and the caps probe fails, the element shall return an empty caps, so
10409 the auto-plug could try with another decoder.
10410 If the element has a display and the caps probe works, then the computed caps
10411 should be returned.
10412 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10413 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10415 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10417 * gst/vaapi/gstvaapidecode.c:
10418 * gst/vaapi/gstvaapisink.c:
10419 plugins: don't create display at caps query
10420 Caps query can happen before the element has a bus. The display creation should
10421 be should occur on the context negotiation, when the bus is already configured.
10422 Then at caps query no display should be created.
10423 Instead of force the display creation, we graciously fail the allowed_caps()
10425 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
10426 basetransform descendant, seems to be not affected by this, nor the encoders.
10427 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10428 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10430 2015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10432 * gst/vaapi/gstvaapidecode.c:
10433 * gst/vaapi/gstvaapiencode.c:
10434 * gst/vaapi/gstvaapipluginutil.c:
10435 * gst/vaapi/gstvaapipluginutil.h:
10436 * gst/vaapi/gstvaapipostproc.c:
10437 * gst/vaapi/gstvaapisink.c:
10438 plugins: fix context query handling
10439 The current context query handling design is flawed: the function
10440 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
10441 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
10442 pad query function should handle differently each case.
10443 This patch changes the gst_vaapi_reply_to_query() for
10444 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
10445 to match the correct context query handling.
10446 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10447 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10449 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10451 * gst/vaapi/gstvaapipluginutil.c:
10452 plugin: don't lose previous context at query
10453 When processing the GST_CONTEXT_QUERY we should not lose the previous
10454 context in the query, we should only add our display structure.
10455 This patch copies the old context, if it is there, and stamp our display on
10456 it. Otherwise, a new context is created.
10457 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10458 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10460 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10462 * gst/vaapi/gstvaapivideocontext.c:
10463 * gst/vaapi/gstvaapivideocontext.h:
10464 vaapivideocontext: add gst_vaapi_video_context_set_display()
10465 This function set the display to an already created context. This function is
10466 going to be used later.
10467 Also, gst_vaapi_video_context_new_with_display() now uses this function.
10468 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10469 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10471 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10473 * gst/vaapi/gstvaapipluginutil.c:
10474 * gst/vaapi/gstvaapivideocontext.c:
10475 * gst/vaapi/gstvaapivideocontext.h:
10476 plugins: check if display is set in sync
10477 Since the context messages are sync'ed, the display assignation happens in the
10478 same thread, hence we can know if the display was found or not as soon we call
10480 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
10481 as a new parameter, the address of the plugin's display, and reports back if
10482 the display was found and set.
10483 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10484 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10486 2015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10488 * gst/vaapi/gstvaapipluginutil.c:
10489 * gst/vaapi/gstvaapivideocontext.c:
10490 plugins: set display through context
10491 Instead of setting the display to the plugin directly after its creation, do
10492 it through the gstreamer's context mechanism, avoiding double assignations.
10493 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10494 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10496 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10498 * gst/vaapi/gstvaapivideocontext.c:
10499 vaapivideocontext: rename context structure
10500 The context structure is named "display" which is too generic. The contrary
10501 happens, for example, with GstGL, what uses the same name as the context, and
10502 its logs make more sense.
10503 This patch renames the context structure with the same name as the
10504 context, thus GST_PTR_FORMAT can pretty print it.
10505 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10507 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10509 * gst/vaapi/gstvaapivideocontext.c:
10510 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
10511 First, refactorized run_context_query() into _gst_context_run_query(), adding
10512 a new parameter: the pad direction, in order to simplify the code.
10513 Second, added a new helper function: _gst_context_query(), which is a generic
10514 context query function. It isolates the operation of running the query and
10515 sets the context if found, also it enhances the logs.
10516 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
10517 future this helper function will be merged into the core libraries of
10519 Finally, gst_vaapi_video_context_prepare() was rewritten to use
10520 _gst_context_query().
10521 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10522 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10524 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10526 * gst/vaapi/gstvaapivideocontext.c:
10527 vaapivideocontext: refactor context category debug
10528 Refactor the extraction GST_CAT_CONTEXT logging using a only once
10529 initializator, so we could get the debug category from different code
10531 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10532 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10534 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10536 * gst/vaapi/gstvaapivideocontext.c:
10537 gstvaapivideocontext: fix indentation
10538 gst-indent does not handle correctly some expression like function
10539 declaration with attributes, breaking the following expressions.
10540 This patch makes gst-indent to ignore the attributed function
10541 declartion so the followed function definition is not mangled, such
10542 as happened in commit b4154a
10543 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10544 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10546 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10548 * gst/vaapi/gstvaapipluginbase.c:
10549 plugin: chain up set_context() vmethod
10550 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
10551 the parent class in order to broadcast all its contexts when the element
10552 is added into a bin:
10553 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
10554 There is no need to guard the call, because before GStreamer 1.7, the
10555 set_context() vmethod was NULL in the element class, hence the conditional
10557 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10558 https://bugzilla.gnome.org/show_bug.cgi?id=757598
10560 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10562 * tests/simple-encoder.c:
10563 tests: simple-encoder: remove dead code
10564 The caps creation for codec state configuration is not used. Let's remove it.
10565 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10567 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10569 * gst/vaapi/gstvaapidecodebin.c:
10570 vaapidecodebin: fix a leaked display instance
10571 The display returned by gst_vaapi_video_context_get_display() increments the
10572 references. Thus, we have to unref the returned display.
10573 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10574 https://bugzilla.gnome.org/show_bug.cgi?id=757595
10576 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10578 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
10579 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
10580 libs: remove unneeded headers
10581 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
10582 required to include them in the header. It is not also required to include
10583 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
10584 exposes their structures (e.g. GLXPixmap).
10585 Nonetheless, glext.h neither glxext.h are required to include, they are
10586 already included conditionally by gl.h and glx.h, respectively.
10587 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10588 https://bugzilla.gnome.org/show_bug.cgi?id=757577
10590 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10592 * ext/codecparsers:
10593 codecparsers: Update to gst-vaapi-branch 0ea6792
10594 0ea6792: codecparsers: vp9: Add header comments
10595 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
10597 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10599 * gst/vaapi/gstvaapidecode.c:
10600 VP9: plugins: Add VP9 decoder
10602 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10604 * gst-libs/gst/vaapi/Makefile.am:
10605 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
10606 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
10607 VP9: libgstvaapi: Add VP9 decoder
10609 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10611 * gst-libs/gst/vaapi/gstvaapiprofile.c:
10612 * gst-libs/gst/vaapi/gstvaapiprofile.h:
10613 VP9: gstvaapiprofile: Add profile definitions
10615 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10618 VP9: build: Check availability of vp9 decoder APIs
10620 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10624 * gst-libs/gst/codecparsers/Makefile.am:
10625 VP9: Allow building vp9 codecparser internally
10627 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10629 * ext/codecparsers:
10630 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
10631 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
10632 e7d9217: codecparser: h264: initialize parsing structures
10633 403d400: codecparser: h265: initialize parsing structures
10635 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10638 configure.ac: don't use an undefined variable
10639 If the environment lacks of gstreamer development packages, this error will
10640 be reported to the user: "gstreamer- was not found"
10641 This is because we are using an undefined variable in the printed message. The
10642 fix simple changes the variable for the hard-coded string "1.0".
10643 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10644 https://bugzilla.gnome.org/show_bug.cgi?id=757283
10646 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10648 * gst/vaapi/gstvaapidecode.c:
10649 vaapidecode: relax guards for memory:VASurface capsfeature
10650 Though caps features are supported since GStreamer 1.2, there are some
10651 issues with the features caps negotiation in that version. Nonetheless,
10652 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
10653 feature negotiation is relaxed for GStreamer 1.4.
10654 The guard is the same as in vaapisink's caps template.
10655 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10656 https://bugzilla.gnome.org/show_bug.cgi?id=756686
10658 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10660 * gst/vaapi/gstvaapidecode.c:
10661 vaapidecode: decide allocation doesn't update srccaps
10662 The received caps query will bring the already negotiated caps, so they are
10663 not expected to change.
10664 This patch removes this verification which is dead code path.
10665 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10666 https://bugzilla.gnome.org/show_bug.cgi?id=756686
10668 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10670 * gst/vaapi/gstvaapidecode.c:
10671 * gst/vaapi/gstvaapipluginutil.c:
10672 * gst/vaapi/gstvaapipluginutil.h:
10673 vaapidecode: use caps to check the features
10674 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
10675 expensive, we check the caps from the allocation query, to check the
10676 negotiated feature.
10677 In order to do this verification a new utility function has been implemented:
10678 gst_vaapi_caps_feature_contains().
10679 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
10680 have been refactorized.
10681 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10682 https://bugzilla.gnome.org/show_bug.cgi?id=756686
10684 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10686 * gst/vaapi/gstvaapidecode.c:
10687 vaapidecode: set format before decide allocation
10688 There is a regression from commit 3d8e5e. It was expected the buffer pool
10689 allocation occur before the caps negotiation, but it is not.
10690 This patch fixes this regression: the caps negotiation is done regardless the
10691 allocation query from downstream.
10692 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10693 https://bugzilla.gnome.org/show_bug.cgi?id=756686
10695 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
10698 build: check for patch and fix yasm check
10699 Add configure checking for GNU patch tools and fixed configure
10700 checking YASM to correct sequence.
10701 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
10702 https://bugzilla.gnome.org/show_bug.cgi?id=756690
10704 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10706 * ext/libvpx/Makefile.am:
10707 build: Remove disable-md5 option for libvpx build
10708 The configure option --disable-md5 was provided in libvpx-1.3.0 which
10709 has been removed in 1.4.0.
10711 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10713 * ext/libvpx/upstream:
10714 libvpx: Update the submodule to libvpx-1.4.0
10715 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
10717 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10720 configure: mark support for GStreamer 1.2 as obsolete.
10721 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
10722 Our goal is to support the last two stable versions of GStreamer which
10723 are 1.4 and 1.6 at the moment.
10724 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
10725 release and will get rid of those in 0.8.
10727 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10729 * gst/vaapi/gstvaapidecode.c:
10730 vaapidecode: Fix buffer copy assertion
10731 Don't try to copy the NULL buffer-codec_data.
10733 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10736 build: allow builds against GStreamer 1.7.x
10737 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10739 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10741 * gst/vaapi/gstcompat.h:
10742 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
10743 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
10744 add an implementation if gstreamer-vaapi is linked to previous versions.
10745 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10747 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10749 * gst/vaapi/gstvaapidecode.c:
10750 vaapidecode: simplify copy of GstVideoCodecState
10751 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10753 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10755 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
10756 * patches/videoparsers/series.frag:
10757 patches/videoparsers: h265parser: more API fences
10758 Add more API fences according with its version and refresh the patch.
10759 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10760 https://bugzilla.gnome.org/show_bug.cgi?id=754845
10762 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10764 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
10765 * patches/videoparsers/series.frag:
10766 patches/videoparsers: h265parser: rename patch keeping number
10767 Refresh the patch and rename it in order to keep the patch number.
10768 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10769 https://bugzilla.gnome.org/show_bug.cgi?id=754845
10771 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10773 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
10774 patches/videoparsers: h264parser: more API fences and refresh
10775 Add more API fences according with its version and refresh the patch.
10776 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10777 https://bugzilla.gnome.org/show_bug.cgi?id=754845
10779 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10781 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
10782 * patches/videoparsers/series.frag:
10783 patches/videoparsers: h264parser: fix description and refresh
10784 Fix a typo in the patch description and refresh it in order to avoid the
10785 creation of .orig files and break the distcheck target.
10786 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10787 https://bugzilla.gnome.org/show_bug.cgi?id=754845
10789 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10791 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
10792 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
10793 patches/videoparsers: h264parser: refresh patches
10794 In order to avoid the creation of .orig files and break the distcheck target.
10795 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10796 https://bugzilla.gnome.org/show_bug.cgi?id=754845
10798 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10800 * gst/vaapi/Makefile.am:
10801 build: link libgstvaapi_parse against codec parser
10802 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
10803 when running configure.
10804 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
10805 need it if builtin codec parsers are disabled.
10806 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
10807 compilation. If builtin codec parsers are enable, this variable is null, so it
10808 should work using libgstvaapi, as normal.
10809 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10810 https://bugzilla.gnome.org/show_bug.cgi?id=754845
10812 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10815 build: verify for H264 MVC and H265 SPS
10816 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
10817 the required symbols for those were added in GStreamer 1.5
10818 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
10819 parsers, the compilation fails, because the lack of those symbols.
10820 This patch verifies if the installed H264 and H265 parsers have those symbols. If
10821 they do not, the specific built in codec parsers are enabled and used.
10822 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10823 https://bugzilla.gnome.org/show_bug.cgi?id=754845
10825 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10827 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10828 decoder: h264: initialize PPS's slice_group_id
10829 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
10830 so it contains random data.
10831 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
10832 pointer uninitialized, leading to a segmentation fault when the memory is
10834 This patch prevents this by initializing the slice_group_id before the PPS
10836 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10837 https://bugzilla.gnome.org/show_bug.cgi?id=754845
10839 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
10841 * gst/vaapi/gstvaapidecode.c:
10842 vaapidecode: proper numerator and denominator for forced latency framerate
10843 https://bugzilla.gnome.org/show_bug.cgi?id=755040
10845 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10847 * ext/codecparsers:
10848 codecparsers: Update to gst-vaapi-branch commit f9e284b
10849 dae1a84: h264parse/h265parse: Fix negotiation crash
10850 45a9f8a: codecparsers: h265 : Fix default scaling list values
10851 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
10852 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10854 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10856 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10857 decoder: hevc: Don't flush dpb for EOS/EOB nal
10858 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
10859 the dpb_add() itself will handle the flusing(if needed) of dpb
10860 for end of sequence and end of bitstream.
10861 https://bugzilla.gnome.org/show_bug.cgi?id=754010
10863 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10865 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10866 decoder: hevc: Fix the dpb_add() based on C.5.2.3
10867 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
10868 just after the PicLatencyCnt setting of existing dpb frames.
10869 https://bugzilla.gnome.org/show_bug.cgi?id=754010
10871 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10873 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10874 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
10875 This fix is based on the V3 vesion of spec which was missing in older versions.
10876 When the current picture has PicOutputFlag equal to 1, for each picture in the
10877 DPB that is marked as "needed for output" and follows the current picture in output order,
10878 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
10879 https://bugzilla.gnome.org/show_bug.cgi?id=754010
10881 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10883 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10884 decoder: h265: Fix indentation
10886 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
10888 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10889 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10890 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10891 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10892 * gst/vaapi/gstvaapidecode.c:
10893 * gst/vaapi/gstvaapipluginutil.c:
10894 multiview: initial attempt at stereo/multiview support
10895 Add support for marking caps and buffers for multiview or
10896 stereoscopic output.
10897 https://bugzilla.gnome.org/show_bug.cgi?id=750835
10899 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10901 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10902 decoder: hevc: remove unused functions
10903 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10904 https://bugzilla.gnome.org/show_bug.cgi?id=754250
10906 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10908 * gst/vaapi/gstvaapidecode.c:
10909 vaapidecode: remove (another) unused variable
10910 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10912 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10914 * gst/vaapi/gstvaapidecode.c:
10915 vaapidecode: remove unused variable
10916 Thus silence the compilation warnings.
10918 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10920 * gst/vaapi/gstvaapidecode.c:
10921 vaapidecode: compilation fix
10922 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
10923 compilation where the toolchain uses restrictive flags as clang.
10924 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10926 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10928 * gst/vaapi/gstvaapidecode.c:
10929 vaapidecode: renegotiate if caps are not equal
10930 The use of gst_caps_is_always_compatible() for this optimization may lead to
10931 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
10932 if it is required a re-negotiation.
10933 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10934 https://bugzilla.gnome.org/show_bug.cgi?id=750835
10936 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10938 * gst/vaapi/gstvaapidecode.c:
10939 * gst/vaapi/gstvaapidecode.h:
10940 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
10941 Delaying the pool re-negotiation untill we push all decoded (and queued)
10942 frames downstream. Otherwise for the multi-resolution videos, the
10943 GstVideoVideoMemory will be having wrong resolution and which leads
10944 to nasty behaviours, especially when using software renderers.
10945 sample media file: RAP_B_Bossen_1.bin
10947 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
10948 get the final resoultion 416x240.
10949 Starting from 25 th frame, the resolution will change to 416x240. But parser
10950 elements won't report this since the effective croped resolution is same in
10951 both cases. Here the core libgstvaapi will detect this through it's internal
10952 parsing and do all context/pool destory/reset stuffs. Also it will notify this
10953 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
10954 immediately, this will not sync with the resolution of already decoded and queued
10955 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
10956 software renderer). So we have to delay the pool renegotiation in vaapidecode,
10957 untill we push all decoded frames downstream.
10958 https://bugzilla.gnome.org/show_bug.cgi?id=753914
10960 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10962 * gst/vaapi/gstvaapidecode.c:
10963 vaapidecode: Always keep a copy of input codec state
10964 Currently we are sharing the input GstVideoCodecState with
10965 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
10966 each caps change. This is troublesome in many cases, for eg: if
10967 resoultion changes with in a singe stream. Because, when ever there
10968 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
10969 fields with new resolution, but since we are using the same codecstate (ref)
10970 in gstvaapidecode.c, the caps check for input caps change will always fail.
10971 https://bugzilla.gnome.org/show_bug.cgi?id=753914
10973 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10975 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10976 decoder: hevc: Fix the scaling list scan order
10977 The default scan order of scaling lists are up-right-diagonal
10978 as per hevc specification. Use the newly implemented
10979 uprightdiagonal_to_raster conversion codecparser APIs to
10980 get the the scaling_list values in raster order, which is
10981 what the VA intel driver requires.
10983 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10985 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10986 decoder: hevc: sync with the codecparser changes
10987 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
10988 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
10990 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10992 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
10993 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
10995 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10997 * ext/codecparsers:
10998 codecparsers: Update to gst-vaapi-branch commit 69550f1
10999 c207c6d: codecparsers: h265: Fix tile row and column parsing
11000 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
11001 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
11002 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
11003 2f0932b: h264parse: Clear SPS info after processing
11004 f57d6b0: videoparsers: enable accept-template flag
11006 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11008 * debian.upstream/control.in:
11009 debian: add yasm as build dependency
11010 As the compilation of libvpx (for vp8 parser) is enabled by default,
11011 yasm is required by default too.
11012 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11014 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
11016 * debian.upstream/rules:
11017 debian: remove --with-gstreamer-api option
11018 It is no longer valid in gstreamer-vaapi.
11019 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
11020 [removed unused GST_API_VERSION variable]
11021 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11022 https://bugzilla.gnome.org/show_bug.cgi?id=753618
11024 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11026 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11027 wayland: rename is_cancelled to sync_failed
11028 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
11029 sense. This commit renames this variable to sync_failed.
11031 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
11033 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11034 wayland: Don't return GST_FLOW_ERROR on flushing
11035 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
11036 return FALSE which makes gst_vaapi_window_wayland_render() return
11037 FALSE which ends up posting an ERROR message in
11038 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
11040 https://bugzilla.gnome.org/show_bug.cgi?id=753598
11042 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11044 * gst/vaapi/gstvaapi.c:
11045 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
11046 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
11048 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11050 * gst/vaapi/gstvaapidecodebin.c:
11051 vaapidecodebin: check for postproc instance
11052 If the VPP's deinterlace-method is set, first we should check if the postproc
11053 is already instanced to set it. Otherwise we just store it until the VPP is
11054 added into the bin.
11055 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11056 https://bugzilla.gnome.org/show_bug.cgi?id=749554
11058 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11060 * gst/vaapi/gstvaapidecodebin.c:
11061 * gst/vaapi/gstvaapipluginutil.c:
11062 * gst/vaapi/gstvaapipluginutil.h:
11063 vaapidecodebin: ensure VPP before going to READY
11064 There are sometimes that the VA-API display context is not shared among the
11065 pipeline, but it is important to know it before going to READY state (when the
11066 pipeline is already linked).
11067 One instance of this case is this:
11068 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
11069 This patch adds a new function in gstvaapipluginutil called
11070 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
11071 display, which only will be used for verify if the VAEntrypointVideoProc is
11072 available by the hardware. Afterwards, it should be unrefed.
11073 If the vaapidecodebin is going to READY state, and the element still doesn't
11074 know if VPP is available, the last resort is to create a new instance of the
11075 VA-API display and test for it.
11076 https://bugzilla.gnome.org/show_bug.cgi?id=749554
11078 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11080 * gst/vaapi/gstvaapidecodebin.c:
11081 vaapidecodebin: post an error message if fails
11082 If the construction of the bin fails, post an error message in the bus.
11083 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11084 https://bugzilla.gnome.org/show_bug.cgi?id=749554
11086 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11088 * gst/vaapi/gstvaapidecodebin.c:
11089 * gst/vaapi/gstvaapidecodebin.h:
11090 vaapidecodebin: has_vpp as a tri-state variable
11091 has_vpp can be UNKNOWN while the context message hasn't being received.
11092 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11093 https://bugzilla.gnome.org/show_bug.cgi?id=749554
11095 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11097 * gst/vaapi/gstvaapivideomemory.c:
11098 gstvaapivideomemory: native format with no derived image
11099 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
11100 info based on the derived image configuration.
11101 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11102 https://bugzilla.gnome.org/show_bug.cgi?id=744042
11104 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11106 * gst-libs/gst/vaapi/video-format.c:
11107 * gst-libs/gst/vaapi/video-format.h:
11108 * gst/vaapi/gstvaapivideomemory.c:
11109 surface pool config based on video info
11110 First added the function gst_vaapi_video_format_get_best_native(), which
11111 returns the best native format that matches a particular chroma type:
11112 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
11113 RGB32 chroma and encoded format map to NV12 too.
11114 That format is used to configure, initially, the surface's pool for the
11116 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11117 https://bugzilla.gnome.org/show_bug.cgi?id=744042
11119 2015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11121 * gst/vaapi/gstvaapivideomemory.c:
11122 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
11123 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11124 https://bugzilla.gnome.org/show_bug.cgi?id=744042
11126 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
11128 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11129 gstvaapiencoder: validate chroma according to the VA's RT format
11130 Before, only YUV420 color space where supported. With this patch, the
11131 encoder is queried to know the supported formats and admits YUV422
11132 color space if its available.
11133 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11134 https://bugzilla.gnome.org/show_bug.cgi?id=744042
11136 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11138 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11139 decoder: hevc: Add calculation of WpOffsetHalfRangeC
11140 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
11141 prediction weight table values with out using any hard coding.
11142 Fixme: We don't have parser API for sps_range_extension, so
11143 assumed zero value for high_precision_offsets_enabled_flag.
11144 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11146 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11148 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11149 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
11150 Based on ITU-T rec H265(4/2015): 7-56
11151 This was a wrong equation in rec H265 (4/2013): 7-44...
11152 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11154 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11156 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11157 decoder: hevc: Fix default value assignment of pred_weight_table
11159 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11161 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11162 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
11163 Assign only if ChromaArrayType != 0..
11164 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11166 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11168 * ext/codecparsers:
11169 codecparsers: Update to gst-vaapi-branch commit 1c70432
11170 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
11171 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
11172 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11174 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11176 * ext/codecparsers:
11177 codecparsers: Update to gst-vaapi-branch commit c18b8ad
11178 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
11179 a033083: videoparsers: h265: Fix the frame start detection code
11180 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11182 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11184 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11185 decoder: hevc: Add SEI parsing
11186 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11188 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11190 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11191 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
11192 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
11193 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
11194 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
11195 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
11196 is TRUE. Assuming them as MAIN profile for now.
11197 https://bugzilla.gnome.org/show_bug.cgi?id=753226
11198 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11200 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11202 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
11203 patches/videoparsers: Fix the wrong source file path
11204 This is something wrongly typed in commit 6d7b631
11206 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11208 * ext/codecparsers:
11209 codecparsers: Update to gst-vaapi-branch commit b8d8be4
11210 ee7e81b: h264parse: Don't discard first AU delimiter
11211 3690fb9: h264parse: Add more NAL types for debugging output
11212 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
11213 ace61048: h265parse: expose compatible profiles to downstream
11214 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11216 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11218 * gst/vaapi/gstvaapipluginutil.c:
11219 * gst/vaapi/gstvaapivideocontext.c:
11220 * gst/vaapi/gstvaapivideocontext.h:
11221 gstvaapivideocontext: remove unused parameter
11222 gst_vaapi_video_context_prepare() received an unused parameter. This patch
11223 removes it and the structure passed by the caller.
11224 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
11225 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11227 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11229 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11230 decoder: hevc: Fix decoding of stream when it has temporal sublayers
11231 We are calculating the dpb size based on max_dec_pic_buffering.
11232 But if there are more than one temporal sublayers, we are supposed
11233 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
11234 size calculation (Assuming HighestTid as max_sub_layers_minus).
11235 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
11236 https://bugzilla.gnome.org/show_bug.cgi?id=753226
11237 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11239 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11241 * gst/vaapi/gstvaapidecode.c:
11242 * gst/vaapi/gstvaapidecodebin.c:
11243 * gst/vaapi/gstvaapiencode_h264.c:
11244 * gst/vaapi/gstvaapiencode_h265.c:
11245 * gst/vaapi/gstvaapiencode_jpeg.c:
11246 * gst/vaapi/gstvaapiencode_mpeg2.c:
11247 * gst/vaapi/gstvaapiencode_vp8.c:
11248 * gst/vaapi/gstvaapipluginutil.h:
11249 * gst/vaapi/gstvaapipostproc.c:
11250 * gst/vaapi/gstvaapisink.c:
11251 refactor vaapi caps strings for pad templates
11252 Refactor the main vaapi caps strings into three macros:
11253 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
11254 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
11255 Those are in gstvaapipluginutil.h so all the elements could use them, instead
11256 of re-declaring them every time.
11257 No functional changes.
11258 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11260 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11262 * gst/vaapi/gstvaapipostproc.c:
11263 gstvaapipostproc: fix code style
11264 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11266 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11268 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11269 decoder: hevc: Fix the decoding of dependent slice segment
11270 Decoding process for reference picture list construction needs to be
11271 invoked only for P and B slice and the value for slice_type of dependent slice
11272 segment should be taken from the previous independent slice segment header
11274 https://bugzilla.gnome.org/show_bug.cgi?id=753226
11275 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11277 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
11279 * gst/vaapi/gstvaapipluginbase.c:
11280 plugins: reduce the noise of warnings
11281 Those messagse should be attached to the object, also the lack of
11282 caps is not an error, in particular in the case of JPEG encoding.
11283 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11284 https://bugzilla.gnome.org/show_bug.cgi?id=744042
11286 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11288 * gst-libs/gst/vaapi/gstvaapicontext.c:
11289 gstvaapicontext: fix the JPEG encoder attribs value
11290 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
11291 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
11292 assigns the returned value to the attribute.
11293 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11294 https://bugzilla.gnome.org/show_bug.cgi?id=744042
11296 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
11298 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11299 gstvaapiencoder: framerate 0/1 is valid too
11300 Framerate 0/1 is valid, and it is particularly useful for picture
11301 encoding, such as jpeg. This patch makes the encoder to admit that
11303 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11304 https://bugzilla.gnome.org/show_bug.cgi?id=744042
11306 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11308 * gst/vaapi/gstvaapipostproc.c:
11309 vaapipostroc: GLTextureUploadMeta in sink template
11310 Advertise GLTextureUploadMeta in sink caps template.
11311 https://bugzilla.gnome.org/show_bug.cgi?id=752130
11313 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11315 * gst/vaapi/Makefile.am:
11316 * gst/vaapi/gstvaapiencode.c:
11317 * gst/vaapi/gstvaapipluginbase.c:
11318 * gst/vaapi/gstvaapipluginbase.h:
11319 * gst/vaapi/gstvaapipostproc.c:
11320 * gst/vaapi/gstvaapisink.c:
11321 * gst/vaapi/gstvaapiuploader.c:
11322 * gst/vaapi/gstvaapiuploader.h:
11323 remove gstvaapiuploader
11324 Working on bug #744042 I realized that the gstvaapiuploader is practically not
11326 This patch removes the gstvaapiuploader and add the method
11327 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
11328 the system can handle, which is used by vaapisink and vaapipostproc.
11329 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11330 https://bugzilla.gnome.org/show_bug.cgi?id=752777
11332 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11334 * gst/vaapi/gstvaapidecode.c:
11335 vaapidecode: don't lost GLTextureUpload on seek
11336 When seeking, the decoder is reset, but the buffer pool is not
11337 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
11338 pool has the GLTextureUpload meta.
11339 The decoder knows that GLTextureUpload meta was negotiated in
11340 decide_allocation(), but this method is not called when seeking.
11341 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11342 https://bugzilla.gnome.org/show_bug.cgi?id=752929
11344 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11346 * gst/vaapi/gstvaapipluginutil.c:
11347 plugins: don't use gst_pad_get_allowed_caps()
11348 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
11349 decoders, that is OK, but in the case of the postproc might lead loops,
11350 since the gst_base_transform_query_caps() forwards the query upstream
11352 Instead of gst_pad_get_allowed_caps() we only query the peer with
11353 gst_pad_peer_query_caps() using the pad's template as filter.
11354 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11355 https://bugzilla.gnome.org/show_bug.cgi?id=752558
11357 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11362 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11364 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
11365 * patches/videoparsers/series.frag:
11366 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
11367 All API/ABI changes for S3D/MVC are added in 1.5, backporting
11368 them to older verison is not recommended.
11369 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11371 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11373 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
11374 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
11376 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11378 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
11379 decoder: jpeg: Align with new API/ABI changes in codecparser
11380 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11382 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11384 * ext/codecparsers:
11385 codecparsers: Update to gst-vaapi-branch commit 800bdb2
11386 ed13220: mpegvideometa: add meta transform function
11387 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
11388 7a51722: codecparsers: jpeg: fix docs for table parsing functions
11389 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
11390 387a39d: codecparsers: jpeg: fix up API
11391 db9d6a9: codecparsers: jpeg: tweak API a little
11392 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
11393 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
11394 4658c30: codecparsers: jpeg: fix calculation of segment size
11395 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
11396 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
11397 9422464: h264parse: fix typo in log message
11398 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
11399 77704ce: nalutils: trivial patch to check if
11400 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
11401 7862f95: Revert "codecparsers: remove ignored increment of return"
11402 54017b1: h264parse: Add support for passing stereoscopic/multiview info
11403 8667ee4: h264parse: Don't switch to passthrough on set_caps()
11404 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11406 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11408 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11409 decoder: h264: track previous reference frames.
11410 Improve closure of gaps in frame_num by strictly following and trying
11411 to fill them with previous reference frames. So, they are now tracked
11412 thus avoiding insertion of dummy ("greenish") frames.
11414 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11416 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11417 decoder: h264: fix integration of second field into the DPB.
11418 If the new picture to be added to the DPB is not a first field, then
11419 it shall be the second field of the previous picture that was added
11421 This removes the need for dpb_find_picture() now that we track the
11422 immediately preceding decoded picture, in decode order.
11424 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11426 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11427 decoder: h264: fix closure of "other-field" gap.
11428 When a dummy "other-field" is inserted, it is assumed to inherit the
11429 reference flags from the first field, and the sliding window decoded
11430 reference picture marking process is also executed so that corrupted
11431 frames are moved out as early as possible.
11432 While doing so, we also try to output frames that now contain a single
11433 valid field picture, prior to inserting any other picture into the DPB.
11434 Note: this may be superfluous currently based on the fact that dpb_add()
11435 combines the two most recent pairable fields, but this process would be
11436 further simplified later on.
11438 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11440 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11441 decoder: h264: track corrupted frames.
11442 Mark the picture as "corrupted" if it is reconstructed from corrupted
11443 references or if those references are fake, e.g. resulting from lost
11445 This is useful for notifying the upper layer, or downstream elements,
11446 that the decoded frame may contain artefacts.
11447 https://bugzilla.gnome.org/show_bug.cgi?id=703921
11449 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11451 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
11452 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
11453 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
11454 * gst/vaapi/gstvaapidecode.c:
11455 decoder: add initial infrastructure for marking corrupted output.
11456 Add initial infrastructure in core codec library and vaapidecode to mark
11457 corrupted frames as such. A corrupted frame is such a frame that was
11458 reconstructed from invalid references for instance.
11459 https://bugzilla.gnome.org/show_bug.cgi?id=751434
11460 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11462 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11465 Bump version for development
11467 === release 0.6.0 ===
11469 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11474 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11479 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11481 * gst-libs/gst/vaapi/gstvaapiprofile.c:
11482 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
11483 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
11484 Right now there is not a primary ranked parser for vc1 and the demuxers
11485 delivers caps without specifying the profile. This situation is not an issue
11486 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
11487 explicit profile defined in the negotiated caps.
11488 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
11489 negotiation admits caps subsets try outs.
11490 This patch solves the issue ignoring the profile negotiation in the caps. For
11491 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
11492 done without the vc1 parser, such as happens in gstreamer 1.5.
11493 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11495 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11497 * gst/vaapi/gstvaapi.c:
11498 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
11499 Unfortunately vaapidecodebin element is not seems to be stable
11500 enough for autoplugging ahead of vaapidecode.
11501 Lowering the rank for now (cosidering the immediate 0.6 release).
11502 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
11503 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11505 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11507 * gst-libs/gst/vaapi/Makefile.am:
11508 build: Add missing CFLAGS to Makefile.am
11510 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11512 * gst-libs/gst/vaapi/gstvaapifilter.c:
11513 gstvaapifilter: Only register STE property if it supported by corresponding VA library
11514 Fix the regression introduced in commit eb465fb.
11515 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
11516 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11518 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11520 * gst/vaapi/gstvaapipostproc.c:
11521 vaapipostproc: no format convert on GL tex upload meta
11522 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
11523 color format of the buffer.
11524 https://bugzilla.gnome.org/show_bug.cgi?id=748184
11526 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11528 * gst-libs/gst/vaapi/gstvaapifilter.c:
11529 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
11530 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
11531 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11533 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11535 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11536 encoder:h265: Fix the check for packed-header support
11537 Use VA_ENC_PACKED_HEADER_* definition for checking.
11538 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11540 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11542 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11543 encoder:h264: Fix the check for packed-header support
11544 Use VA_ENC_PACKED_HEADER_* definition for checking.
11545 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11547 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11549 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11550 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
11551 One buffering_period() SEI message shall be present in every IDR access unit
11552 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
11553 use a non-CQP mode, e.g. CBR. In other words, when
11554 nal_hrd_parameters_present_flag is set to 1.
11555 One picture_timing() SEI messages shall be present in every access unit
11556 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
11557 https://bugzilla.gnome.org/show_bug.cgi?id=722734
11558 https://bugzilla.gnome.org/show_bug.cgi?id=751831
11559 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11561 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11563 * gst/vaapi/gstvaapidecodebin.c:
11564 vaapidecodebin: notify if vpp is disabled
11565 When the system is aware that VPP is not available by the VA driver,
11566 it would be useful to notify to the user that the disable-vpp property
11568 https://bugzilla.gnome.org/show_bug.cgi?id=749554
11570 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11572 * gst/vaapi/gstvaapidecodebin.c:
11573 * gst/vaapi/gstvaapidecodebin.h:
11574 vaapidecodebin: enable vpp if it is available
11575 Instead of creating and adding VPP into the bin at setup, we wait until
11576 we are sure the VA driver supports it. We know that when the VA video
11577 context is received by the bin. Afterwards, it is decided to instanciate
11578 and link the VPP or not.
11579 This is more efficient and safer than waiting the VPP to fail and then
11581 https://bugzilla.gnome.org/show_bug.cgi?id=749554
11583 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11585 * tests/test-display.c:
11586 * tests/test-windows.c:
11587 tests: Fix compilation while enabling egl as the only renderer in build
11588 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
11590 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11593 configure: fix the build while enabling egl as the only renderer
11595 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11598 libs: Bump library major version
11600 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11602 * gst/vaapi/gstvaapi.c:
11603 * gst/vaapi/gstvaapidecodebin.c:
11604 * gst/vaapi/gstvaapiencode.c:
11605 * gst/vaapi/gstvaapiencode_jpeg.c:
11606 * gst/vaapi/gstvaapipluginbase.c:
11607 * gst/vaapi/gstvaapipluginutil.c:
11608 * gst/vaapi/gstvaapipostproc.c:
11609 * gst/vaapi/gstvaapivideobufferpool.c:
11610 * gst/vaapi/gstvaapivideocontext.c:
11611 * gst/vaapi/gstvaapivideomemory.c:
11612 * gst/vaapi/gstvaapivideometa.c:
11613 gst/vaapi: Switch to upstreram like indentation.
11614 gst-indent for all gst/vaapi/*.c source files
11616 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11618 * gst/vaapi/gstvaapidecodebin.c:
11619 * gst/vaapi/gstvaapidecodebin.h:
11620 vaapidecodebin: Add property to disable VPP
11621 Adding a new propery "disable-vpp", enabling it will prevent
11622 the insertion of vaapipostproc child element.
11623 This is helpful in debugging, specifically to narrow-down the
11624 vaapidecodebin/vaapipostproc related negotiation issues.
11625 No support for run-time disabling for now.
11626 https://bugzilla.gnome.org/show_bug.cgi?id=745901
11628 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11630 * gst/vaapi/gstvaapipostproc.c:
11631 vaapipostproc: Fix wrong selection of passthrough mode.
11632 The Current code path is falling back to passthorugh mode if there is no
11633 vpp property set by the user explictily. But we should not use the
11634 passthrough mode if the negotiated src pad caps have a differnt color space
11635 format than sink pad caps (Even though the user didn't set the format property
11637 https://bugzilla.gnome.org/show_bug.cgi?id=748184
11638 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11640 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11642 * gst/vaapi/gstvaapipostproc.c:
11643 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
11644 This is a workaround to deal with the va-intel-driver for non-native
11645 formats while doing advanced deinterlacing. The format of reference surfaces must
11646 be same as the format used by the driver internally for motion adaptive
11647 deinterlacing and motion compensated deinterlacing.
11648 A permanent solution could be to do the color space conversion internally
11649 for reference surfaces.
11650 https://bugzilla.gnome.org/show_bug.cgi?id=730925
11651 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11653 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
11655 * gst/vaapi/gstvaapisink.c:
11656 Work around ABBA deadlock between vaapisink and vaapipostproc
11657 vaapisink takes the display lock, then does a gst_buffer_replace which can
11658 take the lock on the gst_vaapi_video_pool.
11659 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
11660 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
11661 surfaces, which means that gst_vaapi_surface_create is
11662 called. gst_vaapi_surface_create takes the display lock.
11663 If vaapisink and vaapipostproc are in different threads, and this happens,
11664 you get a deadlock. vaapisink holds the display lock, and wants the
11665 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
11666 and wants the display lock.
11667 Work around this by releasing the display lock in vaapisink around the
11668 gst_buffer_replace.
11669 https://bugzilla.gnome.org/show_bug.cgi?id=738249
11670 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
11671 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11673 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
11675 * gst/vaapi/gstvaapidecodebin.c:
11676 * gst/vaapi/gstvaapidecodebin.h:
11677 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
11678 https://bugzilla.gnome.org/show_bug.cgi?id=745901
11680 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11682 * gst/vaapi/gstvaapipostproc.c:
11683 vaapipostproc: log negotiated caps
11685 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11687 * gst/vaapi/gstvaapipostproc.c:
11688 vaapipostproc: remove useless debug message
11690 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11692 * gst/vaapi/gstvaapidecode.c:
11693 vaapidecode: log negotiated src/sink caps
11695 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11697 * gst/vaapi/gstvaapisink.c:
11698 vaapisink: error handling if rendering fails
11699 This patch enhance the code path when an error is found when rendering a
11701 If the video meta doesn't contain a surface proxy or a surface, a warning
11702 message is printed.
11703 If the rendering backend fails, a error message is posted in the bus.
11704 https://bugzilla.gnome.org/show_bug.cgi?id=749382
11706 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11708 * gst/vaapi/gstvaapisink.c:
11709 vaapisink: Fix the conditional pad template creation.
11711 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11713 * tests/Makefile.am:
11714 build: Don't build simple-encoder test program if there is no VA Encoding support
11715 This will fix the build error against older VA-APIs <= 0.32
11717 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11719 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11720 * gst-libs/gst/vaapi/gstvaapicompat.h:
11721 Fix build error for older VA-API versions
11722 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
11723 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
11726 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11728 * gst/vaapi/gstvaapisink.c:
11729 vaapisink: Fix the capsfeature advertisement in padtemplate
11730 This fixes the regression introduced in 64acc74.
11731 If a pad supports multiple set of capsfeatures, it needs to add
11732 multiple equal structures with different feature sets to the caps.
11733 Because caps structures with the same name but with a non-equal
11734 set of caps features are not compatible.
11735 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
11736 https://bugzilla.gnome.org/show_bug.cgi?id=750095
11738 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
11740 * gst/vaapi/gstvaapisink.c:
11741 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
11742 https://bugzilla.gnome.org/show_bug.cgi?id=750095
11743 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11744 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11746 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
11748 * gst/vaapi/gstvaapipluginbase.c:
11749 vaapipluginbase: Override downstream allocation reply if no pool
11750 If the downstream replied without a pool, then override it.
11751 https://bugzilla.gnome.org/show_bug.cgi?id=748559
11753 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11755 * gst/vaapi/gstvaapipostproc.c:
11756 * gst/vaapi/gstvaapipostproc.h:
11757 vaapipostproc: add color balance interface
11758 https://bugzilla.gnome.org/show_bug.cgi?id=720376
11760 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11762 * gst-libs/gst/vaapi/gstvaapifilter.c:
11763 * gst-libs/gst/vaapi/gstvaapifilter.h:
11764 * gst/vaapi/gstvaapipostproc.c:
11765 * gst/vaapi/gstvaapipostproc.h:
11766 vaapipostproc: add skin tone enhancement
11767 Added the 'skin-tone-enhancement' property to vaapostproc.
11768 https://bugzilla.gnome.org/show_bug.cgi?id=744088
11770 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11772 * docs/reference/libs/libs-docs.xml.in:
11773 doc: add VA-API reference in freedesktop
11775 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11777 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
11778 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
11779 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
11780 patches/videoparsers: rebase all the h264parse patches
11781 In order to avoid the creation of .orig files and break the distcheck target
11783 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11785 * ext/libvpx/Makefile.am:
11786 build: don't build in parallel libvpx
11787 This fixes the distcheck -j XX target.
11789 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11791 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
11792 encoder: jpeg: Fix the packed header generation
11793 This is a work-around to satisfy the va-intel-driver.
11794 Normalize the quality factor and scale QM values (only for packed header
11795 generation) similar to what VA-Intel driver is doing . Otherwise the
11796 generated packed headers will be wrong, since the driver itself is
11797 scaling the QM values using the normalized quality factor.
11798 https://bugzilla.gnome.org/show_bug.cgi?id=748335
11799 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11801 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11803 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11804 decoder: h264: fix uninitialized variables in avcC mode.
11805 Fix uninitialized variables when decoding SPS and PPS NAL units from
11806 "codec-data" buffers. This is particularly important when seeking ops
11807 are involved, and the new persistent states are used more often.
11808 https://bugzilla.gnome.org/show_bug.cgi?id=750094
11810 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11812 * gst/vaapi/gstvaapidecode.c:
11813 vaapidecode: remove unneeded casting
11814 And a code-style fix
11816 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11818 * gst/vaapi/gstvaapidecode.c:
11819 vaapidecode: calculate decoding latency
11820 This is a naïve approach to the calculation of the VA-API decoding latency. It
11821 takes into consideration when the frame-rate has some insane value.
11822 https://bugzilla.gnome.org/show_bug.cgi?id=740419
11824 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
11827 configure: Compiling against libgstgl requires libgstvideo
11828 Fix detection of the GstGL helper headers in uninstalled
11831 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11833 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11834 encoder: hevc: Fix the size over-flow for encoded buffer.
11835 The approximation of 6 times compression ratio migh not
11836 work in all cases. Especially when enabling I frames.
11837 Provide large enough size for coded-buffer creation.
11839 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11841 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11842 encoder: vp8: Fix the size over-flow for encoded buffer.
11843 The approximation of 4 times compression ratio will not
11844 work in all cases. Especially when enabling I frames.
11845 Provide large enough size for coded-buffer creation.
11847 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11849 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11850 encoder: hevc: fix bug in multi slice encoding.
11851 This is a work-around for satisfying the VA-Intel driver.
11852 The driver only support slices begin from CTU row start address.
11853 Multi-Slice encoding also requires a fix in va-intel-driver:
11854 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
11855 https://bugzilla.gnome.org/show_bug.cgi?id=749854
11856 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11858 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11860 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11861 decoder: h264: add initial support for loss of pictures.
11862 Implement decoding process for gaps in frame_num (8.5.2). This
11863 also somewhat supports unintentional loss of pictures.
11864 https://bugzilla.gnome.org/show_bug.cgi?id=745048
11865 https://bugzilla.gnome.org/show_bug.cgi?id=703921
11866 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
11867 [fixed derivation of POC, ensured clone is valid for reference,
11868 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
11869 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11871 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11873 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11874 decoder: h264: add support for missing first field.
11875 Try to identify missing first fields too, thus disregarding any
11876 intermediate gaps in frames. We also assume that we keep the same
11877 field sequence, i.e. if previous frames were in top-field-first
11878 (TFF) order, then so are subsequent frames.
11879 Note that insertion of dummy first fields need to operate in two
11880 steps: (i) create the original first field that the current field
11881 will inherit from, and (ii) submit that field into the DPB prior
11882 to initializing the current (other) field POC values but after any
11883 reference flag was set. i.e. copy reference flags from the child
11884 (other field) to the parent (first field).
11885 https://bugzilla.gnome.org/show_bug.cgi?id=745048
11887 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11889 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11890 decoder: h264: add support for missing second field.
11891 Interlaced H.264 video frames always have two fields to decode and
11892 display. However, in some cases, e.g. packet loss, one of the field
11893 can be missing. This perturbs the reference picture marking process,
11894 whereby the number of references available in DPB no longer matches
11895 the expected value.
11896 This patch adds initial support for missing field within a decoded
11897 frame. The current strategy taken is to find out the nearest field,
11898 by POC value, and with the same parity.
11899 https://bugzilla.gnome.org/show_bug.cgi?id=745048
11901 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11903 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11904 decoder: h264: improve tracking of "top-field-first" flag.
11905 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
11906 does not mandate it. This will be useful for tracking missing fields, and
11907 also for more correct _split_fields() implementation for frames in the DPB.
11909 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11911 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11912 decoder: h264: skip all pictures prior the first I-frame.
11913 Don't try to decode pictures until the first I-frame is received within
11914 the currently active sequence. There is no point is decoding and then
11915 displaying frames with artifacts.
11917 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11919 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11920 decoder: h264: fix processing of EOSEQ NAL.
11921 Fix decoding of end_of_seq() NAL unit so that to not submit the current
11922 picture for decoding again. This is pretty vintage code that dates back
11923 before the existing of the whole decoder units machinery.
11924 One issue that could be arising if that code was kept is that we could
11925 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
11926 Once without the decode_only flag set, and once with that flag set. The
11927 end result is that the GstVideoDecoder would release the codec frame
11928 twice, thus releasing stale data.
11929 In short, the piece of code that is removed by this patch is for once
11930 completely obsolete for a while, and secondly error-prone in corner
11933 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
11935 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11936 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11937 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
11938 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
11939 decoder: add utility function to clone picture objects.
11940 https://bugzilla.gnome.org/show_bug.cgi?id=703921
11941 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
11942 [added cosmetic changes, fixed propagation of "one-field" flag to
11943 children, fixed per-codec clone modes (h264)]
11944 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11946 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
11948 * gst/vaapi/Makefile.am:
11949 build: don't compile HEVC encoder if not supported
11951 (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
11952 https://bugzilla.gnome.org/show_bug.cgi?id=749954
11953 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
11954 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11956 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
11958 * gst-libs/gst/vaapi/gstvaapicompat.h:
11959 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11960 HEVC: decode: add missing va_dec_hevc header
11961 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
11962 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11963 https://bugzilla.gnome.org/show_bug.cgi?id=749953
11965 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
11967 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
11968 mpeg2: fix PTS cache for GOP start.
11969 If the GOP temporal sequence number (TSN) is interpolated from a valid
11970 PTS, then we need to compensate that PTS corresponding to the start of
11971 GOP with the next picture to be decoded, which shall be an I-frame,
11972 based on its sequence number.
11973 https://bugzilla.gnome.org/show_bug.cgi?id=748676
11975 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11977 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
11978 mpeg2: avoid crash when seeking with debug logs
11979 Move down the debug message when the state of the decoder is verified
11980 so the slice header is not NULL.
11982 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
11984 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
11985 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
11986 Reset state and add some checks for safe state to avoid a crash and
11987 a warning after the decoder is destroyed/recreated during a seek.
11989 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11991 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
11992 * patches/videoparsers/series.frag:
11993 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
11994 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11996 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11998 * ext/codecparsers:
11999 codecparsers: Update to gst-vaapi-branch commit 20ee952
12000 b7dded3: h264parse: don't consider unknown stream-format as avc
12001 5110ad9: h264parse: fix up handling of input caps corner cases
12002 e51db3e: h264parse: Remove dead code
12003 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
12004 8482957: h265parse: Fix profile, tier and level setting in caps
12005 4649acb: h265parse: Fix the memory freeing of stored VPS nals
12006 f2beeb7: h265parse: Fix source caps to report cropped dimensions
12007 6886a31: h264parse: Fix profile and level setting in caps
12008 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
12009 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
12010 53074fc: build: Upgrade GStreamer dependency to 1.0
12011 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12013 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12015 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12016 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
12017 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12019 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12021 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12022 HEVC: decode: Update Cropping Rectangle
12023 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12025 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12027 * gst/vaapi/Makefile.am:
12028 * gst/vaapi/gstvaapi.c:
12029 * gst/vaapi/gstvaapiencode_h265.c:
12030 * gst/vaapi/gstvaapiencode_h265.h:
12031 HEVC_Encode: Add HEVC(h265) Encoder plugin
12032 https://bugzilla.gnome.org/show_bug.cgi?id=748874
12033 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12035 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12037 * gst-libs/gst/vaapi/Makefile.am:
12038 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12039 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
12040 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
12041 https://bugzilla.gnome.org/show_bug.cgi?id=748874
12042 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12044 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12047 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
12048 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12049 https://bugzilla.gnome.org/show_bug.cgi?id=748874
12051 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12053 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
12054 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
12055 gstvaapiutils_h265: Add H265 Tier specific utility functions
12056 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
12057 -- New API: gst_vaapi_utils_h265_get_tier_string()
12058 https://bugzilla.gnome.org/show_bug.cgi?id=748874
12059 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12061 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12063 * docs/reference/plugins/Makefile.am:
12064 doc: conditional linking for scanner
12065 Add x11 library only if it is enabled.
12066 https://bugzilla.gnome.org/show_bug.cgi?id=749018
12068 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12070 * docs/reference/plugins/plugins.types:
12071 doc: fix scanner compilation warning
12072 https://bugzilla.gnome.org/show_bug.cgi?id=749018
12074 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12076 * docs/reference/libs/libs-docs.xml.in:
12077 * docs/reference/libs/libs-sections.txt:
12078 doc: update sections and symbols
12079 https://bugzilla.gnome.org/show_bug.cgi?id=749018
12081 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12085 * debian.upstream/Makefile.am:
12086 * docs/Makefile.am:
12087 * docs/reference/Makefile.am:
12088 * docs/reference/libs/Makefile.am:
12089 * docs/reference/plugins/Makefile.am:
12091 * ext/libvpx/Makefile.am:
12093 * gst-libs/Makefile.am:
12094 * gst-libs/gst/Makefile.am:
12095 * gst-libs/gst/base/Makefile.am:
12096 * gst-libs/gst/codecparsers/Makefile.am:
12097 * gst-libs/gst/vaapi/Makefile.am:
12099 * gst/vaapi/Makefile.am:
12100 * patches/Makefile.am:
12101 * patches/videoparsers/Makefile.am:
12102 * pkgconfig/Makefile.am:
12103 * tests/Makefile.am:
12105 This patch handles dinamically the gitignore files with git.mk[1].
12106 Removed the automake variable MAINTAINERCLANFILES in most of the
12107 Makefile.am files since now it is handled by the top one.
12108 1. https://github.com/behdad/git.mk/blob/master/git.mk
12109 https://bugzilla.gnome.org/show_bug.cgi?id=749321
12111 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12113 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12114 wayland: sync() when destroy()
12115 Before pushing a the new frame, the render() method calls sync() to flush the
12116 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
12117 to a memory leak too.
12118 This patch calls sync() in the destroy() to flush the pending frames before
12119 destroying the window.
12120 Also a is_cancelled flag is added. This flag tells to not flush the event
12121 queue again since the method failed previously or were cancelled by the user.
12122 https://bugzilla.gnome.org/show_bug.cgi?id=749078
12124 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
12126 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12127 * gst-libs/gst/vaapi/gstvaapiwindow.h:
12128 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12129 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12130 * gst/vaapi/gstvaapisink.c:
12131 vaapisink: implement unlock/unlock_stop for wayland
12132 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
12133 shutting down. This can happen e.g. if the wayland compositor exits while
12134 the pipeline is running.
12136 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
12137 * splitted the patch removing wl_display_dispatch_queue()
12138 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12139 https://bugzilla.gnome.org/show_bug.cgi?id=747492
12140 https://bugzilla.gnome.org/show_bug.cgi?id=749078
12142 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12145 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12146 wayland: wl_display_dispatch_queue() can block forever.
12147 wl_display_dispatch_queue() might prevent the pipeline from shutting
12148 down. This can happen e.g. if the wayland compositor exits while the
12149 pipeline is running.
12150 This patch replaces it with these steps:
12151 - With wl_display_prepare_read() all threads announce their intention
12153 - wl_display_read_events() is thread save. On threads reads, the other
12154 wait for it to finish.
12155 - With wl_display_dispatch_queue_pending() each thread dispatches its
12157 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
12158 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
12159 * stripped out the unlock() unlock_stop() logic
12160 * stripped out the poll handling
12161 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12162 https://bugzilla.gnome.org/show_bug.cgi?id=749078
12163 https://bugzilla.gnome.org/show_bug.cgi?id=747492
12165 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12167 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12168 wayland: rename frame for last_frame
12169 Since frame in the private data means the last frame sent, it would
12170 semantically better use last_frame.
12171 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
12173 https://bugzilla.gnome.org/show_bug.cgi?id=749078
12175 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12177 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12178 wayland: use a counter as sync flag
12179 Wayland window has a pointer to the last pushed frame and use it to set the
12180 flag for stopping the queue dispatch loop. This may lead to memory leaks,
12181 since we are not keeping track of all the queued frames structures.
12182 This patch removes the last pushed frame pointer and change the binary flag
12183 for an atomic counter, keeping track of number of queued frames and use it for
12184 the queue dispatch loop.
12185 https://bugzilla.gnome.org/show_bug.cgi?id=749078
12187 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12189 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12190 wayland: decouple wl_buffer from frame
12191 This patch takes out the wayland's buffer from the the frame structure. The
12192 buffer is queued to wayland and destroyed in the "release" callback. The
12193 frame is freed in the surface's "done" callback.
12194 In this way a buffer may be leaked but not the whole frame structure.
12195 - surface 'done' callback is used to throttle the rendering operation and to
12196 unallocate the frame, but not the buffer.
12197 - buffer 'release' callback is used to destroy wl_buffer.
12198 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
12200 * kept the the event_queue for buffer's proxy
12201 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12202 https://bugzilla.gnome.org/show_bug.cgi?id=749078
12204 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12206 * gst/vaapi/gstvaapisink.c:
12207 vaapisink: fix indentation
12209 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12211 * debian.upstream/Makefile.am:
12212 * ext/libvpx/Makefile.am:
12213 * gst-libs/gst/vaapi/Makefile.am:
12214 * gst/vaapi/Makefile.am:
12215 * tests/Makefile.am:
12216 build: fix make distcheck
12217 This patch fixes several issues found when running the `make distcheck`
12219 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
12221 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
12223 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
12224 - The make target distcleancheck failed because some autogenerated files
12225 were not handled with the DISTCLEANFILES variable.
12226 Note: `make distcheck -jXX` is not currently supported.
12228 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12230 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
12231 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
12232 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
12233 h264parse: update patches with upstream
12234 These patches didn't applied cleanly, breaking the `make distcleancheck`
12235 target. Re-sync'ed the patches against the current git's submodule.
12237 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12239 * tests/simple-encoder.c:
12240 tests: simple-encoder: fix build warnings on 64-bit platforms.
12241 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
12242 importantly fix warnings spitted out during build on 64-bit platforms.
12243 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
12244 g_warning ("Invalid VAAPI buffer size (%d)", size);
12246 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
12247 g_warning ("Failed to create output buffer of size %d", size);
12250 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12252 * gst/vaapi/gstvaapipluginbase.c:
12253 * gst/vaapi/gstvaapipluginutil.c:
12254 * gst/vaapi/gstvaapipluginutil.h:
12255 * gst/vaapi/gstvaapivideocontext.h:
12256 plugins: remove gstreamer-0.10 crumbs
12257 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
12258 Still, its definition was still in the code. This patch removes it.
12259 https://bugzilla.gnome.org/show_bug.cgi?id=749113
12261 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12263 * tests/Makefile.am:
12264 * tests/simple-encoder.c:
12265 * tests/y4mreader.c:
12266 * tests/y4mreader.h:
12267 tests: add simple-encoder program
12268 This patch adds a simple-encoder test program that uses libgstvaapi for video
12269 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
12270 format. That can be from a regular file or standard input when the input
12272 Usage: simple-encoder [options]* <source>
12274 --output|-o output file name
12275 --codec|-c codec to use for video encoding
12276 --bitrate|-b desired bitrate (kbps)
12277 By default, and as an initial patch, the encoded stream shall conform to the
12278 minimally supported profile. That is "Constrained Baseline Profile" for H.264
12279 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
12280 generated by libgstvaapi.
12281 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
12282 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
12283 * general code clean-up
12284 * removed the yuv reader thread
12285 * re-wrote the y4m file parser
12286 * updated used API fixed some wrong usage
12287 * fixed a lot of memory leaks
12288 * added the bitrate setting
12289 * keep fps' numerator and denominator
12290 * simplified the thread control
12291 * removed custom logging and use glib
12292 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12293 https://bugzilla.gnome.org/show_bug.cgi?id=719528
12295 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12297 * gst-libs/gst/vaapi/gstvaapiencoder.h:
12298 libs: trivial documentation fix
12299 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
12300 are not errors, so they do not have the ERROR namespace.
12301 This patch fixes this typo in documentation.
12303 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
12305 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12306 window: Correct prototype to match implementation
12307 On s390x, guintptr and GstVaapiID are not compatible types. The
12308 implementation of gst_vaapi_window_new_internal() and all its callers
12309 seem to assume that its third argument is a GstVaapiID, while the
12310 header gives it guintptr type.
12311 https://bugzilla.gnome.org/show_bug.cgi?id=744559
12313 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12315 * gst/vaapi/gstvaapidecode.c:
12316 * gst/vaapi/gstvaapidecodebin.c:
12317 vaapidecode: add guards for disabled codecs.
12318 Fix link when building plugin elements without HEVC support. e.g. don't
12319 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
12320 support HEVC enabled in libgstvaapi.
12321 Also, drop disabled codecs from static template caps. Add the missing
12322 HEVC static template caps into vaapidecodebin too.
12324 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12327 * gst-libs/gst/vaapi/glibcompat.h:
12328 build: upgrade glib dependency to 2.32
12329 Since bug #745728 was fixed the oldest supported version of GStreamer is
12330 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
12332 This patch changes the required version of glib in configure.ac and removes
12333 the hacks in glibcompat.h
12334 https://bugzilla.gnome.org/show_bug.cgi?id=748698
12336 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12338 * gst/vaapi/gstvaapipluginbase.c:
12339 plugins: check if the pool config is already set
12340 In commit 97b768, a regression for GStreamer 1.2 was introduced:
12341 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
12342 config option is already set. This patch adds an inline function to
12343 first verify if the option is not in the pool config berfore add it.
12345 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12347 * gst/vaapi/gstvaapipostproc.c:
12348 vaapipostproc: tune up a couple of log messages
12349 In order to reduce the noise, the query type log was downgrade from INFO to
12350 DEBUG, and the shared display address log message is assigned to the object.
12352 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12354 * gst/vaapi/gstvaapipluginbase.c:
12355 plugins: check gst_buffer_pool_set_config()
12356 Check the return value of gst_buffer_pool_set_config(). If it fails an error
12357 message is posted in the bus.
12359 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12361 * gst/vaapi/gstvaapipluginbase.c:
12362 plugins: more specific log message
12363 Be more specific in the log message about the reason of creating a new pool.
12365 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12367 * gst/vaapi/gstvaapipluginbase.c:
12368 plugins: delete unused variable
12369 need_pool is a boolean variable extracted from the allocation query, but it is
12370 not used afterwards.
12372 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
12374 * gst/vaapi/gstvaapipluginbase.c:
12375 vaapipluginbase: Update the pool if there was no pool in the downstream reply
12376 Fix regression introduced by bd866479, the query after decide_allocation()
12377 always needs a pool in the first slot.
12378 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12379 https://bugzilla.gnome.org/show_bug.cgi?id=748559
12381 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
12383 * gst/vaapi/gstvaapivideobufferpool.c:
12384 videopool: Free members before chaining up finalize
12385 The finalize function in GObject frees the object memory, so
12386 everything else needs to have been freed before.
12387 https://bugzilla.gnome.org/show_bug.cgi?id=748563
12389 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
12391 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12392 wayland: don't leak the registry proxy
12393 Release the registry proxy when closing the display.
12394 https://bugzilla.gnome.org/show_bug.cgi?id=748564
12396 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12398 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12399 wayland: refactor _sync() method and rename callback
12400 This patch only intends to improve readability: in the method
12401 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
12403 Also renames the frame_redraw_callback() callback into frame_done_callback(),
12404 which is a bit more aligned to Wayland API.
12406 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
12408 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12409 wayland: free frame in buffer release callback
12410 The Wayland compositor may still use the buffer when the frame done
12411 callback is called.
12412 This patch destroys the frame (which contains the buffer) until the
12413 release callback is called. The draw termination callback only controls
12414 the display queue dispatching.
12415 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12416 https://bugzilla.gnome.org/show_bug.cgi?id=747492
12418 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12420 * gst/vaapi/gstvaapidecode.c:
12421 vaapidecode: refactor gst_vaapidecode_internal_flush()
12422 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
12423 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
12424 shares the same error message of gst_vaapidecode_internal_flush() when flush
12427 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12429 * gst/vaapi/gstvaapidecode.c:
12430 vaapidecode: refactor gst_vaapidecode_destroy()
12431 Add the method gst_vaapidecode_purge(). This method releases the
12432 flushed frames from the decoder.
12433 This new method add more readablity to gst_vaapidecode_destroy()
12435 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
12437 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12438 * gst/vaapi/gstvaapidecode.c:
12439 vaapidecode: Tell the base class about released frames on close
12440 The base class needs to be informed about frames that were still queued
12441 in the decoder on release, otherwise they are leaked.
12442 https://bugzilla.gnome.org/show_bug.cgi?id=747999
12444 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12446 * gst/vaapi/gstvaapidecode.c:
12447 vaapidecode: reduce logging noise
12448 When a frame is rejected by downstream, the message is logged twice. This
12449 patch removes one of those logging messages.
12450 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
12451 the log message from error to info.
12453 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
12455 * gst/vaapi/gstvaapidecode.c:
12456 vaapidecode: Use the GstVideoDecoder error reporting function
12457 This way, the decoder won't stop on the first decoding error,
12458 in most cases it can recover after some glitchiness.
12459 https://bugzilla.gnome.org/show_bug.cgi?id=744620
12461 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
12463 * gst/vaapi/gstvaapipluginbase.c:
12464 vaapipluginbase: The allocation query can return without a pool
12465 It is possible to return the min/max/size without actually providing
12466 a pool. This way the source knows how many buffers downstream needs.
12467 https://bugzilla.gnome.org/show_bug.cgi?id=748076
12469 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12472 * gst/vaapi/Makefile.am:
12473 * gst/vaapi/gstvaapiparse.c:
12474 * gst/vaapi/gstvaapiparse.h:
12475 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
12476 * patches/videoparsers/series.frag:
12477 plugins: Add h265 videoparser element "vaapiparse_h265"
12478 This is a mirror of h265parse element in upstream gst-plugins-bad.
12479 There could be additional patches but all should go to upstream.
12480 This is for making development faster.
12481 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
12483 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12485 * ext/codecparsers:
12486 codecparsers: Update to gst-vaapi-branch commit 43a0368
12487 45f1c28: codecparser: h265: Fix nal unit size checking
12488 f25987b: codecparser: h265: Calculate crop rectangle dimensions
12489 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
12490 4c8ec41: Add h265 videoparser plugin source files
12492 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12495 autogen: drop videoutils submodule.
12497 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12499 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12500 decoder: hevc: cosmetics.
12501 Mostly coding style updates. Avoid integer signess inconsistencies.
12502 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
12504 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12506 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12507 decoder: hevc: Add Support for tiled video decoding
12508 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
12509 the tile column width and tile row height should be calculated.
12510 Equations: 6-1, 6-2
12511 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
12513 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12515 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12516 decoder: hevc: Fix decoding when there are RASL pictures present.
12517 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
12518 -- Fix PicOutputFlag setting for RASL picture
12519 -- Fix prev_poc_lsb/prev_poc_msb calculation
12520 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
12521 -- Fixed couple of crashes and added cosmetics
12523 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
12525 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12526 display: drm: fix race condition setting device type
12527 There is a race condition where g_drm_device_type can be left set to
12528 DRM_DEVICE_RENDERNODES when it shouldn't.
12529 If thread 1 comes in and falls into the last else statement setting up both
12530 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
12531 it sets g_drm_device_type = RENDERNODES.
12532 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
12533 up that type to be tried but then encounters the lock and has to wait until the
12534 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
12535 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
12536 attempts will only try RENDERNODES.
12537 So to avoid this situation I have simply moved the acquisition of the lock higher
12538 up in the attached patch.
12539 https://bugzilla.gnome.org/show_bug.cgi?id=747914
12541 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
12543 * gst/vaapi/gstvaapipostproc.c:
12544 vaapipostproc: Don't create filter on caps query
12545 The problem with this is that creating the filter causes the display to
12546 be selected, and the caps query happens while linking the element. So,
12547 if the downstream or upstream element is using a specific display
12548 object, it won't be propagated correctly to the postproc as it already
12549 has a display at this point.
12550 https://bugzilla.gnome.org/show_bug.cgi?id=747945
12552 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
12554 * gst-libs/gst/vaapi/gstvaapivideopool.c:
12555 videopool: Release lock while allocating new object
12556 The video pool can be accessed with the display lock held, for example,
12557 when releasing a buffer from inside vaapisink_render, but allocating
12558 a new object can may also take the display lock. Which means a possible
12560 https://bugzilla.gnome.org/show_bug.cgi?id=747944
12562 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12564 * gst/vaapi/gstvaapisink.c:
12565 vaapisink: use GstVideoSink vmethod show_frame()
12566 vaapisink inherits from GstVideoSink, in order to use its functionality (such
12567 as ::show-preroll-frame property), we should use its vmethod show_frame(),
12568 rather than call ourselves render() and preroll().
12570 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12572 * gst/vaapi/gstvaapisink.c:
12573 * gst/vaapi/gstvaapisink.h:
12574 vaapisink: add 'handoff' signal
12575 This patch adds the signal ::handoff and the property signal-handoffs. If the
12576 property is set TRUE, the signal ::handoff is emitted just after the buffer is
12578 Based on Zhao Halley <halley.zhao@intel.com>
12579 https://bugzilla.gnome.org/show_bug.cgi?id=747905
12581 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12583 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12584 HEVC: silence the compiler
12585 Fixed a couple of clang complains.
12587 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
12589 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12590 wayland: destroy vpp buffer pool on resize
12591 Otherwise the old buffers with the old size are used.
12592 https://bugzilla.gnome.org/show_bug.cgi?id=747491
12594 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12597 * gst-libs/gst/vaapi/Makefile.am:
12598 build: don't compile HEVC if not supported
12599 HEVC decoding was added recently libva-1.5.
12600 This patch avoids HEVC decoding support in libgstvaapi if it is not available
12601 in the installed libva.
12602 https://bugzilla.gnome.org/show_bug.cgi?id=747831
12604 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12606 * gst/vaapi/gstvaapidecode.c:
12607 vaapidecode: Update Author name in plugin metadata
12609 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12611 * gst/vaapi/gstvaapidecode.c:
12612 plugins: Add HEVC decoder
12613 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12615 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12617 * gst-libs/gst/vaapi/Makefile.am:
12618 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12619 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
12620 HEVC: Add HEVC(h265) decoder to core libgstvaapi
12621 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12623 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12625 * gst-libs/gst/vaapi/Makefile.am:
12626 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
12627 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
12628 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
12629 HEVC: Add codec utility methods to core libgstvaapi
12630 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12632 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12634 * gst-libs/gst/vaapi/gstvaapiprofile.c:
12635 * gst-libs/gst/vaapi/gstvaapiprofile.h:
12636 HEVC: gstvaapiprofile: Add profile definitions
12637 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12639 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12642 HEVC: build: Check availability of h265 decoder APIs
12643 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12645 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12649 * gst-libs/gst/codecparsers/Makefile.am:
12650 HEVC: Allow to build h265 codecparser internally
12651 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12653 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12655 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12656 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
12657 * gst-libs/gst/vaapi/gstvaapisurface.c:
12658 guard buffer export API if not available
12659 The support for buffer exports in VA-API was added in version 0.36. These
12660 interfaces are for interop with EGL, OpenCL, etc.
12661 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
12662 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
12663 This patch guards all the buffer exports handling (and dmabuf allocator) if
12664 the detected VA-API version is below 0.36.
12665 https://bugzilla.gnome.org/show_bug.cgi?id=746405
12667 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12669 * ext/codecparsers:
12670 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
12671 767bf22: codecparsers: h265: add helpers to convert quantization matrices
12672 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
12673 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
12674 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
12675 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
12677 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
12679 * gst/vaapi/gstvaapidecode.c:
12680 vaapidecode: unref video codec frame twice
12681 We get one reference when the frame is passed to decode_handle_frame()
12682 and create another one in gst_vaapi_decoder_push_frame().
12683 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
12684 Here the frame is always released twice:
12685 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
12686 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
12687 In gst_vaapidecode_reset_full() both references to the frame must be
12689 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12690 https://bugzilla.gnome.org/show_bug.cgi?id=743226
12692 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12694 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12695 libs: remove unused variables
12696 clang reports these unused variables. Let's get rid of them.
12697 This patch is a missing part of commit c82e5173
12698 https://bugzilla.gnome.org/show_bug.cgi?id=747312
12700 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12702 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
12703 decoder: mpeg4: remove an spurious comparison
12704 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
12705 less than zero. Hence this pre-condition test is a no-op. This patch removes
12707 https://bugzilla.gnome.org/show_bug.cgi?id=747312
12709 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12711 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12712 encoder: h264: casts slice_param->slice_type
12713 slice_type in slice_param is defined as (char *), but it is compared against a
12714 signed integer. clang complains about this comparison.
12715 This patch casts the variable.
12716 https://bugzilla.gnome.org/show_bug.cgi?id=747312
12718 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12720 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
12721 encoder: avoid GstVaapiCodedBuffer redefinition
12722 The symbol GstVaapiCodedBuffer is already defined in
12723 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
12724 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
12725 This patch removes that redefinition.
12726 https://bugzilla.gnome.org/show_bug.cgi?id=747312
12728 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12730 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12731 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12732 libs: remove unused variables
12733 clang reports these unused variables. Let's get rid of them.
12734 https://bugzilla.gnome.org/show_bug.cgi?id=747312
12736 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12738 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12739 encoder: mpeg2: use fabsf() instead of abs()
12740 The member value in frame_rate_tab is float, the result of the abs() function
12741 should be float too. But abs() only manages integers.
12742 This patch replaces abs() with fabsf() to handle correctly the possible floats
12744 https://bugzilla.gnome.org/show_bug.cgi?id=747312
12746 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12748 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12749 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12750 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12751 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12752 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
12753 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
12754 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
12755 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
12756 https://bugzilla.gnome.org/show_bug.cgi?id=747312
12758 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12763 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12767 Changing source code download links from https://gitorious to https://github
12768 -- gitmodules: Change gstreamer-codecparsers submodule source download link
12769 -- README: Change the gstreamer-vaapi webpage link
12771 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12773 * ext/codecparsers:
12774 codecparsers: update to gst-vaapi-branch commit 1f792e4
12775 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
12776 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
12777 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
12778 2b92a67: h264parse: reset the parser information when caps changes
12779 05eee86: codecparsers: Indent file
12780 e27a38b: codecparsers: Add READ_UE_MAX macro
12781 2036471: Constify some static arrays everywhere
12783 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12785 * gst/vaapi/gstvaapivideoconverter_glx.c:
12786 * gst/vaapi/gstvaapivideoconverter_x11.c:
12787 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
12789 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12791 * gst/vaapi/gstvaapidecode.c:
12792 * gst/vaapi/gstvaapidecodebin.c:
12793 * gst/vaapi/gstvaapiencode_h264.c:
12794 * gst/vaapi/gstvaapiencode_jpeg.c:
12795 * gst/vaapi/gstvaapiencode_mpeg2.c:
12796 * gst/vaapi/gstvaapiencode_vp8.c:
12797 * gst/vaapi/gstvaapipluginbase.c:
12798 * gst/vaapi/gstvaapipluginutil.c:
12799 * gst/vaapi/gstvaapipluginutil.h:
12800 * gst/vaapi/gstvaapipostproc.c:
12801 * gst/vaapi/gstvaapisink.c:
12802 * gst/vaapi/gstvaapivideobuffer.c:
12803 * gst/vaapi/gstvaapivideobufferpool.c:
12804 * gst/vaapi/gstvaapivideocontext.c:
12805 * gst/vaapi/gstvaapivideocontext.h:
12806 * gst/vaapi/gstvaapivideoconverter_glx.h:
12807 * gst/vaapi/gstvaapivideoconverter_x11.h:
12808 * gst/vaapi/gstvaapivideomemory.h:
12809 * gst/vaapi/gstvaapivideometa_texture.c:
12810 Removal of gstreamer-1.0 support
12811 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
12812 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
12813 This patch removes all the pre-processor conditional code compilation guarded
12815 Thus, all the video converters were removed too.
12816 https://bugzilla.gnome.org/show_bug.cgi?id=745728
12817 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12818 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12820 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12822 * gst-libs/gst/vaapi/gstcompat.h:
12823 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12824 * gst-libs/gst/vaapi/gstvaapiprofile.c:
12825 * gst-libs/gst/vaapi/sysdeps.h:
12826 * gst/vaapi/gstcompat.h:
12827 * gst/vaapi/gstvaapi.c:
12828 * gst/vaapi/gstvaapidecode.c:
12829 * gst/vaapi/gstvaapidecodebin.c:
12830 * gst/vaapi/gstvaapiencode.c:
12831 * gst/vaapi/gstvaapiencode_h264.c:
12832 * gst/vaapi/gstvaapiencode_jpeg.c:
12833 * gst/vaapi/gstvaapiencode_mpeg2.c:
12834 * gst/vaapi/gstvaapiencode_vp8.c:
12835 * gst/vaapi/gstvaapiparse.c:
12836 * gst/vaapi/gstvaapipluginbase.c:
12837 * gst/vaapi/gstvaapipluginutil.c:
12838 * gst/vaapi/gstvaapipostproc.c:
12839 * gst/vaapi/gstvaapisink.c:
12840 * gst/vaapi/gstvaapiuploader.c:
12841 * gst/vaapi/gstvaapivideobuffer.c:
12842 * gst/vaapi/gstvaapivideobufferpool.c:
12843 * gst/vaapi/gstvaapivideocontext.c:
12844 * gst/vaapi/gstvaapivideoconverter_glx.c:
12845 * gst/vaapi/gstvaapivideoconverter_x11.c:
12846 * gst/vaapi/gstvaapivideomemory.c:
12847 * gst/vaapi/gstvaapivideometa.c:
12848 * gst/vaapi/gstvaapivideometa_texture.c:
12850 update and move gstcompat.h
12851 The purpose of gstcompat.h is to couple the API differences among
12852 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
12853 in this compatibility layer shall be removed.
12854 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
12855 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
12856 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
12857 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
12858 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
12859 https://bugzilla.gnome.org/show_bug.cgi?id=745728
12860 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12861 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12863 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12866 * gst/vaapi/Makefile.am:
12867 autotools: remove gstreamer-1.0 support
12868 This patch only removes the support of gstreamer-1.0 in the autotools
12869 scripts. No other files are touched.
12870 In the automake file all the converters were deprecated.
12871 https://bugzilla.gnome.org/show_bug.cgi?id=745728
12872 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12873 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12875 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12880 Remove the gstreamer-videoutils submodule
12882 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12885 * gst-libs/gst/Makefile.am:
12886 * gst-libs/gst/vaapi/Makefile.am:
12887 * gst-libs/gst/video/Makefile.am:
12888 * gst/vaapi/Makefile.am:
12889 * tests/Makefile.am:
12890 Remove libgstvaapi-videoutils.so
12891 This library was intended to add the base classes for video decoders which
12892 where not included in gstreamer-0.10.
12893 Since the support of gstreamer-0.10 is deprecated those classes are not
12894 required, thus the whole library is removed.
12895 https://bugzilla.gnome.org/show_bug.cgi?id=745728
12896 https://bugzilla.gnome.org/show_bug.cgi?id=732666
12897 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12899 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12902 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12903 * gst-libs/gst/vaapi/gstvaapiutils.c:
12904 * tests/test-subpicture.c:
12905 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
12906 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
12907 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
12908 deprecated these guards are not required.
12909 https://bugzilla.gnome.org/show_bug.cgi?id=745728
12910 https://bugzilla.gnome.org/show_bug.cgi?id=732666
12911 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12913 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12915 * gst-libs/gst/vaapi/gstcompat.h:
12916 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12917 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12918 * gst-libs/gst/vaapi/gstvaapiimage.c:
12919 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12920 * gst-libs/gst/vaapi/video-format.c:
12921 * gst-libs/gst/vaapi/video-format.h:
12922 * gst/vaapi/gstvaapi.c:
12923 * gst/vaapi/gstvaapidecode.c:
12924 * gst/vaapi/gstvaapidecodebin.c:
12925 * gst/vaapi/gstvaapidownload.c:
12926 * gst/vaapi/gstvaapidownload.h:
12927 * gst/vaapi/gstvaapiencode.c:
12928 * gst/vaapi/gstvaapiencode_h264.c:
12929 * gst/vaapi/gstvaapiencode_jpeg.c:
12930 * gst/vaapi/gstvaapiencode_mpeg2.c:
12931 * gst/vaapi/gstvaapiencode_vp8.c:
12932 * gst/vaapi/gstvaapiparse.c:
12933 * gst/vaapi/gstvaapipluginbase.c:
12934 * gst/vaapi/gstvaapipluginbase.h:
12935 * gst/vaapi/gstvaapipluginutil.c:
12936 * gst/vaapi/gstvaapipluginutil.h:
12937 * gst/vaapi/gstvaapipostproc.c:
12938 * gst/vaapi/gstvaapisink.c:
12939 * gst/vaapi/gstvaapiupload.c:
12940 * gst/vaapi/gstvaapiupload.h:
12941 * gst/vaapi/gstvaapiuploader.c:
12942 * gst/vaapi/gstvaapivideobuffer.c:
12943 * gst/vaapi/gstvaapivideoconverter_glx.c:
12944 * gst/vaapi/gstvaapivideoconverter_x11.c:
12945 * gst/vaapi/gstvaapivideometa.c:
12946 * gst/vaapi/gstvaapivideometa.h:
12947 * tests/test-filter.c:
12948 * tests/test-subpicture.c:
12949 Removal of gstreamer-0.10 support
12950 This patch removes all the pre-processor conditional code compilation guarded
12951 for gstreamer-0.10.
12952 https://bugzilla.gnome.org/show_bug.cgi?id=745728
12953 https://bugzilla.gnome.org/show_bug.cgi?id=732666
12954 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12956 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12959 * debian.upstream/control.in:
12960 * gst-libs/gst/video/Makefile.am:
12961 * gst/vaapi/Makefile.am:
12962 autotools: remove gstreamer-0.10 support
12963 This patch only removes the support of gstreamer-0.10 in the autotools
12964 scripts. No other files are touched.
12965 The configuration parameter --gstreamer-api was deleted since now it is always
12967 The verification of vmethod query in GstBaseSinkClass was removed since it was
12968 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
12970 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
12972 The automake files were changed accordingly.
12973 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
12974 https://bugzilla.gnome.org/show_bug.cgi?id=732666
12975 https://bugzilla.gnome.org/show_bug.cgi?id=745728
12976 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
12978 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12980 * gst/vaapi/gstvaapidecode.c:
12981 vaapidecode: add drain() vmethod
12982 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
12983 class. This patch implements this new method.
12984 https://bugzilla.gnome.org/show_bug.cgi?id=742922
12985 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12986 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12988 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12990 * gst/vaapi/gstvaapidecode.c:
12991 vaapidecode: remove vmethod reset()
12992 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
12993 this patch removes the method reset() which was deprecated in GStreamer 1.2.
12994 https://bugzilla.gnome.org/show_bug.cgi?id=742922
12995 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12996 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12998 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13000 * gst/vaapi/gstvaapidecode.c:
13001 vaapidecode: handle flush() vmethod
13002 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
13003 and flush() was added.
13004 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
13005 superior. Otherwise, reset() is set.
13006 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
13007 was renamed to gst_vaapidecode_internal_flush().
13008 2) The new vmethod flush() always do a hard full reset.
13009 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
13010 gather all collected data with gst_video_decoder_have_frame()
13011 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13012 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13013 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13015 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13017 * gst/vaapi/gstvaapidecode.c:
13018 vaapidecode: call the correct query function
13019 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
13020 a bug was introduced: when calling the parent's query function of the
13021 src pad, the one of the sink pad is called instead. This patch fixes
13023 https://bugzilla.gnome.org/show_bug.cgi?id=746248
13025 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13028 gitmodules: Use https:// url instead of git:// for submodules.
13029 Gitorious is failing to clone repositories over git:// url.
13031 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
13033 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13034 vaapidisplay: mark X11 display as compatible with EGL
13035 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
13036 gst-launch-1.0 ... ! vaapidecode ! glimagesink
13037 https://bugzilla.gnome.org/show_bug.cgi?id=745902
13038 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13040 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
13042 * gst/vaapi/gstvaapidecode.c:
13043 vaapidecode: Don't crash if a buffer outlives the decoder
13044 Sometimes, for example, when switching video streams but keeping
13045 the same sink, the surface will be released after the decoder is
13046 stopped and replaced. This caused a crash because the release
13047 callback was called on an invalid pointer.
13048 The patch adding an additional reference to the decoder object in the buffer.
13049 https://bugzilla.gnome.org/show_bug.cgi?id=745189
13050 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
13051 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13053 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13055 * gst/vaapi/gstvaapidecode.c:
13056 vaapidecode: clean-ups (indentation, drop unused variables)
13058 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13060 * gst/vaapi/gstvaapidecode.c:
13061 vaapidecode: use the query virtual methods in 1.4
13062 GstVideoDecoder, the base class of vaapidecode, added support for
13063 pad queries as virtual methods. This patch enables the use of that
13064 support, while keeping support for lower versions of gstreamer.
13065 This patch is important because GstVideoDecoder takes care of other
13066 queries that might be important in the pipeline managing.
13067 v2: 1) rebase to current master
13068 2) fix indentation with gst-indent
13069 3) simplify the patch layout
13070 4) fix the context query
13071 5) initialise the filter to NULL
13072 6) improve the query log message for gst-1.2
13073 https://bugzilla.gnome.org/show_bug.cgi?id=744406
13075 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13077 * gst/vaapi/gstvaapipostproc.c:
13078 * gst/vaapi/gstvaapipostproc.h:
13079 vaapipostproc: always activate buffer pool
13080 The vaapipostproc has a proxy flag to know if the the buffer pool is
13081 already active. But this fails in some situations where it is needed
13082 to renegotiate the buffer pool.
13083 This patch removes that flag so the renegotiation is done whenever is
13085 https://bugzilla.gnome.org/show_bug.cgi?id=745535
13087 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13089 * gst/vaapi/gstvaapisink.c:
13090 vaapisink: fix minor memory leak in debug mode.
13091 The gst_video_colorimetry_to_string() function returns a newly created
13092 string that represents the GstVideoColorimetry value. So, that needs
13093 to be released after usage, in e.g. GST_DEBUG().
13095 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13097 * gst/vaapi/gstvaapidecodebin.h:
13098 vaapidecodebin: Avoid usage of "__" prefix in macro names
13099 Avoiding "__" prefix usage in Header File Guards as per
13100 C standard recommendation.
13102 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13104 * gst/vaapi/gstvaapi.c:
13105 plugins: Disable vaapidecodebin for GStreamer < 1.4
13106 There are autoplugging issues in GStreamer-1.2.
13107 Lets disable vaapidecodebin untill we get some workarounds for this.
13109 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13111 * gst/vaapi/Makefile.am:
13112 * gst/vaapi/gstvaapi.c:
13113 * gst/vaapi/gstvaapidecodebin.c:
13114 * gst/vaapi/gstvaapidecodebin.h:
13115 plugins: Add a vaapidecodebin element
13116 Add a "vaapidecodebin" element to vaapi plugins.
13117 Child Elements: "vaapidecode ! queue ! vaapipostproc"
13118 The Reasons for implementing a new bin element:
13119 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
13120 with out any dependency to upstream gstreamer.
13121 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
13122 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
13123 Also customers using older gstreamer versions (1.2 and 1.4) will get the
13124 benefit of autoplugging, hardware accelerated deinterlacing support etc.
13125 -- Help to maintain a single thread implementation in vaapidecode.
13126 This will result a dead-lock free vaapidecode in most of the cases.
13127 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
13128 https://bugzilla.gnome.org/show_bug.cgi?id=745216
13130 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13132 * gst/vaapi/gstvaapidecode.c:
13133 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
13135 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13137 * gst/vaapi/gstvaapidecode.c:
13138 * gst/vaapi/gstvaapidecode.h:
13139 vaapidecode: Switch back to Single thread implementation
13140 Because the decoder uses the thread from handle_frame() to decode a frame,
13141 the src pad task creates an unsolveable AB-BA deadlock between
13142 handle_frame() waiting for a free surface and decode_loop() pushing
13143 decoded frames out.
13144 Instead, have handle_frame() take responsibility for pushing surfaces,
13145 and remove the deadlock completely. If you need a separate thread
13146 downstream, you can insert a queue between vaapidecode and its downstream
13148 Another justification for the single thread implementation is,
13149 there are two many point of locking in gstreamer-vaapi's current
13150 implementation which can lead to deadlocks.
13151 https://bugzilla.gnome.org/show_bug.cgi?id=742605
13152 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
13153 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13154 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13156 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13158 * gst/vaapi/gstvaapipluginbase.c:
13159 plugins: fix detection of upstream v4l2src element.
13160 Improve check for upstream element that requires DMABUF buffer pool,
13161 e.g. v4l2src element. In particular, make sure to traverse through
13162 any additional capsfilter for instance.
13163 Note: the traversal to the top-most upstream element could be made
13164 more generic, but we are insofar only interested in supporting pipes
13165 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
13166 specification for a desired video camera format, or resolution.
13168 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13170 * gst/vaapi/gstvaapivideomemory.c:
13171 plugins: fix allocation of DMABUF memory.
13172 The dmabuf allocator would close the DMABUF handle passed in the init
13173 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
13174 to avoid a double close, ultimately in the underlying driver that owns
13177 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13179 * gst/vaapi/gstvaapidecode.c:
13180 vaapidecode: keep src caps and output state in sync
13181 vaapidecode keeps an output state that use the format
13182 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
13183 for a correct negotiation.
13184 I don't see the rational behind this decoupling, it looks like
13185 unnecessary complexity. This patch simplify this logic keeping
13186 in sync the output state and the src caps.
13187 This patch improves the readability of the function
13188 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
13189 the patch validates if the buffer pool has the configuration for
13190 the GL texture upload meta, in order to set the caps feature
13191 meta:GLTextureUpload. Otherwise, the I420 format is set back.
13192 https://bugzilla.gnome.org/show_bug.cgi?id=744618
13193 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13194 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13196 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13198 * gst/vaapi/gstvaapidecode.c:
13199 vaapidecode: upload meta only if feature and allocation
13200 When vaapidecode finishes the decoding of a frame and pushes it,
13201 if, in the decide_allocation() method, it is determined if the
13202 next element supports the GL texture upload meta feature, the
13203 decoder adds the buffer's meta.
13204 Nonetheless, in the same spirit of the commit 71d3ce4d, the
13205 determination if the next element supports the GL texture upload
13206 meta needs to check both the preferred caps feature *and* if the
13207 allocation query request the API type.
13208 This patch, first removes the unused variable need_pool, and
13209 determines the attribute has_texture_upload_meta using the
13210 preferred caps feature *and* the allocation query.
13211 Also, the feature passed to GstVaapPluginBase is not longer
13212 determined by has_texture_upload_meta, but by the computed
13214 https://bugzilla.gnome.org/show_bug.cgi?id=744618
13215 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13216 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13218 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13220 * gst/vaapi/gstvaapidecode.c:
13221 * gst/vaapi/gstvaapidecode.h:
13222 * gst/vaapi/gstvaapipluginutil.c:
13223 * gst/vaapi/gstvaapipluginutil.h:
13224 vaapidecode: delayed src caps negotiation
13225 Currently the src caps are set immediately after the sink caps are set, but in
13226 that moment the pipeline might not fully constructed and the video sink has
13227 not negotiated its supported caps and features. As a consequence, in many cases
13228 of playback, the least optimized caps feature is forced. This is partially the
13229 responsible of bug #744039.
13230 Also, vaapidecode doesn't attend the reconfigure events from downstream,
13231 which is a problem too, since the video sink can be changed with different
13233 This patch delays the src caps, setting them until the first frame arrives to
13234 the decoder, assuming until that very moment the whole pipeline is already
13235 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
13236 as a consequence of a reconfiguration event from downstream.
13237 A key part of this patch is the new GstVaapiCapsFeature
13238 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
13239 doesn't have a peer yet. Also, for a better report of the caps allowed
13240 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
13241 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
13242 v3: move the input_state unref to close(), since videodecoder resets at
13243 some events such as navigation.
13244 v4: a) the state_changed() callback replaces the input_state if the media
13245 changed, so this case is also handled.
13246 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
13247 always the input_state, the parameter were removed.
13248 c) there were a lot of repeated code handling the input_state, so I
13249 refactored it with the function gst_vaapi_decode_input_state_replace().
13250 https://bugzilla.gnome.org/show_bug.cgi?id=744618
13251 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13252 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13254 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13256 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13257 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13258 encoder: h264: add support for more than 2 views
13259 Add support for H.264 MVC Multiview High profile encoding with
13260 more than 2 views. All views within the same accesss unit are
13261 provided in increasing order of view order index (VOIdx).
13262 Upto 10 view are supported for now.
13263 A new property "view-ids" has been provided for the plugins to
13264 set the view ids (which is an array of guint values) to be used
13266 https://bugzilla.gnome.org/show_bug.cgi?id=732453
13268 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13270 * gst/vaapi/gstvaapipluginbase.c:
13271 plugins: upload meta only if feature and allocation
13272 Working on bug #743687, I realized that vaapidecode always adds to its buffer
13273 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
13274 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
13275 Nevertheless, there are occasions where the query has the API type, but the
13276 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
13277 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
13278 buffer pool configuration, and adds its buffer's meta to each output buffer,
13279 even if the negotiated caps feature is memory:SystemMemory with I420 color
13281 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
13282 that relates caps <-> GL upload method. If it receives a buffer with color
13283 format I420, it assumes that it doesn't have a texture upload meta, because
13284 only those with RGB color format has it. Our buffers, with I420 format, say
13285 that they have the upload meta too. In that case the mapped method is a dummy
13286 one which does nothing. I reported this issue in bug #744039 (the patch,
13287 obviously, was rejected).
13288 This patch workarounds the problem: the buffer pool's configuration option
13289 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
13290 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
13291 caps feature is meta:GstVideoGLTextureUploadMeta.
13292 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
13293 in all they seem to work correctly.
13294 https://bugzilla.gnome.org/show_bug.cgi?id=744618
13295 [adapted to fit current EGL changes]
13296 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13298 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13300 * gst-libs/gst/vaapi/gstvaapitexture.c:
13301 * gst-libs/gst/vaapi/gstvaapitexture.h:
13302 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
13303 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
13304 * gst/vaapi/gstvaapivideometa_texture.c:
13305 plugins: add support for GstVideoGLTextureOrientation.
13306 Add support for GstVideoGLTextureOrientation modes. In particular,
13307 add orientation flags to the GstVaapiTexture wrapper and the GLX
13308 implementations. Default mode is that texture memory is laid out
13309 with top lines first, left row first. Flags indicate whether the
13310 X or Y axis need to be inverted.
13312 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13314 * gst/vaapi/gstvaapidecode.c:
13315 * gst/vaapi/gstvaapipluginbase.c:
13316 * gst/vaapi/gstvaapipluginutil.c:
13317 * gst/vaapi/gstvaapipluginutil.h:
13318 * gst/vaapi/gstvaapipostproc.c:
13319 * gst/vaapi/gstvaapivideometa_texture.c:
13320 plugins: add support for BGRA textures.
13321 Some frameworks (EFL) expect BGRA textures for storage. However,
13322 adding support for that broadly into GStreamer framework implies
13323 two kinds of hacks: (i) libgstgl helpers currently do not support
13324 BGRA textures correctly, (ii) we need to better parse downstream
13325 suggested caps and intersect them with what the VA plugin elements
13326 can offer to them for GL texturing.
13328 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13330 * gst/vaapi/gstvaapipluginutil.c:
13331 plugins: fix support for Wayland/EGL running alongside X11.
13332 When multiple display servers are available, the glimagesink element
13333 (from GStreamer 1.4) may not be able to derive a global display in
13334 Wayland. Rather, a "window"-specific display is created. In this case,
13335 the GstGLDisplay handle available through GstGLContext is invalid.
13336 So, try to improve heuristics for display server characterisation in
13337 those particular situations.
13339 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13342 * gst/vaapi/Makefile.am:
13343 * gst/vaapi/gstvaapidecode.c:
13344 * gst/vaapi/gstvaapipluginbase.c:
13345 * gst/vaapi/gstvaapipluginutil.c:
13346 * gst/vaapi/gstvaapivideobufferpool.c:
13347 * gst/vaapi/gstvaapivideometa_texture.c:
13348 plugins: add initial support for EGL.
13349 Add initial support for EGL through GstVideoGLTextureUploadMeta.
13350 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
13351 downstream supplied GstGLContext configuration, i.e. use its native
13352 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
13353 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
13355 https://bugzilla.gnome.org/show_bug.cgi?id=741079
13357 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13359 * gst/vaapi/gstvaapivideometa_texture.c:
13360 plugins: track video texture size changes.
13361 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
13362 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
13363 now update the texture size from the GstVideoMeta, if any, or reset
13364 to some defaults otherwise.
13366 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13368 * gst/vaapi/gstvaapipluginbase.c:
13369 * gst/vaapi/gstvaapipluginbase.h:
13370 * gst/vaapi/gstvaapipluginutil.c:
13371 plugins: ensure VA display matches GL context expectations.
13372 If a GstGLContext is supplied by the downstream element, then make
13373 sure that the VA plugin element gets a compatible display to what
13374 is requested by the GL context. e.g. re-allocate a VA/GLX display
13375 when a GLX context is provided by the downstream element.
13377 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13380 * gst/vaapi/Makefile.am:
13381 * gst/vaapi/gstvaapipluginbase.c:
13382 * gst/vaapi/gstvaapipluginbase.h:
13383 plugins: record downstream GstGLContext.
13384 Record GL context supplied by downstream elements. This can be useful,
13385 and further needed, to enforce run-time check that the GL context is
13386 compatible for use by libgstvaapi. e.g. check that we don't create a
13387 VA/GLX display for EGL/X11 contexts.
13388 https://bugzilla.gnome.org/show_bug.cgi?id=725643
13389 Original-path-by: Matthew Waters <ystreet00@gmail.com>
13391 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13393 * tests/Makefile.am:
13396 Add initial support for EGL to tests. The new EGL backend can be selected
13397 through the --egl command line option. The OpenGL|ES version can further
13398 be selected with the --gles-version command line option, where the default
13399 of 0 means "desktop" OpenGL.
13401 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13403 * gst-libs/gst/vaapi/Makefile.am:
13404 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
13405 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
13406 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
13407 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
13408 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
13409 egl: add windowing support.
13410 This provides for some basic EGL window abstraction.
13412 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13414 * gst-libs/gst/vaapi/Makefile.am:
13415 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
13416 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
13417 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
13418 egl: add texture abstraction.
13419 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
13420 or import a foreign allocated one, while still allowing updates from a
13423 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13425 * gst-libs/gst/vaapi/Makefile.am:
13426 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
13427 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
13428 egl: allow for EGLImage imports into VA Surfaces.
13429 Add helpers to import EGLImage objects into VA surfaces. There are
13430 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
13431 which allows for implicit conversion from EGLImage to a VA surface
13432 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
13433 which exactly wraps the source EGLImage, typically in RGBA format
13434 with linear storage.
13435 Note: in case of (i), the EGLImage can be disposed right after the
13436 VA surface creation call, unlike in (ii) where the user shall ensure
13437 that the EGLImage is live until the associated VA surface is no longer
13439 https://bugzilla.gnome.org/show_bug.cgi?id=743847
13441 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13444 * gst-libs/gst/vaapi/Makefile.am:
13445 * gst-libs/gst/vaapi/egl_compat.h:
13446 * gst-libs/gst/vaapi/egl_vtable.h:
13447 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13448 * gst-libs/gst/vaapi/gstvaapidisplay.h:
13449 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
13450 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
13451 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
13452 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
13453 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
13454 * gst-libs/gst/vaapi/ogl_compat.h:
13455 Add initial support for EGL.
13456 Add initial support for EGL to libgstvaapi core library. The target
13457 display server and the desired OpenGL API can be programmatically
13458 selected at run-time.
13459 A comprehensive set of EGL utilities are provided to support those
13460 dynamic selection needs, but also most importantly to ensure that
13461 the GL command stream is executed from within a single thread.
13462 https://bugzilla.gnome.org/show_bug.cgi?id=743846
13464 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13466 * gst-libs/gst/vaapi/gstvaapivalue.c:
13467 libs: initialize GValues in a thread-safe manner.
13469 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13471 * gst-libs/gst/vaapi/gstvaapivalue.c:
13472 libs: re-indent all GValue related source code.
13474 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13476 * gst/vaapi/gstvaapidecode.c:
13477 vaapidecode: partially revert 0777f35.
13478 Reset the VA decoder after updating the base plugin caps, and most
13479 importantly, after GstVideoDecoder negotiation. The reason behind
13480 this is that the negotiation could trigger a last decide_allocation()
13481 where we could actually derive a new GstVaapiDisplay to use from the
13482 downstream element. e.g. GLX backend.
13484 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13486 * gst/vaapi/gstvaapidecode.c:
13487 vaapidecode: Caps query should return the list of all supported caps.
13488 Query caps filtering should be always done on top of allowed caps instead
13489 of existing fixed caps on a particular pad.
13490 This fixes the mvc stream decoding when there is a base view(high profile)
13491 and non-base view(stereo-high profile).
13493 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13495 * gst/vaapi/gstvaapidecode.c:
13496 vaapidecode: intersect filter from query caps
13497 According to documentation[1] when receiving a GST_QUERY_CAPS
13498 the return value should be all formats that this elements supports,
13499 taking into account limitations of peer elements further downstream
13500 or upstream, sorted by order of preference, highest preference first.
13501 This patch add those limitations intersecting with the received
13502 filter in the query. Also takes into account the already negotiated
13503 caps. Also adds the processing of the query on the SRC pad.
13504 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
13505 https://bugzilla.gnome.org/show_bug.cgi?id=744406
13507 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13509 * gst-libs/gst/vaapi/Makefile.am:
13510 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
13511 * gst-libs/gst/vaapi/gstvaapidecoder.c:
13512 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13513 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13514 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
13515 * gst/vaapi/gstvaapivideomemory.c:
13516 Fix compiler warnings
13517 This patch fixes some warnings that gcc 4.9 reports.
13518 https://bugzilla.gnome.org/show_bug.cgi?id=744411
13520 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13522 * gst/vaapi/gstvaapidecode.c:
13523 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
13524 Hence the function name is shown in the gst-inspect-1.0 information
13525 rather than the memory address.
13526 https://bugzilla.gnome.org/show_bug.cgi?id=744330
13528 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13530 * gst/vaapi/gstvaapidecode.c:
13531 vaapidecode: log flow error name
13532 https://bugzilla.gnome.org/show_bug.cgi?id=744387
13534 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13536 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13537 VC1: decoder: Ignore VC1 user BDU's
13538 Don't return error if the processed BDU is a user one, just ignore them.
13539 https://bugzilla.gnome.org/show_bug.cgi?id=741237
13540 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13542 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
13544 * gst/vaapi/gstvaapidecode.c:
13545 * gst/vaapi/gstvaapipluginbase.c:
13546 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
13547 This is required in GStreamer, elements should never return
13548 GST_FLOW_ERROR without posting an ERROR message on the bus.
13549 https://bugzilla.gnome.org/show_bug.cgi?id=744620
13551 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13553 * gst/vaapi/Makefile.am:
13554 * gst/vaapi/gstvaapi.c:
13555 * gst/vaapi/gstvaapiencode_vp8.c:
13556 * gst/vaapi/gstvaapiencode_vp8.h:
13557 plugins: Add VP8 Encoder
13559 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13561 * gst-libs/gst/vaapi/Makefile.am:
13562 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
13563 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
13564 Add VP8 Encoder to core libgstvaapi.
13566 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13569 configure: Add Check for VP8 Encoding API
13571 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
13573 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13574 decoder: vc1: Rounding control handling for VC1 simple and Main profile
13575 Added rounding control handling for VC1 simple and Main profile
13576 based on VC1 standard spec: section 8.3.7
13577 https://bugzilla.gnome.org/show_bug.cgi?id=743958
13578 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
13579 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13581 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13583 * gst/vaapi/Makefile.am:
13584 build: fix make dist when certain conditionals not met.
13585 Fix typo which was preventing the inclusion of jpeg encoder
13586 source files from make dist (when there is no jpeg encoder
13587 API support in libva).
13589 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13591 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
13592 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
13593 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
13594 use native YUV420 format (which is i420) as default.
13596 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13598 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13599 encoder: Only support YUV420 native format as input for now
13600 Practically we should be able to support more formats, for eg:
13601 JPEG Encoder can support YUV422, RGBA and all.
13602 But this is causing more issues which need proper fix here and there.
13604 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
13606 * gst-libs/gst/vaapi/gstvaapidecoder.h:
13607 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
13608 * gst/vaapi/gstvaapidecode.c:
13609 vaapidecode: Check the condition after taking the lock
13610 Otherwise the condition could become true before the lock
13611 is taken and the g_cond_signal() could be called
13612 before the g_cond_wait(), so the g_cond_wait() is never
13614 https://bugzilla.gnome.org/show_bug.cgi?id=740645
13616 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13618 * gst/vaapi/Makefile.am:
13619 * gst/vaapi/gstvaapi.c:
13620 * gst/vaapi/gstvaapiencode_jpeg.c:
13621 * gst/vaapi/gstvaapiencode_jpeg.h:
13622 plugins: Add JPEG encoder element
13624 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13626 * gst-libs/gst/vaapi/gstvaapicontext.c:
13627 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
13629 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13631 * gst-libs/gst/vaapi/gstvaapicontext.c:
13632 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
13633 Don't add the VAConfigAttribRateControl to the attribute list using
13634 for the vaCreateConfig if it is not supported by the driver.
13636 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13638 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13639 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
13641 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13643 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13644 gstvaapiencoder: Fix crash when handling rate control mask
13645 Having a ratecontrol_mask equal to zero is not a bug, but the driver
13646 might not be supporting any kind of rate control mechanisms.
13649 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13651 * gst-libs/gst/vaapi/Makefile.am:
13652 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
13653 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
13654 encoder: Add JPEG Encoder
13656 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13658 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
13659 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
13660 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
13662 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13664 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13665 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13666 * gst-libs/gst/vaapi/gstvaapiprofile.c:
13667 * gst-libs/gst/vaapi/gstvaapiprofile.h:
13668 Encode: Add support for Picture level Entrypoint
13669 This is useful for JPEG encoding which is utilizing picture level
13670 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
13672 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13675 configure: Add Check for JPEG encoding API
13677 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13682 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13685 Bump version for development.
13687 === release 0.5.10 ===
13689 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13694 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13699 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13701 * gst/vaapi/gstvaapivideometa_texture.c:
13702 Fix compilation error if there is no GL/gl.h header file installed
13704 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13706 * gst/vaapi/gstvaapivideomemory.h:
13707 plugins: drop leftover declaration.
13708 GstVaapiVideoMemory quark is not needed any more, and the actual
13709 implementation was already removed bfore the merge. i.e. this is
13710 an oversight for a hunk that was not meant to be pushed.
13712 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13714 * gst/vaapi/gstvaapipluginbase.c:
13715 * gst/vaapi/gstvaapivideobufferpool.c:
13716 * gst/vaapi/gstvaapivideobufferpool.h:
13717 * gst/vaapi/gstvaapivideomemory.c:
13718 * gst/vaapi/gstvaapivideomemory.h:
13719 plugins: add support for dma_buf exports (v4l2src).
13720 Allow v4l2src element to connected to vaapipostproc or vaapisink when
13721 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
13722 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
13723 to "dmabuf" could work, but with more demanding driver or kernel reqs.
13724 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
13725 with --without-libv4l2.
13726 https://bugzilla.gnome.org/show_bug.cgi?id=743635
13728 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
13731 * gst/vaapi/Makefile.am:
13732 * gst/vaapi/gstvaapipluginbase.c:
13733 plugins: add support for dma_buf imports.
13734 Allow imports of v4l2 buffers into VA surfaces for further operation
13735 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
13736 https://bugzilla.gnome.org/show_bug.cgi?id=735362
13737 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
13738 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13740 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13742 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13743 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13744 surface: add support for GEM buffer imports.
13745 Add support for GEM buffer imports. This is useful for VA/EGL interop
13746 with legacy Mesa implementations, or when it is desired or required to
13747 support outbound textures for instance.
13748 https://bugzilla.gnome.org/show_bug.cgi?id=736718
13750 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13752 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13753 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13754 surface: add support for dma_buf imports.
13755 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
13756 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
13757 resulting VA surface owns the supplied buffer handle.
13758 https://bugzilla.gnome.org/show_bug.cgi?id=735362
13760 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13762 * gst-libs/gst/vaapi/gstvaapisurface.c:
13763 * gst-libs/gst/vaapi/gstvaapisurface.h:
13764 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
13765 surface: add initial support for foreign buffer imports.
13766 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
13767 create a VA surface from an external buffer provided throug the
13768 new GstVaapiBufferProxy object.
13770 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13772 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
13773 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
13774 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13775 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13776 surface: add support for GEM buffer exports.
13777 Add support for GEM buffer exports. This will only work with VA drivers
13778 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
13779 to support interop with EGL and the "Desktop" GL specification. Indeed,
13780 the EXT_image_dma_buf_import extension is not going to be supported in
13781 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
13783 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
13784 in Desktop OpenGL context.
13785 https://bugzilla.gnome.org/show_bug.cgi?id=736717
13787 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13789 * gst-libs/gst/vaapi/Makefile.am:
13790 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
13791 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
13792 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13793 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13794 surface: add support for dma_buf exports.
13795 Use the new VA buffer export APIs to allow for a VA surface to be
13796 exposed as a plain PRIME fd. This is in view to simplifying interop
13797 with EGL or OpenCL for instance.
13798 https://bugzilla.gnome.org/show_bug.cgi?id=735364
13800 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13802 * gst-libs/gst/vaapi/Makefile.am:
13803 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
13804 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
13805 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
13806 Add abstraction for exported VA buffers.
13807 The VA buffer export APIs work for a particular lifetime starting from
13808 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
13809 it could be much more convenient to support implicit releases by simply
13810 having a refcount reaching zero.
13811 https://bugzilla.gnome.org/show_bug.cgi?id=736721
13813 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13815 * gst-libs/gst/vaapi/Makefile.am:
13816 Add missing header file to Makefile
13817 Add gstvaapitexture_glx.h to Makefile.am
13819 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13821 * gst-libs/gst/vaapi/gstvaapicontext.c:
13822 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
13823 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
13824 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
13825 * gst/vaapi/gstvaapipostproc.c:
13826 * gst/vaapi/gstvaapiuploader.c:
13827 * gst/vaapi/gstvaapivideobufferpool.c:
13828 * gst/vaapi/gstvaapivideomemory.c:
13829 * gst/vaapi/gstvaapivideomemory.h:
13830 * tests/test-surfaces.c:
13831 videopool: add optional flags for surface pool allocation.
13832 Reword surface pool allocation helpers so that to allow for a simple
13833 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
13834 somewhat more elaborated/flexible form with optional allocation flags
13835 and precise GstVideoInfo specification.
13836 This is an API/ABI change, and SONAME version needs to be bumped.
13838 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13840 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
13841 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
13842 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
13843 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
13844 * gst-libs/gst/vaapi/gstvaapivideopool.c:
13845 * gst-libs/gst/vaapi/gstvaapivideopool.h:
13846 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
13847 videopool: re-indent all GstVaapiVideoPool related source code.
13849 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13851 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
13852 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
13853 window: add toplevel display indirection for visualid and colormap.
13854 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
13855 the best suitable window visual id and colormap. This is an indirection in
13856 view to supporting EGL and custom/generic replacements.
13858 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13860 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
13861 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
13862 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
13863 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
13864 window: add toplevel API to determine the colormap.
13865 Add GstVaapiWindowClass::get_colormap() hook to help determine the
13866 currently active colormap bound to the supplied window, or actually
13867 create it if it does not already exist yet.
13869 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13871 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
13872 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
13873 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
13874 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
13875 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
13876 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
13877 window: add toplevel API to determine a visual id.
13878 Add GstVaapiWindowClass::get_visual_id() function hook to help find
13879 the best suitable visual id for the supplied window. While doing so,
13880 also simplify the process by which an X11 window is created with a
13881 desired Visual, i.e. now use a visual id instead of a Visual object.
13883 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13885 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
13886 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
13887 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
13888 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13889 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
13890 * gst-libs/gst/vaapi/gstvaapiwindow.c:
13891 * gst-libs/gst/vaapi/gstvaapiwindow.h:
13892 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
13893 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
13894 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
13895 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
13896 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
13897 window: add generic helper to create windows.
13898 Add a new generic helper function gst_vaapi_window_new() to create
13899 a window without having the caller to check for the display type
13900 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
13901 to create windows, and the actual backend implementation fills it in.
13902 Add new generic helper functions gst_vaapi_texture_new_wrapped()
13903 This is a simplification in view to supporting EGL.
13905 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13907 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13908 * gst-libs/gst/vaapi/gstvaapidisplay.h:
13909 * gst-libs/gst/vaapi/gstvaapitexture.c:
13910 * gst/vaapi/gstvaapivideometa_texture.c:
13911 display: add utility function to check for OpenGL rendering.
13912 Add gst_vaapi_display_has_opengl() helper function to help determining
13913 whether the display can support OpenGL context to be bound to it, i.e.
13914 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
13916 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13918 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13919 * gst-libs/gst/vaapi/gstvaapidisplay.h:
13920 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
13921 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
13922 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
13923 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
13924 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
13925 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13926 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
13927 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
13928 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
13929 * gst/vaapi/gstvaapipluginutil.c:
13930 * gst/vaapi/gstvaapivideobuffer.c:
13931 * gst/vaapi/gstvaapivideometa_texture.c:
13932 display: refine the meaning of display type.
13933 Make gst_vaapi_display_get_display_type() return the actual VA display
13934 type. Conversely, add a gst_vaapi_display_get_class_type() function to
13935 return the type of the GstVaapiDisplay instance. The former is used to
13936 identify the display server onto which the application is running, and
13937 the latter to identify the original object class.
13939 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13941 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13942 * gst-libs/gst/vaapi/gstvaapidisplay.h:
13943 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
13944 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
13945 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13946 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
13947 display: cosmetics (helper macros, new internal API names).
13948 Add more helper macros to the top-level GstVaapiDisplay interfaces.
13949 Rename a few others used internally for improved consistency.
13951 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13953 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13954 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
13955 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
13956 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
13957 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
13958 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
13959 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
13960 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
13961 display: record native display object.
13962 Record the underlying native display instance into the toplevel
13963 GstVaapiDisplay object. This is useful for fast lookups to the
13964 underlying native display, e.g. for creating an EGL display.
13966 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13968 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13969 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
13970 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
13971 display: use a recursive mutex for the display cache.
13972 Use a recursive mutex for the display cache so that a 3rdparty display
13973 object could be initialized during the initialization of the parent
13976 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13978 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
13979 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
13980 * gst-libs/gst/vaapi/gstvaapitexture.c:
13981 * gst-libs/gst/vaapi/gstvaapitexture.h:
13982 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
13983 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
13984 texture: add generic helper to create textures.
13985 Add new generic helper functions gst_vaapi_texture_new_wrapped()
13986 and gst_vaapi_texture_new() to create a texture without having
13987 the caller to uselessly check for the display type himself. i.e.
13988 internally, there is now a GstVaapiDisplayClass hook to create
13989 textures, and the actual backend implementation fills it in.
13990 This is a simplification in view to supporting EGL.
13992 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
13994 * gst-libs/gst/vaapi/Makefile.am:
13995 * gst-libs/gst/vaapi/gstvaapitexture.c:
13996 * gst-libs/gst/vaapi/gstvaapitexture.h:
13997 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
13998 * gst-libs/gst/vaapi/gstvaapitexture_glx.h:
13999 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
14000 * gst/vaapi/gstvaapivideoconverter_glx.c:
14001 * gst/vaapi/gstvaapivideometa_texture.c:
14002 * tests/test-textures.c:
14003 texture: move to core libgstvaapi base library.
14004 GstVaapiTexture is a generic abstraction that could be moved to the
14005 core libgstvaapi library. While doing this, no extra dependency needs
14006 to be added. This means that a GstVaapitextureClass is now available
14007 for any specific code that needs to be added, e.g. creation of the
14008 underlying GL texture objects, or backend dependent ways to upload
14009 a surface to the texture object.
14010 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
14012 https://bugzilla.gnome.org/show_bug.cgi?id=736715
14014 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14017 * gst-libs/gst/vaapi/Makefile.am:
14018 * gst-libs/gst/vaapi/gstvaapicompat.h:
14019 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
14020 * gst-libs/gst/vaapi/gstvaapitexture.c:
14021 texture: drop support for VA/GLX interfaces.
14022 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
14023 ease of use, but they had other caveats to deal with. It's now better
14024 to move on to legacy mode, whereby VA/GLX interop is two be provided
14025 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
14026 https://bugzilla.gnome.org/show_bug.cgi?id=736711
14028 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14030 * gst-libs/gst/vaapi/gstvaapitexture.c:
14031 * gst-libs/gst/vaapi/gstvaapitexture.h:
14032 * gst/vaapi/gstvaapivideoconverter_glx.c:
14033 * gst/vaapi/gstvaapivideometa_texture.c:
14034 * tests/test-textures.c:
14035 texture: add support for cropping rectangle during transfer.
14036 The gst_vaapi_texture_put_surface() function is missing a crop_rect
14037 argument that would be used during transfer for cropping the source
14038 surface to the desired dimensions.
14039 Note: from a user point-of-view, he should create the GstVaapiTexture
14040 object with the cropped size. That's the default behaviour in software
14041 decoding pipelines that we need to cope with.
14042 This is an API/ABI change, and SONAME version needs to be bumped.
14043 https://bugzilla.gnome.org/show_bug.cgi?id=736712
14045 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14047 * gst-libs/gst/vaapi/gstvaapitexture.c:
14048 * gst-libs/gst/vaapi/gstvaapitexture.h:
14049 texture: re-indent all GstVaapiTexture related source code.
14051 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14053 * gst-libs/gst/vaapi/gstvaapisurface.c:
14054 * gst-libs/gst/vaapi/gstvaapisurface.h:
14055 surface: add more fine-grained allocation helper.
14056 Add new gst_vaapi_surface_new_full() helper function that allocates
14057 VA surface from a GstVideoInfo template in argument. Additional flags
14058 may include ways to
14059 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
14060 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
14061 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
14063 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14065 * gst-libs/gst/vaapi/gstvaapisurface.c:
14066 * gst-libs/gst/vaapi/gstvaapisurface.h:
14067 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
14068 surface: re-indent all GstVaapiSurface related source code.
14070 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14072 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
14073 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
14074 surfaceproxy: add helper to create a wrapped surface object.
14075 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
14076 a proxy. The main use case for that is to convey additional information
14077 at the proxy level that would not be suitable to the plain surface.
14079 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14081 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
14082 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
14083 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
14084 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
14086 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14089 libs: bump library major version.
14091 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14093 * gst-libs/gst/vaapi/gstvaapitypes.h:
14094 libs: re-introduce a GST_VAAPI_ID_INVALID value.
14095 Re-introduce a GST_VAAPI_ID_INVALID value that represents
14096 a non-zero and invalid id. This is useful to have a value
14097 that is still invalid for cases where zero could actually
14100 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14102 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
14103 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
14104 libs: expose GstVaapiMiniObject APIs to all backends.
14105 Make it possible to have all libgstvaapi backends (libs) access to a
14106 common GstVaapiMiniObject API and implementation. This is a minor step
14107 towards full exposure when needed, but restrict it to libgstvaapi at
14110 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14112 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
14113 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
14114 * gst-libs/gst/vaapi/gstvaapiobject.c:
14115 * gst-libs/gst/vaapi/gstvaapiobject.h:
14116 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
14117 libs: re-indent all GstVaapiObject related source code.
14118 Re-indent and provide additional minor cosmetical changes to the
14119 GstVaapiMiniObject and GstVaapiObject source files.
14121 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
14123 * gst/vaapi/gstvaapipluginutil.c:
14124 pluginutil: Fix clearing of subtitle overlay
14125 dvbsuboverlay signals no subtitles present by not setting
14126 GstVideoOverlayCompositionMeta on a buffer.
14127 Detect this, and remove subtitles whenever we have no overlay composition to
14129 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
14131 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
14133 * gst/vaapi/gstvaapipostproc.c:
14134 vaapipostproc: clear state on stop
14135 Otherwise restarting may fail because the state of vaapipluginbase and
14136 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
14137 initailization and not call gst_vaapi_plugin_base_set_caps()
14139 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
14141 * gst/vaapi/gstvaapidecode.c:
14142 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
14144 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14146 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14147 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
14148 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
14149 since the vaaapi context creation (gstvaapicontext.c) can still use the
14150 default chroma type which is YUV420.
14151 https://bugzilla.gnome.org/show_bug.cgi?id=743567
14152 https://bugzilla.gnome.org/show_bug.cgi?id=743035
14154 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14156 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
14157 * patches/videoparsers/series.frag:
14158 h264parse: drop patches merged upstream.
14159 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
14161 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14163 * ext/codecparsers:
14164 codecparsers: update to gst-vaapi-branch commit d3b5c1b
14165 8194cac: h264parse: parse SPS subset
14166 64b7f52: h264parse: expose stereo-high profile
14167 774360a: h264parse: add initial support for MVC NAL units
14168 258478f: h264parser: fix stack smashing
14170 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14172 * gst/vaapi/gstvaapivideometa_texture.c:
14173 Fix compilation error if there is no GL/gl.h header file installed
14175 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14177 * gst/vaapi/gstvaapidecode.c:
14178 vaapidecode: commit updated srcpad caps to base plugin.
14179 Make sure that the GstVaapiPluginBase instance receives the new src
14180 pad caps whenever they get updated from within the GstVaapiDecoder
14182 This also ensures that downstream elements receive correctly sized
14183 SW decoded buffers if needed.
14184 https://bugs.tizen.org/jira/browse/TC-114
14186 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14188 * gst/vaapi/gstvaapidecode.c:
14189 vaapidecode: always reset decoder on ::set_format().
14190 Split GstVideoDecoder::set_format() handler to first update the sink
14191 pad caps and reset the active VA decoder instance based on those, and
14192 then update the src pad caps whenever possible, e.g. when the caps
14193 specify a valid video resolution.
14195 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14197 * gst/vaapi/gstvaapivideomemory.c:
14198 vaapivideomemory: don't crash when trying to allocate 0x0 images.
14199 In some occasions, a buffer pool is created for pre-initialization
14200 purposes regardless of whether a valid image size is available or
14201 not. However, during actual decode stage, the vaapidecode element
14202 is expected to update the srcpad caps with the new dimensions, thus
14203 also triggering a reset of the underlying bufferpool.
14205 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14207 * ext/codecparsers:
14208 codecparsers: update to gst-vaapi-branch commit 191cb2f
14209 347605a: h264parse: expose compatible profiles to downstream
14210 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
14211 24a3126: Revert "h264parse: expose compatible profiles to downstream"
14212 8661740: h264parse: expose compatible profiles to downstream
14213 8b7ef3f: codecparsers: fix some compiler warnings
14215 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14217 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14218 encoder: h264: Fix the period between I/P frames
14219 If the key-frame period is set as one, then ip_period shuld be zero
14220 https://bugzilla.gnome.org/show_bug.cgi?id=734992
14222 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14224 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14225 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
14226 https://bugzilla.gnome.org/show_bug.cgi?id=734993
14228 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14230 * gst/vaapi/gstvaapisink.c:
14231 vaapisink: Protect the X11 API invokations with proper locking
14232 https://bugzilla.gnome.org/show_bug.cgi?id=739808
14234 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14236 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14237 encoder: h264: fix pixel-aspect-ratio in encoded stream.
14238 Really report sample aspect ratio (SAR) as present, and make it match
14239 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
14240 really make sure VUI parameter aspect_ratio_info_present_flag is set
14241 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
14242 This is a leftover from git commit a12662f.
14243 https://bugzilla.gnome.org/show_bug.cgi?id=740360
14245 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14247 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14248 decoder: mpeg4: fix uninitialized variables.
14249 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
14250 GST_MPEG4_USER_DATA so that a parse error would result in skipping
14251 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
14252 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
14254 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14256 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14257 encoder: h264: fix profile limits.
14258 Fix ensure_profile_limits() to lower profile to the desired limits,
14259 only if the latter are actually known and the profile needed to be
14262 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14264 * gst/vaapi/gstvaapipostproc.c:
14265 vaapipostproc: fix out caps for GLMemory.
14266 If the best downstream capsfeature turns out to be GLMemory, then make
14267 sure to propagate RGBA video format in caps to that element. This fixes
14268 the following pipeline: ... ! vaapipostproc ! glimagesink.
14270 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14272 * gst/vaapi/gstvaapipostproc.c:
14273 vaapipostproc: fix check for compatible src pad capsfilters.
14274 When an explicit output video format is selected, from an src pad
14275 capsfilter, make sure that the downstream element actually supports
14276 that format. In particular, fix crash with the following pipelines:
14277 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
14278 XXX is a format not supported by xvimagesink.
14279 While doing so, also reduce the set of src pad filter caps to the
14280 actual set of allowed src pad caps.
14282 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14284 * gst/vaapi/gstvaapipostproc.c:
14285 * gst/vaapi/gstvaapipostproc.h:
14286 * gst/vaapi/gstvaapiuploader.c:
14287 * gst/vaapi/gstvaapiuploader.h:
14288 plugins: re-indent all video processing related source code.
14290 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14292 * gst/vaapi/gstvaapivideomemory.c:
14293 plugins: further fixes to the new "current" storage tracker.
14294 The ensure_surface() and ensure_image() functions shall only relate
14295 to the underlying backing store. The actual current flags are to be
14296 updated only through ensure_{surface,image}_is_current() or very other
14297 particular cases in GstMemory hooks.
14299 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14301 * gst/vaapi/gstvaapivideomemory.c:
14302 plugins: fix "current" video memory flags.
14303 If the surface proxy is updated into the GstVaapiVideoMemory, then
14304 it is assumed it is the most current representation of the current
14305 video frame. Likewise, make a few more arrangements to have the
14306 "current " flags set more consistently.
14308 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14310 * gst/vaapi/gstvaapivideomemory.c:
14311 * gst/vaapi/gstvaapivideomemory.h:
14312 * gst/vaapi/gstvaapivideometa.c:
14313 plugins: ensure VA surface is current prior to using it.
14314 When interacting with SW elements, the buffers and underlying video
14315 memory could be mapped as read/write. However, we need to use those
14316 buffers again as plain VA surfaces, we have to make sure the VA image
14317 is thus committed back to VA surface memory.
14318 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
14320 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
14322 * gst/vaapi/gstvaapivideomemory.c:
14323 plugins: enable memory maps for read & write.
14324 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
14325 buffers can be further processed in-place, e.g. with a textoverlay.
14326 https://bugzilla.gnome.org/show_bug.cgi?id=704078
14327 [ported to current git master branch, amended commit message]
14328 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14330 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14332 * gst/vaapi/gstvaapidecode.c:
14333 * gst/vaapi/gstvaapipluginutil.c:
14334 * gst/vaapi/gstvaapipluginutil.h:
14335 * gst/vaapi/gstvaapipostproc.c:
14336 plugins: preserve framerate when updating src caps video format.
14337 In the current implementation, gst_video_info_set_format() would reset
14338 the whole GstVideoInfo structure first, prior to setting video format
14339 and size. So, coleteral information like framerate or pixel-aspect-
14341 Provide and use a unique gst_video_info_change_format() for overcome
14342 this issue, i.e. only have it change the format and video size, and
14343 copy over the rest of the fields.
14344 https://bugzilla.gnome.org/show_bug.cgi?id=734665
14346 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14348 * gst/vaapi/gstvaapi.c:
14349 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
14350 This is for helping decodebin to autoplug the vaapidecode element.
14351 Decodebin is selecting decoder elements only based on rank and caps.
14352 Without overriding the autoplug-* signals there is no way to autoplug
14353 HW decoders inside decodebin. An easier soulution is to raise the
14354 rank of vaapidecode, so that it gets selected first.
14355 https://bugzilla.gnome.org/show_bug.cgi?id=739332
14357 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14359 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14360 * gst/vaapi/gstvaapidecode.c:
14361 vaapidecode: only expose supported profiles when needed.
14362 JPEG and VP8 codecs do not really support the concept of "profile". So,
14363 don't try to expose any set that wouldn't be supported by jpegparse, or
14364 ivfparse for instance.
14365 https://bugzilla.gnome.org/show_bug.cgi?id=739713
14366 https://bugzilla.gnome.org/show_bug.cgi?id=739714
14368 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14370 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14371 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
14372 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
14373 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
14374 decoder: h264: add initial support for repeat-first-field (RFF) flag.
14375 Use the SEI pic_timing() message to track and propagate down the repeat
14376 first field (RFF) flag. This is only initial support as there is one
14377 other condition that could induce the RFF flag, which is not handled
14380 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14382 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14383 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
14384 Fix the decoding process for picture order count type 0 when the previous
14385 picture had a memory_management_control_operation = 5. In particular, fix
14386 the actual variable type for prev_pic_structure to hold the full bits of
14387 the picture structure.
14388 In practice, this used to work though, due to the underlying type used to
14389 express a gboolean.
14391 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14393 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14394 decoder: h264: fix detection of top-field-first (TFF) flag.
14395 Use the SEI pic_timing() message to track the pic_struct variable when
14396 present, or infer it from the regular slice header flags field_pic_flag
14397 and bottom_field_flag. This fixes temporal sequence ordering when the
14398 output pictures are to be displayed.
14399 https://bugzilla.gnome.org/show_bug.cgi?id=739291
14401 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14403 * ext/codecparsers:
14404 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
14405 1241840 h264: fix derivation of MaxPicNum variable
14406 3bd718e h264: fix GstH264ParserResult documentation typo
14407 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
14408 b08e4be h264parse: don't unnecesarily set src_caps
14410 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14412 * gst/vaapi/gstvaapipostproc.c:
14413 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
14414 Added the same Klass specifications used in other upstream
14415 video postprocessing elements like videoconvert, videoscale,
14416 videobalance and deinterlace.
14417 An example use case is for this is to help the playsink
14418 to autoplug the hardware accelerated deinterlacer.
14420 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14422 * gst/vaapi/gstvaapipostproc.c:
14423 vaapipostproc: Tweak the output video format setting to enable the autoplugging
14424 This is a workaround until auto-plugging is fixed when
14425 format=ENCODED + memory:VASurface caps feature are provided.
14426 Use the downstream negotiated video format as the output video format
14427 if the user didn't ask for the colorspace conversion explicitly.
14428 Usecase: This will help to connect elements like videoscale, videorate etc
14430 https://bugzilla.gnome.org/show_bug.cgi?id=739443
14432 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14434 * gst/vaapi/gstvaapipostproc.c:
14435 * gst/vaapi/gstvaapipostproc.h:
14436 vaapipostproc: allow user defined scaling mode.
14437 Add new "scale-method" property to expose the scaling mode to use during
14438 video processing. Note that this is only a hint, and the actual behaviour
14439 may differ from implementation (VA driver) to implementation.
14441 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14443 * gst-libs/gst/vaapi/gstvaapifilter.c:
14444 * gst-libs/gst/vaapi/gstvaapifilter.h:
14445 * gst-libs/gst/vaapi/gstvaapiutils.c:
14446 * gst-libs/gst/vaapi/gstvaapiutils.h:
14447 filter: add initial support for high quality scaling.
14448 Add support for video scaling options in VPP pipelines. Only the
14449 DEFAULT mode is bound to exist. Others might be folded into that
14452 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14454 * gst-libs/gst/vaapi/gstvaapifilter.c:
14455 * gst-libs/gst/vaapi/gstvaapifilter.h:
14456 filter: re-indent all GstVaapiFilter related source code.
14458 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14460 * ext/codecparsers:
14461 codecparsers: update to gst-vaapi-branch commit f9d3bde.
14462 2218b02 h264parse: expose parsed profile and level to downstream
14463 3dbfab4 h264parse: return flushing if we get chained while being set to READY
14464 d40fa8b h264: fix frame packing SEI parsing
14465 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
14466 b3e022e h264: initialize some fields of pic_timing structure
14467 a70661d vc1: fix expected level in sequence-layer parsing unit test
14468 6cee88d vc1: fix level values for simple/main profile
14469 356c189 vc1: add unit test for sequence-layer parsing
14470 ab9f641 vc1: take care of endianness when parsing sequence-layer
14471 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
14473 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14475 * gst/vaapi/gstvaapidecode.c:
14476 vaapidecode: Expose the supported profiles as caps to upstream
14477 This will allows the playbin to fallback to Software Decoder
14478 if the Hardware Decoder does not support a particular profile.
14479 https://bugzilla.gnome.org/show_bug.cgi?id=730997
14481 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14483 * gst/vaapi/gstvaapiencode.c:
14484 * gst/vaapi/gstvaapiencode.h:
14485 * gst/vaapi/gstvaapiencode_h264.c:
14486 encode: Attach the codec-data to out caps only based on negotiated caps
14487 Attach the codec_data to out_caps only if downstream needed.
14488 For eg: h264 encoder doesn't need to stuff codec_data to the
14489 src caps if the negotiated caps has a stream format of byte-stream.
14490 https://bugzilla.gnome.org/show_bug.cgi?id=734902
14492 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14495 configure: echoing installation prefix path
14497 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14499 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
14500 display: add support for DRM Render-Nodes.
14501 Add support for DRM Render-Nodes. This is a new feature that appeared
14502 in kernel 3.12 for experimentation purposes, but was later declared
14503 stable enough in kernel 3.15 for getting enabled by default.
14504 This allows headless usages without authentication at all, i.e. usages
14505 through plain ssh connections is possible.
14507 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14509 * gst/vaapi/gstvaapisink.c:
14510 vaapisink: clean-ups (indentation, drop unused variables).
14512 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14515 * gst/vaapi/gstvaapisink.c:
14516 vaapisink: fix GstNavigation "key-press" / "key-release" events.
14517 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
14518 to a KeySym. In particular, there is no such Window argument. Also
14519 make sure to check for, and use, the correct <X11/XKBlib.h> header
14520 where that new function is defined. Otherwise, default to the older
14521 XKeycodeToKeysym() function.
14523 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14525 * gst/vaapi/gstvaapisink.c:
14526 vaapisink: fix GstNavigation "mouse-move" event.
14527 Really use the motion event coordinates to propagate the "mouse-move"
14528 event to upper layer, instead of those from a button event. Those are
14529 technically the same though.
14531 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14533 * gst/vaapi/gstvaapisink.c:
14534 vaapisink: implement the GstNavigation interface
14535 This is useful for things like DVD menus, where key/mouse events
14536 would need to be forwarded from the upstream sink element.
14537 https://bugzilla.gnome.org/show_bug.cgi?id=711479
14539 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
14541 * gst/vaapi/gstvaapipluginbase.c:
14542 vaapipostproc: fix deinterlacing from non VA memory buffers.
14543 When we copy a buffer because we're moving it into VA-API memory, we
14544 need to copy flags. Otherwise, interlaced YUV buffers from a capture
14545 source (e.g. V4L2) don't get flagged as interlaced.
14546 https://bugzilla.gnome.org/show_bug.cgi?id=726270
14547 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
14548 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
14549 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14551 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14553 * gst/vaapi/gstvaapipostproc.c:
14554 vaapipostproc: add support for GLTextureUploadMeta output.
14555 This allows for vaapipostproc to be chained to the glimagesink element
14557 https://bugzilla.gnome.org/show_bug.cgi?id=735231
14559 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14561 * gst/vaapi/gstvaapipluginutil.c:
14562 * gst/vaapi/gstvaapipluginutil.h:
14563 * gst/vaapi/gstvaapipostproc.c:
14564 vaapipostproc: add support for "download" capability.
14565 Allow implicit conversions to raw video formats, while still keeping
14566 VA surfaces underneath. This allows for chaining the vaapipostproc
14567 element to a software-only element that takes care of maps/unmaps.
14569 https://bugzilla.gnome.org/show_bug.cgi?id=720174
14571 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14573 * gst/vaapi/gstvaapipostproc.c:
14574 * gst/vaapi/gstvaapipostproc.h:
14575 vaapipostproc: use pooled vaapi video meta.
14576 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
14577 video buffer allocation. Also optimize copy of additional metadata info
14578 into the resulting video buffer: only copy the video cropping info and
14579 the source surface proxy.
14580 https://bugzilla.gnome.org/show_bug.cgi?id=720311
14581 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14582 [fixed proxy leak, fixed double free on error, optimized meta copy]
14583 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14585 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14587 * gst/vaapi/gstvaapipostproc.c:
14588 vaapipostproc: fix passthrough mode.
14589 If no explicit output surface format is supplied try to keep the one
14590 supplied through the sink pad caps. This avoids a useless copy, even
14591 if things are kept in GPU memory.
14592 This is a performance regression from git commit dfa70b9.
14594 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14596 * gst/vaapi/gstvaapipostproc.c:
14597 * gst/vaapi/gstvaapipostproc.h:
14598 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
14599 https://bugzilla.gnome.org/show_bug.cgi?id=720311
14600 [used new infrastructure through base decide_allocation() impl]
14601 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14603 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14605 * gst/vaapi/gstvaapipostproc.c:
14606 vaapipostproc: enable advanced deinterlacing with same format.
14607 If only advanced deinterlacing is requested, i.e. deinterlacing is
14608 the only active algorithm to apply with source and output surface
14609 formats being the same, then make sure to enable VPP processing.
14610 Otherwise, allow fallback to bob-deinterlacing with simple rendering
14613 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14615 * gst/vaapi/gstvaapivideomemory.c:
14616 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
14617 https://bugzilla.gnome.org/show_bug.cgi?id=735156
14619 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14621 * gst/vaapi/gstvaapipluginbase.c:
14622 * gst/vaapi/gstvaapipluginutil.c:
14623 plugins: fix memory leaks.
14625 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14627 * gst/vaapi/gstvaapidecode.c:
14628 * gst/vaapi/gstvaapipluginbase.c:
14629 * gst/vaapi/gstvaapipluginbase.h:
14630 plugins: factor out decide_allocation() hook.
14631 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
14632 feature argument can be used to force a bufferpool with a specific kind
14635 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14637 * gst/vaapi/gstvaapivideobufferpool.c:
14638 * gst/vaapi/gstvaapivideobufferpool.h:
14639 * gst/vaapi/gstvaapivideomemory.c:
14640 plugins: allow bufferpool to not allocate vaapi video meta.
14641 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
14642 can be used to disable early allocations of vaapi video metas on buffers,
14643 thus delagating that to the bufferpool user.
14645 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14647 * gst/vaapi/gstvaapivideobuffer.c:
14648 * gst/vaapi/gstvaapivideobuffer.h:
14649 * gst/vaapi/gstvaapivideobufferpool.c:
14650 * gst/vaapi/gstvaapivideobufferpool.h:
14651 * gst/vaapi/gstvaapivideocontext.c:
14652 * gst/vaapi/gstvaapivideocontext.h:
14653 * gst/vaapi/gstvaapivideoconverter_glx.c:
14654 * gst/vaapi/gstvaapivideoconverter_glx.h:
14655 * gst/vaapi/gstvaapivideoconverter_x11.c:
14656 * gst/vaapi/gstvaapivideoconverter_x11.h:
14657 * gst/vaapi/gstvaapivideomemory.c:
14658 * gst/vaapi/gstvaapivideomemory.h:
14659 * gst/vaapi/gstvaapivideometa.c:
14660 * gst/vaapi/gstvaapivideometa.h:
14661 * gst/vaapi/gstvaapivideometa_texture.c:
14662 * gst/vaapi/gstvaapivideometa_texture.h:
14663 plugins: re-indent all GstVaapiVideo* related source code.
14665 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14667 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
14668 surfaceproxy: fix copy to propagate view_id.
14669 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
14670 fixing random frames skipped when vaapipostproc element is used in
14671 passthrough mode. In that mode, GstMemory is copied, thus including
14672 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
14674 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14676 * gst/vaapi/gstvaapipostproc.c:
14677 vaapipostproc: fix detection of output surface format changes.
14678 Default to I420 format for output surfaces so that to match the usual
14679 GStreamer pipelines. Though, internally, we could still opt for NV12
14680 surface formats, i.e. default format=ENCODED is a hint for that, thus
14681 delegating the decision to the VA driver.
14683 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14685 * gst/vaapi/gstvaapipostproc.c:
14686 vaapipostproc: fix construction of allowed sink pad caps.
14687 Fix construction of the set of caps allowed on the sink pad to filter
14688 out unsupported raw video caps with GStreamer >= 1.2.
14690 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14692 * gst/vaapi/gstvaapipostproc.c:
14693 * gst/vaapi/gstvaapipostproc.h:
14694 vaapipostproc: improve heuristics for detecting native VA surfaces.
14695 Use the new gst_caps_has_vaapi_surface() helper function to detect
14696 whether the sink pad caps contain native VA surfaces, or not, i.e.
14698 Also rename is_raw_yuv to get_va_surfaces to make the variable more
14699 explicit as we just want a way to differentiate raw video caps from
14700 VA surfaces actually.
14702 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14704 * gst/vaapi/gstvaapipostproc.c:
14705 vaapipostproc: disable discontinuity detection code.
14706 The "discontinuity" tracking code, whereby lost frames are tentatively
14707 detected, is inoperant if the sink pad buffer timestamps are not right
14709 This is a temporary workaround until the following bug is fixed:
14710 https://bugzilla.gnome.org/show_bug.cgi?id=734386
14712 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14714 * gst/vaapi/gstvaapipostproc.c:
14715 vaapipostproc: fix heuristic for detecting discontinuity.
14716 In order to make the discontinuity detection code useful, we need to
14717 detect the lost frames in the history as early as the previous frame.
14718 This is because some VA implementations only support one reference
14719 frame for advanced deinterlacing.
14720 In practice, turn the condition for detecting new frame that is beyond
14721 the previous frame from field_duration*2 to field_duration*3, i.e.
14722 nothing received for the past frame and a half because of possible
14723 rounding errors when calculating the field-duration either in this
14724 element (vaapipostproc), or from the upstream element (parser element).
14725 This is a regression introduced with commit faefd62.
14726 https://bugzilla.gnome.org/show_bug.cgi?id=734135
14728 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14730 * gst/vaapi/gstvaapipluginbase.c:
14731 * gst/vaapi/gstvaapipluginbase.h:
14732 plugins: fix detection of raw video caps.
14733 Use the new gst_caps_has_vaapi_surface() helper function to better
14734 detect raw video caps, and in particular those from RGB colorspace.
14735 https://bugzilla.gnome.org/show_bug.cgi?id=734665
14737 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14739 * gst/vaapi/gstvaapipluginutil.c:
14740 * gst/vaapi/gstvaapipluginutil.h:
14741 plugins: add helper for detecting VA surfaces in caps.
14742 Introduce new gst_caps_has_vaapi_surface() helper function to detect
14743 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
14744 implies a check for memory:VASurface caps features, and format=ENCODED
14745 for earlier versions of GStreamer.
14747 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
14749 * gst/vaapi/gstvaapidecode.c:
14750 vaapidecode: start the decoder task again after finishing
14751 This allows the element to accept data again after draining without
14752 a hard reset or caps change happening in between.
14753 https://bugzilla.gnome.org/show_bug.cgi?id=734616
14755 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
14757 * gst/vaapi/gstvaapidecode.c:
14758 vaapidecode: unlock condition variables before shutting down the element
14759 Otherwise threads might wait for them, causing the shutdown of the element
14760 to deadlock on the streaming thread.
14761 https://bugzilla.gnome.org/show_bug.cgi?id=734616
14763 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
14765 * gst/vaapi/gstvaapidecode.c:
14766 vaapidecode: reset decoder_finish variable after stopping the decoder thread
14767 Otherwise the element is not usable again after draining/EOS.
14768 https://bugzilla.gnome.org/show_bug.cgi?id=734616
14770 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
14772 * gst/vaapi/gstvaapidecode.c:
14773 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
14774 This otherwise results in unnecessary error messages.
14775 https://bugzilla.gnome.org/show_bug.cgi?id=734616
14777 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14779 * gst-libs/gst/vaapi/Makefile.am:
14780 * gst/vaapi/Makefile.am:
14781 build: fix with --no-undefined linker flags.
14782 https://bugzilla.gnome.org/show_bug.cgi?id=729352
14784 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
14786 * gst/vaapi/gstvaapisink.c:
14787 * gst/vaapi/gstvaapisink.h:
14788 vaapisink: add support for GstColorBalance interface.
14789 https://bugzilla.gnome.org/show_bug.cgi?id=722390
14790 [fixed channel names, simplified range factor, fixed memory leak]
14791 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14793 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
14795 * gst/vaapi/gstvaapisink.c:
14796 * gst/vaapi/gstvaapisink.h:
14797 vaapisink: add support for colorbalance adjustment.
14798 https://bugzilla.gnome.org/show_bug.cgi?id=722390
14799 [fixed and simplified tracking of colorbalance value changes]
14800 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14802 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14804 * gst/vaapi/gstvaapisink.c:
14805 vaapisink: improve installation of properties.
14806 Simplify the creation and installation process of properties, by first
14807 accumulating them into a g_properties[] array, and next calling into
14808 g_object_class_install_properties().
14809 Also add missing docs and flags to some properties.
14811 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14813 * gst/vaapi/gstvaapisink.c:
14814 * gst/vaapi/gstvaapisink.h:
14815 vaapisink: code clean-ups.
14816 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
14817 helper macro and use it wherever we know the object is a GstBaseSink or
14818 any base class. Drop explicit initializers for values that have defaults
14821 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14823 * gst/vaapi/gstvaapisink.c:
14824 * gst/vaapi/gstvaapisink.h:
14825 vaapisink: re-indent all GstVaapiSink related source code.
14827 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14829 * gst/vaapi/gstvaapisink.c:
14830 * gst/vaapi/gstvaapisink.h:
14831 vaapisink: introduce separate backends.
14832 Introduce new backends vtable so that to have clean separation between
14833 display dependent code and common base code. That's a "soft" separation,
14834 we don't really need dedicated objects.
14835 https://bugzilla.gnome.org/show_bug.cgi?id=722248
14837 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14839 * gst/vaapi/gstvaapisink.c:
14840 * gst/vaapi/gstvaapisink.h:
14841 vaapisink: drop unused "synchronous" mode.
14842 Support for X11 "synchronous" mode was never implemented, and was only
14843 to be useful for debugging. Drop that altogether, that's not going to
14844 be useful in practice.
14845 https://bugzilla.gnome.org/show_bug.cgi?id=733985
14847 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14849 * gst/vaapi/gstvaapisink.c:
14850 * gst/vaapi/gstvaapisink.h:
14851 vaapisink: drop unused variables.
14852 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
14853 variables. They got merged into the GstVaapiPluginBase object.
14855 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14857 * gst/vaapi/gstvaapisink.c:
14858 * gst/vaapi/gstvaapisink.h:
14859 vaapisink: drop GLX rendering and fancy effects.
14860 Rendering with GLX in vaapisink is kind of useless nowadays, including
14861 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
14862 deprecated in favor of EGL, or more direct buffer sharing with actual
14864 Should testing of interop with GLX be needed, one could still be using
14865 the modern cluttersink or glimagesink elements.
14866 https://bugzilla.gnome.org/show_bug.cgi?id=733984
14868 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
14870 * gst/vaapi/gstvaapisink.c:
14871 * gst/vaapi/gstvaapisink.h:
14872 vaapisink: listen to window size changes on X11.
14873 Allow dynamic changes to the window, e.g. performed by the user, and
14874 make sure to refresh its contents, while preserving aspect ratio.
14875 In practice, Expose and ConfigureNotify events are tracked in X11
14876 display mode by default. This occurs in a separte event thread, and
14877 this is similar to what xvimagesink does. Any of those events will
14878 trigger a reconfiguration of the window "soft" size, subsequently
14879 the render-rect when necessary, and finally _expose() the result.
14880 The default of handle_events=true can be changed programatically via
14881 gst_x_overlay_handle_events().
14882 Thanks to Fabrice Bellet for rebasing the patch.
14883 https://bugzilla.gnome.org/show_bug.cgi?id=711478
14884 [dropped XInitThreads(), cleaned up the code a little]
14885 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14887 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14889 * gst/vaapi/gstvaapidecode.c:
14890 vaapidecode: decode and output all pending frames on normal EOS.
14891 The gst_vaapidecode_decode_loop() function is called within a separate
14892 task to fetch and output all frames that were decoded so far. So, if
14893 the decoder_loop_status is forcibly set to EOS when _finish() is called,
14894 then we are bound to exist the task without submitting the pending
14896 If the downstream element error'ed out, then the gst_pad_push() would
14897 propagate up an error and so we will get it right for cutting off
14898 _finish() early in that case.
14899 This is a regression from 6003596.
14900 https://bugzilla.gnome.org/show_bug.cgi?id=733897
14902 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14905 Bump version for development.
14907 === release 0.5.9 ===
14909 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14914 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14919 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
14921 * gst/vaapi/gstvaapidecode.c:
14922 vaapidecode: properly return from decode loop on downstream errors.
14923 Fixes a hang/race on shutdown where _decode_loop() had already completed
14924 its execution and _finish() was waiting on a GCond for decode_loop()
14925 to complete. Also fixes the possible race where _finish() is called
14926 but _decode_loop() endlessly returns before signalling completion
14927 iff the decoder instance returns GST_FLOW_OK.
14928 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
14929 https://bugzilla.gnome.org/show_bug.cgi?id=733897
14930 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
14931 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14933 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14939 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14941 * gst/vaapi/gstvaapisink.c:
14942 vaapisink: fix GstVideoOverlay::expose() implementation.
14943 Now that we always track the currently active video buffer, it is
14944 not necessary to automatically increase its reference since this is
14945 implicitly performed in ::show_frame() through the get_input_buffer()
14946 helper from GstVaapiPluginBase class.
14947 This is a regression from a26df80.
14949 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14951 * gst/vaapi/gstvaapidecode.c:
14952 * gst/vaapi/gstvaapipluginutil.c:
14953 vaapidecode: simplify bufferpool configuration.
14954 Rework the logics behind the configuration of an adequate bufferpool,
14955 especially when OpenGL meta or additional capsfeatures are needed.
14956 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
14957 and that is not system memory, is now selected by default.
14959 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14961 * gst/vaapi/gstvaapidecode.c:
14962 vaapidecode: fix auto-plugging of vaapisink element.
14963 Make sure to propagate memory:VASurface capsfeature to srcpad caps
14964 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
14965 core currently miss additional patches available in 1.5-git (1.6).
14966 This is a temporary workaround.
14968 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14971 configure: allow builds against GStreamer git (1.5.x).
14972 https://bugzilla.gnome.org/show_bug.cgi?id=733688
14974 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14977 configure: fix build with GStreamer 1.4.0 release.
14979 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14982 * debian.upstream/Makefile.am:
14983 * debian.upstream/control.in:
14984 debian: fix packaging for new naming scheme.
14986 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14991 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
14994 configure: mark support for GStreamer < 1.2 as deprecated.
14995 Supporting anything thing below GStreamer 1.2 is asking for trouble
14996 for keeping up with the required facilities to make efficient pipelines.
14997 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
15000 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15003 configure: mark support for GStreamer 0.10 as obsolete.
15004 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
15005 and may actually be removed altogether for a future release. There is
15006 no real point to maintain a build for such an ancient GStreamer version
15007 that is not even supported upstream.
15009 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15011 * gst/vaapi/gstvaapisink.c:
15012 * gst/vaapi/gstvaapisink.h:
15013 vaapisink: allow a specific view component to be displayed.
15014 If a multiview stream is decoded, multiple view components are submitted
15015 as is downstream. It is the responsibility of the sink element to display
15016 the required view components. By default, always select the frame buffer
15017 that matches the view-id of the very first frame to be displayed.
15018 However, introduce a "view-id" property to allow the selection of a
15019 specific view component of interest to display.
15021 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15023 * gst/vaapi/gstvaapisink.c:
15024 vaapisink: always keep the last displayed buffer around.
15025 Always record the VA surface that is currently being rendered, no matter
15026 the fact we are using texturedblit or overlay. That's because in some
15027 occasions, we need to refresh or resize the displayed contents based on
15028 new events. e.g. user-resized window.
15029 Besides, it's simpler to track the last video buffer in GstVaapiSink than
15030 through the base sink "last-sample".
15032 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15034 * gst/vaapi/gstvaapipluginbase.c:
15035 * gst/vaapi/gstvaapipluginbase.h:
15036 * gst/vaapi/gstvaapipluginutil.c:
15037 * gst/vaapi/gstvaapisink.c:
15038 vaapisink: add support for "display-name" property.
15039 Add a "display-name" property to vaapisink so that the end user could
15040 select the desired output. Keep "display-name" in-line with the existing
15041 "display" (GstVaapiDisplayXXX type).
15042 So, for X11 or GLX, the "display-name" is the usual display name as we
15043 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
15044 for wl_display_connect(); and for DRM, the "display-name" is actually the
15046 https://bugzilla.gnome.org/show_bug.cgi?id=722247
15048 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15050 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
15051 window: make gst_vaapi_window_reconfigure() thread-safe.
15052 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
15053 thread-safe by default, so that upper layer users don't need to handle
15056 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
15058 * gst-libs/gst/vaapi/gstvaapiwindow.c:
15059 * gst-libs/gst/vaapi/gstvaapiwindow.h:
15060 window: allow for updating size from current geometry.
15061 Add gst_vaapi_window_reconfigure() interface to force an update of
15062 the GstVaapiWindow "soft" size, based on the current geometry of the
15063 underlying native window.
15064 This can be useful for instance to synchronize the window size when
15065 the user changed it.
15066 Thanks to Fabrice Bellet for rebasing the patch.
15067 [changed interface to gst_vaapi_window_reconfigure()]
15068 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15070 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15072 * gst-libs/gst/vaapi/gstvaapiwindow.c:
15073 * gst-libs/gst/vaapi/gstvaapiwindow.h:
15074 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
15075 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
15076 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15077 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
15078 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
15079 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15080 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
15081 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
15082 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
15083 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
15084 window: re-indent all GstVaapiWindow related source code.
15086 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15088 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15089 * gst-libs/gst/vaapi/gstvaapidisplay.h:
15090 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
15091 display: add interface to retrieve the display name.
15092 Add gst_vaapi_display_get_display_name() helper function to determine
15093 the name associated with the underlying native display. Note that for
15094 raw DRM backends, the display name is actually the device path.
15096 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15098 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
15099 display: fix comparison of X11 display names.
15100 Make sure to not only compare display host names, but also the actual
15101 display number. The screen number does not need to be checked at this
15104 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15106 * gst/vaapi/gstvaapidecode.c:
15107 * gst/vaapi/gstvaapivideobufferpool.c:
15108 vaapidecode: add support for VideoAlignment bufferpool option.
15109 Always add VideoAlignment bufferpool option if the downstream element
15110 expects its own pool to be used but does not offer it through a proper
15111 propose_allocation() implementation for instance, and that the ALLOCATION
15112 query does not expose the availability of the Video Meta API.
15113 This fixes propagation of video buffer stride information to Firefox.
15115 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15117 * gst/vaapi/gstvaapivideomemory.c:
15118 vaapivideomemory: always prefer native VA surface formats.
15119 Make sure to always prefer native internal formats for the VA surfaces
15120 that get allocated. Also disable "direct-rendering" mode in this case.
15121 This is needed so that to make sure that anything that gets out of the
15122 decoder, or anything that gets into the encoder, is in native format
15123 for the hardware, and thus the driver doesn't need to perform implicit
15124 conversions in there. Interop with SW elements is still available with
15125 fast implementations of VA imaging APIs.
15127 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15129 * gst/vaapi/gstvaapivideomemory.c:
15130 vaapivideomemory: disallow memory shares across buffers, use a copy.
15131 Forbid shares of GstMemory instances, and rather make copy of it. This
15132 effectively copies the GstMemory structure and enclosed metadata, but
15133 this does not copy the VA surface contents itself. It should though.
15134 This fixes preroll and makes sure to not download garbage for the first
15135 frame when a SW rendering sink is used.
15137 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15139 * gst/vaapi/gstvaapivideomemory.c:
15140 * gst/vaapi/gstvaapivideomemory.h:
15141 vaapivideomemory: use an image pool to cache objects.
15142 Use an image pool to hold VA images to be used for downloads/uploads
15143 of contents for the associated surface.
15144 This is an optmization for size. So, instead of creating as many VA
15145 images as there are buffers (then VA surfaces) allocated, we only
15146 maintain a minimal set of live VA images, thus preserving memory
15149 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15151 * gst/vaapi/gstvaapivideomemory.c:
15152 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
15153 Disable read-write mappings if "direct-rendering" is not supported.
15154 Since the ordering of read and write operations is not specified,
15155 this would require to always download the VA surface on _map(), then
15156 commit the temporary VA image back to the VA surface on _unmap().
15157 Some SW decoding plug-in elements still use R/W mappings though.
15158 https://bugzilla.gnome.org/show_bug.cgi?id=733242
15160 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15162 * gst/vaapi/gstvaapivideomemory.c:
15163 vaapivideomemory: minor code clean-ups.
15164 Fix error messages introduced in the previous commit for the _map()
15165 imaplementation. Also use the new get_image_data() helper function
15166 to determine the base pixels data buffer from a GstVaapiImage when
15167 updating the video info structure from it.
15169 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15171 * gst/vaapi/gstvaapivideomemory.c:
15172 * gst/vaapi/gstvaapivideomemory.h:
15173 vaapivideomemory: add support for raw pixels mappings.
15174 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
15175 cases where the buffer pool is allocated without VideoMeta API, thus
15176 individual planes cannot be mapped.
15177 This is initial support for Firefox >= 30.
15178 https://bugzilla.gnome.org/show_bug.cgi?id=731886
15180 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15182 * gst/vaapi/gstvaapivideomemory.c:
15183 vaapivideomemory: fix determination of the surface pool format.
15184 While creating the vaapi video allocator, make sure the associated
15185 surface pool has correct format instead of defaulting to NV12 video
15186 format even though there is no direct rendering support.
15187 https://bugzilla.gnome.org/show_bug.cgi?id=732691
15189 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15191 * gst/vaapi/gstvaapivideomemory.c:
15192 vaapivideomemory: fix association of surface to proxy.
15193 Make sure to always update the VA surface pointer whenever the proxy
15194 changes. This used to only work when the VA surface is written to, in
15195 interop with SW element ("upload" feature), and this now fixes cases
15196 when the VA surface is needed for reading, in interop with SW element
15197 ("download" feature).
15199 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15201 * gst/vaapi/gstvaapidecode.c:
15202 * gst/vaapi/gstvaapipluginutil.c:
15203 * gst/vaapi/gstvaapivideomemory.c:
15204 plugins: expose I420 format for interop with SW elements.
15205 Always expose I420 format by default when the VA surface could be
15206 mapped for interoperability with non harware accelerated elements.
15207 However, the default behaviour remains the auto-plugging of vaapi
15208 elements, down to the sink.
15209 Side effect: "direct-rendering" mode is also disabled most of the
15210 times as plain memcpy() from uncached speculative write combining
15211 memory is not going to be efficient enough.
15213 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15215 * gst/vaapi/gstvaapidecode.c:
15216 * gst/vaapi/gstvaapivideomemory.c:
15217 plugins: allow download capability to vaapidecode element.
15218 Fix support for VA surface download capability in vaapidecode element
15219 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
15220 but also the libva-intel-driver while performing hardware accelerated
15221 conversions from the native VA surface format (NV12) to the desired
15222 output VA image format.
15223 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
15224 https://bugzilla.gnome.org/show_bug.cgi?id=733243
15226 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
15228 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15229 decoder: mpeg4: fix picture decoder return value for skipped frames.
15230 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
15231 when a frame should be skipped, so the stream processing is not stalled.
15232 https://bugzilla.gnome.org/show_bug.cgi?id=733324
15234 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
15236 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15237 decoder: mpeg2: respect any input PTS provided for a frame.
15238 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
15239 frame timestamps within a GOP, even when it's been fed input PTS for
15241 That leads to incorrect output timestamps in some situations - for example
15242 live playback where input timestamps have been scaled based on arrival time
15243 from the network and don't exactly match the framerate.
15244 https://bugzilla.gnome.org/show_bug.cgi?id=732719
15246 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15248 * gst-libs/gst/vaapi/gstvaapiobject.c:
15249 GstVaapiObject: make gst_vaapi_object_new() more robust.
15250 Forbid GstVaapiObject to be created without an associated klass spec.
15251 It is mandatory that the subclass implements an adequate .finalize()
15252 hook, so it shall provide a valid GstVaapiObjectClass.
15253 https://bugzilla.gnome.org/show_bug.cgi?id=722757
15254 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
15255 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15257 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15259 * gst-libs/gst/vaapi/gstvaapiobject.c:
15260 GstVaapiObject: initialize the derived object data with init() hook.
15261 Call the subclass .init() function in gst_vaapi_object_new(), if
15262 needed. The default behaviour is to zero initialize the subclass
15263 object data, then the .init() function can be used to initialize
15264 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
15265 Also fix the gst_vaapi_object_new() description, which was merely
15266 copied from GstVaapiMiniObject.
15267 https://bugzilla.gnome.org/show_bug.cgi?id=722757
15268 [changed to always zero initialize the subclass]
15269 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15271 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
15273 * gst/vaapi/gstvaapidecode.c:
15274 vaapidecode: make decoder work with playbin
15275 When playbin/decodebin builds the pipeline, it puts decoders and sinks
15276 into different bins and forwards the queries from bins to bins. So in
15277 the initials steps the pipeline is built iteratively by playbin and
15280 [filesrc] -> [typefind]
15281 [filesrc] -> [typefind] -> [demuxer]
15282 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
15283 At this point the decoder is asked for its SRC caps and it will make a
15284 choice based on what gst_pad_peer_query_caps() returns. The problem is
15285 that the caps returns at that point includes caps features like ANY,
15286 essentially because playbin can plug in additional elements like
15287 videoscale, videoconv or deinterlace.
15288 This patch adds a another call to
15289 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
15290 allocation, to make sure we asks the downstream elements when the
15291 entire pipeline has been built.
15292 https://bugzilla.gnome.org/show_bug.cgi?id=731645
15294 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
15296 * gst/vaapi/gstvaapipostproc.c:
15297 vaapipostproc: don't let tmp_rect go out of scope.
15298 A compiler change showed me that tmp_rect went out of scope before
15299 it was used. Move it to the beginning of the function instead.
15300 https://bugzilla.gnome.org/show_bug.cgi?id=726363
15301 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
15302 [added guards for GStreamer 0.10 builds]
15303 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15305 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15310 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15314 Drop references to deprecated plugins (vaapiupload, vaapidownload),
15315 mention that support for GStreamer 0.10 is deprecated, make overview
15316 more descriptive in certain aspects.
15318 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15323 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15327 build: mention that support for GStreamer 0.10 is deprecated.
15329 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15332 * gst/vaapi/gstvaapidecode.c:
15333 build: fix for GStreamer 0.10.
15335 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15337 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
15338 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15339 * patches/videoparsers/series.frag:
15340 build: fix for GStreamer 1.0.x.
15342 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15344 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15345 decoder: h264: detect incorrectly paired fields in frames.
15346 When a DPB flush is required, e.g. at a natural and of stream or issued
15347 explicitly through an IDR, try to detect any frame left in the DPB that
15348 is interlaced but does not contain two decoded fields. In that case, mark
15349 the picture as having a single field only.
15350 This avoids a hang while decoding tv_cut.mkv.
15352 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15354 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15355 decoder: h264: simplify the DPB output process.
15356 Simplify the dpb_output() function to exclusively rely on the frame store
15357 buffer to output, since this is now always provided. Besides, also fix
15358 cases where split fields would not be displayed.
15359 This is a regression from f48b1e0.
15361 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15363 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
15364 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
15365 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
15366 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
15367 * patches/videoparsers/series.frag:
15368 h264parse: drop patches merged upstream.
15369 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
15370 0005-h264parse-introduce-new-state-tracking-variables.patch
15371 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
15372 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
15374 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15376 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15377 decoder: h264: fix memory leak in PPS.
15378 Cope with latest changes from codecparsers/h264. It is now required
15379 to explicitly clear the GstH264PPS structure as it could contain
15380 additional allocations (slice_group_ids).
15382 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15384 * ext/codecparsers:
15385 codecparsers: update to gst-vaapi-branch commit 2d53b69.
15386 c4ace00 h264parse: fix collection of access units to preserve config headers
15387 0f9f7c9 h264parse: improve conditions for skipping NAL units
15388 9ffb25c h264parse: introduce new state tracking variables
15389 64955d3 h264parse: fix and optimize NAL collection function
15390 13cd2a3 h264: clarifications and documentation fixes
15391 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
15392 18f0de0 h264: fix memory leak in GstH264PPS
15393 fdcb54c h264: fix typo in GstH264VUIParams description
15394 fd4dae9 vp8: move up built-in range decoder private data
15396 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15398 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15399 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
15400 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
15401 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
15402 decoder: propagate MVC metadata ("view-id", head of multiview set).
15403 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
15404 bundle", and really expresses the first view component of a multi
15405 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
15407 Likewise, new API is exposed to retrieve the associated "view-id".
15409 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15411 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15412 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
15413 decoder: propagate "one-field" flags.
15414 Allow decoders to set the "one-field" attribute when the decoded frame
15415 genuinely has a single field, or if the second field was mis-decoded but
15416 we still want to display the first field.
15418 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15420 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15421 decoder: output decoded frames only once.
15422 Make sure to output the decoded picture, and push the associated
15423 GstVideoCodecFrame, only once. The frame fully represents what needs
15424 to be output, included for interlaced streams. Otherwise, the base
15425 GstVideoDecoder class would release the frame twice.
15426 Anyway, the general process is to output decoded frames only when
15427 they are complete. By complete, we mean a full frame was decoded or
15428 both fields of a frame were decoded.
15430 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15432 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15433 decoder: h264: decode current picture earlier.
15434 Slightly optimize decoding process by submitting the current VA surface
15435 for decoding earlier to the hardware, and perform the reference picture
15436 marking process and DPB update process afterwards.
15437 This is a minor optimization to let the video decode engine kick in work
15438 earlier, thus improving parallel resources utilization.
15440 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15442 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15443 decoder: h264: fix output of second field when first field is not in DPB.
15444 Fix decoding of interlaced streams where a first field (e.g. B-slice)
15445 was immediately output and the current decoded field is to be paired
15446 with that former frame, which is no longer in DPB.
15447 https://bugzilla.gnome.org/show_bug.cgi?id=701340
15449 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15451 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15452 decoder: h264: slightly optimize the process to detect new pictures.
15453 Optimize the process to detect new pictures or start of new access
15454 units by checking if the previous NAL unit was the end of a picture,
15455 or the end of the previous access unit.
15457 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15459 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15460 decoder: h264: handle access unit ("au") optimization.
15461 Optimize parsing when buffers are supplied with access unit alignment.
15462 This helps determining faster when the end of an access unit is reached.
15464 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15466 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15467 decoder: h264: fix tracking of DPB size changes.
15468 Add support for MVC streams with multiple SPS and subset SPS headers
15469 emitted regularly, e.g. at around every I-frame. Track the maximum
15470 number of views in ensure_context() and really reset the DPB size to
15471 the expected value, always. i.e. even if it decreased. dpb_reset()
15472 only cares of ensuring the DPB allocation.
15474 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15476 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15477 decoder: h264: fix the DPB compaction process.
15478 Fix the compaction process when the DPB is cleared for a specific
15479 view, i.e. fix the process of filling in the holes resulting from
15480 removing frame buffers matching the current picture.
15482 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15484 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15485 encoder: h264: generate new SPS only when codec config changed.
15486 It is not necessary to periodically send SPS or subset SPS headers.
15487 This is up to the upper layer (e.g. transport layer) to decide on
15488 if/how to periodically submit those. For now, only generate new SPS
15489 or subset SPS headers when the codec config changed.
15490 Note: the upper layer could readily determine the config headers
15491 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
15492 https://bugzilla.gnome.org/show_bug.cgi?id=732083
15493 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15495 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15497 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15498 encoder: h264: track encoder config changes.
15499 Track and report when encoder configuration changed. For now, this covers
15500 resolution, profile/level and bitrate changes.
15502 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15504 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15505 encoder: h264: add pixel-aspect-ratio to VUI parameters.
15506 Report sample aspect ratio (SAR) as present, and make it match what
15507 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
15508 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
15510 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15512 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15513 encoder: h264: fix number of anchor and non-anchor reference pictures.
15514 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
15515 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
15518 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15520 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15521 encoder: h264: fix timing_info_present_flag value in subset SPS.
15522 When the seq_parameter_set_data() syntax structure is present in a subset
15523 sequence parameter set and vui_parameters_present_flag is equal to 1, then
15524 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
15526 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15528 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15529 encoder: h264: add cpbBrNalFactor values for MVC profiles.
15531 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15533 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
15534 h264parse: fix detection of access unit boundaries for MVC.
15535 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
15536 this function is used to determine access unit boundaries, i.e. that
15537 is the key function for alignment=au output format generation.
15539 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15541 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
15542 * patches/videoparsers/series.frag:
15543 h264parse: fix collection of access units to preserve config headers.
15544 Always use a GstAdapter when collecting access units (alignment="au")
15545 in either byte-stream or avcC format. This is required to properly
15546 preserve config headers like SPS and PPS when invalid or broken NAL
15547 units are subsequently parsed.
15548 More precisely, this fixes scenario like:
15549 <SPS> <PPS> <invalid-NAL> <slice>
15550 where we used to reset the output frame buffer when an invalid or
15551 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
15552 preventing the next slice unit to be decoded, should this also
15553 represent any valid data.
15554 https://bugzilla.gnome.org/show_bug.cgi?id=732203
15556 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15558 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
15559 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
15560 * patches/videoparsers/series.frag:
15561 h264parse: improve conditions for skipping NAL units.
15562 Carefully track cases when skipping broken or invalid NAL units is
15563 necessary. In particular, always allow NAL units to be processed
15564 and let that gst_h264_parse_process_nal() function decide on whether
15565 the current NAL needs to be dropped or not.
15566 This fixes parsing of streams with SEI NAL buffering_period() message
15567 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
15568 SPS NAL unit, among other cases too.
15569 Practical examples from the H.264 AVC conformance suite include
15570 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
15571 when parsing in stream-format=byte-stream,alignment=au mode.
15572 https://bugzilla.gnome.org/show_bug.cgi?id=732203
15574 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15576 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
15577 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
15578 * patches/videoparsers/series.frag:
15579 h264parse: introduce new state tracking variables.
15580 Improve parser state tracking by introducing new flags reflecting
15581 it: "got-sps", "got-pps" and "got-slice". This is an addition for
15582 robustness purposes.
15583 Older have_sps and have_pps variables are kept because they have
15584 a different meaning. i.e. they are used for deciding on when to
15585 submit updated caps or not, and rather mean "have new SPS/PPS to
15588 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15590 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15591 * patches/videoparsers/series.frag:
15592 h264parse: default to byte-stream/nalu format (Annex B).
15593 Always default to stream-format=byte-stream,alignment=nalu if avcC
15594 format was not detected. This is the natural stream format specified
15595 in the standard (Annex.B): a series of NAL units prefixed with the
15597 https://bugzilla.gnome.org/show_bug.cgi?id=732167
15599 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15601 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
15602 * patches/videoparsers/series.frag:
15603 h264parse: fix and optimize NAL collection function.
15604 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
15605 NAL unit. We don't want to parse the full NAL unit, but only the
15606 header bytes and possibly the first RBSP byte for identifying the
15607 first_mb_in_slice syntax element.
15608 Also fix check for failure when returning from that function. The
15609 only success condition for that is GST_H264_PARSER_OK, so use it.
15610 https://bugzilla.gnome.org/show_bug.cgi?id=732154
15612 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15614 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15615 encoder: h264: fix NAL unit types in packed headers.
15616 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
15617 slice header (nal_unit_type = 1 or 5) only for the base view. In non
15618 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
15619 is required, with an appropriate nal_unit_header_mvc_extension() in
15620 the NAL header bytes.
15621 https://bugzilla.gnome.org/show_bug.cgi?id=732083
15623 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15625 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15626 encoder: h264: add missing field in packed Subset SPS header.
15627 Write the missing num_level_values_signalled_minus1 syntax element
15628 into the packed header for subset sequence parameter set.
15629 https://bugzilla.gnome.org/show_bug.cgi?id=732083
15631 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15633 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15634 decoder: h264: fix marking of non-reference picture into DPB.
15635 Fix search for a picture in the DPB that has a lower POC value than
15636 the current picture. The dpb_find_lowest_poc() function will return
15637 a picture with the lowest POC in DPB and that is marked as "needed
15638 for output", but an additional check against the actual POC value
15639 of the current picture is needed.
15640 This is a regression from 1c46990.
15641 https://bugzilla.gnome.org/show_bug.cgi?id=732130
15643 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15645 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15646 decoder: h264: fix DPB clear when no decoding actually started.
15647 Fix dpb_clear() to clear previous frame buffers only if they actually
15648 exist to begin with. If the decoder bailed out early, e.g. when it
15649 does not support a specific profile, that array of previous frames
15650 might not be allocated beforehand.
15652 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15654 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15655 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
15656 * gst/vaapi/gstvaapidecode.c:
15657 decoder: h264: add support for NALU "alignment" optimization.
15658 We can avoid scanning for start codes again if the bitstream is fed
15659 in NALU chunks. Currently, we always scan for start codes, and keep
15660 track of remaining bits in a GstAdapter, even if, in practice, we
15661 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
15663 https://bugzilla.gnome.org/show_bug.cgi?id=723284
15664 [use gst_adapter_available_fast() to determine the top buffer size]
15665 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15667 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15669 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15670 decoder: h264: fix caps to report interlace-mode accordingly.
15671 The `vaapipostproc' element could never determine if the H.264 stream
15672 was interlaced, and thus always assumed it to be progressive. Fix the
15673 H.264 decoder to report interlace-mode accordingly, thus allowing the
15674 vaapipostproc element to automatically enable deinterlacing.
15676 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15678 * gst/vaapi/gstvaapipostproc.c:
15679 vaapipostproc: don't crash with dynamic framerate (0/1).
15680 Avoid reaching an assert if dynamic framerates (0/1) are used. One
15681 way to solve this problem is to just stick field_duration to zero.
15682 However, this means that, in presence of interlaced streams, the
15683 very first field will never be displayed if precise presentation
15684 timestamps are honoured.
15685 https://bugzilla.gnome.org/show_bug.cgi?id=729604
15687 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
15689 * gst/vaapi/gstvaapipostproc.c:
15690 vaapipostproc: create filter surface pool if it does not exist yet.
15691 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
15692 recreating filter_pool. Unfortunately, this also meant it didn't create
15693 it if it did not exist.
15694 Fix it to always create the buffer pool if it does not exist.
15695 https://bugzilla.gnome.org/show_bug.cgi?id=723834
15696 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
15698 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
15700 * gst/vaapi/gstvaapipostproc.c:
15701 vaapipostproc: reset deinterlacer state when there is a discontinuity.
15702 Reset deinterlacer state, i.e. past reference frames used for advanced
15703 deinterlacing, when there is some discontinuity detected in the course
15704 of processing source buffers.
15705 This fixes support for advanced deinterlacing when a seek occurred.
15706 https://bugzilla.gnome.org/show_bug.cgi?id=720375
15707 [fixed type of pts_diff variable, fetch previous buffer PTS from the
15708 history buffer, reduce heuristic for detecting discontinuity]
15709 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15711 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15713 * gst/vaapi/gstvaapipostproc.c:
15714 vaapipostproc: add support for crop regions in VPP mode.
15715 Apply video cropping regions stored in GstVideoCropMeta, or in older
15716 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
15717 the crop meta are already propagated to the output buffers.
15718 https://bugzilla.gnome.org/show_bug.cgi?id=720730
15720 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
15722 * gst/vaapi/gstvaapipostproc.c:
15723 vaapipostproc: make deinterlace-mode behave as expected.
15724 deinterlace-mode didn't behave in the way you'd expect if you have
15725 past experience of the deinterlace element. There were two bugs:
15726 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
15727 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
15728 Fix these up, and add assertions and error messages to detect cases that
15730 https://bugzilla.gnome.org/show_bug.cgi?id=726361
15731 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
15732 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15734 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
15736 * gst/vaapi/gstvaapidecode.c:
15737 vaapidecode: do not discard video info props when the format changed.
15738 gst_video_info_set_format() does not preserve video info properties. In
15739 order to keep important information in the caps such as interlace mode,
15740 framerate, pixel aspect ratio, ... we need to manually copy back those
15741 properties after setting the new video format.
15742 https://bugzilla.gnome.org/show_bug.cgi?id=722276
15744 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
15746 * gst/vaapi/gstvaapidecode.c:
15747 vaapidecode: plug a memory leak.
15748 It can happen that there is a pool provided that does not advertise
15749 the vappivideometa. We should unref that pool before using our own.
15750 Discovered with vaapidecode ! {glimagesink,cluttersink}
15751 https://bugzilla.gnome.org/show_bug.cgi?id=724957
15752 [fixed compilation by adding the missing semi-colon]
15753 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15755 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15757 * gst/vaapi/gstvaapidecode.c:
15758 vaapidecode: parse source data until a frame is obtained.
15759 Parse any pending data until a complete frame is obtained. This is a
15760 memory optimization to avoid expansion of video packets stuffed into
15761 the GstAdapter, and a fix to EOS condition to detect there is actually
15762 pending data that needs to be decoded, and subsequently output.
15763 https://bugzilla.gnome.org/show_bug.cgi?id=731831
15765 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15767 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15768 encoder: h264: fix multiple slices support in packed headers mode.
15769 Handle packedi slice headers and packed raw data on a per-slice basis,
15770 which is necessary for multi slice encoding.
15772 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15774 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15775 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
15776 encoder: add infrastructure for per-slice handling of packed headers.
15777 The packed slice header and packed raw data need to be paired with
15778 the submission of VAEncSliceHeaderParameterBuffer. So handle them
15779 on a per-slice basis insted of a per-picture basis.
15780 [removed useless initializer]
15781 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15783 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15785 * gst/vaapi/gstvaapisink.c:
15786 vaapisink: fix initialization with "drm" display type.
15787 Force early initializatin of the GstVaapiDisplay so that to make sure
15788 that the sink element display object is presented first to upstream
15789 elements, as it will be correctly featuring the requested display type
15791 Otherwise, we might end up in situations where a VA/X11 display is
15792 initialized in vaapidecode, then we try VA/DRM display in vaapisink
15793 (as requested by the "display" property), but this would cause a failure
15794 because we cannot acquire a DRM display that was previously acquired
15795 through another backend (e.g. VA/X11).
15797 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15799 * gst/vaapi/gstvaapipluginbase.c:
15800 plugins: fix initialization with foreign context.
15801 When a new display is settled through GstElement::set_context() (>= 1.2),
15802 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
15803 associated display type.
15805 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15810 * gst/vaapi/Makefile.am:
15811 * gst/vaapi/gstvaapiparse.c:
15812 * gst/vaapi/gstvaapiparse.h:
15813 * patches/Makefile.am:
15814 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15815 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
15816 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
15817 * patches/videoparsers/Makefile.am:
15818 * patches/videoparsers/series.frag:
15819 plugins: add built-in video parsers as "vaapiparse" element.
15820 The built-in video parsers elements are built into a single DSO named
15821 libgstvaapi_parse.so. The various video parsers could be accessed as
15823 For now, this only includes a modified version of h264parse so that to
15824 support H.264 MVC encoded streams.
15826 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15828 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15829 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
15830 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
15831 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
15833 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15835 * ext/codecparsers:
15836 codecparsers: update to gst-vaapi-branch commit d6325ac.
15837 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
15838 d2f965a h264parse: set field_pic_flag when parsing a slice header
15839 24c15b8 Import h264parse
15840 a9283e5 bytereader: Use concistant derefence method
15841 a8252c6 bytereader: Use pointer instead of index access
15842 b1bebfc Import GstBitReader and GstByteReader
15843 2f58788 h264: recognize SVC NAL units
15844 4335da5 h264: fix SPS copy code for MVC
15845 cf9b6dc h264: fix quantization matrix conversion routine names
15846 b11ce2a h264: add gst_h264_video_calculate_framerate()
15847 126dc6f add C++ guards for MPEG-4 and VP8 parsers
15849 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15851 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15852 decoder: h264: factor out DPB pruning for MVC.
15853 Factor out the removal process of unused inter-view only reference
15854 pictures from the DPB, prior to the possible insertion of the current
15856 Ideally, the compiler could still opt for generating two loops. But
15857 at least, the code is now clearer for maintenance.
15859 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15861 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15862 decoder: h264: clean-ups.
15863 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
15864 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
15866 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15868 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15869 decoder: h264: improve pruning of unused MVC inter-view frames.
15870 Improve process for the removal of pictures from DPB before possible
15871 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
15872 reference components. In particular, handle cases where picture to be
15873 inserted is not the last one of the access unit and if it was already
15874 output and is no longer marked as used for reference, including for
15875 decoding next view components within the same access unit.
15877 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15879 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15880 decoder: h264: improve DPB bumping process for MVC.
15881 While invoking the DPB bumping process in presence of many views,
15882 it could be necessary to output previous pictures that are ready,
15883 in a whole. i.e. emitting all view components from the very first
15884 view order index zero to the very last one in its original access
15885 unit; and not starting from the view order index of the picture
15886 that caused the DPB bumping process to be invoked.
15887 As a reminder, the maximum number of frames in DPB for MultiView
15888 High profile with more than 2 views is not necessarily a multiple
15889 of the number of views.
15890 This fixes decoding of MVCNV-4.264.
15892 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15894 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15895 decoder: h264: fix inter-view references array growth.
15896 Let the utility layer handle dynamic growth of the inter-view pictures
15897 array. By definition, setting a new size to the array will effectively
15898 grow the array, but would also fill in the newly created elements with
15899 empty entries (NULL), thus also increasing the reported length, which
15902 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15904 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15905 decoder: h264: reduce ReferenceFrames entries to the essential set.
15906 When decoding Multiview High profile streams with a large number of
15907 views, it is not possible to make the VAPictureParameterBufferH264.
15908 ReferenceFrames[] array hold the complete DPB, with all possibly
15909 active pictures to be used for inter-view prediction in the current
15911 So reduce the scope of the ReferenceFrames[] array to only include
15912 the set of reference pictures that are going to be used for decoding
15913 the current picture. Basically, this is a union of all RefPicListX[]
15914 array, for all slices constituting the decoded picture.
15916 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15918 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15919 decoder: h264: fix MVC inter-view prediction process.
15920 The inter-view reference components and inter-view only reference
15921 components that are included in the reference picture lists shall
15922 be considered as not being marked as "used for short-term reference"
15923 or "used for long-term reference". This means that reference flags
15924 should all be removed from VAPictureH264.flags.
15925 This fixes decoding of MVCNV-2.264.
15927 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15929 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15930 decoder: h264: fix detection of profile changes for MVC.
15931 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
15932 be careful to detect profiles changes and not reset the underlying
15933 VA context erroneously. In MVC situations, we could indeed get a
15934 profile_idc change for every SPS that gets activated, alternatively
15935 (base-view -> non-base view -> base-view, etc.).
15936 An improved fix would be to characterize the exact profile to use
15937 once and for all when SPS NAL units are parsed. This would also
15938 allow for fallbacks to a base-view decoding only mode.
15940 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
15942 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15943 encoder: h264: drop extraneous definitions.
15944 Re-use definitions from the codecparser headers instead of duplicating
15945 them here again. That covers NALU definitions and slice types.
15947 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15949 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15950 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
15951 https://bugzilla.gnome.org/show_bug.cgi?id=727418
15953 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15955 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15956 encoder: h264: don't allow CABAC with Extended profile.
15957 The H.264 specification does not support CABAC entropy coding for the
15959 https://bugzilla.gnome.org/show_bug.cgi?id=727418
15961 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15963 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15964 encoder: h264: use packed headers mode for MVC encoding.
15965 Exclusively use VA drivers that support raw packed headers for encoding.
15966 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
15967 provides for better compatibility accross the various VA drivers and HW
15968 generations since no particular API is needed beyond what readily exists.
15970 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15972 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15973 encoder: h264: add support for packed slice headers.
15974 https://bugzilla.gnome.org/show_bug.cgi?id=722905
15976 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15978 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15979 encoder: h264: store subset sps to generate the codec-data
15980 Store the SubsetSPS nal unit which we need for MVC specific
15981 codec_data generation.
15983 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15985 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15986 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
15987 Since we are encoding each view independently from each other, we
15988 need a higher number of pre-allocated surfaces to be used as the
15989 reconstructed frames. For Stereo High profile encoding, this means
15990 to effectively double the number of frames to be stored in the DPB.
15992 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
15994 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15995 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
15996 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
15997 * gst/vaapi/gstvaapiencode_h264.c:
15998 encoder: h264: add initial support for H.264 Stereo High profile.
15999 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
16000 for non-base-view streams encoding, and the usual SPS, PPS and Slice
16001 NALs for base-view encoding.
16002 The H.264 Stereo High profile encoding mode will be turned on when the
16003 "num-views" parameter is set to 2. The source (raw) YUV frames will be
16004 considered as Left/Right view, alternatively.
16005 Each of the two views has its own frames reordering pool and reference
16006 frames list management system. Inter-view references are not supported
16007 yet, so the views are encoded independently from each other.
16008 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
16009 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
16010 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16012 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
16014 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16015 encoder: h264: wrap pools for refs and frames reordering.
16016 Create structures to maintain the reference frames list (RefPool) and
16017 frames reordering (ReorderPool) logic.
16018 This is a prerequisite for H.264 MVC support.
16019 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
16021 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
16023 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16024 encoder: h264: add provisional support for subset SPS headers.
16025 Add provisions to write subset SPS headers to the bitstream in view
16026 to supporting the H.264 MVC specification.
16027 This assumes the libva "staging" branch is in use.
16028 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
16030 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
16032 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16033 * gst-libs/gst/vaapi/gstvaapiutils.c:
16034 utils: add H.264 MVC profiles.
16035 Add "MultiView High" and "Stereo High" definitions.
16036 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
16037 [require VA-API >= 0.35.2 for MVC profiles]
16038 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16040 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16042 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16043 * gst-libs/gst/vaapi/gstvaapiutils.c:
16044 utils: only enable VP8 profiles for newer VA-API versions.
16045 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
16046 involving VP8 codec on earlier versions of the API.
16048 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16050 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16051 decoder: h264: compute view ids only once per slice.
16052 Optimize lookups of view ids / view order indices by caching the result
16053 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
16054 terribly simplifies is_new_access_unit() and find_first_field() functions.
16056 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16058 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16059 decoder: h264: add support for MVC interlaced streams.
16060 Fix support for MVC Stereo High profile streams with interlaced frames.
16061 Also improve the detection logic of the first field.
16063 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16065 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16066 decoder: h264: add MVC profiles compatibility logic.
16067 Add safe fallbacks for MVC profiles:
16068 - all MultiView High profile streams with 2 views at most can be decoded
16069 with a Stereo High profile compliant decoder ;
16070 - all Stereo High profile streams with only progressive views can be
16071 decoded with a MultiView High profile compliant decoder ;
16072 - all drivers that support slice-level decoding could normally support
16073 MVC profiles when the DPB holds at most 16 frames.
16075 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16077 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16078 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
16079 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
16080 decoder: h264: add initial support for MVC.
16081 https://bugzilla.gnome.org/show_bug.cgi?id=721772
16083 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16085 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16086 decoder: h264: dynamically allocate the DPB.
16087 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
16088 for supporting the MVC allocation requirements.
16090 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16092 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16093 decoder: h264: fix detection of access unit boundaries.
16094 In order to have a stricter conforming implementation, we need to carefully
16095 detect access unit boundaries. Additional operations could be necessary to
16096 perform at those boundaries.
16098 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16100 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16101 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
16102 Detect the first VCL NAL unit of a picture for MVC, based on the
16103 view_id as per H.7.4.1.2.4. Note that we only need to detect new
16105 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16107 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16109 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16110 decoder: h264: properly handle Prefix NAL units.
16111 Always cache the previous NAL unit so that we could check whether
16112 there is a Prefix NAL unit immediately preceding the current slice
16113 or IDR NAL unit. In that case, the NAL unit metadata is copied into
16114 the current NAL unit. Otherwise, some default values are inferred,
16115 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
16116 [infer default values for slice if previous NAL was not a Prefix]
16117 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16119 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
16121 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16122 decoder: h264: add support for MVC base views.
16123 Allow decoding for base views of MVC encoded streams. For now, just skip
16124 the slice extension and prefix NAL units, and skip non-base view frames.
16125 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
16126 [fixed memory leak, improved check for MVC NAL units]
16127 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16129 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16131 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16132 decoder: h264: simplify storage of decoded picture into DPB.
16133 Factor out process by which the decoded picture with the lowest POC
16134 is found, and possibly output. Likewise, the storage and marking of
16135 a reference decoded, or non-reference decoded picture, into the DPB
16136 could also be simplified as they mostly share the same operations.
16138 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16140 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16141 decoder: h264: minor clean-ups.
16142 Make init_picture_ref_lists() more consistent with other functions
16143 related to the reference marking process by supplying the current
16144 picture as argument.
16146 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16148 * gst-libs/gst/vaapi/gstvaapidisplay.c:
16149 * gst-libs/gst/vaapi/gstvaapidisplay.h:
16150 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
16151 display: add utility function to query VA driver name.
16152 Add gst_vaapi_display_get_vendor_string() helper function to query
16153 the underlying VA driver name. The display object owns the resulting
16154 string, so it shall not be deallocated.
16155 That function is thread-safe. It could be used for debugging purposes,
16158 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16160 * gst-libs/gst/vaapi/gstvaapidisplay.c:
16161 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
16162 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
16163 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
16164 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
16165 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
16166 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
16167 display: make cache maintenance really MT-safe.
16168 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
16169 environments. This makes sure the display cache is also consistent
16170 during the whole display creation process. In the former implementation,
16171 there were risks that display cache got updated in another thread.
16173 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16175 * gst-libs/gst/vaapi/gstvaapicontext.c:
16176 context: allow dynamic growth of VA surfaces pool.
16177 Add support for dynamic growth of the VA surfaces pool. For decoding,
16178 this implies the recreation of the underlying VA context, as per the
16179 requirement from VA-API. Besides, only increases are supported, not
16182 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16184 * gst-libs/gst/vaapi/gstvaapicontext.c:
16185 context: reset VA context if VA surfaces set changed.
16186 It is a requirement from VA-API specification that the VA context got
16187 from vaCreateContext(), for decoding purposes, binds the supplied set
16188 of VA surfaces. This means that if the set of VA surfaces is to be
16189 changed for the current decode session, then the VA context needs to
16190 be recreated with the new set of VA surfaces.
16192 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16194 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16195 decoder: h264: fix assignment of LongTermFrameIdx.
16196 Complement fix committed as e95a42e.
16197 The H.264 AVC standard has to say: if the field is part of a reference
16198 frame or a complementary reference field pair, and the other field of
16199 the same reference frame or complementary reference field pair is also
16200 marked as "used for long-term reference", the reference frame or
16201 complementary reference field pair is also marked as "used for long-term
16202 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
16203 This fixes decoding of MR9_BT_B in strict mode.
16204 https://bugs.freedesktop.org/show_bug.cgi?id=64624
16205 https://bugzilla.gnome.org/show_bug.cgi?id=724518
16207 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16209 * gst-libs/gst/vaapi/gstvaapicontext.c:
16210 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16211 * gst-libs/gst/vaapi/gstvaapiutils.c:
16212 * gst-libs/gst/vaapi/gstvaapiutils.h:
16213 decoder: h264: properly support grayscale formats.
16214 Request the correct chroma format for decoding grayscale streams.
16215 i.e. make lookups of the VA chroma format more generic, thus possibly
16216 supporting more formats in the future.
16217 This means that, if a VA driver doesn't support grayscale formats,
16218 it is now going to fail. We cannot safely assume that maybe grayscale
16219 was implemented on top of some YUV 4:2:0 with the chroma components
16222 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
16224 * gst-libs/gst/vaapi/gstvaapifilter.c:
16225 * gst-libs/gst/vaapi/gstvaapifilter.h:
16226 * tests/test-filter.c:
16227 build: fix source file modes.
16228 A few source files are marked executable in error - fix them
16229 https://bugzilla.gnome.org/show_bug.cgi?id=723748
16230 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
16232 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16235 * gst-libs/gst/vaapi/Makefile.am:
16236 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
16237 * gst/vaapi/gstvaapidecode.c:
16238 build: fix conditional compilation of VP8 decoder.
16239 https://bugzilla.gnome.org/show_bug.cgi?id=729170
16240 [added check for VASliceParameterBufferBase fields]
16241 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16243 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16245 * gst-libs/gst/codecparsers/Makefile.am:
16246 build: fix make dist for codecparsers.
16248 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16250 * ext/codecparsers:
16251 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
16252 h264: fix parsing of slice groups for map type = 2
16254 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16256 * ext/codecparsers:
16257 codecparsers: update to gst-vaapi branch commit f44edfc.
16258 h264: fix derivation of default scaling lists
16260 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
16262 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16263 decoder: h264: fix long-term reference picture marking process.
16264 Fix reference picture marking process with memory_management_control_op
16265 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
16266 picture, or the current picture.
16267 This fixes decoding of FRExt_MMCO4_Sony_B.
16268 https://bugs.freedesktop.org/show_bug.cgi?id=64624
16269 https://bugzilla.gnome.org/show_bug.cgi?id=724518
16270 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
16271 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16273 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16275 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16276 decoder: h264: fix initialization of RefPicLists for multiple slices.
16277 The initialization of reference picture lists (8.2.4.2) applies to all
16278 slices. So, the RefPicList0/1 lists need to be constructed prior to
16279 each slice submission to the HW decoder.
16280 This fixes decoding of video sequences where frames are encoded with
16281 multiple slices of different types, e.g. 4 slices in this order I, P,
16282 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
16283 https://bugzilla.gnome.org/show_bug.cgi?id=724518
16285 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
16287 * ext/codecparsers:
16288 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16289 decoder: h264: skip SPS extension and auxiliary slice NALs.
16290 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
16291 are present in a video, decoders shall perform the (optional) decoding
16292 process specified for these NAL units or shall ignore them (7.4.1).
16293 Implement option 2 (skip) for now, as alpha composition is not
16294 supported yet during the decoding process.
16295 This fixes decoding of the primary coded video in alphaconformanceG.
16296 https://bugzilla.gnome.org/show_bug.cgi?id=703928
16297 https://bugzilla.gnome.org/show_bug.cgi?id=728869
16298 https://bugzilla.gnome.org/show_bug.cgi?id=724518
16299 [skip NAL units earlier, i.e. at parsing time]
16300 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16302 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
16304 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16305 decoder: h264: fix slice data bit offset with MVC NAL units.
16306 When MVC slice NAL units (coded slice extension and prefix NAL) are
16307 present, the number of NAL header bytes is 3, not 1 as usual.
16308 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
16309 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16311 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16313 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16314 decoder: h264: fix activation of picture and sequence parameters.
16315 At the time the first VCL NAL unit of a primary coded picture is found,
16316 and if that NAL unit was parsed to be an SPS or PPS, then the entries
16317 in the parser may have been overriden. This means that, when the picture
16318 is to be decoded, slice_hdr->pps could point to an invalid (the next)
16320 So, one way to solve this problem is to not use the parser PPS and
16321 SPS info but rather maintain our own activation chain in the decoder.
16322 https://bugzilla.gnome.org/show_bug.cgi?id=724519
16323 https://bugzilla.gnome.org/show_bug.cgi?id=724518
16325 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16327 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16328 decoder: h264: retain SEI messages until the end of frame.
16329 Retain the SEI messages that were parsed from the access unit until we
16330 have completely decoded the current frame. This is done so that we can
16331 peek at that data whenever necessary during decoding. e.g. for exposing
16332 3D stereoscopic information at a later stage.
16334 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16336 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16337 decoder: h264: add support for grayscale encoded clips.
16338 Fix support for grayscale encoded video clips, and possibly others if
16339 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
16340 the decision that a surface with the desired chroma format is not
16341 supported to the actual VA driver implementation.
16342 https://bugzilla.gnome.org/show_bug.cgi?id=728144
16344 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16346 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16347 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16348 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
16349 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
16350 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
16351 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
16352 decoder: default to YUV 4:2:0 VA surfaces.
16353 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
16354 make sure all codecs use YUV 4:2:0 output format for now, by default.
16356 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16358 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16359 * gst-libs/gst/vaapi/gstvaapidecoder.h:
16360 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16361 decoder: re-indent GstVaapiDecoder base object.
16363 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16365 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16366 encoder: derive chroma type from video format.
16367 Cope with previous VA context change to derive the correct surface chroma
16368 type from the input video format.
16370 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16372 * gst-libs/gst/vaapi/gstvaapicontext.c:
16373 * gst-libs/gst/vaapi/gstvaapicontext.h:
16374 context: add support for non-YUV 4:2:0 formats.
16375 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
16376 for the upper layer to specify the desired chroma type. If the chroma
16377 type field is not set (or yields zero), then YUV 4:2:0 format is used
16380 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16382 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
16383 vp8: fix per-segment deblocking filter level in relative mode.
16384 Fix possible bug when a per-segment deblocking filter level value
16385 needs to be set in non-absolute mode, i.e. when the loop filter update
16386 value is negative in delta mode.
16387 Also clamp the resulting filter level value to 0..63 range.
16389 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16391 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
16392 vp8: fix check for disabling the loop filter (again).
16393 Improve condition to disable the loop filter. The previous heuristic
16394 used to check all filter levels, for all segments. It turns out that
16395 only the base filter_level value defined in the frame header needs
16397 This fixes 00-comprehensive-013.
16399 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16401 * gst-libs/gst/codecparsers/Makefile.am:
16402 * gst/vaapi/Makefile.am:
16403 build: fix make dist with certain conditionals not met.
16404 Fix generation of source tarballs when certain conditionals are not
16405 met. e.g. always include all buildable codecparsers sources in the
16406 distribution tarball, fix plug-in element sources set to include X11
16409 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16412 build: add missing files for GStreamer 0.10.
16413 Add missing GstVideoEncoder implementation files to fix build with ancient
16414 GStreamer 0.10 stack.
16415 https://bugzilla.gnome.org/show_bug.cgi?id=723964
16417 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16420 build: add missing files for VP8 bitstream parser.
16421 Fix make dist for building the VP8 bitstream parser.
16423 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16426 * ext/libvpx/Makefile.am:
16427 * gst-libs/gst/codecparsers/Makefile.am:
16428 vp8: allow compilation without the built-in libvpx.
16429 The built-in libvpx serves multiple purposes, among which the most
16430 important ones could be: track the most up-to-date, and optimized,
16431 range decoder; allow for future hybrid implementations (non-VLD);
16432 and have a completely independent range decoder implementation.
16434 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16436 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
16437 vp8: propagate PTS from demux frame.
16438 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
16439 or parser would already have determined the PTS from a previous stage.
16441 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16444 * debian.upstream/libgstvaapi.install.in:
16445 * ext/libvpx/Makefile.am:
16446 * ext/libvpx/sources.frag:
16447 * gst-libs/gst/codecparsers/Makefile.am:
16448 vp8: fix compilation with built-in libvpx.
16449 Apply correct patch from fd.o #722760 to fix several issues: update the
16450 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
16453 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16459 * ext/libvpx/Makefile.am:
16460 * ext/libvpx/gstlibvpx.c:
16461 * ext/libvpx/gstlibvpx.h:
16462 * ext/libvpx/libgstcodecparsers_vpx.vers:
16463 * ext/libvpx/sources.frag:
16464 * ext/libvpx/upstream:
16465 * gst-libs/gst/codecparsers/Makefile.am:
16466 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
16467 vp8: use range decoder from libvpx.
16468 Add libvpx submodule that tracks the upstream version 1.3.0. This is
16469 needed to build a libgstcodecparsers_vpx.so library with all symbols
16470 placed into the GSTREAMER namespace.
16472 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16474 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
16475 vp8: fix check for disabling the loop filter.
16477 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
16481 * gst-libs/gst/codecparsers/Makefile.am:
16482 * gst-libs/gst/vaapi/Makefile.am:
16483 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
16484 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
16485 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
16486 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
16487 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
16488 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
16489 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16490 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16491 * gst/vaapi/gstvaapidecode.c:
16492 Add initial VP8 decoder.
16493 https://bugzilla.gnome.org/show_bug.cgi?id=722761
16494 [complete overhaul, fixed support for resolution changes]
16495 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16497 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16499 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16500 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
16501 The gst_h264_parse_parse_sei() function now returns an array of SEI
16502 messages, instead of a single SEI message. Reason: it is allowed to
16503 have several SEI messages packed into a single SEI NAL unit, instead
16504 of multiple NAL units.
16506 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16508 * ext/codecparsers:
16509 codecparsers: update to gst-vaapi-branch commit a454f86.
16510 b2eb5f6 vp8: rename dboolhuff symbols
16511 b74a881 vp8: add GStreamer native utilities
16512 2940ac6 add VP8 bitstream parser
16514 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16516 * ext/codecparsers:
16517 codecparsers: update to gst-vaapi-branch commit d459bc5.
16518 d459bc5 h264: set framerate even for interlaced videos
16519 c78b82c h264: add support for Recovery Point SEI message
16520 7693bac h264: add support for Frame Packing Arrangement SEI message
16521 31fafa7 h264: add support for Stereo Video Information SEI message
16522 8b113a6 h264: parse seq_parameter_set_mvc_extension()
16523 040f9b8 h264: parse MVC syntax elements
16524 cc18ef3 h264: add nal_reader_skip_long() helper
16525 7e76a48 h264: fix slice_header() parsing for MVC
16526 caf46d8 h264: add gst_h264_parse_nalu_header() helper
16527 f75074e h264: add gst_h264_parse_sps_data() helper
16528 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
16529 4e36737 h264: fix skipping of unsupported SEI messages
16530 5300766 h264: fix SEI buffering_period() parsing
16532 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16534 * ext/codecparsers:
16535 * gst-libs/gst/codecparsers/Makefile.am:
16536 codecparsers: update to gst-vaapi-branch commit 8fadf40.
16537 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
16538 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
16539 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
16540 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
16541 8ec5816 h265: Fix segfault when parsing HRD parameter
16542 5b1730f h265: Fix segfault when parsing VPS
16543 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
16544 7ba641d h265: Fix debug output
16545 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
16547 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16549 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16550 decoder: h264: fix robustness patch for bytestream format.
16551 Fix parser and decoder state to sync at the right locations. This is
16552 because we could reset the parser state, while the decoder state was
16553 not copied yet, e.g. when parsing several NAL units from multiple frames
16554 whereas the current frame was not decoded yet.
16555 This is a regression brought in by commit 6fe5496.
16557 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16560 * pkgconfig/Makefile.am:
16561 * pkgconfig/gstreamer-vaapi-drm.pc.in:
16562 * pkgconfig/gstreamer-vaapi-glx.pc.in:
16563 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
16564 * pkgconfig/gstreamer-vaapi-x11.pc.in:
16565 build: fix pkgconfig file names (again).
16566 It turns out it is more convenient to have only pkgconfig files named
16567 after the installed GStreamer API version (1.0) instead of using all
16568 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
16569 altogether anyway, so align pkgconfig file names to that.
16571 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16573 * debian.upstream/libgstvaapi-dev.install.in:
16574 * gst-libs/gst/vaapi/Makefile.am:
16575 * pkgconfig/gstreamer-vaapi.pc.in:
16576 build: fix packaging for GStreamer 1.2.
16577 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
16578 the pkgconfig version (1.0) instead of the intended API version (1.2).
16579 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
16580 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
16582 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16585 Bump version for development.
16587 === release 0.5.8 ===
16589 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16591 * debian.upstream/control.in:
16592 debian: fix trailing whitespace in description.
16594 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16596 * debian.upstream/control.in:
16597 * debian.upstream/copyright:
16598 debian: fix package description.
16599 Try to improve package description for the compiled plug-in elements
16600 available in there. e.g. only display vaapidownload and vaapiupload
16601 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
16602 encoding is enabled, etc.
16603 Also increase the copyright notice date.
16605 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16607 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16608 build: fix warnings on 64-bit platforms.
16610 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16612 * gst-libs/gst/vaapi/gstvaapicontext.c:
16613 * gst-libs/gst/vaapi/gstvaapiutils.c:
16614 build: fix for older versions of VA-API (< 0.34.0).
16615 Fix build with older versions of VA-API (< 0.34.0), or versions without
16616 good enough headers for encoding support for instance.
16618 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16624 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16628 VA-API up to 0.34.0 is actually supported. Mention new video encoding
16629 support. Update copyright years, list of supported Intel HD Graphics
16632 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16637 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16639 * tests/test-filter.c:
16640 tests: test-filter: fix "deinterlace" option parse.
16641 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
16642 string was provided, i.e. if it remained set to NULL.
16644 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16646 * gst-libs/gst/vaapi/Makefile.am:
16647 * gst-libs/gst/vaapi/gstvaapicontext.c:
16648 * gst-libs/gst/vaapi/gstvaapicontext.h:
16649 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16650 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
16651 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
16652 libs: factor out usages of vaGetConfigAttributes().
16653 Add gst_vaapi_get_config_attribute() helper function that takes a
16654 GstVaapiDisplay and the rest of the arguments with VA types. The aim
16655 is to have thread-safe VA helpers by default.
16657 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16659 * gst-libs/gst/vaapi/gstvaapiutils.c:
16660 * gst-libs/gst/vaapi/gstvaapiutils.h:
16661 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
16662 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16663 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
16664 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
16665 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
16666 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
16667 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
16668 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
16669 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
16670 libs: re-indent all source code related to VA utilities.
16672 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16674 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
16675 libs: add missing file (libgstvaapi_priv_check.h).
16677 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16679 * gst-libs/gst/vaapi/gstvaapicontext.c:
16680 * gst-libs/gst/vaapi/gstvaapicontext.h:
16681 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16682 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16683 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16684 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16685 encoder: notify the encoder of the submitted packed headers.
16686 Make sure to configure the encoder with the set of packed headers we
16687 intend to generate and submit. i.e. make selection of packed headers
16688 to submit more robust.
16690 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16692 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16693 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16694 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16695 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16696 encoder: fix and factor out check for supported rate-control modes.
16697 Cache the first compatible GstVaapiProfile found if the encoder is not
16698 configured yet. Next, factor out the code to check for the supported
16699 rate-control modes by moving out vaGetConfigAttributes() to a separate
16700 function, while also making sure that the attribute type is actually
16701 supported by the encoder.
16702 Also fix the default set of supported rate control modes to not the
16703 "none" variant. It's totally useless to expose it at this point.
16705 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16707 * gst-libs/gst/vaapi/gstvaapicontext.c:
16708 * gst-libs/gst/vaapi/gstvaapicontext.h:
16709 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16710 context: move rate-control mode to encoder specific config.
16711 Move usage-specific config out of the common GstVaapiContextInfo.
16712 Create a specialized config for encoding and move rate-control mode
16715 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16717 * gst-libs/gst/vaapi/gstvaapicontext.c:
16718 * gst-libs/gst/vaapi/gstvaapicontext.h:
16719 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16720 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16721 context: introduce concept of usage.
16722 Introduce GstVaapiContextUsage so that to explicitly determine the
16723 usage of a VA context. This is useful in view to simplifying the
16724 creation of VA context for VPP too.
16726 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16728 * gst-libs/gst/vaapi/gstvaapicontext.c:
16729 context: fix get_attribute() value result.
16730 Unknown attributes, or attributes that are not supported for the given
16731 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
16732 So, return failure in this case.
16734 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16736 * gst-libs/gst/vaapi/Makefile.am:
16737 * gst-libs/gst/vaapi/gstvaapicontext.c:
16738 * gst-libs/gst/vaapi/gstvaapicontext.h:
16739 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
16740 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
16741 * gst-libs/gst/vaapi/gstvaapisurface.c:
16742 context: move overlay composition to separate files.
16743 Move GstVideoOverlayComposition handling to separate source files.
16744 This helps keeing GstVaapiContext core implementation to the bare
16745 minimal, i.e. simpy helpers to create a VA context and handle pool
16746 of associated VA surfaces.
16748 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16750 * gst-libs/gst/vaapi/gstvaapicontext.c:
16751 * gst-libs/gst/vaapi/gstvaapicontext.h:
16752 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16753 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16754 context: clean-ups. Strip down APIs.
16755 Improve documentation and debug messages. Clean-up APIs, i.e. strip
16756 them down to the minimal set of interfaces. They are private, so no
16757 need expose getters for instance.
16759 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16761 * gst-libs/gst/vaapi/gstvaapicontext.c:
16762 * gst-libs/gst/vaapi/gstvaapicontext.h:
16763 context: re-indent all GstVaapiContext related source code.
16765 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16767 * gst-libs/gst/vaapi/Makefile.am:
16768 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
16769 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
16770 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
16771 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
16772 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
16773 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
16774 * gst-libs/gst/vaapi/gstvaapiutils.h:
16775 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16776 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
16777 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
16778 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
16779 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
16780 libs: check that private headers remain private.
16781 Make sure that libgstvaapi private headers remain internally used to
16782 build libgstvaapi libraries only. All header dependencies were reviewed
16783 and checks for IN_LIBGSTVAAPI definition were added accordingly.
16784 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
16787 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16790 Bump library major version.
16791 Bump the library major version due to API/ABI changes that occurred in
16792 the imaging API. In particular, GstVaapiDisplay interfaces no longer
16793 expose any GstCaps but provide GArray based ones e.g. to determine the
16794 set of supported decode/encode profiles.
16796 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16798 * gst-libs/gst/vaapi/glibcompat.h:
16799 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
16800 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
16801 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
16802 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
16803 * gst-libs/gst/vaapi/gstvaapicontext.c:
16804 * gst-libs/gst/vaapi/gstvaapicontext.h:
16805 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16806 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16807 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
16808 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
16809 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16810 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16811 * gst-libs/gst/vaapi/gstvaapiencoder.h:
16812 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16813 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
16814 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16815 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
16816 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
16817 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
16818 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
16819 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16820 * gst-libs/gst/vaapi/gstvaapifilter.c:
16821 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
16822 * gst-libs/gst/vaapi/gstvaapisurface.c:
16823 * gst-libs/gst/vaapi/gstvaapisurface.h:
16824 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
16825 * gst-libs/gst/vaapi/gstvaapitypes.h:
16826 * gst-libs/gst/vaapi/gstvaapiutils.c:
16827 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
16828 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
16829 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
16830 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
16831 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
16832 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
16833 * gst-libs/gst/vaapi/gstvaapivalue.c:
16834 * gst-libs/gst/vaapi/gstvaapivalue.h:
16835 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
16836 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
16837 * gst/vaapi/gstvaapidecode.c:
16838 * gst/vaapi/gstvaapiencode.c:
16839 * gst/vaapi/gstvaapiencode.h:
16840 * gst/vaapi/gstvaapiencode_h264.c:
16841 * gst/vaapi/gstvaapiencode_h264.h:
16842 * gst/vaapi/gstvaapiencode_mpeg2.c:
16843 * gst/vaapi/gstvaapiencode_mpeg2.h:
16844 * gst/vaapi/gstvaapipluginbase.c:
16845 * gst/vaapi/gstvaapipluginutil.c:
16846 * gst/vaapi/gstvaapipluginutil.h:
16847 * gst/vaapi/gstvaapipostproc.c:
16848 * gst/vaapi/gstvaapipostproc.h:
16849 * gst/vaapi/gstvaapisink.c:
16850 * gst/vaapi/gstvaapisink.h:
16851 * gst/vaapi/gstvaapivideometa_texture.c:
16852 * tests/simple-decoder.c:
16853 legal: update copyright notice dates.
16855 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16857 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16858 * gst-libs/gst/vaapi/gstvaapiencoder.h:
16859 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16860 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
16861 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
16862 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
16863 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
16864 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
16865 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
16866 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16867 * gst/vaapi/gstvaapiencode.c:
16868 * gst/vaapi/gstvaapiencode.h:
16869 * gst/vaapi/gstvaapiencode_h264.c:
16870 * gst/vaapi/gstvaapiencode_h264.h:
16871 * gst/vaapi/gstvaapiencode_mpeg2.c:
16872 * gst/vaapi/gstvaapiencode_mpeg2.h:
16873 legal: add per-file authorship information.
16875 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16877 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16878 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16879 decoder: fix video codec frame number in standalone mode.
16880 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
16881 stream in standalone mode. While we are at it, improve the debugging
16882 messages to also include that frame number.
16884 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
16886 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16887 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
16888 decoder: fix crash on invalid pointer for GST_DEBUG().
16889 When decoding failed, or that the frame was dropped, the associated
16890 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
16891 message needs to check whether the proxy is actually present or not.
16892 https://bugzilla.gnome.org/show_bug.cgi?id=722403
16893 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
16894 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16896 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16898 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16899 encoder: h264: disable NAL HRD parameters for now.
16900 Don't emit NAL HRD parameters for now in the SPS headers because the
16901 SEI buffering_period() and picture_timing() messages are not handled
16902 yet. Some additional changes are necessary to get it right.
16903 https://bugzilla.gnome.org/show_bug.cgi?id=722734
16905 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16907 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16908 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
16909 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
16910 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
16911 encoder: h264: fix default CPB buffer size.
16912 Fix default CPB buffer size to something more reasonable (1500 ms)
16913 and that still fits the level limits. This is a non configurable
16914 property for now. The initial CPB removal delay is also fixed to
16916 https://bugzilla.gnome.org/show_bug.cgi?id=722087
16918 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16920 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16921 encoder: h264: fix bitrate encoding for HRD conformance.
16922 Round down the calculated, or supplied, bitrate (kbps) into a multiple
16923 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
16924 that to have less losses in precision. Likewise, don't round up because
16925 that could be a strict constraint imposed by the user.
16927 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16929 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16930 encoder: h264: fix level lookup constraints wrt. bitrate.
16931 Fix the level calculation involving bitrate limits. Since we are
16932 targetting NAL HRD conformance, the check against MaxBR from the
16933 Table A-1 limits shall involve cpbBrNalFactor depending on the
16936 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16938 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16939 encoder: h264: submit sequence parameter only once.
16940 Submit sequence parameter buffers only once, or when the bitstream
16941 was reconfigured in a way that requires such. Always submit packed
16942 sequence parameter buffers at I-frame period, if the VA driver needs
16944 https://bugzilla.gnome.org/show_bug.cgi?id=722737
16946 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16948 * gst-libs/gst/vaapi/gstvaapicontext.c:
16949 * gst-libs/gst/vaapi/gstvaapicontext.h:
16950 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16951 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16952 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
16953 encoder: h264: only submit packed headers when required.
16954 Make sure to submit the packed headers only if the underlying VA driver
16955 requires those. Currently, only handle packed sequence and picture
16957 https://bugzilla.gnome.org/show_bug.cgi?id=722737
16959 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16961 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16962 encoder: h264: fix ip_period value in sequence parameter.
16963 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
16964 between the I-frame and the next P-frame. So, this also accounts for
16965 any additional B-frame in the middle of it.
16966 This fixes rate control heuristics for certain VA drivers.
16967 https://bugzilla.gnome.org/show_bug.cgi?id=722735
16969 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16971 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16972 encoder: h264: fix level when bitrate is automatically computed.
16973 Fix level characterisation when the bitrate is automatically computed
16974 from the active coding tools. i.e. ensure the bitrate once the profile
16975 is completely characterized but before the level calculation process.
16977 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16979 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16980 encoder: h264: clean-ups.
16981 Document and rename a few functions here and there. Drop code that
16982 caps num_bframes variable in reset_properties() since they shall
16983 have been checked beforehand, during properties initialization.
16985 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16987 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16988 encoder: h264: clean-up bitwriter related utilities.
16989 Clean-up GstBitWriter related utility functions and simplify notations.
16990 While we are at it, also make bitstream writing more robust should an
16991 overflow occur. We could later optimize for writing headers capped to
16992 their maximum possible size by using the _unchecked() helper variants.
16994 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16996 * gst-libs/gst/vaapi/Makefile.am:
16997 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16998 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
16999 encoder: h264: completely remove private headers.
17000 Drop private header since it was originally used to expose internals
17001 to the plugin element. The proper interface is now the properties API,
17002 thus rendering private headers totally obsolete.
17004 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17006 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17007 encoder: h264: fix PPS header packing with profile < high.
17008 Fix PPS header packing when profile is below High since 8x8 transform
17009 mode and scaling lists are High Profile features.
17011 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17013 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17014 encoder: h264: always emit VUI parameters for framerate.
17015 Always emit VUI parameters for timing_info, which includes framerate
17018 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17020 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17021 encoder: h264: really fix frame cropping rectangle calculation.
17022 Make frame cropping rectangle calculation future proof, i.e. exactly
17023 follow the specification (7-18) to (7-21), and subsampling definitions
17025 https://bugzilla.gnome.org/show_bug.cgi?id=722089
17026 https://bugzilla.gnome.org/show_bug.cgi?id=722238
17028 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
17030 * gst/vaapi/gstvaapisink.c:
17031 * gst/vaapi/gstvaapisink.h:
17032 vaapisink: set csc render flags from sinkpad caps.
17033 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
17034 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
17036 https://bugzilla.gnome.org/show_bug.cgi?id=722255
17037 [factored out code, added SMPTE240M, handle per-buffer flags]
17038 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17040 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17042 * gst-libs/gst/vaapi/gstvaapisurface.h:
17043 * gst-libs/gst/vaapi/gstvaapiutils.c:
17044 * gst/vaapi/gstvaapipostproc.c:
17045 surface: rework render flags.
17046 Pack render flags per category and provide more flags into the color
17047 standard category. In particular, cover for SMPTE-240M.
17049 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
17051 * gst-libs/gst/vaapi/gstvaapifilter.c:
17052 * gst/vaapi/gstvaapipostproc.c:
17053 * gst/vaapi/gstvaapipostproc.h:
17054 vaapipostproc: add support for colorbalance filters.
17055 Add support for hue, saturation, brightness and constrat adjustments.
17056 Also fix cap info local copy to match the really expected cap subtype
17058 https://bugzilla.gnome.org/show_bug.cgi?id=720376
17059 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17061 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
17063 * gst/vaapi/gstvaapipostproc.c:
17064 vaapipostproc: fix support for "sharpen" filter.
17065 Fix copy/paste error when submitting the "sharpen" value to the
17066 GstVaapiFilter instance.
17067 https://bugzilla.gnome.org/show_bug.cgi?id=720375
17068 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17070 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
17073 * pkgconfig/gstreamer-vaapi-drm.pc.in:
17074 * pkgconfig/gstreamer-vaapi-glx.pc.in:
17075 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
17076 * pkgconfig/gstreamer-vaapi-x11.pc.in:
17077 * pkgconfig/gstreamer-vaapi.pc.in:
17078 pkgconfig: plugin dir should use PKG version not API version.
17079 Fix the pluginsdir and includedir variables in the generated pkgconfig
17080 (.pc) files. The location needs to be built with the PKG version in
17081 mind instead of the API version.
17082 While we are at it, also fix the PKG version for GStreamer >= 1.3.
17083 https://bugzilla.gnome.org/show_bug.cgi?id=720820
17084 [additional fixes for includedir and pkg requirements]
17085 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17087 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
17089 * gst/vaapi/gstvaapisink.c:
17090 vaapisink: fix display initialization in GstVideoOverlay implementation.
17091 When gst_vaapisink_video_overlay_set_window_handle() is called early,
17092 before the pipeline has been set to PLAYING, the display has not yet
17093 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
17094 up-to-date. For this reason the foreign XID is not attached.
17095 Now _ensure_display() is called earlier.
17096 https://bugzilla.gnome.org/show_bug.cgi?id=722244
17097 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17099 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17101 * gst/vaapi/gstvaapisink.c:
17102 vaapisink: expose the raw video formats in static caps template.
17103 Expose all raw video formats in the static caps template since the
17104 vaapisink is supporting raw data. We will get the exact set of formats
17105 supported by the driver dynamically through the _get_caps() routine.
17106 https://bugzilla.gnome.org/show_bug.cgi?id=703271
17107 https://bugzilla.gnome.org/show_bug.cgi?id=720737
17108 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17110 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
17112 * gst/vaapi/gstvaapidecode.c:
17113 vaapidecode: query downstream caps features like GLTextureUploadMeta.
17114 Fix vaapidecode to correctly report caps features downstream, when
17115 a custom pipeline is built manually.
17116 https://bugzilla.gnome.org/show_bug.cgi?id=719372
17117 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17119 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
17121 * gst/vaapi/gstvaapidecode.c:
17122 vaapidecode: add system memory caps to template caps.
17123 Since vaapidecode provides buffer that can be mapped as regular memory,
17124 those caps should be added to the template caps. That only applies to
17126 https://bugzilla.gnome.org/show_bug.cgi?id=720608
17127 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17129 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
17131 * gst/vaapi/gstvaapidecode.c:
17132 vaapidecode: fix hang on SIGINT.
17133 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
17134 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
17135 locked. This fixes a deadlock on state change from PAUSED to READY.
17136 https://bugzilla.gnome.org/show_bug.cgi?id=720584
17137 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17139 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
17141 * gst/vaapi/gstvaapiencode.c:
17142 vaapiencode: fix possible hang on SIGINT.
17143 vaapiencode might hang when the pipeline is stopped without any EOS,
17144 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
17145 running and locked. This fixes a possible deadlock on state change
17146 from PAUSED to READY.
17147 https://bugzilla.gnome.org/show_bug.cgi?id=720584
17148 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17150 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17152 * gst/vaapi/gstvaapiencode.c:
17153 vaapiencode: fix typo in error message.
17154 Fix incomplete error message in gst_vaapiencode_push_frame().
17156 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17158 * gst/vaapi/gstvaapipluginutil.c:
17159 * gst/vaapi/gstvaapipluginutil.h:
17160 plugins: add helpers to create video caps with features.
17161 Add gst_vaapi_video_format_new_template_caps_with_features() helper
17162 function to add the supplied caps feature string on GStreamer >= 1.2.
17163 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
17164 the "best" caps feature to use for the supplied pad. In practice, we
17165 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
17166 and finally the system memory caps.
17167 https://bugzilla.gnome.org/show_bug.cgi?id=719372
17169 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
17171 * gst/vaapi/gstvaapivideometa_texture.c:
17172 plugins: don't apply overlay composition in GLTextureUpload function.
17173 The GLTextureUpload function is not in charge of doing the overlay
17174 composition if any.
17175 https://bugzilla.gnome.org/show_bug.cgi?id=721859
17176 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17178 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17180 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
17181 encoder: re-order submission of VA objects.
17182 Change the submission order of VA objects so that to make that process
17183 more logical. i.e. submit sequence parameter first, if any; next the
17184 packed headers associated to sequece, picture or slices; and finally
17185 the actual picture and associated slices.
17187 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17189 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17190 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17191 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17192 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
17193 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
17194 encoder: clean-up objects.
17195 Various clean-ups to improve consistency and readability: rename some
17196 variables, drop unused macro definitions, drop initialization of vars
17197 that are zero-initialized from the base class, drop un-necessary casts,
17198 allocate GPtrArrays with a destroy function.
17200 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17202 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17203 encoder: h264: fix frame cropping rectangle calculation.
17204 Fix frame cropping rectangle calculation to handle horizontal resolutions
17205 that don't match a multiple of 16 pixels, but also the vertical resolution
17206 that was incorrectly computed for progressive sequences too.
17207 https://bugzilla.gnome.org/show_bug.cgi?id=722089
17209 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17211 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17212 encoder: h264: improve automatic bitrate calculation.
17213 For non "Constant-QP" modes, we could provide more reasonable heuristics
17214 for the target bitrate. In general, 48 bits per macroblock with all the
17215 useful coding tools enable looks safe enough. Then, this rate is raised
17216 by +10% to +15% for each coding tool that is disabled.
17217 https://bugzilla.gnome.org/show_bug.cgi?id=719699
17219 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17221 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17222 encoder: h264: support "high-compression" tuning option.
17223 Add support for "high-compression" tuning option. First, determine the
17224 largest supported profile by the hardware. Next, check any target limit
17225 set by the user. Then, enable each individual coding tool based on the
17226 resulting profile_idc value to use.
17227 https://bugzilla.gnome.org/show_bug.cgi?id=719696
17229 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17231 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17232 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
17233 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
17234 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
17235 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
17236 * gst/vaapi/gstvaapiencode_h264.c:
17237 encoder: h264: allow target decoder constraints.
17238 Allow user to precise the largest profile to use for encoding due
17239 to target decoder constraints. For instance, if CABAC entropy coding
17240 mode is requested by "constrained-baseline" profile only is desired,
17241 then an error is returned during codec configuration.
17242 Also make sure that the suitable profile we derived actually matches
17243 what the HW can cope with.
17244 https://bugzilla.gnome.org/show_bug.cgi?id=719694
17246 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17248 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17249 encoder: h264: refine size of coded buffer.
17250 Refine the heuristic to determine the maximum size of a coded buffer
17251 to account for the exact number of slices. set_context_info() is the
17252 last step during codec reconfiguration, no additional change is done
17253 afterwards, so re-using the num_slices field here is fine.
17254 https://bugzilla.gnome.org/show_bug.cgi?id=719953
17256 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
17258 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17259 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
17260 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
17261 encoder: h264: expose more coding tools.
17262 Add new H.264 coding tools to improve compression:
17263 - "cabac": enable CABAC entropy coding (default: FALSE);
17264 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
17265 https://bugzilla.gnome.org/show_bug.cgi?id=719693
17266 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17268 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17270 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17271 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
17272 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
17273 encoder: h264: derive profile and level from active coding tools.
17274 Automatically derive the minimum profile and level to be used for
17275 encoding, based on the activated coding tools. The encoder will
17276 be trying to generate a bitstream that has the best chances to be
17277 decoded on most platforms by default.
17278 Also change the default profile to "constrained-baseline" so that
17279 to ensure maximum compatibility when the stream is decoded.
17280 https://bugzilla.gnome.org/show_bug.cgi?id=719691
17282 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17284 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17285 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17286 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
17287 encoder: h264: fix hardware profile lookup.
17288 Fix lookup for a suitable HW profile, as to be used by the underlying
17289 hardware, based on heuristics that lead to characterize the SW profile,
17290 i.e. the one used by the SW level encoding logic.
17291 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
17292 as they should respectively match the baseline and main profile.
17293 https://bugzilla.gnome.org/show_bug.cgi?id=719827
17295 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17297 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17298 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
17299 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
17300 encoder: h264: support only the byte-stream format.
17301 The libgstvaapi core encoders are meant to support raw bitstreams only.
17302 Henceforth, we are always producing a stream in "byte-stream" format.
17303 However, the "codec-data" buffer which holds SPS and PPS headers is
17304 always available. The "lengthSizeMinusOne" field is always set to 3
17305 so that in-place "byte-stream" format to "avc" format conversion could
17308 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17310 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17311 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
17312 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
17313 * gst/vaapi/gstvaapiencode_h264.c:
17314 encoder: h264: clean-ups.
17315 Various clean-ups to improve consistency and readability: rename some
17316 variables, drop unused macro definitions, drop initialization of vars
17317 that are zero-initialized from the base class, drop un-necessary casts.
17319 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17321 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17322 encoder: mpeg2: fix hardware profile lookup.
17323 Fix lookup for a suitable HW profile, as to be used by the underlying
17324 hardware, based on heuristics that lead to characterize the SW profile,
17325 i.e. the one used by the SW level encoding logic.
17327 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17329 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17330 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
17331 encoder: mpeg2: derive profile and level from active coding tools.
17332 Automatically derive the minimum profile and level to be used for
17333 encoding, based on the activated coding tools. Improve lookup for
17334 the best suitable level with the new MPEG-2 helper functions.
17335 Also change the default profile to "simple" so that to ensure maximum
17336 compatibility when the stream is decoded.
17337 https://bugzilla.gnome.org/show_bug.cgi?id=719703
17339 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17341 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17342 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
17343 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
17344 encoder: mpeg2: clean-ups.
17345 Various clean-ups to improve consistency and readability: drop unused
17346 macro definitions, drop initialization of vars that are zero-initialized
17347 from the base class, drop un-necessary casts.
17349 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17351 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17352 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17353 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17354 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17355 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
17356 encoder: add tuning options API.
17357 Add encoder "tune" option to override the default behaviour that is to
17358 favor maximum decoder compatibility at the expense of lower compression
17360 Expected tuning options to be developed are:
17361 - "high-compression": improve compression, target best-in-class decoders;
17362 - "low-latency": tune for low-latency decoding;
17363 - "low-power": tune for encoding in low power / resources conditions.
17365 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17367 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17368 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17369 encoder: fix bitrate units to match kbps.
17370 Bitrate is expressed in kilobits per second (kbps). So, this exactly
17371 means in multiple of 1000 bits, not 1024 bits.
17372 https://bugzilla.gnome.org/show_bug.cgi?id=722086
17374 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17376 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17377 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
17378 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
17379 encoder: clean-ups.
17380 Drop obsolete and unused macros. Add a few doc comments. Slightly
17381 improve indentation of a few leftovers.
17383 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17385 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17386 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
17387 * gst-libs/gst/vaapi/gstvaapivalue.c:
17388 * gst-libs/gst/vaapi/gstvaapivalue.h:
17389 encoder: filter out the supported set of rate-control properties.
17390 Only expose the exact static set of supported rate-control properties
17391 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
17392 only support CQP rate control, then only add it the the exposed enum
17394 Add helper macros and functions to build a GType for an enum subset.
17396 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17398 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17399 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17400 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17401 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
17402 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
17403 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17404 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
17405 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
17406 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
17407 encoder: add keyframe period API.
17408 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
17409 user control the maximum distance between two keyframes. This new
17410 property can only be set prior to gst_vaapi_encoder_set_codec_state().
17411 A value of zero for "keyframe-period" gets it re-evaluated to the
17412 actual framerate during encoder reconfiguration.
17414 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17416 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17417 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17418 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17419 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
17420 encoder: improve codec reconfiguration.
17421 Improve codec reconfiguration to be performed only through a single
17422 function. That is, remove the _set_context_info() hook as subclass
17423 should not alter the parent GstVaapiContextInfo itself. Besides, the
17424 VA context is constructed only at the final stages of reconfigure().
17426 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17428 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
17429 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
17430 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17431 encoder: fix possible memory leak of coded buffer pools.
17432 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
17433 buffer pool only if the coded buffer size actually changed.
17435 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17437 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17438 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17439 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17440 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17441 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
17442 * gst/vaapi/gstvaapiencode.c:
17443 * gst/vaapi/gstvaapiencode.h:
17444 encoder: add video codec-state API.
17445 Add interface to communicate the encoder resolution and related info
17446 like framerate, interlaced vs. progressive, etc. This new interface
17447 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
17448 but rather use GstVideoCodecState.
17449 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
17450 point for codec config. This means that the encoder is reconfigured
17451 there to match the latest properties.
17453 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17455 * gst/vaapi/gstvaapiencode.c:
17456 vaapiencode: don't crash on NULL encoder on _finish().
17457 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
17458 if it was not created in the first place. Return "not-negotiated" error
17459 since this means we did not even reach GstVideoEncoder::set_format(),
17460 where the encoder could have been created.
17461 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
17462 and that we failed to negotiate either pad.
17463 https://bugzilla.gnome.org/show_bug.cgi?id=719704
17465 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17467 * gst/vaapi/gstvaapiencode.c:
17468 * gst/vaapi/gstvaapiencode.h:
17469 * gst/vaapi/gstvaapiencode_h264.c:
17470 vaapiencode: use more GstVaapiPluginBase facilities.
17471 Avoid duplication of pad references or query functions since they are
17472 provided through the GstVaapiPluginBase object.
17474 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17476 * gst/vaapi/gstvaapiencode.c:
17477 * gst/vaapi/gstvaapiencode.h:
17478 * gst/vaapi/gstvaapiencode_h264.c:
17479 * gst/vaapi/gstvaapiencode_h264.h:
17480 * gst/vaapi/gstvaapiencode_mpeg2.c:
17481 vaapiencode: fix negotiation process of output caps.
17482 The specified caps in gst_video_encoder_set_output_state() function
17483 arguments should not contain any resolution, pixel-aspect-ratio,
17484 framerate, codec-data et al. Those rather should be set through the
17485 returned GstVideoCodecState. This means that output caps creation
17486 could be delayed until before gst_video_encoder_finish_frame() is
17488 This greatly simplifies the GstVideoEncoder::set_format() callback
17491 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17493 * gst/vaapi/gstvaapiencode.c:
17494 vaapiencode: make GstVaapiEncode an abstract type.
17495 Make base GstVaapiEncode class an abstract type so that we cannot
17496 create an instance from it without going through any of the codec
17497 specific derived class.
17499 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17501 * gst/vaapi/gstvaapiencode.c:
17502 * gst/vaapi/gstvaapiencode.h:
17503 * gst/vaapi/gstvaapiencode_h264.c:
17504 * gst/vaapi/gstvaapiencode_mpeg2.c:
17505 vaapiencode: rename a few member functions.
17506 Rename a few member functions to make them more consistent:
17507 - alloc_encoder(): now reduced to allocate the encoder object only;
17508 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
17510 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17512 * gst/vaapi/gstvaapiencode.c:
17513 * gst/vaapi/gstvaapiencode.h:
17514 * gst/vaapi/gstvaapiencode_h264.c:
17515 * gst/vaapi/gstvaapiencode_h264.h:
17516 * gst/vaapi/gstvaapiencode_mpeg2.c:
17517 vaapiencode: update for new properties API.
17518 Update MPEG-2 and H.264 encode elements to cope with the new core
17519 libgstvaapi properties API. i.e. all configurable properties are now
17520 directly handled at the GstVaapiEncoder level.
17521 Besides, this also makes sure to not use or modify the GstVaapiEncoder
17522 private definitions directly. Private data need to remain private.
17523 https://bugzilla.gnome.org/show_bug.cgi?id=719529
17525 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17527 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17528 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17529 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17530 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
17531 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17532 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
17533 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
17534 encoder: add properties API.
17535 Add interface to communicate configurable properties to the encoder.
17536 This covers both the common ones (rate-control, bitrate), and the
17537 codec specific properties.
17538 https://bugzilla.gnome.org/show_bug.cgi?id=719529
17540 2014-01-06 18:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17542 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17543 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17544 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17545 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
17546 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17547 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
17548 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
17549 * gst/vaapi/gstvaapiencode.c:
17550 * gst/vaapi/gstvaapiencode_h264.c:
17551 * gst/vaapi/gstvaapiencode_mpeg2.c:
17552 encoder: add bitrate API.
17553 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
17554 the bitrate for encoding. Currently, changing this parameter is only
17555 valid before the first frame is encoded. Should the value be modified
17556 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
17558 https://bugzilla.gnome.org/show_bug.cgi?id=719529
17560 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17562 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17563 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17564 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17565 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17566 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
17567 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
17568 * gst-libs/gst/vaapi/gstvaapitypes.h:
17569 * gst/vaapi/gstvaapiencode.c:
17570 * gst/vaapi/gstvaapiencode.h:
17571 * gst/vaapi/gstvaapiencode_h264.c:
17572 * gst/vaapi/gstvaapiencode_mpeg2.c:
17573 encoder: add rate control API.
17574 Add gst_vaapi_encoder_set_rate_control() interface to request a new
17575 rate control mode for encoding. Changing the rate control mode is
17576 only valid prior to encoding the very first frame. Afterwards, an
17577 error ("operation-failed") is issued.
17578 https://bugzilla.gnome.org/show_bug.cgi?id=719529
17580 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17582 * gst/vaapi/gstvaapiencode.c:
17583 * gst/vaapi/gstvaapiencode_h264.c:
17584 * gst/vaapi/gstvaapiencode_mpeg2.c:
17585 vaapiencode: fix indentation.
17587 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17589 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17590 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17591 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17592 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
17593 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
17594 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
17595 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
17596 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
17597 * gst/vaapi/gstvaapiencode.h:
17598 encoder: fix indentation.
17600 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17602 * gst-libs/gst/vaapi/Makefile.am:
17603 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
17604 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
17605 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
17606 utils: add new MPEG-2 helper functions.
17607 Add various helper functions to convert profile, level, chroma formats
17608 from gstreamer-vaapi world and the MPEG-2 specification world.
17610 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17612 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
17613 utils: h264: don't use fatal asserts.
17614 Replace g_assert() with a g_debug() so that to not make the program
17615 abort when an unsupported value is supplied.
17617 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17619 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
17620 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
17621 utils: h264: add helpers for profile and level string mappings.
17622 Add profile and level helper functions to convert to/from strings.
17624 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17626 * gst-libs/gst/vaapi/Makefile.am:
17627 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17628 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
17629 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
17630 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
17631 utils: h264: expose levels in public header.
17632 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
17633 H.264 levels in there. The additional helper functions are meant
17634 to be private for now.
17636 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17638 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
17639 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
17640 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17641 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17642 codec: add helper macros to maintain object refcount.
17643 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
17644 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
17646 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17648 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17649 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17650 codec: re-indent decoder objects.
17652 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17654 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
17655 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
17656 codec: re-indent base codec objects.
17658 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
17660 * gst/vaapi/gstvaapipluginbase.c:
17661 plugins: do not free debug category in finalize method.
17662 Fixes a crash when multiple vaapidecode elements are finalized since
17663 the debug category is created once in the class init method.
17664 This is a regression from git commit 7e58d60.
17665 https://bugzilla.gnome.org/show_bug.cgi?id=721390
17666 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17668 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17670 * gst-libs/gst/vaapi/glibcompat.h:
17671 * tests/simple-decoder.c:
17672 tests: simple-decoder: don't use deprecated g_thread_create().
17673 Use g_thread_try_new() instead of the deprecated g_thread_create()
17674 function. Provide compatibility glue for any GLib version < 2.31.2.
17676 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17678 * gst-libs/gst/vaapi/gstvaapidecoder.c:
17679 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
17680 * gst-libs/gst/vaapi/gstvaapisurface.c:
17681 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
17682 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
17683 * gst/vaapi/gstvaapiencode.c:
17684 Fix printf()-like formats.
17685 Fix formts for various GST_DEBUG et al. invocations. More precisely,
17686 make size_t arguments use the %zu format specifier accordingly; force
17687 XID formats to be a 32-bit unsigned integer; and fix the format used
17688 for gst_vaapi_create_surface_with_format() error cases since we have
17689 been using strings nowadays.
17691 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17693 * gst-libs/gst/vaapi/video-format.c:
17694 * gst-libs/gst/vaapi/video-format.h:
17695 utils: format: drop unused helper functions.
17696 The following helper functions are no longer used, thus are removed:
17697 - gst_vaapi_video_format_from_structure()
17698 - gst_vaapi_video_format_from_caps()
17699 - gst_vaapi_video_format_to_caps()
17701 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17703 * gst-libs/gst/vaapi/video-format.c:
17704 * gst-libs/gst/vaapi/video-format.h:
17705 utils: re-indent GstVideoFormat related helpers.
17707 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17709 * gst/vaapi/gstvaapidownload.c:
17710 download: use GstVideoInfo facilities to build output caps.
17711 Use standard GstVideoInfo related functions to build the output caps,
17712 thus directly preserving additional fields as needed, instead of
17713 manually copying them over through gst_vaapi_append_surface_caps().
17714 Also ensure that the input caps are fixated first.
17716 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17718 * gst/vaapi/gstvaapidownload.c:
17719 * gst/vaapi/gstvaapipluginutil.c:
17720 * gst/vaapi/gstvaapipluginutil.h:
17721 * gst/vaapi/gstvaapiuploader.c:
17722 plugins: factor out construction of template caps.
17723 Add new helper functions to build video template caps.
17724 - gst_vaapi_video_format_new_template_caps():
17725 create GstCaps with size, frame rate and PAR to full range
17726 - gst_vaapi_video_format_new_template_caps_from_list():
17727 try to create a "simplified" list from the supplied formats
17729 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17731 * gst/vaapi/gstvaapipluginutil.c:
17732 * gst/vaapi/gstvaapipluginutil.h:
17733 * gst/vaapi/gstvaapipostproc.c:
17734 plugins: factor out construction of GValue from GstVideoFormat.
17735 Add new helper functions to build GValues from GstVideoFormat:
17736 - gst_vaapi_value_set_format():
17737 build a GValue from the supplied video format
17738 - gst_vaapi_value_set_format_list():
17739 build a GValue list from the supplied array of video formats
17741 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17743 * gst/vaapi/gstvaapipluginutil.c:
17744 * gst/vaapi/gstvaapipluginutil.h:
17745 * gst/vaapi/gstvaapivideocontext.c:
17746 * gst/vaapi/gstvaapivideocontext.h:
17747 plugins: re-indent common and video context creation utils.
17749 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17751 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17752 * gst-libs/gst/vaapi/gstvaapidisplay.h:
17753 * gst/vaapi/gstvaapidecode.c:
17754 * tests/test-display.c:
17755 display: don't use GstCaps for decode or encode profiles list.
17756 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
17757 more convenient APIs that return an array of GstVaapiProfile instead
17758 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
17760 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17762 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17763 * gst-libs/gst/vaapi/gstvaapidisplay.h:
17764 * gst/vaapi/gstvaapidownload.c:
17765 * gst/vaapi/gstvaapiuploader.c:
17766 * tests/test-display.c:
17767 display: don't use GstCaps for image or subpicture formats list.
17768 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
17769 returned GstCaps, with more convenient APIs that return an array of
17770 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
17772 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17774 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17775 * gst-libs/gst/vaapi/gstvaapidisplay.h:
17776 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
17777 display: allocate queried resources on-demand.
17778 Allocate the set of decoders or encoders on-demand, when they are
17779 queried. Likewise for VA display attributes, image and subpicture
17782 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17784 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17785 * gst-libs/gst/vaapi/gstvaapidisplay.h:
17786 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
17787 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
17788 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
17789 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
17790 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
17791 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
17792 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
17793 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17794 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
17795 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
17796 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
17797 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
17798 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
17799 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
17800 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
17801 display: re-indent all GstVaapiDisplay related source code.
17803 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17805 * gst-libs/gst/vaapi/gstvaapiprofile.c:
17806 * gst-libs/gst/vaapi/gstvaapiprofile.h:
17807 utils: add helper functions to get codec or profile name.
17809 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17811 * gst/vaapi/gstvaapipostproc.c:
17812 * gst/vaapi/gstvaapipostproc.h:
17813 * gst/vaapi/gstvaapiuploader.c:
17814 plugins: fix permissions for certain files.
17815 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
17818 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
17820 * gst/vaapi/gstvaapivideometa_texture.c:
17821 plugins: implement GLTextureUploadMeta user data copy.
17822 Makes the copies of a buffer reference their own GLTextureUploadMeta
17823 user data and prevent the original buffer accessing already freed
17824 memory if its copies has been released and freed.
17825 https://bugzilla.gnome.org/show_bug.cgi?id=720336
17826 [Propagate the original meta texture to the copy too]
17827 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17829 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17831 * gst/vaapi/gstvaapiencode.c:
17832 * gst/vaapi/gstvaapiencode.h:
17833 * gst/vaapi/gstvaapipluginbase.c:
17834 * gst/vaapi/gstvaapipluginbase.h:
17835 * gst/vaapi/gstvaapipostproc.c:
17836 * gst/vaapi/gstvaapipostproc.h:
17837 * gst/vaapi/gstvaapisink.c:
17838 * gst/vaapi/gstvaapisink.h:
17839 plugins: factor out support for raw YUV buffers on sink pads.
17840 Factor out propose_allocation() hooks, creation of video buffer pool
17841 for the sink pad, conversion from raw YUV buffers to VA surface backed
17842 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
17843 with the new GstVaapiPluginBase abilities.
17845 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17847 * gst-libs/gst/vaapi/gstcompat.h:
17848 * gst/vaapi/gstvaapidecode.c:
17849 * gst/vaapi/gstvaapidecode.h:
17850 * gst/vaapi/gstvaapidownload.c:
17851 * gst/vaapi/gstvaapipluginbase.c:
17852 * gst/vaapi/gstvaapipluginbase.h:
17853 * gst/vaapi/gstvaapipostproc.c:
17854 * gst/vaapi/gstvaapipostproc.h:
17855 * gst/vaapi/gstvaapisink.c:
17856 * gst/vaapi/gstvaapiupload.c:
17857 plugins: factor out pad caps.
17859 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17861 * gst/vaapi/gstvaapidecode.c:
17862 * gst/vaapi/gstvaapidownload.c:
17863 * gst/vaapi/gstvaapiencode.c:
17864 * gst/vaapi/gstvaapipluginbase.c:
17865 * gst/vaapi/gstvaapipostproc.c:
17866 * gst/vaapi/gstvaapisink.c:
17867 * gst/vaapi/gstvaapiupload.c:
17868 plugins: factor out video context sharing code.
17870 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17872 * gst/vaapi/gstvaapidecode.c:
17873 * gst/vaapi/gstvaapidownload.c:
17874 * gst/vaapi/gstvaapiencode.c:
17875 * gst/vaapi/gstvaapipluginbase.c:
17876 * gst/vaapi/gstvaapipluginbase.h:
17877 * gst/vaapi/gstvaapipostproc.c:
17878 * gst/vaapi/gstvaapisink.c:
17879 * gst/vaapi/gstvaapiupload.c:
17880 plugins: factor out GstImplementsInterface.
17882 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17884 * gst-libs/gst/vaapi/gstvaapidisplay.c:
17885 * gst-libs/gst/vaapi/gstvaapidisplay.h:
17886 * gst/vaapi/gstvaapipluginbase.c:
17887 * gst/vaapi/gstvaapipluginutil.c:
17888 plugins: check type of display obtained from neighbours.
17889 Fix display creation code to check that any display obtained from a
17890 neighbour actually has the type we expect. Note: if display type is
17891 set to "any", we can then accept any VA display type.
17893 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17895 * gst/vaapi/gstvaapidecode.c:
17896 * gst/vaapi/gstvaapidownload.c:
17897 * gst/vaapi/gstvaapiencode.c:
17898 * gst/vaapi/gstvaapipluginbase.c:
17899 * gst/vaapi/gstvaapipluginbase.h:
17900 * gst/vaapi/gstvaapipluginutil.c:
17901 * gst/vaapi/gstvaapipluginutil.h:
17902 * gst/vaapi/gstvaapipostproc.c:
17903 * gst/vaapi/gstvaapisink.c:
17904 * gst/vaapi/gstvaapisink.h:
17905 * gst/vaapi/gstvaapiupload.c:
17906 plugins: factor out display creation process.
17907 Move common VA display creation code to GstVaapiPluginBase, with the
17908 default display type remaining "any". Also add a "display-changed"
17909 hook so that subclasses could perform additional tasks when/if the
17910 VA display changed, due to a new display type request for instance.
17911 All plug-ins are updated to cope with the new internal APIs.
17913 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17915 * gst/vaapi/Makefile.am:
17916 * gst/vaapi/gstvaapidecode.c:
17917 * gst/vaapi/gstvaapidecode.h:
17918 * gst/vaapi/gstvaapidownload.c:
17919 * gst/vaapi/gstvaapidownload.h:
17920 * gst/vaapi/gstvaapiencode.c:
17921 * gst/vaapi/gstvaapiencode.h:
17922 * gst/vaapi/gstvaapipluginbase.c:
17923 * gst/vaapi/gstvaapipluginbase.h:
17924 * gst/vaapi/gstvaapipostproc.c:
17925 * gst/vaapi/gstvaapipostproc.h:
17926 * gst/vaapi/gstvaapisink.c:
17927 * gst/vaapi/gstvaapisink.h:
17928 * gst/vaapi/gstvaapiupload.c:
17929 * gst/vaapi/gstvaapiupload.h:
17930 plugins: add new base object, store display in there.
17931 Introduce a new GstVaapiPluginBase object that will contain all common
17932 data structures and perform all common tasks. First step is to have a
17933 single place to hold VA displays.
17934 While we are at it, also make sure to store and subsequently release
17935 the appropriate debug category for the subclasses.
17937 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17939 * gst-libs/gst/vaapi/gstvaapiobject.h:
17940 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
17941 * gst/vaapi/gstvaapivideometa_texture.c:
17942 * gst/vaapi/gstvaapivideometa_texture.h:
17943 plugins: fix GLTextureUploadMeta to work with different texture ids.
17944 The GLTextureUploadMeta implementation assumed that for each upload()
17945 sequence, the supplied texture id is always the same as the one that
17946 was previously cached into the underlying GstVaapiTexture. Cope with
17947 any texture id change the expense to recreate the underlying VA/GLX
17949 https://bugzilla.gnome.org/show_bug.cgi?id=719643
17951 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17953 * gst/vaapi/gstvaapidecode.c:
17954 * gst/vaapi/gstvaapivideobufferpool.c:
17955 * gst/vaapi/gstvaapivideometa_texture.c:
17956 plugins: allow builds without GLX enabled for GStreamer 1.2.
17957 Don't try to build GLTextureUploadMeta related code if GLX is not
17958 enabled during GStreamer >= 1.2 builds.
17960 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
17962 * gst/vaapi/gstvaapidecode.c:
17963 * gst/vaapi/gstvaapivideobufferpool.c:
17964 * gst/vaapi/gstvaapivideobufferpool.h:
17965 * gst/vaapi/gstvaapivideometa_texture.c:
17966 * gst/vaapi/gstvaapivideometa_texture.h:
17967 plugins: request GLTextureUpload meta on buffers in the buffer pool.
17968 Requesting the GLTextureUpload meta on buffers in the bufferpool
17969 prevents such metas from being de-allocated when buffers are released
17971 This is particulary useful in terms of performance when using the
17972 GLTextureUploadMeta API since the GstVaapiTexture associated with
17973 the target texture is stored in the meta.
17974 https://bugzilla.gnome.org/show_bug.cgi?id=712558
17975 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17977 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17979 * gst/vaapi/gstvaapivideometa_texture.c:
17980 plugins: robustify GstVideoGLTextureUploadMeta implementation.
17981 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
17982 when the GstVaapiTexture associated with the supplied texture id could
17985 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17987 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17988 h264: improve robustness when packets are missing.
17989 Improve robustness when some expected packets where not received yet
17990 or that were not correctly decoded. For example, don't try to decode
17991 a picture if there was no valid frame headers parsed so far.
17992 https://bugs.freedesktop.org/show_bug.cgi?id=57902
17994 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17996 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17997 decoder: h264: fix decoding of BA3_SVA_C.264.
17998 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
17999 extended profile specifications. However, the SPS header has the
18000 constraint_set1_flag syntax element set to 1. This means that, if
18001 a Main profile compliant decoder is available, then it should be
18002 able to decode this stream.
18003 This changes makes it possible to fall-back from Extended profile
18004 to Main profile if constraint_set1_flag is set to 1.
18005 https://bugzilla.gnome.org/show_bug.cgi?id=720190
18007 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18009 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18010 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
18011 utils: h264: add more profiles.
18012 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
18013 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
18014 multiview profiles (H.10.1.1, H.10.1.2).
18015 Document "Constrained Baseline" and "High 10" profiles.
18017 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18019 * ext/codecparsers:
18020 codecparsers: update to gst-vaapi-branch commit e7d0e18.
18021 e7d0e18 h264: complete set of NAL unit types
18023 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
18025 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18026 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18027 decoder: h264: add support for constrained baseline profile.
18028 Recognize streams marked as conforming to the "Constrained Baseline
18029 Profile". If VA driver supports that as is, fine. Otherwise, fallback
18030 to baseline, main or high profile.
18031 Constrained Baseline Profile conveys coding tools that are common
18032 to baseline profile and main profile.
18033 https://bugzilla.gnome.org/show_bug.cgi?id=719947
18034 [Added fallbacks to main and high profiles]
18035 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18037 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18039 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18040 decoder: h264: fix decoding of scaling lists.
18041 The GStreamer codecparser layer now parses the scaling lists in zigzag
18042 scan order, as expected, so that to match the original bitstream layout
18043 and specification. However, further convert the scaling lists into
18044 raster scan order to fit the existing practice in most VA drivers.
18045 https://bugzilla.gnome.org/show_bug.cgi?id=706406
18047 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18049 * ext/codecparsers:
18050 codecparsers: update to gst-vaapi-branch commit 177c73b.
18051 a7e3255 add H.265 (HEVC) bitstream parser
18052 177c73b h264: fix picture level scaling lists derivation (rule B)
18053 14733f1 h264: fix parsing of VCL HRD parameters
18054 59a0b47 h264: store quantization matrices in zig-zag order
18055 ffb6e26 h264: add helpers to convert quantization matrices
18056 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
18057 719d1b0 mpeg2: turn internal consistency check into a g_assert()
18058 5241d8e all: remove some unused functions
18059 18eb312 all: fix for GST_DISABLE_GST_DEBUG
18060 963c04a all: make warnings more meaningful
18062 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18064 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18065 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
18066 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
18067 utils: add helpers for H.264 levels.
18068 - gst_vaapi_utils_h264_get_level():
18069 Returns GstVaapiLevelH264 from H.264 level_idc value
18070 - gst_vaapi_utils_h264_get_level_idc():
18071 Returns H.264 level_idc value from GstVaapiLevelH264
18072 - gst_vaapi_utils_h264_get_level_limits():
18073 Returns level limits as specified in Table A-1 of the H.264 standard
18074 - gst_vaapi_utils_h264_get_level_limits_table():
18075 Returns the Table A-1 specification
18077 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18079 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18080 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18081 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
18082 utils: add new H.264 profiles.
18083 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
18084 and helper functiions.
18086 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18088 utils: add new H.264 helper functions.
18090 - gst_vaapi_utils_h264_get_profile():
18091 Returns GstVaapiProfile from H.264 profile_idc value
18092 - gst_vaapi_utils_h264_get_profile_idc():
18093 Returns H.264 profile_idc value from GstVaapiProfile
18095 - gst_vaapi_utils_h264_get_chroma_type():
18096 Returns GstVaapiChromaType from H.264 chroma_format_idc value
18097 - gst_vaapi_utils_h264_get_chroma_format_idc():
18098 Returns H.264 chroma_format_idc value from GstVaapiChromaType
18100 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
18102 * gst-libs/gst/base/Makefile.am:
18103 * gst-libs/gst/vaapi/Makefile.am:
18104 Fix missing files in distribution tarball.
18105 https://bugzilla.gnome.org/show_bug.cgi?id=719776
18106 [Additional fixes and clean-ups]
18107 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18109 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18111 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18112 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18113 encoder: fix computation of max coded buffer size (again).
18114 The previous fix was only valid to express the maximum size of the
18115 macroblock layer, i.e. without any headers. Now, also account for
18116 the slice headers and top picture header, but also any other header
18117 we might stuff into the VA coded buffer, e.g. sequence headers.
18119 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18121 * gst-libs/gst/vaapi/gstvaapiencoder.c:
18122 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18123 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18124 encoder: fix computation of max coded buffer size.
18125 Fix coded buffer size for each codec. A generic issue was that the
18126 number of macroblocks was incorrectly computed. The second issue was
18127 specific to MPEG-2 were the max number of bits per macroblock, and
18128 as defined by the standard, was incorrectly mapped to the (lower)
18129 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
18131 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18133 * gst-libs/gst/vaapi/gstvaapiencoder.c:
18134 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18135 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18136 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
18137 encoder: simplify VA context initialization process.
18138 Change get_context_info() into a set_context_info() function that
18139 initializes common defaults into the base class, thus allowing the
18140 subclasses to specialize the context info further on.
18141 The set_context_info() hook is also the location where additional
18142 context specific data could be initialized. At this point, we are
18143 guaranteed to have valid video resolution size and framerate. i.e.
18144 gst_vaapi_encoder_set_format() was called beforehand.
18146 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
18148 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18149 encoder: fix mpeg2 compilation error.
18150 https://bugzilla.gnome.org/show_bug.cgi?id=719746
18151 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18153 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18155 * gst-libs/gst/vaapi/gstvaapiencoder.c:
18156 * gst-libs/gst/vaapi/gstvaapiencoder.h:
18157 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18158 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18159 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
18160 * gst/vaapi/gstvaapiencode.c:
18161 encoder: clean-ups and document public APIs.
18162 Clean public APIs up so that to better align with the decoder APIs.
18163 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
18164 return the VA coded buffer proxy. Also provide useful documentation
18165 for the public APIs.
18167 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18169 * gst-libs/gst/vaapi/gstvaapiencoder.c:
18170 * gst-libs/gst/vaapi/gstvaapiencoder.h:
18171 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
18172 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
18173 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
18174 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
18175 through GstVaapiCodedBufferProxy user-data facility.
18176 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
18178 Partial fix for the following report:
18179 https://bugzilla.gnome.org/show_bug.cgi?id=719530
18181 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18183 * gst-libs/gst/vaapi/gstvaapiencoder.c:
18184 * gst-libs/gst/vaapi/gstvaapiencoder.h:
18185 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18186 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18187 * gst/vaapi/gstvaapiencode.c:
18188 encoder: refactor status codes.
18189 Drop obsolete or unused status codes. Align some status codes with the
18190 decoder counterparts.
18192 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18194 * gst-libs/gst/vaapi/gstvaapiencoder.c:
18195 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18196 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
18197 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18198 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
18199 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
18200 encoder: fix subclassing process.
18201 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
18202 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
18203 thus avoiding useless run-time checks. Also simplify the subclass
18204 initialization process to be less error prone.
18206 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18208 encoder: rework GstVaapiCodedBuffer and related proxy.
18209 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
18210 public and private interfaces. Besides, the map/unmap APIs should not
18211 be exposed as is but appropriate accessors should be provided instead.
18212 * GstVaapiCodedBuffer: VA coded buffer abstraction
18213 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
18214 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
18215 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
18216 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
18217 the specified max size, and bound to the supplied encoder
18218 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
18219 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
18220 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
18221 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
18222 Rationale: more optimized transfer functions might be provided in the
18223 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
18224 https://bugzilla.gnome.org/show_bug.cgi?id=719775
18226 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18228 * gst/vaapi/gstvaapidecode.c:
18229 * gst/vaapi/gstvaapiencode.c:
18230 * gst/vaapi/gstvaapipostproc.c:
18231 * gst/vaapi/gstvaapisink.c:
18232 plugins: fix reference leaks of VA display objects.
18233 Fix GstElement::set_context() implementation for all plug-in elements
18234 to avoid leaking an extra reference to the VA display, thus preventing
18235 correct cleanup of VA resources in GStreamer 1.2 builds.
18237 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18239 * gst/vaapi/gstvaapipluginutil.c:
18240 * gst/vaapi/gstvaapivideocontext.c:
18241 plugins: simplify gst_vaapi_ensure_display().
18242 Return earlier if the creation of a VA display failed. Likewise, simplify
18243 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
18246 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18248 * gst/vaapi/gstvaapivideomemory.c:
18249 plugins: fix memory leaks through GstVideoMeta maps.
18250 When GstVideoMeta maps were used, the supporting functions incorrectly
18251 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
18252 always increasing the associated GstMemory reference count and giving
18253 zero chance to actually release that, and subsequently the VA display.
18255 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18257 * gst-libs/gst/vaapi/gstvaapifilter.c:
18258 * gst/vaapi/gstvaapiencode_h264.c:
18259 * gst/vaapi/gstvaapiencode_mpeg2.c:
18260 * gst/vaapi/gstvaapipostproc.c:
18261 * gst/vaapi/gstvaapisink.c:
18262 * gst/vaapi/gstvaapiuploader.c:
18263 plugins: use G_PARAM_STATIC_STRINGS.
18264 This avoids a few string copies during initialization.
18266 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18268 * gst/vaapi/gstvaapivideometa.c:
18269 plugins: simplify VA video meta to only reference surface proxies.
18270 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
18271 now allocated from a surface pool. This also means that the local
18272 reference to the VA surface is also gone, as it could be extracted
18273 from the associated surface proxy.
18275 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18277 * gst/vaapi/gstvaapivideobuffer.c:
18278 * gst/vaapi/gstvaapivideobuffer.h:
18279 * gst/vaapi/gstvaapivideometa.c:
18280 * gst/vaapi/gstvaapivideometa.h:
18281 plugins: drop obsolete functions.
18282 Drop the following functions that are not longer used:
18283 - gst_vaapi_video_buffer_new_with_surface()
18284 - gst_vaapi_video_meta_new_with_surface()
18285 - gst_vaapi_video_meta_set_surface()
18286 - gst_vaapi_video_meta_set_surface_from_pool()
18288 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18290 * gst/vaapi/gstvaapivideometa.c:
18291 plugins: allow VA video meta to be allocated from surface proxy pools.
18292 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
18293 from surface pools instead of plain VA surfaces. This is to simplify
18294 allocations now that surface proxies are created from a surface pool.
18296 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18298 * docs/reference/libs/libs-sections.txt:
18299 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
18300 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
18301 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
18302 surfaceproxy: add copy function.
18303 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
18304 proxy with the same information from the parent proxy, except that the
18305 user-defined destroy notify function is not copied over.
18306 The underlying VA surface is pushed back to the video pool only when
18307 the last reference to the parent surface proxy is released.
18309 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18311 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
18312 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18313 * gst/vaapi/gstvaapiencode.c:
18314 vaapiencode: optimize _handle_frame() to avoid extra allocation.
18315 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
18316 and in particular the GstVaapiEncObjUserData object. i.e. directly use
18317 the VA surface proxy from the source buffer. This also makes the user
18318 data attached to the GstVideoCodecFrame more consistent between both
18319 the decoder and encoder plug-in elements.
18321 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18323 * gst/vaapi/gstvaapiencode.c:
18324 vaapiencode: fix memory leaks in _push_frame() on error.
18325 Simplify gst_vaapiencode_push_frame(), while also removing the call
18326 to gst_video_encoder_negotiate() since this is implicit in _finish()
18327 if caps changed. Also fixed memory leaks that occured on error.
18329 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18331 * gst/vaapi/gstvaapiencode.c:
18332 * gst/vaapi/gstvaapiencode.h:
18333 * gst/vaapi/gstvaapiencode_h264.c:
18334 * gst/vaapi/gstvaapiencode_h264.h:
18335 * gst/vaapi/gstvaapiencode_mpeg2.c:
18336 vaapiencode: additional clean-ups.
18337 Constify pointers wherever possible. Drop unused variables, and use
18338 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
18339 to correctly report errors, especially when in-place conversion from
18340 bytestream to avcC format failed.
18342 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18344 * gst/vaapi/gstvaapiencode.c:
18345 * gst/vaapi/gstvaapiencode.h:
18346 * gst/vaapi/gstvaapiencode_h264.c:
18347 * gst/vaapi/gstvaapiencode_h264.h:
18348 * gst/vaapi/gstvaapiencode_mpeg2.c:
18349 * gst/vaapi/gstvaapiencode_mpeg2.h:
18350 vaapiencode: move common properties to base class.
18351 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
18352 base class. The actual range of supported rate control modes is currently
18353 implemented as a plug-in element hook. This ought to be determined from
18354 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
18356 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18358 * gst/vaapi/gstvaapiencode_h264.c:
18359 * gst/vaapi/gstvaapiencode_mpeg2.c:
18360 vaapiencode: fix plugin description and debug name.
18361 Align the plug-in debug category to its actual name. i.e. enable debug
18362 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
18363 the plug-in element description to make it more consistent with other
18366 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18369 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18370 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18371 * gst-libs/gst/video/Makefile.am:
18372 * gst/vaapi/gstvaapiencode.c:
18373 * gst/vaapi/gstvaapiencode.h:
18374 * gst/vaapi/gstvaapiencode_h264.c:
18375 * gst/vaapi/gstvaapiencode_mpeg2.c:
18376 vaapiencode: add initial support for GStreamer 0.10.
18378 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18380 * gst-libs/gst/vaapi/gstcompat.h:
18381 libs: add more GstBuffer compat glue for GStreamer 0.10.
18382 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
18383 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
18386 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18389 * gst-libs/gst/video/Makefile.am:
18390 libs: always use built-in videoutils for GStreamer 0.10.
18391 GStreamer 0.10.36 is the latest and ultimate version to be released
18392 from the GStreamer 0.10 branch. i.e. no further releases are to be
18393 made. So, we can safely enable the built-in videoutils replacement
18394 now that they are in sync with the 0.10 branch.
18396 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18399 videoutils: update to master commit d4a15a5.
18400 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
18401 86096cc videodecoder: minor cosmetic changes to align a bit more with master
18402 b4b8b52 videodecoder: allow parse function to not use all data on adapter
18403 2145495 videodecoder: warn if frame list gets long
18404 36c3753 videodecoder: Also use the object lock to protect the output_state
18405 518c93d videodecoder: fix seeking again
18406 185fb63 video: Correct usage of the base class stream lock
18407 170e944 videodecoder: Expose _negotiate function
18409 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
18412 * gst-libs/gst/vaapi/Makefile.am:
18413 * tests/Makefile.am:
18414 Fix build with GStreamer >= 1.3.
18415 http://bugzilla.gnome.org/show_bug.cgi?id=715183
18416 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18418 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18421 configure: disable encoders with GStreamer 0.10.
18422 Don't try to build video encoders for GStreamer 0.10. Support code is
18423 not there yet, and probably will never for such an ancient version.
18425 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18427 * gst/vaapi/gstvaapiencode.c:
18428 vaapiencode: fix error handling while allocating output buffers.
18429 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
18430 unmap the coded buffer prior to returning an error.
18432 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18434 * gst/vaapi/gstvaapiencode.c:
18435 vaapiencode: fix error handling in _finish() hook.
18436 Fix GstVideoEncoder::finish() implementation to really return possible
18437 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
18439 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18441 * gst/vaapi/gstvaapiencode.c:
18442 * gst/vaapi/gstvaapiencode.h:
18443 * gst/vaapi/gstvaapiencode_h264.c:
18444 * gst/vaapi/gstvaapiencode_h264.h:
18445 * gst/vaapi/gstvaapiencode_mpeg2.c:
18446 * gst/vaapi/gstvaapiencode_mpeg2.h:
18447 vaapiencode: minor clean-ups.
18448 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
18449 the GObject type system. We are guaranteed to only deal with the same
18450 plug-in element object.
18452 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18454 * gst/vaapi/gstvaapiencode.c:
18455 * gst/vaapi/gstvaapiencode_h264.c:
18456 * gst/vaapi/gstvaapiencode_mpeg2.c:
18457 vaapiencode: fix support for raw YUV sink buffers.
18458 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
18459 The most efficient way to do so is to let the vaapiencode elements
18460 allocate a buffer pool, and subsequently buffers from it. This means
18461 that upstream elements are expected to honour downstream pools.
18462 If upstream elements insist on providing their own allocated buffers
18463 to the vaapiencode elements, then it possibly would be more efficient
18464 to insert a vaapipostproc element before the vaapiencode element.
18465 This is because vaapipostproc currently has better support than other
18466 elements for "foreign" raw YUV buffers.
18468 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18470 * gst/vaapi/gstvaapiencode.c:
18471 vaapiencode: fix support for GStreamer 1.2.
18473 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
18475 * gst/vaapi/gstvaapiencode.c:
18476 * gst/vaapi/gstvaapiencode_h264.c:
18477 * gst/vaapi/gstvaapiencode_mpeg2.c:
18478 vaapiencode: initial port to GStreamer 1.2.
18479 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18481 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
18483 * gst/vaapi/Makefile.am:
18484 * gst/vaapi/gstvaapi.c:
18485 * gst/vaapi/gstvaapiencode_mpeg2.c:
18486 * gst/vaapi/gstvaapiencode_mpeg2.h:
18487 plugins: add mpeg2 encoder element.
18488 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
18489 is called "vaapiencode_mpeg2".
18491 - rate-control: rate control mode (default: cqp - constant QP)
18492 - bitrate: desired bitrate in kbps (default: auto-calculated)
18493 - key-period: maximal distance between two key frames (default: 30)
18494 - max-bframes: number of B-frames between I and P (default: 2)
18495 - quantizer: constant quantizer (default: 8)
18496 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18498 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
18500 * gst/vaapi/Makefile.am:
18501 * gst/vaapi/gstvaapi.c:
18502 * gst/vaapi/gstvaapiencode_h264.c:
18503 * gst/vaapi/gstvaapiencode_h264.h:
18504 plugins: add h264 encoder element.
18505 Add GstVaapiEncodeH264 element object. The actual plug-in element
18506 is called "vaapiencode_h264".
18508 - rate-control: rate control mode (default: none)
18509 - bitrate: desired bitrate in kbps (default: auto-calculated)
18510 - key-period: maximal distance between two key frames (default: 30)
18511 - num-slices: number of slices per frame (default: 1)
18512 - max-bframes: number of B-frames between I and P (default: 0)
18513 - min-qp: minimal quantizer (default: 1)
18514 - init-qp: initial quantizer (default: 26)
18515 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18517 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
18519 * gst/vaapi/Makefile.am:
18520 * gst/vaapi/gstvaapiencode.c:
18521 * gst/vaapi/gstvaapiencode.h:
18522 plugins: add base encoder element.
18523 vaapiencode element is based on GstVideoEncoder APIs.
18524 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18526 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
18528 * gst-libs/gst/vaapi/Makefile.am:
18529 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18530 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
18531 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
18532 encoder: add mpeg2 encoder.
18533 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
18534 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18536 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
18538 * gst-libs/gst/vaapi/Makefile.am:
18539 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18540 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
18541 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
18542 encoder: add h264 encoder.
18543 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18545 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
18548 * gst-libs/gst/vaapi/Makefile.am:
18549 * gst-libs/gst/vaapi/gstvaapiencoder.c:
18550 * gst-libs/gst/vaapi/gstvaapiencoder.h:
18551 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
18552 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18553 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
18554 Add initial infrastructure for video encoding.
18555 Add initial API for video encoding: only basic interfaces and small
18556 encoder objects are implemented so far.
18557 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18559 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
18562 * gst-libs/gst/Makefile.am:
18563 * gst-libs/gst/base/Makefile.am:
18564 * gst-libs/gst/base/gstbitwriter.c:
18565 * gst-libs/gst/base/gstbitwriter.h:
18566 * gst-libs/gst/vaapi/Makefile.am:
18567 libs: add generic bitstream writer.
18568 GstBitWriter provides a bit writer that can write any number of bits
18569 to a pre-allocated memory buffer. Helper functions are also provided
18570 to write any number of bits from 8, 16, 32 and 64 bit variables.
18571 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18573 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
18575 * gst-libs/gst/vaapi/gstvaapicontext.c:
18576 * gst-libs/gst/vaapi/gstvaapicontext.h:
18577 libs: add support for rate-control to GstVaapiContext.
18578 Extend GstVaapiContextInfo structure to hold the desired rate control
18579 mode for encoding purposes. For decoding purposes, this field is not
18580 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
18581 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18583 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
18585 * gst-libs/gst/vaapi/gstvaapitypes.h:
18586 * gst-libs/gst/vaapi/gstvaapiutils.c:
18587 * gst-libs/gst/vaapi/gstvaapiutils.h:
18588 * gst-libs/gst/vaapi/gstvaapivalue.c:
18589 * gst-libs/gst/vaapi/gstvaapivalue.h:
18590 libs: add rate-control attributes.
18591 Add GstVaapiRateControl types and GType values in view to supporting
18592 rate controls for encoding. This is meant to be used for instance in
18594 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18596 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18599 Bump version for development.
18601 === release 0.5.7 ===
18603 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18605 * gst/vaapi/Makefile.am:
18606 build: fix for Wayland headers not in standard include dirs.
18607 Fix build when Wayland headers don't live in plain system include dirs
18608 like /usr/include but rather in /usr/include/wayland for instance.
18609 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
18610 https://bugzilla.gnome.org/show_bug.cgi?id=712282
18612 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
18614 * gst-libs/gst/vaapi/Makefile.am:
18615 build: link libgstvaapi-wayland against videoutils.
18616 This library is using symbols that don't exist in GStreamer 0.10 so
18617 it needs to link to built-in implementation (libgstvaapi-videoutils).
18618 https://bugzilla.gnome.org/show_bug.cgi?id=712282
18619 Signed-off-by: Ross Burton <ross.burton@intel.com>
18620 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18622 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18624 * gst-libs/gst/vaapi/gstvaapifilter.c:
18625 * gst/vaapi/gstvaapipostproc.c:
18626 vaapostproc: fix memory leaks.
18627 Destroy VPP output surface pool on exit. Also avoid a possible crash
18628 in double-free situation caused by insufficiently reference counted
18629 array of formats returned during initialization.
18631 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18633 * gst/vaapi/gstvaapipostproc.c:
18634 * gst/vaapi/gstvaapipostproc.h:
18635 vaapipostproc: fix and optimize advanced deinterlacing mode.
18636 Fix advanced deinterlacing modes with VPP to track only up to 2 past
18637 reference buffers. This used to be 3 past reference buffers but this
18638 doesn't fit with the existing decode pipeline that only has 4 extra
18640 Also optimize references tracking to be only enabled when needed, i.e.
18641 when advanced deinterlacing mode is used. This means that we don't
18642 need to track past references for basic bob or weave deinterlacing.
18644 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18646 * gst/vaapi/gstvaapipostproc.c:
18647 vaapipostproc: fix "mixed" mode deinterlacing.
18648 In "mixed" interlaced streams, the buffer contains additional flags that
18649 specify whether the frame contained herein is interlaced or not. This means
18650 that we can alternatively get progressive or interlaced frames. Make sure
18651 to disable deinterlacing at the VPP level when the source buffer is no longer
18654 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18656 * gst/vaapi/gstvaapipostproc.c:
18657 vaapipostproc: fix memory leaks with advanced deinterlacing.
18658 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
18659 of past buffers. Completely reset the deinterlace state, thus destroying
18660 any buffer currently held, on _start(), _stop() and _destroy().
18662 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18666 - GStreamer 1.2 APIs are supported ;
18667 - Video Processing (VA/VPP) features.
18669 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18672 README: update for GStreamer >= 1.0.x and VPP features.
18674 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18676 * gst-libs/gst/vaapi/glibcompat.h:
18677 * gst-libs/gst/vaapi/gstvaapicontext.h:
18678 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
18679 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
18680 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
18681 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
18682 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
18683 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
18684 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
18685 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
18686 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18687 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
18688 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
18689 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
18690 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
18691 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
18692 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
18693 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
18694 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
18695 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
18696 * gst-libs/gst/vaapi/gstvaapiimage.c:
18697 * gst-libs/gst/vaapi/gstvaapiimage.h:
18698 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
18699 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
18700 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
18701 * gst-libs/gst/vaapi/gstvaapiobject.c:
18702 * gst-libs/gst/vaapi/gstvaapiobject.h:
18703 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
18704 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18705 * gst-libs/gst/vaapi/gstvaapisurface.h:
18706 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
18707 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
18708 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
18709 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
18710 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
18711 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
18712 * gst-libs/gst/vaapi/gstvaapitexture.c:
18713 * gst-libs/gst/vaapi/gstvaapitexture.h:
18714 * gst-libs/gst/vaapi/gstvaapitypes.h:
18715 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
18716 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
18717 * gst-libs/gst/vaapi/gstvaapivalue.c:
18718 * gst-libs/gst/vaapi/gstvaapivalue.h:
18719 * gst-libs/gst/vaapi/gstvaapivideopool.c:
18720 * gst-libs/gst/vaapi/gstvaapivideopool.h:
18721 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
18722 * gst-libs/gst/vaapi/gstvaapiwindow.c:
18723 * gst-libs/gst/vaapi/gstvaapiwindow.h:
18724 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
18725 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
18726 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
18727 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
18728 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
18729 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
18730 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
18731 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
18732 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
18733 * gst/vaapi/gstvaapi.c:
18734 * gst/vaapi/gstvaapidecode.h:
18735 * gst/vaapi/gstvaapidownload.h:
18736 * gst/vaapi/gstvaapipluginutil.c:
18737 * gst/vaapi/gstvaapipluginutil.h:
18738 * gst/vaapi/gstvaapipostproc.h:
18739 * gst/vaapi/gstvaapisink.h:
18740 * gst/vaapi/gstvaapivideoconverter_glx.h:
18744 * tests/test-display.c:
18745 * tests/test-jpeg.c:
18746 * tests/test-jpeg.h:
18747 * tests/test-mpeg4.c:
18748 * tests/test-mpeg4.h:
18749 * tests/test-surfaces.c:
18750 * tests/test-windows.c:
18751 legal: update copyright notice dates.
18753 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18755 * gst-libs/gst/vaapi/glibcompat.h:
18756 * gst-libs/gst/vaapi/gstcompat.h:
18757 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
18758 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
18759 * gst-libs/gst/vaapi/gstvaapicompat.h:
18760 * gst-libs/gst/vaapi/gstvaapicontext.c:
18761 * gst-libs/gst/vaapi/gstvaapicontext.h:
18762 * gst-libs/gst/vaapi/gstvaapidebug.h:
18763 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18764 * gst-libs/gst/vaapi/gstvaapidecoder.h:
18765 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
18766 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
18767 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18768 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
18769 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18770 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
18771 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18772 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
18773 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18774 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
18775 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
18776 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
18777 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
18778 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
18779 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
18780 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18781 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
18782 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18783 * gst-libs/gst/vaapi/gstvaapidisplay.h:
18784 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
18785 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
18786 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
18787 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18788 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
18789 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
18790 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
18791 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
18792 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
18793 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
18794 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
18795 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
18796 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
18797 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
18798 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
18799 * gst-libs/gst/vaapi/gstvaapifilter.c:
18800 * gst-libs/gst/vaapi/gstvaapifilter.h:
18801 * gst-libs/gst/vaapi/gstvaapiimage.c:
18802 * gst-libs/gst/vaapi/gstvaapiimage.h:
18803 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
18804 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
18805 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
18806 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
18807 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
18808 * gst-libs/gst/vaapi/gstvaapiobject.c:
18809 * gst-libs/gst/vaapi/gstvaapiobject.h:
18810 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
18811 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
18812 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
18813 * gst-libs/gst/vaapi/gstvaapipixmap.c:
18814 * gst-libs/gst/vaapi/gstvaapipixmap.h:
18815 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
18816 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
18817 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
18818 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18819 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18820 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18821 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
18822 * gst-libs/gst/vaapi/gstvaapisurface.c:
18823 * gst-libs/gst/vaapi/gstvaapisurface.h:
18824 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
18825 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
18826 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
18827 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
18828 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
18829 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
18830 * gst-libs/gst/vaapi/gstvaapitexture.c:
18831 * gst-libs/gst/vaapi/gstvaapitexture.h:
18832 * gst-libs/gst/vaapi/gstvaapitypes.h:
18833 * gst-libs/gst/vaapi/gstvaapiutils.c:
18834 * gst-libs/gst/vaapi/gstvaapiutils.h:
18835 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
18836 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
18837 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
18838 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
18839 * gst-libs/gst/vaapi/gstvaapivalue.c:
18840 * gst-libs/gst/vaapi/gstvaapivalue.h:
18841 * gst-libs/gst/vaapi/gstvaapivideopool.c:
18842 * gst-libs/gst/vaapi/gstvaapivideopool.h:
18843 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
18844 * gst-libs/gst/vaapi/gstvaapiwindow.c:
18845 * gst-libs/gst/vaapi/gstvaapiwindow.h:
18846 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
18847 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
18848 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
18849 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
18850 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
18851 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18852 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
18853 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
18854 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
18855 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
18856 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
18857 * gst-libs/gst/vaapi/sysdeps.h:
18858 * gst-libs/gst/vaapi/video-format.c:
18859 * gst-libs/gst/vaapi/video-format.h:
18860 * gst/vaapi/gstvaapi.c:
18861 * gst/vaapi/gstvaapidecode.c:
18862 * gst/vaapi/gstvaapidecode.h:
18863 * gst/vaapi/gstvaapidownload.c:
18864 * gst/vaapi/gstvaapidownload.h:
18865 * gst/vaapi/gstvaapipluginutil.c:
18866 * gst/vaapi/gstvaapipluginutil.h:
18867 * gst/vaapi/gstvaapipostproc.c:
18868 * gst/vaapi/gstvaapipostproc.h:
18869 * gst/vaapi/gstvaapisink.c:
18870 * gst/vaapi/gstvaapisink.h:
18871 * gst/vaapi/gstvaapiupload.c:
18872 * gst/vaapi/gstvaapiupload.h:
18873 * gst/vaapi/gstvaapiuploader.c:
18874 * gst/vaapi/gstvaapiuploader.h:
18875 * gst/vaapi/gstvaapivideobuffer.c:
18876 * gst/vaapi/gstvaapivideobuffer.h:
18877 * gst/vaapi/gstvaapivideobufferpool.c:
18878 * gst/vaapi/gstvaapivideobufferpool.h:
18879 * gst/vaapi/gstvaapivideocontext.c:
18880 * gst/vaapi/gstvaapivideocontext.h:
18881 * gst/vaapi/gstvaapivideoconverter_glx.c:
18882 * gst/vaapi/gstvaapivideoconverter_glx.h:
18883 * gst/vaapi/gstvaapivideoconverter_x11.c:
18884 * gst/vaapi/gstvaapivideoconverter_x11.h:
18885 * gst/vaapi/gstvaapivideomemory.c:
18886 * gst/vaapi/gstvaapivideomemory.h:
18887 * gst/vaapi/gstvaapivideometa.c:
18888 * gst/vaapi/gstvaapivideometa.h:
18889 * gst/vaapi/gstvaapivideometa_texture.c:
18890 * gst/vaapi/gstvaapivideometa_texture.h:
18899 * tests/simple-decoder.c:
18900 * tests/test-decode.c:
18901 * tests/test-decode.h:
18902 * tests/test-display.c:
18903 * tests/test-filter.c:
18904 * tests/test-h264.c:
18905 * tests/test-h264.h:
18906 * tests/test-jpeg.c:
18907 * tests/test-jpeg.h:
18908 * tests/test-mpeg2.c:
18909 * tests/test-mpeg2.h:
18910 * tests/test-mpeg4.c:
18911 * tests/test-mpeg4.h:
18912 * tests/test-surfaces.c:
18913 * tests/test-textures.c:
18914 * tests/test-vc1.c:
18915 * tests/test-vc1.h:
18916 * tests/test-windows.c:
18917 legal: add per-file authorship information.
18918 Credit original authors on a per-file basis as we cannot expect people
18919 to know all country-specific rules, or bother browsing through the git
18922 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18928 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18933 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18935 * gst-libs/gst/vaapi/gstvaapidecoder.h:
18936 decoder: don't include obsolete headers.
18937 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
18938 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
18941 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18943 * gst/vaapi/Makefile.am:
18944 * gst/vaapi/gstvaapi.c:
18945 * gst/vaapi/gstvaapipostproc.c:
18946 vaapipostproc: add initial support for GStreamer 1.2.
18947 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
18948 right now so that to cope with auto-plugging issues/regressions. e.g.
18949 this happens when the correct set of expected caps are being exposed.
18950 This means that, currently, the proposed caps are not fully accurate.
18952 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
18954 * gst/vaapi/gstvaapipostproc.c:
18955 * gst/vaapi/gstvaapipostproc.h:
18956 vaapipostproc: add support for denoise and sharpen filters.
18957 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18959 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18961 * gst/vaapi/gstvaapipostproc.c:
18962 * gst/vaapi/gstvaapipostproc.h:
18963 vaapipostproc: add support for advanced deinterlacing.
18964 Add initial support for advanced deinterlacing. The history buffer
18965 size is arbitrarily set to 3 references for now.
18967 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18969 * gst/vaapi/gstvaapipostproc.c:
18970 vaapipostproc: fix deinterlacing with VPP.
18971 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
18972 for the first field. Render flags were supplied instead of the actual
18973 deinterlacing flags (deint_flags).
18975 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18977 * gst/vaapi/gstvaapipostproc.c:
18978 vaapipostproc: fix transform caps.
18979 Fix GstBaseTransform::transform_caps() implementation to always return
18980 the complete set of allowed sink pad caps (unfixated) even if the src
18981 pad caps we are getting are fixated. Rationale: there are just so many
18982 possible combinations, and it was wrong to provide a unique set anyway.
18983 As a side effect, this greatly simplifies the ability to derive src pad
18984 caps from fixated sink pad caps.
18986 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
18988 * docs/reference/libs/libs-sections.txt:
18989 * gst-libs/gst/vaapi/gstvaapifilter.c:
18990 * gst-libs/gst/vaapi/gstvaapifilter.h:
18991 filter: add helper to specify references for deinterlacing.
18992 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
18993 list of surfaces used for forward or backward reference in advanced
18994 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
18995 The list of surfaces used as deinterlacing references shall be live
18996 until the next call to gst_vaapi_filter_process().
18997 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18999 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19001 * gst-libs/gst/vaapi/gstvaapifilter.c:
19002 * gst-libs/gst/vaapi/gstvaapifilter.h:
19003 * gst-libs/gst/vaapi/gstvaapiutils.c:
19004 * gst/vaapi/gstvaapipostproc.c:
19005 * tests/test-filter.c:
19006 filter: fix semantics of deinterlacing flags.
19007 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
19008 flag is meant to specify the organization of reference frames used in
19009 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
19010 to specify that the top-field of the supplied input surface is to be
19011 used for deinterlacing. Conversely, if not set, this means that the
19012 bottom field of the supplied input surface will be used instead.
19014 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19016 * docs/reference/libs/libs-sections.txt:
19017 * gst-libs/gst/vaapi/gstvaapifilter.c:
19018 * gst-libs/gst/vaapi/gstvaapifilter.h:
19019 filter: add helpers to check for supported/active operation.
19020 Add a couple of helper functions:
19021 - gst_vaapi_filter_has_operation(): checks whether the VA driver
19022 advertises support for the supplied operation ;
19023 - gst_vaapi_filter_use_operation(): checks whether the supplied
19024 operation was already enabled to its non-default value.
19026 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19028 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19029 libs: fix GstVaapiSurfaceProxy destroy notify call site.
19030 The user-defined destroy notify function is meant to be called only when
19031 the surface proxy was fully released, i.e. once it actually released the
19032 VA surface back to the underlying pool.
19034 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
19036 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19037 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19038 libs: make GstVaapiVideoPool thread-safe.
19039 https://bugzilla.gnome.org/show_bug.cgi?id=707108
19040 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19042 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
19044 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19045 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19046 libs: robustify decoder objects and surface proxy initialization.
19047 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
19048 sequences to have the expected default values set beforehand in case of an
19049 error raising up further during creation. i.e. make it possible to cleanly
19050 destroy those partially initialized objects.
19051 https://bugzilla.gnome.org/show_bug.cgi?id=707108
19052 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19054 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19056 * gst/vaapi/gstvaapidecode.c:
19057 vaapidecode: fix decoder flush.
19058 There are situations where gst_video_decoder_flush() is called, and
19059 this subsequently produces a gst_video_decoder_reset() that kills the
19060 currently active GstVideoCodecFrame. This means that it no longer
19061 exists by the time we reach GstVideoDecoder::finish() callback, thus
19062 possibly resulting in a crash if we assumed spare data was still
19063 available for decode (current_frame_size > 0).
19064 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
19065 that means a flush, thus performing the actual operations there like
19066 calling gst_video_decoder_have_frame() if pending data is available.
19068 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19070 * gst/vaapi/gstvaapidecode.c:
19071 * gst/vaapi/gstvaapidecode.h:
19072 vaapidecode: fix dead-locks with decoder task.
19073 Review all interactions between the main video decoder stream thread
19074 and the decode task to derive a correct sequence of operations for
19075 decoding. Also avoid extra atomic operations that become implicit under
19076 the GstVideoDecoder stream lock.
19078 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
19080 * gst/vaapi/gstvaapidecode.c:
19081 vaapidecode: fix hard reset for seek cases.
19082 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
19083 and completely purge any decoded output frame that may come out from
19084 it. At this stage, the GstVaapiDecoder shall be in a complete clean
19085 state to start decoding over new buffers.
19086 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19088 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
19090 * gst/vaapi/gstvaapidecode.c:
19091 * gst/vaapi/gstvaapidecode.h:
19092 vaapidecode: drop decode timeout, always wait for a free surface.
19093 vaapidecode used to wait up to one second past the expected time of
19094 presentation for the last decoded frame. This is not realistic in
19095 practice when it comes to video pause/resume. Changed behaviour to
19096 unconditionnally wait for a free VA surface prior to continuing the
19097 decoding. The decode task will continue pushing the output frames to
19098 the downstream element while also reporting errors at the same time
19099 to the main thread.
19100 https://bugzilla.gnome.org/show_bug.cgi?id=707108
19101 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19103 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19105 * gst/vaapi/gstvaapidecode.c:
19106 vaapidecode: fix srcpad caps for GStreamer 1.2.
19107 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
19108 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
19109 that it relied on possibly un-initialized data. Fix srcpad caps to be
19110 initialized from a sanitized copy of GstVideoDecoder output state caps.
19111 Note: the correct way to expose the srcpad caps triggers an additional
19112 issue in core GStreamer auto-plugging capabilities as the correct caps
19113 to be exposed should be format=ENCODED with memory:VASurface caps feature
19114 at the minimum. In some situations, we could determine the underlying
19115 VA surface format, but this is not always possible. e.g. cases where it
19116 is not allowed to expose the underlying VA surface data, or when the
19117 VA driver implementation cannot actually provide such information.
19119 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19121 * gst/vaapi/gstvaapidecode.c:
19122 * gst/vaapi/gstvaapisink.c:
19123 plugins: streamline VA formats exposed in caps to a realistic set.
19124 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
19125 output formats for GStreamer 1.2 in caps to a realistic subset. This
19126 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
19127 underlying VA surface format, or if it is actually not allowed to get
19128 access to the surface contents.
19130 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19132 * gst/vaapi/gstvaapidecode.c:
19133 * gst/vaapi/gstvaapisink.c:
19134 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
19135 Fix vaapidecode srcpad caps to only expose RGBA video format for the
19136 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
19137 so far. Besides, drop this meta from the vaapisink sinkpad caps since
19138 we really don't support that for rendering.
19139 https://bugzilla.gnome.org/show_bug.cgi?id=711828
19141 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19144 configure: automatically detect GStreamer API version.
19145 Automatically detect GStreamer API version. The --with-gstreamer-api
19146 configure option now defaults to "autodetect" and configure then tries
19147 to derive the GStreamer API version from the highest version based on
19148 what pkg-config --modversion would report.
19149 https://bugzilla.gnome.org/show_bug.cgi?id=711657
19151 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
19153 * gst/vaapi/gstvaapipostproc.c:
19154 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
19155 Fix raw YUV data uploaded as in the following pipeline:
19156 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
19157 The main reason why it failed was that the videoparse element simply
19158 allocates GstBuffer with raw data chunk'ed off the sink pad without
19159 any prior knowledge of the actual frame info. i.e. it basically just
19160 calls gst_adapter_take_buffer().
19161 We could avoid the extra copy performed in vaapipostproc if the videoparse
19162 element was aware of the downstream pool and bothers copying line by
19163 line, for each plane. This means that, for a single frame per buffer,
19164 the optimizatin will be to allocate the video buffer downstream, map
19165 it, and copy each line that is coming through until we need to fills
19166 in the successive planes.
19167 Still, optimized raw YUV uploads already worked with the following:
19168 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
19169 https://bugzilla.gnome.org/show_bug.cgi?id=711250
19170 [clean-ups, fixed error cases to unmap and unref outbuf]
19171 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19173 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19175 * gst/vaapi/gstvaapipostproc.c:
19176 vaapipostproc: try to downgrade deinterlace-method when needed.
19177 If the currently selected deinterlacing method is not supported by the
19178 underlying hardware, then try to downgrade the method to a supported one.
19179 At the minimum, basic bob-deinterlacing shall always be supported.
19181 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19183 * gst/vaapi/gstvaapipostproc.c:
19184 vaapipostproc: add initial support for deinterlacing with VPP.
19185 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
19186 this only covers bob-deinterlacing when the output pixel format is
19189 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19191 * gst/vaapi/gstvaapipostproc.c:
19192 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
19193 The size argument for GstBaseTransform::transform_size() hook is a
19194 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
19196 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19198 * gst/vaapi/gstvaapipostproc.c:
19199 * gst/vaapi/gstvaapipostproc.h:
19200 vaapipostproc: add initial support for scaling.
19201 Add initial support for basic scaling with size specified through the
19202 "width" and "height" properties. If either user-provided dimension is
19203 zero and "force-aspect-ratio" is set to true (the default), then the
19204 other dimension is scaled to preserve the aspect ratio.
19206 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19208 * gst/vaapi/gstvaapipostproc.c:
19209 * gst/vaapi/gstvaapipostproc.h:
19210 vaapipostproc: add initial support for color conversion.
19211 If VPP is available, we always try to implicitly convert the source
19212 buffer to the "native" surface format for the underlying accelerator.
19213 This means that no optimization is performed yet to propagate raw YUV
19214 buffers to the downstream element as is, if VPP is available. i.e. it
19215 will always cause a color conversion.
19217 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19219 * gst/vaapi/gstvaapipostproc.c:
19220 vaapipostproc: fix bug when user disabled deinterlacing.
19221 Fix pipeline error / hang when the user disabled deinterlacing through
19222 the deinterlace-mode=disabled property setting.
19224 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19226 * gst/vaapi/gstvaapipostproc.c:
19227 * gst/vaapi/gstvaapipostproc.h:
19228 vaapipostproc: factor out operations to be applied into flags.
19229 Even if we only support deinterlacing for now, use flags to specify
19230 which filters are to be applied to each frame we receive in transform().
19231 This is preparatory work for integrating new filters.
19233 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19235 * gst/vaapi/gstvaapipostproc.c:
19236 * gst/vaapi/gstvaapipostproc.h:
19237 vaapipostproc: add support for raw YUV video source buffers.
19238 Allow video processing from raw YUV buffers coming from the sink pad,
19239 while still producing a VA surface for the downstream elements.
19241 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19243 * gst/vaapi/gstvaapipluginutil.c:
19244 * gst/vaapi/gstvaapipluginutil.h:
19245 * gst/vaapi/gstvaapipostproc.c:
19246 vaapipostproc: add support for "mixed" interlace mode.
19247 Add support for "mixed" interlace-mode, whereby the video frame buffer
19248 shall be deinterlaced only if its flags mention that's actually an
19249 interlaced frame buffer.
19251 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19253 * gst-libs/gst/vaapi/gstcompat.h:
19254 * gst/vaapi/gstvaapipostproc.c:
19255 * gst/vaapi/gstvaapipostproc.h:
19256 * gst/vaapi/gstvaapivideobuffer.c:
19257 * gst/vaapi/gstvaapivideobuffer.h:
19258 vaapipostproc: rework plug-in element.
19259 Rewrite the vaapipostproc plug-in element so that it derives from
19260 GstBaseTransform, thus simplifying the caps negotiation process.
19262 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19264 * gst/vaapi/gstvaapivideobufferpool.c:
19265 * gst/vaapi/gstvaapivideomemory.c:
19266 * gst/vaapi/gstvaapivideomemory.h:
19267 plugins: fix and optimize check for buffer pool allocator params.
19268 Reset the buffer pool allocator only if the config caps changed in a
19269 sensible way: format or resolution change. i.e. don't bother with
19270 other caps like colorimetry et al. as this doesn't affect the way to
19271 allocate VA surfaces or images.
19273 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19275 * gst/vaapi/gstvaapivideomemory.c:
19276 plugins: enable memory maps for read & write with direct-rendering.
19277 Enable read and write mappings only if direct-rendering is supported.
19278 Otherwise, this means that we may need to download data from the VA
19279 surface first for correctness, even if the VA surface doesn't need to
19280 be read at all. i.e. sometimes, READWRITE mappings are meant for
19281 surfaces that are written to first, and read afterwards for further
19283 https://bugzilla.gnome.org/show_bug.cgi?id=704078
19285 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19287 * gst/vaapi/gstvaapivideomemory.c:
19288 plugins: fix check for direct-rendering support.
19289 Fix check for direct-rendering if the creation of VA surfaces with
19290 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
19291 that we tried to allocate a VA surface based on the corresponding
19292 chroma type. i.e. in that particular case, we have to make sure that
19293 the derived image has actually the expected format.
19295 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19297 * gst/vaapi/gstvaapivideobufferpool.c:
19298 * gst/vaapi/gstvaapivideomemory.c:
19299 * gst/vaapi/gstvaapivideomemory.h:
19300 plugins: fix buffer pool reset_buffer() to reset memory resources.
19301 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
19302 memory resources, and more particularly the VA surface proxy. Most
19303 importantly, the GstVaapiVideoMeta is retained. Cached surface in
19304 memory are released, thus triggering a new allocation the next time
19305 we need to map the buffer.
19307 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19309 * gst/vaapi/gstvaapivideomemory.c:
19310 * gst/vaapi/gstvaapivideomemory.h:
19311 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
19312 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
19313 pool stored in the parent VA memory allocator.
19314 This fixes the following scenario:
19315 - VA video buffer 1 is allocated from a buffer pool
19316 - Another video buffer is created, and inherits info from buffer 1
19317 - Buffer 1 is released, thus pushing it back to the buffer pool
19318 - New buffer alloc request comes it, this yields buffer 1 back
19319 - At this stage, buffers 1 and 2 still share the same underlying VA
19320 surface, but buffer 2 was already submitted downstream for further
19321 processing, thus conflicting with additional processing we were
19322 about to perform on buffer 1.
19323 Maybe the core GstBufferPool implementation should have been fixed
19324 instead to actually make sure that the returned GstBuffer memory we
19325 found from the pool is writable?
19327 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19329 * gst/vaapi/gstvaapiuploader.c:
19330 plugins: create a proxy for GstVaapiUploader allocated buffers.
19331 Always make sure to allocate a VA surface proxy for GstVaapiUploader
19332 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
19334 This fixes cases where we want to retain the underlying surface longer,
19335 instead of releasing it back to the surface pool right away.
19337 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19339 * gst/vaapi/gstvaapidecode.c:
19340 * gst/vaapi/gstvaapipluginutil.c:
19341 * gst/vaapi/gstvaapipluginutil.h:
19342 * gst/vaapi/gstvaapipostproc.c:
19343 plugins: add helper function to disable deinterlacing in caps.
19344 Add gst_caps_set_interlaced() helper function that would reset the
19345 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
19346 interlaced field to "false" for GStreamer 0.10.
19348 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19350 * gst-libs/gst/vaapi/gstvaapifilter.c:
19351 filter: fix memory leak of VPP operations.
19352 Fix ensure_operations() to release the VPP operations array if non
19353 NULL, prior to returning to the caller. The former function was also
19354 renamed to a more meaningful get_operations() since the caller owns
19355 the returned array that needs to be released.
19357 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
19359 * gst-libs/gst/vaapi/gstvaapifilter.c:
19360 filter: fix first-time operation lookup.
19361 Fix first-time operation lookup through find_operation() if the set
19362 of supported operations was not initially determined through the
19363 gst_vaapi_filter_get_operations() helper function.
19364 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19366 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
19368 * gst-libs/gst/vaapi/gstvaapifilter.c:
19369 filter: fix colorbalance related subtypes.
19370 Fix intiialization of GstVaapiFilterOpData for colorbalance related
19371 operations. In particular, fill in the va_subtype field accordingly.
19372 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19374 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19376 * gst-libs/gst/vaapi/gstvaapifilter.c:
19377 filter: fix VA-API 0.34.0 symbol guards.
19378 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
19379 that need to be guarded for libva 0.34 and 0.33, respectively.
19380 https://bugzilla.gnome.org/show_bug.cgi?id=709102
19381 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19383 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19385 * gst/vaapi/gstvaapidecode.c:
19386 * gst/vaapi/gstvaapipluginutil.c:
19387 * gst/vaapi/gstvaapisink.c:
19388 plugins: hanle the context query in any pad.
19389 Also this patch simplifies the code, since now the query is common for the
19390 decoder and the sink.
19391 https://bugzilla.gnome.org/show_bug.cgi?id=709200
19393 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19395 * gst/vaapi/gstvaapivideocontext.c:
19396 plugins: query upstream element for a GstContext.
19397 Fix gst_vaapi_video_context_prepare() to also query upstream elements
19398 for a valid GstContext. Improve comments regarding the steps used to
19399 lookup or build that context, thus conforming to the GstContext API
19401 https://bugzilla.gnome.org/show_bug.cgi?id=709112
19402 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19404 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19407 * debian.upstream/control.in:
19408 Fix detection and packaging of GStreamer 1.2.x builds.
19409 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
19410 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
19411 purposes, update the versioning to -1.2 suffix instead.
19413 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19415 * gst/vaapi/Makefile.am:
19416 * gst/vaapi/gstvaapidecode.c:
19417 * gst/vaapi/gstvaapidecode.h:
19418 * gst/vaapi/gstvaapisink.c:
19419 * gst/vaapi/gstvaapivideometa_texture.c:
19420 * gst/vaapi/gstvaapivideometa_texture.h:
19421 plugins: add support for GstVideoGLTextureUploadMeta.
19422 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
19423 requested, and more specifically under a GLX configuration, then add
19424 the GstVideoGLTextureUploadMeta to the output buffer.
19425 https://bugzilla.gnome.org/show_bug.cgi?id=703236
19426 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19428 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19430 * gst/vaapi/gstvaapidecode.c:
19431 * gst/vaapi/gstvaapisink.c:
19432 * gst/vaapi/gstvaapivideomemory.h:
19433 plugins: add support for GstCaps features.
19434 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
19435 as expressed in caps, to the more standard use of caps features. i.e.
19436 add "memory:VASurface" feature attribute to the associated caps.
19437 https://bugzilla.gnome.org/show_bug.cgi?id=703271
19438 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19440 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19442 * gst/vaapi/gstvaapidecode.c:
19443 * gst/vaapi/gstvaapisink.c:
19444 plugins: improve ::query() debugging messages.
19445 Fix gst_vaapidecode_query() to correctly display the query type name,
19446 instead of randomly displaying that we shared the underlying display.
19447 Also add debug info for the GstVaapiSink::query() handler, i.e. the
19448 supplied query type name actually.
19449 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19451 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19453 * gst/vaapi/gstvaapidecode.c:
19454 * gst/vaapi/gstvaapisink.c:
19455 plugins: add support for GstContext API.
19456 Add support for the new GstContext API from GStreamer 1.2.x.
19457 - implement the GstElement::set_context() hook ;
19458 - reply to the `context' query from downstream elements.
19459 https://bugzilla.gnome.org/show_bug.cgi?id=703235
19460 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19462 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19464 * gst/vaapi/Makefile.am:
19465 * gst/vaapi/gstvaapipluginutil.c:
19466 * gst/vaapi/gstvaapivideocontext.c:
19467 * gst/vaapi/gstvaapivideocontext.h:
19468 plugins: add compat layer for GstVideoContext.
19469 Add thin compatibility layer for the deprecated GstVideoContext API.
19470 For GStreamer API >= 1.2, this involves the following two functions:
19471 - gst_vaapi_video_context_prepare(): queries if a context is already
19472 set in the pipeline ;
19473 - gst_vaapi_video_context_propagate(): propagates the newly-created
19474 context to the rest of the pipeline.
19475 https://bugzilla.gnome.org/show_bug.cgi?id=703235
19476 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19478 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19481 * gst/vaapi/Makefile.am:
19482 * gst/vaapi/gstvaapi.c:
19483 * gst/vaapi/gstvaapidecode.c:
19484 * gst/vaapi/gstvaapipluginutil.c:
19485 * gst/vaapi/gstvaapisink.c:
19486 * gst/vaapi/gstvaapivideobuffer.c:
19487 plugins: initial port to GStreamer 1.2.
19488 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
19489 is rather minimalistic so that to test the basic functionality.
19490 Disable vaapipostproc plugin for now as further polishing is needed.
19491 Also disable GstVideoContext interface support since this API is now
19492 gone in 1.2.x. This is preparatory work for GstContext support.
19493 https://bugzilla.gnome.org/show_bug.cgi?id=703235
19494 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19496 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19498 * tests/simple-decoder.c:
19499 tests: simple-decoder: fix for non-X11 backends.
19500 Don't try to create pixmaps if we have not requested that feature. This
19501 fixes execution for non-X11 backends, and most specifically DRM video
19504 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19506 * ext/codecparsers:
19507 codecparsers: update to gst-vaapi-branch commit b33bd32.
19508 b33bd32 jpeg: fix and optimize scan for next marker code
19510 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19512 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19513 jpeg: fix calculation of MCU count.
19514 Fix calculation of MCU count for image sizes that are not a multiple
19515 of 8 pixels in either dimension, but also for non-common sampling
19516 factors like 4:2:2 in non-interleaved mode.
19518 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19520 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19521 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19522 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
19523 jpeg: add support for multiscan images.
19524 Add support for images with multiple scans per frame. The Huffman table
19525 can be updated before SOS, and thus possibly requiring multiple uploads
19526 of Huffman tables to the VA driver. So, the latter must be able to cope
19527 with multiple VA buffers of type 'huffman-table' and with the correct
19530 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19532 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19533 jpeg: improve robustness when packets are missing.
19534 Improve robustness when some expected packets where not received yet
19535 or that were not correctly decoded. For example, don't try to decode
19536 a picture if there was no valid frame headers.
19538 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19540 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19541 jpeg: minor clean-ups.
19542 Improve debugging and error messages. Rename a few variables to fit the
19543 existing naming conventions. Change some fatal asserts to non-fatal
19546 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19548 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19549 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19550 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19551 jpeg: rework and optimize parser.
19552 Split the input buffer data into decoder units that represent a JPEG
19553 segment. Handle scan decoder unit specifically so that it can include
19554 both the scan header (SOS) but also any other ECS or RSTi segment.
19555 That way, we parse the input buffer stream only once at the gst-vaapi
19556 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
19557 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
19558 determine segment boundaries and decode them.
19559 In practice, this is a +15 to +25% performance improvement.
19561 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
19563 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19564 jpeg: handle comment segments.
19565 Fix decode_buffer() function to gracefully skip comment (COM) segments.
19566 This fixes decoding of streams generated by certain cameras, e.g. like
19567 the Logitech Pro C920.
19568 https://bugzilla.gnome.org/show_bug.cgi?id=708208
19569 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
19571 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19573 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19574 jpeg: fix determination of image bounds.
19575 Look for the exact image bounds characterised by the <SOI> and <EOI>
19576 markers. Use the gst_jpeg_parse() codec parser utility function to
19577 optimize the lookup for the next marker segment.
19578 https://bugzilla.gnome.org/show_bug.cgi?id=707447
19580 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
19582 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19583 jpeg: fix calculation of offset to next marker segment.
19584 Fix calculation of the offset to the next marker segment since the
19585 correction of the codecparser part to match the API specification.
19586 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
19587 of the segment minus any marker prefix.
19588 https://bugzilla.gnome.org/show_bug.cgi?id=707447
19589 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
19591 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19593 * ext/codecparsers:
19594 codecparsers: update to gst-vaapi-branch commit 23c7dde.
19595 23c7dde jpeg: fix calculation of segment size
19597 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19600 Bump version for development.
19602 === release 0.5.6 ===
19604 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19610 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19615 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
19618 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
19619 configure: fix detection of VA/JPEG decoding API.
19620 Fix detection of VA/JPEG decoding API with non-standard libva packages.
19621 More precisely, some packages were shipping with a <va/va.h> header that
19622 did not include <va/va_dec_jpeg.h>.
19623 https://bugzilla.gnome.org/show_bug.cgi?id=706055
19624 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19626 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
19628 * gst/vaapi/gstvaapisink.c:
19629 vaapisink: ensure the uploader is setup for upstream allocated buffers.
19630 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
19631 is setup in case upstream elements allocate buffers themselves without
19632 honouring our GstVaapiSink::bufer_alloc() hook.
19633 In particular, this fixes support for OGG video streams with WebKit.
19634 https://bugzilla.gnome.org/show_bug.cgi?id=703934
19635 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19637 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19639 * gst/vaapi/gstvaapisink.c:
19640 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
19641 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
19644 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19646 * gst/vaapi/gstvaapisink.c:
19647 * gst/vaapi/gstvaapisink.h:
19648 vaapisink: handle raw buffers not created from VA video buffer pool.
19649 Handle raw video buffers that were not created from a VA video buffer
19650 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
19651 builds instead of the GstVaapiUploader.
19652 https://bugs.freedesktop.org/show_bug.cgi?id=55818
19654 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19656 * gst/vaapi/gstvaapidecode.c:
19657 vaapidecode: remove extraneous size information from allowed caps.
19658 Fix _getcaps() implementation to not report codecs with size information
19659 filled in the returned caps. That's totally useless nowadays. Ideally,
19660 this is a hint to insert a video parser element, thus allowing future
19661 optimizations, but this is not a strict requirement for gstreamer-vaapi,
19662 which is able to parse the elementary bitstreams itself.
19663 https://bugzilla.gnome.org/show_bug.cgi?id=704734
19665 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
19667 * gst/vaapi/gstvaapidecode.c:
19668 * gst/vaapi/gstvaapidecode.h:
19669 vaapidecode: submit the last frame from output adapter to decoder.
19670 If there is no frame delimiter at the end of the stream, e.g. no
19671 end-of-stream or end-of-sequence marker, and that the current frame
19672 was fully parsed correctly, then assume that last frame is complete
19673 and submit it to the decoder.
19674 https://bugzilla.gnome.org/show_bug.cgi?id=705123
19675 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
19676 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19678 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19680 * gst/vaapi/gstvaapidecode.c:
19681 * gst/vaapi/gstvaapidecode.h:
19682 vaapidecode: push all decoded frames from within the task.
19683 Make sure to push all decoded frames from the task so that the unlying
19684 VA surfaces could all be rendered from the same thread.
19686 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19688 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19689 wayland: render the raw surface if VPP failed.
19690 As a last resort, if video processing capabilities (VPP) are not available,
19691 or they did not produce anything conclusive enough, then try to fallback to
19692 the original rendering code path whereby the whole VA surface is rendered
19693 as is, no matter of video cropping or deinterlacing requests.
19694 Note: under those conditions, the visual outcome won't be correct but at
19695 least, something gets displayed instead of bailing out.
19697 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19699 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19700 wayland: add supporting for video processing.
19701 Try to use VA/VPP processing capabilities to handle video cropping and
19702 additional rendering flags that may not be directly supported by the
19703 underlying hardware when exposing a suitable Wayland buffer for the
19704 supplied VA surface. e.g. deinterlacing, different color primaries than
19707 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19709 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19710 wayland: add new frame redraw infrastructure.
19711 Update the frame redraw infrastructure with a new FrameState stucture
19712 holds all the necessary information used to display the next pending
19714 While we are at it, delay the sync operation down to when it is actually
19715 needed. That way, we keep performing additional tasks meanwhile.
19717 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19719 * docs/reference/libs/libs-sections.txt:
19720 * gst-libs/gst/vaapi/gstvaapifilter.c:
19721 * gst-libs/gst/vaapi/gstvaapifilter.h:
19722 filter: allow specification of render target regions.
19723 Add support for rendering the source surface to a particular region within
19724 the supplied target surface. The default background color is black.
19726 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19728 * gst/vaapi/gstvaapivideobuffer.c:
19729 decode: fix creation of GLX video buffers for GStreamer 0.10.
19730 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
19731 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
19733 This fixes support for cluttersink with GStreamer 0.10 builds.
19735 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19737 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
19738 mpeg2: disable video cropping as picture_display_extension() is missing.
19739 Disable video cropping in MPEG-2 codec because it is partially implemented
19740 and actually because nobody implements it that way, and the standard spec
19741 does not specify the display process either anyway.
19742 Most notably, there are two possible use cases for sequence_display_extension()
19743 horizontal_display_size & vertical_display_size: (i) guesstimating the
19744 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
19745 in conjunction with picture_display_extension() information.
19746 https://bugzilla.gnome.org/show_bug.cgi?id=704848
19748 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19750 * gst/vaapi/gstvaapisink.c:
19751 * gst/vaapi/gstvaapisink.h:
19752 vaapisink: allow scaling to ignore aspect ratio.
19753 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
19754 which allows you to say that you don't want the sink to respect aspect
19755 ratio. Add the same property to vaapisink.
19756 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
19757 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
19759 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
19761 * gst/vaapi/gstvaapisink.c:
19762 vaapisink: fix memory leak of GstVaapiUploader instance.
19763 Make sure gst_vaapisink_ensure_uploader() checks for the existence
19764 of a former GstVaapiUploader instance prior to forcibly creating a
19766 https://bugzilla.gnome.org/show_bug.cgi?id=703980
19768 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
19770 * gst/vaapi/gstvaapisink.c:
19771 vaapisink: fix get_caps() implementation for GStreamer 1.0.
19772 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
19773 by honouring the filter caps argument. More precisely, this fixes the
19774 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
19775 https://bugzilla.gnome.org/show_bug.cgi?id=705192
19776 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
19777 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19779 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19781 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19782 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
19783 This fixes the following issue:
19784 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
19785 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
19786 'GstVaapiDecoderMpeg4Class'
19787 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
19788 'GstVaapiDecoderMpeg4Class' was here
19789 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
19790 make[5]: Leaving directory
19791 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
19792 https://bugzilla.gnome.org/show_bug.cgi?id=705148
19794 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19796 * tests/test-filter.c:
19797 tests: filter: add support for deinterlacing.
19798 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
19799 deinterlacing filter. However, if --deinterlace option is not set but the
19800 --deinterlace-flags option is set with "top-field-first", then the very
19801 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
19803 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
19805 * tests/test-filter.c:
19806 tests: filter: add support for denoising and sharpening.
19807 Add --denoise option to enable noise reduction with the level specified
19808 as the option value (float). Likewise, add --sharpen option to enable
19810 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19812 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19814 * tests/test-filter.c:
19815 tests: filter: add support for frame cropping.
19816 Add support for frame cropping through the --crop-rect|-c argument.
19817 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
19818 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
19820 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19822 * tests/test-filter.c:
19823 tests: filter: dump supported operations and formats.
19825 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
19827 * tests/Makefile.am:
19828 * tests/test-filter.c:
19829 tests: add initial test for video processing.
19830 Add minimal test case for video processing: scaling and color format
19832 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19834 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
19836 * docs/reference/libs/libs-sections.txt:
19837 * gst-libs/gst/vaapi/gstvaapifilter.c:
19838 * gst-libs/gst/vaapi/gstvaapifilter.h:
19839 * gst-libs/gst/vaapi/gstvaapiutils.c:
19840 * gst-libs/gst/vaapi/gstvaapiutils.h:
19841 * gst/vaapi/gstvaapipostproc.c:
19842 * gst/vaapi/gstvaapipostproc.h:
19843 filter: add initial support for deinterlacing.
19844 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
19845 the selected field from the input surface is kept for the target surface.
19846 Setting gst_vaapi_filter_set_deinterlacing() method argument to
19847 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
19848 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
19849 to libgstvaapi core library.
19850 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19852 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
19854 * docs/reference/libs/libs-sections.txt:
19855 * gst-libs/gst/vaapi/gstvaapifilter.c:
19856 * gst-libs/gst/vaapi/gstvaapifilter.h:
19857 filter: add support for color balance adjustment.
19858 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
19859 and contrast. The respective range for each filter shall be the same as
19860 for the VA display attributes.
19861 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19863 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
19865 * docs/reference/libs/libs-sections.txt:
19866 * gst-libs/gst/vaapi/gstvaapifilter.c:
19867 * gst-libs/gst/vaapi/gstvaapifilter.h:
19868 filter: add support for sharpening.
19869 Sharpening is configured with a float value. The supported range is
19870 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
19872 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19874 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
19876 * docs/reference/libs/libs-sections.txt:
19877 * gst-libs/gst/vaapi/gstvaapifilter.c:
19878 * gst-libs/gst/vaapi/gstvaapifilter.h:
19879 filter: add support for denoising.
19880 Noise reduction is configured with a float value. The supported range
19881 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
19883 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19885 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19887 * docs/reference/libs/libs-sections.txt:
19888 * gst-libs/gst/vaapi/gstvaapifilter.c:
19889 * gst-libs/gst/vaapi/gstvaapifilter.h:
19890 filter: add support for frame cropping.
19891 Frame cropping is defined with a GstVaapiRectangle value. The default
19892 behaviour is to treat the source surface as a whole
19894 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19896 * gst-libs/gst/vaapi/gstvaapifilter.c:
19897 filter: add helper functions.
19898 Add helper functions to ensure an operation VA buffer is allocated to
19899 the right size; that filter caps get parsed and assigned to the right
19900 operation too; and that float parameters are correctly scaled to fit
19901 the reported range from the VA driver.
19903 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19906 * docs/reference/libs/libs-docs.xml.in:
19907 * docs/reference/libs/libs-sections.txt:
19908 * gst-libs/gst/vaapi/Makefile.am:
19909 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19910 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19911 * gst-libs/gst/vaapi/gstvaapifilter.c:
19912 * gst-libs/gst/vaapi/gstvaapifilter.h:
19913 Add initial infrastructure for video processing.
19914 Add initial API for video processing: only scaling and color format
19915 conversion operations are supported.
19917 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19919 * gst-libs/gst/vaapi/video-format.c:
19920 * gst-libs/gst/vaapi/video-format.h:
19921 libs: add gst_vaapi_video_format_from_string() helper.
19922 Add gst_vaapi_video_format_from_string() helper function to convert from
19923 a video format string representation to a suitable GstVideoFormat. This
19924 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
19925 builds, and a proper iteration over all GstVideoFormat string representations
19926 otherwise for earlier GStreamer 0.10.x builds.
19928 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19930 * gst-libs/gst/vaapi/video-format.c:
19931 * gst-libs/gst/vaapi/video-format.h:
19932 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
19933 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
19934 VA fourcc value to a suitable GstVideoFormat.
19936 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19938 * gst-libs/gst/vaapi/gstvaapivalue.c:
19939 * gst-libs/gst/vaapi/gstvaapivalue.h:
19940 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
19941 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
19942 structures as a standard GType. This could be useful to have them
19943 described as a GValue later on.
19945 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19947 * docs/reference/libs/libs-docs.xml.in:
19948 * docs/reference/libs/libs-sections.txt:
19949 * gst-libs/gst/vaapi/Makefile.am:
19950 * gst-libs/gst/vaapi/gstvaapicontext.h:
19951 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19952 libs: drop some public APIs.
19953 Don't expose GstVaapiContext APIs and make them totally private to
19954 libgstvaapi core library. That API would also tend to disappear in
19955 a future revision. Likewise, don't expose GstVaapiDisplayCache API
19956 but keep symbols visible so that the various render backends could
19957 share a common display cache implementation in libgstvaapi.
19958 Try to clean-up the documentation from any stale entry too.
19960 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19964 tests: image: allow creation of images with interleaved patterns.
19965 Add image_generate_full() function to create interleaved color rectangles.
19966 If flags is zero, the whole frame is generated with a unique pattern. If
19967 flags is non-zero, then each field is handled individually.
19969 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19972 tests: image: fix conversion from RGB to YUV.
19973 Fix RGB to YUV conversion to preserve full data range.
19975 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19978 tests: image: try to upload images through vaDeriveImage() too.
19979 On some platforms, vaPutImage() would fail even if it does not involve
19980 color format conversion or scaling, whereas copying raw pixels through
19981 vaDeriveImage() could work instead.
19983 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19986 tests: image: add support for packed YUV formats.
19987 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
19989 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19992 tests: image: fix generation of I420/YV12 images.
19993 U/V planes were reversed, thus producing invalid images.
19995 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19998 tests: image: fix string representation for GstVideoFormat.
20000 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20002 * docs/reference/libs/libs-sections.txt:
20003 * gst-libs/gst/vaapi/Makefile.am:
20004 * gst-libs/gst/vaapi/gstvaapiimage.c:
20005 * gst-libs/gst/vaapi/gstvaapiimage.h:
20006 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
20007 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
20008 * gst-libs/gst/vaapi/gstvaapisurface.c:
20009 image: clean image API up.
20010 Don't expose functions that reference a GstVaapiImageRaw, those are
20011 meant to be internal only for implementing subpictures sync. Also add
20012 a few private definitions to avoid functions calls for retrieving
20013 image size and format information.
20015 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20017 * docs/reference/libs/libs-sections.txt:
20018 * gst-libs/gst/vaapi/gstvaapiimage.c:
20019 * gst-libs/gst/vaapi/gstvaapiimage.h:
20020 image: add gst_vaapi_image_copy() helper.
20021 Add gst_vaapi_image_copy() helper function to copy images of same format
20024 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20026 * gst/vaapi/gstvaapivideoconverter_x11.c:
20027 plugins: handle video cropping in X11 pixmap converter.
20028 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
20029 we could decode from the stream.
20031 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20033 * gst/vaapi/Makefile.am:
20034 * gst/vaapi/gstvaapivideobuffer.c:
20035 * gst/vaapi/gstvaapivideoconverter_glx.c:
20036 * gst/vaapi/gstvaapivideoconverter_x11.c:
20037 * gst/vaapi/gstvaapivideoconverter_x11.h:
20038 plugins: add support for "x11-pixmap" video converter type.
20039 Install a new video converter that supports X11 pixmap targets for X11
20040 backends only, or make the GLX converter creation function chain up to
20041 the X11 converter whenever requested.
20043 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20045 * tests/simple-decoder.c:
20046 tests: simple-decoder: add support for pixmap API.
20047 Add support for the new render-to-pixmap API. Avoid flickering on
20048 platforms supporting video overlay by keeping up to 2 intermediate
20051 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20053 * tests/simple-decoder.c:
20054 tests: simple-decoder: add support for video cropping.
20055 Handle video cropping information attached to a VA surface proxy.
20057 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20061 * tests/test-decode.c:
20062 tests: add support for render-to-pixmap.
20063 Add --pixmap option to test-decode so that to allow copies of VA
20064 surface to an intermediate pixmap and rendering from that pixmap.
20065 Only X11 backends are supported for now.
20067 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20070 * gst-libs/gst/vaapi/Makefile.am:
20071 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20072 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
20073 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20074 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20075 x11: implement pixmap rendering with RENDER extension.
20076 Use hardware accelerated XRenderComposite() function, from the RENDER
20077 extension, to blit a pixmap to screen. Besides, this can also support
20078 cropping and scaling.
20080 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20082 * docs/reference/libs/libs-docs.xml.in:
20083 * docs/reference/libs/libs-sections.txt:
20084 * gst-libs/gst/vaapi/Makefile.am:
20085 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20086 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
20087 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
20088 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
20089 x11: implement pixmap API.
20090 Implement the new render-to-pixmap API. The only supported pixmap format
20091 that will work is xRGB, with native byte ordering. Others might work but
20092 they were not tested.
20094 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20096 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
20097 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
20098 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20099 x11: update x11_get_geometry() helper function with depth output.
20100 Allow x11_get_geometry() utility function to also return the depth
20101 assigned to the X drawable.
20103 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20105 * docs/reference/libs/libs-docs.xml.in:
20106 * docs/reference/libs/libs-sections.txt:
20107 * gst-libs/gst/vaapi/Makefile.am:
20108 * gst-libs/gst/vaapi/gstvaapipixmap.c:
20109 * gst-libs/gst/vaapi/gstvaapipixmap.h:
20110 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
20111 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20112 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20113 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20114 Add initial Pixmap API.
20115 Add API to transfer VA urfaces to native pixmaps. Also add an API to
20116 render a native pixmap, for completeness. In general, rendering to
20117 pixmap would only be useful to certain VA drivers and use cases on
20118 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
20121 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20123 * docs/reference/libs/libs-sections.txt:
20124 * gst-libs/gst/vaapi/gstvaapiimage.c:
20125 * gst-libs/gst/vaapi/gstvaapisurface.c:
20126 * gst-libs/gst/vaapi/video-format.c:
20127 * gst-libs/gst/vaapi/video-format.h:
20128 libs: add and expose gst_vaapi_video_format_to_string() helper.
20129 This is just a wrapper over gst_video_format_to_string() for older
20130 GStreamer 0.10 builds.
20132 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
20134 * gst/vaapi/gstvaapipluginutil.c:
20135 plugins: fix display type comparison in gst_vaapi_create_display().
20136 After the code got moved to create the gst_vaapi_create_display() helper,
20137 this comparison was not updated to dereference the newly-created
20138 pointer, so the code was comparing the pointer itself to the type, and
20139 therefore failing to retrieve the VA display.
20140 This fixes the following error (and gets gst-vaapi decoding again):
20141 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
20142 https://bugzilla.gnome.org/show_bug.cgi?id=704410
20143 Signed-off-by: Emilio López <emilio@elopez.com.ar>
20145 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20148 Bump version for development.
20150 === release 0.5.5 ===
20152 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20154 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20155 mpeg2: don't output dummy pictures.
20156 Mark dummy pictures as output already so that we don't try to submit
20157 them to the upper layer since this is purely internal / temporary
20158 picture for helping the decoder.
20160 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20162 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20163 decoder: dispose GstVideoCodecFrame earlier.
20164 Once the picture was output, it is no longer necessary to keep an extra
20165 reference to the underlying GstVideoCodecFrame. So, we can release it
20166 earlier, and maybe subsequently release the associate surface proxy
20169 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20175 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20177 * docs/reference/libs/libs-sections.txt:
20178 * gst-libs/gst/vaapi/Makefile.am:
20179 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20180 * gst-libs/gst/vaapi/gstvaapiimage.c:
20181 * gst-libs/gst/vaapi/gstvaapisurface.c:
20182 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
20183 * gst-libs/gst/vaapi/video-format.c:
20184 * gst-libs/gst/vaapi/video-format.h:
20185 * gst/vaapi/gstvaapidownload.c:
20186 * gst/vaapi/gstvaapiuploader.c:
20188 * tests/test-display.c:
20189 Fix new video format API.
20190 Fix new internal video format API, based on GstVideoFormat, to not
20191 clobber with system symbols. So replace the gst_video_format_* prefix
20192 with gst_vaapi_video_format_ prefix, even if the format type remains
20195 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20198 Bump library major version.
20199 Bump the library major version due to API/ABI changes that occurred in
20200 the imaging API. In particular, GstVaapiImageFormat type was replaced
20201 with the standard GstVideoFormat type. All dependent APIs were updated
20202 to match this change.
20204 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20209 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20211 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20212 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20213 decoder: fix memory leak when processing interlaced pictures.
20214 Fix memory leak when processing interlaced pictures and that occurs
20215 because the first field, represented as a GstVideoCodecFrame, never
20216 gets released. i.e. when the picture is completed, this is generally
20217 the case when the second field is successfully decoded, we need to
20218 propagate the GstVideoCodecFrame of the first field to the original
20219 GstVideoDecoder so that it could reclaim memory.
20220 Otherwise, we keep accumulating the first fields into GstVideoDecoder
20221 private frames list until the end-of-stream is reached. The frames
20222 are eventually released there, but too late, i.e. too much memory
20223 may have been consumed.
20224 https://bugzilla.gnome.org/show_bug.cgi?id=701257
20226 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20228 * gst/vaapi/gstvaapipluginutil.c:
20229 plugins: simlpify gst_vaapi_create_display() helper.
20230 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
20231 performs the necessary validation checks for the underlying VA display
20232 prior to returning to the caller. So, if an error occurred, then NULL is
20233 really returned in that case.
20235 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
20237 * gst/vaapi/gstvaapipluginutil.c:
20238 plugins: add gst_vaapi_create_display() helper.
20239 https://bugzilla.gnome.org/show_bug.cgi?id=703235
20240 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20242 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20244 * gst/vaapi/gstvaapivideobufferpool.c:
20245 plugins: don't reallocate pool allocator for the same caps.
20246 If the video buffer pool config doesn't have new caps, then it's not
20247 necessary to reinstantiate the allocator. That could be a costly
20248 operation as we could do some extra heavy checking in there.
20250 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20252 * gst/vaapi/gstvaapivideomemory.c:
20253 plugins: fix ref counting of GstVaapiVideoMemory allocator.
20254 Fix reference counting issue whereby gst_memory_init() does not hold
20255 an extra reference to the GstAllocator. So, there could be situations
20256 where the last instance of GstVaapiVideoAllocator gets released before
20257 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
20259 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20261 * gst/vaapi/gstvaapiuploader.c:
20262 vaapiupload: use implicit color conversion to NV12.
20263 Always perform conversion of sources buffers to NV12 since this is
20264 the way we tested for this capability in ensure_allowed_caps(). This
20265 also saves memory bandwidth for further rendering. However, this may
20266 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
20268 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20270 * gst-libs/gst/vaapi/gstvaapivideopool.c:
20271 pool: fix deallocation of video pools.
20272 The queue of free objects to used was deallocated with g_queue_free_full().
20273 However, this convenience function shall only be used if the original queue
20274 was allocated with g_queue_new(). This caused memory corruption, eventually
20275 leading to a crash.
20276 The correct solution is to pair the g_queue_init() with the corresponding
20277 g_queue_clear(), while iterating over all free objects to deallocate them.
20279 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
20281 * gst/vaapi/gstvaapidownload.c:
20282 vaapidownload: fix src caps format error.
20283 This fixes direct linking of vaapidownload element to xvimagesink with
20284 VA drivers supporting vaGetImage() from the native VA surface format to
20285 a different VA image format. i.e. color conversion during download.
20286 http://bugzilla.gnome.org/show_bug.cgi?id=703937
20287 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20289 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20291 * gst/vaapi/gstvaapidownload.c:
20292 vaapidownload: fix debug string for image formats.
20293 The image is now expressed as a standard GstVideoFormat, which is not
20294 a FOURCC but rather a regular enum value.
20295 This is a regression introduced in commit 09397fa.
20297 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
20299 * gst-libs/gst/vaapi/gstvaapiimage.c:
20300 image: add support for raw YUY2/UYVY image copies.
20301 Implement raw image copies for YUY2 format. Add support for UYVY format
20302 too, with the same copy function as for YUY2. Even though components
20303 ordering differs, copying line strides is essentially the same.
20304 https://bugzilla.gnome.org/show_bug.cgi?id=703939
20305 https://bugzilla.gnome.org/show_bug.cgi?id=703940
20306 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20308 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20310 * gst/vaapi/gstvaapiuploader.c:
20311 plugins: clean-up video uploader helper.
20312 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
20313 were already negotiated beforehand, and they are not used from the
20314 buffer in upstream elements.
20315 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
20316 represented as a GstVideoInfo.
20318 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20320 * gst/vaapi/gstvaapiuploader.c:
20321 plugins: use GstVideoInfo in video uploader helper.
20323 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20325 * gst/vaapi/gstvaapivideomemory.c:
20326 plugins: allow creation of VA surfaces with explicit pixel format.
20327 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
20328 with an explicit pixel format. This allows for direct rendering to
20329 VA surface memory from a software decoder.
20331 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20333 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
20334 surface: fix surface pool creation with an explicit pixel format.
20335 Fix creation of surface pool objects to honour explicit pixel format
20336 specification. If this operation is not supported, then fallback to
20337 the older interface with chroma format.
20339 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20341 * gst-libs/gst/vaapi/gstvaapisurface.c:
20342 surface: try to determine the underlying VA surface format.
20343 If a VA surface was allocated with the chroma-format interface, try to
20344 determine the underlying pixel format on gst_vaapi_surface_get_format(),
20345 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
20347 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20349 * docs/reference/libs/libs-sections.txt:
20350 * gst-libs/gst/vaapi/gstvaapisurface.c:
20351 * gst-libs/gst/vaapi/gstvaapisurface.h:
20352 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
20353 surface: allow creation with explicit pixel format.
20354 Make it possible to create VA surfaces with a specific pixel format.
20355 This is a new capability brought in by VA-API >= 0.34.0. If that
20356 capability is not built-in (e.g. using VA-API < 0.34.0), then
20357 gst_vaapi_surface_new_with_format() will return NULL.
20359 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20361 * docs/reference/libs/libs-sections.txt:
20362 * gst-libs/gst/vaapi/video-format.c:
20363 * gst-libs/gst/vaapi/video-format.h:
20364 surface: add helper function to get chroma type from GstVideoFormat.
20365 Add gst_video_format_get_chroma_type() helper function to determine
20366 the GstVaapiChromaType from a standard GStreamer video format. It is
20367 possible to reconstruct that from GstVideoFormatInfo but it is much
20368 simpler (and faster?) to use the local GstVideoFormatMap table.
20370 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20372 * gst-libs/gst/vaapi/gstvaapisurface.c:
20373 * gst-libs/gst/vaapi/gstvaapisurface.h:
20374 * gst-libs/gst/vaapi/gstvaapiutils.c:
20375 * gst-libs/gst/vaapi/gstvaapiutils.h:
20376 surface: add new chroma formats.
20377 Add new chroma formats available with VA-API >= 0.34.0. In particular,
20378 this includes "RGB" chroma formats, and more YUV subsampled formats.
20379 Also add a new from_GstVaapiChromaType() helper function to convert
20380 libgstvaapi chroma type to VA chroma format.
20382 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20384 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
20385 pool: fix image pool to check for the video format to use.
20386 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
20387 image pool object, only if the underlying VA display does support the
20388 requested VA image format.
20390 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20392 * gst-libs/gst/vaapi/gstvaapicontext.c:
20393 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
20394 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
20395 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
20396 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
20397 * gst-libs/gst/vaapi/gstvaapivideopool.h:
20398 * gst/vaapi/gstvaapidownload.c:
20399 * gst/vaapi/gstvaapiuploader.c:
20400 * tests/Makefile.am:
20401 * tests/test-surfaces.c:
20402 Use GstVideoInfo for video pools.
20403 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
20404 structures instead. Those are smaller, and allows for streamlining
20407 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20409 * gst-libs/gst/vaapi/gstvaapiimage.c:
20410 * gst-libs/gst/vaapi/video-format.c:
20411 Add more video formats.
20412 Add new video format mappings to VA image formats:
20413 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
20414 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
20416 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20418 * gst-libs/gst/vaapi/gstvaapiimage.c:
20419 image: fix debug message with video format.
20420 Fix debug message string with image format expressed with GstVideoFormat
20421 instead of the obsolete format that turned out to be a fourcc.
20422 This is a regression from git commit e61c5fc.
20424 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20428 * tests/test-display.c:
20429 * tests/test-textures.c:
20430 * tests/test-windows.c:
20431 tests: port to new video format API.
20433 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20435 * gst/vaapi/gstvaapidownload.c:
20436 * gst/vaapi/gstvaapiuploader.c:
20437 * gst/vaapi/gstvaapivideomemory.c:
20438 plugins: port to new video format API.
20440 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20442 * gst-libs/gst/vaapi/gstvaapiimage.c:
20443 libs: use GstVideoInfo wherever possible.
20444 In particular, use gst_video_info_from_caps() helper function in VA image
20445 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
20446 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
20448 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20450 * docs/reference/libs/libs-docs.xml.in:
20451 * docs/reference/libs/libs-sections.txt:
20452 * gst-libs/gst/vaapi/Makefile.am:
20453 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
20454 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
20455 libs: drop GstVaapiImageFormat helpers.
20456 Drop GstVaapiImageFormat helpers since everything was moved to the new
20457 GstVideoFormat based API. Don't bother with backwards compatibility and
20458 just bump the library major version afterwards.
20460 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20462 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20463 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20464 * gst-libs/gst/vaapi/gstvaapiimage.c:
20465 * gst-libs/gst/vaapi/gstvaapiimage.h:
20466 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
20467 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
20468 libs: port to new video format API.
20470 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20472 * docs/reference/libs/libs-docs.xml.in:
20473 * docs/reference/libs/libs-sections.txt:
20474 * gst-libs/gst/vaapi/Makefile.am:
20475 * gst-libs/gst/vaapi/video-format.c:
20476 * gst-libs/gst/vaapi/video-format.h:
20477 Add new video format API.
20478 Leverage GstVideoFormat utilities from core GStreamer to provide an
20479 adaptation layer to VA image formats.
20481 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20486 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20488 * gst/vaapi/gstvaapisink.c:
20489 vaapisink: fix creation of GLX texture.
20490 Fix creation of GLX texture, to not depend on the GstCaps video size that
20491 could be wrong, especially in presence of frame cropping. So, use the size
20492 from the source VA surfaces.
20493 An optimization could be to reduce the texture size to the actual visible
20494 size on screen. i.e. scale down the texture size to match the screen dimensions,
20495 while preserving the VA surface aspect ratio. However, some VA drivers don't
20498 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20500 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20501 mpeg2: add support for video cropping.
20502 If the stream has a sequence_display_extenion, then attach the
20503 display_horizontal/display_vertical dimension as the cropping
20504 rectangle width/height to the GstVaapiPicture.
20505 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20507 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20509 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
20510 vc1: add support for video cropping.
20511 If the Advanced profile has display_extension fields, then set the display
20512 width/height dimension as cropping rectangle to the GstVaapiPicture.
20513 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20515 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20517 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20518 h264: add support for video cropping.
20519 If the encoded stream has the frame_cropping_flag set, then associate
20520 the cropping rectangle to GstVaapiPicture.
20521 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20523 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20527 * tests/test-decode.c:
20528 * tests/test-subpicture.c:
20529 tests: add basic support for video cropping.
20530 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
20531 instead of a plain GstVaapiSurface. This means that we can now retrieve
20532 the frame cropping rectangle from the surface proxy, along with additional
20533 information if ever needed.
20535 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20537 * gst/vaapi/gstvaapidecode.c:
20538 * gst/vaapi/gstvaapisink.c:
20539 * gst/vaapi/gstvaapivideometa.c:
20540 plugins: add support for video cropping.
20541 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
20542 specific meta information to hold video cropping details. Make the sink
20543 support video cropping in X11 and GLX modes.
20545 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20547 * gst/vaapi/gstvaapivideometa.c:
20548 * gst/vaapi/gstvaapivideometa.h:
20549 plugins: add helper functions to set the render rectangle.
20550 Some video clips may have a clipping region that needs to propogate to
20551 the renderer. These helper functions make it possible to attach that
20552 clipping region, as a GstVaapiRectangle, the the video meta associated
20554 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20555 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20557 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20559 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20560 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20561 surfaceproxy: allow for NULL cropping rectangle.
20562 Make it possible associate an empty cropping rectangle to the surface
20563 proxy, thus resetting any cropping rectangle that was previously set.
20564 This allows for returning plain NULL when no cropping rectangle was
20565 initially set up to the surface proxy, or if it was reset to defaults.
20567 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20569 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20570 surfaceproxy: clean-up helper macros.
20571 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
20572 proxy macro argument to a GstVaapiSurfaceProxy pointer.
20574 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20576 * gst-libs/gst/vaapi/gstvaapisurface.c:
20577 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
20578 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20579 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20580 surface: add simple surface info accessors as helper macros.
20581 Add helper macros to retrieve the VA surface information like size
20582 (width, height) or chroma type. This is a micro-optimization to avoid
20583 useless function calls and NULL pointer re-checks in internal routines.
20585 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20587 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20588 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20589 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20590 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20591 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20592 decoder: add support for video cropping.
20593 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
20594 cropping information from raw bitstreams to each picture being decoded.
20595 Also add helper function to surface proxy to propagate that information
20596 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
20597 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20598 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20600 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20602 * ext/codecparsers:
20603 codecparsers: update to gst-vaapi-branch commit f90de0a.
20604 f90de0a h264: fix calculation of the frame cropping rectangle
20605 535515c h264: parse the cropping rectangle separately
20607 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20609 * ext/codecparsers:
20610 codecparsers: update to gst-vaapi-branch commit 0f68a71.
20611 0f68a71 mpeg2: fix video packet header size checks
20613 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
20615 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20616 mpeg2: reset quantization matrices on new sequence headers.
20617 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
20618 shall be reset to their default values when a Sequence_Header() is
20620 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20622 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20625 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20626 mpeg2: cope with latest codecparser changes.
20627 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
20628 used in individual header parsers. Also use the new slice parsing API.
20630 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20632 * ext/codecparsers:
20633 codecparsers: update to gst-vaapi-branch commit dddd182.
20634 dddd182 mpeg2: add slice header parsing API
20635 94e6228 mpeg2: add sequence scalable extension parsing API
20636 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
20637 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
20639 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20641 * gst/vaapi/gstvaapisink.c:
20642 vaapisink: expose the raw video formats in static caps template.
20643 Expose all raw video formats in the static caps template since the
20644 vaapisink is supporting raw data. We will get the exact set of formats
20645 supported by the driver dynamically through the _get_caps() routine.
20646 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
20647 https://bugzilla.gnome.org/show_bug.cgi?id=702178
20648 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20650 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20652 * gst/vaapi/gstvaapisink.c:
20653 * gst/vaapi/gstvaapisink.h:
20654 vaapisink: add "use-glx" property for OpenGL rendering.
20655 Now that VA/GLX capable buffers are generated by default on X11, thus
20656 depending on a VA/GLX display, we stil want to use vaPutSurface() for
20657 rendering since it is faster.
20658 Anyway, OpenGL rendering in vaapisink was only meant for testing and
20659 enabling "fancy" effects to play with. This has no real value. So,
20660 disable OpenGL rendering by default.
20662 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
20664 * gst/vaapi/gstvaapipluginutil.c:
20665 plugins: try to allocate a GLX display first over an X11 one.
20666 If the gstreamer-vaapi plug-in elements are built with GLX support, then
20667 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
20669 https://bugzilla.gnome.org/show_bug.cgi?id=701742
20671 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
20674 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
20675 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
20676 https://bugzilla.gnome.org/show_bug.cgi?id=698858
20677 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20679 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
20681 * gst-libs/gst/vaapi/gstvaapiimage.c:
20682 image: fix wrong check for rect bounds in copy_image().
20684 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20687 Bump version for development.
20689 === release 0.5.4 ===
20691 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20697 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20702 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20705 * gst-libs/gst/codecparsers/Makefile.am:
20706 configure: always build the MPEG-4 parser.
20707 Always build the MPEG-4 parser for now as there are also core fixes
20708 included in the parser that cannot be tested for with API checks.
20710 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20713 configure: add --enable-builtin-codecparsers [default="yes"] option.
20714 Add flag to have all codecparsers built-in, thus ensuring that the
20715 resulting binaries have all the necessary bug fixes and this is what
20716 the QA has been testing anyway.
20717 Of course, for a completely up-to-date Linux distribution, you could
20718 also opt for --disable-builtin-codecparsers and use the system ones.
20719 Though, some core fixes could be missing, and those cannot be tested
20720 for with API checks.
20722 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20724 * ext/codecparsers:
20725 codecparsers: update to gst-vaapi-branch commit 843ce3e.
20726 843ce3e jpeg: fix default Huffman tables generation.
20727 8655187 mpeg2: fix the pixel-aspect-ratio calculation
20728 21099dc mpeg2: actually store video bitrate values
20729 dd02087 mpeg2: fix picture packet extension size check
20730 25948e9 mpeg2: increase min size for picture coding ext
20731 f1f5a40 ensure the debug category is properly initialized
20733 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20735 * debian.upstream/Makefile.am:
20736 debian: fix list of generated files for .deb packaging.
20738 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20741 * debian.upstream/Makefile.am:
20742 * debian.upstream/control.in:
20743 debian: fix libgstvaapi -dev package name.
20744 Fix libgstvaapi -dev package name so that to allow installation of both
20745 GStreamer 0.10 and 1.0.x based packages.
20747 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20752 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20754 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
20755 wayland: fix memory leak of display resources.
20757 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
20759 * gst/vaapi/gstvaapisink.c:
20760 vaapisink: fix build without VA/GLX support.
20762 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20764 * gst/vaapi/gstvaapivideomemory.c:
20765 * gst/vaapi/gstvaapivideomemory.h:
20766 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
20767 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
20768 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
20769 caller. This is the only sensible enough thing to do in this mode as
20770 the underlying surface pixels need to be extracted through an explicit
20771 call to the gst_video_frame_map() function instead.
20772 A possible use-case of this is to implement a "handoff" signal handler
20773 to fakesink or identity element for further processing.
20775 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20777 * gst/vaapi/gstvaapivideomemory.c:
20778 plugins: silence check for direct-rendering mode in video memory.
20779 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
20780 mode support, and not trigger fatal-criticals if either test surface or
20781 image could not be created. Typical case: pixel format mismatch, e.g. NV12
20782 supported by most hardware vs. I420 supported by most software decoders.
20784 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20786 * gst/vaapi/gstvaapivideomemory.c:
20787 plugins: improve video memory flags safety checks.
20788 On map, ensure we have GST_MAP_WRITE flags since this is only what we
20789 support for now. Likewise, on unmap, make sure that the VA image is
20790 unmapped for either read or write, while still committing it to the
20791 VA surface if write was requested.
20793 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20795 * gst-libs/gst/vaapi/gstvaapisurface.c:
20796 surface: fix memory leak through unreleased parent context.
20797 Break the circular references between GstVaapiContext and its children
20798 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
20799 context, which holds a reference to its VA surfaces, then none of those
20801 How does this impact support for subpictures?
20802 The only situation when the parent context needs to disappear is when
20803 it is replaced with another one because of a resolution change in the
20804 video stream for instance, or a normal destroy. In this case, it does
20805 not really matter to apply subpictures to the peer surfaces since they
20806 are either gone, or those that are left in the pipe can probably bear
20807 a reinstantiation of the subpictures for it.
20808 So, parent_context is set to NULL when the parent context is destroyed,
20809 other VA surfaces can still get subpictures attached to them, individually
20810 not as a whole. i.e. subpictures for surface S1 will be created from
20811 active composition buffers and associated to S1, subpictures for S2 will
20812 be created from the next active composition buffers, etc. We don't try
20813 to cache the subpictures in those cases (pending surfaces until EOS
20814 is reached, or pending surfaces until new surfaces matching new VA context
20815 get to be used instead).
20817 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20819 * gst/vaapi/gstvaapisink.c:
20820 vaapisink: fix one-time initialization when display property is set.
20821 Fix gst_vaapisink_ensure_display() to perform one-time initialization
20822 tasks even if the `display' property was explicitly set.
20824 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20826 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20827 window: fix GLX window initialization.
20828 Make sure to create the GLX context once the window object has completed
20829 its creation. Since gl_resize() relies on the newly created window size,
20830 then we cannot simply overload the GstVaapiWindowClass::create() hook.
20831 So, we just call into gst_vaapi_window_glx_ensure_context() once the
20832 window object is created in the gst_vaapi_window_glx_new*() functions.
20834 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20836 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20837 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
20838 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
20839 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20840 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
20841 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
20842 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20843 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
20844 * gst-libs/gst/vaapi/gstvaapitexture.c:
20845 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20846 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20847 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20848 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20849 display: validate display types.
20851 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20853 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20854 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
20855 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20856 display: drop internal NAME_PREFIX, store the real display name.
20857 Always store a valid display name/device path, instead of adding a
20858 particular prefix. i.e. make it simply a strdup(), or "" if it was
20861 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20863 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20864 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
20865 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20866 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
20867 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20868 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
20869 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
20870 display: make it possible to lookup the display cache by type.
20871 Make it possible to add extra an extra filter to most of display cache
20872 lookup functions so that the GstVaapiDisplay instance can really match
20873 a compatible and existing display by type, instead of relying on extra
20874 string tags (e.g. "X11:" prefix, etc.).
20876 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20878 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20879 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
20880 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20881 display: cope with new display cache API.
20883 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20885 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
20886 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
20887 display: rework display cache API.
20888 Simplify display cache API, while making it more flexible. We can now create
20889 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
20891 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20893 * tests/test-display.c:
20894 tests: improve check for display cache.
20895 Improve check for display cache infrastructure. In particular, for X11 and
20896 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
20897 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
20898 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
20899 already exists will have to generate different VA displays.
20901 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
20903 * gst/vaapi/gstvaapiuploader.c:
20904 uploader: fix memory leak in GStreamer 0.10 builds.
20905 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
20906 but it exhibited a memory leak because the surface generated for the
20907 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
20908 possible to release that surface back to the parent pool when the meta
20909 gets released, and the memory consumption kept growing.
20910 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20912 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20914 * gst/vaapi/gstvaapivideometa.c:
20915 plugins: fix gst_vaapi_video_meta_new_from_pool().
20916 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
20917 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
20918 was hereby totally broken. Fixed this regression by using the newly
20919 provided gst_vaapi_video_pool_get_object_type() function.
20921 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20923 * gst/vaapi/gstvaapiuploader.c:
20924 * gst/vaapi/gstvaapivideomemory.c:
20925 * gst/vaapi/gstvaapivideometa.c:
20926 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
20928 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20931 tests: cope with GST_VAAPI_IS_xxx() macros removal.
20933 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20935 * docs/reference/libs/libs-sections.txt:
20936 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
20937 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
20938 * gst-libs/gst/vaapi/gstvaapivideopool.c:
20939 * gst-libs/gst/vaapi/gstvaapivideopool.h:
20940 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
20941 libs: add query for GstVaapiVideoPool object types.
20942 Add API to identify the underlying GstVaapiVideoPool object type.
20944 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20946 * docs/reference/libs/libs-sections.txt:
20947 * gst-libs/gst/vaapi/gstvaapicontext.c:
20948 * gst-libs/gst/vaapi/gstvaapicontext.h:
20949 * gst-libs/gst/vaapi/gstvaapidecoder.c:
20950 * gst-libs/gst/vaapi/gstvaapidecoder.h:
20951 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20952 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20953 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20954 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
20955 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
20956 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
20957 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
20958 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20959 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
20960 * gst-libs/gst/vaapi/gstvaapiimage.c:
20961 * gst-libs/gst/vaapi/gstvaapiimage.h:
20962 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
20963 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
20964 * gst-libs/gst/vaapi/gstvaapiobject.c:
20965 * gst-libs/gst/vaapi/gstvaapiobject.h:
20966 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
20967 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
20968 * gst-libs/gst/vaapi/gstvaapisurface.c:
20969 * gst-libs/gst/vaapi/gstvaapisurface.h:
20970 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
20971 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
20972 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20973 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20974 * gst-libs/gst/vaapi/gstvaapitexture.c:
20975 * gst-libs/gst/vaapi/gstvaapivideopool.c:
20976 * gst-libs/gst/vaapi/gstvaapivideopool.h:
20977 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20978 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20979 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20980 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20981 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20982 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20983 libs: drop GST_VAAPI_IS_xxx() helper macros.
20984 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
20985 deriving from GObject and so those were only checking for whether the
20986 argument was NULL or not. This is now irrelevant, and even confusing
20987 to some extent, because we no longer have type checking.
20988 Note: this incurs more type checking (review) but the libgstvaapi is
20989 rather small, so this is manageable.
20991 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20994 Bump library major version.
20995 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
20996 This is a fundamental change that requires a new SONAME. More changes are
20997 underway to streamline the core libraries.
20998 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
20999 On one particular test (sintel HD trailer), the total number of executed
21000 instruction was reduced by 8%.
21002 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21004 * docs/reference/libs/Makefile.am:
21005 * docs/reference/libs/libs-docs.xml.in:
21006 * docs/reference/libs/libs-sections.txt:
21007 * docs/reference/libs/libs.core.types:
21008 * docs/reference/libs/libs.glx.types:
21009 * docs/reference/libs/libs.x11.types:
21010 docs: cope with removed APIs.
21011 Some APIs are dead because they are no longer based on GObject.
21013 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21015 * gst/vaapi/gstvaapidecode.c:
21016 * gst/vaapi/gstvaapidownload.c:
21017 * gst/vaapi/gstvaapipluginutil.c:
21018 * gst/vaapi/gstvaapipostproc.c:
21019 * gst/vaapi/gstvaapisink.c:
21020 * gst/vaapi/gstvaapiupload.c:
21021 * gst/vaapi/gstvaapiuploader.c:
21022 * gst/vaapi/gstvaapivideobufferpool.c:
21023 * gst/vaapi/gstvaapivideoconverter_glx.c:
21024 * gst/vaapi/gstvaapivideomemory.c:
21025 * gst/vaapi/gstvaapivideometa.c:
21026 plugins: cope with new GstVaapiMiniObject objects.
21028 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21033 * tests/simple-decoder.c:
21034 * tests/test-decode.c:
21035 * tests/test-display.c:
21036 * tests/test-subpicture.c:
21037 * tests/test-surfaces.c:
21038 * tests/test-textures.c:
21039 * tests/test-windows.c:
21040 tests: cope with new GstVaapiMiniObject objects.
21042 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21044 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
21045 display: fix set_synchronous() to lock display.
21047 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21049 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
21050 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
21051 videopool: simplify creation of video objects pool.
21053 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21055 * gst-libs/gst/vaapi/gstvaapiobject.c:
21056 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21057 * gst-libs/gst/vaapi/gstvaapitypes.h:
21058 libs: simplify GstVaapiID definitions.
21059 Make GstVaapiID a gsize instead of guessing an underlying integer large
21060 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
21061 this is plain zero and that it is no longer passed as varargs.
21063 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21065 * gst-libs/gst/vaapi/Makefile.am:
21066 * gst-libs/gst/vaapi/gstvaapi_priv.h:
21067 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
21068 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
21069 * gst-libs/gst/vaapi/gstvaapivalue.c:
21070 * gst-libs/gst/vaapi/gstvaapivalue.h:
21071 libs: drop obsolete function helpers and objects.
21072 Drop obsolete GstVaapiID related function helpers for passing them as
21075 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21077 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21078 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21079 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21080 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
21081 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
21082 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
21083 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
21084 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
21085 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
21086 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21087 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21088 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
21089 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
21090 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
21091 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
21092 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
21093 * gst-libs/gst/vaapi/gstvaapiobject.c:
21094 * gst-libs/gst/vaapi/gstvaapivideopool.c:
21095 libs: use GstVaapiMiniObject for display objects.
21097 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21099 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21100 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21101 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21102 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21103 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21104 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21105 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
21106 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21107 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
21108 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21109 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
21110 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21111 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21112 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21113 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
21114 libs: use GstVaapiMiniObject for video decoders.
21115 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
21116 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
21117 helper function to let the user add a callback to a function triggered
21118 whenever the codec state (e.g. caps) changes.
21120 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21122 * docs/reference/libs/libs-sections.txt:
21123 * gst-libs/gst/vaapi/Makefile.am:
21124 * gst-libs/gst/vaapi/gstvaapicontext.c:
21125 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
21126 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
21127 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
21128 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
21129 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21130 * gst-libs/gst/vaapi/gstvaapivideopool.c:
21131 * gst-libs/gst/vaapi/gstvaapivideopool.h:
21132 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
21133 libs: use GstVaapiMiniObject for video object pools.
21134 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
21135 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
21136 no longer used for a long time. Make object allocators static, i.e.
21137 local to the shared library.
21139 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21141 * gst-libs/gst/vaapi/gstvaapitexture.c:
21142 * gst-libs/gst/vaapi/gstvaapitexture.h:
21143 libs: use GstVaapiObject for texture objects.
21145 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21147 * gst-libs/gst/vaapi/Makefile.am:
21148 * gst-libs/gst/vaapi/gstvaapiwindow.c:
21149 * gst-libs/gst/vaapi/gstvaapiwindow.h:
21150 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
21151 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
21152 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
21153 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
21154 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
21155 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
21156 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
21157 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
21158 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
21159 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
21160 libs: use GstVaapiObject for window objects.
21162 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21164 * gst-libs/gst/vaapi/gstvaapicontext.c:
21165 * gst-libs/gst/vaapi/gstvaapicontext.h:
21166 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21167 * gst-libs/gst/vaapi/gstvaapiimage.c:
21168 * gst-libs/gst/vaapi/gstvaapiimage.h:
21169 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
21170 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
21171 * gst-libs/gst/vaapi/gstvaapisurface.c:
21172 * gst-libs/gst/vaapi/gstvaapisurface.h:
21173 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21174 * gst-libs/gst/vaapi/gstvaapivideopool.c:
21175 libs: use GstVaapiObject for VA objects.
21177 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21179 * gst-libs/gst/vaapi/Makefile.am:
21180 * gst-libs/gst/vaapi/gstvaapiobject.c:
21181 * gst-libs/gst/vaapi/gstvaapiobject.h:
21182 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
21183 Port GstVaapiObject to GstVaapiMiniObject.
21185 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21187 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21188 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
21189 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21190 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21191 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
21192 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
21193 libs: refine GstVaapiMiniObject.
21194 Drop support for user-defined data since this capability was not used
21195 so far and GstVaapiMiniObject represents the smallest reference counted
21196 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
21197 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
21198 is also possible to further simplify the layout of the object. i.e. merge
21199 GstVaapiMiniObjectBase into GstVaapiMiniObject.
21201 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21203 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21204 decoder: update picture size from the bitstream.
21205 Propagate the picture size from the bitstream to the GstVaapiDecoder,
21206 and subsequent user who installed a signal on notify::caps. This fixes
21207 decoding of TS streams when the demuxer failed to extract the required
21210 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21212 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21213 decoder: fix raw decoding mode.
21214 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
21215 surface proxy to the caller.
21217 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21219 * docs/reference/libs/libs-sections.txt:
21220 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21221 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21222 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21223 * gst/vaapi/gstvaapidecode.c:
21224 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
21225 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
21226 wait for a frame to be decoded, until the specified timeout in microseconds,
21227 prior to returning to the caller.
21228 This is a fix to performance regression from 851cc0, whereby the vaapidecode
21229 loop executed on the srcpad task was called to often, thus starving all CPU
21232 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21235 Bump version for development.
21237 === release 0.5.3 ===
21239 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21245 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21250 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21252 * gst/vaapi/gstvaapidecode.c:
21253 vaapidecode: rework heuristics to detect decode timeout.
21254 Rework heuristics to detect when downstream element ran into errors,
21255 and thus failing to release any VA surface in due time for the current
21256 frame to get decoded. In particular, recalibrate the render time base
21257 when the first frame gets submitted downstream, or when there is no
21258 timestamp that could be inferred.
21260 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21262 * gst-libs/gst/vaapi/gstcompat.h:
21263 * gst/vaapi/gstvaapidecode.c:
21264 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
21265 Rework GstVideoDecoder::handle_frame() to decode the current frame,
21266 while possibly waiting for a free surface, and separately submit all
21267 decoded frames from a task. This makes it possible to pop and render
21268 decoded frames as soon as possible.
21270 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21272 * gst/vaapi/gstvaapidecode.c:
21273 * gst/vaapi/gstvaapidownload.c:
21274 * gst/vaapi/gstvaapisink.c:
21275 * gst/vaapi/gstvaapiupload.c:
21276 plugins: use gst_object_unref() wherever applicable.
21277 Use gst_object_unref() wherever applicable, e.g. objects derived from
21278 GstElement, GstVideoPool, etc.
21280 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21282 * docs/reference/plugins/plugins-docs.xml.in:
21283 * docs/reference/plugins/plugins-sections.txt:
21284 * docs/reference/plugins/plugins.types:
21285 docs: drop obsolete plug-ins.
21286 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
21287 i.e. vaapiupload and vaapidownload are no longer the recommended
21290 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21292 * debian.upstream/rules:
21293 debian: fix build of GStreamer 0.10 packages.
21294 Fix build of Debian packages to scan the actual GStreamer API version
21295 from the generated changelog file.
21297 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21299 * gst/vaapi/gstvaapipostproc.c:
21300 vaapipostproc: minor clean-ups.
21301 Use g_clear_object() wherever appropriate and remove dead-code.
21303 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21305 * gst/vaapi/gstvaapipostproc.c:
21306 vaapipostproc: fix reference counting buf for passthrough mode.
21307 Fix reference counting bug for passthrough mode, whereby the input buffer
21308 was propagated as is downstream through gst_pad_push() without increasing
21309 its reference count before. The was a problem when gst_pad_push() returns
21310 an error and we further decrease the reference count of the input buffer.
21312 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21314 * gst-libs/gst/vaapi/gstcompat.h:
21315 * gst/vaapi/Makefile.am:
21316 * gst/vaapi/gstvaapi.c:
21317 * gst/vaapi/gstvaapidecode.c:
21318 * gst/vaapi/gstvaapipluginutil.h:
21319 * gst/vaapi/gstvaapipostproc.c:
21320 vaapipostproc: port to GStreamer 1.0.
21321 Add support for interlaced streams with GStreamer 1.0 too. Basically,
21322 this enables vaapipostproc, though it is not auto-plugged yet. We also
21323 make sure to reply to CAPS queries, and happily handle CAPS events.
21325 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21327 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21328 decoder: fix GstVideoCodecFrame flags for interlaced contents.
21329 Fix support for interlaced contents with GStreamer 0.10. In particular,
21330 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
21332 This is a regression from commit 87e5717.
21334 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21336 * gst-libs/gst/vaapi/Makefile.am:
21337 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21338 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21339 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
21340 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
21341 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
21342 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
21343 structure was only useful to parsing and a proper GstvaapiDecoderFrame
21344 instance will be created instead.
21346 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21348 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21349 decoder: export presentation timestamp for raw decoding mode.
21350 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
21351 held any information about the expected presentation timestamp, frame
21352 duration or additional flags like interlaced or top-field-first.
21354 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21356 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21357 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21358 decoder: use new GstVaapiSurfaceProxy utility functions.
21359 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
21360 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
21361 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
21362 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
21363 than gst_vaapi_picture_output().
21365 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21367 * docs/reference/libs/libs-sections.txt:
21368 * gst-libs/gst/vaapi/Makefile.am:
21369 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21370 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
21371 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
21372 surfaceproxy: add more attributes for raw decoding modes.
21373 Add more attributes for raw decoding modes, i.e. directly through the
21374 libgstvaapi helper library. In particular, add presentation timestamp,
21375 duration and a couple of flags (interlaced, TFF, RFF, one-field).
21377 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21379 * docs/reference/libs/libs-sections.txt:
21380 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21381 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
21382 * gst/vaapi/gstvaapidecode.c:
21383 * tests/simple-decoder.c:
21384 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
21385 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
21386 to call some user-provided function when the surface proxy is released.
21388 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
21391 * gst-libs/gst/vaapi/Makefile.am:
21392 build: link libgstvaapi-glx-1.0.so against libdl.
21393 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
21394 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
21396 https://bugzilla.gnome.org/show_bug.cgi?id=698046
21397 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21399 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21401 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21402 decoder: fix gst_vaapi_decoder_get_codec_state().
21403 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
21404 supposed to make GstVaapiDecoder own the return GstVideoCodecState
21405 object. Only comment was updated, not the actual code.
21407 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21409 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21410 * gst/vaapi/gstvaapidecode.c:
21411 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
21412 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
21413 i.e. make the GstVaapiDecoder object own the return state so that callers
21414 that want an extra reference to it would just gst_video_codec_state_ref()
21415 it before usage. This aligns the behaviour with what we had before with
21416 gst_vaapi_decoder_get_caps().
21417 This is an ABI incompatible change, library major version was bumped from
21418 previous release (0.5.2).
21420 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21422 * gst/vaapi/gstvaapivideobufferpool.h:
21423 * gst/vaapi/gstvaapivideoconverter_glx.h:
21424 plugins: mark a few more functions as internal.
21425 Mark the following functions are internal, i.e. private to the vaapi plug-in:
21426 - gst_vaapi_video_buffer_pool_get_type()
21427 - gst_vaapi_video_converter_glx_get_type()
21428 - gst_vaapi_video_converter_glx_new()
21430 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21432 * gst/vaapi/gstvaapivideobuffer.c:
21433 plugins: implement GstSurfaceMeta API.
21434 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
21435 an unstable/deprecated API, this makes it possible to support Clutter
21436 sink with minimal changes. Tested against clutter-gst 1.9.92.
21438 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21440 * gst/vaapi/gstvaapisink.c:
21441 vaapisink: optimize GstVideoOverlayInterface::expose().
21442 When render-mode is "overlay", then it is not really useful to peek into
21443 the GstBaseSink::last_buffer, since we have our own video_buffer already
21444 recorded and maintained into GstVaapiSink.
21446 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21448 * gst/vaapi/gstvaapisink.c:
21449 vaapisink: fix memory leak of GstSample objects.
21450 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
21451 This also fixes extra unreferencing of the underlying GstBuffer in the common
21452 path afterwards (for both 0.10 or 1.0).
21454 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21456 * gst-libs/gst/vaapi/gstcompat.h:
21457 * gst/vaapi/gstvaapi.c:
21458 plugins: fix description for gst-inspect.
21459 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
21460 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
21461 incorrectly uses #name for creating the plug-in name, instead of using macro
21462 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
21464 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21468 Update build requirements for GStreamer 1.0.x support. Add section for
21469 ways to report bugs.
21471 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21476 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21478 * gst-libs/gst/vaapi/Makefile.am:
21479 * gst/vaapi/Makefile.am:
21480 Fix make dist to include all source files, in any case.
21481 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
21482 sure to include all source files in either case while generating source
21485 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21488 Bump library major version.
21489 Bump library major version, while preserving a major version of 0 for
21490 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
21491 0.10 based librarieS.
21493 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21495 * gst/vaapi/gstvaapivideomemory.c:
21496 * gst/vaapi/gstvaapivideomemory.h:
21497 plugins: implement direct-rendering mode for raw YUV buffer uploads.
21498 Allow direct-rendering (writes) into target VA surfaces.
21500 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21502 * gst/vaapi/gstvaapivideobufferpool.c:
21503 * gst/vaapi/gstvaapivideomemory.c:
21504 * gst/vaapi/gstvaapivideomemory.h:
21505 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
21506 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
21507 the last component is unmapped. Downloads are not supported yet. The aim
21508 was to first support SW decoding + HW accelerated rendering (vaapisink).
21511 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21513 * gst/vaapi/gstvaapidecode.c:
21514 vaapidecode: submit all decoded frames before decoding a new one.
21515 Make sure to purge all pending frames that were already decoded prior
21516 to decoding a new one. This helps release VA surfaces as early as
21519 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21521 * gst/vaapi/gstvaapidecode.c:
21522 vaapidecode: reply to CAPS queries.
21523 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
21524 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
21525 This fixes fallback to SW decoding if no HW decoder is available.
21527 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21529 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21530 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21531 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21532 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21533 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21534 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21535 decoder: fix unpaired GstBuffer map/unmaps.
21536 This possibly fixes a few memory leaks along the way.
21538 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21541 * gst-libs/gst/vaapi/gstcompat.h:
21542 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
21543 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21544 * gst/vaapi/Makefile.am:
21545 * gst/vaapi/gstvaapi.c:
21546 * gst/vaapi/gstvaapidecode.c:
21547 * gst/vaapi/gstvaapisink.c:
21548 * gst/vaapi/gstvaapisink.h:
21549 * gst/vaapi/gstvaapiuploader.c:
21551 Allow build against either GStreamer API (0.10 or 1.0).
21552 Introduce a new configure option --with-gstreamer-api that determines
21553 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
21554 Also integrate more compatibility glue into gstcompat.h and plugins.
21556 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21558 * gst/vaapi/gstvaapidecode.c:
21559 * gst/vaapi/gstvaapisink.c:
21560 * gst/vaapi/gstvaapisink.h:
21561 plugins: use new video buffer pools.
21562 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
21563 GstBaseSink::propose_allocation() to expose that pool to upstream
21564 elements; and also implement GstVideoDecoder::decide_allocation() to
21565 actually use that pool (from downstream), if any, or create one.
21566 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21568 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21570 * gst/vaapi/Makefile.am:
21571 * gst/vaapi/gstvaapivideobufferpool.c:
21572 * gst/vaapi/gstvaapivideobufferpool.h:
21573 * gst/vaapi/gstvaapivideomemory.c:
21574 * gst/vaapi/gstvaapivideomemory.h:
21575 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
21576 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
21577 object currently holds a reference to GstVaapiVideoMeta.
21578 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21580 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21582 * gst/vaapi/gstvaapivideometa.c:
21583 * gst/vaapi/gstvaapivideometa.h:
21584 plugins: allow copies of GstVaapiVideoMeta objects.
21585 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
21586 objects created from GstVaapiVideoPool. This is mostly useful to clone a
21587 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
21590 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21592 * gst/vaapi/gstvaapivideometa.c:
21593 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
21594 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
21595 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
21596 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
21599 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21601 * gst/vaapi/Makefile.am:
21602 * gst/vaapi/gstvaapi.c:
21603 * gst/vaapi/gstvaapidecode.c:
21604 * gst/vaapi/gstvaapidownload.c:
21605 * gst/vaapi/gstvaapipluginutil.c:
21606 * gst/vaapi/gstvaapipostproc.c:
21607 * gst/vaapi/gstvaapisink.c:
21608 * gst/vaapi/gstvaapiupload.c:
21609 * gst/vaapi/gstvaapiuploader.c:
21610 * gst/vaapi/gstvaapivideobuffer.c:
21611 * gst/vaapi/gstvaapivideoconverter_glx.c:
21612 * gst/vaapi/gstvaapivideometa.c:
21613 * gst/vaapi/gstvaapivideometa.h:
21614 plugins: initial port to GStreamer 1.0.
21615 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
21616 is rather minimalistic so that to test the basic functionality.
21617 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
21618 needs polishing wrt. to GStreamer 1.x functionality and the former are
21619 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
21620 which are yet to be implemented.
21621 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21623 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21625 * gst-libs/gst/vaapi/gstcompat.h:
21628 * tests/simple-decoder.c:
21629 * tests/test-subpicture.c:
21630 tests: add support for GStreamer 1.0.
21632 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21635 * gst-libs/gst/vaapi/gstcompat.h:
21636 * gst-libs/gst/vaapi/gstvaapicontext.c:
21637 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21638 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21639 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21640 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21641 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21642 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21643 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21644 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21645 * gst-libs/gst/vaapi/gstvaapiimage.c:
21646 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
21647 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21648 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
21649 * gst-libs/gst/vaapi/gstvaapisurface.h:
21650 Add initial support for GStreamer 1.0.
21651 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
21652 core decoding library. The changes are kept rather minimal here so that
21653 the library retains as little dependency as possible on core GStreamer
21655 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21657 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21659 * gst/vaapi/gstvaapisink.c:
21660 vaapisink: improve check for raw YUV format mode.
21661 Improve check for raw YUV format modes by avoiding checks against strings
21662 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
21663 GstBaseSink::set_caps() is called first and if VA surface format mode is
21664 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
21665 called before set_caps(), then we just make a full check. This one is
21666 pretty rare though, e.g. it usually happens once for custom pipelines.
21668 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21670 * gst/vaapi/gstvaapipluginutil.c:
21671 plugins: don't fail if there is no overlay composition to apply.
21672 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
21673 was found. i.e. return success (TRUE). This was harmless though extra
21674 debug messages are not nice.
21675 This is a regression introduced by commit 95b8659.
21677 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21679 * gst/vaapi/gstvaapidecode.c:
21680 * gst/vaapi/gstvaapidecode.h:
21681 vaapidecode: expose the exact set of supported HW decoders.
21682 Don't return static caps that don't mean anything for the underlying codecs
21683 that are actually supported for decoding. i.e. always allocate a VA display
21684 and retrieve the exact set of HW decoders available. That VA display may be
21685 re-used later on during negotiation through GstVideoContext "prepare-context".
21686 This fixes fallback to SW decoding if no HW decoder is available.
21688 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21690 * docs/reference/libs/libs-sections.txt:
21691 * gst-libs/gst/vaapi/gstvaapicontext.c:
21692 * gst-libs/gst/vaapi/gstvaapicontext.h:
21693 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21694 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
21695 decoder: drop obsolete functions.
21696 Drop the following functions that are now obsolete:
21697 - gst_vaapi_context_get_surface()
21698 - gst_vaapi_context_put_surface()
21699 - gst_vaapi_context_find_surface_by_id()
21700 - gst_vaapi_surface_proxy_new()
21701 - gst_vaapi_surface_proxy_get_context()
21702 - gst_vaapi_surface_proxy_set_context()
21703 - gst_vaapi_surface_proxy_set_surface()
21704 This is an API change.
21706 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21708 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21709 decoder: delegate surface size check to VA context reset.
21710 Now that the surface pool is reference counted in the surface proxy wrapper,
21711 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
21712 Besides, this check is already performed in gst_vaapi_context_reset_full().
21714 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21716 * docs/reference/libs/libs-sections.txt:
21717 * gst-libs/gst/vaapi/gstvaapicontext.c:
21718 * gst-libs/gst/vaapi/gstvaapicontext.h:
21719 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21720 * gst-libs/gst/vaapi/gstvaapisurface.h:
21721 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21722 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
21723 decoder: simplify acquisition/release of spare surface.
21724 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
21725 proxy from the context surface pool. This change also makes sure to retain
21726 the parent surface pool in the proxy.
21727 Besides, it was also totally useless to attach/detach parent context to
21728 VA surface each time we acquire/release it. Since the whole context owns
21729 all associated VA surfaces, we can mark this as such only once and for all.
21731 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21734 Bump version for development.
21736 === release 0.5.2 ===
21738 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21744 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21749 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21751 * gst/vaapi/gstvaapipluginutil.c:
21752 * gst/vaapi/gstvaapisink.c:
21753 plugins: fix usage of gst_vaapi_reply_to_query().
21754 Make gst_vaapi_reply_to_query() first check whether the query argument
21755 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
21756 Then, make sure vaapisink propagates the query to the parent class if
21757 it is not a video-context query.
21759 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21761 * gst/vaapi/gstvaapivideobuffer.c:
21762 * gst/vaapi/gstvaapivideobuffer.h:
21763 plugins: streamline video buffers.
21764 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
21765 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
21766 gst_vaapi_video_buffer_get_meta().
21768 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21770 * docs/reference/libs/libs-sections.txt:
21771 * gst-libs/gst/vaapi/Makefile.am:
21772 * gst/vaapi/Makefile.am:
21773 * gst/vaapi/gstvaapidecode.c:
21774 * gst/vaapi/gstvaapidownload.c:
21775 * gst/vaapi/gstvaapipostproc.c:
21776 * gst/vaapi/gstvaapisink.c:
21777 * gst/vaapi/gstvaapiupload.c:
21778 * gst/vaapi/gstvaapiuploader.c:
21779 * gst/vaapi/gstvaapivideobuffer.h:
21780 * gst/vaapi/gstvaapivideoconverter_glx.c:
21781 * gst/vaapi/gstvaapivideometa.c:
21782 * gst/vaapi/gstvaapivideometa.h:
21783 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
21784 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
21785 actual plugin elements. That's only useful there. Also inline reference
21786 counting code from GstVaapiMiniObject.
21788 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21790 * gst/vaapi/Makefile.am:
21791 * gst/vaapi/gstvaapidecode.c:
21792 * gst/vaapi/gstvaapidownload.c:
21793 * gst/vaapi/gstvaapipluginbuffer.c:
21794 * gst/vaapi/gstvaapipluginbuffer.h:
21795 * gst/vaapi/gstvaapipostproc.c:
21796 * gst/vaapi/gstvaapiupload.c:
21797 * gst/vaapi/gstvaapiuploader.c:
21798 * gst/vaapi/gstvaapivideobuffer.c:
21799 * gst/vaapi/gstvaapivideobuffer.h:
21800 plugins: drop gstvaapipluginbuffer.[ch] helper files.
21801 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
21802 to gstvaapivideobuffer.[ch], and drop the obsolete files.
21804 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21806 * docs/reference/libs/libs-sections.txt:
21807 * docs/reference/libs/libs.core.types:
21808 * gst-libs/gst/vaapi/Makefile.am:
21809 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
21810 * gst/vaapi/Makefile.am:
21811 * gst/vaapi/gstvaapidownload.h:
21812 * gst/vaapi/gstvaapipluginbuffer.c:
21813 * gst/vaapi/gstvaapipostproc.h:
21814 * gst/vaapi/gstvaapivideobuffer.c:
21815 * gst/vaapi/gstvaapivideobuffer.h:
21816 * gst/vaapi/gstvaapivideoconverter_glx.h:
21817 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
21818 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
21819 actual plugin elements. That's only useful there.
21821 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21823 * gst/vaapi/gstvaapipluginutil.c:
21824 * gst/vaapi/gstvaapipluginutil.h:
21825 * gst/vaapi/gstvaapisink.c:
21826 * gst/vaapi/gstvaapivideoconverter_glx.c:
21827 plugins: use common helper function to apply compositions.
21828 Use common gst_vaapi_apply_composition() helper function to apply compositions
21829 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
21831 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21833 * gst-libs/gst/vaapi/Makefile.am:
21834 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
21835 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
21836 * gst/vaapi/Makefile.am:
21837 * gst/vaapi/gstvaapipluginbuffer.c:
21838 * gst/vaapi/gstvaapivideoconverter_glx.c:
21839 * gst/vaapi/gstvaapivideoconverter_glx.h:
21840 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
21841 Make sure libgstvaapi core decoding library doesn't include un-needed
21842 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
21843 Besides, even if the vaapisink element is not used, we are bound to have
21844 a correctly populated GstSurfaceBuffer from vaapidecode.
21845 Also clean-up the file along the way.
21847 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21849 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21850 vc1: fix use of possibly uninitialized variable.
21851 In decode_codec_data(), force initialization of format to zero so that
21852 we can catch up cases where codec-data has neither "format" nor "wmvversion"
21853 fields, thus making it possible to gracefully fail in this case.
21855 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21857 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21858 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
21860 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21862 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21863 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21864 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21865 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21866 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21867 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21868 decoder: sanitize codec-data decoding.
21869 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
21870 codec-data in the decoder sub-class. Provide a common shared helper
21871 function to do the actual work and delegating further to the sub-class.
21873 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21875 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21876 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21877 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
21878 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
21879 decoder: get rid of GstVaapiDecoderUnit::buffer field.
21880 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
21881 useless nowadays as creating sub-buffers doesn't bring any value. It
21882 actually means more memory allocations. We can't do without that in
21883 JPEG and MPEG-4:2 decoders.
21885 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21887 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21888 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21889 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21890 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21891 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21892 decoder: sanitize uses of codec frame input buffer (cosmetics).
21893 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
21896 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21898 * gst/vaapi/gstvaapisink.c:
21899 vaapisink: add helper function to apply a composition buffer.
21900 Simplify application of a composition buffer to a GstVaapiSurface, and
21901 all its peers, until that function is eventually promoted to libgstvaapi.
21903 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21905 * gst/vaapi/gstvaapisink.c:
21906 vaapisink: fix support for raw YUV buffers.
21907 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
21908 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
21909 However, we previously assumed in that case that it was a "native" VA buffer,
21910 thus not calling into GstVaapiUploader::process().
21912 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21914 * gst-libs/gst/vaapi/gstcompat.h:
21915 * gst/vaapi/gstvaapidecode.c:
21916 * gst/vaapi/gstvaapidownload.c:
21917 * gst/vaapi/gstvaapipostproc.c:
21918 * gst/vaapi/gstvaapisink.c:
21919 * gst/vaapi/gstvaapiupload.c:
21920 plugins: use modern GstElement metadata information.
21921 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
21922 basically is the same as gst_element_class_set_details_simple() in
21923 GStreamer 0.10 context.
21925 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21927 * gst/vaapi/gstvaapidecode.c:
21928 * gst/vaapi/gstvaapidownload.c:
21929 * gst/vaapi/gstvaapipostproc.c:
21930 * gst/vaapi/gstvaapisink.c:
21931 * gst/vaapi/gstvaapiupload.c:
21932 plugins: move up interfaces (cosmetics).
21933 Move GstImplementsInterface and GstVideoContext support functions up
21934 so that to keep a clear separation between the plugin element and its
21937 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21939 * gst/vaapi/gstvaapisink.c:
21940 * gst/vaapi/gstvaapiuploader.c:
21941 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
21942 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
21943 Also use the newly added gst_vaapi_image_format_from_structure() helper
21944 in GstVaapiUploader::ensure_allowed_caps().
21946 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21948 * gst/vaapi/gstvaapipluginbuffer.c:
21949 plugins: fix creation of video buffer from another source buffer.
21950 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
21951 buffer video meta since it would be unreference'd from the get_buffer()
21952 helper function. For other cases, we still use (steal) the newly created
21955 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21957 * gst/vaapi/gstvaapipluginbuffer.c:
21958 * gst/vaapi/gstvaapipluginutil.c:
21959 plugins: include "sysdeps.h" header instead of "config.h".
21961 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21963 * gst-libs/gst/vaapi/gstcompat.h:
21965 tests: modernize GstTypeFind functions.
21966 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
21967 exactly correspond to the expected behaviour.
21969 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21973 * tests/test-decode.c:
21974 * tests/test-display.c:
21975 * tests/test-h264.c:
21976 * tests/test-h264.h:
21977 * tests/test-jpeg.c:
21978 * tests/test-jpeg.h:
21979 * tests/test-mpeg2.c:
21980 * tests/test-mpeg2.h:
21981 * tests/test-mpeg4.c:
21982 * tests/test-mpeg4.h:
21983 * tests/test-textures.c:
21984 * tests/test-vc1.c:
21985 * tests/test-vc1.h:
21986 * tests/test-windows.c:
21987 tests: fix license templates.
21989 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21991 * tests/test-display.c:
21992 tests: use gst_vaapi_image_format_from_structure() in test-display.
21993 Use gst_vaapi_image_format_from_structure() helper in test-display and
21994 then extract a VAImageFormat from it instead of relying on GstCaps for
21995 YUV and RGB formats.
21997 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22002 * tests/test-decode.c:
22003 * tests/test-display.c:
22004 * tests/test-subpicture.c:
22005 * tests/test-textures.c:
22006 * tests/test-windows.c:
22007 tests: include "sysdeps.h" header instead of "config.h".
22009 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22011 * gst-libs/gst/vaapi/gstcompat.h:
22012 * gst-libs/gst/vaapi/gstvaapicontext.c:
22013 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
22014 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
22015 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
22016 function with GStreamer 0.10 compatible semantics, or that tries to
22017 approach the current meaning. Basically, this is also just about moving
22018 the helper to gstcompat.h.
22020 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22022 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
22023 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
22024 image: add gst_vaapi_image_format_from_structure() helper.
22025 Add helper function to convert video formats from a GstStructure to a
22026 plain GstVaapiImageFormat.
22028 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22030 * gst-libs/gst/vaapi/Makefile.am:
22031 * gst-libs/gst/vaapi/gstcompat.h:
22032 * gst-libs/gst/vaapi/sysdeps.h:
22033 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
22035 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22037 * gst-libs/gst/vaapi/sysdeps.h:
22038 sysdeps: add more standard includes by default.
22040 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22043 configure: improve GStreamer API version checks.
22045 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22048 * debian.upstream/Makefile.am:
22049 * debian.upstream/changelog.in:
22050 * debian.upstream/control.in:
22051 * debian.upstream/gstreamer-vaapi-doc.install.in:
22052 * debian.upstream/libgstvaapi-dev.install.in:
22053 * debian.upstream/libgstvaapi-drm.install.in:
22054 * debian.upstream/libgstvaapi-glx.install.in:
22055 * debian.upstream/libgstvaapi-wayland.install.in:
22056 * debian.upstream/libgstvaapi-x11.install.in:
22057 * debian.upstream/libgstvaapi.install.in:
22058 * docs/reference/libs/Makefile.am:
22059 * docs/reference/libs/libs-docs.xml.in:
22060 * docs/reference/plugins/Makefile.am:
22061 * docs/reference/plugins/plugins-docs.xml.in:
22062 * gst-libs/gst/vaapi/Makefile.am:
22063 * gst/vaapi/Makefile.am:
22064 * pkgconfig/Makefile.am:
22065 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22066 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22067 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22068 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22069 * pkgconfig/gstreamer-vaapi.pc.in:
22070 * tests/Makefile.am:
22071 configure: rename GST_MAJORMINOR to GST_API_VERSION.
22073 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22076 configure: improve check for H.264 codecparser.
22078 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
22080 * gst/vaapi/gstvaapiuploader.c:
22081 vaapiupload: fix illegal write in ensure_image().
22082 Fix ensure_image() to only zero-initialize the first line of each plane.
22083 Properly initializing each plane to their full vertical resolution would
22084 require to actually compute it based on the image format.
22085 In particular, for NV12 images, the UV plane has half vertical resolution
22086 vs. the Y plane. So using the full image height to initialize the UV plane
22087 will obviously lead to a buffer overflow. Likewise for other YUV format.
22088 Since ensure_image() is only a helper function to initialize something,
22089 and not necessarily the whole thing, it is fine to initializ the first
22090 line only. Besides, the target surface is not rendered either.
22091 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22093 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
22095 * gst-libs/gst/codecparsers/Makefile.am:
22096 * gst-libs/gst/video/Makefile.am:
22097 build: fix compiling of local GstVideoDecoder and codecparsers.
22098 Generated source files were missing a dependency on the complete set of
22099 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
22100 to build and almost every codec parser source depends on parserutils.h.
22101 https://bugs.freedesktop.org/show_bug.cgi?id=59575
22102 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
22103 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22105 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22107 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22108 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
22109 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
22110 there is no pred_weight_table() that was parsed.
22111 This is a workaround for the VA intel-driver on Ivy Bridge.
22113 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22115 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22116 h264: use new profile definitions from codecparsers.
22118 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22120 * ext/codecparsers:
22121 codecparsers: update to gst-vaapi-branch commit 500bc02.
22122 500bc02 h264: add profile enums
22124 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22129 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22131 * ext/codecparsers:
22132 codecparsers: update to gst-vaapi-branch commit 31b1c57.
22133 8957fb7 mpeg2: add helpers to convert quantization matrices
22134 07c4034 mpeg2: store quantization matrices in zigzag scan order
22136 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22138 * tests/simple-decoder.c:
22139 tests: simple-decoder: fix build on older platforms.
22140 Make simple-decoder build and execute correctly on older platforms,
22141 and more precisely older versions of glib.
22143 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22145 * gst-libs/gst/vaapi/glibcompat.h:
22146 glibcompat: add replacement for g_async_queue_timeout_pop().
22147 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
22148 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
22149 new data to arrive in the queue.
22151 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22153 * gst-libs/gst/vaapi/glibcompat.h:
22154 glibcompat: add replacement for g_cond_wait().
22156 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22158 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22159 mpeg2: fix decoding of 4K videos.
22160 Account for slice_vertical_position_extension when vertical_size > 2800.
22162 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22164 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22165 mpeg2: fix decoding of sequence_end().
22166 There shall be only one place to call decode_current_picture(), and this
22167 is in the end_frame() hook. The EOS unit is processed after end_frame()
22168 so this means we cannot have a valid picture to decode/output at this
22171 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22173 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22174 mpeg2: improve robustness when packets are missing.
22175 Improve robustness when some expected packets where not received yet
22176 or that were not correctly decoded. For example, don't try to decode
22177 a picture if there was no valid sequence or picture headers.
22179 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22181 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22182 decoder: handle decode-only frames in raw API mode.
22183 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
22184 surface proxy, i.e. with a valid VA surface. This means that any frame
22185 marked as decode-only is simply skipped.
22187 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22189 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22190 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22191 decoder: allow frames to be dropped.
22192 If the decoder was not able to decode a frame because insufficient
22193 information was available, e.g. missing sequence or picture header,
22194 then allow the frame to be gracefully dropped without generating
22196 It is also possible that a frame is not meant to be displayed but
22197 only used as a reference, so dropping that frame is also a valid
22198 operation since GstVideoDecoder base class has extra references to
22199 that GstVideoCodecFrame that needs to be released.
22201 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22203 * gst/vaapi/gstvaapidecode.c:
22204 vaapidecode: handle decode-only frames.
22205 Decode-only frames may not have a valid surface proxy. So, simply discard
22206 them gracefully, i.e. don't create meta data information. GstVideoDecoder
22207 base class will properly handle this case and won't try to push any buffer
22208 to downstream elements.
22210 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22212 * gst/vaapi/gstvaapidecode.c:
22213 vaapidecode: add support for post-seek semantics reset.
22214 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
22215 and the creation of a new VA decoder.
22216 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22218 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22221 Bump version for development.
22223 === release 0.5.1 ===
22225 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22231 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22233 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22234 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
22236 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22238 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
22239 decoder: fix documentation for GstVaapiDecoderFrame.
22240 Drop superfluous reference to prev_slice member.
22242 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22244 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22245 decoder: assume current frame is complete at end-of-stream.
22246 Assume we got a complete frame when the end-of-stream is reached and that
22247 the current codec frame contains at least one slice data unit.
22249 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22253 * debian.upstream/copyright:
22254 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22255 * gst-libs/gst/vaapi/gstvaapicontext.c:
22256 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22257 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22258 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
22259 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
22260 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
22261 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
22262 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22263 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
22264 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22265 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22266 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22267 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22268 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22269 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
22270 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22271 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22272 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22273 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22274 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
22275 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
22276 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22277 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
22278 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
22279 * gst-libs/gst/vaapi/gstvaapisurface.c:
22280 * gst-libs/gst/vaapi/gstvaapiutils.c:
22281 * gst-libs/gst/vaapi/gstvaapiutils.h:
22282 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
22283 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
22284 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
22285 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22286 * gst-libs/gst/vaapi/sysdeps.h:
22287 * gst/vaapi/gstvaapidecode.c:
22288 * gst/vaapi/gstvaapidownload.c:
22289 * gst/vaapi/gstvaapipluginbuffer.c:
22290 * gst/vaapi/gstvaapipluginbuffer.h:
22291 * gst/vaapi/gstvaapipostproc.c:
22292 * gst/vaapi/gstvaapisink.c:
22293 * gst/vaapi/gstvaapiupload.c:
22294 * gst/vaapi/gstvaapiuploader.c:
22296 * tests/test-decode.c:
22297 * tests/test-subpicture.c:
22298 legal: fix year for some copyright notices (2013).
22300 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22302 * gst-libs/gst/vaapi/gstvaapicontext.h:
22303 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22304 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22305 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
22306 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22307 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
22308 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22309 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
22310 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
22311 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
22312 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
22313 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
22314 * gst-libs/gst/vaapi/gstvaapisurface.c:
22315 * gst-libs/gst/vaapi/gstvaapisurface.h:
22316 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
22317 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22318 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
22319 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
22320 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
22321 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
22322 * gst/vaapi/gstvaapidecode.h:
22323 * gst/vaapi/gstvaapisink.h:
22324 * tests/test-subpicture.c:
22325 legal: fix year for some copyright notices (2012).
22327 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22329 * gst-libs/gst/vaapi/gstvaapicompat.h:
22330 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
22331 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
22332 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
22333 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
22334 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
22335 * gst-libs/gst/vaapi/gstvaapiobject.c:
22336 * gst-libs/gst/vaapi/gstvaapiobject.h:
22337 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22338 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
22339 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
22340 * gst-libs/gst/vaapi/gstvaapiprofile.c:
22341 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22342 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
22343 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
22344 * gst-libs/gst/vaapi/gstvaapitexture.c:
22345 * gst-libs/gst/vaapi/gstvaapitexture.h:
22346 * gst-libs/gst/vaapi/gstvaapitypes.h:
22347 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22348 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22349 * gst-libs/gst/vaapi/gstvaapivalue.c:
22350 * gst-libs/gst/vaapi/gstvaapivalue.h:
22351 * gst-libs/gst/vaapi/gstvaapivideopool.c:
22352 * gst-libs/gst/vaapi/gstvaapivideopool.h:
22353 * gst-libs/gst/vaapi/gstvaapiwindow.h:
22354 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22355 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
22356 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22357 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
22358 * tests/test-display.c:
22359 * tests/test-surfaces.c:
22360 * tests/test-windows.c:
22361 legal: add Intel copyright on modified files.
22363 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22368 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22370 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22371 wayland: use a local event queue to avoid lock contention.
22372 This improves performance when rendering several surfaces from within
22373 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
22375 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22377 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22378 wayland: fix thread-safe issues.
22379 The Wayland API is not fully thread-safe and client applications shall
22380 perform locking themselves on key functions. Besides, make sure to
22381 release the lock if the _render() function fails.
22383 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22385 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22386 wayland: really wait until the pending redraw completed.
22387 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
22388 the completion of the redraw request. Use it in _render() function to
22389 actually block until the previous draw request is completed.
22391 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22393 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
22394 wayland: fix frame_redraw callback.
22395 The redraw callback needs to be attached to the surface prior to the
22396 commit. Otherwise, the callback notifies the next surface repaint,
22397 which is not the desired behaviour. i.e. we want to be notified for
22398 the surface we have just filled.
22399 Another isse was the redraw_pending was reset before the actual completion
22400 of the frame redraw callback function, thus causing concurrency issues.
22401 e.g. the callback could have been called again, but with a NULL buffer.
22403 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22405 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
22406 wayland: fix display sharing.
22407 When the Wayland display is shared, we still have to create our own local
22408 shell and compositor objects, since they are not propagated from the cache.
22409 Likewise, we also need to determine the display size or vaapisink would
22410 fail to account for the display aspect ratio, and will try to create a 0x0
22413 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22415 * ext/codecparsers:
22416 codecparsers: update to gst-vaapi-branch commit 21a098e.
22417 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
22418 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
22420 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22422 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22423 vc1: handle frames with multiple slices.
22425 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22427 * ext/codecparsers:
22428 codecparsers: update to gst-vaapi-branch commit 3fba492.
22429 3fba492 vc1: add API to parse slice headers
22431 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22433 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22434 vc1: handle CLOSED_ENTRY.
22435 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
22436 lack a reference anchor picture, these B pictures shall be discarded.
22437 https://bugs.freedesktop.org/show_bug.cgi?id=59505
22439 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22441 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22442 vc1: cope with latest codecparser changes.
22443 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
22444 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
22445 the actual value of DQPROFILE.
22447 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22449 * ext/codecparsers:
22450 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
22451 3d2c67c vc1: simplify GstVC1VopDquant structure
22453 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22455 * ext/codecparsers:
22456 codecparsers: update to gst-vaapi-branch commit 5d33da8.
22457 5d33da8 vc1: fix bitplanes decoding
22458 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
22459 0b13d2b vc1: fix calculation of ALTPQUANT
22460 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
22462 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22464 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22465 vc1: fix size of encapsulated BDU.
22466 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
22467 the size of the BDU data, starting from offset, i.e. after any start
22469 This fixes a buffer overflow during the unescaping process.
22471 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
22473 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22474 vc1: fix decoding of WMV3 videos in AVI format.
22475 The AVI demuxer (avidemux) does not set a proper "format" attribute
22476 to the generated caps. So, try to recover the video codec format from
22477 the "wmvversion" property instead.
22478 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22480 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22482 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22483 vc1: review and report errors accordingly.
22484 Use GST_ERROR() to report real errors instead of hiding them into
22487 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22489 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22490 vc1: don't create GstBuffers for all decoder units.
22491 Don't create temporary GstBuffers for all decoder units, even if they
22492 are lightweight "sub-buffers", since it is not really necessary to keep
22493 the buffer data around.
22495 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22497 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22498 vc1: implement flush() hook.
22499 Make it a simple DPB flush.
22501 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22503 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22504 vc1: implement {start,end}_frame() hooks.
22505 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
22506 that to create new VA context earlier and submit VA pictures to the
22507 HW for decoding as soon as possible. i.e. don't wait for the next
22508 frame to start decoding the previous one.
22510 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22512 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22513 vc1: fix next POC for new sequence layers.
22514 Fix next POC when a new sequence layer is reached. At this point, we
22515 need to reset any previous reference picture, i.e. non B-frame.
22517 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22519 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22520 vc1: port to common GstVaapiDpb interface.
22521 Use GstVaapiDpb interface instead of maintaining our own prev and next
22522 picture pointers. While doing so, try to derive a sensible POC value.
22523 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22525 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22527 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22528 vc1: fix decode_sequence_end() to return success, not EOS.
22530 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22532 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22533 decoder: simplify gst_vaapi_decoder_get_surface().
22534 Avoid extraenous branches, i.e. immediately return with success once we
22535 have a decoded frame available.
22537 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22539 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22540 decoder: optimize and clean decode_step() up.
22541 Avoid usage of goto. Simplify decode_step() process to first accumulate all
22542 pending buffers into the GstAdapter, and then parse and decode units from
22543 that input adapter. Stop the process once a frame is fully decoded or an
22546 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22548 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22549 display: move "vaapi" debug init to libgstvaapi_init_once().
22551 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22554 * gst-libs/gst/vaapi/Makefile.am:
22555 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22556 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
22557 display: dump gstreamer-vaapi version for debugging purposes.
22559 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22561 * tests/Makefile.am:
22562 tests: simple-decoder: fix build with built-in videoutils.
22563 Fix build with built-in videoutils, i.e. when system GStreamer installation
22564 does not know about GstVideoDecoder API.
22566 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22568 * tests/simple-decoder.c:
22569 tests: simple-decoder: flush decoded frames at EOS.
22570 Flush the remaining decoded frames when an end-of-stream is reached.
22572 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22574 * tests/simple-decoder.c:
22575 tests: simple-decoder: drop use of GstVaapiVideoMeta.
22576 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
22577 in libgstvaapi forever. Rather, that'd move to plugin elements at some
22580 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22582 * tests/simple-decoder.c:
22583 tests: simple-decoder: add benchmark mode.
22584 Add --benchmark option to enable benchmark mode where rendering is not
22585 synchronized with presentation timestamps of the decoded surfaces.
22587 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22589 * tests/Makefile.am:
22590 * tests/simple-decoder.c:
22591 tests: simple-decoder: honour framerate from the bitstream.
22592 Try to honour the framerate from the bitstream, or cap the playback to
22595 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22597 * tests/simple-decoder.c:
22598 tests: simple-decoder: set window size to the surface dimensions.
22599 Set the window size to the decoded surface dimensions, if the user has
22600 not requested the application to run in full-screen mode. Besides, no
22601 effort is made to preserve aspect ratio or to center the video within
22604 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22606 * tests/Makefile.am:
22607 * tests/simple-decoder.c:
22608 tests: add simple decoder application.
22609 Add simple decoder application to show off decoding capabilities from
22610 raw bitstreams, for debugging or performance evaluation purposes.
22612 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22614 * tests/Makefile.am:
22617 tests: add codec helper utils.
22618 Add helper functions to determine the codec type from a specific file
22619 or utility functions to convert from codec type to GstCaps or from
22620 codec name to codec type.
22622 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22625 tests: allow fullscreen mode.
22626 Add new --fullscreen|-f option to create new windows in fullscreen mode.
22628 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22630 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22631 h264: implement GstVaapiDecoder::flush() as a DPB flush.
22633 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22635 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22636 h264: handle end-of-stream NALU.
22637 Handle <end-of-stream> NAL unit to actually flush any pending picture
22640 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22642 * gst/vaapi/gstvaapidecode.c:
22643 vaapidecode: handle EOS events.
22644 Flush all decoded frames to downstream when EOS is received. This is
22645 performed by implementing GstVideoDecoder::finish() hook.
22647 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22649 * gst/vaapi/gstvaapidecode.c:
22650 vaapidecode: split gvd_handle_frame() into decode/push frames.
22651 Split GstVideoDecoder::handle_frame() implementation into two functions:
22652 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
22653 for purging all decoded frames and submit them downstream.
22655 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22657 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22658 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22659 decoder: add GstVaapiDecoder::flush() hook.
22661 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22663 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22664 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22665 decoder: fix check for end-of-stream in raw API mode.
22666 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
22667 if the end-of-stream was already reached at the previous iteration.
22669 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22671 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22672 decoder: make decode_step() return once the frame is decoded.
22673 Make sure we always have a free surface left to use for decoding the
22674 current frame. This means that decode_step() has to return once a frame
22675 gets decoded. If the current adapter contains more buffers with valid
22676 frames, they will get parsed and decoded on subsequent iterations.
22678 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22680 * ext/codecparsers:
22681 codecparsers: update to gst-vaapi-branch commit b47983a.
22682 8840c2d h264: zero-initialize SPS VUI parameters
22684 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22687 Bump version for development.
22689 === release 0.5.0 ===
22691 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22697 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22699 * docs/reference/libs/libs-docs.xml.in:
22700 * docs/reference/libs/libs-sections.txt:
22701 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22702 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22703 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22704 docs: expose new interfaces.
22706 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22711 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22713 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
22714 dpb: cosmetics (clean-ups).
22716 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22718 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
22719 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
22720 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22721 dpb: port to GstVaapiMiniObject.
22723 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22725 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
22726 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
22727 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22728 dpb: drop GstVaapiDpb2 interface, keep only one class.
22729 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
22730 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
22731 around the specified picture POC.
22733 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22735 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
22736 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
22737 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22738 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
22739 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
22740 useful to other decoders that require 2 reference pictures, e.g. VC-1.
22741 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22743 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22746 Bump version for pre-release.
22748 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22753 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
22756 * gst-libs/gst/vaapi/gstvaapicontext.c:
22757 * gst-libs/gst/vaapi/gstvaapiutils.c:
22758 * gst-libs/gst/vaapi/sysdeps.h:
22759 * tests/test-subpicture.c:
22760 overlay: fix build without advanced GstVideoOverlayFormatFlags.
22761 Check for global-alpha support in GstVideoOverlayComposition API.
22762 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22764 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22766 * tests/test-subpicture.c:
22767 tests: add support for global-alpha subpictures.
22768 Add --global-alpha option to test-subpicture.
22770 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22772 * tests/Makefile.am:
22773 * tests/test-subpicture.c:
22774 tests: use GstVideoOverlayComposition API for subpicture test.
22776 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22778 * tests/Makefile.am:
22779 * tests/test-subpicture.c:
22780 tests: use common decoder helpers for subpicture test.
22781 Use common decoder helpers for subpicture test, thus allowing to decode
22782 sample images in an alternate format.
22784 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22786 * tests/Makefile.am:
22789 * tests/test-decode.c:
22790 tests: add decoder helpers.
22792 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22794 * gst-libs/gst/vaapi/gstvaapicontext.c:
22795 overlay: fix ordering of composition layers.
22796 Make sure to maintain the association order of composition layers when
22797 GstVideoOverlayRectangle objects are kept around (cached).
22799 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
22801 * gst-libs/gst/vaapi/gstvaapicontext.c:
22802 overlay: fix support for global-alpha.
22803 Fix support for global-alpha subpictures. The previous changes brought
22804 the ability to check for GstVideoOverlayRectangle changes by comparing
22805 the underlying pixel buffer pointers. If sequence number and pixel data
22806 did not change, then this is an indication that only the global-alpha
22807 value changed. Now, try to update the underlying VA subpicture global-alpha
22809 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22811 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22813 * gst-libs/gst/vaapi/gstvaapicontext.c:
22814 overlay: detect render-rect changes.
22815 Don't re-upload VA subpicture if only the render rectangle changed.
22816 Rather deassociate the subpicture and re-associate it with the new
22819 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22821 * gst-libs/gst/vaapi/gstvaapicontext.c:
22822 overlay: fix check for pixels buffer change.
22823 A GstVideoOverlayRectangle is created whenever the underlying pixels data
22824 change. However, when global-alpha is supported, it is possible to re-use
22825 the same GstVideoOverlayRectangle but with a change to the global-alpha
22826 value. This process causes a change of sequence number, so we can no longer
22828 Still, if sequence numbers did not change, then there was no change in
22829 global-alpha either. So, we need a way to compare the underlying GstBuffer
22830 pointers. There is no API to retrieve the original pixels buffer from
22831 a GstVideoOverlayRectangle. So, we use the following heuristics:
22832 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
22833 format flags from which the GstVideoOverlayRectangle was created. This
22834 will work if there was no prior consumer of the GstVideoOverlayRectangle
22835 with alternate (non-"native") format flags.
22836 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
22837 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
22838 with flags that match the subpicture. This is needed to cope with
22839 platforms that don't support global-alpha in HW, so the gst-video
22840 layer takes care of that and fixes this up with a possibly new
22841 GstBuffer, and hence pixels data (or) in-place by caching the current
22842 global-alpha value applied. So we have to determine the rectangle
22843 was previously used, based on what previous flags were used to
22844 retrieve the ARGB pixels buffer.
22846 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22848 * gst-libs/gst/vaapi/gstvaapicontext.c:
22849 overlay: optimize cache at the GstVideoOverlayRectangle level.
22850 We previously assumed that an overlay composition changed if the number
22851 of overlay rectangles in there actually changed, or that the rectangle
22852 was updated, and thus its seqnum was also updated.
22853 Now, we can cope with cases where the GstVideoOverlayComposition grew
22854 by one or a few more overlay rectangles, and the initial overlay rectangles
22857 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22859 * gst-libs/gst/vaapi/gstvaapicontext.c:
22860 overlay: simplify caching of GstVideoOverlayComposition objects.
22861 Create the GPtrArray once in the _init() function and destroy it only
22862 in the _finalize() function. Then use overlay_clear() to remove all
22863 subpicture associations for intermediate updates, don't recreate the
22865 Make GstVaapiOverlayRectangle a reference counted object. Also make
22866 sure that overlay_rectangle_new() actually creates and associates the
22869 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
22871 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
22872 * gst-libs/gst/vaapi/gstvaapiutils.c:
22873 * gst-libs/gst/vaapi/gstvaapiutils.h:
22874 overlay: add support for global-alpha.
22875 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
22876 the same code path could also work for premultiplied-alpha but this
22878 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22880 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
22882 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22883 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22884 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
22885 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
22886 * gst-libs/gst/vaapi/gstvaapisurface.c:
22888 * tests/test-subpicture.c:
22889 subpicture: add support for global-alpha.
22890 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
22891 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
22892 to address this feature.
22893 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22895 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22897 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
22898 * gst-libs/gst/vaapi/gstvaapiutils.c:
22899 * gst-libs/gst/vaapi/gstvaapiutils.h:
22900 subpicture: add premultiplied-alpha and global-alpha feature flags.
22901 Add premultiplied-alpha and global-alpha feature flags, along with converters
22902 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
22903 also necessary for GstVideoOverlayComposition API.
22905 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22907 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22908 display: allow image/subpicture formats with additional flags.
22909 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
22910 and any additional flags needed. Currently, all flags are set to zero.
22912 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22914 * gst-libs/gst/codecparsers/Makefile.am:
22915 * gst-libs/gst/video/Makefile.am:
22916 * tests/Makefile.am:
22917 libs: fix build of submodule wrappers.
22918 Make sure to build codecparsers/ and videoutils/ sources against the
22919 newly generated headers when out-of-source builds are used.
22921 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22924 configure: fix checks for packages installed in non-standard roots.
22926 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22928 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
22929 decoder: fix mini object implementation on 64-bit systems.
22930 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
22931 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
22932 Only a gsize can hold all bits of a pointer.
22933 Thanks to Ouping Zhang for spotting this error.
22935 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22937 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22938 mpeg2: optimize scan for the end of the frame.
22939 Heuristic: if the second start-code is available, check whether that
22940 one marks the start of a new frame because e.g. this is a sequence
22941 or picture header. This doesn't save much, since we already cache the
22944 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22946 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22947 mpeg2: optimize scan for start codes.
22948 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
22949 A start code prefix is defined by the following bytes: 00 00 01. Thus,
22950 for any group of 3 bytes (xx yy zz), we have the following possible cases:
22951 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
22952 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
22953 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
22954 4. xx == 00, yy == 00, zz == 1, we have match!
22955 This algorithm requires to peek bytes from the adapter. This increases the
22956 amount of bytes copied to a temporary buffer, but this process is much faster
22957 than scanning for all the bytes and using shift/masks. So, overall, this is
22960 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22962 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22963 mpeg2: drop useless gst_adapter_peek().
22964 Drop useless gst_adapter_peek() since the returned buffer was not used
22965 and this could incur superfluous memcpy().
22967 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22969 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22970 mpeg2: cosmetics: move parse_slice() down.
22972 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22974 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22975 mpeg2: avoid too many allocations of parser info objects.
22976 Move parsing back to decoding step, but keep functions separate for now.
22977 This is needed for future optimizations that may introduce some meta data
22978 for parsed info attached to codec frames.
22980 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22982 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
22983 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22984 decoder: decoder units are no longer dynamically allocated objects.
22986 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22988 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22989 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
22990 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
22991 decoder: optimize pre-allocation of decoder units.
22992 Optimize pre-allocation of decoder units, thus avoiding un-necessary
22993 memory reallocations. The heuristic used is that we could have around
22994 one slice unit per macroblock line.
22996 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22998 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22999 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
23000 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
23001 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
23002 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
23003 decoder: use an array of units instead of a single-linked list.
23004 Use a GArray to hold decoder units in a frame, instead of a single-linked
23005 list. This makes 'append' calls faster, but not that much. At least, this
23006 makes things clearer.
23008 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23010 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23011 * gst-libs/gst/vaapi/gstvaapidecoder.h:
23012 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23013 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23014 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23015 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23016 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
23017 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
23018 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
23019 decoder: refactor decoder unit API.
23020 Allocate decoder unit earlier in the main parse() function and don't
23021 delegate this task to derived classes. The ultimate purpose is to get
23022 rid of dynamic allocation of decoder units.
23024 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23026 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23027 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
23028 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
23029 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
23031 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23033 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23034 h264: introduce parser info instead of H.264 specific decoder unit.
23035 Use a new GstVaapiParserInfoH264 data structure instead of deriving
23036 from GstVaapiDecoderUnit for H.264 specific parser information.
23038 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23040 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23041 h264: set default values for some header fields.
23042 The SPS, PPS and slice headers are not fully zero-initialized in the
23043 codecparsers/ library. Rather, the standard upstream behaviour is to
23044 initialize only certain syntax elements with some inferred values if
23045 they are not present in the bitstream.
23046 At the gstreamer-vaapi decoder level, we need to further initialize
23047 certain syntax elements with some sensible default values so that to
23048 not complicate VA drivers that just pass those verbatim to the HW,
23049 and also avoid an memset() of the whole decoder unit.
23050 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23051 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23053 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23055 * ext/codecparsers:
23056 codecparsers: update to gst-vaapi-rebased commit b47983a.
23057 b47983a h264: add inferred value for slice_beta_offset_div2
23059 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23061 * gst/vaapi/gstvaapidecode.c:
23062 * gst/vaapi/gstvaapidownload.c:
23063 * gst/vaapi/gstvaapipluginbuffer.c:
23064 * gst/vaapi/gstvaapipluginbuffer.h:
23065 * gst/vaapi/gstvaapipostproc.c:
23066 * gst/vaapi/gstvaapisink.c:
23067 * gst/vaapi/gstvaapiupload.c:
23068 * gst/vaapi/gstvaapiuploader.c:
23069 plugins: cope with new GstVaapiVideoMeta API.
23070 Update plugin elements with the new GstVaapiVideoMeta API.
23071 This also fixes support for subpictures/overlay because GstVideoDecoder
23072 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
23073 is marked as read-only. However, when comes in the textoverlay element
23074 for example, it checks whether the input buffer is writable. Since that
23075 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
23076 does not preserve the parent field, the generated buffer in textoverlay
23077 is not exploitable because we lost all VA specific information.
23078 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
23079 all information are preserved through gst_buffer_copy() since the latter
23080 does copy metadata (qdata in this case).
23082 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23084 * gst-libs/gst/vaapi/Makefile.am:
23085 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
23086 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
23087 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
23088 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
23089 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
23090 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
23091 videobuffer: wrap video meta into a surface buffer.
23092 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
23093 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
23094 expecting a GstSurfaceBuffer like Clutter.
23096 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23098 * gst-libs/gst/vaapi/Makefile.am:
23099 * gst-libs/gst/vaapi/gstvaapivideometa.c:
23100 * gst-libs/gst/vaapi/gstvaapivideometa.h:
23101 videobuffer: add video meta information.
23102 Add new GstVaapiVideoMeta object that holds all information needed to
23103 convey gst-vaapi specific data as a GstBuffer.
23105 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23107 * gst/vaapi/gstvaapidecode.c:
23108 vaapidecode: fix calculation of the time-out value.
23109 Fix calculation of the time-out value for cases where no VA surface is
23110 available for decoding. In this case, we need to wait until downstream
23111 sink consumed at least one surface. The time-out was miscalculated as
23112 it was always set to <current-time> + one second, which is not suitable
23113 for streams with larger gaps.
23115 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23117 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23118 decoder: always use the calculated presentation timestamp.
23119 Use PTS value computed by the decoder, which could also be derived from
23120 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
23121 the original one was miscomputed or only represented a DTS instead.
23123 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23125 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23126 h264: don't create sub-buffer for slice data.
23128 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23130 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23131 decoder: create new context when encoded resolution changes.
23132 Create a new VA context if the encoded surface size changes because we
23133 need to keep the underlying surface pool until the last one was released.
23134 Otherwise, either of the following cases could have happened: (i) release
23135 a VA surface to an inexistent pool, or (ii) release VA surface to an
23136 existing surface pool, but with different size.
23138 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23140 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23141 mpeg2: don't create sub-buffer for slice data.
23142 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
23143 frame input buffer data. This is possible because the codec frame is valid
23144 until end_frame() where we submit the VA buffers for decoding. Anyway, the
23145 slice data buffer is copied into the VA buffer when it is created.
23147 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23149 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23150 mpeg2: minor clean-ups.
23151 Drop explicit initialization of most fields that are implicitly set to
23152 zero. Remove some useless checks for NULL pointers.
23154 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23156 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23157 mpeg2: optimize scan for the second start code.
23158 Optimize scan for the second start code, on the next parse() call so that
23159 to avoid scanning again earlier bytes where we didn't find any start code.
23161 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23163 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23164 mpeg2: use sequence_display_extension() to compute PAR.
23165 Also compute pixel-aspect-ratio from sequence_display_extension(),
23166 should it exist in the bitstream.
23168 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23170 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23171 mpeg2: handle sequence_display_extension().
23173 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23175 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23176 mpeg2: implement {start,end}_frame() hooks.
23177 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
23178 that to create new VA context earlier and submit VA pictures to the
23179 HW for decoding as soon as possible. i.e. don't wait for the next
23180 frame to start decoding the previous one.
23182 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23184 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23185 mpeg2: parse slice() header earlier.
23186 Parse slice() header and first macroblock position earlier in _parse()
23187 function instead of waiting for the _decode() stage. This doesn't change
23188 anything but readability.
23190 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23192 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23193 mpeg2: add codec specific decoder unit.
23194 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
23195 GstMpegVideoPacket and additional parsed header info. Besides, we now
23196 parse as early as in the _parse() function so that to avoid un-necessary
23197 creation of sub-buffers in _decode() for video packets that are not slices.
23199 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23201 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23202 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
23203 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
23204 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
23205 decoder: introduce lists of units to decode before/after frame.
23206 Theory of operations: all units marked as "slice" are moved to the "units"
23207 list. Since this list only contains slice data units, the prev_slice pointer
23208 was removed. Besides, we now maintain two extra lists of units to be decoded
23209 before or after slice data units.
23210 In particular, all units in the "pre_units" list will be decoded before
23211 GstVaapiDecoder::start_frame() is called and units in the "post_units"
23212 list will be decoded after GstVaapiDecoder::end_frame() is called.
23214 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23216 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23217 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23218 decoder: drop useless checks for codec objects.
23219 Codec objects are used internally only and they are bound to be created
23220 with a valid GstVaapiDecoder object.
23222 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23224 * gst/vaapi/gstvaapidecode.c:
23225 vaapidecode: use GST_ERROR to print error messages.
23227 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23229 * gst/vaapi/gstvaapidecode.c:
23230 vaapidecode: avoid double release of frame on error.
23231 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
23232 was already called before and it returned an error. In that case, we were
23233 releasing the frame again, thus leading to a "double-free" condition.
23235 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23242 * gst-libs/gst/Makefile.am:
23243 * gst-libs/gst/vaapi/Makefile.am:
23244 * gst-libs/gst/video/Makefile.am:
23245 * gst/vaapi/Makefile.am:
23246 Add videoutils submodule for GstVideoDecoder APIs.
23248 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23251 configure: check for GstVideoDecoder API.
23252 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
23253 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
23254 parties may either use upstream git 0.10 branch or backport the necessary support
23255 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
23257 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23259 * docs/reference/libs/libs.core.types:
23260 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
23261 GstVaapiSurfaceProxy is no longer based on the GType system.
23263 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23265 * docs/reference/libs/libs-sections.txt:
23266 docs: fix entries for GstVaapiSurfaceProxy.
23268 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23273 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23276 * gst-libs/gst/vaapi/Makefile.am:
23277 Bump library major version.
23278 Increase library major so that to cope with API/ABI incompatible changes
23279 since 0.4.x series and avoid user issues.
23281 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23283 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23284 surfaceproxy: minor clean-ups.
23286 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23288 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23289 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23290 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23291 surfaceproxy: drop accessors to obsolete attributes.
23292 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
23293 VA surface. i.e. drop any other attribute like timestamp, duration,
23294 interlaced or top-field-first.
23296 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23298 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23299 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23300 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23301 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
23302 * gst/vaapi/gstvaapidecode.c:
23303 decoder: maintain decoded frames as GstVideoCodecFrame objects.
23304 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
23305 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
23306 the strict minimum: a context and a surface.
23308 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23310 * gst/vaapi/gstvaapidecode.c:
23311 vaapidecode: output all decoded frames as soon as possible.
23312 Make sure to push all decoded frames downstream as soon as possible.
23313 This makes sure we don't need to wait for a new frame to be ready to
23314 be decoded before receiving new decoded frames.
23315 This also separates the decode process and the output process. The latter
23316 could be moved to a specific GstTask later on.
23318 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23320 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23321 * gst-libs/gst/vaapi/gstvaapidecoder.h:
23322 decoder: add gst_vaapi_decoder_get_frame() API.
23323 Add new gst_vaapi_decoder_get_frame() function meant to be used with
23324 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
23325 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
23326 as the user-data object.
23328 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23330 * gst/vaapi/gstvaapipostproc.c:
23331 vaapipostproc: use GstBuffer flags for TFF.
23332 Determine whether the buffer represents the top-field only by checking for
23333 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
23334 flag. Also trust "interlaced" caps to determine whether the input frame
23335 is interleaved or not.
23337 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23339 * gst/vaapi/gstvaapipostproc.c:
23340 vaapipostproc: handle video sub-buffers.
23341 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
23342 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
23344 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23346 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23347 h264: optimize initialization process of decoder units.
23348 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
23349 The latter don't require zero-initialization since the codecparsers/ lib
23350 will do so for key variables already. This is not a great value per se but
23351 at least it makes it possible to check whether the default initialization
23352 decisions made in the codecparsers/ lib were right or not.
23353 This can be reverted if this exposes too many issues.
23355 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23357 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23358 h264: minor clean-ups.
23359 Drop explicit initialization of most fields that are implicitly set to
23360 zero. Drop helper macros for casting to GstVaapiPictureH264 or
23361 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
23363 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23365 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23366 h264: drop GstVaapiSliceH264 object.
23367 Use standard GstVaapiSlice object from now on since we already have
23368 parsed and recorded the slice headers (GstH264SliceHdr decode units).
23370 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23372 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23373 h264: detect new pictures from decode-units.
23374 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
23375 of assuming frame boundaries when first_mb_in_slice is zero.
23377 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23379 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23380 h264: implement {start,end}_frame() hooks.
23381 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
23382 that to create new VA context earlier and submit VA pictures to the
23383 HW for decoding as soon as possible. i.e. don't wait for the next
23384 frame to start decoding the previous one.
23386 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23388 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23389 h264: optimize scan for the second start code.
23390 Optimize scan for the second start code, on the next parse() call so that
23391 to avoid scanning again earlier bytes where we didn't find any start code.
23393 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23395 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23396 h264: add codec specific decoder unit.
23397 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
23398 NAL unit header (GstH264NalUnit) and additional parsed header info.
23399 Besides, we now parse headers as early as in the _parse() function so
23400 that to avoid un-necessary creation of sub-buffers in _decode() for
23401 NAL units that are not slices.
23402 This is a performance win by ~+1.1% only.
23404 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23406 * gst/vaapi/gstvaapisink.c:
23407 vaapisink: handle sub video-buffers.
23408 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
23409 for non raw YUV cases. Make sure vaapisink now understands those buffers.
23411 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23413 * gst/vaapi/gstvaapidecode.c:
23414 vaapidecode: use gst_vaapi_decoder_get_codec_state().
23415 Directly use the GstVideoCodecState associated with the VA decoder
23416 instead of parsing caps again.
23417 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23418 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23420 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23422 * gst/vaapi/gstvaapidecode.c:
23423 vaapidecode: use more standard helpers.
23424 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
23427 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23429 * gst/vaapi/gstvaapidecode.c:
23430 * gst/vaapi/gstvaapidecode.h:
23431 vaapidecode: move to GstVideoDecoder base class.
23432 Make vaapidecode derive from the standard GstVideoDecoder base element
23433 class. This simplifies the code to the strict minimum for the decoder
23434 element and makes it easier to port to GStreamer 1.x API.
23435 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23436 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23438 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23440 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
23441 jpeg: initial port to new GstVaapiDecoder API
23443 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23445 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
23446 vc1: initial port to new GstVaapiDecoder API
23448 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23450 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23451 h264: initial port to new GstVaapiDecoder API
23453 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23455 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
23456 mpeg4: initial port to new GstVaapiDecoder API
23458 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23460 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23461 mpeg2: initial port to new GstVaapiDecoder API.
23463 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23465 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23466 * gst-libs/gst/vaapi/gstvaapidecoder.h:
23467 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
23468 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
23469 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23470 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23471 decoder: use GstVideoCodecState.
23472 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
23473 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
23474 it possible to drop picture size (width, height) information, framerate
23475 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
23476 and interlace mode (is_interlaced field).
23477 This is a new API with backwards compatibility maintained. In particular,
23478 gst_vaapi_decoder_get_caps() is still available.
23479 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23480 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23482 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23484 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23485 * gst-libs/gst/vaapi/gstvaapidecoder.h:
23486 * tests/test-decode.c:
23487 * tests/test-subpicture.c:
23488 decoder: update gst_vaapi_decoder_get_surface() semantics.
23489 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
23490 API. That is, return a GstVaapiDecoderStatus and the decoded surface
23491 as a handle to GstVaapiSurfaceProxy in parameter.
23492 This is an API/ABI change.
23494 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23496 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23497 decoder: use standard helper functions.
23498 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
23499 whenever necessary.
23501 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23503 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23504 * gst-libs/gst/vaapi/gstvaapidecoder.h:
23505 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23506 decoder: expose new parse/decode API.
23507 Introduce new decoding process whereby a GstVideoCodecFrame is created
23508 first. Next, input stream buffers are accumulated into a GstAdapter,
23509 that is then passed to the _parse() function. The GstVaapiDecoder object
23510 accumulates all parsed units and when a complete frame or field is
23511 detected, that GstVideoCodecFrame is passed to the _decode() function.
23512 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
23513 process was successful.
23515 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23517 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23518 * gst-libs/gst/vaapi/gstvaapidecoder.h:
23519 decoder: add {start,end}_frame() hooks.
23520 The start_frame() hook is called prior to traversing all decode-units
23521 for decoding. The unit argument represents the first slice in the frame.
23522 Some codecs (e.g. H.264) need to wait for the first slice in order to
23523 determine the actual VA context parameters.
23525 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23527 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23528 * gst-libs/gst/vaapi/gstvaapidecoder.h:
23529 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
23530 decoder: add new GstVaapiDecoder API.
23531 Split decoding process into two steps: (i) parse incoming bitstreams
23532 into simple decoder-units until the frame or field is complete; and
23533 (ii) decode the whole frame or field at once.
23534 This is an ABI change.
23536 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23538 * gst-libs/gst/vaapi/Makefile.am:
23539 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
23540 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
23541 decoder: add new "decoder-frame" object.
23542 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
23543 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
23544 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
23545 as the user-data member element.
23546 This is a libgstvaapi internal object.
23548 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23550 * gst-libs/gst/vaapi/Makefile.am:
23551 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
23552 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
23553 decoder: add new "decoder-unit" object.
23554 Introduce GstVaapiDecoderUnit which represents a fragment of the source
23555 stream to be decoded. For instance, a decode-unit will be a NAL unit for
23556 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
23558 This is a libgstvaapi internal object.
23560 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23562 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23563 Port GstVaapiFrameStore to GstVaapiMiniObject.
23565 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23567 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23568 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23569 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23570 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23571 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23572 Port codec objects to GstVaapiMiniObject.
23574 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23576 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23577 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23578 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23579 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23580 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
23581 * gst/vaapi/gstvaapidecode.c:
23582 * gst/vaapi/gstvaapipluginbuffer.c:
23583 * tests/test-decode.c:
23584 * tests/test-subpicture.c:
23585 surfaceproxy: port to GstVaapiMiniObject.
23586 GstVaapiSurfaceProxy does not use any particular functionality from
23587 GObject. Actually, it only needs a basic object type with reference
23589 This is an API and ABI change.
23591 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23593 * gst-libs/gst/vaapi/Makefile.am:
23594 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
23595 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
23596 Add GstVaapiMiniObject.
23597 Introduce a new reference counted object that is very lightweight and
23598 also provides flags and user-data functionalities. Initialization and
23599 finalization times are reduced by up to a factor 5x vs GstMiniObject
23600 from GStreamer 0.10 stack.
23601 This is a libgstvaapi internal object.
23603 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23605 * tests/Makefile.am:
23606 * tests/test-decode.c:
23607 * tests/test-mpeg4.c:
23608 * tests/test-mpeg4.h:
23609 tests: add test for MPEG-4:2 decoding.
23611 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23613 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23614 h264: initialize VA context before allocating the first slice.
23615 Fix decode_slice() to ensure a VA context exists prior to creating a
23616 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
23617 context ID. i.e. the latter was not initialized, thus causing failures
23618 on Cedar Trail for example.
23620 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
23623 configure: install plugin elements in GST_PLUGIN_PATH, if set.
23624 If GST_PLUGIN_PATH environment variable exists and points to a valid
23625 directory, then use it as the system installation path for gst-vaapi
23627 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23629 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23632 configure: downgrade glib required version to 2.28.
23634 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23636 * gst-libs/gst/vaapi/glibcompat.h:
23637 * gst/vaapi/gstvaapi.c:
23638 libs: fix compatibility with glib 2.28.
23639 Always prefer non deprecated APIs by default and provide compatibility
23640 glue for older glib versions when necessary.
23642 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23644 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23645 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23646 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23647 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
23648 libs: use glib >= 2.32 semantics for mutexes.
23649 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
23650 and termination. Basically, the new mutex objects can be used as static
23651 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
23653 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23655 * gst-libs/gst/vaapi/Makefile.am:
23656 libs: only export gst_vaapi_*() symbols.
23657 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
23658 library and the system-provided one, mainly used by videoparses/. Now,
23659 only symbols with the gst_vaapi_* prefix will be exported, if they are
23660 not marked as "hidden" to libgstvaapi.
23662 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23664 * gst/vaapi/gstvaapiuploader.c:
23665 vaapiupload: reset direct-rendering to zero when changing caps.
23666 Make sure to reset direct-rendering flag to zero when caps are changed,
23667 and only derive it to one when the next checks succeed.
23669 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23671 * gst/vaapi/gstvaapiupload.c:
23672 vaapiupload: fix sink caps to report the supported set of YUV caps.
23673 Try to allocate the GstVaapiUploader helper object prior to listing the
23674 supported image formats. Otherwise, only a single generic caps is output
23675 with no particular pixel format referenced in there.
23677 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
23679 * gst/vaapi/gstvaapiupload.c:
23680 * gst/vaapi/gstvaapiupload.h:
23681 vaapiupload: use new GstVaapiUploader helper.
23682 Use GstVaapiUploader helper that automatically handles direct rendering
23683 mode, thus making the "direct-rendering" property obsolete and hence it
23685 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
23686 really well supported and it could actually trigger degraded performance.
23687 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23689 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23691 * gst/vaapi/gstvaapisink.c:
23692 * gst/vaapi/gstvaapiuploader.c:
23693 * gst/vaapi/gstvaapiuploader.h:
23694 vaapisink: compute and expose the supported set of YUV caps.
23695 Make vaapisink expose only the set of supported caps for raw YUV buffers.
23696 Add gst_vaapi_uploader_get_caps() helper function to determine the set
23697 of supported YUV caps as source (for images). This function actually
23698 tries to zero and upload each image to a 64x64 test surface. Of course,
23699 this relies on VA drivers to not claim success if vaPutImage() is not
23700 correctly supported.
23702 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23705 * gst/vaapi/Makefile.am:
23706 * gst/vaapi/gstvaapisink.c:
23707 * gst/vaapi/gstvaapisink.h:
23708 * gst/vaapi/gstvaapiuploader.c:
23709 * gst/vaapi/gstvaapiuploader.h:
23710 vaapisink: add support for raw YUV buffers.
23711 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
23712 It is up to the caller to negotiate source caps (for images) and output
23713 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
23714 to help decide between the creation of a GstVaapiVideoBuffer or a regular
23715 GstBuffer on sink pads.
23716 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
23717 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23719 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23721 * gst-libs/gst/vaapi/gstvaapiimage.c:
23722 image: fix GstVaapiImage map and unmap.
23723 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
23724 structure correctly filled in if the image was already mapped.
23725 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
23726 was already unmapped.
23728 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
23731 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
23732 videobuffer: fix memory leak for surface and image.
23733 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
23734 thus resulting on actual memory leak of GstVaapiImage when using them
23735 for downloads/uploads from VA surfaces and more specifically surfaces
23736 when the pipeline is shutdown. i.e. vaTerminate() was never called
23737 because the resources were not unreferenced, and thus not deallocated
23739 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23741 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23746 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23748 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23749 h264: fix picture size in macroblocks.
23750 The picture size signalled by sps->{width,height} is the actual size with
23751 cropping applied, not the original size derived from pic_width_in_mbs_minus1
23752 and pic_height_in_map_units_minus1. VA driver expects that original size,
23754 There is another issue pending: frame cropping information needs to be
23757 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23759 * gst-libs/gst/codecparsers/Makefile.am:
23760 codecparsers: always build parserutils first.
23761 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
23762 This is needed since that's the common dependency for actual codec
23763 parsers (gstvc1parser.c for instance).
23765 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23767 * gst-libs/gst/codecparsers/Makefile.am:
23768 codecparsers: always build the VC-1 parser library.
23769 ... this is useful to make sure pixel-aspect-ratio and framerate
23770 information are correctly parsed since we have no means to detect
23771 that at configure time.
23773 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23776 * gst-libs/gst/codecparsers/Makefile.am:
23777 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
23778 mpeg2: fix PAR calculation from commit bd11bae.
23779 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
23780 correct PAR values. While doing so, require a newer version of the
23781 bitstream parser library.
23782 Note: it may be necessary to also parse the Sequence_Display_Extension()
23784 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
23785 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23787 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23789 * gst-libs/gst/vaapi/Makefile.am:
23790 Fix build with the GNU gold linker.
23791 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
23792 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
23794 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
23797 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23798 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23799 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
23800 wayland: port to 1.0 version of the protocol.
23801 This patch updates to relect the 1.0 version of the protocol. The main
23802 changes are the switch to wl_registry for global object notifications
23803 and the way that the event queue and file descriptor is processed.
23804 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23806 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23808 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23809 h264: fix incorrect integration of previous commit (4d31e1e).
23810 git am got confused somehow, though the end result doesn't change at
23811 all since we require both SPS and PPS to be parsed prior to decoding
23814 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23816 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23817 h264: start decoding slices after first SPS/PPS activation.
23818 Only start decoding slices when at least one SPS and PPS got activated.
23819 This fixes cases when a source represents a substream of another stream
23820 and no SPS and PPS was inserted before the first slice of the generated
23823 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23825 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23826 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
23827 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
23828 contain up to 32 fields but VA ReferenceFrames[] array expects up to
23829 16 reference frames, thus including both fields.
23831 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23833 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23834 h264: fix interlaced stream decoding with MMCO.
23835 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
23836 is equal to 1, i.e. when memory management control operations are used. In
23837 particular, when field_pic_flag is set to 0, the new reference flags shall
23838 be applied to both fields.
23840 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23842 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23843 h264: add initial support for interlaced streams.
23844 Decoded frames are only output when they are complete, i.e. when both
23845 fields are decoded. This also means that the "interlaced" caps is not
23846 propagated to vaapipostproc or vaapisink elements. Another limitation
23847 is that interlaced bitstreams with MMCO are unlikely to work.
23849 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23851 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23852 h264: split remove_reference_at() into finer units.
23853 Split remove_reference_at() into a function that actually removes the
23854 specified entry from the short-term or long-term reference picture array,
23855 and a function that sets reference flags to the desired value, possibly
23856 zero. The latters marks the picture as "unused for reference".
23858 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23860 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23861 decoder: fix gst_vaapi_picture_new_field() object type.
23862 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
23863 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
23864 shall generate a GstVaapiPictureH264 object.
23866 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23868 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23869 h264: add picture structure for reference picture marking process.
23870 Introduce new `structure' field to the H.264 specific picture structure
23871 so that to simplify the reference picture marking process. That local
23872 picture structure is derived from the original picture structure, as
23873 defined by the syntax elements field_pic_flag and bottom_field_flag.
23875 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23877 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23878 h264: introduce new frame store structure.
23879 The frame store represents a Decoded Picture Buffer entry, which can
23880 hold up to two fields. So far, the frame store is only used to hold
23883 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23885 * ext/codecparsers:
23886 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
23887 73d6aab h264: fix rbsp_more_data() implementation
23888 25d04cf h264: fix error code for invalid size parsed in SPS
23889 84798e5 fix FSF address
23891 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23893 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23894 h264: minor clean-ups.
23895 Move DPB flush up if the current picture to decode is an IDR. Besides,
23896 don't bother to check for IDR pictures in dpb_add() function since an
23897 explicit DPB flush was already performed in this case.
23899 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23901 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23902 h264: simplify reference picture marking process.
23903 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
23904 of maintaining them separately. This avoids refs/unrefs while making it
23905 possible to generate the list based on the actual picture structure.
23906 This also ensures that the list of generated ReferenceFrames[] actually
23907 matches what reference frames are available in the DPB. i.e. short_ref[]
23908 and long_ref[] entries are implied from the DPB, so there is no risk of
23909 having "dangling" references.
23911 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23913 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23914 h264: introduce per-field POC in GstVaapiPictureH264.
23915 Use the POC member available in the GstVaapiPicture base class and
23916 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
23917 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
23918 initialized to INT_MAX, so that to simplify picture POC calculation
23919 for non frame pictures.
23921 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23923 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23924 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
23925 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
23926 reference bits, thus simplifying the reference picture marking process
23927 to only track a single set of reference flags. Also introduce a new
23928 long_term_frame_idx member.
23930 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23932 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23933 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
23935 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23937 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23938 h264: fill in GstVaapiPicture structure.
23939 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
23941 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23943 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23944 h264: add vaapi_fill_picture() helper.
23945 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
23946 to VAPictureH264 structure. This is preparatory work to get rid of the
23947 local VAPictureH264 member in GstVaapiPictureH264.
23949 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23951 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23952 h264: fix activation order of picture and sequence parameters.
23953 Delay ensure_context() until we actually need a VA context for allocating
23954 new VA surfaces, and then GstVaapiPictures, but also when a real activation
23955 of a new picture parameter set occurs, thus also implying an activation
23956 of the related sequence parameter set.
23957 The most important thing was to drop the global pps and sps pointers since
23958 they may not have matched the currently activated picture parameter or
23959 sequence parameter sets at the specified decode point.
23960 Anoter positive side-effect is that this cleans up all occurrences of
23961 decode_current_picture() to only keep those useful in decode_picture(),
23962 before a new picture is allocated, or in decode_sequence_end() when
23963 an end-of-stream or end-of-sequence condition occurred.
23965 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23967 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23968 h264: fix scaling list generation.
23969 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
23970 array was partially copied to the VAIQMatrixBufferH264. While we are
23971 at it, also improve bounds checking and avoid copying 8x8 scaling
23972 lists if transform_8x8_mode_flag is set to 0.
23974 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23976 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23977 h264: fix detection of picture boundaries.
23978 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
23979 unit of a primary coded picture.
23981 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23983 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23984 h264: optimize handling of scaling lists.
23985 Don't copy scaling lists twice to an intermediate state. Rather, directly
23986 use the scaling lists from GstH264PPS since they would match those provided
23987 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
23988 available in the bitstream.
23990 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23992 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23993 h264: simplify code when MMCO is 5.
23994 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
23995 is now updated accordingly to the standard. Besides, MMCO = 5 specific
23996 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
23998 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24000 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24001 h264: fix MMCO-based reference picture marking process.
24002 Fix adaptive memory control decoded reference picture marking process
24003 implementation for operations 2 to 6, thus also fixing support for
24004 long-term reference pictures.
24006 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24008 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24009 h264: move MMCO handlers out of the loop (cosmetics).
24010 This change only splits each individual MMCO handler into several functions
24011 dedicated for each operation. This is needed to perform further work later
24014 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24017 debian: fix make dist for packaging.
24018 bzip2 tarballs are now used, so update the deb.upstream dependencies
24019 to include dist-bzip2 instead of plain old dist, and use the correct
24020 tar extract options to handle that format.
24022 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24025 configure: generate bzip2 tarballs in ustar format by default.
24027 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24030 configure: bump glib required version to 2.31.2.
24031 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
24032 rather than g_mutex_new() and g_cond_new() respectively.
24034 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
24036 * gst/vaapi/gstvaapidecode.c:
24037 * gst/vaapi/gstvaapidecode.h:
24038 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
24039 The use of heap allocated GMutex/GCond is deprecated. Instead place them
24040 inside the structure they are locking.
24041 These changes switch to use g_mutex_init/g_cond_init rather than the heap
24042 allocation functions.
24043 Because we cannot test for a NULL pointer for the GMutex/GCond we must
24044 initialise inside the GObject _init function and clear inside the _finalize
24045 which is guaranteed to only be called once and after the object is no longer
24048 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24050 * gst/vaapi/gstvaapidecode.c:
24051 vaapidecode: fix compiler warnings.
24052 Don't care of the return value for gst_vaapi_decoder_put_buffer()
24053 during destruction of the element. Don't print out (uninitialised)
24054 error code when allocation of video buffer failed.
24056 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24058 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24059 h264: add flag to compile with strict DPB ordering mode.
24060 Allow build with strict DPB ordering mode whereby evicted entries
24061 are replaced by the next entries, in order instead of optimizing
24062 it away with the last entry in the DPB.
24063 This is only useful for debugging purpose, against a reference SW
24064 decoder for example.
24066 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24068 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24069 h264: drop extra code covered by built-in codecparsers.
24070 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
24071 a newer version of codecparsers/ are used if the system provided one is
24072 now recent enough to have those required extensions.
24074 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24076 * gst-libs/gst/codecparsers/Makefile.am:
24077 codecparsers: fix generation of symlinks.
24078 Try to improve dependencies while generating symlinks to externally
24079 maintained copy of codecparsers (derived from upstream git master
24082 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24084 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24085 vc1: use framerate information from bitstream parser.
24087 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
24089 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24090 vc1: use pixel-aspect-ratio from bitstream parser.
24091 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
24092 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24094 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
24096 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24097 mpeg2: use pixel-aspec-ratio information from bitstream parser.
24098 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
24099 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24101 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24104 * gst-libs/gst/codecparsers/Makefile.am:
24105 codecparsers: h264: use submodule sources.
24106 Use newer sources from the codecparsers/ submodule for
24107 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
24108 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
24110 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24114 * gst-libs/gst/codecparsers/Makefile.am:
24115 * gst-libs/gst/codecparsers/gstjpegparser.c:
24116 * gst-libs/gst/codecparsers/gstjpegparser.h:
24117 * gst-libs/gst/vaapi/Makefile.am:
24118 codecparsers: jpeg: use submodule sources.
24120 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24127 * ext/codecparsers:
24128 Add codecparsers submodule.
24130 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24133 .gitignore: updates.
24135 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24138 autogen: fix check for gtkdocize and autoreconf.
24139 If gtkdocize or autoreconf programs were not found, then the autogen.sh
24140 script would fail to report that correctly because test -z was not passed
24141 any argument (empty string "" in this case).
24143 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
24145 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24146 h264: use pixel-aspect-ratio from SPS header.
24147 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
24148 from the sequence headers.
24149 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
24150 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24152 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24154 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24155 h264: add decode_nalu() helper function.
24156 Split decode_buffer() into the core infrastructure that determines
24157 the NAL units contained in the adapter and the actual function that
24158 decodes the NAL unit.
24160 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24162 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24163 h264: fix end-of-stream conditions (flush).
24164 Decode pending data in the adapter prior to processing the actual
24165 code for end-of-stream.
24167 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24169 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24170 mpeg2: add decode_packet() helper function.
24171 Split decode_buffer() into the core infrastructure that determines
24172 the packets contained in the adapter and the actual function that
24173 decodes the packet data.
24175 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24177 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24178 mpeg2: fix end-of-stream conditions (flush).
24179 Decode pending data in the adapter prior to processing the actual
24180 code for end-of-stream. Initial code from Feng Yuan.
24182 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24184 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24185 mpeg2: fix memory leak of empty packets.
24186 Fix memory leakage of empty packets, i.e. packets that only contain
24187 the start code prefix. In particular, free empty user-data packets.
24188 Besides, the codec parser will already fail gracefully if the packet
24189 to parse does not have the minimum required size. So, we can also
24190 completely drop the block of code that used to handle packets of size 4
24191 (including the start code).
24193 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24195 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24196 mpeg2: fix return value for "no-data" conditions.
24197 Fix return value when the second scan for start code fails. This means
24198 there is not enough data to determine the full extents of the current
24199 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
24200 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
24202 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24204 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24205 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
24206 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
24207 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
24208 or with a size equals to zero. In this case, that buffer is simply
24209 skipped and the function returns TRUE. A NULL buffer argument still
24210 marks the end-of-stream.
24212 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24214 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24215 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24216 decoder: drop unused functions.
24218 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
24220 * gst/vaapi/gstvaapidecode.c:
24221 vaapidecode: flush buffers when receiving EOS.
24222 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24224 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24226 * debian.upstream/Makefile.am:
24227 debian: fix make dist for packaging.
24229 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24231 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24232 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24233 wayland: cosmetics (remove tabs).
24235 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
24237 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24238 wayland: add support for windowed mode.
24239 Rather than always making the surface fullscreen instead implement the
24240 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
24241 fullscreen on not depending on that.
24242 Reviewed-by: Joe Konno <joe.konno@intel.com>
24243 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24245 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24248 Bump version for development.
24250 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24254 Fix and document build dependencies better.
24256 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24258 * debian.upstream/control.in:
24259 debian: fix GStreamer build dependencies.
24261 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24264 * debian.upstream/control.in:
24265 debian: fix Wayland build dependencies.
24267 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24269 * debian.upstream/control.in:
24270 debian: fix conditional build of packages.
24271 Make it still possible to build package even if one of the build dependencies
24272 for a specific video backend is not available.
24274 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24276 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24277 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24278 utils: drop unused GLX helpers.
24279 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
24280 extensions since they are not used throughout gstreamer-vaapi.
24282 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24284 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24285 utils: fix build with <GL/glext.h> version >= 85.
24286 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
24287 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
24288 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
24289 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
24290 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
24291 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
24292 newer versions of the <GL/glext.h> header.
24294 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24297 configure: update VA-API version requirements.
24298 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
24300 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24302 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24303 h264: review and report errors accordingly.
24304 Use GST_ERROR() to report real errors instead of hiding them into
24307 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24309 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24310 h264: exclusively use GstAdapter, drop sub-buffer hack.
24311 Maintaining the sub-buffer is rather suboptimal especially since we
24312 were also maintaining a GstAdapter. Now, we only use the GstAdapter
24313 thus requiring minor extra parsing when receiving avcC buffers.
24315 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24320 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24325 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24327 * debian.upstream/gstreamer-vaapi.install.in:
24328 debian: fix packaging on recent Ubuntu platforms.
24329 Use explicit GStreamer plugins path.
24331 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24333 * docs/reference/libs/libs-docs.xml.in:
24334 * docs/reference/libs/libs.core.types:
24335 docs: fix build for make dist.
24337 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
24339 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24340 wayland: set opaque region for YUV surface.
24341 This allows the compositor to optimize redraws and cull away changes
24342 obscured by the video surface.
24343 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24345 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24348 configure: fix check for libva-glx and libva-drm.
24350 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24352 * gst-libs/gst/vaapi/glibcompat.h:
24353 glibcompat: add replacement for g_cond_wait_until().
24355 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24357 * gst/vaapi/gstvaapidecode.c:
24358 * gst/vaapi/gstvaapidownload.c:
24359 * gst/vaapi/gstvaapipostproc.c:
24360 * gst/vaapi/gstvaapisink.c:
24361 * gst/vaapi/gstvaapiupload.c:
24362 plugins: include "sysdeps.h" instead of "config.h".
24364 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24366 * gst-libs/gst/codecparsers/gstjpegparser.c:
24367 codecparsers: jpeg: add missing includes.
24369 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24371 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24372 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24373 * gst/vaapi/gstvaapidecode.c:
24374 vaapidecode: don't reset decoder if codec type is the same.
24375 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
24376 if the underlying codec type actually changed. This makes it possible
24377 to be more tolerant with certain MPEG-2 streams that get parsed to
24378 form caps that are compatible with the previous state but minor changes
24381 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24383 * gst/vaapi/gstvaapidecode.c:
24384 vaapidecode: simplify codec lookup from caps.
24385 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
24386 the specified caps. Don't globally expose this function since this is
24387 really trivial and only used in the vaapidecode element.
24389 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24391 * gst/vaapi/gstvaapidecode.c:
24392 * gst/vaapi/gstvaapidecode.h:
24393 vaapidecode: improve "no free surface" conditions.
24394 Previously, vaapidecode would wait up to one second until a free surface
24395 is available, or it aborts decoding. Now, vaapidecode waits until the
24396 last decoded surface was to be presented, plus one second. Besides, end
24397 times are now expressed relative to the monotonic clock.
24399 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24401 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24402 * gst/vaapi/gstvaapidecode.c:
24403 decoder: propagate buffer duration downstream.
24405 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24407 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24408 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24409 surfaceproxy: add "duration" property.
24411 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24413 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24414 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24415 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24416 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24417 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24418 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24419 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24420 decoder: cope with new GstVaapiContextInfo based API.
24421 Update decoders to report the maximum number of reference frames to use.
24423 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24425 * gst-libs/gst/vaapi/gstvaapicontext.c:
24426 context: JPEG codec does not need any reference frame.
24428 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24430 * gst-libs/gst/vaapi/gstvaapicontext.c:
24431 * gst-libs/gst/vaapi/gstvaapicontext.h:
24432 context: allow number of reference frames to be set.
24433 Make it possible to specify the maximum number of references to use within
24434 a single VA context. This helps reducing GPU memory allocations to the useful
24435 number of references to be used.
24437 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24439 * gst/vaapi/gstvaapipostproc.c:
24440 vaapipostproc: fix deinterlace-{mode,method} types definition.
24442 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24444 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24445 mpeg4: fix debug info for unsupported profile.
24447 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24449 * gst-libs/gst/vaapi/gstvaapicontext.c:
24450 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24451 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24452 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24453 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24454 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24455 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24456 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24457 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24458 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24459 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24460 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24461 * gst-libs/gst/vaapi/gstvaapiimage.c:
24462 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24463 * gst-libs/gst/vaapi/gstvaapiobject.c:
24464 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24465 * gst-libs/gst/vaapi/gstvaapisurface.c:
24466 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24467 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24468 * gst-libs/gst/vaapi/gstvaapitexture.c:
24469 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24470 * gst-libs/gst/vaapi/gstvaapivalue.c:
24471 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
24472 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
24473 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
24474 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24475 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24476 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24477 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24478 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24479 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24480 libs: fix build in strict ISO C mode.
24482 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24484 * gst/vaapi/gstvaapi.c:
24485 * gst/vaapi/gstvaapidecode.c:
24486 * gst/vaapi/gstvaapidownload.c:
24487 * gst/vaapi/gstvaapipostproc.c:
24488 * gst/vaapi/gstvaapisink.c:
24489 * gst/vaapi/gstvaapiupload.c:
24490 plugins: fix build in strict ISO C mode.
24492 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24494 * pkgconfig/gstreamer-vaapi-glx.pc.in:
24495 * pkgconfig/gstreamer-vaapi-x11.pc.in:
24496 * pkgconfig/gstreamer-vaapi.pc.in:
24497 pkgconfig: fix dependencies and slightly improve description.
24498 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
24499 descriptions with clearer renderer names.
24501 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
24503 * gst/vaapi/gstvaapidecode.c:
24504 vaapidecode: acquire lock only if the mutex exists.
24505 When playback stops the GstVaapiDecode object is reset into a clean
24506 state. However, surfaces may still be referenced by library users and
24507 unreferencing them after the reset triggers an access to an unset mutex.
24508 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24510 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24512 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24513 decoder: drop extraneous return for void function.
24515 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24517 * gst-libs/gst/vaapi/gstvaapiimage.c:
24518 image: don't use (void *) pointer arithmetic.
24520 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
24522 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24523 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24524 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24525 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
24526 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
24527 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24528 * gst-libs/gst/vaapi/gstvaapisurface.h:
24529 * gst-libs/gst/vaapi/gstvaapitypes.h:
24530 * gst/vaapi/gstvaapipostproc.h:
24531 Do not forward declare enums.
24532 Forward declaring enums is not allowed by the C standard and aborts
24533 compilation if the header file is included in a C++ project.
24534 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24536 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24539 configure: fix check for VA/DRM API.
24541 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24543 * gst/vaapi/gstvaapisink.c:
24544 vaapisink: fix calculation of window size.
24545 If either dimension is out-of-bounds, then scale window to fit the
24546 display size, even if the output is to be rotated. Use the standard
24547 gst_video_sink_center_rect() function to center and scale the window
24548 wrt. the outer (display) bounds.
24550 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
24552 * gst/vaapi/gstvaapisink.c:
24553 * gst/vaapi/gstvaapisink.h:
24554 vaapisink: add video rotation support.
24555 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24557 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24559 * gst/vaapi/gstvaapipluginutil.h:
24560 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
24561 This macro helps swapping variables while maintaining the correct underlying
24562 and primitive type.
24564 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24566 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24567 display: fix display aspect ratio when display is rotated.
24569 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24572 * gst-libs/gst/vaapi/Makefile.am:
24573 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24574 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24575 display: fix physical display size when display is rotated.
24577 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24579 * gst-libs/gst/vaapi/gstvaapivalue.c:
24580 display: fix GstVaapiRotation enumeration of values.
24582 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24584 * docs/reference/libs/libs-docs.xml.in:
24585 * docs/reference/libs/libs-sections.txt:
24586 * gst-libs/gst/vaapi/Makefile.am:
24587 * gst-libs/gst/vaapi/gstvaapivideosink.c:
24588 * gst-libs/gst/vaapi/gstvaapivideosink.h:
24589 * gst/vaapi/gstvaapidecode.c:
24590 * gst/vaapi/gstvaapidownload.c:
24591 * gst/vaapi/gstvaapipostproc.c:
24592 * gst/vaapi/gstvaapisink.c:
24593 * gst/vaapi/gstvaapiupload.c:
24594 vaapisink: drop obsolete GstVaapiVideoSink interface.
24595 This interface was deprecated since 0.3.x series when the GstVideoContext
24596 interface was added to the main GStreamer APIs.
24598 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24600 * gst/vaapi/gstvaapisink.c:
24601 * gst/vaapi/gstvaapisink.h:
24602 vaapisink: automatically detect overlay rendering mode.
24603 Retain the VA surface until another surface is to be displayed only
24604 if VA display rendering mode is determined to be "overlay" mode.
24606 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24608 * gst/vaapi/gstvaapisink.c:
24609 * gst/vaapi/gstvaapisink.h:
24610 vaapisink: retain VA surface until another one is displayed.
24611 Keep VA surface proxy associated with the surface that is currently
24612 being displayed. This makes sure that surface is not released back
24613 to the pool of surfaces free to use for decoding. This is necessary
24614 with VA driver implementations that support rendering to an overlay
24615 pipe. Otherwise, there could be cases where we are decoding into a
24616 surface that is being displayed, hence some flickering.
24618 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24620 * gst/vaapi/gstvaapisink.h:
24621 vaapisink: fix build with older toolchains.
24622 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
24624 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24626 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24627 display: partially revert 8ebe4d6.
24628 Don't try to fix up the initial values, this could make things worse.
24629 Simply assume the driver does not support the capability in this case.
24631 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24633 * tests/test-display.c:
24634 tests: dump VA display properties.
24636 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24638 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24639 display: fix validation process of properties during discovery.
24640 Some VA drivers (e.g. EMGD) can have completely random values for initial
24641 display attributes. So, try to improve the discovery process to check the
24642 initial display attribute values actually fall within valid bounds. If not,
24643 try to reset those to some sensible values like the default value reported
24644 through vaQueryDisplayAttributes().
24646 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24648 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24649 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24650 display: add color balance properties.
24651 Add support for hue, saturation, brightness and contrast attributes.
24653 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24655 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24656 display: initialize default attribute values.
24657 Ensure the display attribute is actually supported by trying to retrieve
24658 its current value during GstVaapiDisplay creation.
24660 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24662 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24663 display: raise "notify" for property changes.
24665 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24667 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24668 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24669 display: expose display attributes as GObject properties.
24670 Expose VA display "render-mode" and "rotation" attributes as standard
24671 GObject properties.
24673 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24675 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24676 display: install properties in batch.
24677 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
24678 It is useful to maintain properties as GParamSpec so that to be able to raise
24679 "notify" signals by id instead of by name in the future.
24681 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24683 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24684 display: fix gst_vaapi_display_has_property().
24685 Append the "render-mode" and "rotation" properties, should they be supported
24686 by the underlying VA driver.
24688 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
24690 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24691 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24692 * gst-libs/gst/vaapi/gstvaapitypes.h:
24693 * gst-libs/gst/vaapi/gstvaapiutils.c:
24694 * gst-libs/gst/vaapi/gstvaapiutils.h:
24695 * gst-libs/gst/vaapi/gstvaapivalue.c:
24696 * gst-libs/gst/vaapi/gstvaapivalue.h:
24697 display: add support for rotation modes.
24698 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24700 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24702 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24703 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24704 * gst-libs/gst/vaapi/gstvaapitypes.h:
24705 * gst-libs/gst/vaapi/gstvaapivalue.c:
24706 * gst-libs/gst/vaapi/gstvaapivalue.h:
24707 display: add support for rendering modes.
24708 A rendering mode can be "overlay" or "texture"'ed blit.
24709 The former mode implies that a VA surface used for rendering can't be
24710 re-used right away for decoding, so the sink shall make provisions to
24711 retain the associated surface proxy until the next surface is to be
24713 The latter mode implies that the VA surface is implicitly copied to an
24714 intermediate backing store, or back buffer of a frame buffer, so the
24715 associated surface proxy can be disposed right away.
24717 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24719 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24720 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24721 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24722 display: add initial support for display attributes.
24723 The VA display attributes are mapped to properties so that to maintain the
24724 GStreamer terminology. Properties are to be identified by name, but internal
24725 functions are available to lookup the property by the actual VA display
24728 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24730 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24731 jpeg: fix end-of-image (EOI) handler.
24732 decode_current_picture() was converted to return a gboolean instead
24733 of a GstVaapiDecoderStatus, so we were not getting out of the decode
24734 loop as expected, or could cause an error instead.
24735 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24737 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24739 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24740 mpeg2: include start code into VA slice data buffer.
24741 Integrate the start code prefix in the slice data buffer that is submitted
24742 to the hardware. VA-API specifies that slice_data_offset is the offset to
24743 the first byte of slice data. And, for MPEG-2, slice() data begins with
24744 the slice_start_code. Some VA driver implementations (EMGD) expect this.
24746 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
24749 autogen: fix configure script generation when srcdir != builddir.
24750 This patch allows for regenerating the configure script from a build
24751 directory that is not the actual source directory.
24752 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24754 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
24757 configure: use new libtool syntax.
24758 This now requires libtool >= 2.2 to regenerate the configure script.
24759 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24761 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
24763 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24764 decoder: use g_object_notify_by_pspec().
24765 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
24766 avoid a property name lookup. i.e. this makes notifications faster to
24767 the `vaapidecode' element.
24768 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24770 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24772 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24773 wayland: handle de-interlacing flags.
24774 VA/Wayland API was updated to allow flags for bob deinterlacing.
24775 More elaborated filters will require a complete VA/VPP pipeline.
24777 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24779 * gst-libs/gst/codecparsers/gstjpegparser.c:
24780 jpeg: fix default quantization tables.
24781 Two elements in the luminance quantization table were wrong. So,
24782 gst_jpeg_get_default_quantization_tables() now reconstructs tables
24783 in zig-zag order from the standard ones (Tables K.1 and K.2).
24785 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24787 * gst-libs/gst/codecparsers/gstjpegparser.c:
24788 jpeg: compute default Huffman tables.
24789 ... instead of having them pre-calculated. This saves around 1.5 KB
24790 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
24791 to do more work. Though, the client application may have to call that
24792 function at most once, only.
24794 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24796 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24797 display: drop VAProfileNone entries from debug messages.
24799 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
24801 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24802 display: query for supported display attributes.
24803 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24805 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
24807 * gst-libs/gst/vaapi/gstvaapiutils.c:
24808 * gst-libs/gst/vaapi/gstvaapiutils.h:
24809 utils: add string_of_VADisplayAttributeType() helper.
24810 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24812 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24814 * gst/vaapi/gstvaapisink.c:
24815 vaapisink: handle VA/DRM API.
24816 This is not useful in practice but for raw performance evaluation when
24817 the sink is invoked with display=drm sync=false. fakesink could also be
24820 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24822 * gst/vaapi/Makefile.am:
24823 * gst/vaapi/gstvaapipluginutil.c:
24824 plugins: add support for headless pipelines.
24826 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24828 * tests/Makefile.am:
24830 * tests/test-display.c:
24831 * tests/test-windows.c:
24832 tests: add support for headless decoding.
24834 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24838 * debian.upstream/Makefile.am:
24839 * debian.upstream/control.in:
24840 * debian.upstream/libgstvaapi-drm.install.in:
24841 * gst-libs/gst/vaapi/Makefile.am:
24842 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24843 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24844 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24845 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24846 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24847 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24848 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24849 * pkgconfig/Makefile.am:
24850 * pkgconfig/gstreamer-vaapi-drm.pc.in:
24851 Add initial support for VA/DRM.
24853 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24856 * gst-libs/gst/vaapi/Makefile.am:
24857 Fix build without X11 (again).
24858 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
24859 files list wrt. x11, glx and wayland backends.
24861 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24864 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24865 * gst-libs/gst/vaapi/gstvaapicompat.h:
24866 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24867 jpeg: update to the latest VA-API changes (0.32.1+).
24869 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24871 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24872 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24873 * gst/vaapi/gstvaapisink.c:
24874 wayland: implement display ::get_size*() hooks.
24876 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24878 * gst/vaapi/gstvaapipluginutil.c:
24879 plugins: prefer X11 rendering over GLX.
24880 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
24881 for rendering instead of texturing.
24883 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
24885 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24886 wayland: use scale fullscreen method.
24887 This makes the compositor scale the surface to fit and preserves aspect
24889 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24891 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
24893 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24894 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
24895 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24897 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24899 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24900 wayland: fix double disconnect of display.
24902 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24904 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24905 wayland: mangle display name for cache lookups.
24907 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24910 * debian.upstream/Makefile.am:
24911 * debian.upstream/control.in:
24912 * debian.upstream/libgstvaapi-wayland.install.in:
24913 * pkgconfig/Makefile.am:
24914 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
24915 wayland: add packaging files.
24917 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24919 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24920 * gst/vaapi/gstvaapipluginutil.c:
24921 * gst/vaapi/gstvaapisink.c:
24922 * pkgconfig/Makefile.am:
24923 Fix build without X11.
24925 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24927 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24928 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24929 * gst/vaapi/Makefile.am:
24930 * gst/vaapi/gstvaapipluginutil.c:
24931 * gst/vaapi/gstvaapisink.c:
24932 plugins: add support for Wayland.
24934 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24936 * tests/Makefile.am:
24938 * tests/test-display.c:
24939 * tests/test-windows.c:
24940 tests: add support for Wayland.
24942 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24946 * gst-libs/gst/vaapi/Makefile.am:
24947 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24948 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24949 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24950 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24951 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24952 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24953 Add initial support for VA/Wayland.
24954 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24956 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24958 * gst/vaapi/gstvaapipluginbuffer.c:
24959 plugins: fix creation of video buffer from surface proxy.
24960 Fix a regression introduced with commit 8ef490a.
24962 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24964 * gst/vaapi/gstvaapipluginbuffer.c:
24965 * gst/vaapi/gstvaapipluginutil.c:
24966 plugins: use new display types more.
24967 In particular, simplify gst_vaapi_reply_to_query() with display types.
24968 Likewise for creating new video buffers.
24970 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24972 * gst/vaapi/gstvaapidecode.c:
24973 * gst/vaapi/gstvaapidownload.c:
24974 * gst/vaapi/gstvaapipluginutil.c:
24975 * gst/vaapi/gstvaapipluginutil.h:
24976 * gst/vaapi/gstvaapipostproc.c:
24977 * gst/vaapi/gstvaapisink.c:
24978 * gst/vaapi/gstvaapiupload.c:
24979 plugins: fix display type selection and propagation.
24980 If vaapisink is in the GStreamer pipeline, then we shall allocate a
24981 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
24982 queries from vaapidecode shall get a valid answer from vaapisink.
24984 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24986 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24987 display: fix destruction of mutex.
24989 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24991 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24992 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24993 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24994 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24995 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24996 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24997 * gst/vaapi/gstvaapipluginutil.c:
24998 * gst/vaapi/gstvaapipluginutil.h:
24999 * gst/vaapi/gstvaapisink.c:
25000 display: add display types.
25001 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
25002 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
25003 type to "any", and add a "display-type" attribute.
25005 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25007 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25008 display: use prefixed display names for cache lookups.
25009 This improves display name comparisons by always allocating a valid display
25010 name. This also helps to disambiguate lookups by name in the global display
25011 cache, should a new backend be implemented.
25013 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25015 * gst/vaapi/gstvaapipluginutil.h:
25016 plugins: declare helper functions as internal.
25018 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25020 * docs/reference/libs/libs-sections.txt:
25021 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25022 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
25023 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
25024 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
25025 * gst/vaapi/Makefile.am:
25026 * gst/vaapi/gstvaapidecode.c:
25027 * gst/vaapi/gstvaapidownload.c:
25028 * gst/vaapi/gstvaapipluginbuffer.c:
25029 * gst/vaapi/gstvaapipluginbuffer.h:
25030 * gst/vaapi/gstvaapipostproc.c:
25031 * gst/vaapi/gstvaapiupload.c:
25032 videobuffer: drop deprecated functions.
25033 Move video buffer creation routines to plugin elements. That exclusively
25034 uses *_typed_new*() variants.
25036 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25038 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
25039 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
25040 videobuffer: mark video buffer creation routines as deprecated.
25041 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
25042 plugin elements. So deprecate any explicit creation routines that are not the
25043 new *_typed_new*() variants.
25045 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25047 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25048 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
25049 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
25050 videobuffer: factor out base and GLX implementations.
25051 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
25052 This avoids duplication of code, and makes it possible to further implement
25053 generic video buffer creation routines that automatically map to base or GLX
25056 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25058 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
25059 utils: fix gl_create_context() with parent context set.
25060 If GLX window was created from a foreign Display, then that same Display shall
25061 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
25062 will now use the same Display that the parent, if available.
25063 This fixes cluttersink with the Intel GenX VA driver.
25065 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25067 * gst/vaapi/gstvaapidecode.c:
25068 * gst/vaapi/gstvaapidownload.c:
25069 * gst/vaapi/gstvaapipluginutil.c:
25070 * gst/vaapi/gstvaapipluginutil.h:
25071 * gst/vaapi/gstvaapipostproc.c:
25072 * gst/vaapi/gstvaapisink.c:
25073 * gst/vaapi/gstvaapiupload.c:
25074 pluginutils: improve automatic display type selection.
25076 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25078 * gst/vaapi/gstvaapipluginutil.c:
25079 * gst/vaapi/gstvaapipluginutil.h:
25080 pluginutils: cosmetics (indentation fixes).
25082 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25085 configure: simplify video outputs summary.
25087 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25090 * gst/vaapi/gstvaapipluginutil.c:
25091 * gst/vaapi/gstvaapipluginutil.h:
25092 * gst/vaapi/gstvaapisink.c:
25093 * gst/vaapi/gstvaapisink.h:
25094 configure: drop check for --enable-vaapisink-glx.
25095 vaapisink is now built with support for multiple display types, whenever
25096 they are enabled. The new "display" attribute is used to select a particular
25099 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25102 * gst-libs/gst/vaapi/gstvaapicompat.h:
25103 * gst/vaapi/Makefile.am:
25104 * gst/vaapi/gstvaapidecode.c:
25105 * gst/vaapi/gstvaapidownload.c:
25106 * gst/vaapi/gstvaapipluginutil.c:
25107 * gst/vaapi/gstvaapipostproc.c:
25108 * gst/vaapi/gstvaapiupload.c:
25109 * tests/test-display.c:
25110 configure: drop check for --enable-vaapi-glx.
25111 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
25112 support, or fallback to TFP+FBO if this API is not found. Now, we check for
25113 the VA/GLX API by default if --enable-glx is set. If this API is not found,
25114 we now default to use TFP+FBO.
25115 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
25116 will be removed in the future. If GLX rendering is requested, then the VA/GLX
25117 API shall be used as it covers most usages. e.g. AMD driver can't render to
25120 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25123 tests: allow GLX output, if available and selected.
25125 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25127 * tests/Makefile.am:
25130 * tests/test-decode.c:
25131 * tests/test-subpicture.c:
25132 * tests/test-surfaces.c:
25133 tests: use common display and window creation routines.
25134 Add new --output option to select the renderer. Use --list-outputs to
25135 print a list of supported renderers.
25137 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25139 * tests/Makefile.am:
25140 tests: move encoded bitstreams to libutils.la.
25142 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25144 * tests/Makefile.am:
25145 tests: build convenience library for common utilities.
25147 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25149 * tests/Makefile.am:
25150 * tests/test-display.c:
25151 tests: simplify build with various display options.
25153 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25156 configure: improve checks for X11.
25158 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25160 * tests/Makefile.am:
25161 configure: fix previous commit for GLX deps.
25163 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25166 * gst-libs/gst/vaapi/Makefile.am:
25167 configure: improve checks for GLX.
25169 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25172 * gst-libs/gst/vaapi/gstvaapicompat.h:
25173 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25174 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
25175 * gst-libs/gst/vaapi/gstvaapiutils.h:
25176 Drop support for obsolete VA-API versions < 0.30.4.
25178 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25181 * gst-libs/gst/Makefile.am:
25182 * gst-libs/gst/gstutils_version.h.in:
25183 * gst/vaapi/gstvaapisink.c:
25184 vaapisink: drop checks for new APIs used by default.
25185 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
25186 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
25187 are no longer necessary.
25189 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25192 configure: cosmetics and some minor changes.
25193 - Better grouping of feature checks
25194 - Sort list of config files to generate
25196 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25199 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
25200 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
25201 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25202 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25203 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25204 * gst-libs/gst/vaapi/gstvaapiutils.h:
25205 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
25206 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25207 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
25209 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25211 * gst-libs/gst/vaapi/Makefile.am:
25212 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
25213 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
25214 Drop obsolete GstVaapiTSB.
25215 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
25217 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25219 * docs/reference/libs/libs-sections.txt:
25220 docs: add missing entries for the JPEG decoder.
25222 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25225 * gst-libs/gst/vaapi/Makefile.am:
25226 * gst/vaapi/gstvaapidecode.c:
25227 * tests/test-decode.c:
25228 * tests/test-subpicture.c:
25229 Drop all references to USE_CODEC_PARSERS.
25231 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25235 * docs/reference/libs/libs-sections.txt:
25236 * docs/reference/libs/libs.core.types:
25237 * gst-libs/gst/vaapi/Makefile.am:
25238 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25239 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
25240 * gst/vaapi/gstvaapidecode.c:
25241 * gst/vaapi/gstvaapidecode.h:
25242 * tests/test-decode.c:
25243 * tests/test-subpicture.c:
25244 Drop FFmpeg-based decoders.
25245 GStreamer codecparsers-based decoders are the only supported decoders now.
25246 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
25248 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
25251 * debian.upstream/control.in:
25252 configure: bump glib required version to 2.28.
25253 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25255 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
25257 * gst/vaapi/gstvaapidecode.h:
25258 * gst/vaapi/gstvaapidownload.h:
25259 * gst/vaapi/gstvaapipostproc.h:
25260 * gst/vaapi/gstvaapisink.h:
25261 * gst/vaapi/gstvaapiupload.h:
25262 plugins: declare _get_type() functions as const.
25263 Declaring a function as const enables better optimization of calls to
25265 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25267 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
25269 * gst/vaapi/gstvaapidecode.c:
25270 * gst/vaapi/gstvaapidownload.c:
25271 * gst/vaapi/gstvaapipostproc.c:
25272 * gst/vaapi/gstvaapisink.c:
25273 * gst/vaapi/gstvaapiupload.c:
25274 plugins: use g_clear_object() wherever applicable.
25275 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25277 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
25279 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
25280 * gst-libs/gst/vaapi/gstvaapicontext.h:
25281 * gst-libs/gst/vaapi/gstvaapidecoder.h:
25282 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
25283 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
25284 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
25285 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
25286 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
25287 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
25288 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25289 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
25290 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25291 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
25292 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
25293 * gst-libs/gst/vaapi/gstvaapiimage.h:
25294 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
25295 * gst-libs/gst/vaapi/gstvaapiobject.h:
25296 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
25297 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
25298 * gst-libs/gst/vaapi/gstvaapisurface.h:
25299 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
25300 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
25301 * gst-libs/gst/vaapi/gstvaapitexture.h:
25302 * gst-libs/gst/vaapi/gstvaapivalue.h:
25303 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
25304 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
25305 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
25306 * gst-libs/gst/vaapi/gstvaapivideopool.h:
25307 * gst-libs/gst/vaapi/gstvaapivideosink.h:
25308 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25309 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
25310 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
25311 libs: declare _get_type() functions as const.
25312 Declaring a function as const enables better optimization of calls
25314 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25316 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
25318 * gst-libs/gst/vaapi/glibcompat.h:
25319 * gst-libs/gst/vaapi/gstvaapicontext.c:
25320 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25321 * gst-libs/gst/vaapi/gstvaapiobject.c:
25322 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25323 * gst-libs/gst/vaapi/gstvaapisurface.c:
25324 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25325 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25326 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25327 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25328 libs: use g_clear_object() wherever applicable.
25329 This is a preferred thread-safe version. Also add an inline version of
25330 g_clear_object() if compiling with glib < 2.28.
25331 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25333 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
25337 * docs/reference/libs/Makefile.am:
25338 * gst-libs/gst/vaapi/Makefile.am:
25339 * gst-libs/gst/vaapi/gstvaapimarshal.list:
25340 * gst-libs/gst/vaapi/gstvaapiobject.c:
25341 libs: use generic g_cclosure_marshal_VOID__VOID().
25342 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25344 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25347 * gst-libs/gst/vaapi/glibcompat.h:
25348 glibcompat: drop explicit check for g_list_free_full().
25350 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25353 Bump version for development.
25355 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25357 * gst-libs/gst/codecparsers/Makefile.am:
25358 jpeg: fix make dist.
25360 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
25364 * docs/Makefile.am:
25365 configure: fix build without gtk-doc support.
25366 Also do not generate tamplate files as all the documentation is inline.
25367 Drop un-needed code in autogen.sh as well.
25368 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25370 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
25375 configure: put m4 macros and autogenerated files into m4/ directory.
25376 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25378 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
25381 configure: drop deprecated autoconf macros.
25382 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
25383 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25385 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
25388 configure: don't use AC_SUBST for some variables.
25389 PKG_CHECK_MODULES already does this for us.
25390 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25392 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25394 * gst/vaapi/gstvaapidecode.c:
25395 * gst/vaapi/gstvaapidownload.c:
25396 * gst/vaapi/gstvaapipostproc.c:
25397 * gst/vaapi/gstvaapiupload.c:
25398 plugins: add support for GstImplementsInterface.
25400 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
25403 * gst/vaapi/gstvaapidecode.c:
25404 * gst/vaapi/gstvaapidownload.c:
25405 * gst/vaapi/gstvaapipostproc.c:
25406 * gst/vaapi/gstvaapisink.c:
25407 * gst/vaapi/gstvaapiupload.c:
25408 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
25409 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25411 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
25414 * gst/vaapi/gstvaapisink.c:
25415 plugins: do not use deprecated GStreamer -base symbols.
25416 Bump GStreamer plugins -base required version to 0.10.31, needed for
25417 gst_x_overlay_got_window_handle().
25418 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25420 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
25423 * gst/vaapi/gstvaapidecode.c:
25424 * gst/vaapi/gstvaapidownload.c:
25425 * gst/vaapi/gstvaapipostproc.c:
25426 * gst/vaapi/gstvaapisink.c:
25427 * gst/vaapi/gstvaapiupload.c:
25428 plugins: do not use deprecated core GStreamer symbols.
25429 Bump GStreamer required version to 0.10.14, needed for
25430 gst_element_class_set_details_simple().
25431 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25433 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25435 * tests/test-decode.c:
25436 tests: fix build without JPEG decoder support.
25438 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25440 * tests/Makefile.am:
25441 * tests/test-decode.c:
25442 * tests/test-jpeg.c:
25443 * tests/test-jpeg.h:
25444 tests: add test for JPEG decoding.
25446 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25448 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25449 jpeg: update to match latest parser API.
25451 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25453 * gst-libs/gst/codecparsers/gstjpegparser.c:
25454 * gst-libs/gst/codecparsers/gstjpegparser.h:
25455 codecparsers: jpeg: tweak parser API.
25456 ... to allow for more consistent parsing API among various codec parsers.
25457 In particular, drop use of GList.
25459 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25462 jpeg: fix configure check for VA/JPEG decoding API.
25464 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25466 * gst-libs/gst/vaapi/gstvaapiprofile.c:
25467 jpeg: fix build with VA-API < 0.32.0.
25469 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25474 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25477 Bump version for development.
25479 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25485 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25490 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
25492 * gst/vaapi/gstvaapipluginutil.c:
25493 vaapiplugin: fix build when compiling without GLX.
25494 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25496 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25499 configure: disable FFmpeg-based decoders.
25500 FFmpeg decoders are still available through the --enable-ffmpeg option
25501 but are no longer maintained.
25503 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25505 * gst-libs/gst/vaapi/Makefile.am:
25506 Fix build with recent GStreamer stack.
25508 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25511 * gst-libs/gst/vaapi/gstvaapicompat.h:
25512 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25513 jpeg: update to current VA/JPEG decoding API.
25515 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25517 * gst-libs/gst/codecparsers/gstjpegparser.c:
25518 * gst-libs/gst/codecparsers/gstjpegparser.h:
25519 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25520 codecparsers: jpeg: track valid quantization and Huffman tables.
25521 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
25522 to determine whether a table actually changed since the last user
25523 synchronization point. That way, this makes it possible for some
25524 hardware accelerated decoding solution to upload only those tables
25527 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
25529 * gst-libs/gst/codecparsers/gstjpegparser.c:
25530 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
25531 Use GstByteReader *_unchecked() variants as much as possible.
25532 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25534 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
25536 * gst-libs/gst/codecparsers/gstjpegparser.c:
25537 * gst-libs/gst/codecparsers/gstjpegparser.h:
25538 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25539 jpeg: add new GstJpegHuffmanTables structure.
25540 Add new GstJpegHuffmanTables helper structure to hold all possible
25541 AC/DC Huffman tables available to all components.
25542 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25544 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
25546 * gst-libs/gst/codecparsers/gstjpegparser.c:
25547 * gst-libs/gst/codecparsers/gstjpegparser.h:
25548 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25549 jpeg: make gst_jpeg_parse() support multiple scans.
25550 gst_jpeg_parse() now gathers all scans available in the supplied
25551 buffer. A scan comprises of the scan header and any entropy-coded
25552 segments or restart marker following it. The size and offset to
25553 the associated data (ECS + RST segments) are append to a new
25554 GstJpegScanOffsetSize structure.
25555 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25557 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
25559 * gst-libs/gst/codecparsers/gstjpegparser.c:
25560 * gst-libs/gst/codecparsers/gstjpegparser.h:
25561 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25562 jpeg: update to match latest parser API.
25563 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25565 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25567 * gst-libs/gst/codecparsers/gstjpegparser.h:
25568 jpeg: simplify and optimize parser API.
25570 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
25572 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25573 mpeg: fix picture used to determine backward_reference_vop_coding_type.
25574 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
25575 but Gwenole did not apply all the bits.
25576 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25578 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
25580 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25581 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
25582 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25584 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
25586 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25587 mpeg4: handle skipped frames (vop_hdr->coded = 0).
25588 Gracefully skip non VOP coded frames.
25589 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25591 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
25593 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25594 mpeg4: fix timestamp issues on too fast playback.
25595 Improve generation of presentation timestamps to be less sensitive
25596 to input stream errors. In practise, GOP is also a synchronization
25597 point for PTS calculation.
25598 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25600 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25602 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
25603 Fix build without JPEG decoder.
25605 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
25607 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25608 mpeg4: fix VOP coding type of backward reference pictures.
25609 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25611 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
25613 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25614 mpeg4: fix handling of temporal reference distances.
25615 TRD and TRB fields are not large enough to hold the difference of PTS
25616 expressed with nanosecond resolution. So, compute them from the original
25618 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25620 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25622 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
25623 dpb: mpeg2: cosmetics.
25624 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
25626 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
25629 * gst-libs/gst/vaapi/Makefile.am:
25630 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
25631 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
25632 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25633 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
25634 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25635 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25636 * gst-libs/gst/vaapi/gstvaapiprofile.c:
25637 * gst-libs/gst/vaapi/gstvaapiprofile.h:
25638 * gst/vaapi/gstvaapidecode.c:
25639 Add initial JPEG decoder.
25640 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25642 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
25645 * gst-libs/gst/Makefile.am:
25646 * gst-libs/gst/codecparsers/Makefile.am:
25647 * gst-libs/gst/codecparsers/gstjpegparser.c:
25648 * gst-libs/gst/codecparsers/gstjpegparser.h:
25649 * gst-libs/gst/vaapi/Makefile.am:
25650 codecparsers: add JPEG parser.
25651 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25653 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
25655 * gst/vaapi/gstvaapidecode.c:
25656 vaapidecode: fix VA display type.
25657 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
25659 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25661 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25663 * gst/vaapi/gstvaapidecode.c:
25664 vaapidecode: fix includes when compiling for a single API.
25666 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25669 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25670 mpeg2: fix calculation of macroblock_offset.
25671 Fix decoding of streams with extra slice() information before the first
25672 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
25674 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25676 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25677 mpeg2: fix interpolation of GOP TSN from new PTS.
25678 New GOP TSN base could be mis-calculated. In particular, this fixes
25679 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
25681 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25684 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25685 * gst-libs/gst/vaapi/gstvaapiprofile.h:
25686 mpeg2: fix decoding of high profile streams.
25687 Allow MPEG-2 High profile streams only if the HW supports that profile
25688 or no High profile specific bits are used, and thus Main profile could
25689 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
25690 set to 11 and no sequence_scalable_extension() was parsed.
25692 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25695 * gst/vaapi/gstvaapidecode.c:
25696 vaapidecode: report unsupported codec profiles.
25697 Try to gracefully abort when the HW does not support the requested
25698 profile. There is no fallback unless profiles are correctly parsed
25699 and matched through caps beforehand.
25701 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
25704 * gst/vaapi/gstvaapisink.c:
25705 vaapisink: don't resize a 'foreign' X-window.
25706 Don't forcibly resize foreign X windows. The user is responsible for
25707 their size and vaapisink shall not change this.
25708 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25710 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
25713 * gst/vaapi/gstvaapisink.c:
25714 * gst/vaapi/gstvaapisink.h:
25715 vaapisink: recalculate render rect only if caps are negotiated.
25716 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
25717 caps got negotiated. Besides, when a foreign window is provided by the
25718 user, so should the render rect.
25719 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25721 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25724 Bump version for development.
25726 === release 0.3.6 ===
25728 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25733 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25735 * docs/reference/libs/libs-docs.xml.in:
25736 * docs/reference/libs/libs-sections.txt:
25737 * docs/reference/plugins/plugins-docs.xml.in:
25738 * docs/reference/plugins/plugins-sections.txt:
25739 * docs/reference/plugins/plugins.types:
25740 * gst-libs/gst/vaapi/gstvaapiimage.c:
25741 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25742 * gst/vaapi/gstvaapipostproc.c:
25743 Fix a few documentation issues.
25745 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25749 Update introduction and changelog.
25751 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25753 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
25754 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
25755 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25756 mpeg2: allocate dummy picture for first field based I-frame.
25757 In P-pictures, prediction shall be made from the two most recently
25758 decoded reference fields. However, when the first I-frame is a field,
25759 the next field of the current picture could be a P-picture but only a
25760 single field was decoded so far. In this case, create a dummy picture
25761 with POC = -1 that will be used as reference.
25762 Some VA drivers would error out if P-pictures don't have a forward
25763 reference picture. This is true in general but not in this very specific
25766 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25768 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25769 mpeg2: fix simple to main profile fallback.
25770 Allow fallback from simple to main profile when the HW decoder does
25771 not support the former profile and that no sequence_header_extension()
25772 is available to point out this.
25774 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
25776 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25777 mpeg4: improve error checking while decoding packets.
25778 decode_picture() could return an error when an MPEG-4 profile is not
25779 supported for example. In this case, the underlying VA context is not
25780 allocated and no other proper action can be taken. Likewise on exit
25781 from decode_slice().
25782 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25784 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25786 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
25787 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25788 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25789 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25790 decoder: use POC to maintain the DPB.
25791 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
25792 numbers. A signed 32-bit integer should be enough for 1 year of continuous
25793 video streaming at 60 Hz.
25794 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
25795 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
25797 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25799 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25800 mpeg2: rework generation of presentation timestamps.
25801 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
25802 i.e. demuxer could not determine the PTS or the generated PTS is lower than
25803 max PTS from past pictures, then try to fix it up based on the duration of
25805 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
25806 reconstruct a current time. Also now handle wrapped TSN correctly.
25808 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25810 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25811 mpeg2: ignore empty user-data packets.
25812 Fix tcela-8.bits conformance test.
25814 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25816 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25817 mpeg2: review and report errors accordingly.
25818 Use GST_ERROR() to report real errors instead of hiding them into
25821 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25823 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25824 mpeg2: fix invalid interlaced frame in progressive sequence.
25825 Some streams, badly constructed, could have signaled an interlaced
25826 frame while the sequence was meant to be progressive. Warn and force
25827 frame to be progressive in this case.
25829 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25831 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25832 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25833 mpeg2: add support for interlaced streams.
25834 Pictures are submitted to the HW for rendering only when both fields
25835 are decoded or current picture is a full frame.
25837 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25839 * gst-libs/gst/vaapi/Makefile.am:
25840 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
25841 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
25842 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25843 mpeg2: add new decoded picture buffer infrastructure.
25844 Decoded pictures are now maintained into DPB, similarly to H.264.
25845 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
25847 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25849 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25850 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25851 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25852 decoder: add first-field flag to picture.
25853 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
25854 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
25855 as the first field. Any subsequent allocated field will become the second field.
25857 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25859 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
25860 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
25861 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25862 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25863 decoder: allow pictures to be cloned for field decoding.
25864 Add gst_vaapi_picture_new_field() function that clones a picture, while
25865 preserving the parent picture surface. i.e. the surface proxy reference
25866 count is increased and other fields copied as is. Besides, the picture
25867 is reset into a "non-output" mode.
25869 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25871 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25872 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25873 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25874 decoder: rework picture field flags.
25875 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
25876 could be propagated to the surface proxy when it is pushed for rendering.
25877 Besides, top and bottom fields are now expressed with picture structure flags
25878 from GstVaapiSurfaceRenderFlags.
25880 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25882 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25883 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25884 decoder: add OUTPUT flag to pictures.
25885 Allow pictures to be marked as output gst_vaapi_picture_output().
25887 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25889 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25890 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25891 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
25892 decoder: fix semantics of SKIPPED pictures.
25893 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
25894 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
25895 has nothing to do with rendering. This only means that the currently decoded
25896 picture is just a copy of its reference picture.
25898 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25900 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25901 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25902 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
25903 * gst/vaapi/gstvaapipostproc.c:
25904 vaapipostproc: get "interlaced" attribute from surface proxy.
25905 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
25906 vaapipostproc so that to handles cases where bitstream is interlaced
25907 but almost only frame pictures are generated. In this case, we should
25908 not be alternating between top/bottom fields.
25910 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25913 * debian.upstream/control.in:
25914 * gst/vaapi/Makefile.am:
25915 * gst/vaapi/gstvaapi.c:
25916 * gst/vaapi/gstvaapipostproc.c:
25917 * gst/vaapi/gstvaapipostproc.h:
25918 vaapipostproc: add new element for video postprocessing.
25919 Add vaapipostproc element for video postprocessing. So far, only basic
25920 bob deinterlacing is implemented. Interlaced mode is automatically
25921 detected based on sink caps ("interlaced" field).
25923 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25925 * docs/reference/libs/libs-sections.txt:
25926 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
25927 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
25928 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
25929 * gst/vaapi/gstvaapisink.c:
25930 videobuffer: add surface render flags.
25931 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
25932 to be set to the video buffer. In particular, this is mostly useful for
25933 basic deinterlacing.
25935 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25937 * gst-libs/gst/vaapi/gstvaapicompat.h:
25938 compat: add compatibility glue with VA-API 0.34+ (WIP).
25940 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25942 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25943 h264: skip all Filler Data NALs.
25945 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
25947 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25948 mpeg4: check for decoder status prior to decoding packet.
25949 Make sure there is a VA surface free prior to decoding the current frame.
25950 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25952 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
25954 * gst/vaapi/gstvaapidecode.c:
25955 * gst/vaapi/gstvaapidecode.h:
25956 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
25957 Rationale: playbin2 links all elements at run-time. Once vaapidecode
25958 is created and a NEWSEGMENT event arrives, downstream element may not
25959 be ready yet. So, delay this event until next element is chained in,
25960 otherwise basesink could output "Received buffer without a new-segment.
25961 Assuming timestamps start from 0".
25962 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25964 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
25966 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25967 mpeg2: fix GOP timestamps when incorrect data is received.
25968 Some streams have incorrect GOP timestamps, or nothing set at all.
25969 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
25970 from demuxer timestamps, which are monotonic.
25971 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25973 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
25975 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25976 mpeg2: don't decode anything before the first sequence_header().
25977 Skip all pictures prior to the first sequence_header(). Besides,
25978 skip all picture_data() if there was no prior picture_header().
25979 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25981 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
25983 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
25984 ffmpeg: add support for interlaced streams.
25985 Evaluate interlaced stream properties.
25986 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25988 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
25990 * gst/vaapi/gstvaapidecode.c:
25991 vaapidecode: propagate interlaced and TFF properties downstream.
25992 Propagate "interlaced" caps downstream and set "tff" buffer flag
25993 appropriately to output buffers for interlaced pictures.
25994 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25996 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
25998 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25999 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26000 decoder: maintain caps for interlaced streams.
26001 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
26003 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26005 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
26007 * docs/reference/libs/libs-sections.txt:
26008 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26009 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26010 surfaceproxy: add TFF property.
26011 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
26012 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26014 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26017 AUTHORS: update to match current authors.
26019 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26021 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26022 mpeg2: fix is_first_field calculation.
26023 Reset is_first_field for frame pictures. Factor out locations where
26024 the flag is updated.
26026 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26028 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26029 mpeg2: catch incorrect picture_structure from bitstreams.
26030 Assume "frame" picture structure if the syntax element was zero or if
26031 progressive_frame is set.
26033 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26035 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26036 mpeg2: fix slice_vertical_position calculation (again).
26037 VA-API expects slice_vertical_position as the initial position from the
26038 bitstream. i.e. the direct slice() information. VA drivers will be fixed
26041 === release 0.3.5 ===
26043 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26045 * gst/vaapi/gstvaapidecode.c:
26046 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
26047 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
26048 For gst_element_class_get_pad_template(), no unreferencing is necessary
26049 according to the GStreamer documentation.
26051 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26054 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26055 h264: fix slice_data_bit_offset calculation.
26056 Unlike what VA-API documentation defines, the slice_data_bit_offset
26057 represents the offset to the first macroblock in the slice data, minus
26058 any emulation prevention bytes in the slice_header().
26059 This fix copes with binary-only VA drivers that won't be fixed any
26060 time soon. Besides, this aligns with the current FFmpeg behaviour
26061 that was based on those proprietary drivers implementing the API
26064 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
26066 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26067 h264: skip all Access Unit (AU) NALs.
26068 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26070 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
26072 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26073 h264: fix modification process of reference picture lists.
26074 Construction of RefPicList0/1 could be off by one element.
26075 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26077 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26079 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26080 mpeg2: fix size calculation from sequence_extension().
26081 Original values from sequence_header() are 12-bit and the remaining
26082 2 most significant bits are coming from sequence_extension().
26083 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26085 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26087 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26088 mpeg2: fix slice_vertical_position calculation.
26089 Make sure to adjust slice_vertical_position if picture structure
26090 is a top or bottom field.
26092 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26094 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26095 decoder: add picture structure flags.
26097 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26099 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26100 mpeg2: fix decoding at end-of-sequence.
26102 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26104 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26105 mpeg2: fix slice_horizontal_position calculation.
26107 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26109 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26110 mpeg2: drop useless mb_y and mb_height members.
26112 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26114 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26115 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
26116 6.3.15 says that "some slices may have the same slice_vertical_position,
26117 since slices may start and finish anywhere". So, we can't submit the current
26118 picture to the HW right away since subsequent slices would be missing.
26120 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26122 * gst-libs/gst/vaapi/gstvaapiimage.c:
26123 image: fix source stride in picture copy.
26125 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26127 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26128 decoder: fix double buffer free with some VA drivers.
26129 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
26130 push the VA buffer object into a list of free buffers to be re-used. However,
26131 reference pictures (and data) that was kept would explicitly release the VA
26132 buffer object later on, thus possibly destroying a valid (re-used) object.
26133 Besides, some other VA drivers don't support correctly the vaRenderPicture()
26134 semantics for VA buffers disposal and would leak memory if there is no explicit
26135 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
26136 right after vaRenderPicture(). All VA drivers need to be aligned.
26138 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26140 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26141 h264: complete any current picture decoder before SPS / PPS change.
26142 This ensures the VA context is clear when the encoded resolution
26143 changes. i.e. make sure older picture is decoded with the older
26144 VA context before it changes.
26146 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26148 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26149 h264: create VA context earlier when SPS is parsed.
26151 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26153 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26154 h264: don't allocate too big data structures on stack.
26156 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26158 * gst-libs/gst/vaapi/glibcompat.h:
26159 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26160 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26161 glib: map deprecated API to glib >= 2.32 equivalents.
26162 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
26163 GRecMutex, which no longer require any prior call to g_thread_init().
26165 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26167 * gst-libs/gst/vaapi/gstvaapiutils.h:
26168 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
26169 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
26170 glib: fix includes.
26172 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26174 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26175 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26176 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26177 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26178 cosmetics: fix warnings (drop unused variables).
26180 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26182 * gst/vaapi/gstvaapidecode.c:
26183 vaapidecode: fix another pad template ref leak.
26185 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26187 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26188 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26189 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26190 mpeg2: fix crash when there is no free surface to decode into.
26192 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
26194 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26195 display: skip profiles which have no entrypoints.
26196 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26198 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26200 * gst/vaapi/gstvaapiupload.c:
26201 vaapiupload: use g_object_unref() for GstVaapiImage.
26203 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26205 * gst/vaapi/gstvaapidecode.c:
26206 * gst/vaapi/gstvaapidownload.c:
26207 * gst/vaapi/gstvaapisink.c:
26208 * gst/vaapi/gstvaapiupload.c:
26209 plugins: fix pad template ref leaks.
26211 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26214 Bump version for development.
26216 === release 0.3.4 ===
26218 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26224 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26228 Mention codecparsers-based decoders, FFmpeg is now optional. Update
26229 list of support HW.
26231 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26236 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26238 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26239 decoder: allocate proxy surface earlier.
26240 This simplifies gst_vaapi_picture_output() to only update the presentation
26241 timestamp and submit the proxy to the decoder for output.
26243 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26245 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26246 decoder: fix memory leak of VA objects on exit.
26247 On sequence end, if the last decoded picture is not output for rendering,
26248 then the proxy surface is not created. In this case, the original surface
26249 must be released explicitly to the context.
26251 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26253 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26254 mpeg2: use GstAdapter to track input sequence.
26255 This fixes possible memory leaks and improves performance by removing
26258 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26261 * gst-libs/gst/vaapi/Makefile.am:
26262 * gst-libs/gst/vaapi/glibcompat.h:
26263 * gst-libs/gst/vaapi/sysdeps.h:
26264 Add glib compatibility glue for older versions.
26266 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26268 * gst-libs/gst/vaapi/Makefile.am:
26269 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26270 * gst-libs/gst/vaapi/gstvaapicontext.c:
26271 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26272 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26273 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26274 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26275 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26276 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26277 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26278 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26279 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26280 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26281 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26282 * gst-libs/gst/vaapi/gstvaapiimage.c:
26283 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26284 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26285 * gst-libs/gst/vaapi/gstvaapiobject.c:
26286 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26287 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26288 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26289 * gst-libs/gst/vaapi/gstvaapisurface.c:
26290 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26291 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26292 * gst-libs/gst/vaapi/gstvaapitexture.c:
26293 * gst-libs/gst/vaapi/gstvaapiutils.c:
26294 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
26295 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
26296 * gst-libs/gst/vaapi/gstvaapivalue.c:
26297 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26298 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
26299 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
26300 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26301 * gst-libs/gst/vaapi/gstvaapivideosink.c:
26302 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26303 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26304 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26305 * gst-libs/gst/vaapi/sysdeps.h:
26306 Add header for system-dependent definitions.
26308 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26310 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26311 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26312 * gst-libs/gst/vaapi/gstvaapiutils.c:
26313 * gst-libs/gst/vaapi/gstvaapiutils.h:
26314 decoder: optimize slice data buffers initialization.
26315 VA drivers may have a faster means to transfer user buffers to GPU
26316 buffers than using memcpy(). In particular, on Intel Gen graphics, we
26317 can use pwrite(). This provides for faster upload of bitstream and can
26318 help higher bitrates.
26319 vaapi_create_buffer() helper function was also updated to allow for
26320 un-mapped buffers and pre-initialized data for buffers.
26322 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26324 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26325 h264: simplify RefPicList reconstruction.
26327 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26329 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26330 h264: flush DPB when the end of the sequence is reached.
26332 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26334 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26335 h264: handle Decoded Picture Buffer (DPB).
26337 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26339 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26340 h264: fix pred_weight_table() reconstruction.
26341 Only the explicit pred_weight_table(), possibly with the inferred default
26342 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
26343 is not set for P/SP slices.
26345 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26347 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26348 h264: execute reference picture marking process (MMCO).
26350 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26352 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26353 h264: fix presentation timestamps.
26355 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26357 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26358 h264: execute reference picture marking process (sliding window).
26360 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26362 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26363 h264: handle avcC format for decoding buffers.
26365 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26367 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26368 h264: handle codec-data.
26369 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26371 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26373 * gst-libs/gst/vaapi/Makefile.am:
26374 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26375 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26376 * gst/vaapi/gstvaapidecode.c:
26377 * tests/test-decode.c:
26378 Add initial H.264 decoder.
26380 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26382 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26383 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26384 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
26385 Keep a valid reference to the proxy in GstVaapiPicture so that frames
26386 marked as "used for reference" could be kept during the lifetime of the
26387 picture. i.e. don't release them too soon as they could be re-used right
26390 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26392 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26393 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26394 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26395 decoder: properly reference count pictures.
26396 This fixes cases where a GstVaapiPicture would be destroyed whereas
26397 there is still a valid instance of it in either prev, current or
26400 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26402 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26403 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26404 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26405 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26406 decoder: simplify output of decoded frames.
26407 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
26408 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
26409 is already set correctly and reference count increased, if necessary.
26411 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26413 * gst-libs/gst/vaapi/Makefile.am:
26414 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26415 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
26416 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26417 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26418 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26419 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26420 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26421 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26422 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26423 decoder: rework the internal VA objects API.
26424 The new API simplifies a lot reference counting and makes it more
26425 flexible for future additions/changes. The GstVaapiCodecInfo is
26426 also gone. Rather, new helper macros are provided to allocate
26427 picture, slice and quantization matrix parameter buffers.
26429 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26431 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26432 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26433 decoder: allow slices to be attached to pictures later.
26435 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26437 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26438 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26439 decoder: add ref_count to GstVaapiPicture.
26441 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26443 * gst/vaapi/gstvaapisink.c:
26444 vaapisink: cap window size to the maximum display size.
26446 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
26448 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26449 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
26450 profile: match video/x-h263 as H.263 Baseline profile.
26451 HACK: qtdemux does not report profiles for H.263. So, assume plain
26452 "video/x-h263" is H.263 Baseline profile.
26453 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26455 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26457 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26458 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
26459 display: report H.263 Baseline profile.
26460 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
26461 profile (VAProfileMPEG4Simple) is supported.
26463 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26465 * gst-libs/gst/vaapi/Makefile.am:
26466 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
26467 Add template for workarounds.
26469 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26471 * tests/test-decode.c:
26472 tests: error out if FFmpeg|codecparsers are not supported.
26474 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26476 * docs/reference/libs/libs-sections.txt:
26477 * gst-libs/gst/vaapi/gstvaapisurface.h:
26478 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26479 surface: don't expose gst_vaapi_surface_get_parent_context().
26480 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
26481 It's just an internal helper function. However, it's still possible to get
26482 the parent context through the "parent-context" property.
26484 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26486 * tests/Makefile.am:
26487 * tests/test-subpicture.c:
26488 tests: fix build without FFmpeg.
26490 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26493 Bump version for development.
26495 === release 0.3.3 ===
26497 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26503 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26506 * debian.upstream/copyright:
26507 * gst-libs/gst/vaapi/gstvaapicontext.c:
26508 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26509 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26510 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26511 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26512 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26513 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26514 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26515 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26516 * gst-libs/gst/vaapi/gstvaapiimage.c:
26517 * gst-libs/gst/vaapi/gstvaapiimage.h:
26518 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26519 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26520 * gst-libs/gst/vaapi/gstvaapiutils.c:
26521 * gst-libs/gst/vaapi/gstvaapiutils.h:
26522 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
26523 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26524 * gst/vaapi/gstvaapi.c:
26525 * gst/vaapi/gstvaapidecode.c:
26526 * gst/vaapi/gstvaapidownload.c:
26527 * gst/vaapi/gstvaapidownload.h:
26528 * gst/vaapi/gstvaapipluginutil.c:
26529 * gst/vaapi/gstvaapipluginutil.h:
26530 * gst/vaapi/gstvaapisink.c:
26531 * gst/vaapi/gstvaapiupload.c:
26532 * gst/vaapi/gstvaapiupload.h:
26533 * tests/test-decode.c:
26534 legal: fix year for some copyright notices.
26536 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26538 * gst-libs/gst/vaapi/gstvaapicontext.c:
26539 * gst-libs/gst/vaapi/gstvaapicontext.h:
26540 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26541 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26542 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26543 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26544 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26545 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26546 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26547 * gst-libs/gst/vaapi/gstvaapiimage.c:
26548 * gst-libs/gst/vaapi/gstvaapiimage.h:
26549 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26550 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
26551 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26552 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26553 * gst-libs/gst/vaapi/gstvaapisurface.c:
26554 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26555 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26556 * gst-libs/gst/vaapi/gstvaapiutils.c:
26557 * gst-libs/gst/vaapi/gstvaapiutils.h:
26558 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
26559 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
26560 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26561 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26562 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26563 * gst/vaapi/gstvaapidownload.h:
26564 * gst/vaapi/gstvaapisink.h:
26565 * gst/vaapi/gstvaapiupload.h:
26566 * tests/test-decode.c:
26567 legal: add Intel copyright on modified files.
26569 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26571 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26572 * gst-libs/gst/vaapi/gstvaapicompat.h:
26573 * gst-libs/gst/vaapi/gstvaapicontext.c:
26574 * gst-libs/gst/vaapi/gstvaapicontext.h:
26575 * gst-libs/gst/vaapi/gstvaapidebug.h:
26576 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26577 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26578 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26579 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
26580 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26581 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26582 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26583 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26584 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26585 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26586 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26587 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26588 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26589 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26590 * gst-libs/gst/vaapi/gstvaapiimage.c:
26591 * gst-libs/gst/vaapi/gstvaapiimage.h:
26592 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26593 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
26594 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26595 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26596 * gst-libs/gst/vaapi/gstvaapiobject.c:
26597 * gst-libs/gst/vaapi/gstvaapiobject.h:
26598 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26599 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26600 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26601 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26602 * gst-libs/gst/vaapi/gstvaapiprofile.h:
26603 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26604 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26605 * gst-libs/gst/vaapi/gstvaapisurface.c:
26606 * gst-libs/gst/vaapi/gstvaapisurface.h:
26607 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26608 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26609 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26610 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26611 * gst-libs/gst/vaapi/gstvaapitexture.c:
26612 * gst-libs/gst/vaapi/gstvaapitexture.h:
26613 * gst-libs/gst/vaapi/gstvaapitypes.h:
26614 * gst-libs/gst/vaapi/gstvaapiutils.c:
26615 * gst-libs/gst/vaapi/gstvaapiutils.h:
26616 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
26617 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
26618 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
26619 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
26620 * gst-libs/gst/vaapi/gstvaapivalue.c:
26621 * gst-libs/gst/vaapi/gstvaapivalue.h:
26622 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
26623 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
26624 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26625 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26626 * gst-libs/gst/vaapi/gstvaapivideosink.c:
26627 * gst-libs/gst/vaapi/gstvaapivideosink.h:
26628 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26629 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26630 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26631 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26632 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26633 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26634 * gst/vaapi/gstvaapidecode.c:
26635 * gst/vaapi/gstvaapidecode.h:
26636 * gst/vaapi/gstvaapidownload.c:
26637 * gst/vaapi/gstvaapidownload.h:
26638 * gst/vaapi/gstvaapisink.c:
26639 * gst/vaapi/gstvaapisink.h:
26640 * gst/vaapi/gstvaapiupload.c:
26641 * gst/vaapi/gstvaapiupload.h:
26644 * tests/test-decode.c:
26645 * tests/test-decode.h:
26646 * tests/test-display.c:
26647 * tests/test-h264.c:
26648 * tests/test-h264.h:
26649 * tests/test-mpeg2.c:
26650 * tests/test-mpeg2.h:
26651 * tests/test-surfaces.c:
26652 * tests/test-textures.c:
26653 * tests/test-vc1.c:
26654 * tests/test-vc1.h:
26655 * tests/test-windows.c:
26656 legal: fix copyright notices to include "Copyright" term.
26658 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
26660 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26661 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26662 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
26663 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26665 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
26667 * gst-libs/gst/vaapi/Makefile.am:
26668 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26669 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26670 * gst/vaapi/gstvaapidecode.c:
26671 Add initial MPEG-4 decoder.
26672 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26674 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26676 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26677 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26678 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
26679 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26681 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26683 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26684 vc1: fix codec-data decoding for WMV3 format.
26686 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26688 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26689 vc1: fix presentation timestamps.
26691 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26693 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26694 vc1: fix MV mode packing.
26696 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26698 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26699 vc1: handle codec-data.
26701 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26703 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26704 vc1: handle encapsulated bitstreams.
26706 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26708 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26709 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26710 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26711 vc1: fix bitplanes decoding.
26713 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26715 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26716 vc1: fix BFRACTION reconstruction.
26718 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26720 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26721 vc1: fix framerate calculation.
26723 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26725 * gst-libs/gst/vaapi/Makefile.am:
26726 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26727 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26728 * gst/vaapi/gstvaapidecode.c:
26729 * tests/test-decode.c:
26730 Add initial VC-1 decoder.
26732 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
26734 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26735 mpeg2: fix first field detection.
26736 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26738 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26740 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26741 mpeg2: fix quantisation matrix construction.
26743 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26745 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26746 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26747 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
26748 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26750 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26752 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26753 mpeg2: fix packets spanning over two buffers.
26755 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26757 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26758 mpeg2: ignore system start codes (PES headers).
26760 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26762 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26763 mpeg2: handle closed_gop.
26765 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26767 * gst-libs/gst/vaapi/Makefile.am:
26768 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26769 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26770 * gst/vaapi/gstvaapidecode.c:
26771 * tests/test-decode.c:
26772 Add initial MPEG-2 decoder.
26774 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26777 * gst-libs/gst/vaapi/Makefile.am:
26778 * gst/vaapi/gstvaapidecode.c:
26779 * tests/test-decode.c:
26780 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
26782 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26784 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26785 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26786 Add VA decoder helpers.
26788 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26790 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26791 decoder: add new error codes.
26792 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
26793 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
26795 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26797 * gst-libs/gst/vaapi/Makefile.am:
26798 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
26799 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
26800 Add timestamp buffer store helper utils.
26802 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26804 * gst-libs/gst/vaapi/gstvaapiutils.c:
26805 * gst-libs/gst/vaapi/gstvaapiutils.h:
26806 Add VA buffer helpers.
26808 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26810 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
26811 utils: slight improvements to gl_bind_texture().
26813 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26815 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
26816 utils: pretty-print output of gl_get_error_string().
26818 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26820 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
26821 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
26823 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26825 * gst-libs/gst/vaapi/gstvaapiutils.c:
26826 utils: simplify string of VAProfile/VAEntrypoint.
26828 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26830 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26831 * gst-libs/gst/vaapi/gstvaapiutils.c:
26832 * gst-libs/gst/vaapi/gstvaapiutils.h:
26833 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
26835 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26840 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26842 * tests/test-decode.c:
26843 tests: check for shared VA displays (display cache).
26845 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26847 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26848 display: always free VA display cache if it is empty.
26850 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26852 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26853 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26854 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26855 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26856 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26857 display: use VA display cache for X11 and GLX winsys.
26859 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26861 * gst-libs/gst/vaapi/Makefile.am:
26862 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26863 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26864 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26865 display: implement a VA display cache.
26867 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26869 * gst/vaapi/gstvaapipluginutil.c:
26870 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
26871 This ensures the display name provided to gst_vaapi_display_*_new()
26872 maps to the system defaults, instead of forcing "" that could be different
26873 from the current DISPLAY name.
26875 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
26877 * gst/vaapi/gstvaapiupload.c:
26878 vaapiupload: only set caps on newly created buffers.
26879 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26881 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26883 * gst/vaapi/gstvaapisink.c:
26884 vaapisink: ensure VA display in GstBaseSink::start() hook.
26885 This ensures a VA display is ready by the time upstream elements request
26888 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
26890 * gst/vaapi/gstvaapisink.c:
26891 vaapisink: don't leak GL texture.
26892 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26894 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26896 * gst/vaapi/gstvaapisink.c:
26897 vaapisink: fix calculation of render region.
26899 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26901 * gst/vaapi/gstvaapisink.c:
26902 vaapisink: automatically fit video to window.
26904 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26906 * gst/vaapi/gstvaapisink.c:
26907 vaapisink: implement GstXOverlay::set_render_rectangle().
26909 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26911 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26912 window: always check geometry when the window is mapped.
26914 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
26916 * gst-libs/gst/vaapi/gstvaapiutils.c:
26917 Add missing profiles from VA-API 0.32.0.
26918 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26920 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26923 .gitignore: add test-subpicture.
26925 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26928 Bump version for development.
26930 === release 0.3.2 ===
26932 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26938 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26940 * tests/Makefile.am:
26941 tests: fix make dist (ship with test-subpicture-data.h).
26943 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26948 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26950 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26951 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
26952 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26953 decoder: fix possible leak of VA surfaces.
26954 Under some circumstances, we could have leaked a surface, thus not
26955 releasing it to the pool of available surfaces in the VA context.
26956 The strategy is now to use a proxy earlier and automatically ref/unref
26957 whenever necessary. In particular, during the lifetime needed for FFmpeg.
26959 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26961 * docs/reference/libs/libs-sections.txt:
26962 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26963 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26964 surfaceproxy: add helper to retrieve the VA surface ID.
26966 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26968 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26969 surfaceproxy: simplify destruction.
26970 Also make sure to always make sure to release the surface back to the
26971 pool of surfaces in the associated VA context, if any.
26973 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26975 * gst/vaapi/gstvaapidecode.c:
26976 vaapidecode: fix deinitialization order.
26978 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26980 * gst-libs/gst/vaapi/gstvaapicontext.c:
26981 context: avoid self reference loops with surfaces.
26983 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26985 * debian.upstream/control.in:
26986 debian: update control.in description for new plugins.
26988 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26990 * gst/vaapi/gstvaapiupload.c:
26991 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
26992 This also fixes extra structures, beyond the one at index 0, to hold
26993 the right additional values.
26995 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26997 * gst/vaapi/gstvaapiupload.c:
26998 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
27000 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27003 * docs/reference/plugins/plugins-docs.xml.in:
27004 * docs/reference/plugins/plugins-sections.txt:
27005 * docs/reference/plugins/plugins.types:
27006 * gst/vaapi/Makefile.am:
27007 * gst/vaapi/gstvaapi.c:
27008 * gst/vaapi/gstvaapidownload.c:
27009 * gst/vaapi/gstvaapidownload.h:
27010 vaapidownload: add new plugin to download pixels from VA surfaces.
27012 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27014 * gst/vaapi/gstvaapipluginutil.c:
27015 * gst/vaapi/gstvaapipluginutil.h:
27016 vaapipluingutils: add helper to append surface caps to YUV caps.
27018 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27020 * docs/reference/libs/libs-sections.txt:
27021 * gst-libs/gst/vaapi/gstvaapiimage.c:
27022 * gst-libs/gst/vaapi/gstvaapiimage.h:
27023 image: add helpers to extract pixels to user buffers.
27025 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27027 * gst-libs/gst/vaapi/gstvaapiimage.c:
27028 image: simplify initialization of raw images from video buffers.
27030 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27032 * gst-libs/gst/vaapi/gstvaapiimage.c:
27033 image: fix update from NV12 buffers.
27035 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27037 * gst/vaapi/gstvaapiupload.c:
27038 vaapiupload: fix memory leak in _init() function.
27040 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27044 * debian.upstream/control.in:
27045 * docs/reference/plugins/plugins-docs.xml.in:
27046 * docs/reference/plugins/plugins-sections.txt:
27047 * docs/reference/plugins/plugins.types:
27048 * gst/vaapi/Makefile.am:
27049 * gst/vaapi/gstvaapi.c:
27050 * gst/vaapi/gstvaapiupload.c:
27051 * gst/vaapi/gstvaapiupload.h:
27052 Rename vaapiconvert element to vaapiupload.
27054 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27057 Bump version for development.
27059 === release 0.3.1 ===
27061 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27067 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27072 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27074 * gst-libs/gst/vaapi/gstvaapisurface.c:
27075 * gst-libs/gst/vaapi/gstvaapisurface.h:
27076 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27077 * gst/vaapi/gstvaapisink.c:
27078 surface: apply composition to the parent context, if requested.
27080 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27082 * docs/reference/libs/libs-sections.txt:
27083 * gst-libs/gst/vaapi/gstvaapicontext.c:
27084 * gst-libs/gst/vaapi/gstvaapicontext.h:
27085 context: make it possible to apply composition globally.
27087 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27089 * gst-libs/gst/vaapi/gstvaapisurface.c:
27090 surface: fix associate subpicture to not report deassociation errors.
27092 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27094 * gst-libs/gst/vaapi/gstvaapisurface.c:
27095 surface: fix typo in debug message.
27097 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27099 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27100 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27101 * gst-libs/gst/vaapi/gstvaapisurface.c:
27102 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
27104 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27106 * docs/reference/libs/libs-sections.txt:
27107 * gst-libs/gst/vaapi/Makefile.am:
27108 * gst-libs/gst/vaapi/gstvaapicontext.c:
27109 * gst-libs/gst/vaapi/gstvaapisurface.c:
27110 * gst-libs/gst/vaapi/gstvaapisurface.h:
27111 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
27112 surface: record parent context.
27114 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27116 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27117 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27118 * gst/vaapi/gstvaapidecode.c:
27119 * gst/vaapi/gstvaapisink.c:
27122 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27124 * gst-libs/gst/vaapi/gstvaapisurface.c:
27125 * gst-libs/gst/vaapi/gstvaapisurface.h:
27126 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27127 * gst/vaapi/gstvaapisink.c:
27128 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
27130 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27133 configure: check for GstVideoOverlayComposition.
27135 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27140 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
27142 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27143 converter: add support for GstVideoOverlayComposition planes.
27144 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27146 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
27148 * gst/vaapi/gstvaapisink.c:
27149 vaapisink: handle GstVideoOverlayComposition planes.
27150 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27152 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27154 * gst-libs/gst/vaapi/gstvaapisurface.c:
27155 surface: use unscaled overlay rectangle for blending.
27157 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27159 * gst-libs/gst/vaapi/gstvaapisurface.c:
27160 surface: fix VA image leak when an error occurred.
27162 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
27164 * gst-libs/gst/vaapi/gstvaapisurface.c:
27165 * gst-libs/gst/vaapi/gstvaapisurface.h:
27166 surface: add helper to handle GstVideoOverlayComposition.
27167 This helper resets the subpictures to reflect the current composition
27168 layers provided with the buffers.
27169 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27171 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27173 * docs/reference/libs/libs-sections.txt:
27174 * gst-libs/gst/vaapi/Makefile.am:
27175 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27176 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27177 * gst/vaapi/gstvaapiconvert.c:
27178 image: add gst_vaapi_image_format_from_video() helper.
27180 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27182 * gst-libs/gst/vaapi/gstvaapiimage.c:
27183 * gst-libs/gst/vaapi/gstvaapiimage.h:
27184 image: allow updates from GstVaapiImageRaw.
27186 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27188 * gst-libs/gst/vaapi/gstvaapiimage.c:
27189 * gst-libs/gst/vaapi/gstvaapiimage.h:
27190 * gst/vaapi/gstvaapiconvert.c:
27191 * tests/test-subpicture.c:
27192 image: allow partial updates.
27194 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27196 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27197 subpicture: fix doc for gst_vaapi_subpicture_set_image().
27199 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27201 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27202 display: fix has_image_format() to check against subpicture formats.
27204 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27206 * tests/test-subpicture.c:
27207 tests: fix subpicture test.
27209 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
27211 * tests/Makefile.am:
27212 * tests/test-subpicture-data.c:
27213 * tests/test-subpicture-data.h:
27214 * tests/test-subpicture.c:
27215 tests: add test for subpictures.
27216 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27218 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
27220 * gst/vaapi/gstvaapiconvert.c:
27221 * gst/vaapi/gstvaapidecode.c:
27222 Add missing video context queries.
27223 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27225 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27228 Bump version for development.
27230 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27232 * gst-libs/gst/video/Makefile.am:
27233 * gst-libs/gst/video/gstbasevideocodec.c:
27234 * gst-libs/gst/video/gstbasevideocodec.h:
27235 * gst-libs/gst/video/gstbasevideodecoder.c:
27236 * gst-libs/gst/video/gstbasevideodecoder.h:
27237 * gst-libs/gst/video/gstbasevideoutils.c:
27238 * gst-libs/gst/video/gstbasevideoutils.h:
27239 Drop unused copy of GstBaseVideoDecoder.
27241 === release 0.3.0 ===
27243 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27249 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27252 README: update dependencies.
27254 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27259 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27262 configure: check for GstBaseSink 'query' vfunc.
27264 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27266 * gst/vaapi/Makefile.am:
27267 vaapiplugin: include local build dir to CFLAGS for generated files.
27269 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27272 autogen: don't configure if NO_CONFIGURE variable is set.
27274 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27276 * gst/vaapi/gstvaapidecode.c:
27277 * gst/vaapi/gstvaapidecode.h:
27278 vaapidecode: return sink caps template if decoder is in NULL state.
27279 Otherwise, the decoder would always create its own X display instead
27280 of probing it from the downstream element, which is not reliable.
27281 e.g. DISPLAY is not :0 or when running on Wayland.
27282 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27284 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27286 * gst/vaapi/gstvaapiconvert.c:
27287 * gst/vaapi/gstvaapidecode.c:
27288 vaapiplugin: properly set surface type to "vaapi" in caps.
27290 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27292 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27293 decoder: drop unused headers.
27295 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
27297 * gst/vaapi/gstvaapiconvert.c:
27298 * gst/vaapi/gstvaapidecode.c:
27299 vaapiplugin: properly set opengl support in caps.
27300 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27302 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
27304 * gst/vaapi/gstvaapiconvert.c:
27305 * gst/vaapi/gstvaapidecode.c:
27306 vaapiplugin: allocate GLX buffers when supported.
27307 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27309 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
27311 * gst-libs/gst/vaapi/Makefile.am:
27312 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27313 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
27314 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
27315 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
27316 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27317 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27318 videobuffer: add GLX buffer support.
27319 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27321 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
27323 * gst-libs/gst/vaapi/Makefile.am:
27324 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27325 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27326 Port to GstSurfaceBuffer interface.
27327 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27329 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
27331 * gst/vaapi/gstvaapidecode.c:
27332 * gst/vaapi/gstvaapisink.c:
27333 Don't use downstream buffer allocation.
27334 With the new video/x-surface abstraction, we can't rely on having a VA
27335 specific sink downstream. Also, there was no particular reason to do that.
27336 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27338 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
27340 * gst-libs/gst/vaapi/Makefile.am:
27341 * gst-libs/gst/vaapi/gstvaapicontext.c:
27342 * gst-libs/gst/vaapi/gstvaapisurface.h:
27343 * gst/vaapi/gstvaapiconvert.c:
27344 * gst/vaapi/gstvaapisink.c:
27345 * tests/Makefile.am:
27346 * tests/test-surfaces.c:
27347 Change caps to use new video/x-surface generic type.
27348 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27350 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
27353 * gst-libs/gst/vaapi/Makefile.am:
27354 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
27355 * gst/vaapi/Makefile.am:
27356 * gst/vaapi/gstvaapiconvert.c:
27357 * gst/vaapi/gstvaapidecode.c:
27358 * gst/vaapi/gstvaapipluginutil.c:
27359 * gst/vaapi/gstvaapipluginutil.h:
27360 * gst/vaapi/gstvaapisink.c:
27361 * gst/vaapi/gstvaapisink.h:
27362 Port to GstVideoContext interface.
27363 This new interface allows for upstream and downstream display sharing
27364 that works in both static and dynamic pipelines.
27365 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27367 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27369 * gst/vaapi/gstvaapisink.c:
27370 vaapisink: use GST_ERROR to print error messages.
27372 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27374 * gst/vaapi/Makefile.am:
27375 vaapiplugin: link against VA/GLX when enabled.
27377 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27379 * gst/vaapi/gstvaapiconvert.c:
27380 * gst/vaapi/gstvaapisink.c:
27381 Add Intel copyright information.
27383 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27385 * gst/vaapi/gstvaapisink.c:
27386 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
27388 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27392 * gst-libs/gst/Makefile.am:
27393 * gst-libs/gst/gstutils_version.h.in:
27394 Add new GStreamer version check utilities.
27396 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27398 * gst/vaapi/gstvaapisink.c:
27399 vaapisink: replace the deprecated xoverlay API with the new one.
27400 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27402 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27405 configure: allow for pre-releases.
27407 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
27409 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27410 display: destroy display on creation failure.
27411 This allows element to detect that the display creation has actually
27413 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27415 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
27417 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27418 display: don't crash when config is empty.
27419 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27421 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27424 * debian.upstream/copyright:
27425 doc: mention Collabora copyrights.
27427 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27430 .gitignore: refine for generated docs.
27432 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
27435 * docs/reference/plugins/Makefile.am:
27437 * gst/vaapi/Makefile.am:
27438 * gst/vaapi/gstvaapi.c:
27439 * gst/vaapi/gstvaapiconvert.c:
27440 * gst/vaapi/gstvaapiconvert.h:
27441 * gst/vaapi/gstvaapidecode.c:
27442 * gst/vaapi/gstvaapidecode.h:
27443 * gst/vaapi/gstvaapisink.c:
27444 * gst/vaapi/gstvaapisink.h:
27445 * gst/vaapiconvert/Makefile.am:
27446 * gst/vaapidecode/Makefile.am:
27447 Group all plugins into the same bundle
27448 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27450 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27453 Bump version for development.
27455 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27458 * debian.upstream/control.in:
27459 debian: build against upstream libva packages.
27461 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27463 * docs/reference/libs/Makefile.am:
27464 * docs/reference/plugins/Makefile.am:
27465 * tests/Makefile.am:
27466 Fix build on Ubuntu 11.10 (Oneric).
27468 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27473 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
27477 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27479 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
27481 * gst/vaapiconvert/gstvaapiconvert.c:
27482 * gst/vaapidecode/gstvaapidecode.c:
27483 * gst/vaapisink/gstvaapisink.c:
27484 Update license in plugin definition
27485 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27487 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27490 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27491 decoder: fix use of invalid data at the end-of-stream.
27493 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27495 * gst/vaapiconvert/gstvaapiconvert.c:
27496 vaapiconvert: fix some warnings.
27498 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27501 * debian.upstream/changelog.in:
27502 * debian.upstream/control.in:
27503 * debian.upstream/copyright:
27504 * gst/vaapiconvert/gstvaapiconvert.c:
27505 * gst/vaapidecode/gstvaapidecode.c:
27506 * gst/vaapisink/gstvaapisink.c:
27507 Update with my current e-mail address.
27509 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27513 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
27515 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
27519 * tests/test-decode.c:
27520 * tests/test-decode.h:
27521 * tests/test-display.c:
27522 * tests/test-h264.c:
27523 * tests/test-h264.h:
27524 * tests/test-mpeg2.c:
27525 * tests/test-mpeg2.h:
27526 * tests/test-surfaces.c:
27527 * tests/test-textures.c:
27528 * tests/test-vc1.c:
27529 * tests/test-vc1.h:
27530 * tests/test-windows.c:
27531 switch tests licence to LGPL v2.1+
27533 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
27537 * debian.upstream/copyright:
27538 * gst/vaapiconvert/gstvaapiconvert.c:
27539 * gst/vaapiconvert/gstvaapiconvert.h:
27540 * gst/vaapidecode/gstvaapidecode.c:
27541 * gst/vaapidecode/gstvaapidecode.h:
27542 * gst/vaapisink/gstvaapisink.c:
27543 * gst/vaapisink/gstvaapisink.h:
27544 move plugins to LGPL v2.1+
27546 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27548 * gst/vaapidecode/gstvaapidecode.c:
27549 vaapidecode: fix sink caps to not expose size information.
27550 This fixes this particular issue:
27551 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
27552 a real subset of its template caps
27554 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27557 * gst/vaapidecode/gstvaapidecode.c:
27558 vaapidecode: fix decoding of MPEG-2 PS files.
27560 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27562 * gst-libs/gst/vaapi/Makefile.am:
27563 Cosmetics (sort source files).
27565 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27567 * gst/vaapiconvert/gstvaapiconvert.c:
27568 * gst/vaapiconvert/gstvaapiconvert.h:
27569 vaapiconvert: fix direct-rendering caps detection.
27571 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27573 * gst-libs/gst/vaapi/gstvaapiimage.c:
27574 Fix gst_vaapi_image_new_with_image().
27576 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27578 * gst/vaapiconvert/gstvaapiconvert.c:
27579 vaapiconvert: warn when surface failed to be updated with image.
27581 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27583 * gst/vaapiconvert/gstvaapiconvert.c:
27584 vaapiconvert: fix autodetection for vaDeriveImage() support.
27586 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27588 * gst/vaapiconvert/gstvaapiconvert.c:
27589 vaapiconvert: fix memory leak (VA surface image).
27591 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27594 * gst/vaapiconvert/gstvaapiconvert.c:
27595 vaapiconvert: fix direct-rendering mode.
27597 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27599 * docs/reference/libs/libs-sections.txt:
27600 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27601 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27602 Add gst_vaapi_video_buffer_new_from_buffer().
27603 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
27604 Any image, surface or surface proxy will be inherited from the source buffer
27605 if it is a GstVaapiVideoBuffer.
27607 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27609 * gst/vaapiconvert/gstvaapiconvert.c:
27610 vaapiconvert: protect access to direct_rendering.
27612 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27614 * gst/vaapiconvert/gstvaapiconvert.c:
27615 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
27617 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27621 * debian.upstream/copyright:
27622 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27623 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
27624 * gst-libs/gst/vaapi/gstvaapisurface.h:
27625 * gst/vaapidecode/gstvaapidecode.c:
27626 * gst/vaapidecode/gstvaapidecode.h:
27627 Add Intel copyright information.
27629 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27634 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27636 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
27637 Fix build with newer FFmpeg versions.
27639 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27641 * gst/vaapidecode/gstvaapidecode.c:
27642 * gst/vaapidecode/gstvaapidecode.h:
27643 Fix decoding of MPEG-2 TS files.
27645 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27647 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27648 Report caps update only once per video resolution change.
27650 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27652 * gst-libs/gst/vaapi/gstvaapisurface.h:
27653 Add canonical form (type name) of VA surface caps.
27655 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27658 Bump version for development.
27660 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27663 Use pretty build output with automake >= 1.11.
27665 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27667 * gst/vaapiconvert/Makefile.am:
27668 * gst/vaapidecode/Makefile.am:
27669 * gst/vaapisink/Makefile.am:
27670 * tests/Makefile.am:
27671 Fix build with libva headers not in a standard include dir.
27673 === release 0.2.6 ===
27675 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
27680 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
27682 * gst-libs/gst/vaapi/gstvaapi_priv.h:
27683 * gst-libs/gst/vaapi/gstvaapicompat.h:
27684 * gst-libs/gst/vaapi/gstvaapicontext.c:
27685 * gst-libs/gst/vaapi/gstvaapicontext.h:
27686 * gst-libs/gst/vaapi/gstvaapidebug.h:
27687 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27688 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27689 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
27690 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
27691 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27692 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27693 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27694 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
27695 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27696 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
27697 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
27698 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
27699 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27700 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
27701 * gst-libs/gst/vaapi/gstvaapiimage.c:
27702 * gst-libs/gst/vaapi/gstvaapiimage.h:
27703 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27704 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27705 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
27706 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
27707 * gst-libs/gst/vaapi/gstvaapiobject.c:
27708 * gst-libs/gst/vaapi/gstvaapiobject.h:
27709 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27710 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27711 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
27712 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27713 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27714 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27715 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27716 * gst-libs/gst/vaapi/gstvaapisurface.c:
27717 * gst-libs/gst/vaapi/gstvaapisurface.h:
27718 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27719 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
27720 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27721 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27722 * gst-libs/gst/vaapi/gstvaapitexture.c:
27723 * gst-libs/gst/vaapi/gstvaapitexture.h:
27724 * gst-libs/gst/vaapi/gstvaapitypes.h:
27725 * gst-libs/gst/vaapi/gstvaapiutils.c:
27726 * gst-libs/gst/vaapi/gstvaapiutils.h:
27727 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27728 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27729 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
27730 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
27731 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27732 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27733 * gst-libs/gst/vaapi/gstvaapivalue.c:
27734 * gst-libs/gst/vaapi/gstvaapivalue.h:
27735 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27736 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27737 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27738 * gst-libs/gst/vaapi/gstvaapivideopool.h:
27739 * gst-libs/gst/vaapi/gstvaapivideosink.c:
27740 * gst-libs/gst/vaapi/gstvaapivideosink.h:
27741 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27742 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27743 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27744 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27745 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27746 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27747 * gst/vaapiconvert/gstvaapiconvert.c:
27748 * gst/vaapiconvert/gstvaapiconvert.h:
27749 * gst/vaapidecode/gstvaapidecode.c:
27750 * gst/vaapidecode/gstvaapidecode.h:
27751 * gst/vaapisink/gstvaapisink.c:
27752 * gst/vaapisink/gstvaapisink.h:
27755 * tests/test-decode.c:
27756 * tests/test-decode.h:
27757 * tests/test-display.c:
27758 * tests/test-h264.c:
27759 * tests/test-h264.h:
27760 * tests/test-mpeg2.c:
27761 * tests/test-mpeg2.h:
27762 * tests/test-surfaces.c:
27763 * tests/test-textures.c:
27764 * tests/test-vc1.c:
27765 * tests/test-vc1.h:
27766 * tests/test-windows.c:
27767 Update copyright notice.
27769 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
27772 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27773 * gst-libs/gst/vaapi/gstvaapisurface.c:
27774 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27775 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27776 * gst-libs/gst/vaapi/gstvaapitexture.c:
27777 * gst-libs/gst/vaapi/gstvaapiutils.c:
27778 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27779 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27780 * gst-libs/gst/vaapi/gstvaapivalue.c:
27781 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27782 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27783 * gst-libs/gst/vaapi/gstvaapivideosink.c:
27784 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27785 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27786 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27787 Fix licensing terms.
27789 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27794 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27796 * debian.upstream/copyright:
27797 Fix license terms...
27799 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27801 * gst/vaapisink/gstvaapisink.c:
27802 Render pretty background only in use-reflection=true mode.
27804 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27809 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27811 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27812 Drop the GLX 1.3 requirement.
27814 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27816 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27817 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27818 Call the GLX/Pixmap related functions through the vtable.
27820 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27824 * gst-libs/gst/vaapi/Makefile.am:
27825 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
27826 Drop dependency on libavformat.
27828 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27830 * gst-libs/gst/video/gstbasevideodecoder.c:
27831 * gst-libs/gst/video/gstbasevideodecoder.h:
27832 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
27834 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27836 * gst-libs/gst/video/gstbasevideodecoder.c:
27837 * gst-libs/gst/video/gstbasevideoutils.c:
27838 * gst-libs/gst/video/gstbasevideoutils.h:
27839 Drop superfluous functions.
27841 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27843 * gst-libs/gst/video/gstbasevideodecoder.c:
27844 Really drop any dependency on libgstvideo. i.e. inline the helpers.
27846 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27848 * gst-libs/gst/video/gstbasevideodecoder.c:
27849 Further drop dependency on libgstvideo.
27851 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27853 * gst-libs/gst/video/Makefile.am:
27854 * gst-libs/gst/video/gstbasevideocodec.c:
27855 * gst-libs/gst/video/gstbasevideocodec.h:
27856 * gst-libs/gst/video/gstbasevideodecoder.c:
27857 * gst-libs/gst/video/gstbasevideodecoder.h:
27858 * gst-libs/gst/video/gstbasevideoutils.c:
27859 * gst-libs/gst/video/gstbasevideoutils.h:
27860 Add GstBaseVideoDecoder from gst-plugins-bad git.
27862 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27864 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
27865 Fix GLX version check.
27867 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27871 Bump version for development.
27873 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27876 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
27877 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
27879 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27884 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27886 * gst-libs/gst/vaapi/gstvaapicompat.h:
27887 Fix build with older VA-API 0.29-sds.
27889 === release 0.2.4 ===
27891 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27893 * gst/vaapisink/gstvaapisink.c:
27894 * gst/vaapisink/gstvaapisink.h:
27895 Fix upscaling in foreign window (Totem).
27897 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27899 * gst/vaapisink/gstvaapisink.c:
27900 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
27902 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27905 * gst/vaapisink/gstvaapisink.c:
27906 Fix video rendering rect within an embedder window (Totem).
27908 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27911 * gst/vaapisink/gstvaapisink.c:
27912 Disable GLX rendering when vaapisink uses a foreign X window.
27914 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27916 * gst/vaapisink/gstvaapisink.c:
27917 Simplify GLX rendering code.
27919 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27922 Bump version for development.
27924 === release 0.2.3 ===
27926 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27931 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27933 * gst/vaapidecode/gstvaapidecode.c:
27934 Wait for at most one second for a VA surface to become available.
27936 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27940 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
27942 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27946 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27947 Fix decoder caps to report codec aliases.
27949 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27952 * gst/vaapidecode/gstvaapidecode.c:
27953 * gst/vaapidecode/gstvaapidecode.h:
27954 Fix VC-1 decoding through the playbin2 pipeline.
27956 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27958 * docs/reference/libs/libs-sections.txt:
27959 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27960 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27961 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
27962 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27963 Regularly update and expose decoder caps.
27965 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27967 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27968 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
27969 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27970 Add mechanism to reinsert buffer leftovers into the queue.
27972 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27975 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27976 Fix memory leak of encoded buffers.
27978 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27980 * docs/reference/libs/libs-sections.txt:
27981 * gst-libs/gst/vaapi/gstvaapicontext.c:
27982 * gst-libs/gst/vaapi/gstvaapicontext.h:
27983 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27984 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27985 Check for out-of-free-surfaces condition.
27987 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27989 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27990 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
27992 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
27994 * gst/vaapisink/gstvaapisink.c:
27995 Improve debug info for gst_vaapisink_ensure_render_rect().
27997 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28000 Bump version for development.
28002 === release 0.2.2 ===
28004 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28009 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28011 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28012 Improve previous fix.
28014 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28017 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28018 Fix a crash in the FFmpeg decoder on close.
28020 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28023 Sort platforms by name.
28025 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28029 Bump version for development.
28031 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28033 * gst/vaapisink/gstvaapisink.c:
28034 Add debug info for _show_frame().
28036 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28039 Nuke older build dir.
28041 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28043 * debian.upstream/control.in:
28044 Fix packaging deps.
28046 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28051 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28054 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
28055 Fix OpenGL texture internal format (Clutter).
28057 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28062 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28064 * gst/vaapisink/gstvaapisink.c:
28065 Debug video & display PARs.
28067 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28069 * gst/vaapisink/gstvaapisink.c:
28070 Use XGetGeometry() to retrieve the window size.
28072 === release 0.2.1 ===
28074 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28076 * gst/vaapisink/gstvaapisink.c:
28079 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28081 * gst/vaapisink/gstvaapisink.c:
28082 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
28084 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28087 Drop obsolete comment.
28089 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28094 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28096 * gst/vaapidecode/gstvaapidecode.c:
28097 Fix GstVaapiDisplay refcounting in vaapidecode.
28099 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28101 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
28104 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28106 * gst/vaapisink/gstvaapisink.c:
28107 * gst/vaapisink/gstvaapisink.h:
28108 Fix render rect when the foreign window size changes.
28110 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28114 * gst/vaapisink/Makefile.am:
28115 * gst/vaapisink/gstvaapisink.c:
28116 Add GstXOverlay interface to vaapisink (e.g. for Totem).
28118 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28121 Update deps to match configure.ac versions.
28123 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28125 * gst/vaapiconvert/gstvaapiconvert.c:
28126 * gst/vaapidecode/gstvaapidecode.c:
28127 * gst/vaapisink/gstvaapisink.c:
28130 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28133 * gst/vaapidecode/Makefile.am:
28134 * gst/vaapidecode/gstvaapidecode.c:
28135 * gst/vaapidecode/gstvaapidecode.h:
28136 Fix vaapidecode to expose the HW supported caps only.
28138 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28140 * gst/vaapidecode/gstvaapidecode.c:
28141 Initialize decoder earlier.
28143 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28147 * gst/vaapidecode/gstvaapidecode.c:
28148 Fix integration within the playbin2 pipeline.
28150 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28152 * docs/reference/libs/Makefile.am:
28153 Exclude gstvaapiutils_gst.h from docs for now.
28155 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28157 * gst/vaapiconvert/gstvaapiconvert.c:
28158 * gst/vaapidecode/gstvaapidecode.c:
28159 * gst/vaapisink/gstvaapisink.c:
28160 Raise VA-API plugins ranks.
28162 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28164 * gst-libs/gst/vaapi/Makefile.am:
28165 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
28166 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
28167 Add gst_vaapi_display_lookup_downstream() helper.
28169 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28171 * gst/vaapidecode/gstvaapidecode.c:
28172 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
28174 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28176 * docs/reference/libs/libs-sections.txt:
28177 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28178 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28179 * gst/vaapisink/gstvaapisink.c:
28180 Expose VA display through GstVaapiVideoBuffer.
28182 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28184 * gst/vaapidecode/gstvaapidecode.c:
28185 Simplify gst_vaapidecode_set_caps() and fix memory leak.
28187 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28189 * docs/reference/libs/libs-sections.txt:
28190 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28191 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28192 Expose video pool display.
28194 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28196 * gst-libs/gst/vaapi/gstvaapivideosink.c:
28197 Stop iteration if there is no more element to examine.
28199 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28201 * gst/vaapiconvert/gstvaapiconvert.c:
28202 * gst/vaapidecode/gstvaapidecode.c:
28203 * gst/vaapisink/gstvaapisink.c:
28204 Improve plugin details.
28206 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28208 * gst-libs/gst/vaapi/gstvaapisurface.h:
28209 * gst/vaapiconvert/gstvaapiconvert.c:
28210 * gst/vaapidecode/gstvaapidecode.c:
28211 * gst/vaapisink/gstvaapisink.c:
28212 Factor out VA surface caps.
28214 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28216 * gst/vaapidecode/gstvaapidecode.c:
28217 Add gst_vaapidecode_ensure_display() helper for set-caps.
28219 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28222 Bump version for development.
28224 === release 0.2.0 ===
28226 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28229 Really make it 0.2.0.
28231 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28236 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28238 * docs/reference/libs/Makefile.am:
28239 Don't exclude GstVaapiParamSpecs.
28241 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28243 * docs/reference/libs/Makefile.am:
28244 * docs/reference/libs/libs-sections.txt:
28245 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28246 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28249 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28251 * gst/vaapiconvert/gstvaapiconvert.c:
28252 * gst/vaapidecode/gstvaapidecode.c:
28253 * gst/vaapisink/gstvaapisink.c:
28254 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.
28256 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28258 * gst-libs/gst/vaapi/Makefile.am:
28259 Really link all helper libraries with libtool -no-undefined.
28261 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28263 * gst-libs/gst/vaapi/Makefile.am:
28264 Link helper libraries with libtool -no-undefined.
28266 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28269 * debian.upstream/gstreamer-vaapi.install.in:
28270 * gst/vaapiconvert/Makefile.am:
28271 * gst/vaapidecode/Makefile.am:
28272 * gst/vaapisink/Makefile.am:
28273 Don't build plugins with SONAME. Make them plain *.so.
28275 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28278 Improve documentation for release.
28280 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28282 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28283 Fix build with older VA-API 0.29.
28285 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28290 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28292 * tests/Makefile.am:
28295 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28297 * docs/reference/libs/Makefile.am:
28298 * docs/reference/libs/libs-docs.xml.in:
28299 * docs/reference/libs/libs-sections.txt:
28300 * docs/reference/libs/libs.core.types:
28301 * docs/reference/plugins/Makefile.am:
28302 * docs/reference/plugins/plugins-docs.xml.in:
28303 * docs/reference/plugins/plugins-sections.txt:
28304 * docs/reference/plugins/plugins.types:
28307 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28309 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28312 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28314 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28315 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
28316 * gst/vaapidecode/gstvaapidecode.c:
28317 * tests/test-decode.c:
28318 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
28320 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28322 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28323 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28324 Extract framerate information from caps.
28326 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28328 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28329 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28330 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28331 Move caps initialization to parent class.
28333 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28335 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28338 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28340 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28343 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28345 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28346 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28347 More simplifications.
28349 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28351 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28352 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28353 * tests/test-decode.c:
28354 Simplify GstVaapiDecoder API.
28356 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28358 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28359 Drop obsolete defs.
28361 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28363 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28364 Drop obsolete decls.
28366 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28368 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28369 * gst/vaapidecode/gstvaapidecode.c:
28370 Add more aliases for MPEG-4 decoding.
28372 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28374 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28375 Use avctx->coded_{width,height} info to create the VA context.
28377 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28379 * tests/test-decode.c:
28380 * tests/test-decode.h:
28381 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
28383 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28385 * tests/test-decode.c:
28386 * tests/test-decode.h:
28387 * tests/test-h264.c:
28388 * tests/test-h264.h:
28389 * tests/test-mpeg2.c:
28390 * tests/test-mpeg2.h:
28391 * tests/test-vc1.c:
28392 * tests/test-vc1.h:
28393 Simplify tests info.
28395 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28397 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28398 Try to improve heuristics to use an AVCodecContextParser.
28400 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28402 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28403 Fix VC-1 decoding, it does not require any specific parser.
28405 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28407 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28408 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
28410 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28412 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28413 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28414 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
28416 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28418 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28419 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28420 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
28421 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28422 * gst/vaapidecode/gstvaapidecode.c:
28423 * gst/vaapidecode/gstvaapidecode.h:
28424 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
28426 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28428 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28429 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28430 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28431 Improve WMV3 detection yet further.
28433 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28435 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28436 Fix detection of plain old WMV3 contents.
28438 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28440 * tests/test-vc1.c:
28441 Add End-of-Sequence start code.
28443 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28445 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28446 * gst/vaapidecode/gstvaapidecode.c:
28447 Fix VC-1 detection.
28449 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28451 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28452 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
28454 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28456 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28457 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28458 Drop obsolete (and wrong) code.
28460 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28462 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28463 Cosmetics (spelling).
28465 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28467 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28468 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28469 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28470 Try to fix timestamps (step 1). Looks OK on H55.
28472 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28474 * debian.upstream/Makefile.am:
28475 Ship with COPYING.LIB.
28477 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28482 * gst-libs/gst/vaapi/gstvaapi_priv.h:
28483 * gst-libs/gst/vaapi/gstvaapicompat.h:
28484 * gst-libs/gst/vaapi/gstvaapicontext.c:
28485 * gst-libs/gst/vaapi/gstvaapicontext.h:
28486 * gst-libs/gst/vaapi/gstvaapidebug.h:
28487 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28488 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28489 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28490 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
28491 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28492 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28493 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28494 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
28495 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
28496 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
28497 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
28498 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28499 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28500 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
28501 * gst-libs/gst/vaapi/gstvaapiimage.c:
28502 * gst-libs/gst/vaapi/gstvaapiimage.h:
28503 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28504 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28505 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
28506 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
28507 * gst-libs/gst/vaapi/gstvaapiobject.c:
28508 * gst-libs/gst/vaapi/gstvaapiobject.h:
28509 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
28510 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
28511 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
28512 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28513 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28514 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28515 * gst-libs/gst/vaapi/gstvaapisurface.h:
28516 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28517 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28518 * gst-libs/gst/vaapi/gstvaapitexture.h:
28519 * gst-libs/gst/vaapi/gstvaapitypes.h:
28520 * gst-libs/gst/vaapi/gstvaapiutils.h:
28521 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
28522 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
28523 * gst-libs/gst/vaapi/gstvaapivalue.h:
28524 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28525 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28526 * gst-libs/gst/vaapi/gstvaapivideosink.h:
28527 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28528 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
28529 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
28530 Relicense gst-libs/ code to LGPL v2.1+.
28532 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28534 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28535 Drop extraneous comma.
28537 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28539 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28540 Drop variant=itu field to help codec detection.
28542 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28544 * gst/vaapidecode/gstvaapidecode.c:
28545 Decode as many surfaces as possible in gst_vaapidecode_step().
28547 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28549 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28550 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28551 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28552 * gst/vaapidecode/gstvaapidecode.c:
28553 * gst/vaapidecode/gstvaapidecode.h:
28554 * tests/test-decode.c:
28555 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
28557 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28562 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28564 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28565 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
28567 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28569 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28570 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28571 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
28573 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28575 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28576 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28577 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
28579 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28581 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28582 Document H.264 / AVC1 format case better.
28584 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28586 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28587 Fix H.264 decoding with AVC1 format bitstreams.
28589 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28591 * gst/vaapidecode/gstvaapidecode.c:
28592 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
28594 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28596 * gst/vaapisink/gstvaapisink.c:
28597 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
28599 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28601 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28602 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28603 Export gst_vaapi_video_buffer_new().
28605 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28607 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28608 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
28610 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28615 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28620 * gst/vaapidecode/Makefile.am:
28621 * gst/vaapidecode/gstvaapidecode.c:
28622 * gst/vaapidecode/gstvaapidecode.h:
28623 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
28625 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28627 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28628 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28629 Add gst_vaapi_decoder_pause().
28631 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28633 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28634 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28635 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28636 Use a GstTask with start/stop semantics for the decoder thread.
28638 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28640 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28641 Drop extraneous var.
28643 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28645 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28646 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28647 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
28649 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28651 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28652 Fix gst_vaapi_decoder_get_surface() status.
28654 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28656 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28657 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28658 Try to set correct timestamps to the decoded surface proxy.
28660 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28662 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28663 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28664 * tests/test-decode.c:
28665 Add timestamps to GstVaapiSurfaceProxy.
28667 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28669 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28670 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
28672 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28674 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28675 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
28677 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28679 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28680 Prefer profile from codec-data if any was found there.
28682 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28684 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28685 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
28687 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28689 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28690 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
28692 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28694 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28695 Fix VC-1 codec initialization, it really needs an extradata buffer.
28697 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28699 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28700 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28701 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.
28703 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28705 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28706 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
28708 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28710 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28711 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28712 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
28713 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28714 * tests/test-decode.c:
28715 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
28717 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28719 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28720 Cosmetics (weird indentation).
28722 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28724 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28725 Cosmetics (extraneous variable, debug message).
28727 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28730 Fix check for VA-API enabled FFmpeg.
28732 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28734 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28735 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28736 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28737 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28738 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
28740 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28742 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28743 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28744 Add more error codes. Fix documentation.
28746 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28748 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28749 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
28751 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28753 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28754 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28755 * tests/test-decode.c:
28756 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
28758 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28760 * tests/test-vc1.c:
28761 Drop useless End-of-Sequence marker.
28763 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28765 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28766 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.
28768 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28770 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28771 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
28772 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.
28774 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28776 * tests/test-h264.c:
28777 * tests/test-vc1.c:
28778 Regenerate correct clips.
28780 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28782 * tests/Makefile.am:
28783 * tests/test-decode.c:
28784 * tests/test-h264.c:
28785 * tests/test-h264.h:
28786 * tests/test-mpeg2.c:
28787 * tests/test-mpeg2.h:
28788 * tests/test-vc1.c:
28789 * tests/test-vc1.h:
28790 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
28791 XXX: only VC-1 decoding works at this time because of awful
28792 bugs left in GstVaapiDecoderFfmpeg et al.
28794 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28797 * gst-libs/gst/vaapi/Makefile.am:
28798 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28799 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28800 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
28801 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
28802 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28803 Add initial (multithreaded) decoder based on FFmpeg.
28804 There are tons of bugs left:
28805 - Decoder API not nice enough with error conditions
28806 - FFmpeg parser is sometimes broken
28807 - Packets queue can be lost
28809 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28811 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28812 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28813 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
28815 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28817 * gst-libs/gst/vaapi/gstvaapicontext.c:
28818 * gst-libs/gst/vaapi/gstvaapicontext.h:
28819 Add VA context abstraction.
28821 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28823 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28824 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
28826 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28828 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28829 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28830 Add a means to cap the number of objects allocated in the pool.
28832 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28834 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28835 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28836 Add VA entrypoint abstraction.
28838 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28840 * docs/reference/libs/libs-docs.xml.in:
28841 * docs/reference/libs/libs-sections.txt:
28842 * gst-libs/gst/vaapi/Makefile.am:
28843 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28844 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28845 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
28846 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28847 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28848 * tests/test-display.c:
28849 Add VA profile abstraction.
28851 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28853 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
28854 Fix OpenGL rendering on G45 systems.
28856 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28858 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
28859 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
28861 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28863 * gst-libs/gst/vaapi/gstvaapitexture.c:
28864 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
28865 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
28866 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.
28868 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28870 * gst-libs/gst/vaapi/gstvaapitexture.c:
28871 Fix get-out conditions.
28873 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28875 * gst-libs/gst/vaapi/gstvaapitexture.c:
28876 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
28877 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.
28879 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28881 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
28884 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28886 * docs/reference/libs/libs-sections.txt:
28887 * gst-libs/gst/vaapi/Makefile.am:
28888 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
28889 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
28890 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
28891 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28892 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28893 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
28894 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
28895 * gst-libs/gst/vaapi/gstvaapitexture.c:
28896 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
28897 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28898 * tests/test-windows.c:
28899 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
28901 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28903 * gst-libs/gst/vaapi/Makefile.am:
28904 * gst-libs/gst/vaapi/gstvaapi_priv.h:
28905 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28906 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28907 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
28908 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
28909 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
28910 * gst-libs/gst/vaapi/gstvaapiimage.c:
28911 * gst-libs/gst/vaapi/gstvaapiobject.c:
28912 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28913 * gst-libs/gst/vaapi/gstvaapisurface.c:
28914 * gst-libs/gst/vaapi/gstvaapitexture.c:
28915 * gst-libs/gst/vaapi/gstvaapiwindow.c:
28916 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
28917 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28918 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
28920 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28922 * gst-libs/gst/vaapi/gstvaapitexture.c:
28923 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
28924 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
28925 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
28926 Improve handling of GL contexts.
28928 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28933 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28936 Bump version for development.
28938 === release 0.1.2 ===
28940 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28943 * debian.upstream/Makefile.am:
28944 * debian.upstream/control.in:
28945 Rename -dev package to libgstvaapi-dev.
28947 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28953 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28955 * gst-libs/gst/vaapi/gstvaapiutils.c:
28956 Fix build with VA-API < 0.30.
28958 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28961 * gst-libs/gst/vaapi/gstvaapicompat.h:
28962 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
28963 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
28964 * gst-libs/gst/vaapi/gstvaapitexture.c:
28965 * tests/test-display.c:
28966 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
28968 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28970 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
28971 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
28972 Add TFP and FBO helpers.
28974 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28976 * gst-libs/gst/vaapi/gstvaapiutils.c:
28977 * gst-libs/gst/vaapi/gstvaapiutils.h:
28978 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
28980 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28982 * gst-libs/gst/vaapi/gstvaapitexture.c:
28983 * gst-libs/gst/vaapi/gstvaapiutils.c:
28984 * gst-libs/gst/vaapi/gstvaapiutils.h:
28985 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28986 Use a shorter function name.
28988 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28990 * docs/reference/libs/libs-sections.txt:
28991 * gst-libs/gst/vaapi/gstvaapisurface.c:
28992 * gst-libs/gst/vaapi/gstvaapisurface.h:
28993 * gst-libs/gst/vaapi/gstvaapiutils.c:
28994 * gst-libs/gst/vaapi/gstvaapiutils.h:
28995 Add gst_vaapi_surface_query_status() wrapper.
28997 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
28999 * docs/reference/plugins/Makefile.am:
29000 Fix leftover during migration.
29002 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29006 * docs/reference/plugins/Makefile.am:
29008 * gst/vaapiconvert/Makefile.am:
29009 * gst/vaapiconvert/gstvaapiconvert.c:
29010 * gst/vaapiconvert/gstvaapiconvert.h:
29011 * gst/vaapisink/Makefile.am:
29012 * gst/vaapisink/gstvaapisink.c:
29013 * gst/vaapisink/gstvaapisink.h:
29014 Rename to gst/ as sys/ was too vague.
29016 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29018 * gst-libs/gst/vaapi/gstvaapiimage.c:
29019 * gst-libs/gst/vaapi/gstvaapiimage.h:
29020 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29021 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
29022 * gst-libs/gst/vaapi/gstvaapisurface.c:
29023 * gst-libs/gst/vaapi/gstvaapisurface.h:
29024 Try to not reference VA-API types directly.
29026 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29028 * sys/vaapisink/gstvaapisink.c:
29029 Fix reflection code to preserve aspect ratio.
29031 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29033 * sys/vaapisink/gstvaapisink.c:
29034 * sys/vaapisink/gstvaapisink.h:
29035 Fix fullscreen mode.
29037 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29039 * sys/vaapisink/gstvaapisink.c:
29040 * sys/vaapisink/gstvaapisink.h:
29041 Add OpenGL reflection effect ("use-reflection").
29043 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29046 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29047 Use a projection suitable for rotation around the Y axis.
29049 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29052 * sys/vaapisink/Makefile.am:
29053 * sys/vaapisink/gstvaapisink.c:
29054 * sys/vaapisink/gstvaapisink.h:
29055 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
29057 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29060 * debian.upstream/Makefile.am:
29061 * debian.upstream/control.in:
29062 * debian.upstream/libgstvaapi-glx.install.in:
29063 Add libgstvaapi-glx-0 package.
29065 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29067 * pkgconfig/Makefile.am:
29068 Really fix make distclean.
29070 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29072 * docs/reference/libs/Makefile.am:
29075 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29077 * pkgconfig/Makefile.am:
29078 Fix make distclean.
29080 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29082 * tests/Makefile.am:
29085 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29087 * docs/reference/libs/Makefile.am:
29088 * docs/reference/libs/libs.core.types:
29089 * docs/reference/libs/libs.glx.types:
29090 * docs/reference/libs/libs.x11.types:
29093 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29095 * sys/vaapisink/gstvaapisink.h:
29096 Fix build without GLX.
29098 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29103 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29105 * sys/vaapisink/Makefile.am:
29106 * sys/vaapisink/gstvaapisink.c:
29107 * sys/vaapisink/gstvaapisink.h:
29108 Add VA/GLX support to vaapisink.
29110 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29112 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29113 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29114 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29115 Add glXSwapBuffers() workaround for NVIDIA.
29117 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29119 * tests/Makefile.am:
29120 * tests/test-textures.c:
29121 Improve VA/GLX textures test.
29123 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29125 * gst-libs/gst/vaapi/gstvaapitexture.c:
29126 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29127 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29128 Fix texture rendering.
29130 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29132 * docs/reference/libs/libs-docs.xml.in:
29133 * docs/reference/libs/libs-sections.txt:
29134 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29135 * gst-libs/gst/vaapi/gstvaapitexture.c:
29138 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29140 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29141 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
29142 Add gst_vaapi_window_glx_put_texture() helper.
29144 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29146 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29149 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29153 * tests/test-windows.c:
29156 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29158 * gst-libs/gst/vaapi/Makefile.am:
29159 * gst-libs/gst/vaapi/gstvaapitexture.c:
29160 * gst-libs/gst/vaapi/gstvaapitexture.h:
29161 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29162 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29163 Add initial VA/GLX texture abstraction though the API is not good enough yet.
29165 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29167 * docs/reference/libs/libs-sections.txt:
29168 * gst-libs/gst/vaapi/gstvaapiobject.c:
29169 * gst-libs/gst/vaapi/gstvaapiobject.h:
29170 Add gst_vaapi_object_{,un}lock_display() helpers.
29172 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29174 * tests/Makefile.am:
29177 * tests/test-windows.c:
29178 Factor out image utilities.
29180 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29182 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29183 MT-Safe: lock display.
29185 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29187 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29188 Make sure window resize completed prior to resizing the GL viewport.
29190 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29192 * gst-libs/gst/vaapi/Makefile.am:
29193 gstvaapicompat.h is a private header, don't install it.
29195 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29197 * docs/reference/libs/libs-sections.txt:
29198 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29199 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29200 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29201 Add gst_vaapi_display_{sync,flush}() helpers.
29203 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29205 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29206 * sys/vaapisink/gstvaapisink.c:
29207 * sys/vaapisink/gstvaapisink.h:
29208 Add "synchronous" mode.
29210 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29212 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29213 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29214 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
29216 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29218 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29219 Restore GLX context only if there is one.
29221 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29223 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29224 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29225 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29226 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
29227 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
29229 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29231 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29232 Check GstVaapiWindow::render() is available prior to calling it.
29234 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29236 * tests/Makefile.am:
29237 * tests/test-display.c:
29238 * tests/test-textures.c:
29239 Add VA/GLX display tests.
29241 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29244 * gst-libs/gst/vaapi/Makefile.am:
29247 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29249 * docs/reference/libs/Makefile.am:
29250 * docs/reference/libs/libs-docs.xml.in:
29251 * docs/reference/libs/libs-sections.txt:
29252 * docs/reference/libs/libs.types:
29253 Add missing API documentation.
29255 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29258 * gst-libs/gst/vaapi/Makefile.am:
29259 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
29260 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
29261 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29262 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29263 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29264 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
29265 * pkgconfig/Makefile.am:
29266 * pkgconfig/gstreamer-vaapi-glx.pc.in:
29267 * tests/Makefile.am:
29268 * tests/test-textures.c:
29269 Add initial VA/GLX support.
29271 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29273 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29274 Add missing includes (for vaapi_check_status()).
29276 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29278 * gst-libs/gst/vaapi/gstvaapidebug.h:
29279 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
29281 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29283 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29284 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
29285 Add gst_vaapi_window_x11_is_foreign_xid() helper.
29287 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29289 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
29290 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
29291 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29292 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
29293 Allow derived classes to specify custom Visual and Colormap.
29295 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29297 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
29298 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
29299 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29300 Allow window creation with a specific visual (e.g. for GLX support).
29302 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29304 * gst-libs/gst/vaapi/gstvaapiimage.c:
29305 Fix return value on error (though it's the same in the end).
29307 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29309 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29310 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29311 Simplify initialization of VADisplay.
29313 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29316 Move __attribute__((visibility("hidden"))) check down.
29318 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29320 * docs/reference/libs/libs-sections.txt:
29321 * gst-libs/gst/vaapi/gstvaapiimage.c:
29322 * gst-libs/gst/vaapi/gstvaapiimage.h:
29323 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29324 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
29325 * gst-libs/gst/vaapi/gstvaapisurface.c:
29326 * gst-libs/gst/vaapi/gstvaapisurface.h:
29327 * tests/test-surfaces.c:
29328 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
29330 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29332 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29333 Use the parent display object, no need to maintain another one.
29334 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
29336 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29338 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
29339 Add more internal helpers.
29341 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29343 * gst-libs/gst/vaapi/gstvaapiimage.c:
29344 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
29345 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29346 * gst-libs/gst/vaapi/gstvaapisurface.c:
29347 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29348 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29349 Rename to GST_VAAPI_OBJECT_DISPLAY().
29351 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29353 * docs/reference/libs/libs-sections.txt:
29354 * gst-libs/gst/vaapi/gstvaapiimage.c:
29355 * gst-libs/gst/vaapi/gstvaapiobject.c:
29356 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
29357 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29358 * gst-libs/gst/vaapi/gstvaapisurface.c:
29359 * gst-libs/gst/vaapi/gstvaapitypes.h:
29360 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29361 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
29363 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29365 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29366 * gst-libs/gst/vaapi/gstvaapiwindow.h:
29367 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29368 Make GstVaapiWindow* derive from GstVaapiObject.
29370 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29373 Factor out use gstreamer-vaapi (PACKAGE name).
29375 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29378 Improve versioning summary.
29380 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29382 * gst-libs/gst/vaapi/Makefile.am:
29383 gstvaapicompat.h is now a private header (not installed).
29385 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29387 * gst-libs/gst/vaapi/gstvaapiimage.c:
29388 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
29389 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
29390 * gst-libs/gst/vaapi/gstvaapiobject.c:
29391 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29392 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29393 Include gstvaapicompat.h in source files only, not headers.
29395 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29398 * gst-libs/gst/vaapi/Makefile.am:
29399 * sys/vaapiconvert/Makefile.am:
29400 * sys/vaapisink/Makefile.am:
29401 * tests/Makefile.am:
29402 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
29404 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29408 * gst-libs/gst/vaapi/Makefile.am:
29409 * gst-libs/gst/vaapi/gstvaapicompat.h:
29410 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29411 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
29412 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
29413 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
29414 * gst-libs/gst/vaapi/gstvaapisurface.c:
29415 * gst-libs/gst/vaapi/gstvaapiutils.c:
29416 * gst-libs/gst/vaapi/gstvaapiutils.h:
29417 * pkgconfig/gstreamer-vaapi-x11.pc.in:
29418 * pkgconfig/gstreamer-vaapi.pc.in:
29419 * sys/vaapiconvert/Makefile.am:
29420 * sys/vaapisink/Makefile.am:
29421 * tests/Makefile.am:
29422 Add compatibility with the original VA-API 0.29.
29424 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29426 * gst-libs/gst/vaapi/gstvaapivalue.h:
29427 Add missing file (gstvaapivalue.h).
29429 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29431 * gst-libs/gst/vaapi/gstvaapiimage.c:
29432 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29433 * gst-libs/gst/vaapi/gstvaapisurface.c:
29434 Fix g_warning() invocation.
29436 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29438 * gst-libs/gst/vaapi/gstvaapisurface.c:
29439 Deassociate subpictures while destroying the surface.
29441 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29443 * gst-libs/gst/vaapi/gstvaapisurface.c:
29444 Fix destruction order of subpictures. They should be destroyed first.
29446 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29449 * gst-libs/gst/vaapi/gstvaapiimage.c:
29450 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
29451 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
29452 * tests/test-windows.c:
29453 Add support for AYUV format.
29455 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29457 * tests/test-windows.c:
29458 Simplify upload process and fallback to subpictures.
29460 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29462 * docs/reference/libs/libs-docs.xml.in:
29463 * docs/reference/libs/libs-sections.txt:
29464 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
29467 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29469 * gst-libs/gst/vaapi/Makefile.am:
29470 * gst-libs/gst/vaapi/gstvaapiobject.c:
29471 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
29472 * gst-libs/gst/vaapi/gstvaapitypes.h:
29473 * gst-libs/gst/vaapi/gstvaapivalue.c:
29474 Move GValue specific stuff to a dedicated file.
29476 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29478 * tests/test-surfaces.c:
29479 Cosmetics (lowercase for consistency).
29481 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29483 * gst-libs/gst/vaapi/gstvaapiobject.c:
29484 Cosmetics (vertical alignment).
29486 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29488 * gst-libs/gst/vaapi/gstvaapiobject.c:
29489 Fix return value on error.
29491 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29493 * docs/reference/libs/libs-sections.txt:
29494 * gst-libs/gst/vaapi/gstvaapiimage.c:
29495 * gst-libs/gst/vaapi/gstvaapiimage.h:
29496 * gst-libs/gst/vaapi/gstvaapiobject.c:
29497 * gst-libs/gst/vaapi/gstvaapiobject.h:
29498 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
29499 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29500 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
29501 * gst-libs/gst/vaapi/gstvaapisurface.c:
29502 * gst-libs/gst/vaapi/gstvaapisurface.h:
29503 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29504 * tests/test-surfaces.c:
29505 Move "id" down to the GstVaapiObject base.
29507 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29509 * gst-libs/gst/vaapi/gstvaapitypes.c:
29510 Cosmetics (drop extraneous empty line).
29512 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29514 * gst-libs/gst/vaapi/Makefile.am:
29515 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
29516 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
29517 Add GParamSpecs for GstVaapiID.
29519 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29521 * docs/reference/libs/libs.types:
29522 Drop gst_vaapi_id_get_type().
29524 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29526 * docs/reference/libs/libs-sections.txt:
29527 * gst-libs/gst/vaapi/gstvaapitypes.h:
29528 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
29530 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29532 * docs/reference/libs/libs-sections.txt:
29533 * docs/reference/libs/libs.types:
29534 * gst-libs/gst/vaapi/Makefile.am:
29535 * gst-libs/gst/vaapi/gstvaapitypes.c:
29536 * gst-libs/gst/vaapi/gstvaapitypes.h:
29537 Add GstVaapiID abstraction.
29539 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29541 * docs/reference/libs/libs.types:
29544 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29546 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29547 * gst-libs/gst/vaapi/gstvaapiimage.c:
29548 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29549 * gst-libs/gst/vaapi/gstvaapisurface.c:
29550 Drop useless include (<va/va_backend.h>).
29552 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29554 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
29555 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
29557 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29559 * gst-libs/gst/vaapi/Makefile.am:
29560 * gst-libs/gst/vaapi/gstvaapiimage.c:
29561 * gst-libs/gst/vaapi/gstvaapiobject.c:
29562 * gst-libs/gst/vaapi/gstvaapiobject.h:
29563 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
29564 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29565 * gst-libs/gst/vaapi/gstvaapisurface.c:
29566 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29567 Move private definitions and accessors to gstvaapiobject_priv.h.
29569 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29571 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29572 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29573 * gst-libs/gst/vaapi/gstvaapiimage.c:
29574 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
29575 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
29576 * gst-libs/gst/vaapi/gstvaapiobject.c:
29577 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29578 * gst-libs/gst/vaapi/gstvaapisurface.c:
29579 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
29580 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29581 * gst-libs/gst/vaapi/gstvaapivideopool.c:
29582 * gst-libs/gst/vaapi/gstvaapivideosink.c:
29583 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29584 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29585 Fix short descriptions.
29587 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29591 * debian.upstream/Makefile.am:
29592 * debian.upstream/changelog.in:
29593 * debian.upstream/compat:
29594 * debian.upstream/control.in:
29595 * debian.upstream/copyright:
29596 * debian.upstream/gstreamer-vaapi-doc.install.in:
29597 * debian.upstream/gstreamer-vaapi.install.in:
29598 * debian.upstream/libgstvaapi-dev.install.in:
29599 * debian.upstream/libgstvaapi-x11.install.in:
29600 * debian.upstream/libgstvaapi.install.in:
29601 * debian.upstream/rules:
29602 Generate upstream packages through make deb.upstream.
29604 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29607 Bump version for development.
29609 === release 0.1.1 ===
29611 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29613 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
29614 Use a black background for new windows.
29616 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29621 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29624 * docs/reference/libs/libs.types:
29625 * gst-libs/gst/vaapi/Makefile.am:
29626 * gst-libs/gst/vaapi/gstvaapimarshal.list:
29627 * gst-libs/gst/vaapi/gstvaapiobject.c:
29628 * gst-libs/gst/vaapi/gstvaapiobject.h:
29629 * tests/test-surfaces.c:
29630 Add "destroy" signal.
29632 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29634 * docs/reference/libs/libs-docs.xml.in:
29635 Improve gst-plugins-vaapi Library reference template.
29637 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29639 * docs/reference/libs/libs-docs.xml.in:
29640 * docs/reference/libs/libs-sections.txt:
29641 * gst-libs/gst/vaapi/Makefile.am:
29642 * gst-libs/gst/vaapi/gstvaapiimage.c:
29643 * gst-libs/gst/vaapi/gstvaapiimage.h:
29644 * gst-libs/gst/vaapi/gstvaapiobject.c:
29645 * gst-libs/gst/vaapi/gstvaapiobject.h:
29646 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29647 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
29648 * gst-libs/gst/vaapi/gstvaapisurface.c:
29649 * gst-libs/gst/vaapi/gstvaapisurface.h:
29650 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29651 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
29653 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29655 * sys/vaapisink/gstvaapisink.c:
29658 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29660 * sys/vaapisink/gstvaapisink.c:
29661 Make sure VA display is valid when created with an explicit "display" name.
29663 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29665 * sys/vaapisink/gstvaapisink.c:
29666 Use plain "display" property for the X11 display name.
29668 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29670 * sys/vaapiconvert/gstvaapiconvert.c:
29671 * sys/vaapisink/gstvaapisink.c:
29672 Document vaapiconvert & vaapisink plugins.
29674 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29677 * docs/reference/Makefile.am:
29678 * docs/reference/plugins/Makefile.am:
29679 * docs/reference/plugins/plugins-docs.xml.in:
29680 * docs/reference/plugins/plugins-overrides.txt:
29681 * docs/reference/plugins/plugins-sections.txt:
29682 * docs/reference/plugins/plugins.types:
29683 Add plugins documentation template.
29685 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29687 * sys/vaapisink/gstvaapisink.c:
29688 * sys/vaapisink/gstvaapisink.h:
29689 Don't export gst_vaapisink_get_display().
29691 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29694 * docs/reference/libs/libs-docs.xml.in:
29695 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29696 * gst-libs/gst/vaapi/gstvaapiimage.c:
29697 * gst-libs/gst/vaapi/gstvaapisurface.c:
29698 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29699 Drop introspection annotations since they require gtk-doc >= 1.12.
29701 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29703 * gst-libs/gst/vaapi/gstvaapisurface.c:
29704 Add note about the fact that the surface holds an extra reference to the subpicture.
29706 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29708 * gst-libs/gst/vaapi/gstvaapiimage.c:
29709 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29710 * gst-libs/gst/vaapi/gstvaapisurface.c:
29711 Improve debugging messages.
29713 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29715 * tests/test-windows.c:
29716 Unref subpicture earlier as the surface is supposed to hold a reference to it.
29718 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29720 * docs/reference/libs/libs-sections.txt:
29721 * gst-libs/gst/vaapi/gstvaapisurface.c:
29722 * gst-libs/gst/vaapi/gstvaapisurface.h:
29723 * tests/test-windows.c:
29724 Add gst_vaapi_surface_{,de}associate_subpicture() API.
29726 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29728 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29729 Wait for MapNotify or UnmapNotify events on foreign windows too.
29731 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29733 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29734 Check whether the foreign XID is mapped at binding time.
29736 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29738 * sys/vaapisink/gstvaapisink.c:
29739 Add missing includes.
29741 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29744 * debian/Makefile.am:
29745 * debian/control.in:
29746 * debian/gstreamer-vaapi-doc.install.in:
29750 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29752 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29753 Fix warnings (drop extraneous var).
29755 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29757 * docs/reference/libs/libs-sections.txt:
29758 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
29759 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
29761 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29763 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29766 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29768 * gst-libs/gst/vaapi/Makefile.am:
29769 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29770 * gst-libs/gst/vaapi/gstvaapiwindow.h:
29771 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
29772 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29773 Try to improve switch to fullscreen mode.
29775 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29777 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
29778 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
29779 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29780 Improve display locking and rework X event wait functions.
29782 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29784 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29785 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
29786 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
29788 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29790 * gst-libs/gst/vaapi/Makefile.am:
29791 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29792 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
29793 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.
29795 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29797 * docs/reference/libs/libs-sections.txt:
29798 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29799 * gst-libs/gst/vaapi/gstvaapiwindow.h:
29800 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
29802 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29804 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29805 * gst-libs/gst/vaapi/gstvaapiwindow.h:
29806 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29807 Add gst_vaapi_window_get_display() to base.
29809 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29811 * docs/reference/libs/libs-docs.xml.in:
29812 * docs/reference/libs/libs-sections.txt:
29813 * gst-libs/gst/vaapi/Makefile.am:
29814 * gst-libs/gst/vaapi/gstvaapitypes.h:
29815 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29816 * gst-libs/gst/vaapi/gstvaapiwindow.h:
29817 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29818 * sys/vaapisink/gstvaapisink.c:
29819 * sys/vaapisink/gstvaapisink.h:
29820 Add GstVaapiPoint & GstVaapiRectangle data structures.
29822 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29827 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29830 * sys/vaapisink/gstvaapisink.c:
29831 * sys/vaapisink/gstvaapisink.h:
29832 Allow `vaapisink` to render videos in fullscreen mode.
29834 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29836 * docs/reference/libs/libs-sections.txt:
29837 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29838 * gst-libs/gst/vaapi/gstvaapiwindow.h:
29839 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29840 Add gst_vaapi_window_set_fullscreen() API.
29842 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29844 * sys/vaapisink/gstvaapisink.c:
29845 Size window so that to respect the video and pixel aspect ratio.
29847 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29849 * docs/reference/libs/libs-sections.txt:
29850 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29851 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29852 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29853 * tests/test-display.c:
29854 Add gst_vaapi_display_get_pixel_aspect_ratio().
29856 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29858 * docs/reference/libs/libs-sections.txt:
29861 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29863 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29864 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29865 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29866 * tests/test-display.c:
29867 Add display size accessors.
29869 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29872 * debian/control.in:
29873 Build-Requires: gstreamer-plugins-base >= 0.10.16.
29875 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29877 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29878 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
29879 * gst-libs/gst/vaapi/gstvaapiimage.h:
29880 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
29881 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
29882 * gst-libs/gst/vaapi/gstvaapisurface.h:
29883 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
29884 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
29885 * gst-libs/gst/vaapi/gstvaapivideopool.h:
29886 * gst-libs/gst/vaapi/gstvaapiwindow.h:
29887 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
29888 Fix documentation of *Class'es.
29890 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29892 * gst-libs/gst/vaapi/gstvaapiutils.c:
29893 * gst-libs/gst/vaapi/gstvaapiutils.h:
29894 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29895 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
29897 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29899 * docs/reference/libs/libs-sections.txt:
29900 * gst-libs/gst/vaapi/gstvaapisurface.h:
29901 * gst-libs/gst/vaapi/gstvaapiwindow.h:
29902 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
29904 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29906 * docs/reference/libs/libs-sections.txt:
29907 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29908 * gst-libs/gst/vaapi/gstvaapiwindow.h:
29909 * sys/vaapisink/gstvaapisink.c:
29910 * tests/test-windows.c:
29911 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
29913 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29915 * docs/reference/libs/Makefile.am:
29916 Fix make dist for --enable-gtk-doc builds.
29918 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29921 Improve autogen.sh.
29923 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29927 Generate gtk-doc.make from gtkdocize.
29929 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29934 * docs/Makefile.am:
29935 * docs/reference/Makefile.am:
29936 * docs/reference/libs/Makefile.am:
29937 * docs/reference/libs/libs-docs.xml.in:
29938 * docs/reference/libs/libs-overrides.txt:
29939 * docs/reference/libs/libs-sections.txt:
29940 * docs/reference/libs/libs.types:
29941 Document public API for libgstvaapi-*.so.*.
29943 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29945 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29946 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
29947 Document GstVaapiVideoBuffer.
29949 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29951 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
29952 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
29953 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
29954 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
29955 * gst-libs/gst/vaapi/gstvaapivideopool.c:
29956 * gst-libs/gst/vaapi/gstvaapivideopool.h:
29957 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
29959 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29961 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29962 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29963 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29964 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
29965 * gst-libs/gst/vaapi/gstvaapiimage.c:
29966 * gst-libs/gst/vaapi/gstvaapiimage.h:
29967 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
29968 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
29969 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29970 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
29971 * gst-libs/gst/vaapi/gstvaapisurface.c:
29972 * gst-libs/gst/vaapi/gstvaapisurface.h:
29973 * gst-libs/gst/vaapi/gstvaapivideosink.c:
29974 * gst-libs/gst/vaapi/gstvaapivideosink.h:
29975 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29976 * gst-libs/gst/vaapi/gstvaapiwindow.h:
29977 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29978 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
29979 Add tedious documentation.
29981 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29983 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29984 Beautify append_formats().
29986 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29988 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29989 Simplify GstVaapiDisplay (use GArray).
29991 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
29994 * sys/vaapiconvert/gstvaapiconvert.c:
29995 * sys/vaapiconvert/gstvaapiconvert.h:
29996 Factor out direct-rendering infrastructure.
29998 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30000 * sys/vaapiconvert/gstvaapiconvert.c:
30001 * sys/vaapiconvert/gstvaapiconvert.h:
30002 Allow user to specify inout-buffers & derive-image optimizations.
30004 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30006 * sys/vaapiconvert/gstvaapiconvert.c:
30007 Reduce number of debug messaged printed out.
30009 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30011 * sys/vaapiconvert/gstvaapiconvert.c:
30012 * sys/vaapiconvert/gstvaapiconvert.h:
30013 Add vaDeriveImage() optimization.
30015 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30017 * gst-libs/gst/vaapi/gstvaapiimage.c:
30018 Fix gst_vaapi_image_create() from a foreign VA image.
30020 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30022 * gst-libs/gst/vaapi/gstvaapiimage.c:
30023 * gst-libs/gst/vaapi/gstvaapiimage.h:
30024 * gst-libs/gst/vaapi/gstvaapisurface.c:
30025 * gst-libs/gst/vaapi/gstvaapisurface.h:
30026 Add gst_vaapi_surface_derive_image() API.
30028 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30030 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30031 * gst-libs/gst/vaapi/gstvaapiwindow.h:
30032 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30033 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().
30035 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30037 * tests/test-windows.c:
30038 Try YV12 & I420 image formats too.
30040 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30042 * gst-libs/gst/vaapi/gstvaapiimage.c:
30043 Split map/unmap functions into internal functions that don't check preconditions.
30045 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30047 * gst-libs/gst/vaapi/gstvaapiimage.c:
30048 Improve gst_vaapi_image_new() sanity checks.
30050 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30052 * tests/test-windows.c:
30055 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30057 * sys/vaapiconvert/gstvaapiconvert.c:
30058 Check if our inout buffer is still alive or default to a separate output buffer.
30060 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30062 * sys/vaapiconvert/gstvaapiconvert.c:
30063 * sys/vaapiconvert/gstvaapiconvert.h:
30064 Factor out buffers negotiation and optimization checks.
30066 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30068 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30069 * gst-libs/gst/vaapi/gstvaapiimage.c:
30070 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
30071 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30072 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30073 * sys/vaapiconvert/gstvaapiconvert.h:
30076 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30078 * gst-libs/gst/vaapi/gstvaapiimage.c:
30079 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
30081 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30083 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30084 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30085 * gst-libs/gst/vaapi/gstvaapiimage.c:
30086 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30087 * gst-libs/gst/vaapi/gstvaapisurface.c:
30088 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30089 Add VA display locking utilities.
30091 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30093 * sys/vaapisink/gstvaapisink.c:
30094 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
30096 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30098 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30099 * tests/test-windows.c:
30100 Don't show window by default during creation.
30102 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30104 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30105 Fix gst_vaapi_window_x11_destroy().
30107 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30109 * sys/vaapiconvert/gstvaapiconvert.c:
30110 * sys/vaapiconvert/gstvaapiconvert.h:
30111 Alias sink & src pad buffers whenever possible.
30113 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30115 * gst-libs/gst/vaapi/gstvaapiimage.c:
30116 * gst-libs/gst/vaapi/gstvaapiimage.h:
30117 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
30119 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30121 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30122 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30123 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
30125 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30127 * sys/vaapiconvert/gstvaapiconvert.c:
30128 Fix image & surface size cache.
30130 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30133 Move gstreamer-vaapi package versioning to the top.
30135 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30138 Bump version for development.
30140 === release 0.1.0 ===
30142 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30145 Cosmetics (shorten lines).
30147 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30153 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30155 * debian/Makefile.am:
30156 * debian/changelog.in:
30158 * debian/control.in:
30159 * debian/copyright:
30160 * debian/gstreamer-vaapi.install.in:
30161 * debian/libgstvaapi-dev.install.in:
30162 * debian/libgstvaapi-x11.install.in:
30163 * debian/libgstvaapi.install.in:
30165 Add debian packaging.
30167 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30171 Add debian packaging.
30173 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30175 * pkgconfig/Makefile.am:
30176 Silence GNU make extensions warning.
30178 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30181 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'
30183 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30187 * pkgconfig/Makefile.am:
30188 * pkgconfig/gstreamer-vaapi-x11.pc.in:
30189 * pkgconfig/gstreamer-vaapi.pc.in:
30190 Add pkgconfig files.
30192 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30195 * gst-libs/gst/vaapi/Makefile.am:
30196 * sys/vaapisink/Makefile.am:
30197 * tests/Makefile.am:
30198 Split X11 support to libgstvaapi-x11-*.so.*
30200 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30202 * gst-libs/gst/vaapi/Makefile.am:
30203 Don't install private headers.
30205 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30207 * gst-libs/gst/vaapi/gstvaapidebug.h:
30208 * gst-libs/gst/vaapi/gstvaapiutils.c:
30209 * gst-libs/gst/vaapi/gstvaapiutils.h:
30212 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30214 * gst-libs/gst/vaapi/Makefile.am:
30215 * gst-libs/gst/vaapi/gstvaapidebug.h:
30216 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30217 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30218 * gst-libs/gst/vaapi/gstvaapiimage.c:
30219 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
30220 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30221 * gst-libs/gst/vaapi/gstvaapisurface.c:
30222 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
30223 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30224 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30225 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30226 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30227 Rename vaapi_debug.h to gstvaapidebug.h.
30229 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30231 * gst-libs/gst/vaapi/Makefile.am:
30232 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30233 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30234 * gst-libs/gst/vaapi/gstvaapiimage.c:
30235 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30236 * gst-libs/gst/vaapi/gstvaapisurface.c:
30237 * gst-libs/gst/vaapi/gstvaapiutils.c:
30238 * gst-libs/gst/vaapi/gstvaapiutils.h:
30239 * gst-libs/gst/vaapi/vaapi_debug.h:
30240 Move vaapi_utils.* to gstvaapiutils.*
30242 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30244 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30245 Cosmetics (remove an extra line).
30247 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30249 * gst-libs/gst/vaapi/Makefile.am:
30250 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
30251 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30252 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30253 Move X11 utilties to gstvaapiutils_x11.[ch].
30255 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30257 * gst-libs/gst/vaapi/Makefile.am:
30258 * gst-libs/gst/vaapi/gstvaapivideosink.c:
30259 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30260 * sys/vaapiconvert/gstvaapiconvert.c:
30261 * sys/vaapisink/gstvaapisink.c:
30262 Rename GstVaapiSinkBase to GstVaapiVideoSink.
30264 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30267 * tests/Makefile.am:
30268 * tests/examples/Makefile.am:
30269 * tests/examples/generic/Makefile.am:
30270 * tests/test-display.c:
30271 * tests/test-surfaces.c:
30272 * tests/test-windows.c:
30273 Move tests to top-level tests/ directory.
30275 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30277 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30278 * gst-libs/gst/vaapi/gstvaapiimage.c:
30279 * sys/vaapiconvert/gstvaapiconvert.c:
30280 * sys/vaapiconvert/gstvaapiconvert.h:
30281 Handle I420 formats internally in GstVaapiImage.
30283 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30285 * sys/vaapiconvert/gstvaapiconvert.c:
30286 * sys/vaapiconvert/gstvaapiconvert.h:
30287 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
30289 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30291 * gst-libs/gst/vaapi/gstvaapiimage.c:
30292 Implement I420 and YV12 if the underlying implementation does not.
30294 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30296 * sys/vaapiconvert/Makefile.am:
30297 * sys/vaapiconvert/gstvaapiconvert.c:
30298 * sys/vaapiconvert/gstvaapiconvert.h:
30299 Add initial vaapiconvert plugin.
30301 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30303 * sys/vaapisink/gstvaapisink.c:
30304 * sys/vaapisink/gstvaapisink.h:
30307 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30309 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30312 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30314 * tests/examples/generic/test-windows.c:
30315 Generate R/G/B rects.
30317 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30319 * gst-libs/gst/vaapi/gstvaapisurface.c:
30320 * gst-libs/gst/vaapi/gstvaapisurface.h:
30321 Add gst_vaapi_surface_sync().
30323 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30325 * gst-libs/gst/vaapi/gstvaapiimage.c:
30326 Cosmetics (reverse args order).
30328 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30330 * gst-libs/gst/vaapi/gstvaapiimage.c:
30331 * gst-libs/gst/vaapi/gstvaapiimage.h:
30332 * gst-libs/gst/vaapi/gstvaapisurface.c:
30335 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30337 * gst-libs/gst/vaapi/Makefile.am:
30338 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30339 * gst-libs/gst/vaapi/gstvaapiwindow.h:
30340 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30341 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
30342 * tests/examples/generic/Makefile.am:
30343 * tests/examples/generic/test-windows.c:
30344 Add VA/X11 window abstraction.
30346 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30348 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30349 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30350 Add VA and X11 display accessors.
30352 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30354 * gst-libs/gst/vaapi/gstvaapiimage.c:
30357 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30359 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30362 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30364 * gst-libs/gst/vaapi/gstvaapiimage.c:
30365 * gst-libs/gst/vaapi/gstvaapiimage.h:
30366 * gst-libs/gst/vaapi/gstvaapisurface.c:
30367 * gst-libs/gst/vaapi/gstvaapisurface.h:
30368 Add gst_vaapi_{get,put}_image() API.
30370 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30372 * gst-libs/gst/vaapi/gstvaapiimage.c:
30373 * gst-libs/gst/vaapi/gstvaapiimage.h:
30374 Add gst_vaapi_image_update_from_buffer() helper.
30376 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30378 * sys/vaapisink/Makefile.am:
30379 * sys/vaapisink/gstvaapisink.c:
30380 * sys/vaapisink/gstvaapisink.h:
30381 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
30383 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30385 * tests/examples/generic/Makefile.am:
30386 * tests/examples/generic/test-surfaces.c:
30389 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30391 * gst-libs/gst/vaapi/Makefile.am:
30392 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30393 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30394 Add basic GstVaapiVideoBuffer.
30396 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30398 * gst-libs/gst/vaapi/Makefile.am:
30399 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
30400 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
30401 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
30402 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
30403 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30404 * gst-libs/gst/vaapi/gstvaapivideopool.h:
30405 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
30407 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30409 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30410 Simplify format conversion code.
30412 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30414 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30415 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30416 Add gst_vaapi_image_format_from_caps() helper.
30418 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30420 * gst-libs/gst/vaapi/Makefile.am:
30421 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
30422 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
30423 Add VA surface pool (lazy allocator).
30425 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30427 * gst-libs/gst/vaapi/gstvaapisurface.c:
30428 * gst-libs/gst/vaapi/gstvaapisurface.h:
30429 Add gst_vaapi_surface_get_size() helper.
30431 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30433 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30434 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
30436 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30438 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30439 Reset display-name if the user provided his own X11 display.
30441 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30443 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30444 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30445 * tests/examples/generic/test-display.c:
30446 Add gst_vaapi_display_x11_new_with_display() API.
30448 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30450 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30451 * gst-libs/gst/vaapi/gstvaapiimage.h:
30452 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30453 * gst-libs/gst/vaapi/gstvaapisurface.h:
30454 Fix *_GET_CLASS() definitions...
30456 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30458 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30459 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30460 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30461 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30462 * tests/examples/generic/test-display.c:
30463 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
30465 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30467 * gst-libs/gst/vaapi/gstvaapisurface.c:
30468 * gst-libs/gst/vaapi/gstvaapisurface.h:
30469 Use GstVaapiChromaType abstraction.
30471 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30473 * gst-libs/gst/vaapi/gstvaapiimage.c:
30474 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30475 * gst-libs/gst/vaapi/gstvaapisurface.c:
30476 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
30478 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30480 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30481 Don't warn on failure, just return an appropriate error or value.
30483 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30485 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30486 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30487 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30488 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
30490 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30492 * gst-libs/gst/vaapi/Makefile.am:
30493 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
30494 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
30495 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
30497 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30499 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30500 * gst-libs/gst/vaapi/gstvaapiimage.c:
30501 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30502 * gst-libs/gst/vaapi/gstvaapisurface.c:
30503 * gst-libs/gst/vaapi/vaapi_debug.h:
30506 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30508 * gst-libs/gst/vaapi/gstvaapiimage.c:
30509 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30510 Fix GstVaapiImage and GstVaapiSubpicture initialization.
30512 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30514 * gst-libs/gst/vaapi/gstvaapisurface.c:
30515 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
30517 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30519 * tests/examples/generic/test-display.c:
30522 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30524 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30525 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30526 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30527 Fix GstVaapiDisplay initialization.
30529 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30531 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30532 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30533 Get VA image & subpicture formats as GstCaps.
30535 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30537 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30538 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30539 Add helper to convert from GstVaapiImageFormat to GstCaps.
30541 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30543 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30544 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30545 * gst-libs/gst/vaapi/gstvaapisurface.c:
30546 Cosmetics (drop unused variables).
30548 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30551 * sys/vaapiconvert/Makefile.am:
30552 * sys/vaapiconvert/gstvaapiconvert.c:
30553 * sys/vaapiconvert/gstvaapiconvert.h:
30554 * sys/vaapisink/Makefile.am:
30555 * sys/vaapisink/gstvaapisink.c:
30556 * sys/vaapisink/gstvaapisink.h:
30557 Add boilerplate for vaapiconvert and vaapisink elements.
30559 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30563 * sys/vaapiconvert/Makefile.am:
30564 Add vaapiconvert element hierarchy.
30566 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30568 * sys/vaapisink/Makefile.am:
30569 Rename to vaapisink.
30571 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30573 * gst-libs/gst/vaapi/gstvaapisurface.c:
30574 Shorter code (and more correct).
30576 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30578 * gst-libs/gst/vaapi/gstvaapisurface.c:
30579 * gst-libs/gst/vaapi/gstvaapisurface.h:
30580 Add helper to get GstVaapiDisplay from a surface.
30582 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30584 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30585 Fix subpicture formats list length.
30587 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30589 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30590 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30591 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
30593 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30595 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30596 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30597 Cosmetics (more checks, includes).
30599 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30601 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30602 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30603 Really add VA subpicture abstraction.
30605 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30607 * gst-libs/gst/vaapi/Makefile.am:
30608 * gst-libs/gst/vaapi/gstvaapiimage.c:
30609 * gst-libs/gst/vaapi/gstvaapiimage.h:
30610 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30611 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30612 * gst-libs/gst/vaapi/gstvaapisurface.c:
30613 * gst-libs/gst/vaapi/gstvaapisurface.h:
30614 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
30616 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30619 * gst-libs/gst/vaapi/Makefile.am:
30620 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30621 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30622 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30623 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30624 * gst-libs/gst/vaapi/vaapi_debug.h:
30625 * gst-libs/gst/vaapi/vaapi_utils.c:
30626 * gst-libs/gst/vaapi/vaapi_utils.h:
30627 * tests/examples/generic/Makefile.am:
30628 * tests/examples/generic/test-display.c:
30629 Add initial VA display abstraction.
30631 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30635 * tests/Makefile.am:
30636 * tests/examples/Makefile.am:
30637 * tests/examples/generic/Makefile.am:
30638 Add tests infrastructure.
30640 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30643 Clean up VA-API checks.
30645 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
30648 Check for __attribute__((visibility("hidden"))).