3 2022-11-07 23:53:59 +0000 Tim-Philipp Müller <tim@centricular.com>
7 * gstreamer-vaapi.doap:
11 2022-11-07 23:53:57 +0000 Tim-Philipp Müller <tim@centricular.com>
14 Update ChangeLogs for 1.21.2
16 2022-09-23 17:18:35 +0200 Stéphane Cerveau <scerveau@igalia.com>
18 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
19 h265parse: fix typo in member of GstH265SPS
20 Rename sps_extnsion_params to sps_extension_params
21 Fix comment about vui_parameters_present_flag
22 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3072>
24 2022-10-04 03:57:31 +0100 Tim-Philipp Müller <tim@centricular.com>
28 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3115>
30 === release 1.21.1 ===
32 2022-10-04 01:14:01 +0100 Tim-Philipp Müller <tim@centricular.com>
37 * gstreamer-vaapi.doap:
41 2022-10-04 01:13:59 +0100 Tim-Philipp Müller <tim@centricular.com>
44 Update ChangeLogs for 1.21.1
46 2022-09-21 19:19:45 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
49 meson: Use implicit builtin dirs in pkgconfig generation
50 Starting with Meson 0.62, meson automatically populates the variables
51 list in the pkgconfig file if you reference builtin directories in the
52 pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
53 We need this, because ${prefix}/libexec is a hard-coded value which is
54 incorrect on, for example, Debian.
55 Bump requirement to 0.62, and remove version compares that retained
56 support for older Meson versions.
57 Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245
58 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>
60 2022-09-01 15:11:31 -0400 Thibault Saunier <tsaunier@igalia.com>
63 meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
64 Removing some copy pasted code
65 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
67 2022-09-01 11:51:48 -0400 Thibault Saunier <tsaunier@igalia.com>
70 meson: Namespace the plugins_doc_dep/libraries variables
71 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
73 2022-08-31 18:44:14 -0400 Thibault Saunier <tsaunier@igalia.com>
76 meson: Rename plugins list and make them "dependency" objects
77 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
79 2022-05-31 15:18:03 +0200 Stéphane Cerveau <scerveau@collabora.com>
83 docs: disable in static build
84 Following gst-plugins-base, disable docs if static_build
91 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2529>
93 2022-08-11 21:22:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
95 * gst-libs/gst/vaapi/gstvaapidisplay.c:
96 * gst/vaapi/gstvaapi.c:
97 * gst/vaapi/gstvaapidecode.c:
98 vaapi: plugin: Handle when no encoders/decoders available.
99 Nouveau driver currently only exposes postproc entry. But
100 vaapidecodebin is registered independent if there are decoders or not,
101 exposing a segmentation fault.
102 This patch removes the encoder/decoder/codec arrays if no entries are
103 found, and if no decoders are found vaapidecodebin is not
104 registered. Also for vaapipostproc if no postproc entry is found.
105 Also, if general decoder, used by vaapidecodebin, doesn't have a sink
106 pad string, don't register the glib type.
108 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2865>
110 2022-07-27 08:45:45 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com>
112 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
113 vaapi: h265dec: avoid possible NULL deref
114 Check "pi" before attempting to dereference it.
115 Captured by static analysis.
116 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2801>
118 2022-07-26 12:12:50 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
120 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
121 vaapi: h264dec: Remove dead code
122 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2795>
124 2022-07-26 12:22:10 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
126 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
127 vaapi: h265dec: Refresh our sps/pps copy
128 The decoder uses a copy of the SPS/PPS. Since
129 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575
130 the SPS/PPS is updated when the slice header is parsed. As a side
131 effect, the H265 decoder was using an partially filled copy.
132 Fixes: 5ae05bb42a ("codecparsers: Defering computation of pps and sps fields")
134 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2795>
136 2022-06-09 20:00:35 +0800 He Junyan <junyan.he@intel.com>
138 * gst-libs/gst/vaapi/gstvaapifilter.c:
139 vaapi: Do not disable the whole vpp when some va operations not available.
140 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2578>
142 2022-05-26 12:08:44 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com>
144 * tests/check/elements/vaapioverlay.c:
145 tests: vaapi: remove unused header
146 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2503>
148 2022-05-26 12:06:43 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com>
150 * tests/check/elements/vaapioverlay.c:
151 tests: vaapi: fix memleak in vaapioverlay test
152 Need to unmap the frame to ensure vaapioverlay can destruct/dispose.
153 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2503>
155 2022-04-12 15:23:08 +0300 Sebastian Dröge <sebastian@centricular.com>
157 * gst-libs/gst/vaapi/gstvaapivalue.c:
158 Fix `transfer` gobject-introspection annotation typos
159 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2160>
161 2022-03-30 11:06:02 -0400 Xavier Claessens <xavier.claessens@collabora.com>
164 Use gmodule-no-export-2.0
165 We don't need `-Wl,--export-dynamic`, that's used only for executables
166 that needs to export an API to be used by plugins they load.
167 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
169 2022-03-25 15:00:20 -0400 Xavier Claessens <xavier.claessens@collabora.com>
171 * gst-libs/gst/vaapi/gstvaapifilter.c:
173 Remove glib and gobject dependencies everywhere
174 They are part of gst_dep already and we have to make sure to always have
175 gst_dep. The order in dependencies matters, because it is also the order
176 in which Meson will set -I args. We want gstreamer's config.h to take
177 precedence over glib's private config.h when it's a subproject.
178 While at it, remove useless fallback args for gmodule/gio dependencies,
179 only gstreamer core needs it.
180 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
182 2021-09-11 12:17:56 -0300 Thibault Saunier <tsaunier@igalia.com>
184 * docs/gst_plugins_cache.json:
186 tools: Add support for building gstreamer tools against gst-full
187 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1581>
189 2022-03-18 16:59:32 +0000 Thibault Saunier <tsaunier@igalia.com>
191 * tests/check/elements/vaapipostproc.c:
192 navigation: Add support for key Modifiers in all relevant events
193 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010>
195 2022-02-14 16:08:23 +0100 Vivienne Watermeier <vwatermeier@igalia.com>
197 * gst/vaapi/gstvaapipostproc.c:
198 * gst/vaapi/gstvaapisink.c:
199 * tests/check/elements/vaapipostproc.c:
200 all: Use new navigation interface and API
201 Use and implement the new navigation interface in all relevant sink elements,
202 and use API functions everywhere instead of directy accessing the event structure.
203 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>
205 2022-03-16 13:17:21 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
207 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
208 codecs: av1: Fix state when we show existing keyframe
209 Showing existing keyframe have special meaning in AV1. All the references
210 frame will be refreshed with the original keyframe information. The refresh
211 process (7.20) is implemented by saving data from the frame_header into the
212 state. To fix this special case, load all the relevant information into the
214 As there is nothing happening in between this and the loading of the key-frame
215 into the state, this patch also remove the separate API function, using it
218 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1971>
220 2022-03-18 13:42:27 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
223 meson: Bump all meson requirements to 0.60
224 Lots of new warnings ever since
225 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934
226 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977>
228 2022-03-08 14:54:34 +0800 GuYanjie <yanjie.gu@intel.com>
230 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
231 vaapih265dec: fixed st_rps_bits setting in h265 decoding.
232 According to va_dec_hevc.h, pic_param->st_rps_bits should be set
233 for accelorater to skip parsing the *short_term_ref_pic_set
234 (num_short_term_ref_pic_sets) structure.
235 Also modified fill_picture to get parser info as a parameter,
236 in order to get slide_hdr->short_term_ref_pic_set_size.
237 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1886>
239 2021-11-19 18:47:24 -0800 Haihao Xiang <haihao.xiang@intel.com>
241 * gst-libs/gst/vaapi/gstvaapiblend.c:
242 * gst/vaapi/gstvaapioverlay.c:
243 * gst/vaapi/gstvaapioverlay.h:
244 vaapioverlay: inline sinkpad scaling support
245 Often, users will need to scale inputs (e.g.
246 with vaapipostproc) before they are submitted
247 to the vaapioverlay. However, this results in
248 multiple VPP passes/operations in the pipeline
249 which creates unnecessary process overhead.
250 This change allows for inputs to be submitted
251 at original scale to vaapioverlay with per-sinkpad
252 scale dimensions specified so they can be scaled
253 and blended/composited in a single VPP pass/operation
254 to avoid the unnecessary process overhead.
255 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1380>
257 2021-11-19 14:46:34 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
259 * gst-libs/gst/vaapi/gstvaapiblend.c:
260 vaapioverlay: use vpp blend state iif using alpha
261 Don't set VAAPI vpp blend flags if alpha == 1.0,
262 i.e. fully opaque. This can avoid extra processing
263 overhead on some drivers that apply blending
264 unconditionally when flags are present, even if the
265 end result is the same without blend flags (i.e. all
266 opaque alpha channels).
267 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1380>
269 2022-02-09 06:01:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
273 vaapi: Use meson's features for option selection.
274 Modernize option selection, so if a required dependency is missing,
275 produce a meaningful error message.
276 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1676>
278 2021-09-30 17:42:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
281 build: Add libva dependency fallback.
282 Then libva can be subproject and used by either gstreamer-vaapi,
283 va and msdk in gst-plugins-bad.
284 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1397>
286 2022-02-04 11:15:47 +0000 Tim-Philipp Müller <tim@centricular.com>
290 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635>
292 === release 1.20.0 ===
294 2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
299 * gstreamer-vaapi.doap:
303 2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
306 Update ChangeLogs for 1.20.0
308 2022-01-30 09:38:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
310 * gst/vaapi/gstvaapipluginutil.c:
312 vaapi: Disable Wayland if no libdrm
313 Platform wise, is not possible, as far as I known, to have Wayland
314 without kernel's DRM. Though, it's possible to configure
315 gstreamer-vaapi without DRM but Wayland support, with the enhanced
316 handling of dmabuf in vaapisink for Wayland, vaapisink will always
317 fail. Given both issues, configuration with no DRM but Wayland, makes
318 things more complex, and a simpler approach is to refuse that
320 This patch disables Wayland support if there isn't DRM support. Also,
321 it disables the display test for Wayland, relying only on DRM and
323 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
325 2022-01-30 07:10:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
327 * gst-libs/gst/vaapi/video-format.c:
328 vaapi: libs: video-format: Check if formats map is not NULL.
329 Formats map is instantiated at the end of the display
330 instantiation. The problem is the Wayland display which looks for a
331 format in a callback, before the map is populated.
332 If user compiles gstreamer-vaapi with DRM support, the map is
333 populated with a DRM display at GStreamer plugin registration. But if
334 not, or a VA driver is not available, the plugin will try with a
335 Wayland driver, which cause the NULL de-reference.
336 Nevertheless, in the case of no DRM support, and if the Wayland
337 display doesn't get a reply from the format conversion is not a
339 So the solution is the trivial one, check if the format map is already
340 populated before de-reference it.
342 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
344 === release 1.19.90 ===
346 2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
351 * gstreamer-vaapi.doap:
355 2022-01-28 14:28:28 +0000 Tim-Philipp Müller <tim@centricular.com>
358 Update ChangeLogs for 1.19.90
360 2022-01-05 02:07:59 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
364 meson: Add explicit check: kwarg to all run_command() calls
365 This is required since Meson 0.61.0, and causes a warning to be
367 https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c
368 https://github.com/mesonbuild/meson/issues/9300
369 This exposed a bunch of places where we had broken run_command()
370 calls, unnecessary run_command() calls, and places where check: true
372 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
374 2022-01-04 16:19:44 +0800 He Junyan <junyan.he@intel.com>
376 * gst-libs/gst/vaapi/gstvaapiprofile.c:
377 vaapi: av1dec: Use named profiles to replace the numeric ones.
378 Use named AV1 profiles (i.e., main, high) to replace the old "0"
380 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1491>
382 2021-12-01 15:36:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
384 * gst/vaapi/gstvaapidecodebin.c:
385 vaapidecodebin: Misc enhancements.
386 - Use GST_WARNING rather than g_critical
387 - Replace gst_ghost_pad_new_from_template() with
388 gst_ghost_pad_new() to avoid using the template.
389 - Declare extern variable
390 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
392 2021-12-01 12:26:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
394 * gst/vaapi/gstvaapidecode.c:
395 vaapidecode: Autogenerate caps template.
396 vaapidecode is used in vaapidecodebin and it exposes all the
397 theoretically supported caps, but that slows down autoplug. With this
398 autplug is negotiated faster, giving more option to decodebin to select
400 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
402 2021-11-16 17:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
404 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
405 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
406 vaapi: libs: Use unsized arrays as parameters.
407 Instead of defining a sized array for function signature, use it
408 unsized (a pointer alias, basically). In this way clang warning is
410 warning: ‘fill_profiles’ accessing 64 bytes in a region of size 12 [-Wstringop-overflow=]
411 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
413 2021-11-16 17:21:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
416 vaapi: meson: Fail if static build.
417 And initialize the plugin array.
418 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
420 2021-11-15 16:38:34 +0800 Ung, Teng En <teng.en.ung@intel.com>
422 * gst/vaapi/gstvaapipostproc.c:
423 vaapipostproc: fix mising metadata when using system
424 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1325>
426 2021-11-03 18:44:03 +0000 Tim-Philipp Müller <tim@centricular.com>
431 === release 1.19.3 ===
433 2021-11-03 15:43:36 +0000 Tim-Philipp Müller <tim@centricular.com>
438 * gstreamer-vaapi.doap:
442 2021-11-03 15:43:32 +0000 Tim-Philipp Müller <tim@centricular.com>
445 Update ChangeLogs for 1.19.3
447 2021-10-18 15:47:00 +0100 Tim-Philipp Müller <tim@centricular.com>
449 * tests/check/meson.build:
450 meson: update for meson.build_root() and .build_source() deprecation
451 -> use meson.project_build_root() or .global_build_root() instead.
452 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
454 2021-10-18 00:40:14 +0100 Tim-Philipp Müller <tim@centricular.com>
457 * gst-libs/gst/vaapi/meson.build:
459 * tests/check/meson.build:
460 meson: update for dep.get_pkgconfig_variable() deprecation
461 ... in favour of dep.get_variable('foo', ..) which in some
462 cases allows for further cleanups in future since we can
463 extract variables from pkg-config dependencies as well as
464 internal dependencies using this mechanism.
465 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
467 2021-10-14 18:38:26 +0100 Tim-Philipp Müller <tim@centricular.com>
470 meson: bump meson requirement to >= 0.59
471 For monorepo build and ugly/bad, for advanced feature
472 option API like get_option('xyz').required(..) which
473 we use in combination with the 'gpl' option.
474 For rest of modules for consistency (people will likely
475 use newer features based on the top-level requirement).
476 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
478 2021-10-15 00:33:39 +0800 He Junyan <junyan.he@intel.com>
481 Docs: Fix a typo for Intel's vaapi driver name.
482 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1151>
484 2021-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
487 doc: update IRC links to OFTC
488 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
490 2021-09-26 01:07:02 +0100 Tim-Philipp Müller <tim@centricular.com>
494 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
496 === release 1.19.2 ===
498 2021-09-23 01:35:54 +0100 Tim-Philipp Müller <tim@centricular.com>
503 * gstreamer-vaapi.doap:
507 2021-08-26 15:06:53 +0800 Zhang Yuankun <yuankunx.zhang@intel.com>
509 * gst/vaapi/gstvaapidecode.c:
510 vaapi: decoder: modify the condition to judge whether dma buffer is supported
511 It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
512 return false even if this platform support the mem_type dma buffer.
513 And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
514 on Gen12(such as TGL).
515 Without this patch, The command such as:
516 gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
517 x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
518 will return not-negotiated.
519 Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
520 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
522 2021-05-14 12:04:04 +0800 He Junyan <junyan.he@intel.com>
524 * gst-libs/gst/vaapi/gstvaapidisplay.c:
525 * gst/vaapi/gstvaapivideocontext.c:
526 Display: Add a property to export the VA display handle.
527 Just like what we do in VA plugins. The display can be seen as a
528 generic gst object and we can add a property to get the internal
530 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
532 2021-05-14 11:49:01 +0800 He Junyan <junyan.he@intel.com>
534 * gst/vaapi/gstvaapivideomemory.c:
535 * gst/vaapi/gstvaapivideomemory.h:
536 plugins: video memory: Add a GST_MAP_VAAPI flag to peek the surface.
537 Just like what we do in VA plugins, the GST_MAP_VAAPI can directly
538 peek the surface of the VA buffers. The old flag 0 just peek the
539 surface proxy, which may not be convenient for the users who do not
540 want to include our headers.
541 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
543 2021-07-09 11:01:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
545 * gst/vaapi/gstvaapi.c:
546 * gst/vaapi/gstvaapidecode.c:
547 Revert "vaapi: Demote vaapidecodebin to rank NONE."
548 This reverts commit 7a25c5d4ec95aefeca6515ac023b23c5dd330194.
549 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/436>
551 2021-06-23 16:23:00 +0800 He Junyan <junyan.he@intel.com>
553 * gst/vaapi/gstvaapiencode.c:
554 plugins: encode: fix a deadlock because of _drain()
555 We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(),
556 whose context does not hold the stream lock of the encoder. The
557 current gst_vaapiencode_drain inside unlock/lock pair adds a extra
558 lock count to the stream lock of encoder and causes hang later.
559 We just remove the gst_vaapiencode_drain() and expand its logic
560 correctly according to the lock/unlock context.
561 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/433>
563 2021-06-29 15:09:13 +0800 He Junyan <junyan.he@intel.com>
565 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
566 libs: decoder: av1: Clean the film_grain_info field.
567 We need to clean all film_grain_info fields when the film grain
568 feature is not enabled. It may have random data because the picture
569 parameter buffer is not cleaned.
570 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/434>
572 2021-06-03 22:12:04 +0800 He Junyan <junyan.he@intel.com>
574 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
575 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
576 libs: encoder: mpeg2: Add highP level for 1080@50p/60p.
577 The MPEG2 spec has amendment 3 to introduce a new level highP, which
578 is used for 1080@50p/60p streams. We need to add this level to avoid
579 encoding failure because of the level check.
581 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/432>
583 2021-05-11 16:59:07 +0800 He Junyan <junyan.he@intel.com>
585 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
586 Decoder: H264: Add the support for frame packing arrangement SEI message.
587 Frame packing arrangement SEI message is an alternative simple stereo 3D
588 manner for AVC. We need to recognize that SEI message and report the correct
590 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/420>
592 2021-05-22 18:54:49 +0100 Tim-Philipp Müller <tim@centricular.com>
594 * gst-libs/gst/vaapi/gstvaapifilter.c:
596 Use g_memdup2() where available and add fallback for older GLib versions
597 Alloc size is based on existing allocations and struct sizes.
598 g_memdup() is deprecated since GLib 2.68 and we want to avoid
599 deprecation warnings with recent versions of GLib.
600 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/431>
602 2021-06-01 15:29:16 +0100 Tim-Philipp Müller <tim@centricular.com>
607 === release 1.19.1 ===
609 2021-06-01 00:16:31 +0100 Tim-Philipp Müller <tim@centricular.com>
614 * gstreamer-vaapi.doap:
618 2021-04-23 19:01:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
620 * gst/vaapi/gstvaapi.c:
621 * gst/vaapi/gstvaapidecode.c:
622 vaapi: Demote vaapidecodebin to rank NONE.
623 One of the main reasons of vaapidecodebin was because it mitigated the
624 possible surface exhaustion. But that problem is currently
625 solved. Nowadays, vaapidecodebin brings more problems than it
626 solves. Thus this patch demotes vaapidecodebin to NONE rank while
627 bumping PRIMARY + 1 the most common decoders.
628 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>
630 2021-05-20 10:28:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
632 * gst/vaapi/gstvaapi.c:
633 * gst/vaapi/gstvaapioverlay.c:
634 plugins: Demote rank of vaapipostproc and vaapioverlay.
635 Since almost all video filters have rank NONE, these both elements
637 This is useful for autovideoconvert and other bins, and users might
638 force to use these by setting the environment variable
639 GST_PLUGIN_FEATURE_RANK.
640 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>
642 2021-04-21 10:55:45 +0200 François Laignel <fengalin@free.fr>
644 * tests/check/elements/vaapioverlay.c:
645 Use gst_element_request_pad_simple...
646 Instead of the deprecated gst_element_get_request_pad.
647 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
649 2021-04-23 11:02:05 +0800 Zhang yuankun <yuankunx.zhang@intel.com>
651 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
652 libs: encoder: VP9: fix > 4k encode fail issue
653 The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
654 width of a tile in units of superblocks. So the max width of one tile
655 should not be larger than 64x64=4096. When the width exceeds 4k, we
656 need to split it into multiple tiles in columns. The current vp9 encoder
657 does not handle this correctly.
659 gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
660 vaapivp9enc ! fakesink
662 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>
664 2021-04-02 15:43:45 +0800 Haihao Xiang <haihao.xiang@intel.com>
666 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
667 libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
668 Otherwise user will be misled that the specified device is using
669 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
670 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>
672 2021-03-22 13:41:13 +0800 He Junyan <junyan.he@intel.com>
674 * gst-libs/gst/vaapi/gstvaapiencoder.c:
675 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
676 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
677 decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
678 If ROI is enabled, the CUs within the ROI region may have different
679 QP from the other part of the picture. This needs us to enable the
680 cu_qp_delta_enabled_flag even in the CQP mode.
681 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>
683 2021-03-19 17:42:36 +1100 Matthew Waters <matthew@centricular.com>
685 * gst-libs/gst/vaapi/gstvaapicontext.c:
686 * gst-libs/gst/vaapi/gstvaapicontext.h:
687 * gst-libs/gst/vaapi/gstvaapiencoder.c:
688 * gst-libs/gst/vaapi/gstvaapifilter.c:
689 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
690 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
691 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
692 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
693 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
694 * gst-libs/gst/vaapi/gstvaapivalue.c:
695 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
696 * gst/vaapi/gstvaapipluginbase.c:
697 * gst/vaapi/gstvaapisink.c:
698 * gst/vaapi/gstvaapisink.h:
699 * gst/vaapi/gstvaapivideocontext.c:
700 * gst/vaapi/gstvaapivideomemory.c:
701 * tests/internal/simple-decoder.c:
702 gst: don't use volatile to mean atomic
703 volatile is not sufficient to provide atomic guarantees and real atomics
704 should be used instead. GCC 11 has started warning about using volatile
705 with atomic operations.
706 https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
707 Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
708 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>
710 2021-02-24 17:41:02 +0100 Paul Goulpié <paul.goulpie@ubicast.eu>
712 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
713 gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
714 forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
715 Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>
717 2021-02-04 15:05:55 +0800 He Junyan <junyan.he@intel.com>
719 * gst/vaapi/gstvaapipostproc.c:
720 plugins: postproc: Fix a problem of propose_allocation when passthrough.
721 We should query the downstream element to answer a precise allocation
722 query when the passthrough mode is enabled.
723 The current way still decides the allocation by the postproc itself. The
725 gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
726 vaapipostproc ! fakevideosink silent=false sync=true
727 will lose some info such as the GST_VIDEO_META_API_TYPE.
728 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>
730 2021-01-27 12:05:44 +0800 Haihao Xiang <haihao.xiang@intel.com>
732 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
733 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
734 * gst/vaapi/gstvaapivideocontext.c:
735 libs: display: drm: support gst.vaapi.app.Display context for drm backend
736 Attributes for drm backend:
737 - va-display : ponter of VADisplay
738 - drm-device-fd : the DRM device file descriptor
739 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
741 2021-01-13 14:43:20 +0800 Haihao Xiang <haihao.xiang@intel.com>
744 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
745 libs: display: drm: allow user specify a drm device via an env variable
746 Currently the default drm device is always used on a system with
747 multiple drm devices. This patch allows user to specify the required
748 drm device via GST_VAAPI_DRM_DEVICE env variable
750 GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
751 vaapih264enc ! fakesink
752 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
754 2021-01-25 14:45:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
756 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
757 libs: display: drm: fix set_device_path_from_fd
758 drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
759 drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
760 so we can't get the right device path. Running test-display will get the
762 ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
764 Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
765 issue because a special permission is required for SET_VERSION ioctl.
766 This patch retrieves the device path from file descriptor via
768 [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
769 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>
771 2021-01-20 10:42:09 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
773 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
774 glx: Iterate over FBConfig and select 8 bit color size
775 Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
776 In latest mesa versions the first fbconfig might not be 8 bit, so iterate
777 over it to find the correct config with supported values.
778 This also adds 8 bit alpha size to the framebuffer configuration which is
779 required to get it working properly.
780 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>
782 2021-01-11 09:57:03 +0800 Ung, Teng En <teng.en.ung@intel.com>
784 * gst-libs/gst/vaapi/gstvaapiutils.c:
785 vaapipostproc: fix code style.
786 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
788 2020-12-21 05:42:00 +0000 Ung, Teng En <teng.en.ung@intel.com>
790 * gst-libs/gst/vaapi/gstvaapidisplay.c:
791 * gst-libs/gst/vaapi/gstvaapidisplay.h:
792 * gst-libs/gst/vaapi/gstvaapifilter.c:
793 vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
794 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
796 2020-12-21 05:36:29 +0000 Ung, Teng En <teng.en.ung@intel.com>
798 * gst-libs/gst/vaapi/gstvaapiutils.c:
799 vaapipostproc: Added gstreamer BT2020 color standard support.
800 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
802 2021-01-09 16:05:48 +0800 He Junyan <junyan.he@intel.com>
804 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
805 decoder: AV1: Fix a static analysis problem of update_state().
806 No need to check the picture pointer after we have already dereferenced it.
808 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>
810 2020-12-22 23:43:52 +0800 He Junyan <junyan.he@intel.com>
812 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
813 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
814 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
815 libs: decoder: Add decode_with_surface_id for AV1 film_grain.
816 The AV1 film_graim feature needs two surfaces the same time for
817 decoding. One is for recon surface which will be used as reference
818 later, and the other one is for display. The GstVaapiPicture should
819 contain the surface for display, while the vaBeginPicture() need
820 the recon surface as the target.
821 We add a gst_vaapi_picture_decode_with_surface_id API to handle this
823 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
825 2020-08-27 21:46:41 +0800 He Junyan <junyan.he@intel.com>
827 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
828 * gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
829 * gst-libs/gst/vaapi/gstvaapiprofile.c:
830 * gst-libs/gst/vaapi/gstvaapiprofile.h:
831 * gst-libs/gst/vaapi/gstvaapiutils.c:
832 * gst-libs/gst/vaapi/meson.build:
833 * gst/vaapi/gstvaapidecode.c:
835 libs: decoder: AV1: Add the av1 decoder support.
836 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
838 2020-08-27 21:39:35 +0800 He Junyan <junyan.he@intel.com>
840 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
841 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
842 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
843 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
844 libs: codecobject: Add number of elements when create codec object.
845 One slice data may need several slice parameter buffers at one time.
846 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
848 2020-12-12 10:30:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
850 * gst/vaapi/gstvaapidecodebin.c:
851 * gst/vaapi/gstvaapipluginbase.c:
852 * gst/vaapi/gstvaapivideobufferpool.c:
853 vaapi: use gst_clear_object instead of g_clear_object
854 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>
856 2020-12-08 13:34:35 +0800 He Junyan <junyan.he@intel.com>
858 * gst/vaapi/gstvaapiencode.c:
859 plugins: encode: unlock the stream lock before _flush()
860 The current encoder will hang when EOS comes. When we call the
861 gst_vaapi_encoder_encode_and_queue(), we should release the stream
862 lock, just like what we do in gst_vaapiencode_handle_frame().
863 The deadlock happens when: The input thread holding the stream lock
864 is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
865 buffer, while the output thread which holding the coded buffer resource
866 is acquiring the stream lock in _push_frame() to push the data to
868 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>
870 2020-12-09 00:04:33 +0800 He Junyan <junyan.he@intel.com>
872 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
873 libs: encoder: H264: Fix one assert in get_pending_reordered().
874 gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
875 case for HIERARCHICAL_B mode. The pipeline:
876 gst-launch-1.0 videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
877 keyframe-period=32 ! fakesink
879 ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
880 assertion failed: (count != 0)
881 The last few B frames are not fetched in correct order when HIERARCHICAL_B
883 We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
884 make the last several frames encoded in reverse order. The NAL of last few
885 frames come in reverse order in the bit stream, though it can still output
887 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>
889 2020-06-25 16:25:21 +0800 He Junyan <junyan.he@hotmail.com>
891 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
892 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
893 libs: encoder: H265: Add screen content coding extensions support.
894 In scc mode, the I frame can ref to itself and it needs the L0 reference
895 list enabled. So we should set the I frame to P_SLICE type. We do not need
896 to change the ref_pic_list0/1 passed to VA driver, just need to enable the
897 VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
898 the driver consider the current frame as reference. For bits conformance,
899 the NumRpsCurrTempList0 should be incremented by one to include the current
900 picture as the reference frame. We manually do it when packing the slice header.
902 gst-launch-1.0 videotestsrc num-buffers=10 ! \
903 capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
904 vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
905 filesink location=out.265
906 Can be used to specify that the encoder should use SCC profiles.
907 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>
909 2020-07-11 23:37:29 +0800 He Junyan <junyan.he@intel.com>
911 * gst/vaapi/gstvaapiencode_vp9.c:
912 plugin: encode: vp9: Implement the set_config().
913 We store the allowed profiles list to encoder in set_config().
914 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
916 2020-07-11 23:39:40 +0800 He Junyan <junyan.he@intel.com>
918 * gst/vaapi/gstvaapiencode_vp9.c:
919 plugin: encode: vp9: Add the profile into output caps.
920 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
922 2020-07-11 23:27:21 +0800 He Junyan <junyan.he@intel.com>
924 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
925 libs: encoder: vp9: no need to ensure_hw_profile.
926 Once we decide the profile and can get the valid entrypoint for
927 that profile, hw must already support this profile/entrypoint pair.
928 No need to check it again in set_context_info().
929 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
931 2020-07-11 23:22:55 +0800 He Junyan <junyan.he@intel.com>
933 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
934 libs: encoder: vp9: Improve the manner to decide the profile.
935 We should decide the VP9 encoder's profile based on the chroma and
936 depth of the input format, then make sure it is included in the
938 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
940 2020-07-11 23:17:02 +0800 He Junyan <junyan.he@intel.com>
942 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
943 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
944 libs: util: vpx: add get_chroma_format_idc for VP9
945 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
947 2020-07-11 23:09:59 +0800 He Junyan <junyan.he@intel.com>
949 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
950 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
951 libs: encoder: vp9: Add allowed_profiles.
952 We need the allowed_profiles to store the allowed profiles in down
955 vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
957 We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
959 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
961 2020-11-30 18:00:30 +0800 He Junyan <junyan.he@intel.com>
963 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
964 libs: decoder: H265: Fix a typo in scc reference setting.
965 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>
967 2020-07-17 18:00:30 +0800 He Junyan <junyan.he@intel.com>
969 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
970 * gst-libs/gst/vaapi/gstvaapiprofile.c:
971 * gst-libs/gst/vaapi/gstvaapiprofile.h:
972 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
973 * gst-libs/gst/vaapi/video-format.c:
974 * gst/vaapi/gstvaapidecode.c:
975 libs: decoder: H265: Add MAIN_422_12 profile supporting.
976 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
978 2020-07-31 14:38:42 +0800 He Junyan <junyan.he@intel.com>
980 * gst-libs/gst/vaapi/gstvaapiimage.c:
981 * gst-libs/gst/vaapi/video-format.c:
982 * gst-libs/gst/vaapi/video-format.h:
983 video-format: Add Y212_LE format.
984 It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
985 also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
987 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
989 2020-07-30 23:21:06 +0800 He Junyan <junyan.he@intel.com>
991 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
992 * gst-libs/gst/vaapi/gstvaapiprofile.c:
993 * gst-libs/gst/vaapi/gstvaapiprofile.h:
994 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
995 * gst-libs/gst/vaapi/video-format.c:
996 * gst/vaapi/gstvaapidecode.c:
997 libs: decoder: H265: Add MAIN_444_12 profile supporting.
998 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
1000 2020-07-30 23:13:10 +0800 He Junyan <junyan.he@intel.com>
1002 * gst-libs/gst/vaapi/gstvaapiimage.c:
1003 * gst-libs/gst/vaapi/video-format.c:
1004 * gst-libs/gst/vaapi/video-format.h:
1005 video-format: Add Y412_LE format.
1006 It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
1007 also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
1009 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
1011 2020-09-17 16:47:43 +0800 He Junyan <junyan.he@intel.com>
1013 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1014 libs: decoder: h265: fill missing predictor_palette_size field.
1015 The predictor_palette_size of VAPictureParameterBufferHEVCScc is
1016 forgotten and need to be filled when streams have palettes.
1017 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>
1019 2020-09-17 15:35:11 +0800 He Junyan <junyan.he@intel.com>
1021 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1022 libs: utils: h265: Use get_profile_from_sps to get profile.
1023 We now use gst_h265_get_profile_from_sps() to replace the old way
1024 of gst_h265_profile_tier_level_get_profile() to get more precise
1025 profile. The new function consider the unstandard cases and give
1026 a more suitable profile decision.
1027 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>
1029 2020-10-19 13:46:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1031 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1032 libs: decoder: vp9: 0xff segment pred probs if no temporal update
1033 According to the spec (6.2.11 Segmentation params syntax)
1034 segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
1035 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
1037 2020-10-19 13:42:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1039 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1040 libs: decoder: vp9: avoid reference rewriting
1041 The removed code set all the reference frames to the current frame it is a key
1042 one, but later, all the reference frames were rewritten with the decoded picture
1043 buffers or VA_INVALID_SURFACE if they were not available.
1044 Basically, all this time the first reference frame assignment has been ignored,
1045 and it's not described by the spec, and this patch removes that code.
1046 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
1048 2020-09-20 09:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1050 * gst/vaapi/gstvaapidecode.c:
1051 decoder: don't reply src caps query with allowed if pad is fixed
1052 If the pad is already fixed the caps query have to be reply with the
1053 current fixed caps. Otherwise the query has to be replied with the
1054 autogeneratd src caps.
1055 This path fix this by falling back to the normal caps query processing
1056 if the pad is already fixed. Otherwise it will fetch the allowed src
1058 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>
1060 2020-09-15 00:11:30 +0800 He Junyan <junyan.he@intel.com>
1062 * gst/vaapi/gstvaapidecode.c:
1063 plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
1064 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>
1066 2020-09-01 09:31:33 +0200 Marc Leeman <m.leeman@televic.com>
1068 * gst/vaapi/gstvaapisink.c:
1069 vaapisink: when updating the caps, reset rotation
1070 When an element upstream changes settings (e.g. crop), new caps are sent
1071 to vaapisink. When vaapisink was rotating the image, it needs to
1072 re-evaluate if the sink needs to rotate the image.
1073 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>
1075 2020-09-08 17:31:02 +0100 Tim-Philipp Müller <tim@centricular.com>
1078 ci: include template from gst-ci master branch again
1080 2020-09-08 16:59:07 +0100 Tim-Philipp Müller <tim@centricular.com>
1085 === release 1.18.0 ===
1087 2020-09-08 00:09:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1093 * gstreamer-vaapi.doap:
1097 2020-09-07 12:15:43 +0300 Sebastian Dröge <sebastian@centricular.com>
1099 * gst-libs/gst/vaapi/gstvaapifilter.c:
1100 Update for gst_video_transfer_function_*() function renaming
1101 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>
1103 2020-08-22 12:53:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1105 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1106 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1107 Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
1108 This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
1109 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e
1111 === release 1.17.90 ===
1113 2020-08-20 16:16:25 +0100 Tim-Philipp Müller <tim@centricular.com>
1118 * gstreamer-vaapi.doap:
1122 2020-08-17 11:43:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1124 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
1125 libs: surface: egl: guard memory type
1126 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>
1128 2020-08-17 19:26:43 +0800 He Junyan <junyan.he@intel.com>
1130 * gst/vaapi/gstvaapidecode.c:
1131 plugin: decode: Fix two mem leaks because of caps.
1132 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>
1134 2020-08-16 01:57:15 +0800 He Junyan <junyan.he@intel.com>
1136 * gst/vaapi/gstvaapivideomemory.c:
1137 plugin: allocator: No need to ref allocator when create mem.
1138 We do not need to ref the allocator when creating GstVaapiVideoMemory
1139 kind memory, and then release it in _free(). The framework already
1141 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>
1143 2020-08-14 10:42:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1145 * gst/vaapi/gstvaapiencode_h264.c:
1146 vaapiencode: h264: ignore level without breaking negotiation
1147 Since commit 9f627ef2 if the user sets level in the encoder src caps
1148 the caps negotiation is rejected.
1149 But since the same commit the same encoder set the autoconfigured
1150 level in caps. Some change in the base class might fixed the operation
1151 order so now the caps are set and later negotiated.
1152 This patch removes the level check.
1154 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>
1156 2019-07-09 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1158 * gst-libs/gst/vaapi/egl_vtable.h:
1159 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
1160 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
1161 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
1162 libs: egl: surface: export EGLImage as DMABuf if GEM not supported
1163 This code path is used when frames are rendered as textures through
1164 GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
1165 Originally the EGLImage was exported as GEM, which was handled by
1166 Intel drivers, but Gallium ones cannot create VA surfaces from
1167 GEM buffers, only DMABuf.
1168 This patch checks the memory types supported by VA driver to choose
1169 the render the EGLImages from GEM or DMABuf, because GEM is still
1170 better where supported.
1171 DMABuf is well handled either by intel-vaapi-driver and gallium.
1173 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
1175 2020-05-26 16:18:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1177 * gst-libs/gst/vaapi/gstvaapifilter.c:
1178 * gst-libs/gst/vaapi/gstvaapifilter.h:
1179 libs: filter: gst_vaapi_filter_get_memory_types()
1180 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
1182 2020-08-12 18:48:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1184 * gst/vaapi/gstvaapipluginbase.c:
1185 * gst/vaapi/gstvaapipluginbase.h:
1186 plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
1187 Since nobody uses it, just remove it.
1188 Thus extract_allowed_surface_formats() is refactored to attend only
1189 gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
1190 Now a surface is created when the image chorma is different from the
1191 previous one. And if the driver has the quirk, it outputs all the
1192 supported image formats without trying them.
1193 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
1195 2020-08-12 17:50:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1197 * gst/vaapi/gstvaapidecode.c:
1198 vaapidecode: expose raw src caps with same chroma
1199 The try-and-error approach for getting the possible image formats from
1200 a surface has brought several problems in different drivers, from
1201 crashes to drop in performance.
1202 Instead of that we change the algorithm to determine the possible
1203 image formats based in the surface chroma: only those available image
1204 formats with same chroma are exposed as possible raw caps.
1205 Do this is important to avoid performance degrading in raw sinks
1206 which doesn't handle NV12 but it does YV12 or I420.
1207 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
1209 2020-07-10 17:05:38 +0800 He Junyan <junyan.he@intel.com>
1211 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1212 libs: util: h265: use common parser API to get vaapi profiles.
1213 We can reuse H265 parser's API to recognize the correct profile and
1214 then just need to convert them to VAAPI profiles.
1215 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>
1217 2020-08-07 16:41:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1219 * gst-libs/gst/vaapi/meson.build:
1220 * gst/vaapi/meson.build:
1222 build: update for gl pkg-config file split
1223 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>
1225 2020-08-06 12:51:27 +0800 Xu Guangxin <guangxin.xu@intel.com>
1227 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1228 h264dec: mark remaining frames as unreference before exec_picture_refs_modification
1229 8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
1230 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>
1232 2020-07-31 18:22:46 +0800 He Junyan <junyan.he@intel.com>
1234 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1235 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1236 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1237 libs: encoder: H265: Enable Main 12 profile support.
1238 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
1240 2020-07-31 19:17:39 +0800 He Junyan <junyan.he@intel.com>
1242 * gst-libs/gst/vaapi/video-format.c:
1243 video format: Fix P012_LE's chrome type typo.
1244 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
1246 2020-08-04 21:15:01 +0300 Jordan Petridis <jordan@centricular.com>
1248 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
1249 gstvaapiminiobject.c: fix clang 10 warnings
1250 the typesystem checks in g_atomic_pointer_compare_and_exchange
1251 seem to trigger some false positives with clang 10
1252 similar to gstreamer!584
1253 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>
1255 2020-07-31 11:07:23 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1257 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1258 libs: window: wayland: destroy all wayland buffers during finalize
1259 Some buffers and the associated FrameState state may still be pending at
1260 that point. If the wayland connection is shared, then messages for the
1261 buffer may still arrive. However, the associated event queue is already
1262 deleted. So the result is a crash.
1263 With a private connection the associated memory is leaked instead.
1264 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1266 2020-06-18 20:25:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1268 * tests/examples/test-vaapicontext.c:
1269 test: vaapicontext: fix draw callback with multiple videos
1270 The callback is called for both windows. So make sure that
1271 gst_video_overlay_set_render_rectangle() is called for the correct one.
1272 Otherwise, the left video will be randomly moved behind the right video.
1273 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1275 2020-06-19 09:23:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1277 * tests/examples/meson.build:
1278 * tests/examples/test-vaapicontext.c:
1279 test: vaapicontext: support wayland display
1280 On Wayland, The whole gtk window is one Wayland surface. So
1281 gtk_widget_get_window() must be called on the top-level widget.
1282 For any other widget the following gdk_window_ensure_native() may create a
1283 new top-level Wayland surface that is never visible.
1284 As a result, the coordinates passed to
1285 gst_video_overlay_set_render_rectangle() must be relativ to the top-level
1286 window. Otherwise the video is placed incorrectly.
1287 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1288 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1290 2017-12-01 20:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1292 * tests/examples/test-vaapicontext.c:
1293 test: vaapicontext: use playbin to test files
1294 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1296 2017-11-29 11:11:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1298 * tests/examples/test-vaapicontext.c:
1299 test: vaapicontext: add PLAY and NULL buttons
1300 They only appear when only one sink is instanciated and their purpose
1301 is to test the NULL-PLAY use case in context sharing.
1302 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1304 2020-06-19 21:26:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1306 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1307 libs: wayland: update the opaque region in set_render_rect
1308 gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
1309 thread. That thread may be responsible for making the window visible.
1310 At that point another thread will block in gst_vaapi_window_wayland_sync()
1311 because the frame callback will not be called until the window is visible.
1312 If that happens, then acquiring the display lock in
1313 gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
1314 Cache the size of the opaque rectangle separately and create the opaque
1315 region right before applying it to the surface.
1316 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1318 2020-06-19 09:21:16 +0200 Hyunjun Ko <zzoon@igalia.com>
1320 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1321 * gst-libs/gst/vaapi/gstvaapiwindow.h:
1322 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1323 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1324 * gst/vaapi/gstvaapisink.c:
1325 libs: window: implements gst_vaapi_window_set_render_rectangle
1326 Implements new vmethod gst_vaapi_window_set_render_rectangle,
1327 which is doing set the information of the rendered rectangle set by
1329 This is necessary on wayland at least to get exact information of
1331 And vaapisink calls this when gst_video_overlay_set_render_rectangle is
1333 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1335 2017-11-08 13:23:39 +0900 Hyunjun Ko <zzoon@igalia.com>
1337 * gst/vaapi/gstvaapisink.c:
1338 vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
1339 Implements gst_vaapisink_wayland_create_window_from_handle() to support
1340 using external wl_surface.
1341 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1343 2020-06-19 09:11:20 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1345 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1346 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1347 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1348 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1349 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
1350 libs: wayland: implement video overlay API
1351 The Wayland sub-surfaces API is used to embed the video into an application
1353 See Appendix A. Wayland Protocol Specification as the following.
1355 The aim of sub-surfaces is to offload some of the compositing work
1356 within a window from clients to the compositor. A prime example is
1357 a video player with decorations and video in separate wl_surface
1359 This should allow the compositor to pass YUV video buffer processing to
1360 dedicated overlay hardware when possible.
1362 Added new method gst_vaapi_window_wayland_new_with_surface()
1363 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1364 Zhao Halley <halley.zhao@intel.com>
1365 changzhix.wei@intel.com
1366 Hyunjun Ko <zzoon@igalia.com>
1367 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1369 2020-06-19 21:54:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1371 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1372 doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
1373 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1375 2020-06-11 08:25:57 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1377 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1378 libs: display: always call close_display()
1379 All close_display() have their own checks for use_foreign_display and only
1380 destroy locally created objects in that case.
1381 Without this objects other than the actuall foreign display itself are
1383 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1385 2020-07-30 23:37:10 +0800 He Junyan <junyan.he@intel.com>
1387 * gst-libs/gst/vaapi/video-format.h:
1388 video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
1389 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>
1391 2020-05-25 17:02:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1393 * gst/vaapi/gstvaapidecode.c:
1394 * gst/vaapi/gstvaapipluginutil.c:
1395 * gst/vaapi/gstvaapipluginutil.h:
1396 plugins: add gst_vaapi_caps_set_width_and_height_range()
1397 This utility function is called internally by
1398 gst_vaapi_build_caps_from_formats() and can be used outside.
1399 This function sets frame size and framerates ranges.
1400 Also gst_vaapi_build_caps_from_formats() is simplified.
1401 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>
1403 2020-07-31 15:27:38 +0800 He Junyan <junyan.he@intel.com>
1405 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1406 libs: decoder: fix a crash issue when get_surface_formats.
1407 Some context does not report any valid format that we can support.
1408 For example, the HEVC 444 12 bits decoder context, all the formats
1409 it reports is not supported now, which make the formats list a NULL
1410 array. We should check that pointer before we use it.
1411 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>
1413 2020-07-03 19:28:28 +0800 He Junyan <junyan.he@intel.com>
1415 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1416 libs: encoder: h265: choose the profile based on allowed list.
1417 We can decide the profile in ensure_profile(), based on allowed list
1418 passed by the encode. We also need to check whether the entrypoint is
1419 available. Once it is decided, no need to check the hw entrypoint
1421 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1423 2020-07-29 22:05:41 +0800 He Junyan <junyan.he@intel.com>
1425 * gst/vaapi/gstvaapiencode_h265.c:
1426 plugins: encode: h265: set all allowed profiles to encoder.
1427 We should collect all allowed profiles and pass them to the inside
1428 encoder, rather than just calculate the max profile idc.
1429 The allowed profiles should also be supported by the HW.
1430 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1432 2020-07-29 22:32:55 +0800 He Junyan <junyan.he@intel.com>
1434 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1435 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1436 libs: display: Add a helper function to get profiles by codec.
1437 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1439 2020-07-03 01:28:28 +0800 He Junyan <junyan.he@intel.com>
1441 * gst/vaapi/gstvaapiencode_h265.c:
1442 plugins: encode: h265: collect all allowed profiles to encoder.
1443 We should collect all allowed profiles and pass them to the inside
1444 encoder, rather than just calculate the max profile idc.
1445 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1447 2020-07-03 00:53:31 +0800 He Junyan <junyan.he@intel.com>
1449 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1450 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1451 * gst/vaapi/gstvaapiencode_h265.c:
1452 libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
1453 In h265, bigger profile idc may not be compatible with the small profile
1454 idc. And more important, there are multi profiles with the same profile
1455 idc. Such as main-422-10, main-444 and main-444-10, they all have profile
1457 So recording the max profile idc is not enough, the encoder needs to know
1458 all allowed profiles when deciding the real profile.
1459 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1461 2020-07-02 23:33:31 +0800 He Junyan <junyan.he@intel.com>
1463 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1464 libs: encoder: h265: No need to check hw_max_profile.
1465 In h265, higher profile idc number does not mean better compression
1466 performance and may be not compatible with the lower profile idc.
1467 So, it is not suitable to find the heighest idc for hw to ensure the
1469 On the other side, when the entrypoint of the selected profile is valid,
1470 it means the hw really support this profile, no need to check it again.
1471 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1473 2020-04-08 19:41:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1475 * gst/vaapi/gstvaapipostproc.c:
1476 vaapipostproc: early return if fixate srcpad caps fails
1477 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>
1479 2020-07-29 13:39:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1481 * gst/vaapi/gstvaapipluginutil.c:
1482 vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
1483 Generalize the way how the preferred color format is chosen. Also
1484 use new GStreamre API as syntatic sugar.
1485 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>
1487 2020-07-29 14:22:18 +0800 He Junyan <junyan.he@intel.com>
1489 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1490 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1491 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1492 * gst/vaapi/gstvaapidecode.c:
1493 * gst/vaapi/gstvaapiencode.c:
1494 libs: profile: Use get_codec_from_caps to get codec type.
1495 There is no need to get a profile from the caps and then convert
1496 that profile into codec type. We can get the codec type by caps's
1498 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1500 2020-07-12 19:42:40 +0800 He Junyan <junyan.he@intel.com>
1502 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1503 libs: profile: h265: Fix return value of from_codec_data_h265.
1504 profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
1505 The codec data of caps contain the profile IDC, but the mapping between
1506 profile IDC and GstVaapiProfile is wrong.
1507 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1509 2020-07-07 00:46:23 +0800 He Junyan <junyan.he@intel.com>
1511 * gst/vaapi/gstvaapiencode_vp9.c:
1512 plugins: encode: vp9: Implement vp9's allowed_profiles() func.
1513 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1515 2020-07-08 16:30:17 +0800 He Junyan <junyan.he@intel.com>
1517 * gst/vaapi/gstvaapiencode_h264.c:
1518 * gst/vaapi/gstvaapiencode_h265.c:
1519 * gst/vaapi/gstvaapipluginutil.c:
1520 * gst/vaapi/gstvaapipluginutil.h:
1521 plugin: util: rename h26x_encoder_get_profiles_from_caps().
1522 Change its name to encoder_get_profiles_from_caps(). Other codecs such
1523 as VP9 also needs to use this function.
1524 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1526 2020-07-06 23:35:12 +0800 He Junyan <junyan.he@intel.com>
1528 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
1529 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
1530 * gst-libs/gst/vaapi/meson.build:
1531 libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
1532 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1534 2020-07-29 10:17:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1536 * gst-libs/gst/vaapi/gstvaapicontext.c:
1537 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1538 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1539 libs: display, context: handle broken jpeg decoder for i965 driver
1540 JPEG decoding in i965 driver is pretty much broken, and the driver is
1541 deprecated which mean authors only accept trivial fixes.
1542 Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
1543 format which is not a common format in GStreamer. It can export it to
1544 I420 at mapping raw bytes, but DMABuf exporting is problematic.
1545 This patch artificially adds NV12 to the context format list when it's
1546 JPEG decoder for i965 and force the usage of old VA-API for surface
1547 creation without specifying color format. Also it artificially
1548 disables the DMABuf announcement.
1549 1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
1550 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1552 2020-07-29 12:02:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1554 * gst-libs/gst/vaapi/gstvaapicontext.c:
1555 libs: context: change function to internal code style
1556 Instead of a getter the function `get_preferred_format()` to
1557 `ensure_preferred_format()` which aligns to the code style.
1558 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1560 2020-07-28 20:00:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1562 * gst/vaapi/gstvaapidecode.c:
1563 vaapidecode: always merge profile caps in sink caps
1564 This commit fixes a regression of e962069d, where if the profile's
1565 caps doesn't have a caps profile, it's ignored.
1566 This patch add a conditional jump if the caps doesn't have a profile
1569 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>
1571 2020-07-28 12:22:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1574 build: request libdrm >= 2.4.98 and fallback
1576 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>
1578 2020-05-18 17:32:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1580 * gst/vaapi/gstvaapidecode.c:
1581 vaapidecode: dma caps only use reported color format
1582 This fix pipelines without vaapipostproc after vaapi decoder, such as
1583 gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
1584 On EGL platforms, so DMABuf is used.
1585 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1587 2020-02-07 17:10:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1589 * gst/vaapi/gstvaapidecode.c:
1590 vaapidecode: use allowed srcpad caps for caps query
1591 Instead of using just the template caps use the current allowed
1592 srcpad caps, which is created considering the current decoder
1594 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1596 2020-01-22 17:41:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1598 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1599 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1600 * gst/vaapi/gstvaapidecode.c:
1601 vaapidecode: build allowed srcpad caps from va context
1602 Instead of generating allowed srcpad caps with generic information,
1603 now it takes the size an formats limits from the decoder's context.
1604 This is possible since srcpad caps are generated after the internal
1606 The patch replaces gst_vaapi_decoder_get_surface_formats() with
1607 gst_vaapi_decoder_get_suface_attributes().
1608 From these attributes, formats are only used for VASurface memory
1609 caps feature. For system memory caps feature, the old
1610 gst_vaapi_plugin_get_allowed_srcpad_caps() is still used, since
1611 i965 jpeg decoder cannot deliver mappable format for gstreamer.
1612 And for the other caps features (dmabuf and texture upload) the
1613 same static list are used.
1614 This patch also adds DMABuf caps feature only if the context
1615 supports that memory type. Nonetheless, we keep the pre-defined
1616 formats since they are the subset of common derive formats formats
1617 supported either by amd/gallium and both intel drivers, since,
1618 when exporting the fd through vaAcquireBufferHandle()/
1619 vaReleaseBufferHandle(), the formats of the derivable image cannot
1620 be retriebable from the driver. Later we'll use the attribute
1621 formats for the DMABuf feature too, when the code be ported to
1622 vaExportSurfaceHandle().
1623 Finally, the allowed srcpad caps are removed if the internal decoder
1624 is destroyed, since context attribues will change.
1625 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1627 2020-02-07 16:50:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1629 * gst/vaapi/gstvaapidecode.c:
1630 vaapidecode: reorder src caps template
1631 Since negotiation depends on caps order, first is VA, then DMABuf,
1632 later GLUploadTexture (deprecated) and finally raw.
1633 Also, for decoders, the possible available color formats for DMABuf
1634 is extended to all the possible VA color formats.
1635 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1637 2020-07-22 10:01:41 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1639 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1640 libs: window: wayland: use dmabuf protocol if available
1641 Currently vaGetSurfaceBufferWl() is used to create wayland buffers.
1642 Unfortunately this is not implemented by the 'media-driver' and Mesa VA-API
1643 drivers. And the implementation provided by 'intel-vaapi-driver' is not
1644 compatible with a Wayland server that uses the iris Mesa driver.
1645 So create the Wayland buffers manually with the zwp_linux_dmabuf_v1 wayland
1646 protocol. Formats and modifiers supported by the Wayland server are taken
1647 into account. If necessary, VPP is enabled to convert the buffer into a
1649 Fall back to vaGetSurfaceBufferWl() if creating buffers via dambuf protocol
1651 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1653 2020-07-21 10:03:19 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1655 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1656 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1657 libs: window: allow choosing the format for the vpp pool
1658 Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1659 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1661 2020-06-28 17:42:29 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1663 * gst-libs/gst/vaapi/video-format.c:
1664 * gst-libs/gst/vaapi/video-format.h:
1665 video-format: add DRM formats to the mapping table
1666 This will be needed for the DMABuf protocol support to map DRM formats to
1667 vaapi and gstreamer formats.
1668 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1670 2020-07-22 09:36:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1672 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1673 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1674 * gst-libs/gst/vaapi/meson.build:
1675 libs: display: wayland: add basic dmabuf protocol support
1676 This is just the basic infrastructure. Hook up the interface and collect
1677 all supported formats.
1678 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1680 2020-07-06 09:59:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1682 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1683 libs: window: wayland: wait for configure before committing the first buffer
1684 Committing the first buffer for a surface must not be done before
1685 ack_configure() has been sent for the xdg_surface.
1686 With weston, the commit will fail with "error 3: xdg_surface has never been
1688 Wait in gst_vaapi_window_wayland_show() until configure is done to avoid
1690 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1692 2020-07-01 14:50:51 +0800 He Junyan <junyan.he@hotmail.com>
1694 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1695 libs: encoder: h265: set no P frame automatically.
1696 The double reference lists may be required by drivers and there should
1697 be no P frames in the of stream. The old way of converting P frames to
1698 B frames is by setting `low-delay-b` property, which is unconvenient
1699 and has bad user experience, since most of the users do not know when
1700 to set this property, and if it is not set correctly, the encoding
1701 pipeline fails or even hangs on some platforms. VA driver now provides
1702 a attribute to query whether both reference lists must be un-NULL for
1703 a profile/entrypoint pair.
1704 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1706 2020-04-15 16:26:55 +0800 He Junyan <junyan.he@hotmail.com>
1708 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1709 libs: encoder: h265: Deprecate the low-delay-b property.
1710 In HEVC, P and B definitions are different from AVC: P frames have
1711 just one reference list and so 1 MV, while B frames have two reference
1712 lists and so 2 MVs. No matter B or P, ist reference lists can contain
1713 forward/backward reference. So P and B can both have bi-directions
1714 dependency, the difference is just their reference list
1715 number (i.e. MV number). This is different from the AVC.
1716 The *low delay b mode* refers to a special HEVC mode, in which the
1717 stream just contain I and B frames, without P frames, and all B frames
1718 only have forward direction dependencies (i.e. all inter frames have 2
1719 reference lists but no backward reference in both lists). This is
1720 similar to AVC I/P mode, but changing the P to the forward dependent
1722 The `low-delay-b` property is now just used to simply convert all P
1723 frames to B frames when driver does not support P frames (so both
1724 reference lists have the same references frames). This is a little
1725 different from the meaning of low delay b mode (the two ref lists may
1726 have the different reference frames). And the driver now can report
1727 whether it supports P frames correctly, so there is no need to use
1728 this property and deprecate it.
1729 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1731 2020-07-24 12:54:31 +0200 Marc Leeman <m.leeman@televic.com>
1733 * gst/vaapi/gstvaapipostproc.c:
1734 postproc: reconfigure after changing cropping values
1735 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/365>
1737 2020-07-09 13:49:29 +0800 He Junyan <junyan.he@intel.com>
1739 * gst/vaapi/gstvaapiencode.h:
1740 * gst/vaapi/gstvaapiencode_h264.c:
1741 * gst/vaapi/gstvaapiencode_h265.c:
1742 * gst/vaapi/gstvaapiencode_jpeg.c:
1743 * gst/vaapi/gstvaapiencode_mpeg2.c:
1744 * gst/vaapi/gstvaapiencode_vp8.c:
1745 * gst/vaapi/gstvaapiencode_vp9.c:
1746 plugin: encode: Add static caps for template documentation.
1747 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1749 2020-07-08 19:03:14 +0800 He Junyan <junyan.he@intel.com>
1751 * gst/vaapi/gstvaapiencode_vp9.c:
1752 plugin: encode: vp9: Use the dynamically built src template caps.
1753 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1755 2020-07-08 19:02:45 +0800 He Junyan <junyan.he@intel.com>
1757 * gst/vaapi/gstvaapiencode_vp8.c:
1758 plugin: encode: vp8: Use the dynamically built src template caps.
1759 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1761 2020-07-08 19:02:23 +0800 He Junyan <junyan.he@intel.com>
1763 * gst/vaapi/gstvaapiencode_jpeg.c:
1764 plugin: encode: jpeg: Use the dynamically built src template caps.
1765 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1767 2020-07-08 19:00:39 +0800 He Junyan <junyan.he@intel.com>
1769 * gst/vaapi/gstvaapiencode_mpeg2.c:
1770 plugin: encode: mpeg2: Use the dynamically built src template caps.
1771 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1773 2020-07-08 18:59:18 +0800 He Junyan <junyan.he@intel.com>
1775 * gst/vaapi/gstvaapiencode_h265.c:
1776 plugin: encode: h265: Use the dynamically built src template caps.
1777 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1779 2020-07-08 18:57:26 +0800 He Junyan <junyan.he@intel.com>
1781 * gst/vaapi/gstvaapiencode_h264.c:
1782 plugin: encode: h264: Use the dynamically built src template caps.
1783 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1785 2020-07-08 18:46:58 +0800 He Junyan <junyan.he@intel.com>
1787 * gst/vaapi/gstvaapiencode.h:
1788 * gst/vaapi/gstvaapiencode_h264.c:
1789 * gst/vaapi/gstvaapiencode_h265.c:
1790 * gst/vaapi/gstvaapiencode_jpeg.c:
1791 * gst/vaapi/gstvaapiencode_mpeg2.c:
1792 * gst/vaapi/gstvaapiencode_vp8.c:
1793 * gst/vaapi/gstvaapiencode_vp9.c:
1794 plugin: encode: Store the coded caps in type's init data.
1795 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1797 2020-07-08 18:30:00 +0800 He Junyan <junyan.he@intel.com>
1799 * gst/vaapi/gstvaapipluginutil.c:
1800 * gst/vaapi/gstvaapipluginutil.h:
1801 plugin: util: add helper function build_template_coded_caps_by_codec()
1802 Like build_template_raw_caps_by_codec(), this function can detect and
1803 build the caps for specified codec based on the query of the profiles.
1804 The result is coded caps such as video/x-h265, video/x-h264. The result
1805 can be used as the template of encode's src or decode's sink.
1806 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1808 2020-07-07 17:16:41 +0800 He Junyan <junyan.he@intel.com>
1810 * gst/vaapi/gstvaapiencode.h:
1811 * gst/vaapi/gstvaapipluginutil.c:
1812 * gst/vaapi/gstvaapipluginutil.h:
1813 plugins: utils: rename build_template_caps_by_codec.
1814 Rename the function build_template_caps_by_codec() to the name of
1815 build_template_raw_caps_by_codec(). It can be used to collect all
1816 raw video formats for encode's sink and decode's src.
1817 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1819 2020-07-21 20:14:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1821 * gst/vaapi/gstvaapidecode.c:
1822 * gst/vaapi/gstvaapipluginutil.c:
1823 * gst/vaapi/gstvaapipluginutil.h:
1824 vaapidecode: merge common profiles before setting size range
1825 The synthetic profiles, such as H264 baseline, H265 intra, etc. are
1826 added at the end of processing all available VA profiles. This
1827 generated an non-optimal caps for negotiation, since the synthetic
1828 profiles don't have frame size ranges.
1829 This patch adds those possible synthetic profiles when the associated
1830 profile is processed, with its frame size ranges.
1831 Now allowed sink caps are simpler.
1832 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/363>
1834 2020-07-21 22:05:08 +0800 He Junyan <junyan.he@intel.com>
1836 * gst/vaapi/gstvaapipluginutil.c:
1837 plugin: util: Add the missing DMA buffer input in template caps.
1838 We pass the wrong parameter to gst_vaapi_build_caps_from_formats()
1839 and lose the DMA feature in caps.
1840 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/362>
1842 2020-07-14 18:13:56 +0800 He Junyan <junyan.he@intel.com>
1844 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1845 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1846 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1847 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1848 * gst-libs/gst/vaapi/video-format.c:
1849 * gst/vaapi/gstvaapidecode.c:
1850 libs: decoder: H265: Add MAIN_12 profile supporting.
1851 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1853 2020-07-09 23:07:38 +0800 He Junyan <junyan.he@intel.com>
1855 * gst-libs/gst/vaapi/gstvaapiimage.c:
1856 * gst-libs/gst/vaapi/video-format.c:
1857 video-format: Add P012_LE format.
1858 It can be used as HEVC YUV_4:2:0 12bits stream's decoder output, and
1859 also can be used as the input format for encoding HEVC YUV_4:2:0 12bits
1861 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1863 2020-07-17 00:45:53 +0800 He Junyan <junyan.he@intel.com>
1865 * gst/vaapi/gstvaapidecode.c:
1866 plugin: decode: correct ensure_allowed_sinkpad_caps's caps.
1867 The decode allowed caps returned by ensure_allowed_sinkpad_caps()
1868 contains all profiles of the whole VAAPI, like:
1869 image/jpeg, width=(int)[ 0, 1638 4 ], height=(int)[ 0, 16384 ];
1870 video/mpeg, mpegversion=(int)2, profile=(string){ simple, main },
1871 width=(int)[ 0, 2048 ], height=(int)[ 0, 2048 ]; video/x-h264,
1872 profile=(string){ main, high, constrained-baseline }, width=(int)[ 0,
1873 4096 ], height=(int)[ 0, 4096 ]; video/x-h264, profile=(string){
1874 constrained-high, progressive-high, baseline }; video/x-h265,
1875 profile=(string){ main, main-intra }, width=(int)[ 0, 8192 ],
1876 height=(int)[ 0, 8192 ]; video/x-vp8, width=(int)[ 0, 4096 ],
1877 height=(int)[ 0, 4096 ]; video/x-wmv, wmvversion=(int)3,
1878 format=(string)WVC1, profile=(string)advanced, width=(int)[ 0, 3840 ],
1879 height=(int)[ 0, 3840 ]; video/x-wmv, wmvversion=(int)3,
1880 profile=(string){ simple, main }, width=(int)[ 0, 3840 ],
1881 height=(int)[ 0, 3840 ]
1882 Which is verbose and may have latent problems. It should only contains
1883 the profiles belong to its codec type. For example, h265 should only
1885 video/x-h265, profile=(string){ main, main-intra },
1886 width=(int)[ 0, 8192 ], height=(int)[ 0, 8192 ]
1887 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/361>
1889 2020-07-13 11:06:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1891 * gst/vaapi/gstvaapidecodebin.c:
1892 vaapidecodebin: don't force NV12 since P010_10LE is now possible
1893 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/360>
1895 2020-07-12 20:34:31 +0800 He Junyan <junyan.he@intel.com>
1897 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1898 libs: profile: The VP9 profiles' name should be just "0,1,2,3"
1899 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/357>
1901 2020-07-08 17:33:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1903 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1904 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1905 * gst/vaapi/gstvaapidecode.c:
1906 * gst/vaapi/gstvaapidecode.h:
1907 * tests/internal/simple-decoder.c:
1908 vaapidecode: Remove NO_SURFACE error handling
1909 Since surfaces are not bounded to decoding context it makes no sense
1910 to keep the surface semaphore. This patch removes the handling of
1912 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1914 2020-07-08 17:48:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1916 * gst/vaapi/gstvaapidecode.c:
1917 * gst/vaapi/gstvaapidecode.h:
1918 Revert "vaapidecode: drop non-keyframe in reverse playback"
1919 Since the number of surfaces are not bounded to decoder context,
1920 this hack is no longer needed.
1921 This reverts commit 19c0c8a97385ce119440c4aad2d689fc79297435.
1922 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1924 2019-12-06 14:21:33 +0800 He Junyan <junyan.he@hotmail.com>
1926 * gst-libs/gst/vaapi/gstvaapicontext.c:
1927 libs: decoder: context: remove surfaces binding from context.
1928 The vaCreateContext do not need to specify the surfaces for the
1929 context creation now. So we do not need to bind any surface to the
1930 context anymore. Surfaces should be the resource belong to display
1931 and just be used in encoder/decoder context.
1932 The previous manner has big limitation for decoder. The context's
1933 surface number is decided by dpb size. All the surfaces in dpb will
1934 be attached to a gstbuffer and be pushed to down stream, and the
1935 decoder need to wait down stream free the surface and go on if not
1936 enough surface available. For more and more use cases, this causes
1937 deadlock. For example,
1938 gst-launch-1.0 filesrc location=a.h264 ! h264parse ! vaapih264dec
1939 ! x264enc ! filesink location=./output.h264
1940 will cause deadlock and make the whole pipeline hang.
1941 the x264enc encoder need to cache more than dpb size surfaces.
1942 The best solution is seperating the surfaces number and the dpb size.
1943 dpb and dpb size shoule be virtual concepts maintained by the decoder.
1944 And let the surfaces_pool in context maintain the re-use of all surfaces.
1945 For encoder, the situation is better, all the surfaces are just used
1946 as reference frame and no need to be pushed to down stream. We can
1947 just reserve and set the capacity of the surfaces_pool to meet the
1951 Co-Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1952 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1954 2020-07-08 17:50:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1957 * scripts/extract-release-date-from-doap-file.py:
1958 meson: set release date from .doap file for releases
1959 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/355>
1961 2020-07-08 11:57:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1963 * gst/vaapi/gstvaapipluginbase.c:
1964 plugins: use VA allocator by default on raw caps
1965 Instead of using dmabuf allocator in source pad, when raw video caps
1966 are negotiated, it uses VA allocator as before, since it is stable
1967 in more use cases, for example transcoding, and more backend drivers.
1968 Dmabuf allocator is only used when dmabuf caps feature is negotiated.
1969 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>
1971 2020-06-06 18:47:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1973 * gst/vaapi/gstvaapi.c:
1974 vaapisink: rank it as secondary
1975 iHD doesn't provide a full implemention for rendering surfaces and
1976 i965 has problems in wayland. And I suspect this path is followed
1977 by other driver implementations.
1978 This patch demotes the rank of vaapisink to secondary, so it will
1979 not be autoplugged avoiding bad experience of users.
1980 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/336>
1982 2020-06-19 10:44:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1984 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1985 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1986 libs: decoder: h264, h265: in context at least 16 reference surfaces
1987 Registering only stream's DBP size number of surfaces for decoding VA
1988 surfaces brings issues for certain streams. This change register all
1989 possible number of reference surfaces in a stream, which is 16.
1992 2020-07-04 21:21:57 +0800 He Junyan <junyan.he@intel.com>
1994 * gst/vaapi/gstvaapiencode_h265.c:
1995 plugins: encode: h265: Add profile,level,tier to output caps.
1996 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1998 2020-07-04 21:08:20 +0800 He Junyan <junyan.he@intel.com>
2000 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2001 libs: encoder: h265: init tier to GST_VAAPI_TIER_H265_UNKNOWN.
2002 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
2004 2020-07-04 21:05:49 +0800 He Junyan <junyan.he@intel.com>
2006 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2007 libs: encoder: h265: fix a bug to get get_profile_tier_level.
2008 0 is a valid value for h265 tier.
2009 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
2011 2020-07-02 19:19:35 +0800 He Junyan <junyan.he@intel.com>
2013 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2014 libs: encoder: h265: no need to check the high compression tune.
2015 The h265 encoder just support tune mode:
2017 (3): low-power - Low power mode
2018 So, no need to check and set the high compression parameters.
2019 And by the way, the current ensure_tuning_high_compression manner
2020 of choosing the hightest profile idc as the best compression profile
2021 is not correct. Unlike h264, in h265 the higher profile idc number
2022 does not mean it has more compression tools, and so it has better
2023 compression performance. It may even be un-compatible with the lower
2024 profile idc. For example, the SCREEN_CONTENT_CODING profile with idc
2025 9 is not compatible with 3D_MAIN profile with idc 8.
2026 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/348>
2028 2020-07-03 02:04:14 +0100 Tim-Philipp Müller <tim@centricular.com>
2033 === release 1.17.2 ===
2035 2020-07-03 00:36:40 +0100 Tim-Philipp Müller <tim@centricular.com>
2040 * gstreamer-vaapi.doap:
2044 2020-06-23 10:20:46 -0400 Thibault Saunier <tsaunier@igalia.com>
2046 * docs/gst_plugins_cache.json:
2047 * gst/vaapi/gstvaapiencode.c:
2048 docs: Mark parent classes as plugin API
2050 2020-06-23 00:07:57 +0200 Mathieu Duponchelle <mathieu@centricular.com>
2053 meson: mark plugins cache target as always stale
2055 2020-06-19 23:34:11 -0400 Thibault Saunier <tsaunier@igalia.com>
2057 * docs/gst_plugins_cache.json:
2058 doc: Stop documenting properties from parents
2060 2020-06-20 00:28:35 +0100 Tim-Philipp Müller <tim@centricular.com>
2065 === release 1.17.1 ===
2067 2020-06-19 19:27:11 +0100 Tim-Philipp Müller <tim@centricular.com>
2072 * gstreamer-vaapi.doap:
2076 2020-06-19 15:21:56 +0100 Tim-Philipp Müller <tim@centricular.com>
2078 * docs/gst_plugins_cache.json:
2079 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2080 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2081 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2082 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2083 Update plugin docs and add more plugins
2084 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
2086 2020-06-11 08:32:05 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
2088 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
2089 libs: wayland: display: only handle the first output
2090 Right now, all outputs are handled. The means that the registry object for
2091 all but the last are leaked. As a result the sizes are not used correctly.
2092 With two outputs, at first the mode and physical size of the second output
2093 are used. If the first output changes the mode, then the physical size of
2094 the second output is used in combination with the resolution of the first
2095 output. The resulting pixel aspect ratio is incorrect.
2096 There seems to be no way to determine on which output the window is shown,
2097 so just use the first one to get consistent results.
2098 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
2100 2020-06-11 18:15:17 +0800 He Junyan <junyan.he@hotmail.com>
2102 * gst/vaapi/gstvaapipluginbase.c:
2103 plugins: pluginbase: Do not destroy display when _close()
2104 When the element's state changes to NULL, it can still receive
2105 queries, such as the image formats. The display is needed in such
2106 queries but not well protected for MT safe.
2107 For example, ensure_allowed_raw_caps() may still use the display
2108 while it is disposed by gst_vaapi_plugin_base_close() because of
2110 We can keep the display until the element is destroyed. When the
2111 state changes to NULL, and then changes to PAUSED again, the display
2112 can be correctly set(if type changes), or leave untouched.
2114 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
2116 2020-06-09 21:19:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2118 * gst-libs/gst/vaapi/gstvaapicontext.c:
2119 libs: context: use correct printing modifier
2120 GstVaapiID is an alias of gsize, thus its modifier is platform
2122 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
2124 2020-06-06 00:42:46 +0200 Mathieu Duponchelle <mathieu@centricular.com>
2126 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2127 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2128 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2129 * gst-libs/gst/vaapi/gstvaapifilter.c:
2130 * gst-libs/gst/vaapi/gstvaapivalue.c:
2131 plugins: uddate gst_type_mark_as_plugin_api() calls
2133 2020-03-05 18:12:27 +0800 He Junyan <junyan.he@hotmail.com>
2135 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2136 libs: encoder: h265: Enable tile in VA command.
2137 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2139 2020-03-05 17:56:51 +0800 He Junyan <junyan.he@hotmail.com>
2141 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2142 libs: encoder: h265: Add ensure_tile to calculate tiles.
2143 We need consider tiles and slices together, separate tiles uniformly
2144 and then assign slices uniformly to each tiles.
2145 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2147 2020-04-30 14:19:29 +0800 He Junyan <junyan.he@hotmail.com>
2149 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2150 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2151 libs: display: add a quirk for iHD driver tile encoding.
2152 The iHD driver has a requirement that one slice can not span tiles
2153 when tile is enabled, which is not required by hevc spec.
2154 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2156 2020-03-05 17:40:43 +0800 He Junyan <junyan.he@hotmail.com>
2158 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2159 libs: encoder: h265: Add tile info to bitstream.
2160 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2162 2020-03-05 17:29:41 +0800 He Junyan <junyan.he@hotmail.com>
2164 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2165 libs: encoder: h265: promote level if tile is enabled.
2166 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2168 2020-03-05 17:07:28 +0800 He Junyan <junyan.he@hotmail.com>
2170 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2171 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
2172 libs: encoder: h265: Add num-tile-cols/rows properties.
2173 These properties are used for support of tile encoding. We just
2174 support uniform mode of tile encoding, that is, separating picture
2175 equally by (num-tile-cols X num-tile-rows).
2176 According to HEVC spec A1, the max number of tiles in column is 20
2177 and in rows is 22, so add two constant definitions.
2178 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2180 2020-03-05 16:21:24 +0800 He Junyan <junyan.he@hotmail.com>
2182 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2183 libs: encoder: h265: extract slice creation from add_slice_headers
2184 extract slice creation details from add_slice_headers, and let the
2185 add_slice_headers just focuses on calculating slice start address
2187 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2189 2020-03-05 12:44:45 +0800 He Junyan <junyan.he@hotmail.com>
2191 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2192 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2193 libs: encoder: Add a helper function to check the tile support.
2194 Encoding by tiles separation now is a very common feature for all
2195 relative new codecs, such as HEVC, AV1, and VP9. Just make this
2196 check as a common helper function of the encoder base class.
2197 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2199 2020-05-13 18:02:07 +0800 He Junyan <junyan.he@hotmail.com>
2201 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2202 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2203 * gst-libs/gst/vaapi/gstvaapiprofile.h:
2204 * gst-libs/gst/vaapi/gstvaapiutils.c:
2205 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2206 libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
2207 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2209 2020-05-13 16:05:59 +0800 He Junyan <junyan.he@hotmail.com>
2211 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2212 libs: decoder: update reference list for SCC.
2213 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2215 2020-05-13 15:46:29 +0800 He Junyan <junyan.he@hotmail.com>
2217 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2218 libs: decoder: H265: Fill picture and slice SCC parameters.
2219 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2221 2020-05-13 15:00:53 +0800 He Junyan <junyan.he@hotmail.com>
2223 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2224 libs: util: H265: recognize the SCC profiles.
2225 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2227 2020-05-13 14:53:46 +0800 He Junyan <junyan.he@hotmail.com>
2229 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2230 * gst-libs/gst/vaapi/gstvaapiprofile.h:
2231 * gst-libs/gst/vaapi/gstvaapiutils.c:
2232 libs: profile: Add screen extended main/main10/main444 define.
2233 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2235 2020-04-03 14:53:40 +0800 He Junyan <junyan.he@hotmail.com>
2237 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2238 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2239 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2240 * gst/vaapi/gstvaapiencode_h265.c:
2241 libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
2242 Using YUY2 as the input of the encoder can generate main 4:2:2 bit
2243 streams and using Y210 as the input of the encoder can generate main
2244 4:2:2 10 bit streams.
2245 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
2247 2020-05-29 16:40:20 +0800 He Junyan <junyan.he@hotmail.com>
2249 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2250 libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
2251 We need to use the chroma_format_idc as the index for getting the
2252 SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
2253 The wrong SubWidthC or SubHeightC make us calculate a wrong right
2254 or bottom offset for crop size and generate garbage in output.
2255 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
2257 2020-05-29 15:37:24 +0800 He Junyan <junyan.he@hotmail.com>
2259 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2260 libs: encoder: h265: Fix chrome idc for 444 10 bits
2261 GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
2262 to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
2263 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
2265 2020-06-03 18:37:22 -0400 Thibault Saunier <tsaunier@igalia.com>
2268 doc: Require hotdoc >= 0.11.0
2270 2020-06-03 18:49:53 -0400 Thibault Saunier <tsaunier@igalia.com>
2272 * gst/vaapi/gstvaapipostproc.c:
2273 doc: Fix wrong link to GstVideoDirectionMethod
2275 2020-06-03 17:38:10 -0400 Thibault Saunier <tsaunier@igalia.com>
2277 * docs/gst_plugins_cache.json:
2278 * meson_options.txt:
2279 docs: Update plugin cache with the new format
2280 And fix the default URL which should not be inside quotes.
2282 2020-06-03 17:37:48 -0400 Thibault Saunier <tsaunier@igalia.com>
2284 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2285 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2286 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2287 * gst-libs/gst/vaapi/gstvaapifilter.c:
2288 * gst-libs/gst/vaapi/gstvaapivalue.c:
2289 * gst/vaapi/gstvaapipostproc.c:
2290 Use gst_type_mark_as_plugin_api() for all non-element plugin types
2292 2020-05-23 22:09:17 +0800 He Junyan <junyan.he@hotmail.com>
2294 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2295 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2296 * gst-libs/gst/vaapi/gstvaapicontext.h:
2297 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2298 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2299 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
2300 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
2301 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
2302 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2303 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
2304 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
2305 * gst-libs/gst/vaapi/gstvaapiimage.h:
2306 * gst-libs/gst/vaapi/gstvaapiobject.c:
2307 * gst-libs/gst/vaapi/gstvaapiobject.h:
2308 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
2309 * gst-libs/gst/vaapi/gstvaapiprofile.h:
2310 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2311 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2312 * gst-libs/gst/vaapi/gstvaapisurface.h:
2313 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
2314 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2315 * gst-libs/gst/vaapi/meson.build:
2316 libs: delete all gstvaapiobject related files.
2317 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2319 2020-05-23 20:48:54 +0800 He Junyan <junyan.he@hotmail.com>
2321 * gst-libs/gst/vaapi/gstvaapisurface.c:
2322 libs: surface: return fail immediately if can not create subpicture
2323 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2325 2020-05-23 14:00:58 +0800 He Junyan <junyan.he@hotmail.com>
2327 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2328 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2329 * gst-libs/gst/vaapi/gstvaapisurface.c:
2330 * tests/internal/image.c:
2331 libs: subpicture: Make subpicture a standard GstMiniObject.
2332 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2334 2020-05-26 02:19:15 +0800 He Junyan <junyan.he@hotmail.com>
2336 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2337 libs: decoder: h264: Add ref flags for splited field.
2338 When split one frame into fields, the second field should also
2339 copy the reference flags.
2340 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
2342 2020-05-25 15:46:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2344 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2345 libs: decoder: h264: disallow multiple slice group
2346 As far as we know there are no VAAPI drivers supporting FMO, which
2347 migth be used in baseline streams.
2348 This commit is a continuation of
2349 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
2350 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
2352 2020-05-20 10:50:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2354 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2355 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2356 * gst/vaapi/gstvaapidecode.c:
2357 * gst/vaapi/gstvaapidecode_props.c:
2358 * gst/vaapi/gstvaapidecode_props.h:
2359 vaapidecoder: h264: remove baseline as constrained property
2360 From now on always the baseline is going to be treated as constrained without
2361 need of setting a property.
2362 Since the property was added along the development cycle (1.17 / commit
2363 866a9f06) and never released, we assume that it is safe to remove it.
2365 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
2367 2020-05-21 11:37:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2370 README: update VP9 decoder and encoder
2371 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
2373 2020-05-21 13:42:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
2375 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2376 vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
2377 This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
2378 so let's align this plugin with other libraries / softwares.
2379 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
2381 2020-05-18 18:29:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2383 * gst/vaapi/gstvaapivideobufferpool.c:
2384 vaapivideobufferpool: fix meta overwrite
2385 commit 7ac2a207 added a regression by erroneously assumed that
2386 GstVaapiVideoMeta is actually a GstMeta, which is not.
2387 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
2389 2020-05-17 09:55:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2391 * gst/vaapi/gstvaapivideobufferpool.c:
2392 * gst/vaapi/gstvaapivideometa_texture.c:
2393 * gst/vaapi/gstvaapivideometa_texture.h:
2394 vaapivideopool: Set pooled flag to added metas.
2395 So this could hint filters how to use these metas.
2396 Had to change the return value for texutre upload meta in order
2398 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
2400 2020-05-16 20:49:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2402 * gst-libs/gst/vaapi/gstvaapicontext.c:
2403 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2404 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2405 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
2406 * gst-libs/gst/vaapi/gstvaapisurface.c:
2407 libs: use array_unref() rather than array_free()
2408 It is more convinience and thread-safe.
2409 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
2411 2020-04-10 22:20:35 +0800 He Junyan <junyan.he@hotmail.com>
2413 * gst/vaapi/gstvaapi.c:
2414 plugin: use register_type to replace get_type for encode init.
2415 xxx_register_type will detect the template sink caps and is needed
2416 to be called at init time.
2417 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2419 2020-04-10 22:05:50 +0800 He Junyan <junyan.he@hotmail.com>
2421 * gst/vaapi/gstvaapiencode_vp9.c:
2422 * gst/vaapi/gstvaapiencode_vp9.h:
2423 plugins: encode: Modify sink template of vp9 encode.
2424 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2425 Also implement gst_vaapiencode_vp9_register_type, which should be
2426 called at plugin register time.
2427 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2429 2020-04-10 22:05:18 +0800 He Junyan <junyan.he@hotmail.com>
2431 * gst/vaapi/gstvaapiencode_vp8.c:
2432 * gst/vaapi/gstvaapiencode_vp8.h:
2433 plugins: encode: Modify sink template of vp8 encode.
2434 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2435 Also implement gst_vaapiencode_vp8_register_type, which should be
2436 called at plugin register time.
2437 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2439 2020-04-10 22:04:34 +0800 He Junyan <junyan.he@hotmail.com>
2441 * gst/vaapi/gstvaapiencode_mpeg2.c:
2442 * gst/vaapi/gstvaapiencode_mpeg2.h:
2443 plugins: encode: Modify sink template of mpeg2 encode.
2444 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2445 Also implement gst_vaapiencode_mpeg2_register_type, which should be
2446 called at plugin register time.
2447 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2449 2020-04-10 22:03:49 +0800 He Junyan <junyan.he@hotmail.com>
2451 * gst/vaapi/gstvaapiencode_h265.c:
2452 * gst/vaapi/gstvaapiencode_h265.h:
2453 plugins: encode: Modify sink template of h265 encode.
2454 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2455 Also implement gst_vaapiencode_h265_register_type, which should be
2456 called at plugin register time.
2457 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2459 2020-04-10 22:00:38 +0800 He Junyan <junyan.he@hotmail.com>
2461 * gst/vaapi/gstvaapiencode_h264.c:
2462 * gst/vaapi/gstvaapiencode_h264.h:
2463 plugins: encode: Modify sink template of h264 encode.
2464 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2465 Also implement gst_vaapiencode_h264_register_type, which should be
2466 called at plugin register time.
2467 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2469 2020-04-10 22:11:34 +0800 He Junyan <junyan.he@hotmail.com>
2471 * gst/vaapi/gstvaapiencode_jpeg.c:
2472 * gst/vaapi/gstvaapiencode_jpeg.h:
2473 plugins: encode: Modify sink template of jpeg encode.
2474 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2475 Also implement gst_vaapiencode_jpeg_register_type, which should be
2476 called at plugin register time.
2477 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2479 2020-04-23 00:02:02 +0800 He Junyan <junyan.he@hotmail.com>
2481 * gst/vaapi/gstvaapiencode.h:
2482 plugin: encode: add a helper macro to register encode type.
2483 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2485 2020-04-10 21:44:05 +0800 He Junyan <junyan.he@hotmail.com>
2487 * gst/vaapi/gstvaapipluginutil.c:
2488 * gst/vaapi/gstvaapipluginutil.h:
2489 plugins: util: Add a helper function to detect supported caps.
2490 This helper function iterate all profiles and entrypoints belong
2491 to the specified codec, query the VAConfigAttribRTFormat and list
2492 all possible video formats.
2493 This function is used by each codec to get the template sink caps
2494 (for encode) or src caps(for decode) at register time, when just
2495 all possible formats are listed and no need to be very accurate.
2496 So there is no context created for the performance reason. Most
2497 codecs just use YUV kinds of formats as the input/output, so we do
2498 not include RGB kinds of formats. User can specified more formats
2499 in extra_fmts(For example, jpeg may need BGRA) if needed.
2500 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2502 2020-04-10 21:27:32 +0800 He Junyan <junyan.he@hotmail.com>
2504 * gst/vaapi/gstvaapiencode.c:
2505 * gst/vaapi/gstvaapipluginutil.c:
2506 * gst/vaapi/gstvaapipluginutil.h:
2507 plugin: encode: extract the allowed caps maker as a helper function.
2508 Extract all logic about making caps for encode's sink as a standalone
2509 helper function. It can be reused.
2510 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2512 2020-04-10 21:21:43 +0800 He Junyan <junyan.he@hotmail.com>
2514 * gst-libs/gst/vaapi/video-format.c:
2515 * gst-libs/gst/vaapi/video-format.h:
2516 libs: video-format: add a helper function of get_formats_by_chroma.
2517 The function iterates all supported video formats and returns the
2518 formats belong to the specified chroma type.
2519 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2521 2020-05-16 21:03:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2523 * gst-libs/gst/vaapi/gstvaapitexture.c:
2524 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2525 libs: texture: remove unused headers include
2526 This is continuation of
2527 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
2528 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
2530 2020-05-16 19:58:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2532 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
2533 * gst-libs/gst/vaapi/gstvaapiimage.h:
2534 * gst-libs/gst/vaapi/gstvaapisurface.h:
2535 libs: removed duplicated function declarations
2536 Some headers had duplicated inlined function declaration. This was
2537 for gtkdoc, but now GStreamer uses hotdoc and the internal library
2538 documentation is not generated. So let's remove these extra lines.
2539 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
2541 2020-04-18 19:32:24 +0800 He Junyan <junyan.he@hotmail.com>
2543 * gst-libs/gst/vaapi/gstvaapitexture.c:
2544 * gst-libs/gst/vaapi/gstvaapitexture.h:
2545 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2546 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
2547 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2548 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
2549 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2550 * gst/vaapi/gstvaapivideometa_texture.c:
2551 * tests/internal/test-textures.c:
2552 libs: texture: Make texture a standard GstMiniObject.
2553 We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
2554 the qdata of miniobject and avoid extending the base texture class.
2555 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
2557 2020-04-26 12:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2561 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
2563 2020-04-21 18:00:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2565 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2566 libs: display: drm: use g_strcmp0 to be null safe
2567 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
2569 2020-04-26 13:30:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
2571 * gst/vaapi/gstvaapipluginutil.c:
2572 vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
2573 We may build this plugin with window system support but run it without
2574 window system. Without this patch, the following pipeline will trigger a
2575 segfault when running it without window system.
2576 gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
2577 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
2579 2020-04-21 11:16:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2582 build: use join_paths() for driverdir
2584 2020-04-21 09:04:51 +0000 Veerabadhran G <vegopala@amd.com>
2587 README: Update supported hardware
2588 Added the AMD hardware list to the "Hardware Requirements" section.
2590 2020-04-04 13:58:00 +0200 He Junyan <junyan.he@hotmail.com>
2592 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2593 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
2594 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2595 libs: bufferproxy: remove GstMemory reference
2596 Since bufferproxy and surface are not referenced circularly, there's
2597 no need to keep, in the buffer proxy, a reference to the GstMemory
2598 where it is held. This patch removes that handling.
2600 2020-03-15 23:29:05 +0800 He Junyan <junyan.he@hotmail.com>
2602 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2603 * gst-libs/gst/vaapi/gstvaapisurface.c:
2604 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2605 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
2606 * gst/vaapi/gstvaapivideomemory.c:
2607 libs,plugin: break surface-bufferproxy circular reference
2608 The bufferproxy may reference the surface and the surface may also
2609 reference the bufferproxy, producing a circular reference, which might
2610 lead to serious resource leak problems.
2611 Now make the relationship clearer, the bufferproxy's references is
2612 transfered to surface, while bufferproxy just keeps the surface's
2613 address without increasing its reference count.
2614 The surface can be created through a bufferproxy like in
2615 gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
2616 get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
2617 both cases the surface holds a bufferproxy's reference.
2619 2020-04-03 18:43:52 +0200 He Junyan <junyan.he@hotmail.com>
2621 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2622 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2623 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2624 libs: bufferproxy: rename parent memeber as surface
2626 2020-03-15 22:07:31 +0800 He Junyan <junyan.he@hotmail.com>
2628 * gst/vaapi/gstvaapivideobufferpool.c:
2629 plugin: bufferpool: use hashmap to cache dmabuf mem-surface
2630 The old way of refer memory by bufferproxy is not a good one, since it
2631 make the logic error prone.
2632 Now it is established a map between surface-bufferproxy and its GstMemory,
2633 caching the memory bound by a surface looked for the specified surface.
2635 2020-03-15 21:50:24 +0800 He Junyan <junyan.he@hotmail.com>
2637 * gst/vaapi/gstvaapivideobufferpool.c:
2638 * gst/vaapi/gstvaapivideobufferpool.h:
2639 plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
2640 Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
2641 In fact, no one is using that flag, and all vaapi buffers should
2642 have GstVaapiVideoMeta.
2644 2020-02-13 09:43:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2646 * gst/vaapi/gstvaapipostproc.c:
2647 * gst/vaapi/gstvaapipostproc.h:
2648 vaapipostproc: enable HDR10 tone mapping
2650 2020-02-13 09:00:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2652 * gst-libs/gst/vaapi/gstvaapifilter.c:
2653 * gst-libs/gst/vaapi/gstvaapifilter.h:
2654 libs: filter: HDR10 tone mapping support
2655 Add support for HDR10 tone mapping (since VA-API 1.4.0).
2657 2020-04-02 15:14:15 +0800 He Junyan <junyan.he@hotmail.com>
2659 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2660 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2661 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2662 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2663 * gst/vaapi/gstvaapiencode_h265.c:
2664 libs: encoder: h265: Support MAIN 4:4:4 10 profile.
2665 Using Y410 as the input of the encoder can generate main_444_10 bit
2668 2020-04-02 15:19:41 +0800 He Junyan <junyan.he@hotmail.com>
2670 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2671 libs: encoder: fix an inexact trace info in chroma type check.
2673 2020-03-31 12:22:31 +0800 Haihao Xiang <haihao.xiang@intel.com>
2675 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2676 libs: encoder: make sure format array is not NULL when returning TRUE
2677 This fixed segfault when running the pipeline below with iHD driver
2678 (commit efe5e9a) on ICL
2679 gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
2682 2020-03-18 13:28:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2684 * gst-libs/gst/vaapi/gstvaapidecoder.h:
2685 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2686 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
2687 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
2688 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
2689 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
2690 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
2691 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
2692 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
2693 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2694 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
2695 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2696 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
2697 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
2698 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2699 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2700 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2701 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2702 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2703 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2704 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2705 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2706 * gst-libs/gst/vaapi/gstvaapifilter.h:
2707 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
2708 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2709 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
2710 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
2711 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
2712 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2713 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
2714 libs: extend g_autoptr support
2716 2020-03-26 22:40:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2718 * gst/vaapi/gstvaapivideometa.c:
2719 vaapivideometa: remove compiler warning
2721 2020-03-22 20:59:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2724 * meson_options.txt:
2725 build: Add meson's option package-origin.
2726 This options is added to synchronize with other gstreamer packages
2727 build configuration.
2728 Though, to avoid breaking distro configuration it is set, as default,
2729 the issues gitlab's url, instead of the used string
2730 "Unkown package origin".
2731 Also, set_quoted is used for string based cdata.
2733 2020-02-25 13:45:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2735 * gst/vaapi/gstvaapipostproc.c:
2736 vaapipostproc: deprecate format, width and size parameters
2737 Since they should only be controlled by caps negotiation.
2739 2020-03-18 16:41:01 +0800 He Junyan <junyan.he@hotmail.com>
2741 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2742 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2743 * gst/vaapi/gstvaapidecode.c:
2744 libs,plugins: decoder: Add -intra profile support for hevc.
2745 In hevc, we can consider the -intra profile a subset of the none
2746 -intra profile. The -intra profiles just contain I frames and we
2747 definitely can use the none -intra profiles's context to decode
2749 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2751 2020-03-04 12:35:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2753 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2754 libs: encoder: h265: support ICQ/QVBR BRC
2755 Enable support for ICQ and QVBR bitrate control.
2756 The code is essentially the same for h264 ICQ/QVBR support
2757 which was added in commit 9e0c133a2403.
2759 2020-03-19 11:19:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2761 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2762 libs: encoder: set VA HRD param before RC param
2763 This is a workaround for intel-media-driver bug
2764 https://github.com/intel/media-driver/issues/865
2765 The driver will force the RC method to CBR for HEVCe
2766 when it parses the HRD param. Thus, any RC method
2767 param submitted "prior" to the HRD param will be lost.
2768 Therefore, VBR, ICQ and QVBR for HEVCe can't be
2769 effectively enabled if the RC method param "precedes"
2771 To work around this issue, set the HRD param before
2772 the RC method param so the driver will parse the RC
2773 method param "after" the HRD param.
2774 Afaict, other codecs in the driver (and other drivers)
2775 do not appear to be dependent on the order of HRD and
2776 RC param submission.
2778 2019-11-25 14:16:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
2780 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2781 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2782 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2783 vaapijpegenc: Add a quantization quirk for iHD driver
2784 iHD driver shifts the value by 50 when calculating quantization for JPEG
2785 encoding, so we should add 50 in this plugin for iHD driver too.
2787 2020-03-13 21:49:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2789 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2790 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
2791 * gst-libs/gst/vaapi/gstvaapipixmap.c:
2792 * gst-libs/gst/vaapi/gstvaapipixmap.h:
2793 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
2794 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
2795 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
2796 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2797 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2798 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2799 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
2800 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2801 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
2802 * gst-libs/gst/vaapi/meson.build:
2804 * tests/internal/output.c:
2805 * tests/internal/output.h:
2806 * tests/internal/simple-decoder.c:
2807 * tests/internal/test-decode.c:
2808 libs: remove GstVaapiPixmap
2809 GstVaapiPixmap is an abstract base class which only implementation
2810 were GstVaapiPixmapX11. This class were used for a special type of
2811 rendering in the tests apps, utterly unrelated in GStreamer.
2812 Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
2813 we should remove this unused API.
2814 This removal drops libxrender dependency.
2816 2020-03-17 18:51:19 +0800 He Junyan <junyan.he@hotmail.com>
2818 * gst-libs/gst/vaapi/gstvaapiutils.c:
2819 libs: utils: Add HEVC Main444 sting in string_of_VAProfile
2820 HEVCMain444_10 is already a supported profile and misses the strings.
2822 2020-03-17 12:47:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2824 * gst/vaapi/gstvaapi.c:
2825 plugin: don't error if cannot create display
2826 This might generated errors on automatic tools such as CI. Let's
2827 rather just raise a warning and let continue.
2829 2020-03-09 01:52:57 +0800 He Junyan <junyan.he@hotmail.com>
2831 * tests/check/meson.build:
2832 test: fix a ninja test failure for vaapioverlay.
2833 That test case only works with drm display, so the build such as
2834 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2836 gets a failure when run ninja test. Just enable this test when drm
2839 2020-02-07 23:56:13 +0800 He Junyan <junyan.he@hotmail.com>
2841 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2842 libs: videopool: fix a condition race for pool allocate.
2844 2020-03-05 13:22:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2846 * gst/vaapi/gstvaapivideobufferpool.c:
2847 vaapivideobufferpool: force video meta if sizes are different
2848 The strides and offsets could be the same, but the allocation
2849 size might be different (e.g. alignment). Thus, ensure we also
2850 set the flag to copy from VA memory to system memory when alloc
2854 2020-03-05 14:18:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2856 * gst/vaapi/gstvaapidecode.c:
2857 vaapidecode: don't set base sink caps twice
2858 Base class's sink pad caps are already set when calling set_format().
2859 There's no need to call it again in gst_vaapidecode_negotiate().
2861 2020-03-05 13:26:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2863 * gst/vaapi/gstvaapidecode.c:
2864 vaapidecode: unlock stream if caps update fails
2865 If caps update fail a dead lock occurs since the stream mutex is not
2868 2020-03-03 15:24:32 +0800 Xu Guangxin <guangxin.xu@intel.com>
2870 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2871 libs: decoder: h265: parser state after update dependent slice
2872 If the dependent_slice_segment_flag is true, most slice info derived from last slice.
2873 So we need check the slice type after we call populate_dependent_slice_hdr
2875 2020-02-16 12:21:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2877 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2878 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2879 libs: display: force RGBA image format for i965 driver
2880 Since commit 32bf6f1e GLTextureUpload is broken because i965
2881 doesn't report properly RGBA support. It could be possible to use RGBx
2882 but GLTextureUpload only regotiates RGBA.
2883 The simplest fix to this regression is adding synthetically the RGBA
2884 format in the internal format map.
2886 2020-02-14 19:30:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2888 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2889 libs: display: iterate all quirks table
2890 Instead of break at the fist foud quirk in the table, iterate all over
2891 so it would be feasible to add several quirks for one driver per
2894 2020-02-25 12:05:28 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2896 * gst-libs/gst/vaapi/gstvaapifilter.c:
2897 libs: filter: handle RGB to/from YUV color primary driver quirk
2898 The intel-media-driver (iHD) can't convert output color
2899 primaries when doing YUV to/from RGB CSC. Thus, we must
2900 keep the output color primaries the same as the input
2901 color primaries for this case.
2904 2020-02-25 12:00:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2906 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2907 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2908 libs: display: add YUV to/from RGB color primary quirk
2909 The intel-media-driver (iHD) can't convert output color
2910 primaries when doing YUV to/from RGB CSC.
2912 2020-02-28 11:33:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2914 * gst/vaapi/gstvaapivideomemory.c:
2915 Revert "vaapivideomemory: Store surface allocation flags."
2916 This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
2917 it rewrites the buffer size whilst surface allocation flags are
2918 stored when allocator_params_init() is called since fab890ce.
2921 2020-01-27 18:19:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2923 * gst/vaapi/gstvaapivideomemory.c:
2924 vaapivideomemory: Try surface with allocation flags.
2925 When a vaapi allocator is instantiated, it first try to generate a
2926 surface with the specified configuration.
2927 This patch adds, in this tried buffer, the requested allocation flags.
2929 2020-01-27 18:10:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2931 * gst/vaapi/gstvaapivideomemory.c:
2932 vaapivideomemory: Store surface allocation flags.
2933 Store surface allocation flags passed to the vaapi allocator in
2934 GObject's qdata, because it might be used by the vaapivideobufferpool
2935 when recreating the allocator given any resolution change.
2937 2020-01-24 19:32:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2939 * gst-libs/gst/vaapi/gstvaapisurface.c:
2940 * gst-libs/gst/vaapi/gstvaapisurface.h:
2941 libs: surface: Add hints to allocation flags.
2942 When creating surfaces it is possible to pass to VA hints of its usage,
2943 so the driver may do some optimizations.
2944 This commit adds the handling of encoding/decoding hints.
2946 2020-01-24 22:08:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2948 * gst-libs/gst/vaapi/gstvaapicontext.c:
2949 * gst-libs/gst/vaapi/gstvaapisurface.c:
2950 * gst-libs/gst/vaapi/gstvaapisurface.h:
2951 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2952 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2953 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2954 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2955 * tests/internal/test-filter.c:
2956 * tests/internal/test-surfaces.c:
2957 libs: surface: surfacepool: Add allocation flags in constructors.
2959 2020-02-22 16:06:13 +0800 He Junyan <junyan.he@hotmail.com>
2962 build: let the build fail if none if X11, wayland or drm.
2963 In fact, gst_vaapi_create_test_display only test x11, wayland and
2964 drm, no glx and egl entries. So if none of them is enabled, no
2965 vaapi element can be detected.
2967 2020-02-21 00:58:47 +0800 He Junyan <junyan.he@hotmail.com>
2969 * tests/internal/test-display.c:
2970 test: avoid unused warning for test-display
2971 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2972 -Dwith_glx=no buildir
2973 generate unused warnings.
2975 2020-02-21 00:50:47 +0800 He Junyan <junyan.he@hotmail.com>
2978 build: fix meson build error when without x11.
2979 meson -Dwith_x11=no build_dir
2980 can not success build the project because the glx is still enabled.
2981 We need to disable GLX when X11 is disabled.
2983 2020-02-14 19:53:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
2985 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2986 libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
2987 Intel HW has limitation on max_transform_hierarchy_depth_inter and
2988 max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
2989 other HWs if other HWs may support other values
2990 [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
2992 2020-02-21 07:37:50 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2994 * gst/vaapi/gstvaapipostproc.c:
2995 * gst/vaapi/gstvaapipostprocutil.c:
2996 vaapipostproc: do not compensate for crop/direction if no VPP
2997 If we do not have functional VPP, then cropping and video
2998 direction is non-functional and we should avoid calling
2999 any of the gst_vaapi_filter* APIs.
3001 2020-02-21 06:54:47 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3003 * gst/vaapi/gstvaapipostproc.c:
3004 vaapipostproc: only set VPP colorimetry when VPP is available
3005 If we don't have functional vpp then we should not call
3006 gst_vaapi_filter_set_colorimetry.
3008 2020-02-16 01:25:37 +0800 He Junyan <junyan.he@hotmail.com>
3010 * gst/vaapi/gstvaapivideobufferpool.c:
3011 * gst/vaapi/gstvaapivideomemory.c:
3012 * gst/vaapi/gstvaapivideomemory.h:
3013 videobufferpool: don't reset surface when created internally
3014 The bug fixing, in commit 89f202ea, just considers the case when
3015 surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
3016 which is typically a decoder's behavior. But vaapipostproc doesn't
3017 provide any surface when calling gst_buffer_pool_acquire_buffer(),
3018 thus a surface is created when GstMemory is allocated.
3019 If the surface proxy in buffer's meta is reset at
3020 buffer_pool_reset_buffer(), that surface will be destroyed and it
3021 won't be available anymore. But GstBuffers are cached in the buffer
3022 pool and they are reused again, hence only those images are rendered
3026 2020-02-16 17:19:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3028 * gst-libs/gst/vaapi/gstvaapiblend.c:
3029 * gst-libs/gst/vaapi/gstvaapifilter.c:
3030 * gst/vaapi/gstvaapi.c:
3031 libs: blend: filter: handle finalize() if display isn't assigned
3032 I've just discovered iHD driver in Skylake doesn't have VideoProc
3033 entry point, hence, in this platform, when vaapioverlay is tried to be
3034 registered, critical warnings are raised because blend doesn't have a
3036 As it is possible to have drivers without EntryPointVideoProc it is
3037 required to handle it gracefully. This patch does that: only tries to
3038 register vaapioverlay if the testing display has VPP and finalize()
3039 vmethods, in filter and blend, bail out if display is NULL.
3041 2020-02-15 11:02:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3043 * gst-libs/gst/vaapi/gstvaapifilter.c:
3044 * gst-libs/gst/vaapi/gstvaapiutils.c:
3045 libs: filter: guard all color properties to VA-API 1.2.0
3046 Older VA-API (0.39.0) doesn't have VAProcColorProperties.
3047 Thus, guard all colorimetry -> VA-API support to version
3051 2020-02-17 08:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3053 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3054 libs: decoder: h265: set parser info state at decoding codec data
3055 Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
3056 parser info in sps array. If that parser info comes from decoding
3057 codec data, that parser info will have an undefined state which might
3059 This patch sets the parser info state, at decoding codec data, with
3060 the internal parser state. This is similar with h264 decoder apprach.
3061 Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
3063 2020-02-07 15:24:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3065 * gst/vaapi/gstvaapipostproc.c:
3066 vaapipostproc: demote log message to trace level
3068 2020-02-14 14:45:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3070 * gst-libs/gst/vaapi/video-format.c:
3071 libs: video-format: set general vaapi log category
3072 Instead of logging in an unspecified category, set the default vaapi.
3074 2020-02-15 11:44:48 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3076 * gst-libs/gst/vaapi/gstvaapiutils.c:
3077 libs: utils: guard EncSliceLP for VA-API < 0.39.1
3080 2020-02-14 16:17:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
3082 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3083 libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
3085 2020-02-11 11:31:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3087 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
3088 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3089 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3090 libs: remove crumbs of libva < 0.39
3091 All these guarded code seem like leftovers of commit 920b1ec7a. This
3092 patch completes that missing clean up.
3094 2020-02-11 00:38:40 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3096 * gst-libs/gst/vaapi/gstvaapifilter.c:
3097 * gst-libs/gst/vaapi/gstvaapiutils.c:
3098 libs: VA explicit color standard not supported until 1.2.0
3099 VAProcColorStandardExplicit and associated VAProcColorProperties
3100 (primaries, transfer and matrix) are not supported until
3102 Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
3106 2020-02-10 09:31:15 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3108 * gst-libs/gst/vaapi/gstvaapiutils.c:
3109 libs: utils: WA: use explicit for sRGB colorimetry
3110 Addresses #228 on iHD side. It seems iHD can't handle
3111 VAProcColorStandardSRGB in all situations for vpp. But
3112 it has no problem when we specify the sRGB parameters
3113 via VAProcColorStandardExplicit parameters.
3115 2020-02-07 11:25:31 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3117 * gst-libs/gst/vaapi/gstvaapifilter.c:
3118 libs: filter: set vpp input/output color range
3119 We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
3120 And, the [iHD] driver essentially computes the same color
3121 range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
3122 cases were gstreamer computes it automatically. But,
3123 if the user wants to make it explicit, we should try
3126 2020-02-07 11:20:11 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3128 * gst-libs/gst/vaapi/gstvaapiutils.c:
3129 * gst-libs/gst/vaapi/gstvaapiutils.h:
3130 libs: utils: map GstVideoColorRange to VAAPI VPP
3132 2020-02-07 15:28:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3134 * gst/vaapi/gstvaapidecode.c:
3135 vaapidecode: don't remove chroma-site nor colorimetry
3136 Since now they can be handled by vaapipostproc.
3138 2020-02-04 14:17:43 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3140 * gst/vaapi/gstvaapipostprocutil.c:
3141 vaapipostproc: use sink resolution to calculate src colorimetry
3142 The default output colorimetry is persuaded by the output
3143 resolution, which is too naive when doing VPP cropping
3144 and/or scaling. For example, scaling 4K(sink)->1080P(src)
3145 resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
3146 colorimetry selection and some drivers don't support that
3148 Thus, if output (i.e. downstream) does not specify a
3149 colorimetry then we use the input resolution instead of the
3150 output resolution to create the default colorimetry. Also,
3151 note that we still use the output format since it may be a
3152 different color space than the input. As in the example
3153 above, this will result in bt2020(sink)->bt2020(src)
3154 colorimetry selection and all drivers (afaik) should support
3157 2020-02-04 09:57:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3159 * gst/vaapi/gstvaapipostprocutil.c:
3160 vaapipostproc: set srcpad colorimetry unconditionally
3161 We always need a srcpad colorimetry for VAAPI VPP
3163 Also, check the return value of _set_colorimetry.
3165 2020-01-30 12:34:07 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3167 * gst/vaapi/gstvaapipostprocutil.c:
3168 vaapipostproc: do not override explicit srcpad colorimetry
3169 If colorimetry has been set by a capsfilter (e.g.
3170 vaapipostproc ! video/x-raw,colorimetry=bt709) then
3171 don't try to override it. Previously, the aforementioned
3172 capsfilter will fail to negotiate if default colorimetry
3173 is not the same as the capsfilter (e.g. 4K resolutions).
3175 2020-01-30 09:37:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3177 * gst/vaapi/gstvaapipostproc.c:
3178 vaapipostproc: set vpp filter colorimetry
3179 Set the input and output colorimetry for vpp filter.
3181 2020-01-30 09:34:10 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3183 * gst-libs/gst/vaapi/gstvaapifilter.c:
3184 * gst-libs/gst/vaapi/gstvaapifilter.h:
3185 libs: filter: support vpp input/output color standard
3186 Add API function to allow setting the input and output vpp
3187 color standard from GstVideoColorimetry.
3189 2020-02-04 11:32:54 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3191 * gst-libs/gst/vaapi/gstvaapiutils.c:
3192 * gst-libs/gst/vaapi/gstvaapiutils.h:
3193 libs: utils: map GstVideoColorimetry to VAAPI VPP
3194 Fallback to VAProcColorStandardExplicit if there is no
3197 2020-02-04 10:27:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3199 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3200 * gst-libs/gst/vaapi/gstvaapidisplay.h:
3201 libs: display: add vpp color standard quirk for i965 driver
3202 The i965 does not properly report supported vpp color
3205 2020-02-02 18:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3207 * gst/vaapi/gstvaapivideobufferpool.c:
3208 vaapivideobufferpool: dmabuf implies allocator
3209 Some code can be optimized since only if the dmabuf allocator is set,
3210 the internal flag of dmabuf is TRUE, thus there's no need to evaluate
3211 the allocator address.
3213 2020-01-29 11:55:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3215 * gst/vaapi/gstvaapivideobufferpool.c:
3216 vaapivideobufferpool: reject configuration if allocator isn't vaapi
3217 If the requested allocator in set_config() is not a VAAPI valid one,
3218 reject the configuration, instead of lying and using a private one.
3219 This patch superseeds !254 and !24
3221 2020-01-29 11:55:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3223 * gst/vaapi/gstvaapivideobufferpool.c:
3224 vaapivideobufferpool: add explanation for allocator reconfig
3226 2020-01-29 11:54:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3228 * gst/vaapi/gstvaapivideobufferpool.c:
3229 vaapivideobufferpool: check for vaapi meta first
3230 If the configured meta doesn't request vaapi meta then it is not a
3231 vaapi buffer pool. Bail out as soon as possible.
3233 2020-01-29 11:52:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3235 * gst/vaapi/gstvaapivideobufferpool.c:
3236 vaapivideobufferpool: turn errors into warnings
3237 set_config() vmethod should fail gracefully, thus upstream could
3238 negotiate another pool if possible.
3239 Instead of sending error messages to the bus, let demote the level
3242 2020-01-29 11:51:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3244 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3245 libs: display: log out vendor string when available
3246 This is useful while asking for logs to know the used driver.
3248 2020-01-27 11:49:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3250 * gst-libs/gst/vaapi/gstvaapisurface.c:
3251 libs: surface: initialize VASurfaceAttribExternalBuffers
3252 Initialize VASurfaceAttribExternalBuffers using compiler's syntax
3253 rather than using memset().
3255 2020-01-27 11:44:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3257 * gst-libs/gst/vaapi/gstvaapisurface.c:
3258 libs: surface: merge two loops into one
3259 Merge two loops into one for setting offsets and strides in the
3260 external buffer descriptor.
3262 2020-01-22 10:42:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3264 * gst-libs/gst/vaapi/gstvaapisurface.c:
3265 * gst-libs/gst/vaapi/gstvaapisurface.h:
3266 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
3267 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
3268 libs: surface: surfacepool: rename variable for clearity
3269 In order to be readable, the meaningless 'flags' is renamed to
3270 surface_allocation_flags, which is clearer.
3272 2020-01-27 18:40:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3274 * gst/vaapi/gstvaapivideobufferpool.c:
3275 vaapivideobufferpool: Reuse internal allocator is possible.
3276 Instead of creating a new allocator when upstream requests a different
3277 allocator, this patch tries to reuse the internal allocator if it was
3278 already initializated.
3279 If the stream changes, then either one will be unref and a new
3280 allocator is created.
3282 2020-01-27 18:05:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3284 * gst/vaapi/gstvaapivideobufferpool.c:
3285 vaapivideobufferpool: Log messages in proper category.
3286 The log messages where logged in the GstBufferPool category because
3287 the instance was not properly casted. This fix that situation.
3289 2020-01-16 11:49:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3291 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3292 * gst-libs/gst/vaapi/gstvaapidisplay.h:
3293 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3294 * gst/vaapi/gstvaapipluginbase.c:
3295 libs: display: driver quirks mechanism
3296 This mechanism comes from ffmpeg vaapi implementation, where they have
3298 A specific driver is identified by a substring present in the vendor
3299 string. If that substring is found, a set of bitwise flags are store.
3300 These flags can be accessed through the function
3301 gst_vaapi_display_has_driver_quirks().
3302 The purpose for this first quirks is to disable the put image try for
3303 AMD Gallium driver (see [1]).
3304 1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
3306 2020-01-15 23:07:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3308 * gst/vaapi/gstvaapipluginutil.c:
3309 plugins: renable Mesa Gallium driver
3311 2020-01-24 11:55:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3313 * gst/vaapi/gstvaapivideobufferpool.c:
3314 vaapivideobufferpool: validate returned meta
3315 Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
3316 the acquired buffer is not null.
3317 This situation should be very "pathological", but still it is better
3318 be safe since that meta might be used later to create a new dma
3321 2020-01-22 18:50:36 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3323 * gst/vaapi/gstvaapivideobufferpool.c:
3324 vaapivideobufferpool: always update/release the underlying surface proxy
3325 gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
3326 releases the last reference on an exported DMA buffer. This should
3327 release the underlying surface proxy. To avoid releasing the wrong
3328 surface due to a stale surface proxy reference in the buffer's
3329 GstVaapiVideoMeta, always update the reference to the correct surface
3330 in gst_vaapi_video_buffer_pool_acquire_buffer().
3332 2020-01-23 16:56:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3334 * gst-libs/gst/vaapi/gstvaapicontext.c:
3335 * gst-libs/gst/vaapi/gstvaapicontext.h:
3336 * gst-libs/gst/vaapi/gstvaapisurface.c:
3337 * gst-libs/gst/vaapi/gstvaapisurface.h:
3338 libs: context: select vaCreateSurfaces version according attributes
3339 This commit tries to centralize the selection of vaCreateSurfaces
3340 version, instead of having fallbacks everywhere.
3341 These fallbacks are hacks, added because new drivers use the latest
3342 version of vaCreateSurfaces (with surface attributes) [1], meanwhile
3343 old drivers (or profiles as JPEG decoder in i965) might rather use the
3345 In order to select which method, there's detected hack: each config
3346 context has a list of valid formats, in the case of JPEG decoder the
3347 list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
3348 handled correctly by the current gstreamer-vaapi code [2].
3349 The hack consist in identify if the format list contains an arbitrary
3350 preferred format (which is suposedly well supported by
3351 gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
3352 the the old version of vaCreateSurfaces is used, and the surfaces wil
3353 be mapped into a image with their own color format.
3354 1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
3355 2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
3357 2020-01-21 19:35:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3359 * gst-libs/gst/vaapi/gstvaapicontext.c:
3360 libs: context: add debug category for context
3362 2020-01-22 20:20:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3364 * gst-libs/gst/vaapi/gstvaapiblend.c:
3365 libs: blend: guard VA_BLEND_GLOBAL_ALPHA
3367 2020-01-21 14:09:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3369 * gst/vaapi/gstvaapiencode_h264.c:
3370 vaapiencode: promote info to warning
3371 Let's notify user about using constrained-baseline instead on
3372 requested basline profile.
3374 2019-06-28 15:41:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
3376 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3377 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
3378 * gst/vaapi/gstvaapidecode.c:
3379 * gst/vaapi/gstvaapidecode_props.c:
3380 * gst/vaapi/gstvaapidecode_props.h:
3381 vaapih264dec: Add a property to assume constrained-baseline
3382 When baseline-as-constrained is set, the decoder will expose support
3383 for baseline decoding and assume that the baseline content is
3384 constrained-baseline. This can be handy to decode streams in hardware
3385 that would otherwise not be possible to decode. A lot of baseline
3386 content is in fact constrained.
3388 2020-01-17 16:19:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3390 * gst/vaapi/gstvaapiencode_h264.c:
3391 * gst/vaapi/gstvaapipluginutil.c:
3392 vaapih264enc: accept baseline as constrained baseline compatible
3394 2020-01-17 14:24:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3396 * gst/vaapi/gstvaapiencode_h264.c:
3397 vaapih264enc: update level in src caps
3398 And, if downstream requests a specific level, the caps are not
3399 negotiated, because there is no mechanism right now to specify a
3400 custom level in the internal encoder.
3402 2020-01-17 17:12:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3404 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3405 libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
3407 2020-01-17 13:38:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3409 * gst/vaapi/gstvaapiencode_h264.c:
3410 vaapih264enc: force byte-stream if avc isn't supported
3411 Removing the validation in gst_vaapiencode_h264_get_caps() since that
3412 ought be handled in gst_vaapiencode_h264_set_config()
3414 2020-01-08 17:37:22 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3416 * gst/vaapi/gstvaapiencode_h264.c:
3417 vaaph264enc: suppress avc if the driver does not support packed headers
3418 Do not negotiate AVC output if the driver does not support it.
3420 2020-01-08 17:16:35 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3422 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3423 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3424 libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
3425 AVC output requires packed header support in the driver.
3427 2020-01-17 13:07:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3429 * gst/vaapi/gstvaapiencode_h264.c:
3430 vaapih264enc: intersect the new proposed caps
3431 Instead of just leave to keep the proposed caps, with the best profile
3432 in the allowed caps, is its intersected again.
3434 2020-01-17 12:58:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3436 * gst/vaapi/gstvaapiencode_h264.c:
3437 vaapih264enc: propose new profile caps and fixate it
3438 When the available caps doesn't intersect with the allowed caps in the
3439 pipeline, a new caps is proposed rather than just expecting to
3441 Later, the intersected caps (profile_caps) is fixated in order to
3442 extract the configuration.
3444 2020-01-17 13:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3446 * gst/vaapi/gstvaapiencode_h264.c:
3447 vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
3448 Add a common fail code path for gst_vaapiencode_h264_set_config().
3450 2020-01-17 12:54:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3452 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3453 libs: encoder: unref formats array if none
3454 The formats array is always created, in order to keep the logic and
3455 to avoid broken caps, if this formats array doesn't contain any
3456 elements, it has to be unref and the function should return NULL.
3458 2020-01-17 14:22:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3460 * gst/vaapi/gstvaapiencode_h264.c:
3461 vaapih264enc: fix log message
3462 Before the log wasn't processed because wrong instance pointer.
3464 2019-06-22 00:44:25 +0800 He Junyan <junyan.he@hotmail.com>
3466 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3467 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3468 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3469 * gst/vaapi/gstvaapiencode_h265.c:
3470 plugin: encode: Add H265 main-444 profile.
3471 Expose the main-444 profile to h265enc caps, when the upstream
3472 chooses to use VUYA as input, we choose main 4:4:4 profile to encode
3475 2020-01-15 19:36:00 +0800 He Junyan <junyan.he@hotmail.com>
3477 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3478 libs: encoder: h265: Consider main-444 profile when encoding.
3479 Add support of main-444 profile for parameter setting and packed header
3482 2020-01-15 23:04:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3484 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3485 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3486 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3487 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3488 * gst/vaapi/gstvaapiencode.c:
3489 vaapiencode: DMABuf only if PRIME is available
3490 Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
3491 memory type is available in the VA surface attributes of codec
3494 2020-01-16 09:14:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
3496 * hooks/pre-commit.hook:
3497 Add hooks/pre-commit.hook
3498 meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
3499 Copied and pasted pre-commit.hook from other gstreamer modules to make
3500 sure gstreamer-vaapi follows the same code style
3502 2019-12-26 16:45:51 +0800 He Junyan <junyan.he@hotmail.com>
3504 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3505 libs: encoder: h265: Set encoder paramters base on entrypoint.
3506 When the tune is NONE, we now can choose entrypoint freely. So the
3507 GST_VAAPI_ENCODER_TUNE macro may not return the correct current
3509 We also delay CTU size calculation after entrypoint has been decided.
3511 2019-12-28 19:18:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3513 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3514 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3515 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3516 * gst-libs/gst/vaapi/gstvaapicontext.c:
3517 * gst-libs/gst/vaapi/gstvaapicontext.h:
3518 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3519 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3520 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3521 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3522 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3523 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3524 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3525 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3526 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3527 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3528 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3529 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3530 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3531 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3532 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3533 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3534 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3535 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3536 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3537 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3538 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3539 * gst-libs/gst/vaapi/meson.build:
3540 * gst/vaapi/gstvaapi.c:
3541 * gst/vaapi/gstvaapiencode.c:
3542 * gst/vaapi/gstvaapiencode.h:
3543 * gst/vaapi/gstvaapiencode_h264_fei.c:
3544 * gst/vaapi/gstvaapiencode_h264_fei.h:
3545 * gst/vaapi/gstvaapifeivideometa.c:
3546 * gst/vaapi/gstvaapifeivideometa.h:
3547 * gst/vaapi/meson.build:
3549 * tests/internal/meson.build:
3550 * tests/internal/test-fei-enc-in.c:
3551 * tests/internal/test-fei-enc-out.c:
3552 Remove all FEI related
3553 FEI encoders are not actively mantained neither tested, and it is
3554 using infrastructure that is changing and FEI is stopping this
3556 Also it is required to rethink how FEI can be used in GStreamer.
3558 2020-01-14 11:17:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3560 * gst/vaapi/gstvaapioverlay.c:
3561 vaapioverlay: ensure sinkpad has current buffer
3562 Use the gst_video_aggregator_pad_has_current_buffer API
3563 to check if the current sinkpad has a queued buffer before
3564 attempting to obtain a input buffer from the base plugin.
3565 If the sinkpad does not have a current buffer, then it is
3566 either not producing them yet (e.g. current time < sinkpad
3567 start time) or it has reached EOS.
3568 Previously, we only handled EOS case.
3570 gst-launch-1.0 videotestsrc num-buffers=100 \
3571 ! vaapipostproc ! vaapioverlay name=overlay \
3572 ! vaapisink videotestsrc timestamp-offset=1000000000 \
3573 num-buffers=100 ! video/x-raw,width=160,height=120 \
3576 2020-01-14 18:57:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3578 * gst/vaapi/gstvaapioverlay.c:
3579 vaapioverlay: unroll the recursive call
3580 Recursive functions are elegant but dangerous since they might
3581 overflow the stack. It is better to turn them into a list tranversal
3582 if possible, as this case.
3584 2020-01-14 18:46:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3586 * gst-libs/gst/vaapi/gstvaapiblend.c:
3587 * gst/vaapi/gstvaapioverlay.c:
3588 vaapioverlay: add minimal documentation
3590 2020-01-14 18:25:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3592 * gst-libs/gst/vaapi/gstvaapiblend.c:
3593 * gst-libs/gst/vaapi/gstvaapiblend.h:
3594 * gst/vaapi/gstvaapioverlay.c:
3595 libs: blend: simplify generator API
3596 Instead of using a parent structure that has to be derived by API
3597 consumers, this change propse a simplification by using the common
3598 pattern of GTK of passing a function pointer and user data which will
3599 be passed as its parameter. That user data contains the state and the
3600 function will be called to update that state.
3602 2020-01-10 10:14:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3604 * gst-libs/gst/vaapi/gstvaapiblend.c:
3605 * gst-libs/gst/vaapi/gstvaapiblend.h:
3606 libs: blend: remove begin/render/end API
3607 This API was risky and is superseded by the surface
3608 generator (process) API.
3611 2020-01-10 10:12:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3613 * gst/vaapi/gstvaapioverlay.c:
3614 vaapioverlay: use blend surface generator API
3617 2020-01-10 09:54:30 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3619 * gst-libs/gst/vaapi/gstvaapiblend.c:
3620 * gst-libs/gst/vaapi/gstvaapiblend.h:
3621 libs: blend: add surface generator API
3622 This new API allows the user to call a single method (process)
3623 which handles the [display] lock/unlock logic internally for
3625 This API supersedes the risky begin, render, end API.
3626 It eliminates the need for the user to call a lock method
3627 (process_begin) before processing the input buffers
3628 (process_render) and calling an unlock method (process_end)
3632 2019-12-23 14:29:08 +0800 He Junyan <junyan.he@hotmail.com>
3634 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3635 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3636 * gst/vaapi/gstvaapiencode.c:
3637 * gst/vaapi/gstvaapiencode.h:
3638 * gst/vaapi/gstvaapiencode_h264.c:
3639 * gst/vaapi/gstvaapiencode_h265.c:
3640 plugin: encode: List all possible profiles to detect input formats.
3641 The current get_profile just return one possible profile for the encode,
3642 which is not enough. For example, if we want to support HEVC 4:4:4
3643 profile, the input of encode should be VYUA rather than NV12 in HEVC
3644 main profile. So the command line:
3645 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3646 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3647 tune=low-power init-qp=30 ! fakesink
3648 can not work because vaapih265enc just report NV12 in sink caps, we need
3649 to specify the profile obviously like:
3650 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3651 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3652 tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
3653 profile=main-444 ! fakesink
3654 The encode should have the ability to choose the profile based on input
3655 format automatically. If the input video format is VUYA, the main-444
3656 profile should be auto choosed.
3657 We modify to let get_allowed_profiles of each encode sub class to return
3658 an array of all supported profiles based on downstream's allowed caps, or
3659 return NULL if no valid profiles specified by downstream.
3660 If no allowed profiles found, all profiles which belong to the current
3661 encoder's codec will be the candidates.
3662 The function gst_vaapi_encoder_get_surface_attributes collects the surface's
3663 attributes for that profile list we just get.
3664 So for this case, both NV12 and VUYA should be returned.
3665 TODO: some codec like VP9, need to implement the get_profile() function.
3667 2020-01-08 15:07:36 +0800 He Junyan <junyan.he@hotmail.com>
3669 * gst/vaapi/gstvaapipluginutil.c:
3670 * gst/vaapi/gstvaapipluginutil.h:
3671 plugin: util: add helper function to detect profiles in caps.
3673 2020-01-08 15:04:18 +0800 He Junyan <junyan.he@hotmail.com>
3675 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3676 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3677 libs: encoder: add a helper function to get all supported profiles
3679 2020-01-13 15:34:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
3681 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3682 libs: decoder: Don't unref null object
3683 ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
3684 gst_vaapi_context_unref: assertion 'context != NULL' failed
3686 2020-01-10 09:26:44 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3688 * gst/vaapi/gstvaapioverlay.c:
3689 plugins: overlay: use proper NULL check on double pointer
3690 Check the address of the variable is not NULL,
3691 not the address of the pointer.
3693 2020-01-08 23:42:21 +0800 He Junyan <junyan.he@hotmail.com>
3695 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3696 libs: codedbuf: delete a useless field.
3697 The context field in GstVaapiCodedBuffer is not inited correctly
3698 and is never used, just delete it.
3700 2019-12-29 17:57:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3702 * gst/vaapi/gstvaapipluginutil.c:
3703 plugins: add iHD driver in whitelist
3705 2020-01-02 21:02:40 +0800 He Junyan <junyan.he@hotmail.com>
3707 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3708 libs: encoder: modify 265 SPS header's profile compatibility flag.
3709 Make the SPS profile compatibility flags more precisely conform to
3712 2020-01-06 19:39:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3714 * tests/check/elements/vaapioverlay.c:
3715 test: vaapioverlay: bail test if not available
3716 vaapioverlay is only registered if the VA driver support the blend
3718 This patch only executes the test if vaapioverlay is available,
3719 otherwise the test is bail out without raising an error.
3721 2020-01-06 14:53:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3723 * tests/check/elements/vaapioverlay.c:
3724 tests: vaapioverlay: force drm backend
3726 2019-12-22 17:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3728 * gst-libs/gst/vaapi/gstvaapiblend.c:
3729 libs: blend: update to new mini-object API
3731 2019-11-19 13:48:22 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3733 * tests/check/elements/vaapioverlay.c:
3734 * tests/check/meson.build:
3735 tests: check: add basic vaapioverlay test
3736 Add test_overlay_position test to verify sink_1 input
3737 is overlayed onto sink_0 input at the appropriate
3740 2019-11-14 12:03:57 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3742 * gst/vaapi/gstvaapi.c:
3743 * gst/vaapi/gstvaapioverlay.c:
3744 * gst/vaapi/gstvaapioverlay.h:
3745 * gst/vaapi/meson.build:
3746 plugins: add vaapioverlay plugin
3747 A plugin similar to the base compositor element but
3748 uses VA-API VPP blend functions to accelerate the
3749 overlay/compositing.
3751 gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
3752 ! tee name=testsrc ! queue \
3753 ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
3754 name=overlay ! vaapisink testsrc. ! queue ! overlay.
3756 2019-11-14 12:02:19 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3758 * gst-libs/gst/vaapi/gstvaapiblend.c:
3759 * gst-libs/gst/vaapi/gstvaapiblend.h:
3760 * gst-libs/gst/vaapi/meson.build:
3761 libs: add a vaapi blend class
3762 Support for the VA-API VPP blend functions.
3764 2019-11-14 11:54:59 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3766 * gst/vaapi/gstvaapipluginbase.c:
3767 * gst/vaapi/gstvaapipluginbase.h:
3768 plugins: base: add GstVideoAggregator subclass support
3770 2020-01-05 19:32:16 +0800 He Junyan <junyan.he@hotmail.com>
3772 * gst-libs/gst/vaapi/gstvaapiimage.c:
3773 libs: image: init all image fields correctly.
3775 2020-01-06 17:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
3777 * gst/vaapi/gstvaapipostproc.c:
3778 doc: fix pipeline typo in vaapipostproc
3780 2020-01-02 21:11:44 +0800 He Junyan <junyan.he@hotmail.com>
3782 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3783 libs: encoder: modify 265 VPS header fields.
3784 vps_base_layer_internal_flag and vps_base_layer_available_flag
3785 have been clearly defined now.
3787 2020-01-01 19:54:13 +0800 He Junyan <junyan.he@hotmail.com>
3789 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
3790 libs: display: fix a resource leak in X11 pixmap format.
3792 2020-01-02 18:00:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3794 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3795 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3796 libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
3798 2019-12-30 14:09:17 +0800 He Junyan <junyan.he@hotmail.com>
3800 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3801 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3802 * gst/vaapi/gstvaapiencode.c:
3803 libs: encoder: get surfaces resolution the same time with formats.
3804 We can get all the information about the video format at one shot
3805 when we create the test context for getting the supported formats.
3806 The current way to get the width and height ranges are inefficient,
3807 since it calls the function gst_vaapi_profile_caps_append_encoder()
3808 and it creates another temporal context to detect the resolution
3810 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3812 2019-12-28 17:42:55 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3814 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3815 libs: encoder: vp9: fix code style
3817 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3819 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3820 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3821 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3822 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3823 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3824 libs: encoder: set entrypoint based on tune automatically
3825 Some profile, such as H265_MAIN_444 on new Intel platform, may only
3826 support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
3828 1. We need to specify the tune mode like `vaapih265enc tune=low-power`
3829 every time when we need to use this kind of profile. Or we can not
3830 create the encoder context successfully.
3831 2. More seriously, we set the entrypoint to a fixed value in
3832 init_context_info() and so the create_test_context_config() can not
3833 create the test context for these profile and can not get the
3834 supported video formats, either.
3835 We now change the entrypoint setting based on the tune option of the
3836 encoder. If no tune property provided, we just choose the first
3837 available entrypoint.
3839 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3841 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3842 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3843 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3844 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3845 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3846 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3847 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3848 libs: encoder: set context info profile by encoder
3849 Instead of init_context_info() setting the passed profile, it is
3850 assumed that it has to be set by each encoder.
3851 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3853 2019-12-27 18:49:02 +0100 He Junyan <junyan.he@hotmail.com>
3855 * gst-libs/gst/vaapi/gstvaapicontext.c:
3856 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3857 libs: context: add invalid entrypoint symbol
3858 The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
3859 zero, which was already used as an invalid value tacitly. This patch
3860 only makes it explicit.
3861 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3863 2019-12-29 01:13:29 +0800 He Junyan <junyan.he@hotmail.com>
3865 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3866 libs: pixmap: Fix a pixmap creation crash.
3867 We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
3868 pixmap creation, which causes crash if we run the internal test case
3870 test-decode --pixmap
3872 2019-12-22 14:35:18 +0800 He Junyan <junyan.he@hotmail.com>
3874 * gst/vaapi/gstvaapiencode.c:
3875 plugin: encode: set allowed_sinkpad_caps to empty.
3876 We now set encode->allowed_sinkpad_caps to NULL if we fail to get
3877 surfaces formats. This causes two problem:
3878 1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
3879 which changes its behavior. It will use encode's sinkpad template
3880 rather than empty caps to do the clip job. So even if we fail to set
3881 allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
3883 2. We should just set the allowed_sinkpad_caps once. The NULL point
3884 make the ensure_allowed_sinkpad_caps function works again and again.
3886 2019-12-22 15:22:57 +0800 He Junyan <junyan.he@hotmail.com>
3888 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3889 libs: encoder: Add NULL pointer check for context when finalize.
3890 Context may be NULL if pipeline fail in early stage, and the
3891 ensure_context will not be called. Need to add a pointer protection
3894 2019-12-20 06:38:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3896 * gst/vaapi/gstvaapipluginbase.c:
3897 plugins: base: do not reset can_dmabuf
3898 Don't reset the can_dmabuf field. This restores the
3899 close/reset logic that existed prior to commit
3900 ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
3902 Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
3903 once during startup, but may need to reset the other private
3904 fields multiple times during negotiation. Thus, can_dmabuf
3905 should be exempt from the resets.
3908 2019-12-06 00:21:12 +0800 He Junyan <junyan.he@hotmail.com>
3910 * gst/vaapi/gstvaapiencode.c:
3911 plugin: encode: Refine encode's sink caps.
3912 The old manner to get the encode's sink caps is not correct.
3913 Such as 264 encode, it gets:
3914 video/x-raw(memory:VASurface),
3915 format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
3916 P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
3917 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3918 video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
3919 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3920 framerate=(fraction)[ 0/1, 2147483647/1 ];
3921 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3922 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3923 where the formats for memory:VASurface and memory:DMABuf are superfluous.
3924 All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
3925 input format for encoder.
3927 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3928 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3929 video/x-raw(memory:VASurface), format=(string){ NV12 },
3930 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3931 framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
3932 format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3933 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3934 as the correct result.
3936 2019-12-20 08:37:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3938 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3939 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3940 libs: display: code clean up
3942 2019-12-12 21:34:21 +0800 He Junyan <junyan.he@hotmail.com>
3944 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3945 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3946 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3947 libs: display: refine the profile/entrypoint map.
3948 The old way make the one config for each profile/entrypoint pair,
3949 which is not very convenient for description the relationship
3950 between them. One profile may contain more than one entrypoints
3951 to within it, so a set like data structure should be more suitable.
3953 2019-12-19 14:19:10 +0100 He Junyan <junyan.he@hotmail.com>
3955 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3956 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3957 * gst-libs/gst/vaapi/gstvaapicontext.c:
3958 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3959 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3960 * gst-libs/gst/vaapi/gstvaapifilter.c:
3961 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3962 * gst-libs/gst/vaapi/gstvaapisurface.c:
3963 * gst-libs/gst/vaapi/gstvaapisurface.h:
3964 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3965 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
3966 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3967 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3968 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3969 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
3970 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
3971 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3972 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3973 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3974 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3975 * gst/vaapi/gstvaapipluginbase.c:
3976 * gst/vaapi/gstvaapivideomemory.c:
3977 * gst/vaapi/gstvaapivideometa.c:
3978 * gst/vaapi/gstvaapivideometa_texture.c:
3979 * tests/internal/image.c:
3980 * tests/internal/test-filter.c:
3981 * tests/internal/test-surfaces.c:
3982 * tests/internal/test-windows.c:
3983 libs: surface: port to GstMiniObject
3984 GstVaapiMiniObject and GstVaapiObject are deprecated.
3985 This is the first step to remove them by porting GstVaapiSurface as
3986 a GstMiniBuffer descendant.
3987 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3989 2019-12-19 18:26:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3991 * gst-libs/gst/vaapi/gstvaapisurface.c:
3992 libs: surface: rename create function names to init
3993 There are several internal functions with 'create' name, but they
3994 don't create any new structure, but rather it initializes that
3995 structure. Renaming those function to reflect better their purpose.
3997 2019-12-19 14:17:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3999 * gst-libs/gst/vaapi/gstvaapisurface.c:
4000 libs: surface: use macro accessors
4002 2019-12-19 13:46:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4004 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
4005 libs: surface: fix internal documentation
4007 2019-12-18 18:00:49 +0100 He Junyan <junyan.he@hotmail.com>
4009 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
4010 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
4011 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
4012 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
4013 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4014 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4015 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4016 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4017 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4018 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4019 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4020 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4021 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
4022 * gst-libs/gst/vaapi/gstvaapivideopool.c:
4023 libs: codedbuffer: port to GstMiniObject
4024 GstVaapiMiniObject and GstVaapiObject are deprecated.
4025 This is the first step to remove them by porting GstVaapiCodedBuffer
4026 as a GstMiniBuffer descendant.
4027 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4029 2019-12-18 12:57:01 +0100 He Junyan <junyan.he@hotmail.com>
4031 * gst-libs/gst/vaapi/gstvaapiimage.c:
4032 * gst-libs/gst/vaapi/gstvaapiimage.h:
4033 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
4034 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
4035 * gst-libs/gst/vaapi/gstvaapisurface.c:
4036 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
4037 * gst-libs/gst/vaapi/gstvaapivideopool.c:
4038 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4039 * gst/vaapi/gstvaapipluginbase.c:
4040 * gst/vaapi/gstvaapivideomemory.c:
4041 * gst/vaapi/gstvaapivideometa.c:
4042 * tests/internal/image.c:
4043 * tests/internal/simple-encoder.c:
4044 * tests/internal/test-fei-enc-in.c:
4045 * tests/internal/test-filter.c:
4046 * tests/internal/test-windows.c:
4047 libs: image: port to GstMiniObject base class
4048 GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
4049 first step to remove them, by porting GstVaapiImage as a
4051 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4053 2019-09-24 01:01:22 +0800 He Junyan <junyan.he@hotmail.com>
4055 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
4056 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
4057 * gst-libs/gst/vaapi/gstvaapicontext.c:
4058 * gst-libs/gst/vaapi/gstvaapicontext.h:
4059 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4060 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4061 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4062 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4063 libs: context: port to a plain C structure
4064 The GstVaapiMiniObject is obsolete and we need to replace it. This
4065 patch turns GstVaapiContext into a plain C structure with its own
4066 reference counting mechanism.
4067 Also this patch removes unused overlays attributes.
4068 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4070 2019-12-18 00:40:58 +0800 He Junyan <junyan.he@hotmail.com>
4072 * gst/vaapi/gstvaapiencode_h264.c:
4073 * gst/vaapi/gstvaapiencode_h264_fei.c:
4074 * gst/vaapi/gstvaapiencode_h265.c:
4075 * gst/vaapi/gstvaapiencode_jpeg.c:
4076 * gst/vaapi/gstvaapiencode_mpeg2.c:
4077 * gst/vaapi/gstvaapiencode_vp8.c:
4078 * gst/vaapi/gstvaapiencode_vp9.c:
4079 plugin: encode: change the dmabuf caps to all supported formats.
4080 The encode's dmabuf caps definition is obsolete, it can support
4081 more formats now. Re-define it to include all supported formats
4082 in video format map.
4084 2019-12-17 17:09:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4086 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4087 libs: encoder: h264fei: remove unnecessary check
4088 Issue detected by Coverity
4089 `info_to_pack.h264_slice_header` is always allocated by
4090 gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
4091 in doesn't make much sense. But it requires to be free on the error
4093 There may be a null pointer dereference, or else the comparison
4094 against null is unnecessary.
4095 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
4096 pointer comparison already dereference the pointer earlier
4098 2019-12-17 17:05:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4100 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4101 libs: encoder: h264fei: remove unnecessary assert
4102 Issue detected by Coverity
4103 An unsigned value can never be negative, so this test will always
4104 evaluate the same way.
4105 In add_slice_headers: An unsigned value can never be less than 0
4107 2019-12-17 16:57:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4109 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4110 libs: encoder: h264fei: remove unnecessary check
4111 Issue detected by Coverity
4112 There may be a null pointer dereference, or else the comparison
4113 against null is unnecessary.
4114 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
4115 pointer comparison already dereference the pointer earlier
4117 2019-12-17 16:49:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4119 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4120 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4121 libs: encoder: h264fei: don't free memory on stack
4122 Issue detected by Coverity
4123 `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
4124 declared in the stack, but it is free in
4125 gst_vaapi_feienc_h264_encode() as if declared on the heap.
4126 This patch initializes the structure and removes the free.
4127 A non-heap pointer is placed on the free list, likely causing a crash
4129 In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
4130 expression, which can never be heap allocated.
4132 2019-12-17 13:22:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4134 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4135 libs: encoder: h264fei: fix surface leak
4136 Issue detected by Coverity
4137 If the FEI mode is not handled the created resources should be
4138 released and return and error code.
4139 The system resource will not be reclaimed and reused, reducing the
4140 future availability of the resource.
4141 In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
4144 2019-12-17 13:09:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4146 * tests/check/elements/vaapipostproc.c:
4147 tests: check return calling of gst_navigation_event_parse.*
4148 This issue was detected by Coverity.
4149 If the function returns an error value, the error value may be mistaken
4151 In cb_mouse_event: Value returned from a function is not checked for
4152 errors before being used
4154 2019-12-16 16:25:02 +0800 He Junyan <junyan.he@hotmail.com>
4156 * gst/vaapi/gstvaapiencode_h264.c:
4157 * gst/vaapi/gstvaapiencode_h264_fei.c:
4158 * gst/vaapi/gstvaapiencode_h265.c:
4159 * gst/vaapi/gstvaapiencode_jpeg.c:
4160 * gst/vaapi/gstvaapiencode_mpeg2.c:
4161 * gst/vaapi/gstvaapiencode_vp8.c:
4162 * gst/vaapi/gstvaapiencode_vp9.c:
4163 plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
4164 Then encode plugin just supports raw formats declared in vaapi video
4165 format map. This modification makes the template caps more precise.
4167 2019-11-14 11:13:51 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
4169 * gst/vaapi/gstvaapipluginbase.c:
4170 plugins: base: add GstPad param to internal helper functions
4171 The base plugin public API function implementations determine
4172 which pad should be passed to the internal helper functions.
4173 Currently, only the base plugin static sinkpad and static
4174 srcpad are supported/used. However, this change enables future
4175 API functions to be added that can accept a pad (i.e. request pad)
4176 from an element subclass (e.g. a GstVideoAggregator subclass).
4178 2019-11-12 12:21:52 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
4180 * gst/vaapi/gstvaapipluginbase.c:
4181 * gst/vaapi/gstvaapipluginbase.h:
4182 plugins: base: manage pad-specific data in a single struct
4183 Define a struct (GstVaapiPadPrivate) to encapsulate the
4184 pad-specific data (i.e. buffer pool, allocator, info,
4186 Add an interface to retrieve the data struct for a given
4188 Finally, update the base plugin to use the data struct
4189 throughout the implementation.
4190 This will enable us to easily extend the base plugin in the
4191 future to allow for N-to-1 pad subclasses (e.g. overlay/
4194 2019-10-29 15:13:44 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4196 * gst/vaapi/gstvaapidecode.c:
4197 * gst/vaapi/gstvaapiencode.c:
4198 * gst/vaapi/gstvaapipluginbase.h:
4199 * gst/vaapi/gstvaapipostproc.c:
4200 plugins: use plugin base macros to access pad specific data
4201 Don't access base struct fields directly since the underlying
4202 definition can change. Instead, use the accessor macros.
4204 2019-12-03 00:52:45 +0800 He Junyan <junyan.he@hotmail.com>
4206 * gst/vaapi/gstvaapidecode.c:
4207 libs: decoder: Modify decode src's template raw formats
4208 We do not need to maintain a standalone list of decoder's output
4209 template for raw formats and that is easy to make mistake(for
4210 example, the AYVU is wrong in that list, should be VUYA).
4211 Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
4214 2019-12-11 14:11:13 +0800 He Junyan <junyan.he@hotmail.com>
4216 * gst/vaapi/gstvaapipostproc.c:
4217 libs: postproc: Modify src/sink template raw formats
4218 We need to provide more precise template caps for postproc's src
4219 and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
4220 available which are really superfluous.
4222 2019-12-10 18:40:42 -0300 Thibault Saunier <tsaunier@igalia.com>
4224 * tests/check/elements/vaapipostproc.c:
4225 Do not mix declaration and code
4227 2019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4229 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4230 libs: decoder: h265: skip all pictures prior the first I-frame
4231 Don't try to decode until the first I-frame is received within the
4232 currently active sequence. i965 H265 decoder don't show any artifact
4236 2019-11-27 01:44:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4238 * gst-libs/gst/vaapi/video-format.c:
4239 libs: video-format: remove dead code
4241 2019-10-31 00:59:34 +0800 He Junyan <junyan.he@hotmail.com>
4243 * gst-libs/gst/vaapi/video-format.c:
4244 * gst-libs/gst/vaapi/video-format.h:
4245 * gst/vaapi/gstvaapipluginutil.h:
4246 libs: video-format: add GST_VAAPI_FORMATS_ALL
4247 GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
4248 as a caps template string, and make them available in caps with
4249 memory:VASurface feature.
4252 2019-11-06 22:37:12 +0800 He Junyan <junyan.he@hotmail.com>
4254 * gst-libs/gst/vaapi/video-format.c:
4255 * tests/internal/test-windows.c:
4256 libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
4257 We only support VUYA format in gst vaapi now, need to correct
4260 2019-10-09 15:13:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4262 * tests/check/elements/vaapipostproc.c:
4263 tests: check: vaapipostproc test_orientation_mouse_events
4264 Test that vaapipostproc properly translates mouse events
4265 when using video-direction (orientation).
4267 2019-10-09 10:11:54 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4269 * tests/check/elements/vaapipostproc.c:
4270 * tests/check/meson.build:
4271 tests: check: vaapipostproc test_crop_mouse_events
4272 Test that vaapipostproc properly translates mouse events
4275 2019-10-08 12:20:26 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4278 * meson_options.txt:
4279 * tests/check/elements/vaapipostproc.c:
4280 * tests/check/meson.build:
4281 * tests/meson.build:
4282 tests: check: initial unit test support
4283 Add minimal unit test toolchain files and a simple
4284 vaapipostproc unit test.
4286 2019-10-08 12:19:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4289 * tests/examples/meson.build:
4290 * tests/examples/test-roi.c:
4291 * tests/examples/test-vaapicontext.c:
4292 * tests/examples/test-vaapipostproc.c:
4293 * tests/examples/test-vaapisink.c:
4294 * tests/internal/codec.c:
4295 * tests/internal/codec.h:
4296 * tests/internal/decoder.c:
4297 * tests/internal/decoder.h:
4298 * tests/internal/image.c:
4299 * tests/internal/image.h:
4300 * tests/internal/meson.build:
4301 * tests/internal/output.c:
4302 * tests/internal/output.h:
4303 * tests/internal/simple-decoder.c:
4304 * tests/internal/simple-encoder.c:
4305 * tests/internal/test-decode.c:
4306 * tests/internal/test-decode.h:
4307 * tests/internal/test-display.c:
4308 * tests/internal/test-fei-enc-in.c:
4309 * tests/internal/test-fei-enc-out.c:
4310 * tests/internal/test-filter.c:
4311 * tests/internal/test-h264.c:
4312 * tests/internal/test-h264.h:
4313 * tests/internal/test-jpeg.c:
4314 * tests/internal/test-jpeg.h:
4315 * tests/internal/test-mpeg2.c:
4316 * tests/internal/test-mpeg2.h:
4317 * tests/internal/test-mpeg4.c:
4318 * tests/internal/test-mpeg4.h:
4319 * tests/internal/test-subpicture-data.c:
4320 * tests/internal/test-subpicture-data.h:
4321 * tests/internal/test-subpicture.c:
4322 * tests/internal/test-surfaces.c:
4323 * tests/internal/test-textures.c:
4324 * tests/internal/test-vc1.c:
4325 * tests/internal/test-vc1.h:
4326 * tests/internal/test-windows.c:
4327 * tests/internal/y4mreader.c:
4328 * tests/internal/y4mreader.h:
4329 * tests/meson.build:
4330 tests: move examples and tests to subfolders
4331 This makes way for adding unit (check) tests.
4333 2019-10-14 01:01:27 +0100 Tim-Philipp Müller <tim@centricular.com>
4341 * gst-libs/Makefile.am:
4342 * gst-libs/gst/Makefile.am:
4343 * gst-libs/gst/vaapi/Makefile.am:
4345 * gst/vaapi/Makefile.am:
4347 * tests/Makefile.am:
4348 * tests/elements/Makefile.am:
4349 Remove autotools build
4351 2019-10-10 15:26:36 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4353 * gst/vaapi/gstvaapipostproc.c:
4354 vaapipostproc: fix off-by-one coord translations
4355 When translating navigation x,y coordinates for
4356 video-direction, it is necessary to subtract 1
4357 when using the video dimensions to compute the
4358 new x,y coordinates. That is, a 100x200 image
4359 should map coordinates in x=[0-99],y=[0-199].
4360 This issue was found with unit tests provided
4363 2019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4365 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4366 libs: window: x11: Avoid usage of deprecated API
4368 2019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4371 build: halt meson configuration if no renderer API
4372 We should halt meson configuration if there is no render API
4373 installed (either DRM, Wayland or X11).
4374 That behavior was already in autotools but missed in meson. This patch
4378 2019-10-09 12:12:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4380 * gst-libs/gst/vaapi/gstvaapifilter.c:
4381 libs: filter: fix default orientation regression
4382 Fix regression introduced in f232f87f7082
4384 2019-10-07 11:53:23 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4386 * gst-libs/gst/vaapi/gstvaapifilter.c:
4387 libs: filter: use OP_DATA_DEFAULT_VALUE macro
4389 2019-10-07 11:39:19 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4391 * gst-libs/gst/vaapi/gstvaapifilter.c:
4392 libs: filter: use macro for returning op default value
4393 The code is essentially the same for getting all op default
4394 values. Thus, use a macro to help minimize code duplication
4395 and [hopefully] encourage using the same mechanism for all
4398 2019-10-07 09:56:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4400 * gst-libs/gst/vaapi/gstvaapifilter.c:
4401 libs: filter: query param spec for default scale method
4404 2019-10-07 09:44:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4406 * gst-libs/gst/vaapi/gstvaapifilter.c:
4407 libs: filter: query param spec for default skin-tone values
4410 2019-10-02 12:54:52 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4412 * gst-libs/gst/vaapi/gstvaapifilter.c:
4413 libs: filter: query param spec for default video-direction
4416 2019-10-07 10:23:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4421 2019-09-05 16:40:52 +0800 Yan Wang <yan.wang@linux.intel.com>
4423 * gst-libs/gst/vaapi/gstvaapifilter.c:
4424 * gst-libs/gst/vaapi/gstvaapifilter.h:
4425 * gst/vaapi/gstvaapipostproc.c:
4426 * gst/vaapi/gstvaapipostproc.h:
4427 vaapipostproc: Use level value for skin-tone-enhancement filter.
4428 Currently the parameter of skin-tone-enhancement filter is forced
4429 to zero. In fact it could be set different value by the user.
4430 So create a new property named as "skin-tone-enhancement-level"
4431 for accepting the used defined parameter value.
4432 At the same time, skin-tone-enhancement is marked as deprecated.
4433 When skin-tone-enhancement-level is set, skin-tone-enhancement
4436 2019-09-21 13:39:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4438 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4439 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4440 libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
4441 g_return_val_fail() documentations says:
4442 If expr evaluates to FALSE, the current function should be
4443 considered to have undefined behaviour (a programmer error).
4444 The only correct solution to such an error is to change the
4445 module that is calling the current function, so that it avoids
4446 this incorrect call.
4447 So it was missused in a couple parts of the H264 and H265 internal
4448 decoders. This patch changes that to plain conditionals.
4449 Also, it was included a couple code-style fixes.
4451 2019-09-23 19:52:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4453 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4454 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4455 * tests/simple-encoder.c:
4456 * tests/test-fei-enc-in.c:
4457 libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
4458 Since GstVaapiEncoder is a descendant of of GstObject, there is no
4459 need to keep a custom ref()/unref() methods. This patch deletes them.
4461 2019-09-24 01:03:02 +0800 He Junyan <junyan.he@hotmail.com>
4463 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4464 libs: encoder: correct encoder's ref/unref function.
4465 GstVaapiEncoder now is a standard gstobject and need to use
4466 gst_object_ref/unref functions.
4468 2019-09-19 12:09:20 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4470 * gst/vaapi/gstvaapiencode_h264_fei.c:
4471 gst: encode: h264_fei: remove useless comparison
4472 The expression "len >= 0" is always true since "len"
4473 is an unsigned type. And it is clear that the writers
4474 intention was not to write "len > 0" since we handle
4475 len == 0 in the ensuing "if (len < 3)" conditional
4478 2019-09-19 11:17:24 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4480 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4481 libs: encoder: h264_fei: fix potential overflow before widen
4482 Found by static analysis. encoder->mb_width * encoder->mb_height
4483 is evaluated using 32-bit arithmetic before widen. Thus, cast
4484 at least one of these to guint64 to avoid overflow.
4486 2019-09-19 10:56:13 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4488 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4489 libs: encoder: h264_fei: remove dead error condition
4490 Found by static analysis. The feipak is always null
4491 when we reach the error target.
4493 2019-09-19 10:49:11 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4495 * gst-libs/gst/vaapi/gstvaapiutils.c:
4496 libs: utils: add missing break in switch
4498 2019-09-11 11:56:35 +0800 He Junyan <junyan.he@hotmail.com>
4500 * gst-libs/gst/vaapi/video-format.c:
4501 libs: video-format: Make all YUV format available
4502 The YUV formats have no ambiguity for drivers, so we can add them all.
4503 Some old driver(i965) does not implement full get/put image functions
4504 but can use derive image funtions for the YUV format. It does not
4505 report that kind of formats correctly in image query, but will derive
4506 that YUV format image from surface. The dynamic mapping of YUV format
4507 will block that manner.
4508 Adding more YUV format mapping has no side effect. So considering the
4509 legacy driver conformance, we add all YUV formats mapping statically
4510 and dynamic mapping RBG formats
4514 2019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com>
4516 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4517 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
4518 egl: Fix racyness in display thread creation
4519 Multiple different scenarios could break the display thread creation and
4520 end up blocking waiting for thread o be created. Fix them all by
4521 correctly waiting for a new boolean to become valid.
4523 2019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com>
4525 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4526 egl: don't advertise a wrapped EGLContext as actually wrapped
4527 It's not actually wrapped as we create a new EGLContext from the passed
4528 in EGLContext. As a result, the created EGLContext was never destroyed.
4530 2019-09-16 23:28:31 +0800 He Junyan <junyan.he@hotmail.com>
4532 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4533 libs: h264decoder: do not return error for unhandled NAL unit.
4534 Some streams have error data introducing unknown NAL type. There are
4535 also kinds of NAL types we do not want to handle. The old manner will
4536 set a decoder error when encounter this, which cause a latent crash bug.
4537 The decoder may successfully decode the picture and insert it into DPB.
4538 But there are error NAL units after the AU which cause the post unit error
4539 and make that frame dropped. The later output of the picture still want
4540 to ref that frame and crash.
4541 No need to set decoder error when can not recognize or handle the NAL
4542 unit, just skip it and continue.
4545 2019-09-11 14:32:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4547 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4548 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4549 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4550 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4551 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4552 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4553 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4554 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4555 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4556 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4557 * gst/vaapi/gstvaapiencode.c:
4558 libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
4559 This patch makes use of GST_PARAM_USER_SHIFT to define the internal
4560 param in encoders to decide which parameters to expose. Thus
4561 gstreamer-vaapi will not interfere with any change in GStreamer in the
4563 Also, the internal symbol was change to
4564 GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
4566 2019-09-09 18:06:51 +0800 He Junyan <junyan.he@hotmail.com>
4568 * gst-libs/gst/vaapi/gstvaapiimage.c:
4569 * gst-libs/gst/vaapi/video-format.c:
4570 libs: Add BGR10A2_LE support for color space conversion.
4573 2019-08-23 14:41:06 +0800 He Junyan <junyan.he@hotmail.com>
4575 * gst-libs/gst/vaapi/gstvaapisurface.c:
4576 libs: surface: add pointer check for surface_new_from_formats.
4578 gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
4579 vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink
4580 will crash on i965 driver because of no pointer check.
4581 We now generate the video format map between GST format and VA format
4582 dynamically based on the image format returned by vaQueryImageFormats.
4583 i965 driver does to report image format of 444P and Y800 forcc, while
4584 the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
4585 not recognize these format and pass a NULL pointer to
4586 gst_vaapi_surface_new_from_formats.
4587 We need to add a pointer check here and let the fallback logic handle
4588 this case correctly.
4589 Other drivers work well.
4591 2019-09-07 13:23:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4593 * gst-libs/gst/vaapi/gstvaapiutils.c:
4594 libs: utils: guard the VAEntrypointFEI symbol
4595 VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
4597 2019-09-05 14:48:22 +0800 He Junyan <junyan.he@hotmail.com>
4599 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4600 * gst-libs/gst/vaapi/video-format.c:
4601 * gst-libs/gst/vaapi/video-format.h:
4602 libs: video-format: Refine the video format mapping.
4603 Improve the mapping between va format and gst format. The new map
4604 will be generated dynamically, based on the query result of image
4605 format in VA driver. Also consider the ambiguity of RGB color
4608 2019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com>
4610 * gst/vaapi/gstvaapipluginutil.c:
4611 pluginutil: Remove Mesa from drivers white list
4612 The Mesa Gallium driver is poorly tested currently, leading to bad user
4613 experience for AMD users. The driver can be added back to the white list at
4614 runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
4616 2019-07-08 14:18:00 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4618 * gst/vaapi/gstvaapipostproc.c:
4619 * gst/vaapi/gstvaapipostproc.h:
4620 * gst/vaapi/gstvaapipostprocutil.c:
4621 vaapipostproc: allow cropping via properties
4622 Add crop-left, crop-right, crop-top and crop-bottom
4623 properties to vaapipostproc.
4625 2019-08-30 17:31:45 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4627 * gst/vaapi/gstvaapipostproc.c:
4628 vaapipostproc: rotate outbuf and crop meta if forwarding
4629 When forwarding crop meta to downstream, the output
4630 buffer and crop meta need to be rotated, too.
4632 for i in 90r 180 90l vert horiz ul-lr ur-ll
4634 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4635 ! videocrop top=100 bottom=30 left=40 right=20 \
4636 ! vaapipostproc video-direction=$i \
4638 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4639 ! videocrop top=100 bottom=30 left=40 right=20 \
4640 ! vaapipostproc video-direction=$i \
4641 ! identity drop-allocation=true \
4645 2019-08-30 14:14:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4647 * gst/vaapi/gstvaapipostproc.c:
4648 vaapipostproc: fix output buffer WxH for crop meta forwarding
4649 Adding crop meta x,y to w,h only compensates for left,top
4650 cropping. But we also need to compensate for right,bottom
4652 The video meta contains the appropriate w,h (uncropped)
4653 values, so use it instead.
4655 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4656 ! videocrop top=50 bottom=30 left=40 right=20 \
4657 ! vaapipostproc ! vaapisink & \
4658 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4659 ! videocrop top=50 bottom=30 left=40 right=20 \
4660 ! vaapipostproc ! identity drop-allocation=1 \
4663 2019-09-04 10:52:51 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4665 * gst/vaapi/gstvaapipostproc.c:
4666 vaapipostproc: handle size and direction together in src events
4667 Mapping a pointer event needs to consider both size and
4668 video-direction operations together, not just one or the other.
4669 This fixes an issue where x,y were not being mapped correctly
4670 for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
4671 the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set. Thus,
4672 the first condition in the pointer event handling was entered and
4673 x,y scale factor were incorrectly computed due to srcpad WxH
4675 This also fixes all cases where both video-direction and scaling
4676 are enabled at the same time.
4677 Test that all pointer events map appropriately:
4680 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4681 ! vaapipostproc video-direction=${i} width=300 \
4683 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4684 ! vaapipostproc video-direction=${i} width=300 height=200 \
4686 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4687 ! vaapipostproc video-direction=${i} height=200 \
4689 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4690 ! vaapipostproc video-direction=${i} \
4694 2019-08-20 14:22:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4696 * gst/vaapi/gstvaapipostproc.c:
4697 * gst/vaapi/gstvaapipostproc.h:
4698 vaapipostproc: advertise crop meta is handled
4699 Advertise to upstream that vaapipostproc can handle
4701 When used in conjunction with videocrop plugin, the
4702 videocrop plugin will only do in-place transform on the
4703 crop meta when vaapipostproc advertises the ability to
4704 handle it. This allows vaapipostproc to apply the crop
4705 meta on the output buffer using vaapi acceleration.
4706 Without this advertisement, the videocrop plugin will
4707 crop the output buffer directly via software methods,
4708 which is not what we desire.
4709 vaapipostproc will not apply the crop meta if downstream
4710 advertises crop meta handling; vaapipostproc will just
4711 forward the crop meta to downstream. If crop meta is
4712 not advertised by downstream, then vaapipostproc will
4713 apply the crop meta.
4715 1. vaapipostproc will forward crop meta to vaapisink
4716 gst-launch-1.0 videotestsrc \
4717 ! videocrop left=10 \
4720 2. vaapipostproc will do the cropping
4721 gst-launch-1.0 videotestsrc \
4722 ! videocrop left=10 \
4724 ! identity drop-allocation=1 \
4727 2019-08-29 18:44:36 +0800 He Junyan <junyan.he@hotmail.com>
4729 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4730 libs: encoder: clean two virtual func in encoder class
4731 set_property and get_default_properties functions are no longer
4732 needed for encoder class.
4734 2019-08-29 18:43:30 +0800 He Junyan <junyan.he@hotmail.com>
4736 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4737 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4738 libs: encoder: delete old set_property and property enum feienc264
4740 2019-08-29 18:39:27 +0800 He Junyan <junyan.he@hotmail.com>
4742 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4743 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4744 libs: encoder: delete old set_property and property enum in h264 fei
4746 2019-08-29 18:37:58 +0800 He Junyan <junyan.he@hotmail.com>
4748 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4749 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4750 libs: encoder: delete old set_property and property enum in vp9
4752 2019-08-29 18:36:51 +0800 He Junyan <junyan.he@hotmail.com>
4754 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4755 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4756 libs: encoder: delete old set_property and property enum in vp8
4758 2019-08-29 18:35:59 +0800 He Junyan <junyan.he@hotmail.com>
4760 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4761 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4762 libs: encoder: delete old set_property and property enum in mpeg2
4764 2019-08-29 18:34:57 +0800 He Junyan <junyan.he@hotmail.com>
4766 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4767 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4768 libs: encoder: delete old set_property and property enum in jpeg
4770 2019-08-29 18:31:56 +0800 He Junyan <junyan.he@hotmail.com>
4772 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4773 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4774 libs: encoder: delete old set_property and property enum in h265
4776 2019-08-29 18:30:07 +0800 He Junyan <junyan.he@hotmail.com>
4778 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4779 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4780 libs: encoder: delete old set_property and property enum in h264
4782 2019-08-29 18:17:42 +0800 He Junyan <junyan.he@hotmail.com>
4784 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4785 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4786 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4787 libs: encoder: delete EncoderPropInfo related functions
4789 2019-08-29 16:13:19 +0800 He Junyan <junyan.he@hotmail.com>
4791 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4792 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4793 libs: encoder: delete encoder_set_property
4794 We no longer need this obsolete set_property function now after
4795 switch to standard gobject's property manner.
4796 Also delete the old encoder's property enum in the header file.
4798 2019-08-29 15:59:43 +0800 He Junyan <junyan.he@hotmail.com>
4800 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4801 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4802 libs: encoder: delete properties_get_default for base class
4804 2019-08-29 15:52:04 +0800 He Junyan <junyan.he@hotmail.com>
4806 * gst/vaapi/gstvaapiencode.c:
4807 * gst/vaapi/gstvaapiencode.h:
4808 plugin: encode: delete useless init_properties.
4809 Also delete the get_properties function in encode class. We now
4810 use g_object_class_list_properties to get all properties for
4811 internal encoder class.
4813 2019-08-29 15:43:45 +0800 He Junyan <junyan.he@hotmail.com>
4815 * gst/vaapi/gstvaapiencode.c:
4816 * gst/vaapi/gstvaapiencode.h:
4817 plugin: encode: delete set/get_property func in encode class
4818 Use standard gobject's property functions to replace the old way.
4820 2019-08-29 15:31:16 +0800 He Junyan <junyan.he@hotmail.com>
4822 * gst/vaapi/gstvaapiencode.c:
4823 * gst/vaapi/gstvaapiencode.h:
4824 plugin: encode: delete gst_vaapiencode_init_properties
4825 No need to init the properties got by get_default_properties func
4826 now. The properties are inited correctly in internal encoder class.
4828 2019-08-29 15:19:10 +0800 He Junyan <junyan.he@hotmail.com>
4830 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4831 libs: encoder: delete 3 useless init macro
4833 2019-08-29 15:16:26 +0800 He Junyan <junyan.he@hotmail.com>
4835 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4836 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4837 libs: encoder: delete get_default_properties of feienc
4839 2019-08-29 15:14:14 +0800 He Junyan <junyan.he@hotmail.com>
4841 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4842 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4843 libs: encoder: delete get_default_properties of H264 Fei
4845 2019-08-29 15:07:17 +0800 He Junyan <junyan.he@hotmail.com>
4847 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4848 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4849 libs: encoder: delete get_default_properties of VP9
4851 2019-08-29 15:06:25 +0800 He Junyan <junyan.he@hotmail.com>
4853 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4854 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4855 libs: encoder: delete get_default_properties of VP8
4857 2019-08-29 15:03:52 +0800 He Junyan <junyan.he@hotmail.com>
4859 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4860 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4861 libs: encoder: delete get_default_properties of MPEG2
4863 2019-08-29 15:03:19 +0800 He Junyan <junyan.he@hotmail.com>
4865 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4866 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4867 libs: encoder: delete get_default_properties of JPEG
4869 2019-08-30 19:15:38 +0800 He Junyan <junyan.he@hotmail.com>
4871 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4872 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4873 libs: encoder: delete get_default_properties of H265
4875 2019-08-29 14:59:12 +0800 He Junyan <junyan.he@hotmail.com>
4877 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4878 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4879 libs: encoder: delete get_default_properties of H264
4881 2019-08-29 14:53:59 +0800 He Junyan <junyan.he@hotmail.com>
4883 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4884 libs: encoder: delete the useless constructed func for encoder.
4886 2019-08-26 23:16:33 +0800 He Junyan <junyan.he@hotmail.com>
4888 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4889 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4890 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4891 libs: encoder: implement get_view_ids for h264 encoder.
4893 2019-08-20 23:56:33 +0800 He Junyan <junyan.he@hotmail.com>
4895 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4896 * gst/vaapi/gstvaapiencode.c:
4897 * gst/vaapi/gstvaapiencode_h264.c:
4898 * gst/vaapi/gstvaapiencode_h264_fei.c:
4899 * gst/vaapi/gstvaapiencode_h265.c:
4900 * gst/vaapi/gstvaapiencode_jpeg.c:
4901 * gst/vaapi/gstvaapiencode_mpeg2.c:
4902 * gst/vaapi/gstvaapiencode_vp8.c:
4903 * gst/vaapi/gstvaapiencode_vp9.c:
4904 gst: encode: enable new type of property mechanism.
4906 2019-08-20 22:16:35 +0800 He Junyan <junyan.he@hotmail.com>
4908 * gst/vaapi/gstvaapiencode.c:
4909 * gst/vaapi/gstvaapiencode.h:
4910 gst: encode: add property help functions for encoder properties.
4911 The encoder is a true gstobject now and all the properties are using
4912 gobject's properties mechanism. Add help functions to handle the properties
4913 between encode and encoder class.
4914 The basic idea is mapping the same property between encoder and encode. All
4915 the encoder's properties will have the same name, the same type in encode.
4916 The set/get property function just forward the property setting/getting to
4917 the encoder using the same property name and value. Because the encoder is
4918 created on needed, we need to cache the property setting in encode.
4920 2019-08-30 18:39:32 +0800 He Junyan <junyan.he@hotmail.com>
4922 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4923 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4924 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4925 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4926 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4927 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4928 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4929 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4930 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4931 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4932 libs: encoder: add flags to all encoder properties.
4933 G_PARAM_CONSTRUCT make all properties init correctly, we do not
4934 need to init the properties manually.
4935 G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
4936 flag, means need to expose the property to according encode class.
4938 2019-08-20 17:00:39 +0800 He Junyan <junyan.he@hotmail.com>
4940 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4941 libs: encoder: Add properties for h264 encoder fei.
4942 Install properties for h264 encoder fei class. Also set the new get/set
4943 property functions for gobject class. Still use the old properties
4944 way now and this new feature will be enabled later.
4946 2019-08-20 15:58:30 +0800 He Junyan <junyan.he@hotmail.com>
4948 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4949 libs: encoder: Add properties for h264 fei encoder.
4950 Install properties for h264 fei encoder class. Also set the new get/set
4951 property functions for gobject class. Still use the old properties
4952 way now and this new feature will be enabled later.
4954 2019-08-20 15:29:27 +0800 He Junyan <junyan.he@hotmail.com>
4956 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4957 libs: encoder: Add properties for vp9 encoder.
4958 Install properties for vp9 encoder class. Also set the new get/set
4959 property functions for gobject class. Still use the old properties
4960 way now and this new feature will be enabled later.
4962 2019-08-20 15:01:02 +0800 He Junyan <junyan.he@hotmail.com>
4964 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4965 libs: encoder: Add properties for vp8 encoder.
4966 Install properties for vp8 encoder class. Also set the new get/set
4967 property functions for gobject class. Still use the old properties
4968 way now and this new feature will be enabled later.
4970 2019-08-20 14:31:58 +0800 He Junyan <junyan.he@hotmail.com>
4972 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4973 libs: encoder: Add properties for mpeg2 encoder.
4974 Install properties for mpeg2 encoder class. Also set the new get/set
4975 property functions for gobject class. Still use the old properties
4976 way now and this new feature will be enabled later.
4978 2019-08-20 14:53:06 +0800 He Junyan <junyan.he@hotmail.com>
4980 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4981 libs: encoder: Add properties for jpeg encoder.
4982 Install properties for jpeg encoder class. Also set the new get/set
4983 property functions for gobject class. Still use the old properties
4984 way now and this new feature will be enabled later.
4986 2019-08-20 14:12:36 +0800 He Junyan <junyan.he@hotmail.com>
4988 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4989 libs: encoder: Add properties for h265 encoder.
4990 Install properties for h265 encoder class. Also set the new get/set
4991 property functions for gobject class. Still use the old properties
4992 way now and this new feature will be enabled later.
4994 2019-08-20 01:33:40 +0800 He Junyan <junyan.he@hotmail.com>
4996 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4997 libs: encoder: Add properties for h264 encoder.
4998 Install properties for h264 encoder class. Also set the new get/set
4999 property functions for gobject class. Still use the old properties
5000 way now and this new feature will be enabled later.
5002 2019-08-19 15:38:09 +0800 He Junyan <junyan.he@hotmail.com>
5004 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5005 libs: encoder: add properties and prop help functions
5006 Add all common properties to encoder base class. rate-control and
5007 tune are moved to sub class.
5009 2019-08-29 14:38:49 +0800 He Junyan <junyan.he@hotmail.com>
5011 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5012 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5013 libs: encoder: delete useless gst_vaapi_encoder_new func.
5014 GstVaapiEncoder is a abstract gobject and never be created directly.
5016 2019-07-27 00:55:53 +0800 He Junyan <junyan.he@hotmail.com>
5018 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5019 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5020 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5021 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5022 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5023 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
5024 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5025 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5026 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
5027 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
5028 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5029 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
5030 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5031 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5032 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
5033 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5034 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
5035 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5036 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
5037 lib: encoder: gstobjectfy all vaapi encoders.
5038 Replace all gstvaapiobject in vaapi encoders with standard gstobject.
5039 Let the gstobject common logic to handle all the init and finalize
5040 works. But the property install/set/get still use the old way, need
5041 to be improved later.
5043 2019-08-29 12:11:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5045 * gst/vaapi/gstvaapipostproc.c:
5046 vaapipostproc: check for filter before appending caps
5047 While ensuring the allowed sink pad caps, the filter attributes set
5048 the frame size restriction, but it is not ensured, at that moment,
5049 that the filter is already instantiaded.
5050 In order to silence the glib logs, this patch add only calls
5051 gst_vaapi_filter_append_caps() if the filter is instantiated.
5053 2019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com>
5055 * gst/vaapi/gstvaapidecodebin.c:
5056 Classify vaapidecodebin as a hardware decoder
5058 2019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com>
5060 * gst/vaapi/gstvaapipostproc.c:
5061 libs: postproc: fix a memory leak point.
5062 filter_ops and filter_formats should already have valid value when
5063 the function gst_vaapipostproc_ensure_filter_caps re-enter
5065 2019-08-27 01:30:36 +0800 He Junyan <junyan.he@hotmail.com>
5067 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5068 libs: util: Fix a memory leak in config_surface_attributes_get
5070 2019-08-22 14:33:54 +0800 Wangfei <fei.w.wang@intel.com>
5072 * gst/vaapi/gstvaapidecode.c:
5073 vaapidecode: support transform ROI meta
5074 This will benefit the use case like:
5075 src ---> encode ---> decode ---> circle ROI ---> sink
5080 2019-08-23 19:10:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5082 * gst/vaapi/gstvaapidecodedoc.c:
5083 docstrings: port ulinks to markdown links
5085 2019-08-20 17:05:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5087 * gst-libs/gst/vaapi/Makefile.am:
5088 * gst-libs/gst/vaapi/gstvaapicontext.c:
5089 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
5090 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
5091 * gst-libs/gst/vaapi/meson.build:
5092 libs: remove context's overlay
5093 The context overlay was an optimization to apply a video composition
5094 to all the surfaces bound to a context.
5095 But since commit 18031dc6 this optimization was disabled, so it is
5096 better just get rid of it.
5098 2019-08-20 16:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5100 * gst-libs/gst/vaapi/gstvaapicontext.c:
5101 * gst-libs/gst/vaapi/gstvaapisurface.c:
5102 * gst-libs/gst/vaapi/gstvaapisurface.h:
5103 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
5104 * gst/vaapi/gstvaapipluginutil.c:
5105 * tests/test-subpicture.c:
5106 libs: remove surface's parent context
5107 In commit 18031dc6 surface's parent context is not assigned because of
5108 circular references. Since then (2013), there's has no issue with
5109 subpictures attached to a context, the current only users of this API.
5110 This patch cleans up all of related code with the unused surface's
5113 2019-08-18 13:53:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5115 * gst/vaapi/gstvaapidecode.c:
5116 vaapidecode: guard if no structure is available in caps
5118 2019-08-18 13:53:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5120 * gst-libs/gst/vaapi/gstvaapifilter.c:
5121 * gst-libs/gst/vaapi/gstvaapifilter.h:
5122 * gst/vaapi/gstvaapipostproc.c:
5123 vaapipostproc: append frame size restrictions in caps
5125 2019-08-18 13:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5127 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
5128 libs: profilecaps: refactor common code
5130 2019-08-16 19:35:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5132 * gst/vaapi/gstvaapiencode.c:
5133 vaapiencode: set frame size restrictions in caps
5136 2019-08-16 19:28:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5138 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5139 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5140 * gst/vaapi/gstvaapiencode.c:
5141 vaapiencode: enhance how the profile is defined
5142 This code doesn't define the profile used by the internal encoder, but
5143 it used to "predict" which is going to be used and to get the caps
5145 Before the profile was predicted by checking the donwstream caps, but
5146 sometimes they are not defined, setting an unknown profile. In order
5147 to enhances this situation, the encoder asks to internal encoder if it
5148 has one. If so, it is used.
5149 To ask the internal encoder's profile a new accessor function was
5150 added: gst_vaapi_encoder_get_profile()
5152 2019-08-16 19:26:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5154 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
5155 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
5156 libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
5157 Previously it was just a boilerplate. Now it is real implementation.
5159 2019-08-16 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5161 * gst-libs/gst/vaapi/gstvaapiutils.c:
5162 libs: utils: treat va_rt_format as bitwise flag
5163 The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
5164 is a bitwise flag with *all* the supported chroma types.
5165 Previously it was assumed that the return value was a single value,
5166 thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
5167 simple case. But it is wrong.
5168 This patch changes the case block with a sequence of ifs testing the
5169 bitwise. For now we assume a "priority" list in the testing sequence.
5171 2019-08-16 18:07:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5173 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5174 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5175 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
5176 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5177 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5178 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5179 * gst-libs/gst/vaapi/gstvaapiprofile.c:
5180 * gst-libs/gst/vaapi/gstvaapiprofile.h:
5181 * tests/test-display.c:
5182 libs: profile: add gst_vaapi_profile_get_va_name()
5183 gst_vaapi_profile_get_name() returns a proper name for
5184 GstCaps. Nonetheless, there are many profiles which don't have a name
5185 representation for that realm.
5186 gst_vaapi_profile_get_va_name() returns the name of the profile
5187 according to its VAProfile name.
5188 This new funtion is used in the encoder error message.
5190 2019-08-05 19:47:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5192 * gst-libs/gst/vaapi/Makefile.am:
5193 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
5194 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
5195 * gst-libs/gst/vaapi/meson.build:
5196 * gst/vaapi/gstvaapidecode.c:
5197 libs: profilecaps: move caps config into a new file
5198 Implement all the appending of frame size restrictions in caps, for
5199 encoders and decoders, in a new source file.
5201 2019-08-05 19:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5203 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5204 libs: decoder: ref the caps as property
5206 2019-08-02 16:56:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5208 * gst-libs/gst/vaapi/gstvaapicontext.c:
5209 * gst-libs/gst/vaapi/gstvaapicontext.h:
5210 libs: context: add gst_vaapi_context_get_surface_attributes()
5211 This function copies the surface attributes from the context's object
5214 2019-08-02 12:46:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5216 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
5217 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
5218 * gst-libs/gst/vaapi/gstvaapiutils.c:
5219 * gst-libs/gst/vaapi/gstvaapiutils.h:
5220 libs: move memory types conversions to gstvaapiutils
5221 And add more supported memory types by current VA.
5223 2019-08-01 19:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5225 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5226 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
5227 libs: utils: remove unused function gst_vaapi_get_surface_formats()
5229 2019-08-01 19:46:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5231 * gst-libs/gst/vaapi/gstvaapicontext.c:
5232 * gst-libs/gst/vaapi/gstvaapicontext.h:
5233 * gst-libs/gst/vaapi/gstvaapifilter.c:
5234 libs: context, filter: use new surface attributes API
5236 2019-08-01 19:13:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5238 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5239 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
5240 libs: utils: add gst_vaapi_config_surface_attributes_get()
5241 To extract the surface restrictions per config using a new structure:
5242 GstVaapiConfigSurfaceAttributes
5244 2019-07-31 13:08:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5246 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5247 Split the surface attribute retrieval
5249 2019-07-15 21:51:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5251 * gst/vaapi/gstvaapipostproc.c:
5252 vaapipostproc: handle navigation downstream event
5253 When navigation events contains coordiantes those have to be mapped
5254 to the new size and/or orientation.
5256 2019-07-15 21:23:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5258 * tests/elements/test-vaapisink.c:
5259 test-vaapisink: also use vaapipostproc to change orientation
5261 2019-07-15 21:27:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5263 * gst-libs/gst/vaapi/gstvaapifilter.c:
5264 * gst-libs/gst/vaapi/gstvaapifilter.h:
5265 * gst/vaapi/gstvaapipostproc.c:
5266 * gst/vaapi/gstvaapipostproc.h:
5267 * gst/vaapi/gstvaapipostprocutil.c:
5268 vaapipostproc: handle image-orientation upstream event
5269 Now that vaapipostproc can possible handle video-direction, it
5270 should also handle the image-orientation event from upstream if
5271 video-direction property is set to auto.
5273 2019-07-26 22:09:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5275 * gst/vaapi/gstvaapipostproc.c:
5276 vaapipostproc: add missing locks when adding flags
5278 2019-07-26 22:05:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5280 * gst/vaapi/gstvaapipostproc.c:
5281 vaapipostproc: update filter before fixate caps
5282 It is requiered to know if postproc is capable to change the video
5283 direction before fixating the source caps.
5284 In order to do it, it'ss required to know if there's a functional VPP,
5285 but that's checked at create() vmethod, which occurs after caps
5287 This patch checks for a functional VPP at fixate caps and, if so,
5288 checks for the enabled filtes and later do the caps fixations.
5290 2019-07-26 19:46:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5292 * gst-libs/gst/vaapi/gstvaapifilter.c:
5293 * gst-libs/gst/vaapi/gstvaapivalue.c:
5294 * gst-libs/gst/vaapi/gstvaapivalue.h:
5295 * gst/vaapi/gstvaapipostproc.c:
5296 vaapipostproc: element warning if video direction is unsupported
5297 If the video direction is unsupported by the driver, an element
5298 warning is posted in the bus to notify the application.
5299 gst_vaapi_enum_type_get_nick() was added in the library thus it can
5300 be used elsewhere. It retrives the nick from an enum gtype.
5302 2019-07-26 19:09:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5304 * gst-libs/gst/vaapi/gstvaapifilter.c:
5305 libs: filter: check mirror and rotation caps only once
5306 This patch locks the display before querying the pipeline caps and
5307 stores the mirror and rotation capabilities, thus they are not queried
5308 every time the video direction is set.
5310 2019-08-16 19:51:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5312 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5313 libs: encoder: vp9: set VP9_0 profile as default
5314 Commit 0afc8131 introduced a regression and only NV12 format were
5315 admitted, failing in any other valid color format.
5316 This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
5318 2019-08-16 13:25:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5320 * gst-libs/gst/vaapi/gstvaapifilter.c:
5321 libs: filter: fail if first color balance value is invalid
5323 2019-08-06 19:24:08 +0800 Yan Wang <yan.wang@linux.intel.com>
5325 * gst-libs/gst/vaapi/gstvaapifilter.c:
5326 * gst-libs/gst/vaapi/gstvaapiutils.c:
5327 * gst-libs/gst/vaapi/gstvaapiutils.h:
5328 libs: filter: set all color balance values
5329 When set multiple settings of color balance like hue, saturation,
5330 brightness and contrast for vaapipostproc, they should be set as
5331 parameters of color balance filter, at the same color balance
5333 Otherwise, multiple color balance filter calling will cause
5334 previous setting get reset by the last calling with default value.
5336 Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
5338 2019-08-16 11:02:08 +0800 Wangfei <fei.w.wang@intel.com>
5340 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5341 libs: h265dec: remove limitation of get iq matrix
5342 According hevc spec, scaling_list_data is not related
5343 to chroma_format_idc.
5345 2019-05-30 23:52:51 +0800 He Junyan <junyan.he@hotmail.com>
5347 * gst-libs/gst/vaapi/gstvaapivideopool.c:
5348 libs: videopool: fix undocumented behavior and counting
5349 gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
5350 because it locks twice the same mutex.
5351 Also, n had different meanings in the current code: as an increase
5352 value and as a new total of allocated surfaces.
5353 This patche removes the undocumented behavoir (usually a deadlock) and
5354 fixes the meaning of n as the new total of allocated surfaces.
5355 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5357 2019-07-17 11:56:45 +0800 He Junyan <junyan.he@hotmail.com>
5359 * gst-libs/gst/vaapi/gstvaapiutils.c:
5360 libs: utils: Add missing entries for string_of_VAEntrypoint.
5362 2019-07-18 22:01:01 +0800 He Junyan <junyan.he@hotmail.com>
5364 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5365 libs: encoder: Consider vp9 profiles based on input format.
5366 Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
5369 2019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5371 * gst/vaapi/gstvaapivideomemory.c:
5372 vaapivideomemory: demote error message to info
5373 The main reason to demote the message's level is because it is not an
5374 error, it's a possible output of the trial and there's a code path
5376 Secondly, it's very annoying when using gallium driver for radeon.
5378 2019-07-18 13:32:46 +0800 Wangfei <fei.w.wang@intel.com>
5380 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5381 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5382 * gst-libs/gst/vaapi/gstvaapitypes.h:
5383 * gst-libs/gst/vaapi/gstvaapiutils.c:
5384 * gst-libs/gst/vaapi/gstvaapivalue.c:
5385 libs: encoder: h264: support ICQ/QVBR bitrate control mode
5386 ICQ is Intelligent Constant Quality. It will use the initial QP
5387 vaule of icq-quality-factor to adjust QP at MB level intelligently
5388 to improve subjective quality.
5389 QVBR is Quality defined VBR. It will use qvbr-quality-factor to
5390 adjust QP for each MB to get enough quality picture without waste
5393 2019-08-05 10:51:24 +0800 Wangfei <fei.w.wang@intel.com>
5395 * gst-libs/gst/vaapi/gstvaapitypes.h:
5396 libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
5397 The value return from GST_VAAPI_RATECONTROL_MASK will be used by
5398 GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
5399 deal with unsigned int. Otherwise there may be an error of out of
5400 range of integer if we define few more rate-control mode.
5402 2019-06-07 09:54:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5404 * gst/vaapi/gstvaapidecodebin.c:
5405 vaapidecodebin: set queue's max size buffers to 1
5406 Otherwise the queue will swallow all the available decoder's surfaces
5407 reaching a dead-lock.
5408 This setting might impact the bin's peformance, but it's a trade-off.
5410 2019-06-07 09:53:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5412 * gst/vaapi/gstvaapidecodebin.c:
5413 vaapidecodebin: set properties default values
5415 2019-05-31 13:12:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5417 * gst/vaapi/gstvaapidecode.c:
5418 vaapidecode: don't error if can't push buffers downtream
5419 When the code path goes to push buffers downstream when no surface
5420 available in decoder context, and it fails the code bails out with a
5422 That behavior is wrong, since it shouldn't be fatal. The use case is
5423 when the video stream is disabled.
5424 This patch just ignores the errors in this situation and demotes the
5425 level of a log message.
5427 2019-05-18 13:24:35 +0800 Wangfei <fei.w.wang@intel.com>
5429 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5430 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5431 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5432 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
5433 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5434 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5435 libs: encoder: h264,h265: add new property "max-qp"
5436 Add new property "max-qp" to allow set the maximum quantisation
5439 2019-05-23 10:18:52 -0400 Wangfei <fei.w.wang@intel.com>
5441 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5442 libs: encoder: vp9: add low power mode encode
5443 By now, this feature only support by media-driver on Ice Lake
5444 platform, more information you can reference:
5445 https://github.com/intel/media-driver
5447 2019-07-15 15:33:07 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5449 * gst/vaapi/gstvaapipostprocutil.c:
5450 vaapipostproc: update PAR when rotating
5451 When rotating, swap pixel-aspect-ratio during
5455 2019-07-01 15:26:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5457 * gst-libs/gst/vaapi/gstvaapifilter.c:
5458 * gst-libs/gst/vaapi/gstvaapiutils.c:
5459 * gst-libs/gst/vaapi/gstvaapiutils.h:
5460 * gst/vaapi/gstvaapipostprocutil.c:
5461 vaapipostproc: add rotation support
5462 Adds vpp rotation support to vaapipostproc. Uses
5463 property video-direction. Default is identity (no
5467 2019-05-22 10:47:30 -0400 Wangfei <fei.w.wang@intel.com>
5469 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5470 libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
5471 Intel media-driver requires enablement of diff_cu_qp_delta_depth when
5472 cu_qp_delta_enabled_flag enabled.
5475 2019-07-01 17:02:33 +0800 Wangfei <fei.w.wang@intel.com>
5477 * gst-libs/gst/vaapi/gstvaapiutils.c:
5478 libs: encoder: Add MB ratecontrol mode to get its string
5480 2019-07-01 16:52:00 +0800 Wangfei <fei.w.wang@intel.com>
5482 * gst-libs/gst/vaapi/gstvaapiutils.c:
5483 libs: encoder: refine guard of bitrate control mode
5484 Remove useless guard of all bitrate control mode's guard except MB
5485 which is define in VA-API version 0.39.1.
5487 2019-06-29 00:08:40 +1000 Jan Schmidt <jan@centricular.com>
5489 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5490 h264: Update for parse_vui_params parameter removal.
5491 Update calls to the h264 parser lib for removal of the
5492 parse_vui_params parameter.
5494 2019-06-24 16:26:56 -0400 Wang Zhanjun <zhanjunx.wang@intel.com>
5496 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5497 libs: dec: vp9: do not use display size as decoded size
5498 If display size is smaller than current frame size, then the crop size
5499 will be set as display size, which either crashes the pipeline or the
5500 output MD5 does not match. Rather it should use the actual decoded size.
5501 This patch removes the cropping set. For rendering we can use aspect
5502 ratio to set display size.
5504 Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
5505 Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
5507 2019-06-28 16:32:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5512 2019-06-25 19:11:12 +0800 He Junyan <junyan.he@hotmail.com>
5514 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5515 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5516 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
5517 libs: dec: h265: Consider chroma_bit_depth to choose chrome type
5518 For some main-10 stream, sometime the luma is 8 bits while chrome is more
5519 than 8 bits, which cause using the wrong NV12 surface as the render target
5523 2019-06-25 10:31:20 +0800 Wangfei <fei.w.wang@intel.com>
5525 * gst/vaapi/gstvaapidecode.c:
5526 vaapidecode: set initial decode format according surface chroma type
5527 For surfaces with different chroma type, it is prefer to initialize
5528 a format which chroma type should be same with surface chroma type
5529 instead of using fixed NV12.
5531 2019-05-30 09:48:51 -0400 Wangfei <fei.w.wang@intel.com>
5533 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5534 * gst-libs/gst/vaapi/gstvaapiimage.c:
5535 * gst-libs/gst/vaapi/video-format.c:
5536 * gst/vaapi/gstvaapidecode.c:
5537 * gst/vaapi/gstvaapipluginutil.h:
5538 libs: decoder: jpeg: add support 400/411/422/444 chroma type
5539 When create vaapi surface, it is better to use the chroma type get
5540 from jpeg file instead of using fixed 420 format. And the correct
5541 chroma type can be determined by horizontal_factor/vertical_factor
5542 flags that get from jpegparse.
5544 2019-06-22 00:05:24 +0800 He Junyan <junyan.he@hotmail.com>
5546 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5547 libs: dec: h265: Fix profile_idc mapping.
5548 The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
5549 wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
5550 happened to be the correct value.
5551 We only support Annex A profile_idc (1-4).
5553 2019-06-10 20:46:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5555 * gst/vaapi/gstvaapipluginbase.c:
5556 plugins: remove last negotiated video info if caps are same
5557 If the allocation caps and negotiated caps are the same,
5558 then ensure any previously negotiated video info is also
5559 removed. This can occur when multi-resolution video
5560 decoding returns to it's original resolution.
5563 2019-06-10 20:39:28 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5565 * gst/vaapi/gstvaapivideomemory.c:
5566 vaapivideomemory: allow negotiated info to be removed
5567 Allow NULL negotiated_vinfo to be passed into
5568 gst_allocator_set_vaapi_negotiated_video_info to allow
5569 any previously set info to be removed.
5571 2019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com>
5573 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5574 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5575 libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
5576 When input frame's formate changes, vp{8,9} encoders don't reset their frame
5577 counter, hence the newly created frame could become a P-frame, leading to some
5578 major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
5579 prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
5580 GstVaapiEncoderVP9 implementations.
5582 2019-05-31 12:30:03 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5584 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5585 libs: encoder: increase bitrate prop max value
5586 There are many profile levels that can support
5587 more than 102400 kbps. Thus, increase the max
5588 allowed bitrate property value from 102400 kbps
5589 to 2048000 kbps (same as msdk encoder plugins).
5591 2019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com>
5593 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5594 libs: mpeg2 encoder: No packed header for SPS and PPS
5595 Dislable passing down packed PPS and PPS to driver if driver does
5599 2019-05-31 23:10:33 +0200 Niels De Graef <niels.degraef@barco.com>
5604 meson: Bump minimal GLib version to 2.44
5605 This means we can use some newer features and get rid of some
5606 boilerplate code using the G_DECLARE_* macros.
5607 As discussed on IRC, 2.44 is old enough by now to start depending on it.
5609 2019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5611 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5612 libs: dec: vp9: clear parser pointer after release
5613 Fix an use-after-release of the parser pointer in VP9 decoder.
5615 2019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru>
5617 * gst/vaapi/gstvaapiencode.c:
5618 vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
5619 This fixes a deadlock in gst_vaapiencode_change_state, which was due to
5620 srcpad's chain function was locked waiting for available buffers. Since the
5621 coded buffers in codedbuf_queue become available after sinkpad consume the
5622 encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
5623 are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
5624 available buffers and holds the stream_lock of the srcpad.
5626 2019-05-29 23:08:22 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5628 * gst-libs/gst/vaapi/gstvaapitypes.h:
5629 * gst/vaapi/gstvaapidecodebin.c:
5630 * gst/vaapi/gstvaapidecodedoc.c:
5631 * gst/vaapi/gstvaapiencode_h264.c:
5632 * gst/vaapi/gstvaapiencode_h264_fei.c:
5633 * gst/vaapi/gstvaapiencode_h265.c:
5634 * gst/vaapi/gstvaapiencode_jpeg.c:
5635 * gst/vaapi/gstvaapiencode_mpeg2.c:
5636 * gst/vaapi/gstvaapiencode_vp8.c:
5637 * gst/vaapi/gstvaapiencode_vp9.c:
5638 * gst/vaapi/gstvaapipostproc.c:
5639 * gst/vaapi/gstvaapisink.c:
5640 doc: remove xml from comments
5642 2019-05-13 16:39:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5644 * gst-libs/gst/vaapi/gstvaapifilter.c:
5645 * gst-libs/gst/vaapi/gstvaapifilter.h:
5646 * gst-libs/gst/vaapi/gstvaapiutils.c:
5647 * gst-libs/gst/vaapi/gstvaapiutils.h:
5648 * gst/vaapi/gstvaapipostproc.c:
5649 * gst/vaapi/gstvaapipostproc.h:
5650 vaapipostproc: add mirror support
5651 Adds vpp mirroring support to vaapipostproc. Use
5652 property video-direction. Valid values are identity,
5653 horiz or vert. Default is identity (no mirror).
5655 v2: Use GstVideoOrientationMethod enum
5656 v3: Don't warn for VA_MIRROR_NONE.
5657 Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
5658 v4: Query VAAPI caps when setting mirror value
5659 instead of during per-frame processing.
5660 v5: Return TRUE in warning cases when setting mirror value.
5662 2019-05-29 01:35:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5664 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
5665 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5666 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5667 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5668 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5669 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5670 * gst/vaapi/gstvaapidecodebin.c:
5671 * gst/vaapi/gstvaapisink.c:
5672 doc: fix some incorrect gtk-doc links
5674 2019-05-16 09:22:42 -0400 Thibault Saunier <tsaunier@igalia.com>
5676 * docs/gst_plugins_cache.json:
5677 docs: Update plugin cache
5678 Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
5680 2019-05-16 16:46:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5682 * gst-libs/gst/vaapi/gstvaapisurface.h:
5683 libs: surface: fix documentation format
5685 2019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com>
5687 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5688 libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
5689 When enable low delay B, the reference list 1 will be same with
5690 reference list 0, so need reset the num_ref_idx_l1_active_minus1
5691 to num_ref_idx_l0_active_minus1.
5694 2019-05-13 19:05:43 -0400 Thibault Saunier <tsaunier@igalia.com>
5697 meson: Fix call to wrong function
5699 2018-10-22 11:48:29 +0200 Thibault Saunier <tsaunier@igalia.com>
5704 * docs/gst_plugins_cache.json:
5707 * docs/plugins/Makefile.am:
5708 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5709 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5710 * docs/plugins/gstreamer-vaapi-plugins.types:
5711 * docs/plugins/inspect/plugin-vaapi.xml:
5712 * docs/plugins/running.xml:
5714 * docs/version.entities.in:
5715 * gst/vaapi/meson.build:
5717 * meson_options.txt:
5718 docs: Port to hotdoc
5720 2019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com>
5722 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5723 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5724 libs: encoder: not call ensure_num_slices inside g_assert
5725 g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
5726 defined. The function inside the g_assert will take no effect and
5727 we will fail to set the correct slice number.
5729 2019-04-29 09:52:39 +0800 Wangfei <fei.w.wang@intel.com>
5731 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5732 libs: h265: dec: Add extension flags setting.
5733 Use VAPictureParameterBufferHEVCExtension&
5734 VASliceParameterBufferHEVCExtension to pass extension setting from
5735 some extension profile clips which may include these information.
5736 The hevc extension setting only supported after libva release 2.2.0
5739 2019-05-01 12:56:55 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5741 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5742 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5743 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5744 libs: encoder: add target-percentage property
5745 Allow users to set the target-percentage for
5746 variable rate controls. The default value is
5747 70 (as hard-coded prior).
5748 v2: minimum allowed value changed from 0 to 1
5749 v3: target-percentage unchanged if CBR used
5752 2019-05-09 00:09:21 +0800 He Junyan <junyan.he@hotmail.com>
5754 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5755 libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
5757 2019-05-08 23:39:20 +0800 He Junyan <junyan.he@hotmail.com>
5759 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5760 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5761 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5762 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
5763 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5764 libs: encoder: Enable trellis quantization method.
5765 The advanced trellis algorithm is supported in VA driver. We add
5766 its support as a property named "trellis" of encoder.
5767 It only works for H264 now, should be more in future.
5769 2019-05-07 11:03:51 +0800 Wangfei <fei.w.wang@intel.com>
5771 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5772 libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
5773 According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
5774 type, so we need to add subsampling_x&subsampling_y to fix it.
5775 Here is the relationship between chroma type and profile and
5776 subsampling_x&subsampling_y according to vp9 spec:
5777 ------------------------------------------
5778 Profile | Bit depth | Chroma subsampling |
5779 ------------------------------------------
5781 ------------------------------------------
5782 1 | 8 | 422,440,444 |
5783 ------------------------------------------
5785 ------------------------------------------
5786 3 | 10, 12 | 422,440,444 |
5787 ------------------------------------------
5788 -----------------------------------------------
5789 Subsampling_x | Subsampling_y | Chroma format |
5790 -----------------------------------------------
5792 -----------------------------------------------
5794 -----------------------------------------------
5796 -----------------------------------------------
5798 -----------------------------------------------
5800 2019-04-16 18:33:54 +0800 He Junyan <junyan.he@hotmail.com>
5802 * gst-libs/gst/vaapi/gstvaapiimage.c:
5803 * gst-libs/gst/vaapi/video-format.c:
5804 libs: Add packed 24 RGB format support.
5805 Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
5806 packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
5807 type. This kind of surface will just be created by new API with fourcc
5808 and no old style chrome based creation is available.
5811 2019-03-15 14:29:41 +0800 Wangfei <fei.w.wang@intel.com>
5813 * gst/vaapi/gstvaapiencode.c:
5814 * gst/vaapi/gstvaapiencode_h264.c:
5815 * gst/vaapi/gstvaapiencode_h264_fei.c:
5816 * gst/vaapi/gstvaapiencode_h265.c:
5817 * gst/vaapi/gstvaapiencode_jpeg.c:
5818 * gst/vaapi/gstvaapiencode_mpeg2.c:
5819 * gst/vaapi/gstvaapiencode_vp8.c:
5820 * gst/vaapi/gstvaapiencode_vp9.c:
5821 vaapiencode: handle DMABuf caps feature in sink pad
5822 Add DMABuff caps features in all encoders' sink pad.
5824 2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5826 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5827 libs: encoder: continue if roi meta is NULL
5829 If the function actually returns a null value, a null pointer
5830 dereference will occur.
5831 In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
5832 function which returns null is dereferenced without checking
5834 2019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com>
5836 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5837 lib: decoder: vp9: Set chroma_type by VP9 bit_depth
5838 The decoder's surface chroma type should depend on the bit depth
5839 of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
5840 10 bits surface as the decoder result.
5843 2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5845 * gst/vaapi/gstvaapipostprocutil.c:
5846 vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
5847 https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
5848 with commit 3e992d8a
5849 Since gst_vaapi_find_preferred_caps_feature() returns a color format
5850 from caps negotiation, different from the default one (NV12), the
5851 postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
5852 feature is negotiated, no color transformation shall be done.
5853 Nonetheless, with commit 3e992d8a the requested format changes
5854 firstly, because there's no video sink yet, so ANY caps are
5855 negotiated; but later, when there's a video sink and a caps
5856 renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
5857 format conversion still ongoing. It is required to reset that
5859 This patch force default color format when GL_TEXTURE_UPLOAD is
5860 selected as preferred, thus avoiding the color conversion.
5863 2019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com>
5865 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5866 libs: surface: fix double free when dmabuf export fails
5867 Happens if vaAcquireBufferHandle fails.
5869 2019-04-29 20:10:39 +0800 He Junyan <junyan.he@hotmail.com>
5871 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5872 libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
5874 2019-04-19 10:43:35 +0100 Tim-Philipp Müller <tim@centricular.com>
5878 * docs/plugins/inspect/plugin-vaapi.xml:
5882 === release 1.16.0 ===
5884 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5890 * gstreamer-vaapi.doap:
5894 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5896 * docs/plugins/inspect/plugin-vaapi.xml:
5899 2019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5901 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5902 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5903 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5904 libs: encoder: h264,h265: guard VA version for max_qp property
5905 This patch fixes a regression from commit 5b1fe9c6.
5906 max_qp, in rate control configuration, appeared in libva release
5907 2.1 (API 1.1), thus it is required to guard the VA API version.
5910 2019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com>
5912 * gst-libs/gst/vaapi/gstvaapiimage.c:
5913 * gst-libs/gst/vaapi/video-format.c:
5914 libs: Add RGB565 image format support.
5916 2019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5919 build: configure: delay USE_GTK conditional until check libva-x11
5920 libva-x11 is used for X11 applications, so it is required to build
5921 any GTK application.
5922 Later, when Wayland test is added, we should change this.
5924 2019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5927 build: configure: disable GLX if libva-x11 is not found
5929 2019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com>
5931 * gst-libs/gst/vaapi/gstvaapiutils.c:
5932 libs: utils: avoid macro evaluation when stringify
5933 string_of_va_chroma_format() gets a wrong string format description.
5934 For example, the YUV420_10BPP get a string of 0x00000100 as output.
5935 It's because VA_RT_FORMAT_xxx values are macro definitions. And
5936 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
5938 To avoid the macro evaluation, it is changed to show only the color
5939 format without VA_RT_FORMAT_ prefix.
5941 2019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5943 * gst-libs/gst/vaapi/gstvaapiutils.c:
5944 libs: utils: use glib's macros
5945 Don't reinvent the wheel.
5947 2019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com>
5949 * gst/vaapi/gstvaapipluginutil.c:
5950 plugins: find the preferred format from right caps.
5951 When the downstream has any caps, then raw video feature will
5952 be used. At this situation, the preferred format should be chose
5953 from caps which contains "vide/x-raw" feature instead of from
5954 the fist allowed caps.
5957 2019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5959 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5960 libs: encoder: h265: fill tier in va seq param buf
5961 Now that tier is calculated in commit 58e74f9440fe (!68),
5962 ensure we fill in the general_tier_flag in the
5963 VAEncSequenceParameterBufferHEVC.
5965 === release 1.15.90 ===
5967 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5973 * gstreamer-vaapi.doap:
5977 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5979 * docs/plugins/inspect/plugin-vaapi.xml:
5982 2019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com>
5984 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5985 libs: encoder: h265: Recognize the correct level and tier.
5986 The current manner can not recognize the correct level and always
5987 set the tier to main. Need to add frame rate check to recognize
5988 levels such as 4.1, 6.2, etc. We also add a logic to check main
5989 and high tier based on bitrate.
5992 2019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com>
5994 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5995 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5996 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5997 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
5998 media-driver currently fails to set a correct value of max_qp when
5999 min_qp is different to zero, in CBR and VBR mode, generating full
6000 quality frames, thus unexpected huge output.
6001 This patch sets max_qp to an arbitrary value to avoid this output
6005 2019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6007 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6008 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6009 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6010 libs: encoder: h264,h265: initial and minimal QP can be zero
6011 Currently the minimal value for either min_qp and init_qp are 1,
6012 but VA documentation specifiy that zero is also valid and means
6013 to ignore the quantiser.
6014 The default value is not changed though to avoid behaivor changes
6017 2019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
6019 * tests/elements/meson.build:
6020 meson: build test-vaapicontext when using X11
6021 x11_dep and libva_x11_dep are optional and meson ignores these
6022 dependencies even if they are added into the dependency list.
6023 This fixes the error below when libva-x11 is not avaiblabe:
6024 cc -Itests/elements/tests@elements@@test-vaapicontext@exe
6025 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
6026 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
6027 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
6028 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
6029 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
6030 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
6031 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
6032 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
6033 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
6034 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
6035 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
6036 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
6037 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
6038 -DHAVE_CONFIG_H -MD -MQ
6039 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
6041 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
6043 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
6044 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
6045 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
6046 error: va/va_x11.h: No such file or directory
6047 #include <va/va_x11.h>
6049 2019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com>
6051 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6052 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6053 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
6054 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
6055 GValueArray is deprecated. Use GstValueArray instead.
6057 2019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com>
6059 * gst/vaapi/gstvaapipluginutil.c:
6060 vaapipluginutil: Fix #endif for USE_X11
6062 2019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6064 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6065 libs: encoder: h264: simplify the view-ids setting
6067 2019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com>
6069 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6070 libs: encoder: h264: Use gst_param_spec_array for view-ids
6071 GValueArray is deprecated. Use GstValueArray instead.
6072 gst_param_spec_array can be deserialized from command line using:
6073 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
6074 While the g_param_spec_value_array() can not, and always get
6075 error: "gst_value_deserialize_g_value_array: unimplemented"
6076 Also fixed an out-of-range bug.
6078 2019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com>
6080 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
6081 libs: Change the parameter setting order when encode picture.
6082 The order in gst_vaapi_enc_picture_encode when encoding one
6083 picture is not very correct. The misc parameters are set before
6084 the picture parameters. Some of the misc parameters such as
6085 ROI may change the current picture parameters. But the later
6086 setting of picture parameter will re-init all picture related
6087 parameters and clear the previous setting. The right order
6088 should be picture parameter first and then misc parameters.
6089 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6091 2019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com>
6093 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6094 libs: decoder: jpeg: support dynamic resolution change decode.
6095 Add size_changed flag to watch out resolution. if change, reset
6096 jpeg decoder's context.
6098 2019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com>
6100 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6101 libs: encoder: h265: add low power mode encode.
6102 By now, this feature only support by media-driver on Ice Lake
6103 platform, more information you can reference:
6104 https://github.com/intel/media-driver
6106 2019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com>
6108 * gst/vaapi/gstvaapiencode.c:
6109 vaapiencode: gobject's prop_id differ from vaapi encoder
6110 The vaapi internal encoder's property id are negative, thus they are
6111 different from GObject's property ids.
6112 gst_vaapi_encoder_set_property() should map to the internal encoder
6113 property id, assigned in gst_vaapiencode_default_set_property().
6115 2019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com>
6118 meson: disable compiler warnings for unused vars and args if gst debug system is disabled
6120 2019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com>
6123 meson: use new 'python' module instead of deprecated 'python3' one
6125 2019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com>
6128 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
6129 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
6131 2019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
6136 * docs/plugins/inspect/plugin-vaapi.xml:
6140 2019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com>
6142 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
6143 libs: Fix a typo in comments.
6144 Fix a typo in function description of
6145 gst_vaapi_surface_pool_new_with_chroma_type.
6146 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6148 2019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6150 * gst/vaapi/gstvaapipluginutil.c:
6151 plugin: if any caps in downstream, negotiate raw video
6152 When downstream has any caps, vaapi should not shovel vaapi featured
6153 buffers, but rather plain raw video, assuming always the worst case
6154 scenario (downstream cannot handle featured video memory but raw
6155 system memory buffers).
6156 This patch query the peer caps without any filter, to know if
6157 donwstream just ask for any caps, if so jump to the color space
6158 checking, otherwise do the caps intersection and continue with the
6159 feature selection algorithm.
6162 === release 1.15.2 ===
6164 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6170 * gstreamer-vaapi.doap:
6174 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6176 * docs/plugins/inspect/plugin-vaapi.xml:
6179 2019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com>
6181 * gst/vaapi/gstvaapivideomemory.c:
6182 vaapivideomemory: Prefer same format for surface and image
6183 We prefer to use the same format between image and surface for gst
6184 vaapi allocator. The old way may choose different formats between
6185 image and surface. For example, the RGBA image may have a NV12 surface.
6186 So we need to do format conversion when we put/get image to surface.
6187 Some drivers such as iHD can not support such conversion and always
6188 cause a data flow error. There may also have some performance cost
6189 for format conversion when put/get images.
6190 So we prefer to use the same format for image and surface in the
6191 allocator. If the surface can not support that format, we then
6192 fallback to find a best one as the surface format.
6193 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
6195 2019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com>
6197 * gst-libs/gst/vaapi/video-format.c:
6198 libs: Delete the duplicated ARGB video format.
6199 Two ARGB formats with the same format information.
6200 Should be verbose and delete one.
6201 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6203 2019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com>
6206 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6207 glx: Stop specifying GLX_DEPTH_SIZE
6208 This code is just confused. It's asking for at least as many bits of
6209 (z-axis) depth as the root window has bits of (color) depth. For rgb565
6210 or rgb888 this is harmless, but at 10 bits per channel this demands a
6211 30-bit or deeper Z buffer. While some hardware could in principle do a
6212 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
6214 We're not actually using the Z buffer, so just stop asking for one.
6216 2019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com>
6219 * gst-libs/gst/vaapi/Makefile.am:
6220 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6221 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
6222 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6223 * gst-libs/gst/vaapi/meson.build:
6224 * gst/vaapi/gstvaapisink.c:
6226 libs: wayland: add support for XDG-shell protocol
6227 [wl_shell] is officially [deprecated], so provide support for the
6228 XDG-shell protocol should be provided by all desktop-like compositors.
6229 (In case they don't, we can of course fall back to wl_shell).
6230 Note that the XML file is directly provided by the `wayland-protocols`
6231 dependency and generates the protocol marshalling code.
6232 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
6233 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
6235 2019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com>
6237 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6238 libs: window: wayland: Prefix wl_shell_surface field with `wl_`
6239 It will help us to distinguish from other Wayland shell surface
6240 (such as XDG-shell) later on.
6242 2019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com>
6244 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6245 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
6246 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6247 libs: wayland: Prefix wl_shell field with `wl_`
6248 It will help us to distinguish from other Wayland shells (such as
6249 XDG-shell) later on.
6251 2019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com>
6253 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6254 libs: display: lock ensure_profile()
6255 Thread safety patch for ensure_profile() function
6258 2019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6261 meson: bump the minimum wayland version requirement to 1.11.0
6262 This was missed on commit 77bb3424
6264 2019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6266 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6267 * gst/vaapi/gstvaapisink.c:
6268 vaapisink: x11: trap WM_DELETE_WINDOW message
6269 Register the WM_DELETE_WINDOW message from window manager and
6270 trap it to stop the pipeline cleanly.
6271 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
6273 2019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6275 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6276 libs: window: remove native-id property
6277 native-id property is problematic since the variable that stores it is
6278 gsize, which is platform specific, and in some is bigger than unsigned
6279 long, and there are not way to handle gsize properties.
6280 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
6281 like to keep using it for this scope.
6282 This patch removes the native-id property and set it manually in
6283 gst_vaapi_window_new_internal().
6285 2019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6287 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6288 libs: window: use G_GSIZE_MODIFIER for window id
6289 gsize type is not equal in all platforms, then the 'l' print modifier
6290 shall not be used always.
6291 This issue was found in Debian builds.
6293 2019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com>
6295 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6296 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6297 encoder: h264/h265: set SPS cbr_flag with correct value.
6298 The flag only set as 1 when the rate-control mode is CBR.
6300 === release 1.15.1 ===
6302 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
6308 * gstreamer-vaapi.doap:
6312 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
6314 * docs/plugins/inspect/plugin-vaapi.xml:
6317 2019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6319 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6320 libs: encoder: refactor to avoid code duplication
6321 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
6322 the same code segment where the coded buffer is created, the picture
6323 encoded on it and pushed to the async queue.
6324 The function gst_vaapi_encoder_encode_and_queue() refactor this.
6326 2019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6328 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6329 * gst-libs/gst/vaapi/gstvaapiencoder.h:
6330 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6331 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6332 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
6333 libs: encoder: h264/h265: flush pending ordered pictures
6334 In order to flush the pending pictures, a new internal encoder vmethod
6335 is used: get_pending_reordered()
6336 This method follows an iterator pattern which will return the next
6337 picture to encode and push.
6338 The base encoder will call this function in a loop when flush() is called.
6339 For now, only H.264 and H.265 encoders implement this flushing mechanism.
6341 2018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.com>
6343 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6344 * gst-libs/gst/vaapi/gstvaapiencoder.h:
6345 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6346 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6347 libs: encoder: h264/h265: fix encode lose frame issue.
6348 Instead of dropping all remain frames in reorder_frame_list during
6349 flush, keep encoding.
6350 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
6352 2019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com>
6354 * gst/vaapi/gstvaapipostproc.c:
6355 vaapipostproc: before set surface proxy, check if it already been created and exist.
6356 Fix the deinterlace black frame when playing with glimagesink:
6357 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
6358 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
6360 2019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com>
6362 * gst-libs/gst/vaapi/gstvaapiutils.c:
6363 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
6365 2018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
6367 * gst-libs/gst/vaapi/meson.build:
6368 * gst/vaapi/meson.build:
6370 * tests/meson.build:
6371 meson: build h264 fei encoder if possible
6373 2018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
6376 configure: bump the minimum wayland version requirement to 1.11.0
6378 2018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com>
6381 * gst-libs/gst/vaapi/Makefile.am:
6382 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6383 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6384 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6385 * gst-libs/gst/vaapi/gstvaapicompat.h:
6386 * gst-libs/gst/vaapi/gstvaapicontext.c:
6387 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6388 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
6389 * gst-libs/gst/vaapi/gstvaapifilter.c:
6390 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6391 * gst-libs/gst/vaapi/gstvaapisurface.c:
6392 * gst-libs/gst/vaapi/gstvaapiutils.c:
6393 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
6394 * gst-libs/gst/vaapi/meson.build:
6395 * gst/vaapi/Makefile.am:
6396 * gst/vaapi/gstvaapi.c:
6397 * gst/vaapi/gstvaapidecode.c:
6398 * gst/vaapi/gstvaapidecodebin.c:
6399 * gst/vaapi/gstvaapipluginbase.c:
6400 * gst/vaapi/meson.build:
6403 * tests/simple-decoder.c:
6404 vaapi: bump the minimum vaapi version requirement to 0.39.0
6405 And reduce unnecessary API version and structures check as well.
6406 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
6408 2018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6410 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6411 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6412 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6413 * tests/test-decode.c:
6414 * tests/test-filter.c:
6415 * tests/test-subpicture.c:
6416 * tests/test-textures.c:
6417 * tests/test-windows.c:
6418 libs: window: remove custom ref() and unref()
6419 Use gst_object_ref() and gst_object_unref() instead.
6421 2018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6423 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6424 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6425 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6426 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6427 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6428 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6429 libs: window: use its own debug category
6431 2018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6433 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6434 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6435 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6436 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
6437 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6438 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
6439 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6440 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
6441 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6442 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6443 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
6444 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6445 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
6446 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6447 libs: window: refactor as gobject
6448 This is another step in the gobjectification of the internal library
6449 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
6451 The idea is to minimize the changeset keeping the same design as
6453 GstVaapiWindow is defined as an abstract class with two properties:
6454 the GstVaapiDisplay and the native ID. Thus, many of the
6455 GstVaapiObject macros were copied as GstVaapiWindow macros.
6456 The function gst_vaapi_window_new_internal() is kept as a decorator
6457 of for calling gst_vaapi_window_create() and the possibility of
6459 The descendant classes, such as glx, still use the private
6460 structures, but through the gobject mechanism.
6462 2018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6464 * gst-libs/gst/vaapi/gstvaapifilter.c:
6465 libs: filter: use its own debug category
6467 2018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com>
6469 * gst/vaapi/gstvaapidecode.c:
6470 * gst/vaapi/gstvaapipluginbase.c:
6471 * gst/vaapi/gstvaapipluginbase.h:
6472 * gst/vaapi/gstvaapipostproc.c:
6473 * gst/vaapi/gstvaapisink.c:
6474 plugins: Add more check for allowed raw caps.
6475 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
6476 pad and src pad, which cause some bugs. For sink pad, we need to verify
6477 vaPutImage() while for the src pad we need to verify vaGetImage().
6478 For vaapidecoderXXX kind of plugins, the case is more complex. We need
6479 to verify whether the decoded result(in some surface, NV12 format most
6480 of the time) can be vaGetImage to some raw image format. Add more check
6481 to fix all these problems.
6482 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
6483 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6485 2018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com>
6487 * gst/vaapi/gstvaapipostproc.c:
6488 vaapipostproc: fix csc fail when only change width or height.
6490 2018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com>
6492 * tests/elements/meson.build:
6493 meson: Add gtk guard
6495 2018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com>
6497 * gst/vaapi/gstvaapiencode_h264.c:
6498 libs: enc: h264: set max profile idc with correct profile.
6499 Use the highest rank of available profile as the max profile to
6501 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
6503 2018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com>
6505 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6506 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6507 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6508 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
6509 This gets rid of the strange `do_init` macro and makes the intent a bit
6512 2018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com>
6515 Automatic update of common submodule
6516 From ed78bee to 59cb678
6518 2018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com>
6520 * gst-libs/gst/vaapi/gstvaapiimage.c:
6521 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6522 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6523 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6524 * gst-libs/gst/vaapi/video-format.c:
6525 * gst/vaapi/gstvaapidecode.c:
6526 * gst/vaapi/gstvaapipluginutil.h:
6527 libs: dec: h265: support decode for main-444 10bit streams.
6528 Add 444 10bit yuv format Y410, which can be used to decode
6529 main-444 10bit streams. Currently, this feature is only
6530 supported by media-driver in Icelake.
6532 2018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com>
6534 * gst/vaapi/gstvaapidecode.c:
6535 * gst/vaapi/gstvaapisink.c:
6536 Run gst-indent through the files
6537 This is required before we enabled an indent test in the CI.
6538 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
6540 2018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com>
6542 * gst/vaapi/gstvaapipluginbase.c:
6543 plugins: modify image check of extract_allowed_surface_formats.
6544 The extract_allowed_surface_formats function just check whether
6545 we can support some kind of surface/image format pair. We just
6546 need to create a surface, create an image with the same video-format
6547 and putImage from image to surface. All these operations success,
6548 that kind of video-format is supported.
6549 The old manner do not work for some kind of video-format. For example,
6550 the RGBA kind of format will create a NV12 surface and RGBA image,
6551 and the putImage will fail because the format is not same. And so
6552 the RGBA format is not supported but actually it is supported.
6554 2018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6556 * gst/vaapi/gstvaapipostproc.c:
6557 vaapipostproc: add some missing locking
6558 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
6559 in gst_vaapipostproc_transform_caps(). The usage is already protected by
6561 This is needed when the pipeline is stopped during startup.
6563 2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com>
6565 * gst/vaapi/gstvaapivideomemory.c:
6567 Otherwise it will result in resource leak when failed to create
6570 2018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6572 * gst/vaapi/gstvaapiencode.c:
6573 vaapiencode: don't start src pad task in set_format
6574 Otherwise the task may be restarted during shutdown. Start the task in
6575 gst_vaapiencode_handle_frame() instead.
6577 2018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com>
6579 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6580 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6581 * gst-libs/gst/vaapi/gstvaapiutils.c:
6582 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6583 * gst/vaapi/gstvaapidecode.c:
6584 * gst/vaapi/gstvaapipluginutil.h:
6585 libs: dec: h265: support decode for main-444 8bit streams.
6586 Add 444 8bit yuv format AYUV, which can be used to decode
6587 main-444 8bit streams. Currently, this feature is only
6588 supported by media-driver in Icelake.
6589 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
6591 2018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6594 Add Gitlab CI configuration
6595 This commit adds a .gitlab-ci.yml file, which uses a feature
6596 to fetch the config from a centralized repository. The intent is
6597 to have all the gstreamer modules use the same configuration.
6598 The configuration is currently hosted at the gst-ci repository
6599 under the gitlab/ci_template.yml path.
6600 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
6602 2018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com>
6604 * gst-libs/gst/vaapi/gstvaapisurface.h:
6605 * gst-libs/gst/vaapi/gstvaapiutils.c:
6606 libs: Sync the GstVaapiChromaType to VA header file.
6607 Add more kinds of chrometype which will be used to describe
6608 new video formats. Sync it with 1.4.0 version header file.
6609 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
6610 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6612 2018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com>
6614 * gst-libs/gst/vaapi/meson.build:
6615 meson: link with -lm
6616 Fixes #117 hopefully.
6618 2018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6621 meson: bump meson required to 0.47 for feature options
6623 2018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com>
6625 * gst-libs/gst/vaapi/video-format.c:
6626 libs: Modify the video format of endianness.
6627 We lack some video format because endianness declare.
6628 The video format should not directly relate to endianness. For example,
6629 ARGB on big endian should not be simplely seen as BGRA on little endian
6630 machine. We should provide endianess convert or format convert help
6631 functions if endianness does not match.
6632 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
6633 Signed-off-by: Junyan He <junyan.he@intel.com>
6635 2018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com>
6637 * gst/vaapi/gstvaapipluginutil.c:
6638 plugins: Fix build error when GL is enabled while EGL is disabled.
6639 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
6640 unused-variable warning and may block build when Werror enabled.
6641 Several functions like gst_vaapi_display_egl_new_with_native_display
6642 have no prototype warning and link error when GL is enabled but EGL
6643 is disabled. Fix all these warning and link error.
6644 https://bugzilla.gnome.org/show_bug.cgi?id=797358
6645 Signed-off-by: Junyan He <junyan.he@intel.com>
6647 2018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com>
6649 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6650 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6651 libs: encoder: h264/h264fei: remove unuseless code.
6652 The variable are set twice, remove previous one.
6653 https://bugzilla.gnome.org/show_bug.cgi?id=797365
6655 2018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com>
6657 * tests/simple-encoder.c:
6658 * tests/test-fei-enc-in.c:
6659 tests: check return value when using gst_buffer_map.
6660 https://bugzilla.gnome.org/show_bug.cgi?id=797366
6662 2018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6665 * meson_options.txt:
6666 * tests/elements/meson.build:
6667 * tests/meson.build:
6668 build: meson: build examples
6670 2018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6672 * gst-libs/gst/vaapi/meson.build:
6673 build: meson: declare headers for libgstvaapi
6674 Thus handling its recompilation if needed.
6676 2018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com>
6679 Update common submodule location
6680 Remove the git directory
6682 2018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
6685 * gstreamer-vaapi.doap:
6686 Clone the code from gitlab
6687 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
6689 2018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com>
6691 * gst-libs/gst/vaapi/gstvaapiimage.c:
6692 * gst-libs/gst/vaapi/gstvaapisurface.h:
6693 * gst-libs/gst/vaapi/gstvaapiutils.c:
6694 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6695 * gst-libs/gst/vaapi/video-format.c:
6696 * gst/vaapi/gstvaapidecode.c:
6697 * gst/vaapi/gstvaapipluginutil.h:
6698 libs: dec: h265: support decode for main-10-422 10bit streams.
6699 Add 422 10bit yuv format Y210, which can be used to decode
6700 main-10-422 10bit streams. Currently, this feature is only
6701 supported by media-driver in Icelake.
6702 https://bugzilla.gnome.org/show_bug.cgi?id=797264
6704 2018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com>
6706 * gst-libs/gst/vaapi/gstvaapicontext.c:
6707 libs: context: roi_rc_qp_delta_support should not be checked when CQP.
6708 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
6709 rate control mode is set as CQP. In CQP mode, it shouldn't check
6710 roi_rc_qp_delta_support return value from driver backend.
6711 https://bugzilla.gnome.org/show_bug.cgi?id=797087
6713 2018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6715 * gst/vaapi/gstvaapipostproc.c:
6716 vaapipostproc: fix classification string
6717 The classification string is splitted by '/' and then looks for the
6719 This patch removes the ';' by unifying all the components.
6721 2018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com>
6723 * gst/vaapi/gstvaapipostproc.c:
6724 vaapipostproc: Add Hardware classifier to metadata
6726 2018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com>
6728 * gst-libs/gst/vaapi/gstvaapicontext.c:
6729 libs: context: create context first before using it to create surface.
6730 In gst_vaapi_context_reset(), if the context has to be destroyed, make
6731 sure to create it first before allocating its associated surfaces.
6732 This patch fixes a regression introduced in commit 82872f4 because
6733 the formats available in the current context now are ensured before
6734 creating the context's surfaces.
6735 https://bugzilla.gnome.org/show_bug.cgi?id=797277
6737 2018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com>
6739 * docs/plugins/inspect/plugin-vaapi.xml:
6740 * gst/vaapi/gstvaapidecode.c:
6741 * gst/vaapi/gstvaapiencode_h264.c:
6742 * gst/vaapi/gstvaapiencode_h264_fei.c:
6743 * gst/vaapi/gstvaapiencode_h265.c:
6744 * gst/vaapi/gstvaapiencode_jpeg.c:
6745 * gst/vaapi/gstvaapiencode_mpeg2.c:
6746 * gst/vaapi/gstvaapiencode_vp8.c:
6747 * gst/vaapi/gstvaapiencode_vp9.c:
6748 gst: Advertise elements interacting with hardware devices
6750 2018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com>
6752 * gst-libs/gst/vaapi/gstvaapicontext.c:
6753 * gst-libs/gst/vaapi/gstvaapisurface.c:
6754 * gst-libs/gst/vaapi/gstvaapisurface.h:
6755 libs: context: query surface format before context to create surface.
6756 Before using context to create surface, the supported surface format
6757 should be checked first.
6758 https://bugzilla.gnome.org/show_bug.cgi?id=797222
6760 2018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6762 * gst-libs/gst/vaapi/gstvaapiimage.c:
6763 * gst-libs/gst/vaapi/gstvaapivalue.c:
6764 libs: replace g_error with GST_ERROR
6765 And handle those errors rather than halting.
6767 2018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6769 * gst-libs/gst/vaapi/gstvaapiimage.c:
6770 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6771 * gst-libs/gst/vaapi/gstvaapisurface.c:
6772 libs: replace g_warning with GST_WARNING
6774 2018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6776 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6777 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6778 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6779 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
6780 libs: Move from g_debug to GST_DEBUG.
6781 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6783 2018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com>
6785 * gst/vaapi/gstvaapipostproc.c:
6786 vaapipostproc: change the way of handling deinterlace
6787 The current vaapipostproc calls driver's video processing
6788 pipeline for deinterlacing only if it is Advance deinterlacing.
6789 Modify in the way that it always tries with driver's video
6790 processing pipeline for deinterlacing, and falls back to software
6791 method of appending picture structure meta data only if it fails
6792 with driver's method.
6793 https://bugzilla.gnome.org/show_bug.cgi?id=797095
6795 2018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6797 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6798 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
6799 libs: h264: Update level table to "Recommendation H.264 (04/17)".
6800 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
6801 from T-REC-H.264-201704.
6802 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6804 2018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com>
6806 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6807 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6808 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6809 * gst-libs/gst/vaapi/gstvaapisurface.c:
6810 * gst-libs/gst/vaapi/gstvaapiutils.c:
6811 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6812 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
6813 * gst-libs/gst/vaapi/video-format.c:
6814 * gst-libs/gst/vaapi/video-format.h:
6815 * gst/vaapi/gstvaapidecode.c:
6816 * gst/vaapi/gstvaapipluginbase.c:
6817 * gst/vaapi/gstvaapipluginutil.h:
6818 libs: dec: h265: add 422 chroma format support.
6819 Add main-422-10 profile which support 422 chroma format stream.
6820 Currently, this feature is only supported by media-driver in Icelake.
6821 https://bugzilla.gnome.org/show_bug.cgi?id=797143
6823 2018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com>
6825 * tests/y4mreader.c:
6826 tests: include sysdeps.h in compilation unit
6827 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
6828 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6830 2018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6832 * tests/y4mreader.c:
6833 * tests/y4mreader.h:
6834 tests: fix compilation
6835 https://bugzilla.gnome.org/show_bug.cgi?id=797204
6837 2018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6839 * tests/y4mreader.h:
6840 tests: don's use sysdeps.h in header
6842 2018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6844 * gst-libs/gst/vaapi/gstvaapiutils.h:
6845 libs: utils: no need of include config.h
6847 2018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6851 * tests/test-decode.c:
6852 * tests/test-subpicture.c:
6853 tests: remove already include string.h
6854 Since sysdeps.h includes string.h there's no need to include it again.
6856 2018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6858 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6859 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6860 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6861 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6862 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6863 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6864 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6865 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6866 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6867 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6868 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6869 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6870 * gst-libs/gst/vaapi/gstvaapiimage.c:
6871 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6872 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6873 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6874 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6875 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6876 libs: remove already include string.h
6877 Since sysdeps.h includes string.h there's no need to include it again.
6879 2018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6881 * gst-libs/gst/vaapi/gstvaapiobject.h:
6882 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6883 * gst/vaapi/gstvaapivideometa_texture.c:
6884 libs: object: separation of internal API and plugins
6885 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
6886 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
6888 The purpose is readability.
6889 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6891 2018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6893 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
6894 libs: parser_frame: change macros for inlined functions
6895 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6897 2018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6899 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6900 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6901 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6902 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
6903 libs: videopool: remove unneeded code
6904 The removed code comes frome the bad practice of copy&paste. Better
6905 move it as internal function.
6906 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6908 2018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6910 * gst-libs/gst/vaapi/Makefile.am:
6911 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6912 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6913 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
6914 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
6915 * gst-libs/gst/vaapi/gstvaapiobject.c:
6916 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6917 * gst-libs/gst/vaapi/gstvaapipixmap.c:
6918 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
6919 * gst-libs/gst/vaapi/gstvaapitexture.c:
6920 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
6921 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6922 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6923 * gst-libs/gst/vaapi/meson.build:
6924 libs: remove dependency on IN_LIBGSTVAAPI_CORE
6925 This conditional code was when libgstvaapi was intended to be library
6926 used outside GStreamer. This not the case anymore, thus removing it.
6927 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6929 2018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com>
6931 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6932 libs: dec: h265: fix the macros used for IDC profile
6933 profile_idc flag in SPS only indicate the IDC profile, which may
6934 need some other flags together to get the real profile.
6935 https://bugzilla.gnome.org/show_bug.cgi?id=797160
6937 2018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com>
6939 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6940 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6941 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6942 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6943 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6944 libs: use g_clear_pointer() when possible
6945 https://bugzilla.gnome.org/show_bug.cgi?id=797131
6947 2018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6949 * gst-libs/gst/vaapi/gstvaapifilter.h:
6950 libs: filter: add gobject's cleanup function
6952 2018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6954 * gst-libs/gst/vaapi/gstvaapifilter.c:
6955 * gst-libs/gst/vaapi/gstvaapifilter.h:
6956 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6957 * tests/test-filter.c:
6958 libs: filter: remove custom ref() and unref()
6959 Replacing them by gst_object_ref() and gst_object_unref()
6960 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6962 2018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6964 * gst-libs/gst/vaapi/gstvaapifilter.c:
6965 * gst-libs/gst/vaapi/gstvaapifilter.h:
6966 libs: filter: refactor filter as gobject
6967 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6969 2018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6971 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6972 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6973 libs: decoder: remove destoy() and create() callbacks
6974 They were all replaced by reset()
6975 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6977 2018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6979 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6980 libs: decoder: vp9: implement reset() callback
6981 remove destroy() and create() callback
6982 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6984 2018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6986 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6987 libs: decoder: vp8: implement reset() callback
6988 remove create() and destroy() callbacks
6989 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6991 2018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6993 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6994 libs: decoder: vc1: implement reset() callback
6995 remove destroy() and create() callbacks
6996 use g_clear_pointer for rbdu_buffer
6998 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7000 2018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7002 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
7003 libs: decoder: mpeg4: implement reset() callback
7004 remove destroy() and create() callback
7005 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7007 2018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7009 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
7010 libs: decoder: mpeg2: implement reset() callback
7011 remove create() and destroy() callbacks
7012 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7014 2018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7016 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
7017 libs: decoder: jpeg: implement reset() callback
7018 and remove create() and destroy() callbacks.
7019 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7021 2018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7023 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7024 libs: decoder: h265: implement reset() callback
7025 and remove create() and destroy()
7026 and use g_clear_pointer for dpb structure
7027 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7029 2018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7031 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7032 libs: decoder: h264: remove create() and destroy() callbacks
7033 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7035 2018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7037 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7038 * gst-libs/gst/vaapi/gstvaapidecoder.h:
7039 * tests/test-decode.c:
7040 * tests/test-subpicture.c:
7041 libs: decoder: remove gst_vaapi_decoder_unref()
7042 Replaced by gst_object_unref() in tests
7043 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7045 2018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7047 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7048 * gst-libs/gst/vaapi/gstvaapidecoder.h:
7049 libs: decoder: remove gst_vaapi_decoder_ref()
7050 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7052 2018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7054 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7055 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7056 libs: decoder: remove gst_vaapi_decoder_new()
7057 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7059 2018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7061 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7062 * gst-libs/gst/vaapi/gstvaapidecoder.h:
7063 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7064 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
7065 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7066 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
7067 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
7068 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
7069 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
7070 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
7071 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
7072 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7073 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7074 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
7075 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7076 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
7077 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
7078 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7079 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
7080 libs: decoder: refactor decoders as gobject
7081 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7083 2018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
7085 * gst/vaapi/gstvaapidecode.c:
7086 vaapidecode: Requests upstream a key unit at parse or decode error.
7087 This is done to resume decoding after a parse error or decode error.
7088 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
7090 2018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
7092 * gst/vaapi/gstvaapidecode.c:
7093 vaapidecode: sets return value in failure case.
7094 In gst_vaapidecode_handle_frame, when there is a decode error
7095 there is a code path the returns an uninitialized value.
7096 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
7098 2018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7100 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7101 libs: display: lock at extracting available image formates
7102 When running several vaapi elements at the concurrently, at
7103 initialization, there is a race condition when extractin the avaible
7104 formats for images and subpictures.
7105 This patch add a lock when the those arrays are filled.
7106 https://bugzilla.gnome.org/show_bug.cgi?id=797039
7108 2018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
7111 meson: Sync libversion and osxversion code from other repos
7112 gstreamer-vaapi does not build any libraries, only plugins, so this is
7113 not used, but sync it just in case someone does add it in the future.
7115 2018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7117 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
7118 libs: encoder: h265: trivial documentation fix
7120 2018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com>
7122 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7123 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
7124 libs: encoder: h265: add low delay B frame support.
7125 Low delay B frame provide the function of transforming
7126 P frame into low delay B frame which frame type is B, but
7127 only reference predictive frames. This can be used when P
7128 frame unsupported. Especially for P and B both unsupported,
7129 in this case, I and low delay B frame can be encoded in a
7131 https://bugzilla.gnome.org/show_bug.cgi?id=796984
7133 2018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7135 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7136 libs: decoder: h264: Avoid using picture after it has been free
7137 In some cases, the found_picture ended up being evicted and freed, which
7138 would lead to a use after free when accessing picture->base.poc. In this
7139 fix, we take a ref on the picture before calling dpb_evict.
7140 https://bugzilla.gnome.org/show_bug.cgi?id=787124
7142 2018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7144 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7145 h264decoder: Fail decoding slice with missing inter-view reference
7146 Similarly to previous patch, we have no error concealment. As a side
7147 effect, it's better to skip slices with missing references then passing
7148 NULL pointers to the accelerator. Passing NULL pointer would lead to
7149 major visual artifact, a behaviour that is likely undefined.
7150 https://bugzilla.gnome.org/show_bug.cgi?id=787124
7152 2017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com>
7154 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7155 libs: decoder: h264: reset context when the number of view is increased
7156 Usually in case of MVC decoding, dpb size is increasedi if subset sps.
7157 That's why it resets context without this patch.
7158 But for some media it doesn't increase dpb size. Even in this case we
7159 should reset context to deal with MVC decoding.
7160 Otherwise, it leads to assert.
7161 https://bugzilla.gnome.org/show_bug.cgi?id=787124
7163 2018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7165 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7166 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7167 * gst/vaapi/gstvaapidecode.c:
7168 vaapidecode: Skip unparsable units from adapter
7169 If the unit could not be parsed, just skip this nal and keep parsing
7170 what is left in the adapter. We need to flush the broken unit in the
7171 decoder specific parser because the generic code does not know about
7172 units boundary. This increases error resilliance.
7173 Before this, the broken unit would stay in the adapter and EOS would be
7174 returned. Which stopped the streaming. Just removing the EOS would have
7175 lead to the adapter size growing indefinitely.
7176 https://bugzilla.gnome.org/show_bug.cgi?id=796863
7178 2018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7180 * gst/vaapi/gstvaapidecode.c:
7181 vaapidecoder: Don't error out on decode errors
7182 This is problematic on live pipeline where loosing network can
7183 cause an important amount of errors.
7184 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7186 2018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7188 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7189 h265decoder: Don't scan empty buffer
7190 Same as what we did for H264 decoder, this is to avoid an assertion
7192 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7194 2018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7196 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7197 libs: h264: renable the vaapi category for logging
7198 h264 log messages were logged in default category because a regression
7199 in code. This patch renable the usage of vaapi logging category.
7200 This regression was introduced in commit 7c365bdd.
7202 2018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7204 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7205 h264decoder: Fail decoding slice if modification process failed
7206 This patch chains up failure to executing the modification process. The
7207 end result is that we now fail decoding the slice if this process fails.
7208 This avoid sending a corrupted state to the accelerator. In some special
7209 cases, this could lead to unrecoverable errors.
7210 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7212 2018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7214 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7215 h264decoder: Don't scan empty buffer
7216 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
7217 try and scan in that case. This fixes assertion that would some times
7218 happen when the stream is corrupted.
7219 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7221 2018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com>
7223 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7224 libs: encoder: jpeg: set component id and Tqi
7225 This change is due a problem encoding JPEGs with Intel's
7226 media-driver: green/black image when playback jpeg
7227 This patch sets component identifier and quantization table
7228 destination selector in frame header to support packing headers
7229 by Intel's media-driver that does not accept packed header
7231 https://bugzilla.gnome.org/show_bug.cgi?id=796705
7233 2018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com>
7235 * gst/vaapi/gstvaapipluginutil.c:
7236 pluginutil: downgrade unsupported driver logging
7237 On systems with an Nvidia card, this error is output each time
7238 the registry is rebuilt, which happens pretty often when
7239 using gst-build as a development environment.
7240 https://bugzilla.gnome.org/show_bug.cgi?id=796663
7242 2018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com>
7244 * gst/vaapi/gstvaapivideobufferpool.c:
7245 Update for g_type_class_add_private() deprecation in recent GLib
7247 2018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7249 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7250 h264dec: Remove false assumption about parity order
7251 The decoder was trying to detect earlier that a field was lost base
7252 on guessing the parity order. This breaks in streams were the parity
7254 This patch reverts the field order prediction code added by commit
7256 https://bugzilla.gnome.org/show_bug.cgi?id=796169
7258 2018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7260 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7261 h264dec: Properly set sentinel in ref frame list
7262 This ensure that we always have sentinels set in the reference
7263 pictures arrays. The code wasn't unsafe, this simply improve the
7264 tracing, so instead of printing 32 lines of zeros, va tracer
7265 prints proper empty lists.
7266 https://bugzilla.gnome.org/show_bug.cgi?id=796169
7268 2018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7270 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7271 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7272 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7273 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7274 * gst-libs/gst/vaapi/gstvaapifilter.c:
7275 * gst-libs/gst/vaapi/gstvaapiobject.c:
7276 * gst-libs/gst/vaapi/gstvaapivideopool.c:
7277 * gst/vaapi/gstvaapipluginbase.c:
7278 * gst/vaapi/gstvaapivideometa.c:
7279 * tests/test-decode.c:
7280 libs: display: remove gst_vaapi_display_ref()
7281 Replace it with gst_object_ref()
7282 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7284 2018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7286 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7287 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7288 * gst/vaapi/gstvaapi.c:
7289 * gst/vaapi/gstvaapidecode.c:
7290 * gst/vaapi/gstvaapiencode.c:
7291 * gst/vaapi/gstvaapipluginbase.c:
7292 * gst/vaapi/gstvaapipluginutil.c:
7294 * tests/simple-encoder.c:
7295 * tests/test-decode.c:
7296 * tests/test-display.c:
7297 * tests/test-fei-enc-in.c:
7298 * tests/test-filter.c:
7299 * tests/test-subpicture.c:
7300 * tests/test-surfaces.c:
7301 * tests/test-textures.c:
7302 * tests/test-windows.c:
7303 libs: display: remove gst_vaapi_display_unref()
7304 Use gst_object_unref() instead.
7305 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7307 2018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7309 * gst/vaapi/gstvaapivideobufferpool.c:
7310 vaapibufferpool: declare parameter display as object
7311 We have neglected to update this code since GstVaapiDisplay turned
7312 into a GstObject descendant.
7313 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7315 2018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
7317 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7318 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7319 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7320 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
7321 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7322 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7323 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7324 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
7325 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
7326 But still something breaking GObject code convention remains, which is
7327 calling gst_vaapi_display_new() in each decendants.
7328 This patch replaces it with gst_vaapi_display_config(), defined in private
7330 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7332 2018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7334 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7335 libs: display: redefine gst_vaapi_display_create()
7336 The function name was gst_vaapi_display_create_unlocked(), nonetheless
7337 it wasn't called unlocked. In order to keep the semantics this patch
7338 renames the gst_vaapi_display_create_unlocked() as
7339 gst_vaapi_display_create(), removing the previous function
7340 gst_vaapi_display_create().
7341 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7343 2018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7346 Revert "build: meson: libva gst-uninstall friendly"
7347 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
7349 2018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7351 * gst/vaapi/gstvaapipluginutil.c:
7352 plugins: fix compilation
7353 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
7355 2018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7358 build: meson: libva gst-uninstall friendly
7359 Make gstreamer-vaapi to use libva uninstalled.
7361 2018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7363 * gst/vaapi/gstvaapipluginutil.c:
7364 plugins: refactor gst_vaapi_create_display_from_gl_context()
7365 gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
7366 This path refactors it, in order to make the code readable and
7368 https://bugzilla.gnome.org/show_bug.cgi?id=796564
7370 2018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7372 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7373 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7374 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7375 libs: display: resurrect parent private member
7376 This is, practically, a revert of commit dcf135e2.
7377 The parent logic is useful for the EGL display, which is a decorator
7378 of the real windowing subsystem (X11 or Wayland). Thus it is avoided
7379 calling vaInitialize() and vaTerminate() twice.
7380 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7382 2018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7384 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7385 libs: display: egl: initialize params structure
7386 Statically initialise the internal params structure.
7387 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7389 2018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7391 * gst/vaapi/gstvaapipluginutil.c:
7392 plugins: handle EGL when creating VAAPI display from gl
7393 If GstGL reports a EGL platform force to create a EGL display using
7394 the native EGL display.
7395 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7397 2018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com>
7399 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7400 * gst/vaapi/gstvaapipluginutil.c:
7401 display: egl: create VaapiDisplayEGL with native EGL display
7402 gst_vaapi_display_egl_new_with_native_display() has been broken since
7404 Currently it's needed to call this API to create a display providing
7405 the EGL display, so it could avoid duplicated calls to the native
7406 display (eg. eglTerminate).
7407 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
7408 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7410 2018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com>
7412 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
7413 libs: decoder: release VA buffers after vaEndPicture
7414 This change is due a problem decoding JPEGs with Intel's media-driver:
7415 no image was generated.
7416 This patch relases the VA buffers after vaEndPicture() is called,
7417 and not before (after vaRenderPicture()).
7418 https://bugzilla.gnome.org/show_bug.cgi?id=796505
7420 2018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com>
7422 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7423 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
7424 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
7425 meson: fix build when xrender or xrandr are not available
7426 HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
7428 2018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7430 * gst/vaapi/gstvaapipostproc.c:
7431 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
7432 Otherwise a reference to a DMABuf input buffer is kept until the output
7434 https://bugzilla.gnome.org/show_bug.cgi?id=796399
7436 2018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7438 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7439 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7440 libs: display: remove unnecessary legacy code since gobjectification
7441 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7443 2018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com>
7445 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7446 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7447 libs: display: remove unused code
7448 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7450 2018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7452 * gst/vaapi/gstvaapiencode_h264.c:
7453 vaapiencode: h264: log output caps
7455 2018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7457 * gst/vaapi/gstvaapiencode_h264.c:
7458 vaapiencode: h264: find profile in available and allowed caps
7459 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
7460 find best profile in those available") changed the code to pick a profile
7461 that is actually supported by the hardware. Unfortunately it dropped the
7462 downstream constraints. This can cause negotiation failures under certain
7464 The fix is split in two cases:
7465 1\ the available VA-API caps doesn't intersect with pipeline's allowed
7467 * The best allowed profile (pipeline's caps) is set as the encoding
7468 target profile (it will be adjusted later by the available profiles
7470 2\ the available VA-API caps does intersect with pipeline's allowed
7472 * The intersected caps are fixed, and its profile is set as the
7473 encoding target profile. In this case the is not the best profile,
7474 but the minimal one (if VA-API reports the profiles in order).
7475 Setting the minimal profile of the intersected caps is better for
7477 This patch fixes other tests related with caps negotiation, for
7478 example, it handles baseline profile, even when VA only supports
7479 constrained-baseline.
7480 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
7481 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7483 2018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com>
7485 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7486 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
7487 The specification says,
7488 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
7489 This patch changes the upper limit from 6 to 12.
7490 https://bugzilla.gnome.org/show_bug.cgi?id=796179
7492 2018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7494 * gst/vaapi/gstvaapipluginutil.c:
7495 plugins: guard GstGL code
7497 2018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7499 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7500 libs: decoder: h264: use g_clear_pointer()
7502 2018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7504 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7505 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7506 libs: decoder: mpeg4, vc1: remove unused header
7508 2018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7510 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7511 libs: decoder: remove unused forward declaration
7513 2018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
7516 fix configure.ac regression
7517 Fixes regression introduced by 77527d67abe
7518 https://bugzilla.gnome.org/show_bug.cgi?id=795885
7520 2018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7522 * gst-libs/gst/Makefile.am:
7523 * gst-libs/gst/base/Makefile.am:
7524 * gst-libs/gst/base/gstbitwriter.c:
7525 * gst-libs/gst/base/gstbitwriter.h:
7526 * gst-libs/gst/base/meson.build:
7527 * gst-libs/gst/meson.build:
7528 * gst-libs/gst/vaapi/Makefile.am:
7529 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7530 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7531 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7532 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7533 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7534 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7535 * gst-libs/gst/vaapi/meson.build:
7536 libs: remove gstbitwriter
7537 Since it is deployed in gstreamer-core, there is no need to use
7539 https://bugzilla.gnome.org/show_bug.cgi?id=795848
7541 2018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com>
7543 * gst/vaapi/gstvaapidecode.c:
7544 vaapih264dec: add constrained and progressive profiles
7545 Those profiles have been added in the version 2012-01
7546 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
7547 Both are supported by VAProfileH264High
7548 https://bugzilla.gnome.org/show_bug.cgi?id=795624
7550 2018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7552 * gst/vaapi/gstvaapipluginbase.c:
7553 * gst/vaapi/gstvaapipluginutil.c:
7554 * gst/vaapi/gstvaapivideocontext.c:
7555 * gst/vaapi/gstvaapivideocontext.h:
7556 plugin: remove custom GstGL context handling
7557 Instead of using our own context handling for looking for GstGL
7558 parameters (display, context and other context), this patch changes
7559 the logic to use the utility function offered by GstGL.
7560 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7562 2018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7564 * gst/vaapi/gstvaapipluginbase.c:
7565 plugins: GstGL API must use the member variables
7566 This commit basically is a revert of commits 8092537 and fc1c415
7567 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7569 2018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com>
7571 * gst/vaapi/gstvaapipluginbase.c:
7572 plugins: pass members as parameters of gst_gl_ensure_element_data()
7573 The parameters of gst_gl_ensure_element_data() have to be not
7574 local variable since they are going to be used to see if they're
7575 set in gst_element_set_context() inside the API.
7576 This is basically a revert of commit 3d56306c
7577 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7579 2018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7582 meson: fix USE_GLES_VERSION_MASK
7583 1. The macro in the code is USE_GLES_VERSION_MASK
7584 2. glesv3 is provided by glesv2 pkg-config, then it's required to
7586 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7588 2018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com>
7590 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7591 libs: egl: utils: mark context as wrapped when it is
7592 The returning egl context may be null, so we should check the
7594 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7596 2018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7598 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7599 libs: egl: utils: fix usage of GstGL macros
7600 Include gl.h for the required GstGL symbols.
7601 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7603 2018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com>
7606 meson: use -Wl,-Bsymbolic-functions where supported
7607 Just like the autotools build.
7609 2018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7612 meson: use get_pkgconfig_variable()
7613 Use get_pkgconfig_variable() method, of dependency class, rather
7614 than using run_command().
7616 2018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com>
7618 * gst-libs/gst/base/meson.build:
7619 * gst-libs/gst/vaapi/meson.build:
7621 meson: fix miscellaneous meson warnings
7622 WARNING: Passed invalid keyword argument "rqeuired".
7623 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
7624 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
7625 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
7626 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
7628 2018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7630 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7631 display: drm: Allow finding DRM paths out of the PCI subsystem
7632 This removes hard-coded checks on the parent subsystem of potential DRM
7633 devices. These checks were set to exlude devices that do not originate
7634 from the PCI bus, which is only a valid approach on x86 devices.
7635 Other devices may have a DRM device originating from the platform
7636 subsystem, so the checks that were previously restricted to PCI are
7637 extended to cover platform devices as well.
7638 https://bugzilla.gnome.org/show_bug.cgi?id=794840
7639 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7641 2017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com>
7643 * gst/vaapi/gstvaapivideocontext.c:
7644 videocontext: support wl-display in "gst.vaapi.app.Display"
7645 Through "gst.vaapi.app.Display" context, users can set their own
7646 VADisplay and native display of their backend.
7647 So far we support only X11 display, from now we also support Wayland
7650 - wl-display : pointer of struct wl_display .
7651 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7653 2017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com>
7655 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7656 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
7657 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
7658 Implements new API function so that users could create GstVaapiDisplay
7659 with their own VADisplay within a native display as backend.
7660 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7662 2018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7664 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7665 wayland: don't poll if there are no pending frames
7666 Otherwise the following poll may not return for an arbitrary amount of
7667 time. This can happen if another wayland event queue has flushed and read
7669 https://bugzilla.gnome.org/show_bug.cgi?id=795224
7671 2017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7673 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7674 libs: encoder: h265: 16 bit rounding of picture width and height
7675 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
7677 In addition, codedbuf_size must be calculated according to this change.
7678 https://bugzilla.gnome.org/show_bug.cgi?id=753229
7680 2018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com>
7683 Automatic update of common submodule
7684 From 3fa2c9e to ed78bee
7686 2018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7688 * gst/vaapi/gstvaapiencode_h264.c:
7689 vaapiencode: h264: find best profile in those available
7690 Instead to look for the best profile in the allowed profiles by
7691 downstream, the encoder should look for the base profile in the
7692 available profile in VA-API.
7693 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7695 2018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7700 * docs/plugins/inspect/plugin-vaapi.xml:
7704 === release 1.14.0 ===
7706 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
7711 * gstreamer-vaapi.doap:
7715 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
7717 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7718 libs: decoder: h264: ensure num_ref_frames is greater than 0
7719 Even if it is the h264parse fault or bad video file, vaapih264dec
7720 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
7721 as the driver might use it.
7722 Also see "info.ref_frames = dpb_size;" in
7723 gstvaapidecoder_h264.c::ensure_context
7724 https://bugzilla.gnome.org/show_bug.cgi?id=793836
7726 === release 1.13.91 ===
7728 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
7733 * gstreamer-vaapi.doap:
7737 === release 1.13.90 ===
7739 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
7744 * gstreamer-vaapi.doap:
7748 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7750 * gst/vaapi/gstvaapipostproc.c:
7751 vaapipostproc: change how the metadata is copied
7752 Instead of copying the metada in prepare_output_buffer() vmethod,
7753 it is done in append_output_buffer_metadata() thus deinterlaced
7754 buffers could also have the proper metas.
7755 GstVideoCropMeta now it is copied internally and it is decided via
7756 transform_meta() vmethod.
7757 A new internal method, copy_metadata() was added to handle VPP
7758 transformation where non-GstVideoVaapiMeta metas were lost.
7760 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7762 * gst/vaapi/gstvaapipostproc.c:
7763 postproc: Copy meta data from input to output
7764 This will ensure that meta data without memory tags will be copied. This
7765 was noticed when testing ROI.
7766 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7768 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7770 * tests/elements/test-roi.c:
7771 tests: element: rewrite ROI test
7772 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
7773 than injecting GstEvents. These meta are added as a pad probe in
7776 * Use of navigation messages to control de test
7777 * Use signal watch for processing messages
7778 * Change to H265 rather than H264 since current intel-vaapi-driver
7779 only supports ROI on kabylake.
7780 TODO: add a parameter to change the encoder/decoder to test.
7781 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7783 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7785 * gst-libs/gst/vaapi/gstvaapicontext.c:
7786 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7787 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7788 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7789 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7790 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7791 libs: encoder: reimplement ROI using meta
7792 Check input buffers for ROI metas and pass them to VA. Also added a
7793 new "default-roi-delta-qp" property in order to tell the encoder what
7794 delta QP should be applied to ROI by default.
7795 Enabled it for H264 and H265 encoders.
7796 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7798 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7800 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7801 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7802 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7803 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
7804 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
7805 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7807 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7809 * tests/simple-encoder.c:
7810 Revert "tests: simple-encoder: add an option to set ROI"
7811 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
7812 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7814 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7816 * gst/vaapi/gstvaapiencode.c:
7817 * gst/vaapi/gstvaapiencode_h264.c:
7818 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
7819 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
7820 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7822 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7824 * gst/vaapi/gstvaapipluginbase.c:
7825 plugins: copy input buffer metas
7826 When importing buffers to a VA-base buffer, it is required to copy
7827 the metas in the original buffer, otherwise information will be
7828 lost, such as GstVideoRegionOfInterestMeta.
7829 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7831 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7833 * gst-libs/gst/vaapi/gstvaapisurface.c:
7834 libs: surface: cast to uintptr_t pointer
7835 According to Debian package auto-building, uintptr_t is not an
7836 unsigned long in i386 arch, raising an "incompatible pointer type"
7838 This patch adds a casting for compiler's satisfaction in i386.
7840 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7842 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7843 libs: encoder: add zero as valid value for periodic keyframe.
7844 Enabled zero as valid value for keyframe-period property.
7845 https://bugzilla.gnome.org/show_bug.cgi?id=793829
7847 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7849 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7850 libs: encoder: code-style fix
7852 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7854 * gst/vaapi/gstvaapidecode.c:
7855 vaapidecode: generate system allocated buffers
7856 Generate system allocated output buffers when downstream doesn't
7857 support GstVideoMeta.
7858 The VA buffer content is copied to the new output buffer, and it
7859 replaces the VA buffer.
7860 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7862 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7864 * gst/vaapi/gstvaapipostproc.c:
7865 vaapipostproc: handle system allocated buffers when required
7866 When downstream can't handle GstVideoMeta it is required to send
7867 system allocated buffers.
7868 The system allocated buffers are produced in prepare_output_buffer()
7869 vmethod if downstream can't handl GstVideoMeta.
7870 At transform() vmethod if the buffer is a system allocated buffer,
7871 a VA buffer is instanciated and replaces the out buffer. Later
7872 the VA buffer is copied to the system allocate buffer and it
7873 replaces the output buffer.
7874 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7876 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7878 * gst/vaapi/gstvaapipluginbase.c:
7879 * gst/vaapi/gstvaapipluginbase.h:
7880 plugins: add gst_vaapi_copy_va_buffer()
7881 This helper function aims to copy buffers with VA memory to dumb
7882 buffers, when GstVideoMeta is not available dowstream.
7883 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7885 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7887 * gst/vaapi/gstvaapipluginbase.c:
7888 * gst/vaapi/gstvaapipluginbase.h:
7889 plugins: add COPY_OUTPUT_FRAME flag
7890 This patch add the member copy_output_frame and set it TRUE when
7891 when downstream didn't request GstVideoMeta API, the caps are raw
7892 and the internal allocator is the VA-API one.
7893 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7895 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7897 * gst/vaapi/gstvaapipluginbase.c:
7898 * gst/vaapi/gstvaapipluginbase.h:
7899 plugins: store the first downstream allocator if available
7900 The allocator will be required if we need to allocate a buffer
7901 to store the frame with the expected strides.
7902 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7904 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7906 * gst/vaapi/gstvaapivideobufferpool.c:
7907 * gst/vaapi/gstvaapivideobufferpool.h:
7908 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
7909 This function will inform the element if it shall copy the generated
7910 buffer by the pool to a system allocated buffer before pushing it
7912 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7914 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7916 * gst/vaapi/gstvaapivideobufferpool.c:
7917 vaapibufferpool: don't change config when forcing video meta
7918 VA-API based buffer might need a video meta because of different
7919 strides. But when donwstream doesn't support video meta we need to
7920 force the usage of video meta.
7921 Before we changed the buffer pool configuration, but actually this
7922 is a hack and we cannot rely on that for downstream.
7923 This patch add a check fo raw video caps and allocator is VA-API,
7924 then the option is enabled without changing the pool configuration.
7925 In this case the element is responsible to copy the frame to a
7926 simple buffer with the expected strides.
7927 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7929 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7931 * gst/vaapi/gstvaapipostproc.c:
7932 vaapipostproc: set discont flag at vpp deinterlacing
7933 When deinterlacing with VPP the discont flag was not forwarded to
7934 the new created buffer. This patch sets the discont flag if input
7937 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7939 * gst/vaapi/gstvaapivideobufferpool.h:
7940 vaapibufferpool: remove wrong gcc annotation
7942 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7944 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7945 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7946 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7947 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7948 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7949 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7950 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
7951 libs: encoder: h264,h265: extend max periodic keyframe.
7952 Increased max values of periodic key frame for h26x codecs.
7953 This allow more fine tunning of encoder that in certian scenario
7954 want higher periodic key frame.
7955 For example: it doesn't want a key frame each 10 seconds but
7957 https://bugzilla.gnome.org/show_bug.cgi?id=786320
7959 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
7965 === release 1.13.1 ===
7967 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
7972 * gstreamer-vaapi.doap:
7976 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
7978 * gst/vaapi/Makefile.am:
7979 vaapi: dist new header
7981 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7983 * gst/vaapi/gstvaapi.c:
7984 vaapi: register vaapisink as marginal on wayland
7985 vaapsink, when used with the Intel VA-API driver, tries to display
7986 surfaces with format NV12, which are handled correctly by
7987 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
7988 pipelines on mutter.
7989 This shall be solved either by COGL or by making the driver to paint
7990 RGB surfaces. In the meanwhile, let's just demote vaapisink as
7991 marginal when the Wayland environment is detected, no matter if it is
7993 https://bugzilla.gnome.org/show_bug.cgi?id=775698
7995 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7997 * gst/vaapi/gstvaapipluginutil.c:
7998 plugins: update mesa's vendor string in whitelist
7999 Mesa has updated its VA-API Gallium driver vendor string:
8000 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
8001 This patch tries to cover both, the old and the new one.
8002 https://bugzilla.gnome.org/show_bug.cgi?id=793386
8004 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
8007 meson: make version numbers ints and fix int/string comparison
8008 WARNING: Trying to compare values of different types (str, int).
8009 The result of this is undefined and will become a hard error
8010 in a future Meson release.
8012 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8014 * gst/vaapi/gstvaapipluginbase.c:
8015 plugins: handle vaapi allocator in allocation query
8016 In propose_allocation() if the numer of allocation params is zero, the
8017 system's allocator is added first, and lastly the native VA-API
8019 In decide_allocation(), the allocations params in query are travered,
8020 looking for a native VA-API allocator. If it is found, it is reused as
8021 src pad allocator. Otherwise, a new allocator is instantiated and
8022 appended in the query.
8023 https://bugzilla.gnome.org/show_bug.cgi?id=789476
8025 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8027 * gst/vaapi/gstvaapivideomemory.h:
8028 vaapivideomemory: remove unused macro
8029 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
8030 was never used, since the native VA-API allocator name has been
8031 GST_VAAPI_VIDEO_MEMORY_NAME.
8032 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
8033 https://bugzilla.gnome.org/show_bug.cgi?id=789476
8035 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
8037 * gst/vaapi/gstvaapisink.c:
8038 vaapisink: don't mask button events for foreign windows
8039 Don't subscribe to button press events when using a foreing window,
8040 because the user created window would trap those events, preveting the
8042 https://bugzilla.gnome.org/show_bug.cgi?id=791615
8044 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
8047 autotools: use -fno-strict-aliasing where supported
8048 https://bugzilla.gnome.org/show_bug.cgi?id=769183
8050 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
8053 meson: use -fno-strict-aliasing where supported
8054 https://bugzilla.gnome.org/show_bug.cgi?id=769183
8056 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
8058 * gst/vaapi/gstvaapi.c:
8059 vaapi: add NULL-sentinel to kernel_names
8060 The array needs to be NULL-terminated according to the
8061 gst_plugin_add_dependency() documentation.
8063 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8065 * gst/vaapi/gstvaapipostprocutil.c:
8066 vaapipostproc: remove spurious code
8067 This assignation is dead code, since gst_video_info_from_caps() set
8069 https://bugzilla.gnome.org/show_bug.cgi?id=790149
8071 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8073 * gst/vaapi/gstvaapipostprocutil.c:
8074 vaapipostproc: if no p-a-r in out caps define a range
8075 Instead of copying the pixel-aspect-ratio from the sink caps, define
8076 an open range for the src caps pixel-aspect-ratio. Later it will be
8078 https://bugzilla.gnome.org/show_bug.cgi?id=790149
8080 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8082 * gst/vaapi/gstvaapisink.c:
8083 vaapisink: check for display's color-balance properties
8084 Check for display's color-balance properties, available by the VA-API
8085 driver, before setting them.
8086 Also logs an info message of those unavailable properties.
8087 https://bugzilla.gnome.org/show_bug.cgi?id=792638
8089 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8091 * gst/vaapi/gstvaapipluginbase.c:
8092 plugins: re-using buffer pool breaks renegotiation
8093 at propose_allocation() we should not reuse the proposed buffer,
8094 because it could break renegotiation.
8095 https://bugzilla.gnome.org/show_bug.cgi?id=792620
8097 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8099 * gst/vaapi/gstvaapipluginbase.c:
8100 plugins: use g_clear_object() to unref sinkpad_buffer_pool
8101 https://bugzilla.gnome.org/show_bug.cgi?id=792620
8103 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8105 * gst-libs/gst/vaapi/meson.build:
8106 build: meson: add missing GstGL dependency
8108 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8110 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
8111 libs: utils: egl: add missing guards for GstGL
8113 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8115 * gst/vaapi/gstvaapipluginbase.c:
8116 plugins: remove dmabuf-import hack
8117 Remove the hack to check if an upstream element has enabled the
8118 property io-mode enabled as dmabuf-import.
8119 https://bugzilla.gnome.org/show_bug.cgi?id=792034
8121 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8123 * gst-libs/gst/vaapi/Makefile.am:
8124 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8125 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
8126 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
8127 libs: egl: utils: use eglGetPlatformDisplay()
8128 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
8129 eglGetDisplay() is rather fragile, and it is recommended to use
8130 eglGetPlatformDisplay() when possible.
8131 In order to do that, this patch uses the helper in GstGL. If
8132 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
8134 https://bugzilla.gnome.org/show_bug.cgi?id=790493
8136 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
8138 * gst/vaapi/gstvaapipostproc.c:
8139 vaapipostproc: lock ensure_filter with postproc_lock
8140 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
8141 and allowed_sinkpad_caps. This can race with copying these caps in
8142 gst_vaapipostproc_transform_caps and lead to segfaults.
8143 The gst_vaapipostproc_transform_caps function already locks
8144 postproc_lock before copying the caps. Make sure that calls to
8145 gst_vaapipostproc_ensure_filter also acquire this lock.
8146 https://bugzilla.gnome.org/show_bug.cgi?id=791404
8148 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8150 * tests/test-filter.c:
8151 tests: test-filter: fix dereference before null check
8152 Null-checking op_info suggests that it may be null, but it has already
8153 been dereferenced on all paths leading to the check.
8154 There may be a null pointer dereference, or else the comparison
8155 against null is unnecessary.
8157 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8159 * tests/y4mreader.c:
8160 tests: y4mreader: fix string state checkup
8161 str cannot be null in that moment, but it may be the end of string.
8163 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8165 * tests/y4mreader.c:
8166 tests: y4mreader: use int for fgetc
8167 Assigning the return value of fgetc to char truncates its value.
8168 It will not be possible to distinguish between EOF and a valid
8171 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8173 * tests/y4mreader.c:
8174 tests: y4mreader: fix incompatible cast
8175 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
8176 they are dereferenced as a wider long (64 bits, signed). This may lead
8177 to memory corruption.
8179 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
8182 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
8184 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
8187 Automatic update of common submodule
8188 From e8c7a71 to 3fa2c9e
8190 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8192 * gst/vaapi/gstvaapivideocontext.c:
8193 videoconvert: gst_element_post_message() is transfer full on msg
8194 For this reson we need not to unref the message, even if it failed.
8196 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8198 * gst/vaapi/gstvaapivideocontext.c:
8199 Revert "vaapivideocontext: possible memleak when no bus attached"
8200 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
8202 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8204 * tests/elements/test-vaapicontext.c:
8205 test: vaapicontext: process have-context bus message
8207 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8209 * tests/elements/test-vaapicontext.c:
8210 test: vaapicontext: app context is not persistent
8212 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8214 * gst/vaapi/gstvaapipluginbase.c:
8215 * gst/vaapi/gstvaapivideocontext.c:
8216 * gst/vaapi/gstvaapivideocontext.h:
8217 vaapivideocontext: only vaapisink process app context
8218 gst.vaapi.app.Display context is made for applications that will
8219 provide the VA display and the native display to used by the
8220 pipeline, when are using vaapisink as overlay. There are no use
8221 case for encoders, decoders, neither for the postprocessor.
8222 In the case of the vaapisink, it shall query for gst.vaapi.Display
8223 upstream first, and then, if there is no reply,
8224 gst.vaapi.app.Display context will be posted in the bus for the
8225 application. If the application replies, a GstVaapiDisplay object
8226 is instantiated given the context info, otherwise a
8227 GstVaapiDisplay is created with the normal algorithm to guess the
8228 graphics platform. Either way, the instantiated GstVaapiDisplay
8229 is propagated among the pipeline and the have-message bus message.
8230 Also only vaapisink will process the gst.vaapi.app.Display, if
8231 and only if, it doesn't have a display already set. This is
8232 caused because if vaapisink is in a bin (playsink, for example)
8233 the need-context is posted twice, leading to an error state.
8234 https://bugzilla.gnome.org/show_bug.cgi?id=790999
8236 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8238 * gst/vaapi/gstvaapivideocontext.c:
8239 vaapivideocontext: log the name of GstVaapiDisplay
8240 https://bugzilla.gnome.org/show_bug.cgi?id=790999
8242 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8244 * gst/vaapi/gstvaapivideocontext.c:
8245 vaapivideocontext: possible memleak when no bus attached
8246 https://bugzilla.gnome.org/show_bug.cgi?id=790999
8248 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8250 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
8251 libs: window: wayland: remove unused header include
8252 Remove wayland-client.h include since there is no exposed symbols from
8255 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8257 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8258 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8259 libs: encoder: h264,h265: guard rate control's macroblock
8260 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
8262 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
8265 Automatic update of common submodule
8266 From 3f4aa96 to e8c7a71
8268 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8270 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8271 libs: encoder: h264: Add Hierarchical-B encode
8272 Frames are encoded as different layers. Frame in a particular
8273 layer will use pictures in lower or same layer as references.
8274 Which means decoder can drop the frames in upper layer but still
8275 decode lower layer frames.
8276 B-frames, except the one in top most layer, are reference frames.
8277 All the base layer frames are I or P.
8278 eg: with 3 temporal layers
8282 T1, T2, T3: Temporal Layers
8285 T1: I0->P4 , P4->P8 etc..
8287 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
8288 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8289 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8291 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8293 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8294 libs: encoder: h264: Add Hierarchical-P encode
8295 Frames are encoded as different layers. A frame in a particular
8296 layer will use pictures in lower or same layer as references.
8297 Which means decoder can drop the frames in upper layer but still
8298 decode lower layer frames.
8299 eg: with 3 temporal layers
8303 T1, T2, T3: Temporal Layers
8305 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
8306 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8307 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8309 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8311 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8312 libs: encoder: h264: Fix frame_num generation
8313 The frame_num generation was not correctly implemented.
8314 According to h264 spec, frame_num should get incremented
8315 for each frame if previous frame is a referece frame.
8316 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
8317 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8318 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8320 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8322 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8323 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8324 libs: encoder: h264: Add new property "prediction-type"
8325 Adds new property "prediction-type" to select different reference
8326 picture selection modes like hierarchical-p, hierarchical-b etc.
8327 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8328 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8330 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
8332 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8333 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8334 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
8335 Adds some basic building blocks to ease the implementation
8336 of hierarchical prediction modes.
8337 -- add an utility method to find temporal level of each frame
8338 -- define max_ref_frame count based on temporal level count
8339 -- add temporal_level_div[] for finding temporal level each frame
8341 -- find ip_period based on temporal level count
8342 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8343 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8345 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
8347 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8348 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8349 libs: encoder: h264: Add property "temporal-levels"
8350 Adds new property "temporal-levels" to select the number of
8351 temporal levels to be included in the encoded stream.
8352 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8353 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8355 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
8357 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8358 libs: encoder: objects: Add a reference flag
8359 We can have p-frame as non-ref and also b-frame as ref
8360 which are not supported yet. Reference flag
8361 is the first machinery needed for more advanced
8362 reference picture selection modes.
8363 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8364 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8366 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
8368 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8369 libs: surface: egl: add comment
8370 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
8371 where the creation of surfaces from GEM fd may fail.
8372 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8374 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8376 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8377 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
8378 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8379 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
8380 Adds a new function that changes the internal EGL display to the
8381 current one (eglGetCurrentDisplay()) and sets the current context
8382 too (eglGetCurrentContext()).
8383 This new function is called by gst_vaapi_texture_egl_create() updating
8384 the GstVaapiDisplayEGL with the current EGL display.
8385 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8387 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8389 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8390 libs: texture: egl: update EGL display and context
8391 It is required to use the context of the calling thread when wrapping
8392 a foreign texture. According the documentation of
8393 GstVideoGLTextureUploadMeta:
8394 "The caller of gst_video_gl_texture_upload_meta_upload() must
8395 have OpenGL set up and call this from a thread where it is valid
8396 to upload something to an OpenGL texture."
8397 This patch updates the EGL display and context in GstVaapiDisplay
8398 instance to the one used by te renderer that uploads the texture.
8399 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
8400 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8402 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8404 * gst/vaapi/gstvaapipluginbase.c:
8405 plugins: centralize assignation of GL objects
8406 Add plugin_set_gst_gl() where the GstGL objects are assigned.
8407 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8409 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8411 * gst/vaapi/gstvaapipluginbase.c:
8412 plugins: set GL objects if ensured
8413 Only set the GL display and GL other context if they are ensured.
8414 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8416 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8418 * gst/vaapi/gstvaapipluginbase.c:
8419 plugins: set GL objects if context is handled
8420 Only set the GL display and GL other context if they are extracted
8421 correctly from the gstreamer's context.
8422 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8424 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8426 * gst/vaapi/gstvaapipluginbase.c:
8427 plugins: fix memory leak when GL context is created
8428 When the GL display and context are created inside an VAAPI element
8429 the created GL context is leaked.
8430 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8432 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8434 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8435 libs: display: egl: free leaked memory
8436 The EGL VAAPI display forgot to release the egl display, context and
8437 proxied VAAPI display.
8438 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8440 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8442 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8443 libs: texture: egl: code style
8444 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8446 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8448 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8449 libs: surface: egl: error message if no extension
8450 Instead of silently fail to export the image if there is not available
8451 the EGL_MESA_drm_image, log an error message. Also a code refactoring
8453 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8455 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8457 * gst/vaapi/gstvaapipluginbase.c:
8458 plugins: direct rendering on memory:VASurface
8459 As buffers negotiated with memory:VASurface caps feature can also be
8460 mapped, they can also be configured to use VA derived images, in other
8461 words "direct rendering".
8462 Also, because of the changes in dmabuf allocator as default allocator,
8463 the code for configuring the direct rendering was not clear.
8464 This patch cleans up the code and enables direct rendering when the
8465 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
8466 even then the memory:VASurface cap feature is negotiated.
8467 https://bugzilla.gnome.org/show_bug.cgi?id=786054
8469 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8471 * gst/vaapi/gstvaapipluginbase.c:
8472 * gst/vaapi/gstvaapipluginutil.c:
8473 plugins: only dmabuf on srcpad if downstream
8474 Set if source pad can handle dmabuf only if the GstGL context comes
8476 It is possible to know that at two moments:
8477 1\ In the case of GstGLTextureUpload caps feature is negotiated and
8478 downstream pool reports back gst.gl.GstGLContext.
8479 2\ When GstGLContext is found as GstContext from dowstream.
8480 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8482 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8484 * gst/vaapi/gstvaapivideocontext.c:
8485 vaapivideocontext: add inline documentation
8486 Document function gst_vaapi_find_gl_local_context().
8487 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8489 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8491 * gst/vaapi/gstvaapipluginutil.c:
8492 * gst/vaapi/gstvaapivideocontext.c:
8493 * gst/vaapi/gstvaapivideocontext.h:
8494 vaapivideocontext: return the direction of gl context
8495 In function gst_vaapi_find_gl_context() add a direction parameter to
8496 return back the direction where the GstGL context was found.
8497 This is going to be useful when checking if downstream can import
8498 dmabuf-based buffers.
8499 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8501 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8503 * gst/vaapi/gstvaapipluginbase.c:
8504 * gst/vaapi/gstvaapipluginbase.h:
8505 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
8506 This patch refactors the code by adding the function
8507 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
8508 GstGLContext can handle dmabuf-based buffers.
8509 The function is exposed publicly since it is intended to be used later
8510 at GstVaapiDisplay instantiation.
8511 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8513 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
8515 * gst/vaapi/gstvaapiencode.c:
8516 vaapiencode: allow to set property on runtime
8517 Tis patch, allows some properties that we want to be set on
8518 runtime. (eg. bitrate)
8519 Note that all properties are under control by num_codedbuf_queued.
8520 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8522 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
8524 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8525 libs: encoder: allow to set bitrate on runtime
8526 In case of streaming, controlling bitrate dynamically for encoder might be
8527 important to manage quality of the streaming.
8528 This patch is to support such a scenario.
8529 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8531 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
8533 * gst/vaapi/gstvaapi.c:
8534 * gst/vaapi/gstvaapi.h:
8535 * gst/vaapi/gstvaapidecodebin.c:
8536 vaapidecodebin: Register element if no VPP support is available too
8537 VPP support is only needed for advanced deinterlacing, which is not
8538 enabled by default either. Error out if it is selected but VPP is not
8539 supported, and otherwise just work without VPP support.
8540 https://bugzilla.gnome.org/show_bug.cgi?id=788758
8542 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
8544 * gst/vaapi/gstvaapipluginutil.c:
8545 Avoid infinite loop when vaapi_create_display fails
8546 Which might be the case when using, for example, xvfb.
8548 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8550 * gst-libs/gst/vaapi/gstvaapiutils.c:
8551 libs: utils: log warn if display fail
8552 gstreamer-vaapi initializes the display by trial-and-error, thus
8553 logging an error message if the display initialisation fails the user
8554 may be weary of the error message in the screen, if using VA-API 1.0
8555 This commit set the VA error log handler to GStreamer warning level
8556 while calling vaInitialize() and set it to error after that.
8557 https://bugzilla.gnome.org/show_bug.cgi?id=783169
8559 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8561 * gst/vaapi/gstvaapipluginutil.c:
8562 plugins: try to create test display in order
8563 When creating the test display for querying capabilites, it try in
8564 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
8565 since they are either composited with X11 or Wayland.
8566 The reason for this is to reduce the posibility of failure that could
8567 blacklist the plugin.
8568 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8570 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8572 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8573 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8574 libs: display: delay getting screen resolution
8575 Instead of extracting the screen resolution at GstVaapiDisplay
8576 creation, this patch delay it until the screen size is requested for
8578 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8580 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8582 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8583 libs: display: egl: avoid two vaDisplay instantiates
8584 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
8585 or Wayland. Nonetheless it created another vaDisplay for it, instead
8586 of using the wrapped one.
8587 This patch enables the reuse of the wrapped vaDisplay avoiding
8589 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8591 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8593 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8594 * gst-libs/gst/vaapi/gstvaapidisplay.h:
8595 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
8596 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
8597 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
8598 libs: display: remove display_type from display info
8599 Since it's no required to pass the display type in the display info,
8600 the structure member is removed.
8601 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8603 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8605 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8606 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8607 libs: display: remove display_type member
8608 It is not used any more since GstVaapiDisplay was ported as a
8609 GstObject-based. This information is part of the class information.
8610 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8612 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8614 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8615 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8616 libs: display: remove parent member
8617 Parent was a crumb left from display cache.
8618 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8620 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
8622 * gst/vaapi/gstvaapi.c:
8623 vaapi: Also register vaapipostproc without VPP support
8624 It can still do simple deinterlacing then.
8626 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
8628 * gst/vaapi/gstvaapipostproc.c:
8629 vaapipostproc: Allow running without VPP support
8630 We returned FALSE from ::start() if VPP support is not available, but it
8631 is only really needed for complex filters and during transform we check
8632 for that. For simple deinterlacing it is not needed.
8634 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8636 * gst/vaapi/gstvaapipostproc.c:
8637 vaapipostproc: use scoped variable for return value
8638 Instead of reusing a parameter variable for the return value of
8639 gst_vaapipostproc_transform_caps(), this patch uses the function
8640 scoped pointer. Thus, the code is cleaner.
8641 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8643 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8645 * gst/vaapi/gstvaapipostproc.c:
8646 vaapipostproc: removed unused parameter
8647 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
8648 helper function since the it is not used.
8649 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8651 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8653 * gst/vaapi/gstvaapipostproc.c:
8654 vaapipostproc: use scoped variable for return value
8655 Instead of reusing a parameter variable for the return value of
8656 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
8657 pointer. Thus, the code is cleaner.
8658 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8660 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8662 * gst/vaapi/gstvaapipluginutil.h:
8663 plugins: memory:DMABuf only handles planar formats
8664 When glimagesink negotiates the caps feature memory:DMABuf the
8665 exported dmabufs buffers with NV12 format are not well rendered, thus
8666 setting only planar.
8667 https://bugzilla.gnome.org/show_bug.cgi?id=788229
8669 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8671 * gst/vaapi/gstvaapiencode.c:
8672 vaapiencode: flush pending frames before set format
8673 Flush pending frames, if any, in the internal encorder, before setting
8674 the new negotiated format.
8675 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8677 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8679 * gst/vaapi/gstvaapidecode.c:
8680 vaapidecode: drain pending frames before set format
8681 Drain pending frames, if any, in the internal decoder before setting
8682 the new negotiated format.
8683 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8685 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8687 * tests/test-display.c:
8688 tests: display: use GObject getter
8689 Instead of using the gst_vaapi_display_get_property(), this patch
8690 replaces it with g_object_get_property() to dump the available VA
8692 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8694 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8696 * gst/vaapi/gstvaapisink.c:
8697 vaapisink: use GObject setter and getter
8698 Instead of using gst_vaapi_display_set_property() or
8699 gst_vaapi_display_get_property(), this patch set replace it usage
8700 with g_object_set() or g_object_get().
8701 Also the internal helper cb_set_value() is removed since it is not
8703 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8705 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8707 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8708 libs: display: initialize value if they are not yet
8709 This is a difference between the GObject API and the GstVaapi one: the
8710 GValue passed to get a property value, in GObject has to be
8711 initialized with g_value_init(), but in GstVaapi is has not.
8712 In order to overcome this mismatch, this patch call g_value_init()
8713 internally only in the passed one is not already initialized.
8714 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8716 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8718 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8719 libs: display: optimize properties setters and getters
8720 Shuffled some code to avoid to find the properties descriptor in the
8721 array twice, adding the internal functions _set_property() and
8723 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8725 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8727 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8728 libs: display: install properties in class
8729 Install the properties in the class as a normal GObject. Implement
8730 set_property() and get_property() vmethods.
8731 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8733 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8735 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8736 libs: display: remove gst_vaapi_display_properties_init()
8737 Remove gst_vaapi_display_properties_init() since it can be unrolled in
8738 gst_vaapi_display_class_init()
8739 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8741 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8743 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8744 libs: display: remove libgstvaapi_init_once()
8745 It is not required since it can be unrolled in
8746 gst_vaapi_display_class_init()
8747 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8749 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8751 * tests/test-display.c:
8752 tests: test-display: remove display cache tests
8753 Since commit ec3e10f6, display cache was removed. This patch removes
8754 this leftovers in the display test.
8756 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
8758 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8759 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8760 libs: decoder: h264/h265: decode codec data only if opened
8761 Fixes regression introduced by commit 2eb2b26a.
8762 There is a use case when the decoder set the src caps and immediatly
8763 tries to process the media codec_data, this happens before decoder is
8764 even opened, thus priv->parser is not instantiated yet.
8765 https://bugzilla.gnome.org/show_bug.cgi?id=787818
8767 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8769 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8770 * gst-libs/gst/vaapi/gstvaapiencoder.h:
8771 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8772 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8773 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8774 libs: encoder: change mbbrc from uint to enum
8775 Instead of handling the macroblock bitrate control as a integer, this
8776 patch changes it as a enum, which is more self documented in the
8778 https://bugzilla.gnome.org/show_bug.cgi?id=787855
8780 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
8782 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8783 Fix a typo in the prop string for compliance-mode
8785 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8787 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8788 libs: encoder: don't unref properties
8789 This patch fixes a regression introduced in commit 148f867c, since the
8790 props variable is set to object's member variable
8791 encoder->properties. And it is set in the instance initialization,
8792 thus it will not be leaked.
8793 https://bugzilla.gnome.org/show_bug.cgi?id=787733
8795 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
8797 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8798 * gst/vaapi/gstvaapiencode.c:
8799 vaapiencode/libs: encoder: fix leaks of properties
8800 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8802 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8804 * gst-libs/gst/vaapi/gstvaapidecoder.c:
8805 libs: decoder: at update_caps() decode codec_data
8806 When updating the caps in decoder, if the caps has codec_data (avC
8807 format), it has to be parsed to update the state of the decoder.
8808 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8810 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
8812 * gst-libs/gst/vaapi/gstvaapicontext.c:
8813 libs: context: fix wrong counter of the array of attributes
8814 The counter value passed to vaCreateConfig is always +1.
8815 This is a regression caused by commit e42ec3ad.
8816 The present patch fixes wrong counting of the array of attributes.
8817 https://bugzilla.gnome.org/show_bug.cgi?id=787613
8819 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
8821 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8822 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8823 libs: encoder: h265: support I/P/B QP setting seperatedly
8824 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8826 and set slice_qp_delta for each frame according to the value provided.
8827 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8829 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
8831 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8832 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8833 libs: encoder: h264: support I/P/B QP setting seperatedly
8834 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8836 and set slice_qp_delta for each frame according to the value provided.
8837 In addition, remove the limitation of (<= 4) when setting
8839 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8841 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
8843 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8844 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8845 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
8846 Creates new variable for QP for I frame and keep it at configuration and
8847 use this for pic_init_qp and slice_qp_delta setting.
8848 Since changing min qp doesn't make sense, keep min qp as is.
8849 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8851 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
8853 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8854 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8855 libs: encoder: h265: Add mbbrc property
8856 This property supports Macroblock level Bitrate Control as the
8857 following (same as h264 encoder):
8861 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8863 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
8865 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8866 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8867 libs: encoder: h264: Add mbbrc property
8868 This property supports Macroblock level Bitrate Control as the
8873 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8875 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
8877 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8878 libs: encoder: h265: add multi reference support
8879 This is doing the same as h264 encoder as the following:
8880 Using num_ref_frames provided and the result of the Query
8881 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
8882 and perform encoding with multi reference frames as the following:
8883 1\ The num_ref_frames is being considered as the number of
8884 reference picture list0
8885 2\ Encoder adds 1 reference frame more to the reference picture list1
8886 internally if b-frame encoding.
8887 3\ If num_ref_frames is bigger than the number of refrence frames
8888 supported in the driver, it will be lowered.
8889 Also this patch includes:
8890 - Set num_negative_pics and num_positive_pics according to the number of
8892 - Set delta_poc according to the number of refs.
8893 - Increase max_dec_pic_buffering according to the number of refs
8894 - Change max_num_reorder_pics according to num of bframes
8895 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8897 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
8899 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8900 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8901 libs: encoder: h265: add refs property
8902 Users can provide the number of reference frame by this property,
8903 which is exaclty same as h264.
8904 The value of the property will be considered as the number of
8905 reference picture list0 and will add 1 reference frame more to the
8906 reference picture list1 internally if b-frame encoding.
8907 If the value provided is bigger than the number of refrence frames
8908 supported in the driver, it will be lowered.
8909 The maximum value is aligned to the value of the driver supported now.
8910 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8912 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8914 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8915 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8916 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
8917 Follows the specification as below:
8918 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
8919 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
8920 element num_ref_idx_l0_active_minus1 is present for P and B slices and
8921 that the syntax element num_ref_idx_l1_active_minus1 is present for B
8923 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
8924 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
8926 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8928 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
8930 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8931 libs: encoder: h265: keep idr_period equal to keyframe period
8932 Remove FIXME code, which makes previous assignation spurious.
8933 This also means to make idr_period equal to keyframe period,
8934 which is same as h264 encoder.
8935 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8937 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8939 * gst/vaapi/gstvaapipluginbase.c:
8940 Request minimum buffer even if need_pool is FALSE
8941 When tee is used, it will not request a pool, but still it wants to
8942 know how many buffers are required.
8943 https://bugzilla.gnome.org/show_bug.cgi?id=730758
8945 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
8947 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8948 libs: encoder: h264_fei: VA-API 1.0 compat
8949 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
8951 https://bugzilla.gnome.org/show_bug.cgi?id=787322
8952 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
8954 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8956 * gst/vaapi/gstvaapisink.c:
8957 vaapisink: Fix rendering in drm display
8958 Make sure vaapisink create a va surface backed buffer pool and all
8959 required attributes get assigned correctly for drm display type.
8960 This is needed to make the below pipeline working:
8961 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
8962 width=320 height=240 framerate=30/1 ! vaapisink display=drm
8963 https://bugzilla.gnome.org/show_bug.cgi?id=786954
8965 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8967 * tests/Makefile.am:
8968 * tests/test-fei-enc-in.c:
8969 * tests/test-fei-enc-out.c:
8970 FEI: Add test applications to showcase fei use case
8971 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
8973 ./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
8974 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
8976 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
8977 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
8978 from saved files is still not working
8980 Wang, Yi <yi.a.wang@intel.com>
8981 Leilei <leilei.shang@intel.com>
8982 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8983 xiaominc <xiaomin.chen@intel.com>
8984 Li, Jing B <jing.b.li@intel.com>
8985 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8986 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8988 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8990 * gst/vaapi/Makefile.am:
8991 * gst/vaapi/gstvaapi.c:
8992 * gst/vaapi/gstvaapiencode_h264_fei.c:
8993 * gst/vaapi/gstvaapiencode_h264_fei.h:
8994 FEI: plugin: Add vaapih264feienc element
8995 A new FEI based encoder element for h264 is added: vaapih264feienc
8996 FEI is a an extension to VA-API which is providing low level
8997 advanced control over different stages of encoding.
8998 Extending vaapih264enc with fei support is possible, but it will
8999 make the code too much complicated and will be difficult
9000 to debug. So adding the new encoder element, but keeping
9001 the rank as 0 , vaapih264enc will stay as the primary
9002 encoder for normal use cases.
9003 The vaaih264feienc is mainly useful for customers who want to play
9004 with MotionVectors and Macroblock Predictions. Also user can
9005 do one stage of encoding(eg: only the Motion Vector Calculation)
9006 in software and offload trasformation/entroy-coding etc to
9007 Hardware (which is what PAK module is doing) using FEI element.
9008 vaapih264feienc can work in different modes using fei-mode properoty
9009 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
9010 Important Note: ENC only mode won't produce any encoded data which is expected.
9011 But ENC alwys requires the output of PAK in order to do the inter-prediction
9012 over reconstructed frames.
9013 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
9014 upstream element providing those buffers, PAK only won't work as expected.
9015 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
9016 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
9017 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
9018 separately in vaapih264feienc.
9020 Wang, Yi <yi.a.wang@intel.com>
9021 Leilei <leilei.shang@intel.com>
9022 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
9023 xiaominc <xiaomin.chen@intel.com>
9024 Li, Jing B <jing.b.li@intel.com>
9025 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9026 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9027 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9029 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
9031 * gst/vaapi/gstvaapiencode.c:
9032 * gst/vaapi/gstvaapiencode.h:
9033 FEI: plugin: Add virtual methods to base encode
9034 Two new virtual methods are added to gstvaapiencode.
9035 load_control_data(): load the FEI input buffers set by the upstream elements
9036 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
9037 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9038 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9039 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9041 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
9043 * gst/vaapi/Makefile.am:
9044 * gst/vaapi/gstvaapifeivideometa.c:
9045 * gst/vaapi/gstvaapifeivideometa.h:
9046 FEI: plugin: Add fei specific video meta
9047 GstVaapiFeiVideoMeta holds the below fei codec objects:
9048 GstVaapiEncFeiMbCode
9050 GstVaapiEncFeiMvPredictor
9051 GstVaapiEncFeiMbControl
9053 GstVaapiEncFeiDistortion
9054 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9055 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9056 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9058 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9060 * gst-libs/gst/vaapi/Makefile.am:
9061 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
9062 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
9063 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
9064 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
9065 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
9066 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
9067 FEI: libs: Add FEI encoder
9068 Adding FEI encoder to core lib.
9069 The code is splitted into three session:
9070 1: gstvaapiencoder_h264_fei.{h,c}
9071 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
9072 All the modes ENC, PAK and ENC_PAK are running based
9073 the code in these files.
9074 2: gstvaapifeienc_h264.{h,c}
9075 Abstract implementation intended for ENC (only VME) operation.
9076 3: gstvaapifeipak_h264.{h,c}
9077 Abstrct implementation intended for PAK (only the PAK module)
9078 Right now ENC_PAK, ENC and PAK are running based on code
9079 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
9080 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
9081 needed if user request for ENC+PAK mode operation.
9082 ENC+PAK: Here we need to invoke two sequence of
9083 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
9084 first for the ENC only and the second for PAK only.
9085 Each mode associated with separate context ,but same pool of surfaces are
9086 shared between the modes.
9087 This is more useful once we have custom BRC algorithms.
9089 Wang, Yi <yi.a.wang@intel.com>
9090 Leilei <leilei.shang@intel.com>
9091 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
9092 xiaominc <xiaomin.chen@intel.com>
9093 Li, Jing B <jing.b.li@intel.com>
9094 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9095 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9097 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9099 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
9100 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
9101 FEI: libs: Add fei codec objects to GstVaapiEncPicture
9102 All the codec objects(vaapi buffers) supposed to be
9103 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
9104 for each frame, follow the same design for FEI too.
9105 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9106 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9108 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9110 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
9111 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
9112 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
9113 FEI: libs: Add fei codec objects in codedbufferproxy
9114 MbCode, MV and Distortion buffers (fei codec objects)
9115 can be treated as output of different fei modes based user request.
9116 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
9117 can be dumped as output in ENC_PAK mode for analysis purpose.
9118 So treating them as a part of CodedBufferProxy too.
9119 Here we avoided Qp, MbControl and MvPredictor codec objects since
9120 there is no practical use case of treating them as "output buffers".
9122 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
9123 xiaominc <xiaomin.chen@intel.com>
9124 Leilei <leilei.shang@intel.com>
9125 Li, Jing B <jing.b.li@intel.com>
9126 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9127 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9129 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9131 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
9132 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
9133 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
9134 FEI: libs: Add fei codec objects to surface proxy
9135 Add fei codec objects to surface proxy since handling the
9136 fei buffers(codec objects here) external to gstvaapisurfaceproxy
9137 will make the code complicated. Especially considering the behavior
9138 of encoder where the input frame order from upstream and output
9139 frame order to the downstream are not sequential.
9141 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
9142 xiaominc <xiaomin.chen@intel.com>
9143 Leilei <leilei.shang@intel.com>
9144 Li, Jing B <jing.b.li@intel.com>
9145 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9146 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9148 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9150 * gst-libs/gst/vaapi/Makefile.am:
9151 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
9152 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
9153 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
9154 FEI: Add codec objects for fei usecase
9155 There are 6 new va buffer types, each defined as a specific codec object.
9156 Borrowed the code from gstvaapicodecobject , but made a clear separation
9157 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
9158 feicodecobjects can be shared between elements and also can be accessed
9159 from different thread.
9160 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
9161 object is not shared between elements.So we utilize the already
9162 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
9163 in gstvaapfei_objects_priv.h in order to have a better
9166 -- Probably we need _locked_map() and _unlocked_map()
9167 -- Context can be associated with PreEnc(not just Enoder)
9168 once we have the proper support inplace, but for now we don't have
9169 PreEnc support, so should be safe enough to use GstVaapiEncoder.
9170 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9171 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9173 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9175 * gst-libs/gst/vaapi/Makefile.am:
9176 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
9177 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
9178 FEI: libs: add H264 fei specific utility functions
9179 Added enum/flag type definitions for a number of FEI
9180 input and output parameters.
9181 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
9182 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9183 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9184 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
9185 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9187 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9189 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9190 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9191 FEI: libs: Add virtual method for secondary context creation.
9192 Add a new vitrual method ensure_secondary_context to the
9193 base encoder which is only required for the FEI entrypoint, that too
9194 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
9195 supported directly by libva or driver, but this can be enabled
9196 from the middleware.
9197 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
9198 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
9199 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
9200 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9201 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9202 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9204 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9206 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9207 FEI: libs: make sure the default context creation works as expected.
9208 Current code always guess the entrypoint during init phase in case
9209 if there is no entrypoint already configured in GstVaapiContextInfo.
9210 Make sure FEI Entrypoint is not messing up with this logic.
9211 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9212 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9214 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9216 * gst-libs/gst/vaapi/gstvaapicontext.c:
9217 * gst-libs/gst/vaapi/gstvaapicontext.h:
9218 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9219 FEI: libs: Add FEI functional mode configuration
9220 FEI Entrypoint can work in either one of the 3 different modes:
9221 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
9222 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
9223 functioal mode configuration.
9224 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9225 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9227 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9229 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9230 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9231 * gst-libs/gst/vaapi/gstvaapiprofile.h:
9232 FEI: libs: Add FEI Entrypoint mapping
9233 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
9234 for VAEntrypointFEI.
9235 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9236 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9238 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9241 FEI: Add support for FEI conditional build
9242 FEI(Flexible Encoding Infrastructure) is an extension
9243 to VA API. Define USE_H264_FEI_ENCODER based on
9244 fei header file and required structures availability.
9245 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9246 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9248 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
9250 * gst/vaapi/gstvaapidecode.c:
9251 vaapidecode: force add h264 SVC profiles in caps
9252 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
9254 https://bugzilla.gnome.org/show_bug.cgi?id=732266
9255 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9257 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
9259 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9260 libs: decoder: h264: decode SVC base layer only
9261 Drops non-base NALs when the base-only property is set to TRUE.
9262 This modifies the behavior for MVC streams with base-only too: All the
9263 non-base units are dropped before they are decoded instead of dropping
9264 the non-base frames.
9265 The relevant part from the H264 spec is:
9266 > Decoders that conform to one or more of the profiles specified in
9267 Annex A rather than the profiles specified in Annexes G or H shall
9268 ignore (remove from the bitstream and discard) the contents of all NAL
9269 units with nal_unit_type equal to 14, 15, or 20.
9270 To eliminate side effects from the offending units:
9271 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
9273 - The NAL parsing is skipped and their flags are set to
9274 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
9275 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
9276 use them even if they are flagged to be skipped. Subset SPS's and slice
9277 extension units are not stored there either.
9278 https://bugzilla.gnome.org/show_bug.cgi?id=732266
9279 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9281 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
9283 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9284 libs: decoder: h264: check nalu validity in parser info finalize
9285 https://bugzilla.gnome.org/show_bug.cgi?id=732266
9286 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9288 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9290 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9291 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9292 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9293 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9294 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9295 libs: encoder: remove unused cast macro
9296 Remove internal macro to cast structure that are already declared
9299 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9301 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9302 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
9303 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
9304 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
9305 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
9306 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9307 Revert "libs: encoders: remove unused cast macros"
9308 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
9310 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9312 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9313 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
9314 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
9315 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
9316 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
9317 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9318 libs: encoders: remove unused cast macros
9319 They are only used inside the code, where another macro is defined.
9320 Thus these exported macros have no use.
9322 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9324 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9325 libs: decoder: h264: improve code-style
9326 https://bugzilla.gnome.org/show_bug.cgi?id=786173
9328 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9330 * gst-libs/gst/vaapi/gstvaapicompat.h:
9331 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9332 libs: encoder: h264: handle deprecated enum
9333 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
9334 instead VAEncPackedHeaderRawData should be used.
9335 This patch creates a compatibility symbol,
9336 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
9338 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9340 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9342 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9343 * gst-libs/gst/vaapi/gstvaapiutils.c:
9344 libs: guard deprecated symbols
9345 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
9346 guards the H.264 baseline usage. Consider this commit as a
9347 continuation of commit e0e0a474
9348 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9350 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9354 * meson_options.txt:
9355 Revert "build: check for libva-2.0"
9356 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
9357 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9359 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9361 * gst-libs/gst/vaapi/gstvaapicompat.h:
9362 * gst-libs/gst/vaapi/gstvaapicontext.c:
9363 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9364 libs: macro to get a renamed value in VA-API 1.0
9365 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
9366 renamed one member from roi_value_is_qp_delat to
9367 roi_value_is_qp_delta, which is the correct name.
9368 In order to keep back compatibility a macro has added to access this
9370 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9372 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9374 * gst/vaapi/gstvaapipluginbase.h:
9375 * gst/vaapi/gstvaapipluginutil.c:
9376 plugins: include main gstgl header
9377 Instead including particular gstgl header files in a header file
9378 that doesn't export a gstgl symbol, the main gstgl header file is
9379 included in gstvaapipluginutil.c where the symbols are used.
9380 https://bugzilla.gnome.org/show_bug.cgi?id=786597
9382 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9384 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9385 libs: encoder: h264: fix enum namespace
9387 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
9390 Automatic update of common submodule
9391 From 48a5d85 to 3f4aa96
9393 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9395 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9396 libs: encoder: h264: remove spurious assignation
9398 An assigned value that is never used may represent unnecessary
9399 computation, an incorrect algorithm, or possibly the need for cleanup
9401 ip_period is assigned first to be rewritter inmediatly after. The
9402 first assignation is spurious.
9404 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
9406 * gst/vaapi/gstvaapidecode.c:
9407 vaapidecode: fix mismatch of the return type
9408 https://bugzilla.gnome.org/show_bug.cgi?id=786307
9410 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9412 * gst-libs/gst/vaapi/Makefile.am:
9413 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
9414 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
9415 * gst-libs/gst/vaapi/gstvaapiutils.h:
9416 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
9417 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9418 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9419 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9420 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
9421 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
9422 * gst-libs/gst/vaapi/meson.build:
9423 libs: remove unused header
9424 Since libgstvaapi is not distributed, there is no need to check for
9425 private header inclusion. Thus removing it.
9426 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9428 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9430 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9431 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9432 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9433 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9434 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9435 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9436 libs: utils: move gstvaapisurface.h to private headers
9437 Since the utils don't expose API defined in gstvaapisource.h, it is
9438 moved to their private headers where they are used.
9439 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9441 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9443 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9444 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9445 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9446 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9447 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
9448 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9449 libs: utils: remove va.h include in header
9450 And include gstvaapicompat.h in the C files, since the VA-API is not
9451 exposed in the headers.
9452 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9454 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9456 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9457 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9458 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9459 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9460 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9461 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9462 libs: encoder: remove va.h include
9463 Since it is already managed by gstvaapicompat.h
9464 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9466 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9468 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
9469 * gst-libs/gst/vaapi/gstvaapicompat.h:
9470 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9471 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9472 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9473 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9474 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9475 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9476 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9477 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9478 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9479 * gst-libs/gst/vaapi/gstvaapifilter.c:
9480 * gst-libs/gst/vaapi/gstvaapiutils.c:
9482 build: consolidate the VA sub API includes
9483 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
9484 since they are all already included in va.h after VA-API 0.38.
9485 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9487 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9491 build: check for va_vpp.h
9492 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
9493 allow us to handle the inclusion of the header better.
9494 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9496 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
9499 meson: don't export symbols by default
9500 Only plugin entry points should be exported.
9502 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9504 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9505 libs: decoder: h265: remove spurious code
9507 Logically dead code: The indicated dead code may have performed some
9508 action; that action will never occur.
9509 By using pointer arithmetic is impossible to get NULL.
9511 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9513 * gst-libs/gst/vaapi/gstvaapicontext.c:
9514 libs: context: use attribs index instead pointers
9516 Out-of-bounds write. This could cause an immediate crash or incorrect
9518 Coverity basically found that it is possible to assign more than 4
9519 attribs in the array.
9520 In my opinion this was produced because code pattern used pointer
9521 arithmetic, which is not readable nor maintainable.
9522 This patch refactors config_create() to use an array index rather than
9523 pointer arithmetic. Also a run-time check for index size was added.
9525 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9527 * gst/vaapi/gstvaapiencode_h264.c:
9528 vaapiencode: h264: remove spurious code
9530 An unsigned value can never be negative, so this test will always
9531 evaluate the same way.
9532 As len is guint32, there is no need to check it if it is equal or
9535 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9537 * gst/vaapi/gstvaapidecode.c:
9538 vaapidecode: initialize variable
9540 The variable will contain an arbitrary value left from earlier
9542 Variable base_only is fetched from base-only property, and it may be
9543 not assigned. It needs to be initialized.
9545 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9547 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9548 libs: windows: wayland: fail if cannot remove last frame
9550 If the function returns an error value, the error value may be
9551 mistaken for a normal value.
9552 If g_atomic_pointer_compare_and_exchange() fails because the frame is
9553 not the last one, the function fails. Thus, logging an info message.
9555 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9557 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9558 libs: utils: glx: check return value
9560 If the function returns an error value, the error value may be
9561 mistaken for a normal value.
9562 Function sscanf returns the number of assignations done. Validate this
9563 return value with the number of expected variables to match.
9565 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9567 * gst-libs/gst/vaapi/gstvaapiobject.c:
9568 libs: vaapi: object: remove unrequired NULL check
9570 Dereference after null check: Either the check against null is
9571 unnecessary, or there may be a null pointer dereference.
9572 Variable klass has been validated as non-NULL several time before in
9573 gst_vaapi_object_new() function, so there is no need to check it
9576 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9578 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9579 libs: encoder: h265: remove spurious assignation
9581 An assigned value that is never used may represent unnecessary
9582 computation, an incorrect algorithm, or possibly the need for cleanup
9584 ip_period is assigned first to be rewritter inmediatly after. The
9585 first assignation is spurious.
9587 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9589 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9590 libs: encoder: h264: fix copy & paste error
9592 The copied code will not have its intended effect.
9593 This is a bug from commit cdaf15b2, where the intention is to
9594 initialize RefPicList1 while setting RefPicList0.
9596 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9598 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9599 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9600 libs: encoder: h265: fix possible integer overflow
9602 Unintentional integer overflow. The expression's value may not be what
9603 the programmer intended, because the expression is evaluated using a
9604 narrow (i.e. few bits) integer type.
9605 Cast operator to guint64 before computation to avoid narrowing.
9608 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9610 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9611 libs: decoder: mpeg4: fail if return value is not OK
9613 An assigned value that is never used may represent unnecessary
9614 computation, an incorrect algorithm, or possibly the need for cleanup
9616 In the return value of decode_slice() or
9617 gst_mpeg4_parse_video_packet_header() are not success, thus fail
9618 decode_packet() function.
9620 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9622 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9623 libs: decoder: h265: check for null
9625 Dereference after null check: Either the check against null is
9626 unnecessary, or there may be a null pointer dereference.
9627 While looking for hte lowest poc, according to rest of the code, the
9628 picture in the dbp (decoded picture buffer) might be NULL, thus we
9629 could check for a NULL picture before assigned as found.
9630 Also, split a comma operator because it is considered as a bad
9631 practice because it possible side effects.
9633 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9635 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9636 libs: decoder: h265: untaint loop control variable
9638 Scalars (for example, integers) are not properly
9639 bounds-checked (sanitized) before being used as array or pointer
9640 indexes, loop boundaries, or function arguments are considered as
9642 In this case, num_nals were not checked before used as loop control.
9644 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9646 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9647 libs: decoder: h264: remove unrequired NULL check
9649 Dereference after null check: Either the check against null is
9650 unnecessary, or there may be a null pointer dereference.
9651 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
9652 prev_picture could be NULL, that's why the code did a null check. But,
9653 since commit 52adebe7, the previous reference frames are tracked, thus
9654 there is no need to check null anymore.
9656 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
9658 * gst/vaapi/gstvaapidecode.c:
9659 vaapidecode: fix gst_caps_new_simple call
9660 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9662 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
9664 * gst/vaapi/gstvaapidecode.c:
9665 vaapidecode: force add h264 MVC profiles in caps
9666 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
9668 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9670 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
9672 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9673 libs: decoder: h264: decode MVC base view only
9674 If processed SPS has mvc profile and the configuration is set to
9675 base-only, the frame is drop.
9676 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9678 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
9680 * gst/vaapi/gstvaapidecode.c:
9681 * gst/vaapi/gstvaapidecode_props.c:
9682 vaapidecode: set h264 base-only to decoder
9683 Set the base-only value when property is set and the internal
9684 decoder is already instantiated or when the internal decoder
9686 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9688 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
9690 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9691 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9692 libs: decoder: h264: add setter for base-only mode
9693 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9695 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
9697 * gst/vaapi/gstvaapidecode_props.c:
9698 * gst/vaapi/gstvaapidecode_props.h:
9699 vaapidecode_props: h264: add base-only property
9700 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9702 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9704 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9705 libs: encoder: h264: missing property enum documentation
9707 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
9709 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9710 libs: encoder: h264: add multi reference support
9711 Using num_ref_frames provided and the result of the Query
9712 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
9713 and perform encoding with multi reference frames as the following:
9714 1\ The num_ref_frames is being considered as the number of
9715 reference picture list0
9716 2\ Encoder adds 1 reference frame more to the reference picture list1
9717 internally if b-frame encoding.
9718 3\ If num_ref_frames is bigger than the number of refrence frames
9719 supported in the driver, it will be lowered.
9720 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9722 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
9724 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9725 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9726 libs: encoder: h264: add refs property
9727 Users can provide the number of reference frame by this property.
9728 The value of the property will be considered as the number of
9729 reference picture list0 and will add 1 reference frame more to the
9730 reference picture list1 internally if b-frame encoding.
9731 If the value provided is bigger than the number of refrence frames
9732 supported in the driver, it will be lowered.
9733 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9735 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
9737 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9738 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9739 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
9740 This function will query VAConfigAttribEncMaxRefFrames to get the
9741 maximum number of reference frames supported in the driver.
9742 This will be used for h264/h265 encoding.
9743 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9745 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9747 * gst/vaapi/gstvaapiencode_h265.c:
9748 vaapiencode: h265: compare an unsigned int if not zero
9749 An unsigned value can never be negative, so this test (greater than
9750 zero) will always evaluate the same way. Thus change it to just if
9753 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9755 * gst/vaapi/gstvaapipluginbase.c:
9756 plugins: check gst_gl_ensure_element_data() return value
9757 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
9758 the return value of gst_gl_ensure_element_data(). The result is a code
9761 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9763 * gst/vaapi/gstvaapipluginutil.c:
9764 plugins: avoid dead code detection
9765 By using #elif macro, the static code analysis would stop to detect
9766 these lines as dead code. Also it is inforced the mutually exclusive
9769 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9771 * gst/vaapi/gstvaapivideobufferpool.c:
9772 vaapivideobufferpool: don't shift by negative since it's undefined
9773 The function g_bit_nth_lsf() may return -1 if the request bit position
9774 is not avaible. Thus, this patch check if the return value is not -1
9775 in order to continue.
9777 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9779 * gst/vaapi/gstvaapisink.c:
9780 vaapisink: fix memory leak
9782 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9784 * gst/vaapi/gstvaapipostprocutil.c:
9785 vaapipostproc: fix memory leaks
9787 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
9789 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9790 libs: display: when appending formats change pointers to indexes
9791 Thus, it fixes an invalid read when YV12 or I420 are not supported by
9793 https://bugzilla.gnome.org/show_bug.cgi?id=785085
9795 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9797 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9798 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9799 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
9800 Added a new property "compliance-mode", which default is the normal
9801 strict compliant mode.
9802 The second mode, "restrict-buf-alloc", is to limit the coded buffer
9803 allocation size to improve performance in some specific Intel
9804 platforms (there is asignificant performance improvement in parallel
9805 encodings). Under this new mode, we use the MinCR field in A.3.1 for
9806 pre-calculating the coded-buffer size.
9807 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9809 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9811 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9812 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9813 libs: utils_h264: Extend LevelLimit table with MinCR field
9814 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
9816 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9818 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9820 * gst-libs/gst/vaapi/gstvaapiutils.c:
9821 libs: utils: libva 1.0 changed the logging
9822 The logging mechanism in libva has changed it's functions
9823 signatures. This patch updates that for libva versions >= 1.0
9824 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9826 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9828 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9829 libs: decoder: h264: libva 1.0 deprecated baseline
9830 libva 1.0 deprecated H.264 baseline profile and FMO support
9832 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9834 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9838 * meson_options.txt:
9839 build: check for libva-2.0
9840 Check for libva-2.0 since libva's developers decided to increase the
9841 library's version number.
9842 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9844 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9848 build: blacklist only libva 0.99.0
9849 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
9850 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
9852 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9854 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9856 * gst-libs/gst/vaapi/meson.build:
9857 build: meson: remove gstvaapidisplaycache.c
9858 This is a missing bit of commit ec3e10f6
9860 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
9863 configure: do not break configure if gtk+-3.0 devel missing
9864 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
9865 set USE_GTK=0 if gtk+-3.0 is not available.
9866 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
9867 Author: Hyunjun Ko <zzoon@igalia.com>
9868 Date: Wed Jul 5 15:59:43 2017 +0900
9869 tests: elements: add testsuite of vaapi context
9870 ...configure fails if gtk+-3.0 development files are missing.
9871 The "with_gtk" option defaults to "check" in configure.ac
9872 which implies that if it is not explicitly requested then
9873 configure will only enable it if it's available on the system.
9874 However, the PKG_CHECK_MODULES rule that get's activated on
9875 "check" condition did not provide default when gtk+-3.0 devel
9876 packages are not found on the system. Thus, it resulted in
9878 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
9879 https://bugzilla.gnome.org/show_bug.cgi?id=785452
9881 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9884 * tests/elements/Makefile.am:
9885 * tests/elements/test-vaapicontext.c:
9886 tests: elements: add testsuite of vaapi context
9887 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9888 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9890 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9892 * gst/vaapi/gstvaapisink.c:
9893 vaapisink: fail if surface display is different
9894 Replacing GstVaapiDisplay during rendering might be hiding problems
9895 at some cases, even though it's safe currently since we use cache
9897 Play safe by failing if this happens.
9898 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9900 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
9902 * gst/vaapi/gstvaapivideocontext.c:
9903 * gst/vaapi/gstvaapivideocontext.h:
9904 videocontext: support "gst.vaapi.app.Display" context
9905 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
9906 and native display of their backend.
9908 - display : pointer of VADisplay
9909 - x11-display : pointer of X11 display (Display *), if they're using.
9910 This patch creates GstVaapidisplayX11 if information provided through
9911 "gst.vaapi.app.Display"
9912 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9914 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
9916 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9917 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
9918 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
9919 Implements new API function so that users could create GstVaapiDisplay
9920 with their own VADisplay within a native display as backend.
9921 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9923 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
9925 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9926 libs: display: pass display info when foreign display
9927 When creating a GstVaapiDisplay using a foreign VADisplay, and render
9928 with that display, it also requires native display of the backend.
9929 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9931 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9933 * gst-libs/gst/vaapi/Makefile.am:
9934 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9935 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9936 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
9937 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9938 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9939 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
9940 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
9941 libs: display: remove cache
9942 Remove a bunch of code that handles the VADisplay cache, since the
9943 context sharing should be doing this correctly.
9944 https://bugzilla.gnome.org/show_bug.cgi?id=747946
9946 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
9948 * tests/elements/Makefile.am:
9949 * tests/elements/test-vaapipostproc.c:
9950 tests: elements: add test for vaapipostproc
9951 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9953 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
9955 * gst/vaapi/gstvaapipostproc.c:
9956 postproc: reconfigure when width or height changes
9957 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9959 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9961 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9962 libs: encoder: vp9: array terminated in zeros
9963 There is a crash when setting ref-pic-mode since the #GEnumValue
9964 array is not terminated with a structured with all memvers being
9966 https://bugzilla.gnome.org/show_bug.cgi?id=785032
9968 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9970 * gst/vaapi/gstvaapiencode_h264.c:
9971 vaapiencode: h264: add plugin documentation
9972 Comment how the profile is set and other parameters.
9974 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
9976 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9977 libs: decoder: h264: push frames as soon as possible
9978 Push frames downstream as soon as possible instead of waiting until
9979 they are ejected from the DPB.
9980 This patch makes the decoder not comply with the H.264 specification,
9981 but it is required for some video cameras.
9982 https://bugzilla.gnome.org/show_bug.cgi?id=762509
9983 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9985 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9987 * gst/vaapi/gstvaapidecode_props.c:
9988 vaapidecode_props: h264: set low-latency in decoder
9989 Set the low-latency property if the H264 decoder is already
9990 instantiated, thus you could change the behavior in run-time.
9991 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9993 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9995 * gst/vaapi/gstvaapidecode.c:
9996 vaapidecode: set h264 low latency to decoder
9997 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9999 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10001 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10002 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
10003 libs: decoder: h264: add getter/setter for low latency mode
10004 https://bugzilla.gnome.org/show_bug.cgi?id=783588
10006 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10008 * gst/vaapi/gstvaapidecode_props.c:
10009 * gst/vaapi/gstvaapidecode_props.h:
10010 vaapidecode_props: h264: add low latency property
10011 Adding support for private data.
10012 https://bugzilla.gnome.org/show_bug.cgi?id=783588
10014 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10016 * gst/vaapi/Makefile.am:
10017 * gst/vaapi/gstvaapidecode.c:
10018 * gst/vaapi/gstvaapidecode_props.c:
10019 * gst/vaapi/gstvaapidecode_props.h:
10020 * gst/vaapi/meson.build:
10021 vaapidecode_props: add skeleton for h264 decoder properties
10022 https://bugzilla.gnome.org/show_bug.cgi?id=783588
10024 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10026 * gst/vaapi/gstvaapidecode.c:
10027 vaapidecode: properties callback in decoders map
10028 https://bugzilla.gnome.org/show_bug.cgi?id=783588
10030 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
10033 meson: find python3 via python3 module
10034 https://bugzilla.gnome.org/show_bug.cgi?id=783198
10036 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
10038 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10039 libs: encoder: h264: submit sps in case of IDR picture
10040 If the picture is IDR, also submit a SPS header.
10041 This means when frame number reaches to keyframe-period or an force
10042 key unit event arrives, we insert SPS/PPS again.
10043 https://bugzilla.gnome.org/show_bug.cgi?id=776712
10045 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
10047 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10048 libs: encoder: h264: set the frame as IDR if forced key unit
10049 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
10050 the `frame-lost` event in the case of streaming, such as RTP.
10051 In case of this event, it is needed to start new GOP rather than just
10052 produce an I-frame.
10053 https://bugzilla.gnome.org/show_bug.cgi?id=776712
10055 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10057 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10058 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
10059 libs: encoder: h264: insert AU delimiter
10060 Insert an AUD as the first NAL of each encoded frame.
10061 Some applications require Access Unit Delimiter for decoding the
10063 The AU delimeter insertion is done only when the aud parameter is
10064 TRUE (by default is disabled). The reason of this it is because this
10065 header is only available from Intel Gen9 and the VA intel driver
10066 should be 1.8 or superior. Otherwise, the output will be corrupted.
10067 https://bugzilla.gnome.org/show_bug.cgi?id=776712
10068 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
10070 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10072 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10073 libs: encoder: h264: initialize all elements of view_ids
10074 Currently when num_views is changed by multiview-mode on sink caps, it produces
10075 wrong MVC encoded stream since the array view_ids is not set properly according
10076 to changed num_views.
10077 So this patch initializes all of the array sequentially to handle this case.
10078 Side effect is not going to happen by this patch since this array is being
10079 handled by num_views.
10080 https://bugzilla.gnome.org/show_bug.cgi?id=784321
10082 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
10084 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10085 Revert "encoder: h264: Use high profile by default"
10086 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
10087 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10089 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10091 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10092 libs: encoder: h264: set profile via capsfilter
10093 Until now, the encoder ignored the profile in src caps and chose one
10094 according with the given parameters. But the encoder must honor the
10095 profile specifed in src caps.
10096 This patch do that, and if the encoder needs to choose the profile,
10097 it will do it by following these rules:
10098 1\ If given parameters are not compatible with given profile, the
10099 encoder will bail out with an error.
10100 2\ The encoder will choose the higher profile indicated in the
10102 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10104 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
10106 * gst/vaapi/gstvaapiencode_h264.c:
10107 vaapiencode: h264: set profile to src caps
10108 So far vaapi encoder does not set profile to src caps. This patch makes it
10109 setting profile to src caps, which is determined by itself.
10110 In addition, if encoder chose different profile, which is not negotiated with
10111 downstream, we should set compatible profile to make negotiation working.
10112 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10114 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10116 * gst/vaapi/gstvaapiencode_h264.c:
10117 * gst/vaapi/gstvaapiencode_h264.h:
10118 vaapiencode: h264: verify if requested profile is supported
10119 Check if the requested profile in source caps, is supported by the
10120 VA driver. If it is not, an info log message is send saying that
10121 another (compatible?) profile will be used.
10122 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10124 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10126 * gst/vaapi/gstvaapiencode_h264.c:
10127 vaapiencode: h264: improve set_config() vmethod
10128 First check if downstream requests ANY caps. If so, byte-stream is
10129 used and the profile will be choose by the encoder. If dowstream
10130 requests EMPTY caps, the negotiation will fail.
10131 Lately, byte-stream and profile are looked in the allowed caps.
10132 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10134 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10136 * gst/vaapi/gstvaapiencode_h264.c:
10137 vaapiencode: h264: check for avc in set_config()
10138 The check for avc stream format was done in the vaapi encoder's
10139 vmethod get_caps(), but that is wrong since it has to be check
10140 when encoder set_format().
10141 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10143 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10145 * gst/vaapi/gstvaapipostprocutil.c:
10146 vaapipostproc: set multivew-mode flags to src caps
10147 vaapipostproc didn't negotiate the proper multiview caps losing
10148 downstream information.
10149 This patch enables the playing of MVC encoded stream by setting
10150 the proper multiview mode/flags and views to src caps, according
10152 https://bugzilla.gnome.org/show_bug.cgi?id=784320
10154 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
10156 * gst/vaapi/gstvaapipostproc.c:
10157 vaapipostproc: add support for DMABuf caps feature
10158 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10159 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
10161 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10163 * gst/vaapi/gstvaapidecode.c:
10164 vaapidecode: add support for DMABuf caps feature
10165 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10166 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
10168 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10170 * gst/vaapi/gstvaapipluginbase.c:
10171 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
10172 Instantiate all dmabuf allocator for src pad buffer pool if the
10173 src caps ask for memory:DMABuf feature.
10174 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10176 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
10178 * gst/vaapi/gstvaapipluginutil.c:
10179 * gst/vaapi/gstvaapipluginutil.h:
10180 vaapipluginutil: add support for DMABuf caps feature
10181 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10182 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
10183 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
10184 vaapipluginutil: add support for DMABuf caps feature
10186 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10188 * gst/vaapi/gstvaapipluginbase.c:
10189 vaapipluginbase: dmabuf memory map trial for raw caps
10190 Only push dmabuf-based buffers with raw caps if gst_memory_map()
10191 succeeds. Otherwise, use the the vaapi surfaces allocator.
10192 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10193 https://bugzilla.gnome.org/show_bug.cgi?id=774649
10194 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
10196 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10198 * gst/vaapi/gstvaapivideomemory.c:
10199 * gst/vaapi/gstvaapivideomemory.h:
10200 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
10201 This new method checks the specified allocator can create GstMemory that can
10203 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10205 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10207 * gst/vaapi/gstvaapivideobufferpool.c:
10208 vaapivideobufferpool: fix regression with video metas
10209 There is another regression with 7a206923 when setting the video
10210 info for the video meta, it should be the one from the image's
10211 allocator rather from the allocation caps.
10213 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
10214 ! tee ! videoconvert ! videoscale \
10215 ! video/x-raw, width=1920, height=1080 ! xvimagesink
10217 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10219 * gst/vaapi/gstvaapipluginbase.c:
10220 * gst/vaapi/gstvaapivideobufferpool.c:
10221 plugins: update buffer size with the one reported by allocator
10222 There is a regression in 7a206923, since the buffer pool ditches all
10223 the buffers generated by them because the pool config size is
10224 different of the buffer's size.
10226 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
10227 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
10228 --gst-debug=GST_PERFORMANCE:5
10229 The allocator may update the buffer size according to the VA surface
10230 properties. In order to do this, the video info is modified when the
10231 allocator is created, which reports through the allocation info the
10232 updated size, and set it to the pool config.
10234 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
10236 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10237 libs: decoder: h264: initialize active_sps/pps in reset
10238 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
10239 they introduced regression in seek.
10240 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
10241 But since the commits landed, it doesn't drop P-frame and does try to
10242 decode it continuously because active_sps is still alive. See ensure_sps function.
10243 But there are prev_frames and prev_ref_frames reset already, then it
10245 So it's necessary to reset active_sps/pps also in reset method.
10246 https://bugzilla.gnome.org/show_bug.cgi?id=783726
10248 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10250 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10251 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10252 libs: encoder: fix compilation with old versions of libva
10253 There are some symbols that are not used when compiling with old
10254 version of libva and those generates a compilation error.
10255 Original-patch-by: Matt Staples <staples255@gmail.com>
10257 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10259 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10260 libs: encoder: Fix the quality level clamping
10261 Change the hard-coded range of quality-level from {1-8} to {1-7},
10262 since it is the range Intel Open source driver supports.
10263 Also perform the range clamping only if the user provided
10264 quality-level is greater than the max-range suppored by the driver,
10265 because there could be non-intel drivers giving lower value than
10266 the hard-coded max value 7.
10267 https://bugzilla.gnome.org/show_bug.cgi?id=783567
10269 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10271 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10272 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10273 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
10274 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10275 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10276 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10277 libs: encoder: log out the name of the profile
10278 Instead of printing a number, it is more readable to log out, in
10279 case of error, the name of the failing profile.
10281 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
10283 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10284 libs: encoder: h264: changes raw number of profile to macro name of its
10285 Changes raw number of profile to macro name of its to improve readability.
10286 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10288 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10290 * gst/vaapi/gstvaapivideobufferpool.c:
10291 vaapivideobufferpool: remove allocation_vinfo private attribute
10292 There is no need to keep this attribute internally since it is
10293 already managed by the allocator.
10294 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10296 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10298 * gst/vaapi/gstvaapivideobufferpool.c:
10299 vaapivideobufferpool: refactor set_config()
10300 Refactor the set_config() virtual method considering a cleaner
10301 approach to allocator instanciation, if it it not set or if it is
10302 not valid for the pool.
10303 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10305 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10307 * gst/vaapi/gstvaapipluginbase.c:
10308 * gst/vaapi/gstvaapivideobufferpool.c:
10309 * gst/vaapi/gstvaapivideomemory.c:
10310 * gst/vaapi/gstvaapivideomemory.h:
10311 plugins: distinguish allocation and negotiation caps
10312 The vaapi video decoders might have different allocation caps from
10313 the negotiation caps, thus the GstVideoMeta shall use the negotiation
10314 caps, not the allocation caps.
10315 This was done before reusing gst_allocator_get_vaapi_video_info(),
10316 storing there the negotiation caps if they differ from the allocation
10317 ones, but this strategy felt short when the allocator had to be reset
10318 in the vaapi buffer pool, since we need both.
10319 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
10320 gst_allocator_get_vaapi_negotiated_video_info() to store the
10321 negotiated video info in the allocator, and distinguish it from
10322 the allocation video info.
10323 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10325 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10327 * gst/vaapi/gstvaapivideomemory.c:
10328 * gst/vaapi/gstvaapivideomemory.h:
10329 vaapivideomemory: rename qdata quarks and ids
10330 Also the parameter names were renamed to reflect their origin
10332 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10334 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10336 * gst/vaapi/gstvaapivideobufferpool.c:
10337 vaapivideobufferpool: rename local variables
10338 Renamed local video info structure names in set_config() vitual
10339 method. The purpose of their renaming is to clarify the origin
10340 of those structures, whether come from passed caps parameter
10341 (new_allocation_vinfo) or from the configured allocator
10343 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10345 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10347 * gst/vaapi/gstvaapivideobufferpool.c:
10348 vaapivideobufferpool: rename video info structures
10349 Renamed private GstVideoInfo structure video_info to allocation_vinfo
10350 and alloc_info to negotiated_vinfo.
10351 The purpose of these renaming is to clarify the origin and purpose of
10352 these private variables:
10353 video_info (now allocation_vinfo) comes from the bufferpool
10354 configuration. It describes the physical video resolution to be
10355 allocated by the allocator, which may be different from the
10357 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
10358 the pipeline. It represents how the frame is going to be mapped
10359 using the video meta.
10360 In Intel's VA-API backend, the allocation_vinfo resolution is
10361 bigger than the negotiated_info.
10362 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10364 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10366 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10367 libs: encoder: set framerate if bigger than 0/1
10368 Just set the framerate parameter if the framerate numerator and
10369 denominator are bigger than zero.
10370 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
10372 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10373 https://bugzilla.gnome.org/show_bug.cgi?id=783532
10375 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10377 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10378 libs: encoder: bitrate target percentage calculation
10379 If the rate control is set to Constant Bit Rate (CBR) the target
10380 percentage is 100%, otherwise is 70%
10382 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10384 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10385 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10386 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10387 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10388 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10389 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10390 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
10391 Centralize the common configuration for the Rate Control parameter,
10392 thus can be overloaded per each specific encoder.
10394 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10396 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10397 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10398 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10399 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10400 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10401 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10402 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
10403 Since the framerate VA parameter is calculated equally among all the
10404 encoders, it is better to handle it in the base encoder class.
10406 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10408 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10409 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
10410 libs: encoder: vp9: Adds CBR and VBR Encoding support
10411 https://bugzilla.gnome.org/show_bug.cgi?id=766832
10412 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10413 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10415 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10417 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10418 libs: encoder: vp8: Adds VBR Encoding support
10419 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10421 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
10423 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10424 libs: encoder: h265: Adds VBR Encoding support
10425 Enables Variable BitRate mode, which does set FrameRate and RateControl
10427 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10429 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
10431 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10432 libs: encoder: Describes more detail about the bitrate property
10433 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10435 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10437 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10438 libs: encoder: h265: add rate control parameter
10439 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10441 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10443 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10444 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10445 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10446 libs: encoder: h264,h265,mpeg2: add framerate parameter
10447 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10449 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10451 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10452 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10453 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10454 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10455 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
10456 Instead of recalculating the miscellaneous buffer parameters for
10457 every buffer, it is only done once, when the encoder is configured.
10458 And for every buffer, the same structures are just copied.
10459 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10461 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10463 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10464 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10465 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10466 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10467 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10468 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10469 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
10470 This is patch pretends to decouple the assignation of the values
10471 in the parameter structures and the VA buffer's parameters setting.
10472 It may lead to some issues since HRD, framerate or controlrate may
10473 not be handled by the specific encoder, but they are set in
10474 the VA buffer's parameters.
10475 I leave as it because this patch is just a transitional patch.
10476 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10478 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10480 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10481 libs: encoder: vp8: fix frame rate calculation
10482 According to the VA documentation:
10483 The framerate is specified as a number of frames per second,
10484 as a fraction. The denominator of the fraction is given in
10485 the top half (the high two bytes) of the framerate field, and
10486 the numerator is given in the bottom half (the low two bytes).
10487 For example, if framerate is set to (100 << 16 | 750), this is
10488 750 / 100, hence 7.5fps.
10489 If the denominator is zero (the high two bytes are both zero)
10490 then it takes the value one instead, so the framerate is just
10491 the integer in the low 2 bytes.
10492 This patch fixes the the framerate calculation in vp8 encoder
10494 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10496 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10498 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10499 libs: encoder: vp8: refactor FrameRate parameter
10500 Move frame-rate parameter from ensure_misc_params() to
10501 ensure_contro_rate_param() since it only has meaning when the
10502 control rate is either VBR or CBR.
10503 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10505 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10507 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10508 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10509 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10510 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10511 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
10512 Move the Hypothetical Reference Decoder (HRD) parameter, from
10513 ensure_misc_params() to ensure_control_rate_params(), since it
10514 only shall be defined when the control rate is either VBR or CBR.
10515 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10517 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10519 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10520 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10521 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10522 libs: encoder: h264,vp8,mpeg2: refactor control rate
10523 Instead of filling the control rate param in ensure_misc_params(),
10524 this patch refactor it out, as a first step to merge the same code
10525 for all the encoders.
10526 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10528 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10530 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10531 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10532 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10533 libs: encoder: h264, h265, mpeg2: remove assert
10534 Remove spurious asserts for misc parameters. If they cannot be
10535 allocated, FALSE is already returned.
10537 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10539 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10540 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10541 libs: encoder: use VA quality level structure
10542 Instead of using a proxy to story the buffer quality level, the
10543 encoder now uses the native VA structure, which is copied to the
10544 dynamically allocated VAEncMiscParameterBuffer.
10545 This approach is computationally less expensive.
10547 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10549 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10550 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10551 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10552 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10553 libs: standardize the FIXME comment
10554 This is a trivial patch that makes homogeneous the FIXME tag in
10556 For more info about these comment style:
10557 http://wiki.c2.com/?FixmeComment
10559 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
10561 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10562 libs: encoder: vp8: set quality level regardless of rate control mode
10563 https://bugzilla.gnome.org/show_bug.cgi?id=782957
10565 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10567 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10568 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10569 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10570 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10571 libs: encoder: check for maximum number of slices
10572 Right now, H264 and HEVC can set as a property the number of slices to
10573 process. But each driver can set a maximum number of slices, depending
10574 on the supported profile & entry point.
10575 This patch verifies the current num_slices to process against the maximum
10576 permitted by the driver and the media size.
10577 https://bugzilla.gnome.org/show_bug.cgi?id=780955
10579 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10581 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10582 libs: utils: mark functions as internals
10583 The functions in this header are internal to the library.
10585 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10587 * gst-libs/gst/vaapi/gstvaapicontext.h:
10588 libs: context: add missing documentation
10589 Document the region-of-interest configuration variables.
10591 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10593 * tests/elements/test-vaapisink.c:
10594 tests: elements: vaapisink: handle nav events
10595 The test app can now handle navigation events to rotate the
10598 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10600 * tests/elements/test-vaapisink.c:
10601 tests: elements: clean up vaapisink test
10602 - Use gst_element_send_event() instead of gst_pad_push_event()
10603 - don't zero App structure
10604 - check for pipeline parsing error
10605 - only get vaapisink for property set
10607 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
10609 * gst/vaapi/gstvaapisink.c:
10610 vaapisink: keep handle_events flag except that if user want to set
10611 When state of vaapisink is changed from PLAYING to NULL, the handle_events
10612 flag is set to FALSE, and never recovered, and then event thread is never
10614 So we should allow to set the flag only when users try it.
10615 https://bugzilla.gnome.org/show_bug.cgi?id=782543
10617 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10619 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10620 libs: window: x11: fix src rect info when using vpp
10621 Since we started using VPP in VaapiWindowX11, we need to care about
10622 the case that src rect and window's size are different.
10623 So, once VPP has converted to other format, we should honor the
10624 size of the VPP's surface as source rect. Otherwise, it is cropped
10625 according the previous size of the source rect.
10626 https://bugzilla.gnome.org/show_bug.cgi?id=782542
10628 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10630 * gst/vaapi/gstvaapipluginutil.c:
10631 plugins: remove par from caps negotiation
10632 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10634 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
10636 * tests/elements/Makefile.am:
10637 * tests/elements/test-roi.c:
10638 tests: elements: add an example for ROI
10639 This implements a pipleint to recognize difference between ROI and non-ROI.
10640 See comments in this code in detail.
10641 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10642 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10644 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
10646 * gst/vaapi/gstvaapiencode.c:
10647 * gst/vaapi/gstvaapiencode_h264.c:
10648 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
10649 Handles new custom event GstVaapiEncoderRegionOfInterest
10650 to enable/disable a ROI region.
10651 Writes a way to use new event to document.
10652 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10653 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10655 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
10657 * tests/simple-encoder.c:
10658 tests: simple-encoder: add an option to set ROI
10659 $ simple-encoder -r inputfile.y4m
10660 And you'll got an output file in H264 with two regions of interest.
10661 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10662 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10664 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10666 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10667 libs: encoder: h264: set ROI params during encoding
10668 Set ROI params during encoding each frame, which are set via
10669 gst_vaapi_encoder_add_roi ()
10670 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10671 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10673 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10675 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10676 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10677 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10678 libs: encoder: add api gst_vaapi_encoder_add/del_roi
10679 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
10680 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10682 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
10684 * gst-libs/gst/vaapi/gstvaapicontext.c:
10685 * gst-libs/gst/vaapi/gstvaapicontext.h:
10686 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10687 libs: encoder/context: query region of interest support
10688 Queries if the driver supports "Region of Interest" (ROI) during the config
10690 This attribute conveys whether the driver supports region-of-interest (ROI)
10691 encoding, based on user provided ROI rectangles. The attribute value is
10692 partitioned into fields as defined in the VAConfigAttribValEncROI union.
10693 If ROI encoding is supported, the ROI information is passed to the driver
10694 using VAEncMiscParameterTypeROI.
10695 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10696 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10698 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10700 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10701 libs: encoder: fix a comment
10703 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10705 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10706 libs: encoder: guard quality level configuration
10707 The quality level appeared in VA-API 0.36. So let's guard its
10710 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10712 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10713 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10714 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10715 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10716 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10717 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10718 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10719 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10720 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10721 encoders: add quality level tuning
10722 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
10723 in gstreamer-vaapi encoders:
10724 The encoding quality could be set through this structure, if the
10725 implementation supports multiple quality levels. The quality level set
10726 through this structure is persistent over the entire coded sequence, or
10727 until a new structure is being sent. The quality level range can be queried
10728 through the VAConfigAttribEncQualityRange attribute. A lower value means
10729 higher quality, and a value of 1 represents the highest quality. The quality
10730 level setting is used as a trade-off between quality and speed/power
10731 consumption, with higher quality corresponds to lower speed and higher power
10733 The quality level is set by the element's parameter "quality-level" with a
10734 hard-coded range of 1 to 8.
10735 Later, when the encoder is configured in run time, just before start
10736 processing, the quality level is scaled to the codec range. If
10737 VAConfigAttribEncQualityRange is not available in the used VA backend, then
10738 the quality level is set to zero, which means "disabled".
10739 All the available codecs now process this parameter if it is available.
10740 https://bugzilla.gnome.org/show_bug.cgi?id=778733
10741 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10743 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
10747 Back to development
10749 === release 1.12.0 ===
10751 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
10756 * gstreamer-vaapi.doap:
10760 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10762 * gst/vaapi/gstvaapidecodebin.c:
10763 Revert "vaapidecodebin: fix element's classification"
10764 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
10766 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10770 build: Require libva < 0.99.0
10771 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
10772 fail to configure instead of failing late in the build.
10773 This libva is bundled in msdk[1] and it is ahead in time with
10774 respect the official and open source libva[2]. GStreamer-VAAPI
10775 only supports the latter for now.
10776 1. https://software.intel.com/en-us/media-sdk/download
10777 2. https://github.com/01org/libva/
10778 https://bugzilla.gnome.org/show_bug.cgi?id=781866
10780 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
10782 * gst/vaapi/gstvaapidecodebin.c:
10783 vaapidecodebin: fix element's classification
10784 This bin should have similar classification as decodebin which is
10785 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
10787 Signed-off-by: Victor Toso <victortoso@redhat.com>
10788 https://bugzilla.gnome.org/show_bug.cgi?id=782063
10790 === release 1.11.91 ===
10792 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
10797 * gstreamer-vaapi.doap:
10801 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10803 * gst/vaapi/gstvaapipluginutil.c:
10804 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
10805 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
10807 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10809 * gst/vaapi/gstvaapipluginutil.c:
10810 plugins: reject pixel-aspect-ratio with value 0/1
10811 Do not negotiate a pixel-aspect-ratio of 0/1.
10812 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10814 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10816 * gst/vaapi/gstvaapipostprocutil.c:
10817 * gst/vaapi/gstvaapisink.c:
10818 plugins: handle pixel-aspect-ratio with value 0/1
10819 When downstream negotiates a pixel-aspect-ratio of 0/1, the
10820 calculations for resizing and formatting in vaapipostproc and
10821 vaapisink, respectively, failed, and thus the pipeline.
10822 This patch handles this situation by converting p-a-r of 0/1 to
10823 1/1. This is how other sinks, such as glimagesink, work.
10824 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10826 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
10828 * gst/vaapi/gstvaapivideobufferpool.c:
10829 vaapivideobufferpool: fix leak of created allocator
10830 Since it's created by itself, it should be unref-counted
10831 after gst_buffer_pool_config_set_allocator call. Afterwards,
10832 this allocator will be ref-counted again when assigning to priv->allocator.
10833 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10835 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10837 * gst/vaapi/gstvaapivideobufferpool.c:
10838 vaapivideobufferpool: create or reconfig allocator
10839 Sometimes a video decoder could set different buffer pool
10840 configurations, because their frame size changes. In this case we
10841 did not reconfigure the allocator.
10842 This patch enables this use case, creating a new allocator inside
10843 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
10844 If so, it is just reconfigured, since it doesn't have a surface pool.
10845 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10847 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10849 * tests/elements/Makefile.am:
10850 test: elements: fix compilation flags
10851 This issue was spotten on bug #766704
10852 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10854 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
10856 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10857 libs: windows: wayland: fix leak if failure of sync
10858 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
10859 during destruction.
10860 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
10861 This surface is not attached to anything at this moment, so we should release
10863 https://bugzilla.gnome.org/show_bug.cgi?id=781695
10865 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
10868 Automatic update of common submodule
10869 From 60aeef6 to 48a5d85
10871 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
10873 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10874 libs: window: wayland: mark frames as done
10875 When the frame listener callbacks 'done', the number of pending
10876 frames are decreased. Nonetheless, there might be occasions where
10877 the buffer listener callbacks 'release', without calling previously
10878 frame's 'done'. This leads to problem with
10879 gst_vaapi_window_wayland_sync() operation.
10880 This patch marks as done those frames which were callbacked, but if
10881 the buffer callbacks 'release' and associated frame is not marked
10882 as 'done' it is so, thus the number of pending frames keeps correct.
10883 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10884 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10886 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10888 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10889 libs: window: wayland: don't sync at destroy()
10890 Don't call gst_vaapi_window_wayland_sync() when destroying the
10891 wayland window instance, since it might lead to a lock at
10892 gst_poll_wait() when more than one instances of vaapisink are
10893 rendering in the same pipeline, this is because they share the
10895 Since now all the frames are freed we don't need to freed the
10896 private last_frame, since its address is invalid now.
10897 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10898 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10900 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
10902 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10903 libs: window: wayland: null buffer at destroy()
10904 Fix leakage of the last wl buffer.
10905 VAAPI wayland sink needs to send a null buffer while destruction,
10906 it assures that all the wl buffers are released. Otherwise, the last
10907 buffer's callback might be not called, which leads to leak of
10909 This was inspired by gstwaylandsink.
10910 https://bugzilla.gnome.org/show_bug.cgi?id=774029
10911 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10913 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
10915 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10916 libs: window: wayland: rt event queue at destroy()
10917 The proxy object of wl_buffer for the last frame remains in the
10918 wl_map. Even though we call wl_buffer_destroy() in
10919 frame_release_callback(), the proxy object remains without being
10920 removed, since proxy object is deleted when wayland server sees the
10921 delete request and sends 'delete_id' event.
10922 We need to call roundtrip before destroying event_queue so that the
10923 proxy object is removed. Otherwise, it would be mess up as receiving
10924 'delete_id' event from previous play, when playing in the next
10925 va/wayland window with the same wl_display connection.
10926 https://bugzilla.gnome.org/show_bug.cgi?id=773689
10927 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10929 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10931 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10932 libs: window: wayland: cancel read at poll message
10933 Always call wl_display_cancel_read() when an errno is set, but
10934 different to EAGAIN or EINTR.
10935 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10937 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10939 * gst/vaapi/gstvaapidecodebin.c:
10940 * gst/vaapi/gstvaapidecodebin.h:
10941 vaapidecodebin: skips configuration once it's done
10942 Skips configuration of creation of vpp/capsfilter and link them once it's done.
10943 Otherwise, it always fails when it's trying to re-start playback.
10944 https://bugzilla.gnome.org/show_bug.cgi?id=781573
10946 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10948 * gst/vaapi/gstvaapipostprocutil.c:
10949 vaapipostproc: fixes for memory leaks
10950 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
10951 requires to clear the used GValue to avoid a memory leak.
10953 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10955 * gst/vaapi/gstvaapipluginbase.c:
10956 * gst/vaapi/gstvaapipluginbase.h:
10957 plugins: enable direct rendering with envvar
10958 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
10959 performance in some Intel platforms (Haswell, for example) but in others
10960 (Skylake) is the opposite.
10961 In order to have some control, the patch enables the direct rendering
10962 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
10963 Also it seems to generating some problems with gallium/radeon backend.
10965 https://bugzilla.gnome.org/show_bug.cgi?id=775848
10967 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
10969 * gst/vaapi/gstvaapidecode.c:
10970 vaapidecode: Don't renegotiate on every flush
10971 If caps don't actually change, don't update the
10972 decoder and don't set the do_renego flag forcing
10973 downstream renegotiation
10974 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10976 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
10978 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10979 h264 decoder: Implement reset() for faster flush
10980 Implement a custom reset() function for faster flushes
10981 that just clear the reference pictures but don't reallocate
10982 the DPB or clear out SPS/PPS
10983 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10985 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
10987 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10988 * gst-libs/gst/vaapi/gstvaapidecoder.h:
10989 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10990 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10991 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10992 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10993 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10994 * gst/vaapi/gstvaapidecode.c:
10995 Implement decoder reset on flush, rather than recreating
10996 Clear decoders out on a flush but keep the same instance,
10997 rather than completely recreating them. That avoids
10998 unecessarily freeing and recreating surface pools
10999 and contexts, which can be quite expensive
11000 https://bugzilla.gnome.org/show_bug.cgi?id=781142
11002 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11004 * gst-libs/gst/vaapi/gstvaapiwindow.c:
11005 libs: window: don't add an unused function
11006 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
11007 a function that is never used, thus when compiling we might see
11008 this warning (clang):
11009 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
11010 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
11012 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11014 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11016 * gst-libs/gst/vaapi/gstvaapiwindow.c:
11017 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
11018 libs: window: remove surface_format member
11019 Since we always convert to NV12, there is no need to keep a
11020 variable for that. Let us hard code it.
11021 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11023 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
11025 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11026 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
11027 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
11028 libs: window: x11/wayland: use new api for conversion
11029 Since gst_vaapi_window_vpp_convert_internal is created,
11030 GstVaapiWindowX11/Wayland can use it for conversion.
11031 Note that once it chooses to use vpp, it's going to use vpp
11032 until the session is finished.
11033 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11035 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
11037 * gst-libs/gst/vaapi/gstvaapiwindow.c:
11038 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
11039 libs: window: add gst_vaapi_window_vpp_convert_internal()
11040 If a backend doesn't support specific format, we can use vpp for conversion
11041 and make it playing.
11042 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
11043 so that GstVaapiWindowX11 could use it.
11044 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11046 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
11048 * gst-libs/gst/vaapi/gstvaapiwindow.c:
11049 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
11050 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11051 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
11052 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
11053 libs: window: x11/wayland: chaining up to GstVaapiWindow
11054 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
11055 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
11056 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11058 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11060 * gst/vaapi/gstvaapipluginutil.c:
11061 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
11062 When these definitions are false, they are undef in the
11063 preprocessor, not a defined value of 0. When they are unset the
11064 compile fails with:
11065 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
11066 https://bugzilla.gnome.org/show_bug.cgi?id=780948
11068 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
11071 Automatic update of common submodule
11072 From 39ac2f5 to 60aeef6
11074 === release 1.11.90 ===
11076 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
11081 * gstreamer-vaapi.doap:
11085 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11087 * gst/vaapi/gstvaapiencode_h265.c:
11088 vaapiencode: h265: add main-10 in caps template
11089 This patch adds h265's main-10 profile in encoder src caps template.
11090 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11092 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11094 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11095 libs: encoder: h265: chroma and luma with format
11096 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
11097 parameter buffer, shall be the color format bit depth minus 8, 10-8
11098 which is 2. Also for bit_depth_chroma_minus8.
11099 This patch gets the negotiated sink caps format and queries its
11100 luma's depth and uses that value to fill the mentioned parameters.
11101 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11103 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11105 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11106 libs: encoder: admit YUV420_10BPP as valid chroma
11107 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
11109 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11111 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11113 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11114 libs: encoder: h265: ensures profile given format
11115 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
11116 configured color format is P010_10LE.
11117 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
11118 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11120 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11122 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11123 libs: encode: merge all possible surface formats
11124 When the function gst_vaapi_encoder_get_surface_formats() was added
11125 it was under the assumption that any VA profile of the specific codec
11126 supported the same format colors. But it is not, for example the
11127 profiles that support 10bit formats.
11128 In other words, different VA profiles of a same codec may support
11129 different color formats in their upload surfaces.
11130 In order to expose all the possible color formats, if no profile is
11131 specified via source caps, or if the encoder doesn't have yet a
11132 context, all the possible VA profiles for the specific codec are
11133 iterated and their color formats are merged.
11134 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11136 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11138 * gst/vaapi/gstvaapiencode.c:
11139 * gst/vaapi/gstvaapiencode.h:
11140 * gst/vaapi/gstvaapiencode_h264.c:
11141 * gst/vaapi/gstvaapiencode_h265.c:
11142 vaapiencode: add get_profile() vmethod
11143 This new virtual method, get_profile(), if implemented by specific
11144 encoders, will return the VA profile potentially determined by the
11146 Also it is implemented by h264 and h265 encoders, which are the main
11147 users of this vmethod.
11148 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11150 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11152 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11153 * gst-libs/gst/vaapi/gstvaapiencoder.h:
11154 * gst/vaapi/gstvaapiencode.c:
11155 libs: encoder: pass profile to get_surface_formats()
11156 In order to get the supported surface formats within a specific
11157 profile this patch adds the GstVaapiProfile as property to
11158 gst_vaapi_encoder_get_surface_formats().
11159 Currently the extracted formats are only those related with the
11160 default profile of the element's codec.
11161 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11163 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11165 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11166 libs: encoder: dummy context for get_surface_formats()
11167 Instead of creating (if it doesn't exist, yet) the encoder's context
11168 the method gst_vaapi_encoder_get_surface_formats() now it creates
11169 dummy contexts, unless the encoder has it already created.
11170 The purpose of this is to avoid setting a encoder's context with a
11172 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11174 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11176 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11177 libs: encoder: refactor init_context_info()
11178 In order to generate vaapi contexts iterative, the function
11179 init_context_info() is refactored to pass, as parameters the
11180 GstVaapiContextInfo and the GstVaapiProfile.
11181 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11183 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11185 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11186 * gst-libs/gst/vaapi/gstvaapiutils.c:
11187 * gst-libs/gst/vaapi/gstvaapiutils.h:
11188 libs: encoder: initialize chroma_type
11189 Instead of initialize the chroma_type with a undefined value, which
11190 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
11191 this patch queries the VA config, given the received
11192 GstVaapiContextInfo's parameters, and gets the first response.
11193 In order to get the GstVaapiChromaType value, also it was needed to
11194 add a new utility function: to_GstVaapiChromaType(), which, given a
11195 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
11196 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11198 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11200 * gst/vaapi/gstvaapiencode.c:
11201 vaapiencode: enhance logs of negotiated caps
11202 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11204 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11206 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
11207 libs: encoder: vp9: Fix initialization of ref_list
11208 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
11209 'memset' used with length equal to number of elements without
11210 multiplication by element size [-Werror=memset-elt-size]
11211 https://bugzilla.gnome.org/show_bug.cgi?id=780947
11213 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11215 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11216 encoder: h264: Fix Backward ReferencePicture flag setting
11217 This is a regression introduced by e829b62 which
11218 override the reference flags and caused issues with
11219 latest intel-vaapi-driver.
11221 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11223 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11224 libs: encoder: h265: fix code style
11225 Trivial patch to remove a double ';' as end of instruction.
11227 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11229 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11230 encoder: h264: Fix B frame encoding artifacts
11231 The current implementation is updating the POC values only
11232 in Slice parameter Buffer.But we are not filling the
11233 picture order count and reference flags in VAPictureH264
11234 while populating VA Picture/Slice structures.The latest
11235 intel-vaapi-driver is directly accessing the above fields
11236 from VAPicutreH264 provided as RefPicLists, which resulted
11237 some wrong maths and prediction errors in driver.
11238 https://bugzilla.gnome.org/show_bug.cgi?id=780620
11240 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11242 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11243 libs: encoder: h265: remove unused macro definition
11244 Since the h265 encoder doesn't use GValueArray, there is no need to
11245 disable the Glib deprecation warnings, thus removing the macro
11248 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11250 * gst/vaapi/gstvaapidecode.c:
11251 * gst/vaapi/gstvaapiencode.c:
11252 * gst/vaapi/gstvaapipostproc.c:
11253 * gst/vaapi/gstvaapisink.c:
11254 plugins: when debug disabled, default category is NULL
11255 As in gstreamer-vaapi a common base class is used, the specific
11256 default category is passed to the base-plugin initializator, thus
11257 the log messages are categorized with the used plugin.
11258 Nonetheless, when the gst-debug is disabled in compilation time,
11259 it is needed to pass NULL to the base-plugin initializator. This
11261 https://bugzilla.gnome.org/show_bug.cgi?id=780302
11263 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
11265 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11266 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11267 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
11268 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
11269 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
11270 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
11271 unit length and data to a bitwriter.
11272 Note that this helper function applies EPB (Emulation Prevention
11273 Bytes), since otherwise produced codec_data might be broken when
11274 decoder/parser considering EPB, starts parsing.
11275 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
11276 describes the emulation_prevention_three_byte.
11277 https://bugzilla.gnome.org/show_bug.cgi?id=778750
11278 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11280 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11282 * gst-libs/gst/vaapi/Makefile.am:
11283 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11284 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11285 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
11286 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
11287 * gst-libs/gst/vaapi/meson.build:
11288 libs: utils: h26x: create vaapiutils_h26x
11289 Since there is duplicated code in h264/265 encoder, we could
11290 refactor it to avoid duplicated code.
11291 https://bugzilla.gnome.org/show_bug.cgi?id=778750
11292 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11294 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
11296 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11297 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11298 libs: encoder: h264/5: fix wrong return value
11299 https://bugzilla.gnome.org/show_bug.cgi?id=778750
11301 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11303 * gst/vaapi/gstvaapiencode_h264.c:
11304 * gst/vaapi/gstvaapiencode_h265.c:
11305 docs: h264/h265: put parser to the example pipeline
11306 https://bugzilla.gnome.org/show_bug.cgi?id=778749
11308 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11310 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11311 libs: encoder: h265: fix reserved length of bits
11312 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
11313 https://bugzilla.gnome.org/show_bug.cgi?id=778749
11315 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11317 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11318 * tests/test-display.c:
11319 O_CLOEXEC needs _GNU_SOURCE defined
11321 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
11322 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
11323 2.12, one can obtain their definitions by defining either
11324 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
11325 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
11326 2.11 and earlier, one obtains the definitions by defining
11328 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
11329 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
11330 gstreamer-vaapi with the uClibc C library.
11331 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11332 https://bugzilla.gnome.org/show_bug.cgi?id=779953
11334 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11337 README: fix "Sources" section
11338 Update the URL where the release source tarballs can be downloaded.
11340 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11343 README: fix "Reporting bugs" section
11344 The "Reporting bugs" section gives
11345 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
11346 link to report a bug, but this link says "Sorry, entering a bug into the
11347 product gstreamer-vaapi has been disabled.".
11348 This commit fixes the URL to point to the proper location, and also
11349 removes the following paragraph that is no longer correct.
11350 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11351 https://bugzilla.gnome.org/show_bug.cgi?id=779954
11353 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11355 * gst/vaapi/gstvaapipluginutil.c:
11356 plugins: retry to create the VA display
11357 Particularly in GNOME Wayland, the negotiated or created GL context
11358 defines a GLX environment, but VAAPI fails to create a GLX VA
11359 display because there is no a DRI2 connection.
11360 This patch retries to create the VA display if VA cannot create one
11361 with the GL context parameters. Now using the old list of display
11363 This should also work in the case of systems with two GPU, when the
11364 non-VAAPI has the graphics environment, and the VAAPI-enabled one
11365 shall work headless.
11366 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11368 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11370 * gst/vaapi/gstvaapipostproc.c:
11371 vaapipostproc: texture upload if driver supports GL
11372 Removes GstVideoGLTextureUploadMeta caps feature if the driver
11373 doesn't support opengl.
11374 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11375 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11377 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11379 * gst/vaapi/gstvaapidecode.c:
11380 vaapidecode: texture upload if driver supports GL
11381 When the allowed source pad caps are generated, the GLTextureUpload caps are
11382 only inserted if the driver support OpenGL.
11383 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11385 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11388 configure: Add missing compiler flags
11389 The AC_CHECK_HEADERS macro was failing to locate some headers, in
11390 particular the va_enc_* headers due to missing compiler flags.
11391 https://bugzilla.gnome.org/show_bug.cgi?id=779101
11392 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11394 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
11396 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11397 libs: window: wayland: handle more VAStatus to use vpp
11398 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
11399 we should consider more returned VAStatus to use vpp.
11400 https://bugzilla.gnome.org/show_bug.cgi?id=779400
11402 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11404 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11405 libs: encoder: ensure profile when context initialization
11406 We can't be sure that encoder's profile is assgined already or not
11407 at context initialization.
11408 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11410 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11412 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11413 libs: encoder: set rate control info only when query succeed
11414 Currently, it set rate control information even when query fails.
11415 In addition, it doesn't update any more since the flag
11416 got_rate_control_mask is set to TRUE.
11417 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11419 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
11422 meson: Update version
11424 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
11427 Back to development
11429 === release 1.11.2 ===
11431 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
11436 * gstreamer-vaapi.doap:
11439 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11441 * gst/vaapi/gstvaapiencode.c:
11442 vaapiencode: merge tags for downstream's info
11443 Add encoder and codec name and the bitrate into the output for
11444 informational purposes. Some muxers or application use it as
11446 https://bugzilla.gnome.org/show_bug.cgi?id=778781
11448 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11450 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11451 libs: encoder: caps can change at any time
11452 The encoder should be able to change its caps even it is already
11453 processing a stream.
11454 This is suppose to happen after a flush so the codedbuf_queue should
11456 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11458 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11460 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11461 libs: encoder: h265: bail if nal unit type fails
11462 Bail out if the NAL unit type is not recognized.
11463 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11465 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11467 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11468 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11469 libs: decoder: h264,h265 avoid uninitialized variable
11470 Configuring GCC to verify possible usage of uninitialized variables,
11471 shows that found_index might be used without previous assignation.
11472 This patch assigns a initial value to found_index, also avoid a
11473 branching when returning the result value.
11474 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11476 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11479 * gst-libs/gst/vaapi/Makefile.am:
11480 * gst/vaapi/gstvaapidecode.c:
11481 * gst/vaapi/gstvaapidecodebin.c:
11482 build: rename USE_HEVC_DECODER to USE_H265_DECODER
11483 Rename to be consistent with H.264 and also H.265 encoder. The
11484 meson build assumed this was already consistently named, and so
11485 previously was not able to actually build the H.265 decoder.
11486 https://bugzilla.gnome.org/show_bug.cgi?id=778576
11488 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
11491 meson: gstreamer-codecparsers is a required dep
11492 Just like in configure.ac.
11494 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
11497 meson: dist meson build files
11498 Ship meson build files in tarballs, so people who use tarballs
11499 in their builds can start playing with meson already.
11501 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
11503 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11504 libs: encoder: vp8: add CBR encoding mode
11505 This patch enables the Constant BitRate encoding mode in VP8 encoder.
11506 Basically it adds the configuration parameters required by libva to
11508 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11509 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11511 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
11513 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11514 libs: encoder: vp8: fix bitrate calculation
11515 Base encoder's unit of bitrate is in Kbps. We should honor it so
11516 we use the value of bitrate in VA, in which is expressed in bps.
11517 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11519 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11521 * gst/vaapi/gstvaapipluginbase.c:
11522 plugins: fix build when gcc
11523 In commit a8e482f9 we added a function without parameters, but gcc
11526 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11528 * gst-libs/gst/base/meson.build:
11529 * gst-libs/gst/meson.build:
11530 * gst-libs/gst/vaapi/meson.build:
11531 * gst-libs/meson.build:
11533 * gst/vaapi/meson.build:
11535 * meson_options.txt:
11536 vaapi: add meson build
11537 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11539 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11542 * gst-libs/gst/vaapi/Makefile.am:
11543 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11544 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
11545 make: remove gstvaapiversion.h generation
11546 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11548 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
11550 * gst/vaapi/gstvaapipluginbase.c:
11551 plugins: use linear storage if not the same device
11552 When dmabuf is negotiated downstream and decoding and rendering are
11553 not done on the same device, the layout has to be linear in order for
11554 the memory to be shared accross devices, since each device has its
11555 own way to do tiling.
11556 Right now this code is rather just a to-do comment, since we are not
11557 fetching the device ids.
11558 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11560 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
11562 * gst-libs/gst/vaapi/gstvaapiutils.c:
11563 libs: utils: add HEVC profiles representation
11564 https://bugzilla.gnome.org/show_bug.cgi?id=778318
11566 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
11568 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11569 libs: decoder: h264: reduce frame number of gaps
11570 Reduce frame num gaps so that we don't have to create unnecessary
11571 dummy pictures, just throw them away.
11572 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11573 https://bugzilla.gnome.org/show_bug.cgi?id=777506
11575 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11577 * gst/vaapi/gstvaapidecode.c:
11578 vaapidecode: don't GLTextureUpload if dmabuf
11579 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11580 element can handle dmabuf-based buffers, avoiding its negotiation.
11582 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
11584 * gst/vaapi/gstvaapidecode.c:
11585 vaapidecode: make pool to export decoder's surface
11586 Use new -base API gst_video_decoder_allocate_output_frame_full() to
11587 pass the current proxy/surface to the pool.
11588 The pool will will export thins given surface instead of exporting a
11589 brand new surface that will never be filled in with meaningfull data.
11590 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11592 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11594 * gst/vaapi/gstvaapipluginbase.c:
11595 plugins: decoder can negotiate dmabuf downstream
11597 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
11599 * gst/vaapi/gstvaapivideobufferpool.c:
11600 vaapivideobufferpool: override acquire_buffer()
11601 Overriding the vmethod acquire_buffer() it is possible to attach the
11602 right GstMemory to the current acquired buffer.
11603 As a matter of fact, this acquired buffer may contain any instantiated
11604 GstFdmemory, since this buffer have been popped out from the buffer
11605 pool, which is a FIFO queue. So there is no garantee that this buffer
11606 matches with the current processed surface. Evenmore, the VA driver
11607 might not use a FIFO queue. Therefore, it is no way to guess on the
11609 In short, acquire_buffer on the VA driver and on the buffer pool return
11610 none matching data, we have to manually attach the right GstFdMemory to
11611 the acquired GstBuffer. The right GstMemory is the one associated with
11612 the current surface.
11613 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11615 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
11617 * gst/vaapi/gstvaapivideobufferpool.c:
11618 * gst/vaapi/gstvaapivideomemory.c:
11619 vaapivideomemory: export surface if it is provided
11620 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
11621 had to create that surface. Now it can also export an already provided
11622 surface. It is useful to export decoder's surfaces (from VA context).
11623 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11625 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
11627 * gst/vaapi/gstvaapivideobufferpool.h:
11628 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
11629 Useful to let the pool know the current surface proxy when calling
11630 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
11631 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11633 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
11635 * gst-libs/gst/vaapi/gstvaapisurface.c:
11636 * gst-libs/gst/vaapi/gstvaapisurface.h:
11637 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
11638 These functions are useful when a dmabuf-based memory is instantiated in
11639 order to relate the generated buffer @proxy with the processed @surface.
11640 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11642 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
11644 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11645 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11646 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11647 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
11648 This patch adds a GstMemory as a variable member of the buffer proxy,
11649 because we will need to associate the buffer proxy with the memory
11650 which exposes it. Later, we will know which memory, in the video buffer
11651 pool, is attached to the processed surface.
11652 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11654 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11656 * gst/vaapi/gstvaapipostproc.c:
11657 vaapipostproc: don't GLTextureUpload if dmabuf
11658 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11659 element can handle dmabuf-based buffers, avoiding its negotiation.
11660 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
11661 feature if can dmabuf"
11662 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11664 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11666 * gst/vaapi/gstvaapipluginbase.c:
11667 plugins: enable DMAbuf allocator to downstream
11668 If the negotiated caps are raw caps and downstream supports the
11669 EGL_EXT_image_dma_buf_import extension, then the created allocator
11670 is the DMAbuf, configured to downstream.
11671 At this moment, the only element which can push dmabuf-based buffers
11672 to downstream, is vaapipostproc.
11674 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11676 * gst/vaapi/gstvaapipluginbase.c:
11677 * gst/vaapi/gstvaapipluginbase.h:
11678 plugins: check if negotiate dmabuf with downstream
11679 In order to enable, in the future, dmabuf-based buffers, the vaapi base
11680 plugin needs to check if downstream can import dmabuf buffers.
11681 This patch checks if downstream can handle dmabuf, by introspecting the
11682 shared GL context. If the GL context is EGL/GLES2 and have the extension
11683 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
11684 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
11686 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
11688 * gst/vaapi/gstvaapivideomemory.c:
11689 vaapivideomemory: release proxy's data if downstream
11690 The surface created for downstream is going to be filled by VAAPI
11691 elements. So, the driver needs write access on that surface.
11692 This patch releases the derived image held by the proxy, thus the
11693 surface is unmarked as busy.
11694 This is how it has to be done as discussed on libva mailing list.
11695 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11697 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
11699 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11700 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11701 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
11702 Adds an API to request the user's data release in the buffer proxy.
11703 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11705 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11707 * gst/vaapi/gstvaapipluginbase.c:
11708 * gst/vaapi/gstvaapivideomemory.c:
11709 * gst/vaapi/gstvaapivideomemory.h:
11710 vaapivideomemory: add direction to dmabuf allocator
11711 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
11712 we later could do different thing when the allocated memory is for
11713 upstream or dowstream, as required by VA-API.
11714 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11716 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
11718 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
11719 libs: utils: return NULL if failed to get surface formats
11720 Thus, when generating the allowed caps, the element will throw a
11721 warning and it will use its caps template.
11722 This behavior might be a bug in the VA driver.
11723 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11725 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11727 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11728 Revert "vaapidisplay: mark X11 display as compatible with EGL"
11729 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
11731 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
11733 * gst/vaapi/gstvaapipostproc.c:
11734 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
11735 A value of width/height property should be set to out caps,
11736 if negotiation had been going properly.
11737 So we can use srcpad_info when making decision of scaling.
11738 https://bugzilla.gnome.org/show_bug.cgi?id=778010
11740 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11742 * gst/vaapi/gstvaapidecode.c:
11743 * gst/vaapi/gstvaapiencode.c:
11744 * gst/vaapi/gstvaapipluginutil.c:
11745 * gst/vaapi/gstvaapipluginutil.h:
11746 * gst/vaapi/gstvaapipostproc.c:
11747 * gst/vaapi/gstvaapisink.c:
11748 plugins: handle GL params through context query
11749 If the element instantiated the GL display and context, they should
11750 handle them too through the context query.
11751 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11753 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11755 * gst/vaapi/gstvaapipluginbase.c:
11756 * gst/vaapi/gstvaapipluginbase.h:
11757 * gst/vaapi/gstvaapipluginutil.c:
11758 plugins: create a GL context on certain conditions
11759 If a GstVaapiDisplay is not found in the GStreamer context sharing,
11760 then VAAPI elements look for a local GstGLContext in gst context
11761 sharing mechanism ('gst.gl.local.context').
11762 If this GstGLContext not found either then, only the VAAPI decoders
11763 and the VAAPI post-processor, will try to instantiate a new
11765 If a valid GstGLContext is received, then a new GstVaapiDisplay will
11766 be instantiated with the platform, API and windowing specified by the
11767 instantiated GstGLContext.
11768 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
11769 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11771 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11773 * gst/vaapi/gstvaapivideocontext.c:
11774 vaapivideocontext: context type can be rejected
11775 Instead of calling g_return_val_if_fail() to check the context type, we
11776 should use a normal conditional, since it is possible that other context types
11777 can arrive and try to be assigned. Otherwise a critical log message is
11779 This happens when we use playbin3 with vaapipostproc as video-filter.
11780 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11782 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11784 * gst/vaapi/gstvaapipostprocutil.c:
11785 vaapipostproc: use sink caps par if not requested
11786 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
11787 is not already set.
11788 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11790 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11792 * gst/vaapi/gstvaapipostproc.c:
11793 * gst/vaapi/gstvaapipostprocutil.c:
11794 vaapipostproc: set interlace mode
11795 if the vaapipostproc is configured to not do deinterlacing, the
11796 interlace-mode in the src caps should be the same as the input caps.
11797 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11799 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11801 * gst/vaapi/gstvaapisink.c:
11802 vaapisink: fix gcc compiler warning
11803 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
11805 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11807 * gst/vaapi/gstvaapisink.c:
11808 vaapisink: don't use member variable outside lock
11809 Thus a race condition segfault is avoided.
11810 Original-patch-by: Matt Staples <staples255@gmail.com>
11811 https://bugzilla.gnome.org/show_bug.cgi?id=777146
11813 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11815 * gst/vaapi/gstvaapipluginbase.c:
11816 * gst/vaapi/gstvaapipostproc.c:
11817 plugins: avoid log flood when activating pool
11818 Every time a new buffer is allocated, the pool is activated. This
11819 doesn't impact in performance since gst_buffer_pool_set_active()
11820 checks the current state of the pool. Nonetheless it logs out a
11821 message if the state is the same, and it floods the logging subsystem
11823 To avoid this log flooding first the pool state is checked before
11826 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11828 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11829 * gst-libs/gst/vaapi/gstvaapidecoder.h:
11830 * gst/vaapi/gstvaapidecode.c:
11831 * gst/vaapi/gstvaapidecode.h:
11832 vaapidecode: update internal decoder sink caps
11833 When a new sink caps arrive the internal decoder state is updated
11834 and, if it is, request a downstream renegotiation.
11835 Previously, when new caps arrived the whole decoder where destroyed
11836 and recreated. Now, if the caps are compatible or has the same codec,
11837 the internal decoder is kept, but a downstream renegotiation is
11839 https://bugzilla.gnome.org/show_bug.cgi?id=776979
11841 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
11844 Back to development
11846 === release 1.11.1 ===
11848 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
11853 * gstreamer-vaapi.doap:
11856 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11858 * gst-libs/gst/vaapi/gstvaapiutils.c:
11859 vaapi: bump ifdef to API 0.40.0 for log redirect
11860 vaSetInfoCallback() is not released yet. It is going to appear in
11863 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
11865 * gst-libs/gst/vaapi/gstvaapiutils.c:
11866 vaapiutils: Fix compilation with latest and previous libva releases
11867 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
11870 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11872 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11873 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11874 * gst-libs/gst/vaapi/gstvaapiutils.c:
11875 * gst-libs/gst/vaapi/gstvaapiutils.h:
11876 libs: display: redirect logging at initialize
11877 Redirect libva's logs to GStreamer logging mechanism. This is
11878 particularly useful when VA is initialized, because it always logs
11879 out the drivers details.
11880 In order to achieve this a new helper function was added as a wrapper
11881 for the vaInitialize() function.
11882 https://bugzilla.gnome.org/show_bug.cgi?id=777115
11884 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
11886 * gst/vaapi/gstvaapipluginbase.c:
11887 plugins: provide at least two buffers in sink pool
11888 Adds two buffers as the default value of minimum buffer.
11889 This would be used when creating and proposing vaapi bufferpool for
11890 sink pad, hence the upstream element will keep, at least, these two
11892 https://bugzilla.gnome.org/show_bug.cgi?id=775203
11893 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11895 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
11897 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11898 libs: decoder: h264: don't update cloned attributes
11899 If the frame is a cloned picture, its PTS comes from its parent
11900 picture. In addition, the base decoder doesn't set a valid PTS to
11901 the frame corresponding to the cloned picture.
11902 https://bugzilla.gnome.org/show_bug.cgi?id=774254
11904 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11906 * gst/vaapi/gstvaapivideomemory.c:
11907 vaapivideomemory: check for display
11908 This patch fixes the check of display, rather than check for the
11909 meta, which it is known it exists.
11911 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11913 * gst/vaapi/gstvaapivideomemory.c:
11914 * gst/vaapi/gstvaapivideomemory.h:
11915 vaapivideomemory: rename dmabuf allocator parameters
11916 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
11917 'surface_alloc_flags' respectively. The purpose of this change is
11918 to auto-document those parameters.
11919 Also, aligned to this patch, the local 'alloc_info' variable was
11920 renamed as 'surface_info', because it stores the possible surface's
11921 video info, not the allocate one.
11923 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11925 * gst/vaapi/gstvaapivideomemory.c:
11926 * gst/vaapi/gstvaapivideomemory.h:
11927 vaapivideomemory: rename vip to alloc_info parameter
11928 In order to auto-document the code, this patch renames the 'vip'
11929 parameter in the functions related to gst_vaapi_video_allocator_new ()
11930 to 'alloc_info', since it declares the allocation video info from
11931 the vaapi buffer pool.
11933 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11935 * gst/vaapi/gstvaapivideomemory.c:
11936 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
11937 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
11938 the video format string.
11940 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11942 * gst/vaapi/gstvaapivideomemory.c:
11943 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
11944 gst_vaapi_surface_new_with_format() is a wrapper for
11945 gst_vaapi_surface_new_full (). In this case, the former is simpler
11946 than the first. This patch changes that.
11948 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11950 * gst/vaapi/gstvaapipostproc.c:
11951 vaapipostproc: notify if src pad caps changed
11952 If src pad caps have changed, it needs to notify it downstream. In
11953 addition, do not set passthrough if they have changed.
11954 Otherwise, transform sometimes starts processing before caps change.
11955 The passthrough value will be set in fixate later in this case.
11956 https://bugzilla.gnome.org/show_bug.cgi?id=775204
11958 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11960 * gst/vaapi/gstvaapidecodebin.c:
11961 vaapidecodebin: capsfilter to optimize negotiation
11962 Add a capsfilter forcing the caps
11963 "video/x-raw(memory:VASurface), format=(string)NV12" between the
11964 queue and the vaapipostproc so no renegotiation is required.
11965 https://bugzilla.gnome.org/show_bug.cgi?id=776175
11967 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11969 * gst/vaapi/gstvaapivideomemory.c:
11970 vaapivideomemory: fail surface/image configuration
11971 To detect and handle errors during allocator_configure_surface_info()
11972 and allocator_conigure_image_info().
11973 https://bugzilla.gnome.org/show_bug.cgi?id=776084
11974 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11976 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11978 * gst/vaapi/gstvaapisink.c:
11979 vaapisink: ensures raw caps at start()
11980 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
11981 race conditions at get_caps(), especially with multiple src elements.
11982 https://bugzilla.gnome.org/show_bug.cgi?id=776303
11984 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11986 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11987 libs: surface: fix error handling code style
11989 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11991 * gst/vaapi/gstvaapivideomemory.c:
11992 vaapivideomemory: add gst_video_info_update_from_surface()
11993 With this function is possible to refactor and remove duplicated code
11994 between dmabuf configuration and direct rendering/uploading
11997 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11999 * gst/vaapi/gstvaapivideomemory.c:
12000 vaapivideomemory: no log object at initialization
12001 When an instance of GstVaapiVideoAllocator fails at initializing, the
12002 log message should not include the allocator's object, because it is
12003 going to be unrefed.
12005 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12007 * gst/vaapi/gstvaapidecode.c:
12008 vaapidecode: lock stream when setting caps
12010 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12012 * gst/vaapi/gstvaapidecode.c:
12013 Revert "vaapidecode: implement negotiate() vmethod"
12014 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
12015 videodecode's negotiate() vmethod is also called when events arrive,
12016 but this would mean that the proper configuration of sink pad might
12017 not be complete, thus we should not update the src pad.
12018 Let's keep the old non-vmethod negotitate().
12020 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12022 * gst/vaapi/gstvaapi.c:
12023 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
12024 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
12026 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
12028 * gst/vaapi/gstvaapiencode.c:
12029 * gst/vaapi/gstvaapiencode.h:
12030 vaapiencode: get surface formats in get_caps()
12031 Query for the supported surface formats in config at get_caps() vmethod.
12032 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12033 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12035 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
12037 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12038 * gst-libs/gst/vaapi/gstvaapiencoder.h:
12039 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
12040 This method will return the valid surface formats in the current
12041 config. If the are no VAConfig it is created with the information
12043 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12044 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12046 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
12048 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12049 libs: encoder: split set_context_info()
12050 Split set_context_info() adding init_context_info() which only
12051 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
12052 required for VAConfig.
12053 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12054 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12056 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
12058 * gst-libs/gst/vaapi/gstvaapicontext.c:
12059 libs: context: skip VAContext if no frame size
12060 If GstVaapiContextInfo has just initial information, without frame's
12061 width and height, skip the creation of the VAContext, just keep the
12063 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12064 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12066 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
12068 * gst-libs/gst/vaapi/gstvaapicontext.c:
12069 libs: context: split context_create()
12070 Split the funcion context_create() into context_create() and
12072 Decoupling VAConfig and VAContext during context creation, we could
12073 query the VAConfig for the supported surface's formats without creating
12075 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12077 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12079 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12080 libs: drm: find render node in hybrid system
12081 Originally the drm backend only tried to open the first render node
12082 found. But in hybrid system this first render node might not support
12083 VA-API (propietary Nvidia driver, for example).
12084 This patch tries all the available nodes until a finding one with a
12085 VA-API supported driver.
12086 https://bugzilla.gnome.org/show_bug.cgi?id=774811
12087 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
12088 Reza Razavi <reza@userful.com>
12090 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12092 * gst/vaapi/gstvaapivideomemory.c:
12093 vaapivideomemory: refactor code for readability
12094 Added the inlined function allocator_configure_pools() moving out code
12095 from gst_vaapi_video_allocator_new() to make clear that it is a
12096 post-initalization of the object.
12098 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12100 * gst/vaapi/gstvaapivideomemory.c:
12101 vaapivideomemory: log error if not VA image
12102 Log an error message if the test image for surface downloading
12103 cannot be allocated or mapped.
12105 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12107 * gst/vaapi/gstvaapivideomemory.c:
12108 vaapivideomemory: remove unused macros
12109 These macros are not used. Let us remove them.
12111 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12113 * gst/vaapi/gstvaapivideomemory.c:
12114 * gst/vaapi/gstvaapivideomemory.h:
12115 vaapivideomemory: rename video for allocation_info
12116 Since video_info stores the GstVideoInfo of the allocation caps,
12117 it is clear if we rename it as allocation_info, to distinguish it
12118 later from negotiation_info.
12120 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
12122 * gst/vaapi/gstvaapivideomemory.c:
12123 * gst/vaapi/gstvaapivideomemory.h:
12124 vaapivideomemory: add real GstVaapiDmaBufAllocator
12125 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
12126 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
12127 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
12128 from GstDmaBufAllocator.
12129 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12130 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12132 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
12134 * gst/vaapi/gstvaapivideomemory.c:
12135 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
12136 Add a helper function to initialize the gst_debug_vaapivideomemory,
12137 to use it either by the GstVaapiVideoAllocatorClass or
12138 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
12139 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
12140 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12142 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
12144 * gst/vaapi/gstvaapiencode.c:
12145 vaapiencode: release internal encoder at stop()
12146 As the internal encoder is created at start(), let's release it at
12147 stop() vmethod, to be consistent.
12148 gst_vaapiencode_destroy() is called since it also resets the input and
12149 output states, which is something that the base class does internally
12150 after calling stop() vmethod.
12151 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12152 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12154 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
12157 Automatic update of common submodule
12158 From f49c55e to 39ac2f5
12160 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
12162 * gst/vaapi/gstvaapiencode.c:
12163 vaapiencode: call ensure_encoder() at start()
12164 Currently, specific encoder is created during set_format(). This might
12165 lead to race condition when creating profiles with multiple encoders.
12166 This patch moves ensure_encoder() call to start() vmethod to ensure
12167 avoiding the race condition.
12168 https://bugzilla.gnome.org/show_bug.cgi?id=773546
12170 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12172 * gst/vaapi/gstvaapidecodebin.c:
12173 vaapidecodebin: bring back dynamic configuration
12174 In commit ca0c3fd6 we remove the dynamic configuration if the bin
12175 because we assumed that the bin will be always static as it is
12177 Nonetheless we were wrong, because it is possible to request, with a
12178 property, to avoid the use of the post-processor.
12179 Since we want to add a way to disable the post-processor through
12180 environment variables, this remove feature is required again.
12181 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
12182 postprocessor inside of the vaapidecodebin is disabled, then
12183 vaapidecodebin is an alias of the old vaapidecode.
12184 https://bugzilla.gnome.org/show_bug.cgi?id=775041
12186 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12188 * gst/vaapi/gstvaapidecode.c:
12189 vaapidecode: implement negotiate() vmethod
12190 Instead of decorating the negotiate() method, let us override it,
12191 so the stream is locked while called.
12192 https://bugzilla.gnome.org/show_bug.cgi?id=775040
12194 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
12197 common: use https protocol for common submodule
12198 https://bugzilla.gnome.org/show_bug.cgi?id=775110
12200 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
12202 * gst-libs/gst/vaapi/Makefile.am:
12203 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
12204 In case libva-wayland has its headers not installed in default
12205 locations (like /usr/include), the build fails to include "wayland-client.h":
12206 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
12207 In file included from gstvaapidisplay_wayland.h:27:0,
12208 from gstvaapidisplay_egl.c:35:
12209 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
12210 #include <wayland-client.h>
12211 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
12212 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
12213 for libva-wayland.pc in configure and use this in other places as well. It is thus only
12214 correct and consequent, to do it also at this spot.
12215 https://bugzilla.gnome.org/show_bug.cgi?id=773946
12217 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12219 * gst/vaapi/gstvaapivideocontext.c:
12220 vaapivideocontext: log a message if no bus
12221 Raise a warning if there is no bus when the element tries to post a
12224 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12226 * gst/vaapi/gstvaapisink.c:
12227 vaapisink: create display at open()
12228 Instead of creating the VA display before setting the bus to the
12229 element, it is created when the element is opened.
12230 Basically, this commit is a revert of
12231 5e5d62cac79754ba60057fc2516135aad8d7de35
12232 That was done when the GStreamer's context sharing was not mature
12233 enough as now. There is no reason to keep this hack.
12235 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12237 * gst/vaapi/gstvaapidecode.c:
12238 vaapidecode: don't add video crop meta
12239 Since the differentiation of negotiation caps and allocation caps,
12240 there is no need to add a video crop meta with the negotiation caps.
12241 Hence, removing it.
12242 https://bugzilla.gnome.org/show_bug.cgi?id=773948
12244 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12246 * gst/vaapi/gstvaapivideobuffer.c:
12247 * gst/vaapi/gstvaapivideometa.c:
12248 * gst/vaapi/gstvaapivideometa.h:
12249 remove the video converter from vaapi buffer meta
12250 Since all the video converter were deprecated in gstreamer-1.2, we don't need
12251 to handle them anymore in the vaapi's buffer meta.
12252 This patch removes its usage and the buffer meta's API for that.
12253 https://bugzilla.gnome.org/show_bug.cgi?id=745728
12255 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12257 * gst/vaapi/gstvaapipluginbase.c:
12258 plugins: destroy source pad allocator and pool
12259 First, deactivate source pad pool when the out caps change, and if so,
12260 destroy texture map, the source pad allocator and pool only if the
12261 new caps are different from the ones already set.
12263 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12265 * gst/vaapi/gstvaapipluginbase.c:
12266 plugins: don't destroy sink pad allocator
12267 Don't destroy sink pad allocator at _set_caps() because it will be done at
12268 ensure_sinkpad_buffer_pool() if it is required.
12270 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12272 * gst/vaapi/gstvaapipluginbase.c:
12273 plugins: first validate the out caps
12274 When calling _set_caps() first validate the out caps before doing
12277 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12279 * gst/vaapi/gstvaapidecode.c:
12280 vaapidecode: negotiate after destroying allocator
12281 This is related with bug 758907 when no vaapipostproc is used (no
12282 vaapidecodebin). In order to negotiate downstream we need to destroy
12283 the source pad allocator, otherwise the same allocated buffers are
12284 used, failing the mapping.
12286 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12288 * gst/vaapi/gstvaapivideomemory.c:
12289 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
12290 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
12291 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
12293 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12295 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12297 * gst/vaapi/gstvaapipluginbase.c:
12298 plugins: update the src pad allocator video info
12299 Update the size, stride and offset of the source pad allocator video
12300 info, so the pool could set the correct GstVideoMeta
12301 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12303 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12305 * gst/vaapi/gstvaapivideomemory.c:
12306 vaapivideomemory: add missing documentation
12307 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12309 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12311 * gst/vaapi/gstvaapipluginbase.c:
12312 plugins: use early return without goto
12313 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12315 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12317 * gst/vaapi/gstvaapipluginbase.c:
12318 * gst/vaapi/gstvaapivideomemory.c:
12319 * gst/vaapi/gstvaapivideomemory.h:
12320 plugins: add allocator to allocation query
12321 This patch adds the created allocator to the allocation query either
12322 in decide_allocation() and propose_allocation() vmehtods.
12323 With it, there's no need to set the modified allocator's size in the
12324 pool configuration.
12325 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12327 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
12329 * gst/vaapi/gstvaapivideobufferpool.c:
12330 vaapivideobufferpool: set correct buffer size
12331 We should set the correct buffer size when we are configuring the pool,
12332 otherwise the buffer will be discarded when it returns to the pool.
12333 Indeed when the ref-count of a buffer reaches zero, its pool will queue
12334 it back (and ref it) if, and only if, the buffer size matches the
12335 configured buffer size on the pool.
12336 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
12337 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12339 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12341 * gst/vaapi/gstvaapivideomemory.c:
12342 vaapivideomemory: check for memory allocator
12343 When calling gst_vaapi_video_memory_copy() the allocator of the memory
12344 to copy should be allocated by the vaapi allocator.
12345 This patch does this verification.
12347 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12349 * gst/vaapi/gstvaapivideomemory.c:
12350 vaapivideomemory: code style fixes
12351 A cosmetic commit for enhance readability of the casts and method
12354 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12356 * gst/vaapi/gstvaapivideomemory.c:
12357 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
12358 Instead of having a gst_vaapi_video_memory_free() that is only going to
12359 be called by gst_vaapi_video_allocator_free(), let's just remove the first
12360 and merged into the second.
12362 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12364 * gst/vaapi/gstvaapivideomemory.c:
12365 vaapivideomemory: avoid virtual methods casting
12366 Use the expected virtual method signatures for readability.
12368 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12370 * gst/vaapi/gstvaapivideomemory.c:
12371 vaapivideomemory: remove unimplemented methods
12372 Remove unimplemented method for allocator mem_share() and mem_is_span().
12374 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12376 * gst/vaapi/gstvaapivideomemory.c:
12377 vaapivideomemory: fail if frame map can't get plane
12378 If map() vmethod in GstVideMeta cannot get the plane data, return false,
12379 thus the caller will not try to read invalid memory.
12380 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12382 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12384 * gst/vaapi/gstvaapivideomemory.c:
12385 * gst/vaapi/gstvaapivideomemory.h:
12386 vaapivideomemory: lock map and unmap operations
12387 In order to avoid race condition when two threads call map/unmap the same
12388 VA surface, this patch mutex these operations.
12389 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12391 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12393 * gst/vaapi/gstvaapivideomemory.c:
12394 vaapivideomemory: refactor vaapi memory unmapping
12395 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
12396 gst_vaapi_video_memory_unmap() when unmapping.
12397 This patch refactors both methods adding the common function
12398 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
12399 is correctly reset.
12400 Additionally, only when mapping flag has the WRITE bit, it set the image as
12401 current, which was done in gst_video_meta_map_vaapi_memory() but no in
12402 gst_vaapi_video_memory_map().
12403 In order to make this, the mapping flags were required, so instead of
12404 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
12405 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12407 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12409 * gst/vaapi/gstvaapivideomemory.c:
12410 vaapivideomemory: refactor vaapi memory mapping
12411 There were duplicated code in gst_video_meta_map_vaapi_memory() and
12412 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
12413 This patch refactors both methods adding the common function
12414 map_vaapi_memory().
12415 Additionally, only when flag has the READ bit it calls
12416 ensure_images_is_current(), which was done in
12417 gst_video_meta_map_vaapi_memory() but no in
12418 gst_vaapi_video_memory_map().
12419 https://bugzilla.gnome.org/show_bug.cgi?id=772151
12421 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12423 * gst/vaapi/gstvaapidecode.c:
12424 vaapidecode: unref allowed_sinkpad_caps at close()
12425 The variable member allowed_sinkpad_caps is constructed querying the
12426 current VA display. Bearing that in mind, the variable shall be freed
12427 when the VA display changes or is removed.
12428 This patch moves the freeing of allowed_sinkpad_caps to close(), when
12429 the VA display is freed.
12431 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12433 * gst/vaapi/gstvaapisink.c:
12434 vaapisink: finish event thread at stop()
12435 The thread that handles window's events should be finished during
12436 pipeline's shutdown, otherwise it will remain alive during pipeline
12437 re-activation, leading to unexpected problems.
12438 This patch fixes failures of intensive_state_change scenario of
12440 https://bugzilla.gnome.org/show_bug.cgi?id=774241
12442 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12444 * gst/vaapi/gstvaapipostproc.c:
12445 vaapipostproc: enhance debug message
12446 "gst_pad_push" is not a good description of the event.
12448 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
12450 * gst/vaapi/gstvaapipostproc.c:
12451 postproc: honor gst_pad_push() return value
12452 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
12453 deadlock during seek.
12454 This patch returns the same error of gst_pad_push() and log out the
12456 https://bugzilla.gnome.org/show_bug.cgi?id=774030
12458 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12460 * gst/vaapi/gstvaapidecode.c:
12461 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
12462 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
12463 compiled with out EGL/GLX support: it shall not support
12464 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
12465 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
12466 allowed src caps for vaapedecode if EGL/GLX.
12468 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12470 * gst/vaapi/gstvaapivideomemory.c:
12471 vaapivideomemory: increment map counter only if succeeded
12472 Previously the frame map counter increased independently if the map succeeded
12473 or not. This leaded to critical messages and crashes if the frame was unable
12474 to be mapped, but the counter increased.
12475 This patch increases the map counter only if the map operation occurred.
12476 https://bugzilla.gnome.org/show_bug.cgi?id=773939
12478 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12480 * gst/vaapi/gstvaapipluginbase.c:
12481 plugins: set negotiation caps in src allocator
12482 When the allocator is created, it stores the allocation caps. But sometimes
12483 the "allocation caps" may be different from the "negotiation caps".
12484 In this case, the allocator should store the negotiation caps since they
12485 are the ones used for frame mapping with GstVideoMeta.
12486 When vaapispostproc is used, this is not a problem since the element is assume
12487 to resize. But when using a vaapi decoder only, with a software renderer, it
12488 fails in this case.
12489 https://bugzilla.gnome.org/show_bug.cgi?id=773323
12491 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12493 * gst/vaapi/gstvaapidecode.c:
12494 * gst/vaapi/gstvaapidecode.h:
12495 vaapidecode: generate source pad caps
12496 Just as vaapipostproc, VA decoder's context can be queried to get the possible
12497 raw formats, so, the src caps can negotiate the exact caps that the context
12500 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12502 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12503 * gst-libs/gst/vaapi/gstvaapidecoder.h:
12504 libs: decoder: add _get_surface_formats()
12505 This function exposes the available formats of the surfaces in the the current
12506 context to the plugins.
12508 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12510 * gst-libs/gst/vaapi/gstvaapicontext.c:
12511 * gst-libs/gst/vaapi/gstvaapicontext.h:
12512 libs: context: ensure context formats
12513 This patch ensures to get the formats, as filter does, available in the
12514 decoder / encoder context.
12515 The context fills up the array as soon it is created, otherwise the pipeline
12516 could get stalled (perhaps this is a bug in my HSW backend).
12517 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12519 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12521 * gst-libs/gst/vaapi/gstvaapifilter.c:
12522 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
12523 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
12524 libs: move get_surface_formats to utils_core
12525 The query of all the supported formats for a VA config were only used by the
12526 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
12527 negotiate a suitable raw format with downstream, we need to query these
12528 formats against the decoder's config.
12529 This patch is the first step: moves the code in filter's ensure_image() to a
12530 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
12531 shared later by the decoder.
12532 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12534 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12536 * gst/vaapi/gstvaapipluginbase.c:
12537 plugins: remove set_sinkpad_dmabuf_allocator()
12538 Since when the sink pad allocator is created, it is decided if the required
12539 one is vaapi allocator or dmabuf allocator, there is no need to force its set
12542 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12544 * gst/vaapi/gstvaapipluginbase.c:
12545 plugins: ensure display when getting raw caps
12546 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
12547 meanwhile it is transforming caps. The problem is that stop() calls
12548 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
12549 the va display is used in tranform_caps() when it is extracting the possible
12550 format conversions. This display disappearing generates warning messages.
12551 This patch holds a local reference of va display at ensure_allowed_raw_caps()
12552 hence it doesn't go away meanwhile it is used, even if the
12553 gst_vaapi_plugin_base_close() is called in other thread.
12554 https://bugzilla.gnome.org/show_bug.cgi?id=773593
12556 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12558 * gst/vaapi/gstvaapiencode_h264.c:
12559 * gst/vaapi/gstvaapiencode_h265.c:
12560 plugins: fix code style for errors
12562 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12564 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12565 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
12566 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
12567 * gst-libs/gst/vaapi/gstvaapicontext.c:
12568 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12569 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12570 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
12571 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12572 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12573 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12574 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12575 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12576 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
12577 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12578 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12579 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12580 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12581 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12582 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12583 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
12584 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12585 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12586 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12587 * gst-libs/gst/vaapi/gstvaapifilter.c:
12588 * gst-libs/gst/vaapi/gstvaapiimage.c:
12589 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12590 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
12591 * gst-libs/gst/vaapi/gstvaapipixmap.c:
12592 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12593 * gst-libs/gst/vaapi/gstvaapisurface.c:
12594 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12595 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12596 * gst-libs/gst/vaapi/gstvaapitexture.c:
12597 * gst-libs/gst/vaapi/gstvaapiutils.c:
12598 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12599 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
12600 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12601 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12602 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12603 libs: fix code style for errors
12605 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12607 * gst/vaapi/gstvaapipluginbase.c:
12608 * gst/vaapi/gstvaapivideocontext.c:
12609 plugins: update GstGL deprecated symbol
12610 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
12612 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12614 * gst/vaapi/gstvaapipluginbase.c:
12615 plugins: direct render when raw video
12616 Enable the direct rendering with linear surfaces if the negotiated src caps
12617 are video/x-raw without features.
12618 Pass also the caps, since they are needed to know the requested caps features.
12620 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12622 * gst/vaapi/gstvaapipluginbase.c:
12623 plugins: move src allocator error to instantiator
12624 Just as we did in ensure_sinkpad_allocator(), let's move the error message
12625 into the ensure_srcpad_allocator() from the caller,
12626 gst_vaapi_plugin_base_decide_allocation()
12628 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12630 * gst/vaapi/gstvaapipluginbase.c:
12631 plugins: enable direct upload if raw video
12632 Enable the direct upload with linear surfaces if the negotiated sink caps are
12633 video/x-raw without features.
12635 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12637 * gst/vaapi/gstvaapipluginutil.c:
12638 * gst/vaapi/gstvaapipluginutil.h:
12639 pluginutil: add gst_caps_is_video_raw()
12641 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12643 * gst/vaapi/gstvaapipluginbase.c:
12644 plugins: receive caps in ensure_sinkpad_allocator()
12645 Instead of receiving the GstVideoInfo structure as parameter, get the original
12646 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
12647 which allocator instantiate.
12649 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12651 * gst/vaapi/gstvaapivideomemory.c:
12652 vaapivideomemory: destroy derived image at unmap
12653 If the allocator was configured to use direct upload or rendering, the
12654 generated derived image created at mapping needs to be destroyed after
12655 unmapping, because, in order to process the surface, it should not be marked
12656 as "busy" by the driver.
12658 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12660 * gst/vaapi/gstvaapivideomemory.c:
12661 vaapivideomemory: enhance logs for direct modes
12662 Print, conditionally, only the enabled direct mode.
12664 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12666 * gst/vaapi/gstvaapivideomemory.c:
12667 * gst/vaapi/gstvaapivideomemory.h:
12668 vaapivideomemory: add direct upload flag
12669 Adds the direct-upload flag in the GstVaapiVideoAllocator and
12670 GstVaapiVideoMemory.
12671 It still doesn't apply any functional change.
12673 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12675 * gst/vaapi/gstvaapipluginbase.c:
12676 * gst/vaapi/gstvaapivideomemory.c:
12677 * gst/vaapi/gstvaapivideomemory.h:
12678 vaapivideomemory: set direct rendering at run-time
12679 The way to experiment with the direct rendering is through and internal
12680 compiler pre-processor flag.
12681 The current change set enables a way to specified at run-time, as a flag
12682 passed to the allocator at instanciation time.
12684 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12686 * gst/vaapi/gstvaapivideomemory.c:
12687 vaapivideomemory: log in perf category when copy
12688 Log in performance category when the derive image handling fails, falling back
12691 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12693 * gst/vaapi/gstvaapivideomemory.c:
12694 vaapivideomemory: error log is derive image fails
12695 Instead of a silently failure of the derive image, this patch log an error
12696 message according to the failure.
12698 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12700 * gst/vaapi/gstvaapivideomemory.c:
12701 vaapivideomemory: store surface alloc flags in qdata
12702 For sake of consistency, we should add the requested surface allocation flags
12703 to the object's qdata structure.
12705 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12707 * gst/vaapi/gstvaapivideomemory.c:
12708 vaapivideomemory: category init when object define
12709 Move the Gstreamer debug category initialize to the GObject definition.
12711 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12713 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12714 libs: vaapitexturemap: trivial code-style fix
12716 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12718 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12719 libs: display: egl: avoid recreate native display
12720 Instead of passing the native descriptor of the display, just pass the received
12721 GstVaapiDisplay and reuse it.
12723 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12725 * gst/vaapi/gstvaapipluginbase.c:
12726 plugins: log the GstVaapiDisplay name
12727 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
12728 name. Log it instead of the memory address.
12730 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
12732 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
12733 libs: window: egl: pass native va display
12734 When creating a GstVaapiWindowEGL, it also creates native window by its own
12735 native display. It should pass the native display, either X11 or Wayland.
12736 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12738 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
12740 * gst-libs/gst/vaapi/gstvaapidebug.h:
12741 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12742 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12743 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12744 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
12745 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12746 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12747 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
12748 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12749 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12750 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
12751 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12752 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12753 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12754 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
12755 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12756 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12757 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
12758 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12759 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
12760 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12761 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
12762 * gst/vaapi/gstvaapivideocontext.c:
12763 libs: display: GstVaapiDisplay as GstObject descendant
12764 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
12765 instead of GstVaapiMiniObject. In this way we can use all the available
12766 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
12767 In addition, a new debug category for GstVaapiDisplay is created to make it
12768 easier to trace debug messages. It is named "vaapidisplay" and it transverse
12769 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
12770 This patch is a step forward to expose GstVaapiDisplay for users in a future
12772 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12773 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12775 === release 1.11.0 ===
12777 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
12780 Back to development
12782 === release 1.10.0 ===
12784 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
12789 * gstreamer-vaapi.doap:
12792 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12794 * gst/vaapi/gstvaapidecodebin.c:
12795 vaapidecodebin: resurrect disable-vpp property
12796 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12798 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12800 * gst/vaapi/gstvaapidecodebin.c:
12801 vaapidecodebin: name the internal queue
12802 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12804 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12806 * gst/vaapi/gstvaapidecodebin.c:
12807 * gst/vaapi/gstvaapidecodebin.h:
12808 vaapidecodebin: remove unused variables
12809 Since vaapipostproc is only registered if the driver supports it, all the
12810 support for dynamic loading were removed. Though some leftovers remained.
12811 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12813 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12815 * docs/plugins/Makefile.am:
12816 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12817 * docs/plugins/running.xml:
12818 docs: document environment variables
12819 https://bugzilla.gnome.org/show_bug.cgi?id=773544
12821 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12823 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12824 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12825 * gst/vaapi/Makefile.am:
12826 * gst/vaapi/gstvaapidecode.c:
12827 * gst/vaapi/gstvaapidecodebin.c:
12828 * gst/vaapi/gstvaapidecodedoc.c:
12829 docs: replace vaapidecode with each codec
12830 In the spirit of the codec split, this patch removes the documentation of
12831 vaapidecode and adds a page per each possible decoder.
12832 Nonetheless, only those available in the compilation system are going to be
12833 instrospected, because the rest are not registered.
12835 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12837 * gst/vaapi/gstvaapipluginutil.c:
12838 * gst/vaapi/gstvaapivideobuffer.c:
12839 * gst/vaapi/gstvaapivideometa.c:
12840 docs: add missing long descriptions
12842 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12844 * gst/vaapi/gstvaapipostproc.c:
12845 vaapipostproc: use GST_*_OBJECT when possible
12846 Since we can have several vaapipostproc operating in a pipeline, it is useful
12847 to know which one is generating the logging message.
12848 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12850 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12852 * gst/vaapi/gstvaapidecode.c:
12853 * gst/vaapi/gstvaapidecode.h:
12854 vaapidecode: rename member to allowed_sinkpad_caps
12855 vaapidecode has a member named allowed_caps, but this name is not enough
12856 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
12857 No functional changes were included.
12858 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12860 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12862 * gst/vaapi/gstvaapiencode_h264.c:
12863 * gst/vaapi/gstvaapiencode_h265.c:
12864 * gst/vaapi/gstvaapisink.c:
12865 * gst/vaapi/gstvaapivideomemory.c:
12866 * gst/vaapi/gstvaapivideometa.c:
12867 * gst/vaapi/gstvaapivideometa_texture.c:
12868 plugins: fix code style for errors
12869 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12871 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12873 * gst/vaapi/gstvaapivideomemory.c:
12874 vaapivideomemory: comment style
12875 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12877 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12879 * gst/vaapi/gstvaapivideomemory.c:
12880 * gst/vaapi/gstvaapivideomemory.h:
12881 vaapivideomemory: rename input parameter
12882 In order to clarify the use of flag as input parameter, it is renamed to
12883 surface_alloc_flag, since it is used when creating a VA surface with certain
12885 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12887 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12889 * gst/vaapi/gstvaapidecode.c:
12890 vaapidecode: rename element description
12891 So encoders and decoders have similar descriptions.
12892 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12894 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12896 * gst/vaapi/gstvaapiencode_h264.c:
12897 * gst/vaapi/gstvaapiencode_h265.c:
12898 vaapiencode: h264, h265: rename codec name
12899 So encoder and decoders have the same codec name.
12900 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12902 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12904 * gst/vaapi/gstvaapipluginbase.c:
12905 plugins: simplify code
12906 Merge two lines of variable declarations.
12907 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12909 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
12911 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12912 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
12913 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12914 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12915 libs: minor correction for logical consistency
12916 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
12917 use its methods, even though it doesn't change functionality.
12918 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
12919 GstVaapiObject, hence its methods shall be used.
12920 https://bugzilla.gnome.org/show_bug.cgi?id=772554
12922 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
12924 * gst/vaapi/gstvaapivideomemory.c:
12925 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
12926 In short GstFdMemory is configured to call close when using
12928 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12930 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12933 * gst-libs/gst/vaapi/Makefile.am:
12934 build: clean up the dlopen usage
12936 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12938 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12939 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12940 encoder: h264,h265: fix regression in offset count
12941 In commit dc35dafa a bug was introduced because I assumed that
12942 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
12943 https://bugzilla.gnome.org/show_bug.cgi?id=772259
12945 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12948 docs: update README
12950 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12952 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12953 libs: display: egl: remove unused header include
12954 The header gmodule.h is not used since the library dynamic loading for EGL
12955 display was removed.
12956 https://bugzilla.gnome.org/show_bug.cgi?id=772599
12958 === release 1.9.90 ===
12960 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
12966 * gstreamer-vaapi.doap:
12969 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
12971 * gst/vaapi/gstvaapidecode.c:
12972 * gst/vaapi/gstvaapidecodebin.c:
12973 * gst/vaapi/gstvaapiencode_h264.c:
12974 * gst/vaapi/gstvaapiencode_h265.c:
12975 * gst/vaapi/gstvaapiencode_jpeg.c:
12976 * gst/vaapi/gstvaapiencode_mpeg2.c:
12977 * gst/vaapi/gstvaapiencode_vp8.c:
12978 * gst/vaapi/gstvaapipostproc.c:
12979 * gst/vaapi/gstvaapisink.c:
12980 vaapi: use new gst_element_class_add_static_pad_template()
12981 https://bugzilla.gnome.org/show_bug.cgi?id=763083
12982 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12984 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
12986 * gst/vaapi/gstvaapipluginbase.c:
12987 plugins: reset textures at negotiation/shutdown
12988 When caps reconfiguration is called, the new downstream frame size might be
12989 different. Thus, if the downstream caps change,the display's texture map is
12991 In addition, during pipeline shutdown, textures in texture map have to be
12992 released, since each one have a reference to the GstVaapiDisplay object, which
12993 is a dangerous circular reference.
12994 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12995 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12997 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
12999 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13000 * gst-libs/gst/vaapi/gstvaapidisplay.h:
13001 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
13002 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
13003 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
13004 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
13005 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
13006 * gst/vaapi/gstvaapivideometa_texture.c:
13007 libs: display{egl,glx}: cache GstVaapiTextures
13008 instances when created and reuse
13009 This patch improves performance when glimagesink uploads a GL texture.
13010 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
13011 instance of GstVaapiTextureMap, so our internal texture structure can be found
13012 by matching the GL texture id for each frame upload process, avoiding the
13013 internal texture structure creation and its following destruction.
13014 https://bugzilla.gnome.org/show_bug.cgi?id=769293
13015 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13017 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
13019 * gst-libs/gst/vaapi/Makefile.am:
13020 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
13021 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
13022 libs: vaapitexturemap: implement GstVaapiTextureMap
13023 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
13024 reused. Internally it is a hash table.
13025 Note that it is GstObject based rather than GstVaapiObject, as part of the future
13026 converstion to GstObject of most of the code.
13027 https://bugzilla.gnome.org/show_bug.cgi?id=769293
13028 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13030 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13032 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
13033 encoder: vp8: Increase the allocation size for coded buffer
13034 We are not getting enough compression for some streams and
13035 encoded frame end up with more size than allocated.
13036 Assuming a compression ratio of 4, which should be good enough
13037 for holding the frames.
13038 https://bugzilla.gnome.org/show_bug.cgi?id=771528
13040 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13042 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13043 encoder: vp9: Fix refresh frame flag setting
13044 While doing the mode-1 referece picture selection,
13045 the circular buffer logic was not correctly setting the
13046 refresh frame flags as per VP9 spec.
13047 Make sure refresh_flag[0] get updated correclty after
13048 each cycle of GST_VP9_REF_FRAMES.
13049 https://bugzilla.gnome.org/show_bug.cgi?id=771507
13051 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13053 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13054 vaapidecode: codec_data minimal size is 7
13055 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
13056 stream, not in the codec_data, so the size of codec_data might be 7.
13057 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
13058 https://bugzilla.gnome.org/show_bug.cgi?id=771441
13060 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13062 * gst/vaapi/gstvaapidecode.c:
13063 vaapidecode: reset decoder hard when set_format()
13064 set_format() is called by upstream when the stream capabilites has changed.
13065 Before, if the new stream is compatible with the old one the VA decoder was
13066 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
13067 when the upstreamer parsers gets more details of the stream, such as the
13068 framerate. Hence, when the src caps are negotiates, the further sink caps
13069 updates are ignored.
13070 This patch forces the VA decoder destroying and recreation when set_format()
13072 https://bugzilla.gnome.org/show_bug.cgi?id=770921
13074 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
13077 configure: Depend on gstreamer 1.9.2.1
13079 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13081 * gst/vaapi/gstvaapivideomemory.c:
13082 Revert "vaapivideomemory: load VA Image when mapping to write"
13083 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
13085 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
13088 Automatic update of common submodule
13089 From b18d820 to f980fd9
13091 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
13094 Automatic update of common submodule
13095 From f49c55e to b18d820
13097 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
13099 * gst/vaapi/gstvaapipluginbase.c:
13100 plugins: set allocator's image size to sinkpad bufferpool
13101 Otherwise the buffer is always ditched by the bufferpool, losing performance.
13102 https://bugzilla.gnome.org/show_bug.cgi?id=771035
13104 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13106 * gst-libs/gst/vaapi/gstvaapisurface.c:
13107 libs: surface: ensure composite overlay is not bigger
13108 Ensure the composition overlay rectangle (subtitles) is not bigger than
13109 the surface where it is going to be composited and rendered.
13110 https://bugzilla.gnome.org/show_bug.cgi?id=766978
13112 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13114 * gst/vaapi/gstvaapivideomemory.c:
13115 vaapivideomemory: load VA Image when mapping to write
13116 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
13117 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
13119 https://bugzilla.gnome.org/show_bug.cgi?id=766978
13121 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13123 * gst/vaapi/gstvaapidecode.c:
13124 vaapidecode: merge vc1 and wmv3 elements
13125 This patch merges vaapivc1dec and vaapiwmv3dec into a single
13126 vaapivc1dec. Also, removed the WMVA format, since it is not
13127 supported by libva.
13128 https://bugzilla.gnome.org/show_bug.cgi?id=734093
13130 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13132 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13133 decoder: vc1: fails only on advanced profile
13134 In commit 2eb4394 the frame coding mode was verified for progressive
13135 regardless the profile. But the FCM is only valid in the advanced
13136 profile. This patch checks for the advanced profile before verifying FCM for
13138 https://bugzilla.gnome.org/show_bug.cgi?id=769250
13140 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13142 * gst/vaapi/gstvaapi.c:
13143 vaapi: DISPLAY envvar as dependency
13144 In a multiple video cards system, a X11 environment may have different VA
13145 capabilities. This patch tracks the DISPLAY environment variable to
13146 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
13147 https://bugzilla.gnome.org/show_bug.cgi?id=770357
13149 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13151 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13152 decoder: vc1: Fail only on actual interlaced frames
13153 In the earlier patch:
13154 f31d9f3 decoder: vc1: Print error on interlaced content
13155 Decoding would error out if the interlace flag was set in the
13156 sequence bdu. This isn't quite right because a video can have this
13157 flag set and yet not have any interlaced pictures.
13158 Here instead we error out when either parsing a field bdu or
13159 decoding a frame bdu which has fcm set to anything other than
13161 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13162 https://bugzilla.gnome.org/show_bug.cgi?id=769250
13164 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
13167 Back to development
13169 === release 1.9.2 ===
13171 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
13176 * gstreamer-vaapi.doap:
13179 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
13181 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13182 decoder: vc1: Print error on interlaced content
13183 Interlaced video is as yet unsupported in the vc1 element. Print
13184 an error to make that more obvious.
13185 https://bugzilla.gnome.org/show_bug.cgi?id=769250
13187 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13189 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13190 encoder: h264: fix C90 mixed declarations and code
13191 Commit 4259d1a introduced this compilation error. This patch fixes it.
13193 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13195 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13196 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13197 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
13198 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
13199 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
13200 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
13201 to avoid overflows, underflows and loss of precision.
13202 https://bugzilla.gnome.org/show_bug.cgi?id=768458
13204 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13206 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13207 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13208 vaapiencode: h264,h265: validate fps numerator
13209 Validate that fps numerator is non-zero so it can be used to calculate
13210 the duration of the B frame.
13211 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
13212 order to aviod overflows, underflows and loss of precision.
13213 https://bugzilla.gnome.org/show_bug.cgi?id=768458
13215 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
13217 * gst/vaapi/gstvaapi.c:
13218 encoders: demote to RANK_NONE since not fit for autoplugging yet
13219 Encoders claim to support a whole bunch of input formats but then
13220 just error out if the format is not actually supported, even if
13221 there's a converter in front. This means they're not fit for
13222 autoplugging in encodebin or camerabin yet and therefore should
13223 not have a rank. People can still use them in custom pipelines.
13224 https://bugzilla.gnome.org/show_bug.cgi?id=769266
13226 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13228 * gst/vaapi/gstvaapipluginbase.c:
13229 plugins: check dmabuf-import for sink pad allocator
13230 Check earlier if upstream video source has activated the dmabuf-import
13231 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
13234 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13236 * gst/vaapi/gstvaapipluginbase.c:
13237 plugins: reset allocators if video info changed
13238 If the frame size or format, change, the allocators are reset, so a new ones
13239 can be created with the new video info.
13241 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13243 * gst/vaapi/gstvaapipluginbase.c:
13244 plugins: remove sink pad allocator if caps change
13245 If the negotiated sinkpad caps change, destroy the assignated allocator,
13246 because it is not valid anymore.
13248 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13250 * gst/vaapi/gstvaapipluginutil.c:
13251 * gst/vaapi/gstvaapipluginutil.h:
13252 pluginutil: const params to gst_video_info_changed()
13253 Since they are not modified, we should mark them as const.
13255 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13257 * gst/vaapi/gstvaapipluginbase.c:
13258 * gst/vaapi/gstvaapivideomemory.c:
13259 * gst/vaapi/gstvaapivideomemory.h:
13260 gstvaapivideomemory: allocator's image size getter
13261 Add the method gst_allocator_get_vaapi_image_size() for the
13262 GstVaapiVideoAllocator, which gets the size of the allocated images with the
13263 current video info.
13264 This method replaces the direct call to the allocator's image info when the
13265 pool is configured.
13267 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
13269 * gst/vaapi/gstvaapipluginbase.c:
13270 plugins: update buffer pool size with new allocator's image size
13271 Depends on media, video size is sometimes updated with new allocator.
13272 It leads to dismatch between bufferpool's set size and real allocated buffer size.
13273 In this case, it causes every buffer is freed during release in bufferpool,
13274 which should be reused. This affects performance.
13275 https://bugzilla.gnome.org/show_bug.cgi?id=769248
13277 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13280 configure: remove gmodule-2.0 EGL dependency
13281 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
13282 thus the dependency to gmodule-2.0 is not mandatory anymore.
13284 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13287 configure: Fix non-fatal PKG_CHECK_MODULES invocations
13288 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
13289 the package is missing, but action-if-not-found was given as an empty
13290 string which still causes the default action to run, which halts
13292 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13293 https://bugzilla.gnome.org/show_bug.cgi?id=769237
13295 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13297 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
13298 libs: egl: remove dynamic library loading code
13299 Since the upstream of gstreamer-vaapi, the library is not a public shared
13300 object anymore. But the EGL support depended on this dynamic library, so the
13301 EGL support was broken.
13302 This patch removes the dynamic library loading code and instantiates the
13303 EGL display using either X11 or Wayland if available.
13304 https://bugzilla.gnome.org/show_bug.cgi?id=767203
13306 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13308 * gst/vaapi/gstvaapi.c:
13309 * gst/vaapi/gstvaapidecode.c:
13310 * gst/vaapi/gstvaapidecode.h:
13311 vaapidecode: register only the available decoders
13312 In order to register only the available decoders, this patch queries the
13313 created test VA display, which uses the currently used back-end (X11, Wayland,
13314 DRM, …) on the used display device.
13315 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13317 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13319 * gst/vaapi/gstvaapi.c:
13320 * gst/vaapi/gstvaapipluginutil.c:
13321 * gst/vaapi/gstvaapipluginutil.h:
13322 vaapi: register only the available encoders
13323 In order to register only the available encoders, this patch queries the
13324 created test VA display, which uses the currently used back-end (X11,
13325 Wayland, DRM, …) on the used display device.
13326 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13328 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13330 * gst/vaapi/gstvaapidecode.c:
13331 * gst/vaapi/gstvaapidecodebin.c:
13332 vaapidecode: split all the codecs
13333 Split the vaapidecode to all the supported codecs with the format
13335 vaapidecode is stil registered as a GObject type, but not as a
13336 GStreamer feature, so it can be used internally by vaapidecodebin without
13337 changing its code too much.
13338 https://bugzilla.gnome.org/show_bug.cgi?id=734093
13340 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13342 * gst/vaapi/gstvaapidecodebin.c:
13343 vaapidecodebin: simplify the code
13344 Since the elements dependant of the VA video processor are now only registered
13345 if it is available, vaapidecodebin code can be simplified a lot, removing all
13346 the code required to check if the VA video processor was available.
13347 https://bugzilla.gnome.org/show_bug.cgi?id=768899
13349 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13351 * gst/vaapi/gstvaapidecode.c:
13352 vaapidecode: delay the GstVaapiDisplay instantiating
13353 Delay the GstVaapiDisplay instantiating until when changing the state from
13354 READY to PAUSE. In this way the element has more chances to find an already
13355 created GstVaapiDisplay, or a GL context, in the pipeline.
13356 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13358 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13360 * gst/vaapi/gstvaapipluginutil.c:
13361 pluginutil: set GLX display type
13362 The function gst_vaapi_create_display_from_gl_context() cretes a
13363 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
13364 when the GL platform was GLX, but a plain X11 VA display.
13365 This patch fixes that, by querying the GL platform earlier.
13366 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13368 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13370 * gst/vaapi/gstvaapipluginbase.c:
13371 * gst/vaapi/gstvaapivideocontext.c:
13372 * gst/vaapi/gstvaapivideocontext.h:
13373 plugins: add gst_vaapi_plugin_base_find_gl_context()
13374 Using the GstContext mechanism, it is possible to find if the pipeline
13375 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
13376 meta. This is interesting because we could negotiate system memory caps
13377 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
13378 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13380 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13382 * gst/vaapi/gstvaapipluginbase.c:
13383 * gst/vaapi/gstvaapipluginbase.h:
13384 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
13385 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
13388 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13390 * gst/vaapi/gstvaapipluginbase.h:
13391 plugins: remove common change_state() vmethod
13392 Remove the common change_state() vmethod for all the plugins, since no one is
13395 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13397 * gst/vaapi/gstvaapidecode.c:
13398 vaapidecode: remove change_state() vmethod
13399 Since the driver checkup is done at registering, there is no need to do it
13400 when changing the element state from NULL to READY. This patch remove this
13401 vmethod from vaapidecode.
13403 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13405 * gst/vaapi/gstvaapi.c:
13406 vaapi: register vaapipostproc only if supported
13407 Query the GstVaapiDisplay to know if the driver supports video
13408 postprocessing. If does, then register vaapipostproc and vaapidecodebin
13410 This patch will simplify the design of vaapidecodebin.
13411 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13413 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13415 * gst/vaapi/gstvaapi.c:
13416 vaapi: don't register if VA driver is unsupported
13417 Using the test VA display, the driver name is queried, and if it is not
13418 white-listed, the plugin rejects to register any element.
13419 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13421 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13423 * gst/vaapi/gstvaapipluginbase.c:
13424 * gst/vaapi/gstvaapipluginutil.c:
13425 * gst/vaapi/gstvaapipluginutil.h:
13426 plugins: add gst_vaapi_driver_is_whitelisted()
13427 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
13428 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
13429 when registering the plugin's feature set with the test VA display.
13430 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13432 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13434 * gst/vaapi/gstvaapi.c:
13435 vaapi: instantiate a VA display when registering
13436 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
13437 features, if it fails, no gstreamer-vaapi element is registering.
13438 The purpose of this patch is to avoid a situation where the user has
13439 gstreamer-vaapi installed but their VA-API setup is not functional, which may
13440 lead to unexpected behavior.
13441 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13443 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13446 * gst/vaapi/gstvaapi.c:
13447 vaapi: declare external dependencies
13448 There are two main external dependencies that define the feature set of this
13449 plugin: a) the kernel and b) the VA driver
13450 This patch tracks both dependencies, if any of them change, GStreamer will
13451 re-inspect the plugin.
13452 The kernel is tracked through the device files /dev/dri/card*
13453 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
13454 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
13455 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
13456 since they modify the driver lookup.
13457 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
13458 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13460 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13462 * gst/vaapi/gstvaapidecode.c:
13463 vaapidecode: remove unneeded initializations
13464 GObject's memory is set to zero, so there is no need to initialize to zero or
13465 NULL it's class variables.
13467 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13469 * gst/vaapi/gstvaapipluginbase.h:
13470 plugins: remove undefined macros
13472 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13474 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13475 Revert "gstvaapisurface_drm: release image when done"
13476 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
13477 372a03a9e38acbf435eb80bf31d9a9844069e504.
13478 While the dmabuf handle is exported, the derive image must exist, otherwise
13479 the image's VA buffer is invalid, thus the dmabuf handle is never released,
13480 leading into a file descriptors leak.
13482 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13484 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13485 encoder: h265: fix code-style
13487 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13489 * gst/vaapi/gstvaapipostproc.c:
13490 vaapipostproc: update filters at color balance
13491 This is a fix for a regression of previous commit, which updates the filters
13492 only when the property is set, because it is also required to update the
13493 filter when the color balance interface change its values.
13495 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13497 * gst/vaapi/gstvaapipostproc.c:
13498 * gst/vaapi/gstvaapipostproc.h:
13499 vaapipostproc: make it enable/disable pass-through mode
13500 In case that sink caps and src caps are same, and no filtering parameter set,
13501 pass-through mode is enabled.
13502 If new filtering parameter is set during playback, it makes it reconfiguring,
13503 so that pass-through mode is changed
13504 In addition, updating filter is performed during reconfiguration, if needed.
13505 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13507 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13509 * gst-libs/gst/vaapi/gstvaapifilter.c:
13510 * gst-libs/gst/vaapi/gstvaapifilter.h:
13511 * gst/vaapi/gstvaapipostproc.c:
13512 vaapipostproc: checking and updating filter parameter only when it's set
13513 This patch is to avoid checking filter value at every frame.
13514 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13516 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
13518 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13519 decoder: h265: handle the SEI NAL units included in codec_data
13520 The prefix/suffix SEI nal units can appear in codec_data too
13521 which weren't handled before. Parse these SEI headers to
13523 https://bugzilla.gnome.org/show_bug.cgi?id=768544
13525 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13527 * docs/plugins/Makefile.am:
13528 build: doc: do not redefine MAINTAINERCLEANFILES
13529 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
13530 overload it, the files should be added.
13532 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13534 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13535 encoder: h264: Fix MVC encode while enabling dct8x8
13536 Pack the transform_8x8_mode_flag and other necessary rbsp data
13537 in packed_pps header for MVC encode.
13538 https://bugzilla.gnome.org/show_bug.cgi?id=768647
13540 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13542 * gst/vaapi/gstvaapisink.c:
13543 vaapisink: demote a debug message to trace
13544 Reduces noise when debugging.
13546 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
13548 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13549 wayland: Error check before using cached wl_display
13550 A planar(or some other) buffer allocation may fail on the driver, then
13551 the wayland connection becomes invalid, not able to send request or
13552 receive any event. So we need to set up a new wayland connection if
13553 there's an error detected on the cached wl_display.
13554 https://bugzilla.gnome.org/show_bug.cgi?id=768761
13555 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13557 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
13560 Automatic update of common submodule
13561 From ac2f647 to f49c55e
13563 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13565 * gst/vaapi/gstvaapiencode.c:
13566 vaapiencode: demote a log to trace level
13567 Removes noise when debugging.
13569 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13571 * gst/vaapi/gstvaapiencode.c:
13572 vaapiencode: implement flush() vmethod
13573 In order to handle correctly seek and other operations, vaapiencode should
13574 flush all the remaining data from the encoder without pushing it downstream.
13575 This patch implements the flush() vmethod, only after of pausing the
13576 source pad task, and restarting it again after the flush stop.
13577 https://bugzilla.gnome.org/show_bug.cgi?id=767176
13578 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13580 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13582 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13583 decoder: vc1: flush dpb only if opened
13584 Flush the decode picture buffer, if and only if, the decoder is
13585 started. Otherwise the dpb structure might be NULL.
13586 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13588 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
13590 * gst/vaapi/gstvaapidecode.c:
13591 * gst/vaapi/gstvaapidecode.h:
13592 vaapidecode: drop non-keyframe in reverse playback
13593 To avoid surface-exhausted situation during reverse playback,
13594 drop frames except for key frame.
13595 Also, to avoid the corruption of the parser state, flush() vmethod
13596 doesn't destroy the VA decoder when playing in reverse.
13597 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13598 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13600 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13602 * gst/vaapi/gstvaapidecode.c:
13603 vaapidecode: unref output frame earlier
13604 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
13605 unref that extra reference earlier making the code simpler to follow.
13606 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13608 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13610 * gst/vaapi/gstvaapidecode.c:
13611 vaapidecode: remove gst_vaapidecode_internal_flush()
13612 As gst_vaapidecode_finish() is the only callee of
13613 gst_vaapidecode_internal_flush(), it is better to inline it.
13614 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13616 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13618 * gst/vaapi/gstvaapidecode.c:
13619 vaapidecode: flush output adapter at drain()
13620 Calling drain() vmethod means "decode any data it can at this point, but that
13621 more data may arrive after". Hence, vaapidecode should check if there is data
13622 in the output adapter and process them, without destroying the decoded picture
13624 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
13625 was refactored into a new function gst_vaapidecode_flush_output_adapter().
13626 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13628 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13630 * gst/vaapi/gstvaapidecode.c:
13631 vaapidecode: call purge at flush()
13632 Calling flush() vmethod means "to flush all remaining data from the decoder
13633 without pushing it downstream".
13634 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
13635 gst_video_decoder_have_frame() if there is still something in the input
13636 adapter, which may push buffers to downstream by calling handle_frame().
13637 This patch changes this behavior by calling gst_vaapidecode_purge() rather
13638 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
13639 decoder and releases all the rest of decoded frames.
13640 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13642 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13644 * tests/elements/Makefile.am:
13645 * tests/elements/test-vaapisink.c:
13646 test: elements: remove spurious linkage
13647 Element tests only need to link against gstreamer libraries.
13649 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13652 configure: Require GLib >= 2.40 like everywhere else
13654 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13657 Back to development
13659 === release 1.9.1 ===
13661 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
13667 * gstreamer-vaapi.doap:
13670 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13672 * tests/elements/test-vaapisink.c:
13673 tests: elements: rotate orientation event
13675 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
13678 * tests/Makefile.am:
13679 * tests/elements/Makefile.am:
13680 * tests/elements/test-vaapisink.c:
13681 tests: elements: Add testsuite for vaapisink
13682 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13684 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13686 * gst-libs/gst/vaapi/gstvaapitypes.h:
13687 * gst-libs/gst/vaapi/gstvaapivalue.c:
13688 * gst/vaapi/gstvaapisink.c:
13689 * gst/vaapi/gstvaapisink.h:
13690 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
13691 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13693 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13695 * gst/vaapi/gstvaapipostproc.c:
13696 vaapipostproc: return caps template if no display
13697 This patch is a fix for my bad review of commit 6d73ca8d. The element should
13698 be able to return the available raw caps handled by the VA display, but that
13699 only should happen when there a VA display. If there's none, the element
13700 should use the caps template.
13701 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13703 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
13705 * gst/vaapi/gstvaapipostproc.c:
13706 vaapipostproc: don't require a vaapi display for all caps queries
13707 This delays the requirement of having a GstVaapiDisplay until later
13708 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13710 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13712 * gst-libs/gst/vaapi/gstvaapiutils.c:
13713 utils: report VP9 profiles
13714 Add VP9Profile0-3 name mapping.
13716 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13718 * gst/vaapi/gstvaapi.c:
13719 vaapi: nest includes under USE_ENCODER macro
13720 This is a missed changeset from commit 1c05c53, since also header includes
13723 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13725 * gst/vaapi/gstvaapi.c:
13726 vaapi: nest encoders under USE_ENCODER macro
13727 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
13728 macro, it is clearer to nest them, showing explicitly the dependency relation.
13730 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13732 * gst/vaapi/gstvaapivideocontext.c:
13733 vaapivideocontext: check if query context is NULL
13734 Under certain conditions the element might receive a positive context query
13735 but without a context instance. This situation will lead to a segmentation
13736 fault when traversing the context list in the pipeline.
13737 https://bugzilla.gnome.org/show_bug.cgi?id=767946
13739 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13741 * gst-libs/gst/vaapi/Makefile.am:
13742 * gst-libs/gst/vaapi/glibcompat.h:
13743 * gst-libs/gst/vaapi/sysdeps.h:
13744 remove unused glibcompat.h
13745 glibcompat.h is no longer doing anything. Remove it.
13746 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13747 https://bugzilla.gnome.org/show_bug.cgi?id=767886
13749 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13751 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13752 encoder: h264: Use high profile by default
13753 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
13754 by default. This will cause the default profile to be high instead
13755 of baseline. In most situations this is the right decision, and
13756 the profile can still be lowered in the case of caps restrictions.
13757 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13758 https://bugzilla.gnome.org/show_bug.cgi?id=757941
13760 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13762 * gst/vaapi/gstvaapidecodebin.c:
13763 vaapidecodebin: element warning if missing element
13764 Raise an element warning if a required element is not available, thus the
13765 pipeline will post a warning message and the application will be informed.
13767 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
13769 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13770 decoder: h265: fix to release all dpb pictures
13771 Without this, all dpb pictures are not released during flush,
13772 because we used the global dpb_count variable for checking the
13773 dpb fullness which get decremented in dpb_remove_index()
13774 routine during each loop iteration.
13775 https://bugzilla.gnome.org/show_bug.cgi?id=767934
13777 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
13780 Automatic update of common submodule
13781 From ac2f647 to f363b32
13783 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13785 * gst/vaapi/gstvaapidecode.c:
13786 * gst/vaapi/gstvaapipostproc.c:
13787 vaapi: fix minor leaks
13788 https://bugzilla.gnome.org/show_bug.cgi?id=767868
13790 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13792 * gst/vaapi/gstvaapi.c:
13793 vaapi: remove an already included header
13794 gst/gst.h is already included in gstcompat.h
13796 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13798 * gst/vaapi/gstvaapidecodebin.c:
13799 vaapidecodebin: add vp9 in sink pad template
13801 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13803 * gst/vaapi/gstvaapisink.c:
13804 vaapisink: return caps template if no display
13805 If vaapisink received a caps query before getting a VA display, it returned
13806 only the surfaces related caps. This behavior broke the autovideosink
13808 This patch returns the pad's template caps if no VA display, otherwise the
13809 caps are crafted as before.
13810 https://bugzilla.gnome.org/show_bug.cgi?id=767699
13812 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13814 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13815 decoder: vp9: Update comment about context resets
13816 Clarify that vaapi context resets are never needed for vp9, but
13817 that ensure_context() needs called when the size increases so that
13818 new surfaces can be allocated.
13819 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13820 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13822 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13824 * gst-libs/gst/vaapi/gstvaapicontext.c:
13825 * gst-libs/gst/vaapi/gstvaapicontext.h:
13826 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13827 gstvaapicontext: control reset_on_resize with option
13828 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13829 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13831 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13833 * gst/vaapi/gstvaapivideobufferpool.c:
13834 vaapivideobufferpool: add video meta to config when needed
13835 In cases where we know the video meta must be present, add it to
13836 the pool configuration.
13837 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13838 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13840 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13842 * gst/vaapi/gstvaapipluginbase.c:
13843 plugins: retry pool config
13844 if gst_buffer_pool_set_config returns FALSE, check the modified
13845 config and retry set_config if the config is still acceptable.
13846 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13847 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13849 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13851 * gst/vaapi/gstvaapivideomemory.h:
13852 vaapivideomemory: internal attributes to methods
13853 Mark as internal the functions used by VA-API dmabuf allocator.
13855 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13857 * gst/vaapi/gstvaapipluginbase.c:
13858 plugins: remove precondition for decide_allocation()
13859 There's no need to check for the display in the plugin object when
13860 decide_allocation() vmethod is called, because the display will created or
13861 re-created along the method execution.
13863 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13865 * gst/vaapi/gstvaapipluginbase.c:
13866 plugins: avoid possible memory leaks
13867 Get the pool config just before use it, to avoid a memory leak if the
13868 allocator cannot be instantiated. Similarly, return FALSE if the configuration
13869 cannot be set, avoid keep a not used allocator in the pool.
13871 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13873 * gst/vaapi/gstvaapipluginbase.c:
13874 plugins: use GstParentBufferMeta
13875 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
13876 use the GStreamer's GstParentBufferMeta.
13877 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13879 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13881 * gst/vaapi/gstvaapipluginbase.c:
13882 plugins: cache VASurfaces from dmabufs
13883 This patch avoids the creation of a VASurface each time a new input buffer is
13884 processed, caching them in the input buffer itself.
13885 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13887 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13889 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13890 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13891 * gst/vaapi/gstvaapipluginbase.c:
13892 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
13893 Instead of passing the data already in GstVideoInfo, let's just pass the
13894 GstVideoInfo structure.
13895 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13897 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13899 * gst/vaapi/gstvaapipluginbase.c:
13900 * gst/vaapi/gstvaapipluginbase.h:
13901 plugins: use an unique allocator per pad
13902 Instead of instantiating an allocator per vaapivideobufferpool, only one
13903 allocator is instantiated per element's pad and shared among future pools.
13904 If the pad's caps changes, the allocator is reset.
13905 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13907 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13909 * gst/vaapi/gstvaapipluginbase.c:
13910 * gst/vaapi/gstvaapivideobufferpool.c:
13911 * gst/vaapi/gstvaapivideobufferpool.h:
13912 vaapivideobufferpool: share options flag with pluginbase
13913 Originally, vaapivideobufferpool has a set of boolean variables for the
13914 buffer configuration options.
13915 This pach changes these boolean variables for a single bitwise, just as
13916 it is used in pluginbase. Hence, the internal enum was moved to
13917 vaapivideobufferpool header.
13918 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13920 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13922 * gst/vaapi/gstvaapipluginbase.c:
13923 plugins: add gst_vaapi_plugin_base_create_pool()
13924 This patch refactors the code in pluginbase in order to centralize the buffer
13925 pool instantiation. As the buffer pool config may have different options, these
13926 are gathered using a bitwise flag.
13927 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13929 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13931 pluginbase negotiates allocator with bufferpool
13932 Originally vaapivideobufferpool instantiates its own allocator regardless the
13933 received configuration, and it relies in custom configuration options to
13934 choose which kind of allocator instantiate.
13935 This patch transfers the responsibility of the allocator instantiate to
13936 vaapipluginbase and pass it to the vaapivideobufferpool through its
13938 * gst/vaapi/gstvaapipluginbase.c
13939 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
13940 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
13941 bufferpool configuration
13942 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
13944 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
13945 allocator in bufferpool configuration
13946 * gst/vaapi/gstvaapivideobufferpool.c
13947 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
13948 allocator, process the received one through its configuration.
13949 * gst/vaapi/gstvaapivideobufferpool.h: removed
13950 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
13951 * gst/vaapi/gstvaapivideomemory.c
13952 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
13953 allocator with the vaapi qdata.
13954 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13956 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13958 * gst/vaapi/gstvaapivideobufferpool.c:
13959 vaapivideobufferpool: keep only current video info
13960 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
13961 the current one, the negotiated. The old one is not needed at all.
13962 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13964 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13966 * gst/vaapi/gstvaapipluginbase.c:
13967 * gst/vaapi/gstvaapipluginutil.c:
13968 * gst/vaapi/gstvaapipluginutil.h:
13969 * gst/vaapi/gstvaapivideomemory.c:
13970 pluginutil: add gst_video_info_force_nv12_if_encoded()
13971 This lines repeat a couple times in the code, so it would be better to put it
13973 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13975 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13977 * gst/vaapi/gstvaapipluginutil.c:
13978 * gst/vaapi/gstvaapipluginutil.h:
13979 * gst/vaapi/gstvaapipostproc.c:
13980 * gst/vaapi/gstvaapivideobufferpool.c:
13981 pluginutil: add gst_video_info_changed() helper
13982 This function is shared among different elements, so let factorized it.
13983 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13985 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
13987 * gst/vaapi/gstvaapipostprocutil.c:
13988 vaapipostproc: Add colorimetry attributes to src caps
13989 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13991 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13993 * gst/vaapi/gstvaapidecode.c:
13994 vaapidecode: remove chroma-site and colorimetry from src caps
13995 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13997 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13999 * gst/vaapi/gstvaapipostproc.c:
14000 * gst/vaapi/gstvaapipostproc.h:
14001 vaapipostproc: add postproc_lock to protect data members
14002 Add a mutex to postproc to protect concurrent access to data members.
14003 Previously set_caps() could release the allowed_srcpad_caps while
14004 transform_caps was in the middle of using it.
14005 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
14006 https://bugzilla.gnome.org/show_bug.cgi?id=766940
14008 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14010 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
14011 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
14012 encoder: vp9: Add simple algorithms for reference picture selection
14013 Added two modes(as properties) for reference picture selection:
14014 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
14015 and LastRef is pointing to the previous frame.
14016 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
14017 and n-2 th frame as AltRef
14018 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14020 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14022 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
14023 encoder: vp9: Define Max frame width and height
14024 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14026 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14028 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
14029 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
14030 encoder: vp9: Add more propertis for tuning encode quality
14031 Added three tuning properties:
14034 3: luma ac quant-table index
14035 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14037 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14039 * gst/vaapi/Makefile.am:
14040 * gst/vaapi/gstvaapi.c:
14041 * gst/vaapi/gstvaapiencode_vp9.c:
14042 * gst/vaapi/gstvaapiencode_vp9.h:
14043 Add vp9 encode element to "vaapi" plugin
14044 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14046 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14048 * gst-libs/gst/vaapi/Makefile.am:
14049 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
14050 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
14051 Add vp9 encoder support in libgstvaapi
14052 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14054 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14057 build: Add check for VP9 encode API support in libva
14058 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14060 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14062 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14063 gstvaapisurface_drm: fix internal documentation
14065 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14067 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14068 gstvaapisurface_drm: fix code-style
14070 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14072 * gst/vaapi/gstvaapipluginbase.c:
14073 plugins: remove unused header
14074 Remove the include of gst/allocators/allocators.h since it is not used.
14076 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14078 * gst/vaapi/gstvaapivideobufferpool.h:
14079 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
14080 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
14081 keep compatibility definition.
14082 This patch removes the definition of
14083 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
14084 gst-plugins-base version 1.2.2
14086 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14088 * gst/vaapi/gstvaapipluginbase.c:
14089 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
14090 This is a helper function to improve the readability of
14091 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
14094 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14096 * gst/vaapi/gstvaapipluginbase.c:
14097 plugins: deactivate buffer pool before unref
14098 This buffer pool may still be processing buffers when a caps renegotiation is
14099 done. This one-liner patch deactivates the pool to drain it before it
14102 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14104 * gst/vaapi/gstvaapipluginbase.c:
14105 plugins: no sinkpad bufferpool when decoder
14106 Right now, the decoders create a buffer pool for their sink pad which is not
14107 used at all, because the decoders have never proposed it to upstream.
14108 This patch avoids the buffer pool instantiating when the element inherits from
14109 the GstVideoDecoder class.
14111 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14113 * gst/vaapi/gstvaapipluginbase.c:
14114 plugins: avoid to get/set pool config twice
14115 This patch is a bit of optimization, since the bufferpool configuration is get
14116 when the pool is created. Hence, we only need to request it when the pool from
14117 the allocation query is reused.
14119 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14121 * gst/vaapi/gstvaapipluginbase.c:
14122 plugins: destroy pool earlier if non-vaapi
14123 If the offered pool in decide_allocation() vmethod doesn't have the
14124 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
14125 so it could be created later.
14127 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14129 * gst/vaapi/gstvaapivideobufferpool.c:
14130 vaapivideobufferpool: split caps validation
14131 When validating the caps from bufferpool config, this patch distinguishes the
14132 error from no caps received (NULL) from the invalid caps (cannot be converted
14133 into GstVideoInfo structure).
14135 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14137 * gst/vaapi/gstvaapidecode.c:
14138 * gst/vaapi/gstvaapipluginbase.c:
14139 plugins: check for caps in query earlier
14140 Check for caps as soon gst_query_parse_allocation() returns.
14142 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14144 * gst/vaapi/gstvaapipluginbase.c:
14145 * gst/vaapi/gstvaapipluginbase.h:
14146 plugins: remove unused variables
14147 This variables stopped to be used since commit 001a5c63, which removed the
14150 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14152 * gst/vaapi/gstvaapipluginbase.c:
14153 plugins: fix potential memleak from commit 9159328
14154 If gst_video_info_from_caps() fails it is required to unref the instantiated
14157 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14159 * gst/vaapi/gstvaapipostproc.c:
14160 vaapipostproc: handle if gst_video_info_from_caps() fails
14161 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
14164 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14166 * gst/vaapi/gstvaapipluginbase.c:
14167 plugins: handle if gst_video_info_from_caps() fails
14168 Let's play safe and return error if, somehow, the received caps are wrong.
14170 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14172 * gst/vaapi/gstvaapipluginbase.c:
14173 plugins: relate errors to instance
14174 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
14175 will show the name of the vaapipluginbase instance that failed.
14176 Also, the code-style is fixed, where some error labels need to be surrounded
14179 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14181 * gst/vaapi/gstvaapipluginbase.c:
14182 * gst/vaapi/gstvaapipluginutil.c:
14183 * gst/vaapi/gstvaapisink.c:
14184 plugins: use GstVideoInfo accessors
14185 Instead of access to GstVideInfo members directly, use their accessors
14186 macros. This patch makes more resistance to future changes in GStreamer core.
14188 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14190 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14191 * gst/vaapi/gstvaapipluginbase.c:
14192 * gst/vaapi/gstvaapipostproc.c:
14193 * tests/simple-encoder.c:
14194 remove spurious gst_video_info_init()
14195 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
14196 gst_video_info_init(), hence it is not required to call it before them. This
14197 patch removes these spurious calls.
14199 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14201 * gst/vaapi/gstvaapipluginbase.c:
14202 vaapipluginbase: code-style: rename goto label
14203 The error labels have error_ prefix, but this one.
14205 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14207 * gst/vaapi/gstvaapivideomemory.c:
14208 vaapivideomemory: use allocator custom alloc flag
14209 Instead of a dummy alloc() vmethod, the allocator instance set the flag
14210 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
14211 gst_allocator_alloc() on the allocator.
14213 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14215 * gst/vaapi/gstvaapivideobufferpool.c:
14216 vaapivideobufferpool: relate errors to instance
14217 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
14218 the vaapivideobufferpool instance that failed.
14220 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14222 * gst/vaapi/gstvaapipluginbase.c:
14223 plugins: remove gst_vaapi_plugin_base_set_pool_config()
14224 This function helper make sense for GStreamer 1.2, but it is not helpful for
14225 greater version since the validation is already done in the API implementation.
14226 Thus, it is removed.
14228 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14230 * gst/vaapi/gstvaapipluginbase.c:
14231 gstvaapipluginbase: Fix typo in doc
14233 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14235 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14236 encoder : h264: Disable b-frame encode in low-power mode
14237 This is a workaround since vaapi-intel-driver doesn't have
14238 support for B-frame encode when utilizing low-power-enc
14240 Fixme :We should query the VAConfigAttribEncMaxRefFrames
14241 instead of blindly disabling b-frame support and set b/p frame count,
14242 buffer pool size etc based on the query result.
14243 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14245 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14247 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14248 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
14249 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
14250 Remove the duplicate property "low-power-enc" and use the
14251 tune property for enabling low power encoding mode.
14252 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14254 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14256 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14257 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
14258 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14260 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14262 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14263 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14264 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
14265 encoder: h264: Add support of low power/high performance encoding mode
14266 Added a new property "low-power-enc" for enabling low power
14267 encoding mode. Certain encoding tools may not be available
14268 with the VAEntrypointEncSliceLP.
14269 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14271 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14273 * gst-libs/gst/vaapi/gstvaapitypes.h:
14274 * gst-libs/gst/vaapi/gstvaapiutils.c:
14275 * gst-libs/gst/vaapi/gstvaapivalue.c:
14276 Add mapping for Macroblock level rate control (VA_RC_MB)
14278 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14280 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14281 gstvaapidisplay: Add VAEntrypointEncSliceLP support
14282 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14284 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14286 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14287 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14288 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
14289 This is for implementations that supports low_power/high_performance
14290 variant for slice level encode.
14291 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14293 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14295 * gst/vaapi/gstvaapipostprocutil.c:
14296 vaapipostproc: negotiate frame size fixation
14297 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
14298 using the sink caps, also it use the next capsfilter.
14299 This code is a shameless copy of gst_video_scale_fixate_caps() from
14300 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
14301 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14303 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14305 * gst/vaapi/gstvaapipostprocutil.c:
14306 vaapipostproc: don't use GstVideoInfo for src caps
14307 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
14308 this patch enables the first step for caps negotiation with a possible
14309 following caps filter.
14310 _get_preferred_caps() will traverse the possible src caps looking for the one
14311 wit the preferred feature and the preferred color format. Then the color
14312 format, the frame size and the frame rate are fixated.
14313 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14315 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14317 * gst/vaapi/gstvaapipostproc.c:
14318 * gst/vaapi/gstvaapipostprocutil.c:
14319 * gst/vaapi/gstvaapipostprocutil.h:
14320 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
14321 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
14322 No functional changes.
14323 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14325 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14327 * gst/vaapi/gstvaapipostproc.c:
14328 vaapipostproc: simplify code
14329 Change a convoluted snippet to find the preferred color format in the peer
14331 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14333 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14335 * gst/vaapi/gstvaapipostproc.c:
14336 vaapipostproc: use othercaps for preferred caps
14337 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
14338 from fixate_caps() vmethod to find the preferred caps feature and color
14340 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14342 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14344 * gst/vaapi/gstvaapipostproc.c:
14345 vaapipostproc: add fixate_caps() vmethod
14346 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
14347 implements the fixate_caps() vmethod and moves code around.
14348 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14350 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14352 * gst/vaapi/Makefile.am:
14353 * gst/vaapi/gstvaapipostproc.c:
14354 * gst/vaapi/gstvaapipostprocutil.c:
14355 * gst/vaapi/gstvaapipostprocutil.h:
14356 vaapipostproc: set early properties restrictions
14357 When running transform_caps() vmethod, returning the srcpad caps, the caps are
14358 early restricted to the element properties set: width, height, format and
14360 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
14362 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14364 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14366 * gst/vaapi/gstvaapipostproc.c:
14367 vaapipostproc: log the caps transformation
14368 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14370 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14372 * gst/vaapi/gstvaapipostproc.c:
14373 vaapipostproc: no GLTextureUpload in sinkpad
14374 As the vaapipostproc does not process frames with the VideoGLTextureUpload
14375 meta, the feature is removed from the sink pad template.
14376 https://bugzilla.gnome.org/show_bug.cgi?id=765931
14378 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
14380 * gst/vaapi/gstvaapivideobufferpool.c:
14381 vaapibufferpool: do not create texture upload meta if dmabuf
14382 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14384 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14387 build: update git.mk
14389 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14391 * gst/vaapi/gstvaapipluginbase.h:
14392 plugin: fix macro processor check
14393 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
14394 defined in config.h, but it would be 0 or 1 depending on the configure output.
14395 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14397 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14399 * tests/test-display.c:
14400 tests: display: guard possible unused variables
14401 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14403 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14409 * tests/simple-decoder.c:
14410 * tests/test-decode.c:
14411 * tests/test-display.c:
14412 * tests/test-filter.c:
14413 * tests/test-h264.c:
14414 * tests/test-jpeg.c:
14415 * tests/test-mpeg2.c:
14416 * tests/test-mpeg4.c:
14417 * tests/test-subpicture-data.c:
14418 * tests/test-subpicture.c:
14419 * tests/test-surfaces.c:
14420 * tests/test-textures.c:
14421 * tests/test-vc1.c:
14422 * tests/test-windows.c:
14423 tests: inforce gstreamer code-style
14425 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14427 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14428 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
14429 It seems driver requires enablement of cu_qp_delta_enabled_flag
14430 for modifying QP values to controll the CBR mode bitrate.
14431 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14433 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14435 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14436 encoder: h265: Add CBR Encoding support
14437 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14439 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
14441 * gst-libs/gst/vaapi/gstvaapisurface.c:
14442 gstvaapisurface: explicitely clear TILING flag if dmabuf
14443 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14445 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
14447 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14448 gstvaapisurface_drm: release image when done
14449 Otherwise intel-vaapi-driver will fail to process the exported surface because
14450 it will find it is currently derived, so considered as busy.
14451 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14453 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
14455 * gst/vaapi/gstvaapipostproc.c:
14456 vaapipostproc: already have a surface proxy if dmabuf
14457 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14459 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
14461 * gst/vaapi/gstvaapipostproc.c:
14464 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14466 * gst/vaapi/gstvaapidecode.c:
14467 * gst/vaapi/gstvaapipluginbase.c:
14468 * gst/vaapi/gstvaapipluginbase.h:
14469 vaapidecode: search driver in whitelist
14470 If the backend driver vendor string is not in a white-list, and the
14471 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
14472 change it state from NULL to READY, hence the auto-plug mechanism will look
14473 for another decoder.
14474 This patch assumes the GstContext has already being shared along the pipeline
14475 and the element has a valid GstVaapiDisplay instance.
14476 https://bugzilla.gnome.org/show_bug.cgi?id=764673
14478 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14480 * gst/vaapi/gstvaapidecode.c:
14481 * gst/vaapi/gstvaapiencode.c:
14482 * gst/vaapi/gstvaapipluginbase.c:
14483 * gst/vaapi/gstvaapipluginbase.h:
14484 * gst/vaapi/gstvaapipostproc.c:
14485 * gst/vaapi/gstvaapisink.c:
14486 plugins: rework set_context() vmethod definition
14487 In bug 757598 was added the set_context() vmethod chain up in
14488 GstVaapiPluginBase. But it is buggy, since the parent_class address is
14489 assigned to the last element which called gst_vaapi_plugin_base_class_init().
14490 No error has shown up since none of the element's base classes redefined
14491 set_context() vmethod from GstElement, so always the correct function was
14492 called. Still this code is wrong and this patch make it right.
14493 Since set_context() is the same code, a macro is used to implement that code
14494 in all the gst-vaapi elements.
14495 https://bugzilla.gnome.org/show_bug.cgi?id=765368
14497 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14499 * gst/vaapi/gstvaapipostproc.c:
14500 vaapipostproc: resize if negotiated and allocation caps are different
14501 Since commit 859a2b2, in vaapidecode, allocation query can be different from
14502 the negotiated caps.
14503 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
14504 resize the frame to the negotiated, if and only if, some other parameter is
14505 activated to avoid the passthrough. If it is not, the surface won't be mapped
14506 into a image. If not, the image won't be resized and the output buffer would be
14508 This patch will break the passthrough if the allocation query is different
14509 from the negotiation caps, forcing the resizing.
14510 https://bugzilla.gnome.org/show_bug.cgi?id=765095
14512 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14514 * gst/vaapi/gstvaapidecode.c:
14515 vaapidecode: improve code readability
14516 No functional changes.
14518 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14520 * gst/vaapi/gstvaapidecode.c:
14521 vaapidecode: move GstCapsFeatures near to its use
14522 Move the handling of the GstCapsFeatures just after it is used, in order to
14523 avoid handling its memory.
14525 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14527 * gst/vaapi/gstvaapidecode.c:
14528 vaapidecode: caps negotiation checks
14529 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
14530 compiled with GL support.
14532 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14534 * gst/vaapi/gstvaapidecode.c:
14535 * gst/vaapi/gstvaapipluginbase.c:
14536 * gst/vaapi/gstvaapipluginbase.h:
14537 * gst/vaapi/gstvaapipostproc.c:
14538 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
14540 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14542 * gst/vaapi/gstvaapidecode.c:
14543 vaapidecode: bail early if not caps in decide_allocation()
14545 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14547 * gst/vaapi/gstvaapidecode.c:
14548 * gst/vaapi/gstvaapipluginbase.c:
14549 * gst/vaapi/gstvaapipluginutil.c:
14550 * gst/vaapi/gstvaapipluginutil.h:
14551 * gst/vaapi/gstvaapipostproc.c:
14552 plugin: use allowed caps filter from element
14553 Instead of using the srcpad template caps for filtering the peer caps, the
14554 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
14555 for the element's allowed caps.
14556 With this modification, the vaapipostproc element simplifies a bit its code.
14557 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14559 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14561 * gst/vaapi/gstvaapidecode.c:
14562 * gst/vaapi/gstvaapipluginbase.c:
14563 * gst/vaapi/gstvaapipluginutil.c:
14564 * gst/vaapi/gstvaapipluginutil.h:
14565 * gst/vaapi/gstvaapipostproc.c:
14566 plugin: remove function parameter
14567 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
14568 saved if the out format is used for both: in and out. Thus the code is more
14570 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14572 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14574 * gst/vaapi/gstvaapidecode.c:
14575 vaapidecode: warns if driver will do color conversions
14576 If the downstream feature is system memory, the surface has to be mapped,
14577 hence a warning message is logged saying that the driver has to do color
14578 conversions. This might be troublesome because not all the color conversion
14579 combinations are supported by the VA-API drivers, and there is not a reliable
14580 way to know them before hand.
14581 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14583 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14585 * gst/vaapi/gstvaapipluginutil.c:
14586 plugin: honour negotiated format
14587 Instead of setting the requested format by the caller, the function
14588 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
14589 the negotiated format.
14590 A new helper function was added: gst_vaapi_find_preferred_format(), which,
14591 given the format list from the negotiated caps, will choose the best one, if
14592 possible, given the native format.
14593 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14595 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14597 * gst/vaapi/gstvaapipluginutil.c:
14598 plugin: simplify caps feature selection
14599 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
14600 Instead of intersecting custom caps to find the preferred feature, the peer
14601 caps are traversed in order to find the preferred feature, according to an
14602 ordered feature priority list.
14603 In the case of GLTextureUploadMeta, the colour format is computed using
14604 GstVideoInfo of the selected fixed caps.
14605 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14607 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14609 * gst/vaapi/gstvaapidecode.c:
14610 vaapidecode: use macros for GstVideoInfo
14611 Instead of accessing directly to the members of the structure, use the macros.
14613 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14615 * gst/vaapi/gstvaapidecode.c:
14616 vaapidecode: refactor is_display_resolution_changed()
14617 Make the comparisons more readable and simple.
14618 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14620 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14622 * gst/vaapi/gstvaapidecode.c:
14623 * gst/vaapi/gstvaapidecode.h:
14624 vaapidecode: keep only display_{width,height}
14625 Instead of keeping the structure GstVideoInfo when we are using its width and
14626 height, we only keep these two guints.
14627 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14629 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14631 * gst/vaapi/gstvaapidecode.c:
14632 vaapidecode: decoded_info is valid at src caps update
14633 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
14634 is called, then we don't need to verify or replace it with the sinkpad info
14636 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14638 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14640 * gst/vaapi/gstvaapidecode.c:
14641 vaapidecode: always a valid format in decoded_info
14642 Always set a valid format in decoded_info class variable.
14643 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14645 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14647 * gst/vaapi/gstvaapidecode.c:
14648 vaapidecode: code style fixes
14649 No functional changes.
14650 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14652 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14654 * gst/vaapi/gstvaapidecode.c:
14655 vaapidecode: init {decoded,display}_info at open()
14656 It is required to initialize {decoded,display}_info variables when the decoder
14657 is open, not only at instance initialization.
14658 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14660 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14662 * gst/vaapi/gstvaapidecode.c:
14663 * gst/vaapi/gstvaapidecode.h:
14664 vaapidecode: remove spurious class variables
14665 active, do_pool_renego and do_outstate_renego class variables were used to
14666 indicate when negotiate downstream once, but now that each time a new surface
14667 resolution is pop out a renegotation verified, these variable are not required
14669 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14671 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14673 * gst/vaapi/gstvaapidecode.c:
14674 * gst/vaapi/gstvaapipluginbase.c:
14675 * gst/vaapi/gstvaapipluginbase.h:
14676 * gst/vaapi/gstvaapipostproc.c:
14677 remove custom allocation query
14678 When resolving bug 753914, a custom allocation query was added, overlapping
14679 the responsibilities of GstVideoDecoder.
14680 But with the merge of the patches from bug 764421 this overlapping was not
14681 required anymore. This patch restores this situation setting the
14682 allocation_caps in the GstVideoCodecState when needed.
14683 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14685 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
14688 Automatic update of common submodule
14689 From 6f2d209 to ac2f647
14691 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14693 * gst/vaapi/gstvaapidecode.c:
14694 * gst/vaapi/gstvaapidecodebin.c:
14695 * gst/vaapi/gstvaapipostproc.c:
14696 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
14697 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
14698 their caps templates if they were not compiled either with GLX or EGL support.
14700 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14702 * gst/vaapi/gstvaapipluginutil.c:
14703 plugins: fix compilation when EGL/GLX is disabled
14704 The compiler might complain of gst_vaapi_create_display_from_handle() being
14705 unused if both EGL and GLX are disabled. This patch avoid that compilation
14708 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
14710 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14711 libs: fix deleting a GstVaapiCodedBufferPool object
14712 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
14713 Otherwise it is not called when the pool is destroyed and all objects
14714 referenced by the GstVaapiVideoPool are never released.
14715 https://bugzilla.gnome.org/show_bug.cgi?id=764993
14717 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14719 * gst-libs/gst/vaapi/gstvaapisurface.c:
14720 surface: destroy derived image
14721 If gst_vaapi_image_new_with_image() fails, the created derived image should be
14722 destroyed, otherwise the surface cannot be processed because is being used.
14723 https://bugzilla.gnome.org/show_bug.cgi?id=764607
14725 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14727 * gst/vaapi/gstvaapidecode.c:
14728 vaapidecode: add stop function
14729 Clear any status on the current stream:
14730 stored frames, caps and decoder configuration
14731 https://bugzilla.gnome.org/show_bug.cgi?id=763460
14733 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14735 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14736 decoder: vp9: Align with the ABI changes in vp9 codecparser
14737 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
14738 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
14739 These fields are only present in keyframe or intra-only frame, no need to
14740 duplicate them for inter-frames.
14741 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14743 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14745 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14746 decoder: vp9 : Add 10bit decoding support (Profile2)
14747 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14749 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14751 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14752 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14753 gstvaapiporfile: Add more VP9 profile definitions
14754 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14756 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14760 build: possibility to disable tests
14761 The configuration option --disable-examples will disable the compilation of
14762 the sample apps in tests/ directory.
14764 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14766 * gst/vaapi/gstvaapiencode_h264.c:
14767 * gst/vaapi/gstvaapiencode_h265.c:
14768 * gst/vaapi/gstvaapiencode_jpeg.c:
14769 * gst/vaapi/gstvaapiencode_mpeg2.c:
14770 * gst/vaapi/gstvaapiencode_vp8.c:
14771 * gst/vaapi/gstvaapipluginutil.h:
14772 * gst/vaapi/gstvaapisink.c:
14773 unify caps template for VAAPI encoders and decoders
14774 There is no difference in VAAPI surface caps between encoders and decoders.
14775 Thus, the patch makes a simplification by removing encoders specific caps and
14776 shares the same definition of VAAPI surfaces caps for all the elements.
14778 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14780 * gst/vaapi/gstvaapidecode.c:
14781 vaapidecode: move gst_vaapidecode_negotiate() code
14782 With it we can remove a function declaration, making the code a bit
14784 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14786 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14788 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14789 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14790 * gst/vaapi/gstvaapidecode.c:
14791 docs: generate vaapijpegdec documentation
14792 https://bugzilla.gnome.org/show_bug.cgi?id=764314
14794 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14796 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14797 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
14798 The array_completeness, reserved bit and num_nal_units fields
14799 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
14800 but not for each occurance of similar headers.
14801 https://bugzilla.gnome.org/show_bug.cgi?id=764274
14803 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14805 * gst-libs/gst/vaapi/video-format.c:
14806 video-format: Keep the HW order preference while mapping to GstVideoFormats
14808 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14810 * gst/vaapi/gstvaapidecode.c:
14811 * gst/vaapi/gstvaapipluginbase.c:
14812 * gst/vaapi/gstvaapipluginutil.c:
14813 * gst/vaapi/gstvaapipluginutil.h:
14814 * gst/vaapi/gstvaapivideomemory.c:
14815 gst/vaapi: keep precedence for NV12 over I420
14816 Use NV12 as default "assumption" format all over.
14817 NV12 is the default high priority format used my most of the
14820 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14822 * gst/vaapi/gstvaapidecode.c:
14823 vaapidecode: Use video format derived from decoded surface as default src pad format
14824 Use the surface format derived from first decoded surface
14825 to negotiate the downstream video format capabilities.
14826 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14828 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
14830 * gst-libs/gst/vaapi/gstvaapiimage.c:
14831 * gst-libs/gst/vaapi/video-format.c:
14832 * gst/vaapi/gstvaapidecode.c:
14833 * gst/vaapi/gstvaapipluginutil.h:
14834 * gst/vaapi/gstvaapisink.c:
14835 Add P010 video format support
14836 The P010 video format is the native format used by the vaapi intel driver
14837 for HEVCMain10 decode . Add support for planes and images of this video format.
14838 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14840 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
14842 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14843 libs: x11: allows 30-bit colour depth
14844 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
14845 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
14846 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
14848 https://bugzilla.gnome.org/show_bug.cgi?id=764256
14850 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14852 * gst/vaapi/gstvaapivideometa_texture.c:
14853 gltextureupload: use an array for texture type
14854 Instead of using a single value for the texture type, use an array with 4
14855 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
14857 https://bugzilla.gnome.org/show_bug.cgi?id=764231
14859 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14861 * gst/vaapi/gstvaapidecode.c:
14862 * gst/vaapi/gstvaapipluginbase.c:
14863 vaapidecode: Fix decide_allocation handling
14864 Set the already configured pool in decide_allocation query
14865 in cases where pool renegotiation is not required.
14866 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14868 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14870 * gst/vaapi/gstvaapidecode.c:
14871 vaapidecode: Derive and save the decoded surface format
14872 After the decoding of first frame, try to extract the exact
14873 decoded surface format using vaDeriveImage and keep this
14874 as the format in decoded_info.
14875 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14877 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14879 * gst/vaapi/gstvaapidecode.c:
14880 * gst/vaapi/gstvaapidecode.h:
14881 * gst/vaapi/gstvaapipluginbase.c:
14882 * gst/vaapi/gstvaapipluginbase.h:
14883 * gst/vaapi/gstvaapipostproc.c:
14884 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
14885 -- Maintaing decoded surface resoluton and actual display resoultion separately
14886 -- Before pushing every frames downstream, check for the requirement of pool negoation and
14887 output_state negotiation: This is needed to avoid multiple issuses with cropping,
14888 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
14889 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
14890 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
14891 This is slight overhead, but safe enough. Optimization could be possible though.
14892 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14894 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14896 * gst/vaapi/gstvaapidecode.c:
14897 vaapidecode: Delay the output format setting until we have a decoded surface
14898 This will help to consoidate the out caps negotiation to a single place,
14899 which will make the code simpler, allows to get the exact decoded format
14900 if needed and the selected chroma type too.
14901 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14903 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14905 * gst/vaapi/gstvaapidecode.h:
14906 vaapidecode: GST_VAAPIDECODE macro is a cast
14907 This patch is the continuation of commit 1e1d3b1d because the function
14908 gst_vaapidecode_get_type() got undefined since then.
14909 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
14910 structure. The rest of the GObject handling macros were deleted too.
14912 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
14915 Back to development
14917 === release 1.8.0 ===
14919 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
14924 * gstreamer-vaapi.doap:
14927 === release 1.7.91 ===
14929 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
14934 * gstreamer-vaapi.doap:
14937 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14939 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14940 decoder: h265: Fix offset calculation in codec_data parsing
14941 https://bugzilla.gnome.org/show_bug.cgi?id=762922
14943 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14945 * gst/vaapi/gstvaapidecodebin.c:
14946 vaapidecodebin: don't handle jpeg decoding
14947 As JPEG decoder has been split and demoted, it cannot be handled by
14949 Added a fixme comment regarding the future removal of vaapidecode.
14950 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14952 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14954 * gst/vaapi/gstvaapidecode.c:
14955 vaapidecode: split out jpeg decoder
14956 Split, as a different element, the JPEG decoder.
14957 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14959 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14961 * gst/vaapi/gstvaapi.c:
14962 * gst/vaapi/gstvaapidecode.c:
14963 * gst/vaapi/gstvaapidecode.h:
14964 vaapidecode: register decoder with internal GType
14965 Don't expose the the vaapidecode GType, instead expose a function
14966 which will register element.
14967 This is the first step to split the decoder by codecs.
14968 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14970 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14972 * gst/vaapi/gstvaapidecode.c:
14973 vaapidecode: remove unused function declaration
14974 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
14975 code-style of the other pre-declared functions.
14977 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14979 * docs/plugins/Makefile.am:
14980 build: git ignore gtkdoc generated files
14982 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14985 build: handle git ignore in m4 directory
14987 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14989 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14990 vaapidecoder_h265: plug leak of h265 parsing info
14991 If something goes wrong while parsing, the info object is
14993 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14995 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14997 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14998 vaapidecoder_h264: plug leak of h264 parsing info
14999 If something goes wrong while parsing, the info object is
15001 https://bugzilla.gnome.org/show_bug.cgi?id=763121
15003 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
15005 * gst/vaapi/gstvaapipluginutil.c:
15006 plugins: fix gstgl and vaapi memory leaks
15007 1\ Unref gl_display and gl_window as soon they are not needed.
15008 2\ Remove an unneeded display type check, since is handled by
15009 gst_vaapi_created_display_from_handle()
15010 3\ Unref vaapi's display if the display cannot be bind to a GL API.
15011 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15012 https://bugzilla.gnome.org/show_bug.cgi?id=763354
15014 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
15016 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15017 vaapidisplay: Fix uninitialized value error for VA attribute
15018 https://bugzilla.gnome.org/show_bug.cgi?id=763362
15020 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15022 * gst/vaapi/gstvaapidecode.c:
15023 * gst/vaapi/gstvaapiencode.c:
15024 plugins: proxy information from downstream caps
15025 Propagate to upstream the downstream information, such as fps, par, etc.
15026 This will fix several "getcaps" critical warnings in gst-validate.
15027 https://bugzilla.gnome.org/show_bug.cgi?id=763300
15029 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15031 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15032 decoder: vp9: Assign values for profile and bit_depth from frame header
15033 bit_depth field has added only in VA-API 0.39.0, added version check.
15035 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
15038 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
15039 https://bugzilla.gnome.org/show_bug.cgi?id=763067
15041 === release 1.7.90 ===
15043 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
15048 * gstreamer-vaapi.doap:
15051 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
15054 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
15056 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15058 * gst/vaapi/gstvaapidecode.c:
15059 vaapidecode: intersect with filter in getcaps()
15060 In commit 6034734d I forgot to add the caps filter intersection in the
15061 getcaps() vmethod generating a regression when a capsfilter is set in the
15063 This commit adds the caps filter intersection.
15065 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
15067 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
15068 Add memset to initialize value for VAEncSliceParameterBufferJPEG
15069 https://bugzilla.gnome.org/show_bug.cgi?id=762850
15071 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
15074 Automatic update of common submodule
15075 From b64f03f to 6f2d209
15077 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15082 build: add m4 directory
15083 Instead of rely on the automatic creation of m4 directory by aclocal, we
15084 already control it. Later we could create our own m4 scripts in order to
15085 unclutter configure.ac
15086 https://bugzilla.gnome.org/show_bug.cgi?id=762528
15088 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
15090 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15091 decoder: hevc: Fill dependent slice segment headers while parsing
15092 Copy the data into the dependent slice segment header from the
15093 corresponding independent slice segment header during parsing.
15094 Previously the reference to the "previous" independent header was
15095 held through the parsing phase and then dereferenced during the
15096 decoding phase. This caused all dependent headers to be populated
15097 with the data of the AU's last independent header instead of the
15098 proper corresponding header.
15099 https://bugzilla.gnome.org/show_bug.cgi?id=762352
15101 - Reworded commit message
15103 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15105 * gst/vaapi/gstvaapidecode.c:
15106 vaapidecode: use video decoder getcaps()
15107 The usage of getcaps() vmethod is preferred than to handle manually the sink's
15109 In order to avoid function declarations, this patch moves the class_init()
15110 method to the end of the file.
15112 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15114 * gst/vaapi/gstvaapipluginbase.c:
15115 plugins: remove deprecated code
15116 Since we are only supporting current GStreamer version, since 1.3
15117 gst_buffer_pool_config_add_option() checks if the option to add is
15118 already set. There is no need to do it ourselves.
15120 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
15122 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15123 vaapidecoder_h265: fix parsing of NALU aligned data
15124 Don't assume the whole buffer is a single NAL, instead look for the
15125 next start code in case there are multiple NALs per buffer.
15126 https://bugzilla.gnome.org/show_bug.cgi?id=762328
15128 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
15130 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15131 vaapidecoder_h264: fix parsing of NALU aligned data
15132 Don't assume the whole buffer is a single NAL, instead look for the
15133 next start code in case there are multiple NALs per buffer.
15134 https://bugzilla.gnome.org/show_bug.cgi?id=762328
15136 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
15138 * gst/vaapi/gstvaapisink.c:
15139 vaapisink: Fix event,pad,structure memory leaks
15140 https://bugzilla.gnome.org/show_bug.cgi?id=762229
15142 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
15144 * gst/vaapi/gstvaapipluginbase.c:
15145 Add icamerasrc as dmabuf capable peer element
15146 icamerasrc is another gstreamer plugin using to capture RAW
15147 frames from camera device. It is based on libcamhal library.
15148 There are some properties available to control icamera behavior.
15149 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
15150 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
15151 https://bugzilla.gnome.org/show_bug.cgi?id=759481
15152 Fixme: This is the similar workaround we done for v4l2src.
15153 The workaround will be removed once we fix #755072
15155 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
15157 * gst/vaapi/gstvaapipluginbase.c:
15158 vaapipluginbase: Fix structure memory leak
15159 config structure is not being freed in all cases
15160 https://bugzilla.gnome.org/show_bug.cgi?id=762172
15162 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
15164 * gst/vaapi/gstvaapidecode.c:
15165 vaapidecode: Fix videocodec state memory leak
15166 When state is not NULL and either width/height of video info is 0, then state leaks
15167 https://bugzilla.gnome.org/show_bug.cgi?id=762173
15169 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
15171 * gst/vaapi/gstvaapisink.c:
15172 vaapisink: post message for application for unhandled keyboard/mouse events
15173 Makes (most) keyboard shortcuts work in gst-play-1.0 when
15174 the video window has focus.
15176 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
15178 * gst/vaapi/gstvaapidecode.c:
15179 vaapidecode: Fix capsfeature memory leak
15180 https://bugzilla.gnome.org/show_bug.cgi?id=762116
15182 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
15184 * gst/vaapi/gstvaapisink.c:
15185 vaapisink: Fix capsfeature memory leak
15186 caps feature allocated is not being freeing in some cases
15187 https://bugzilla.gnome.org/show_bug.cgi?id=762111
15189 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
15192 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15193 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15194 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15195 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15196 * gst-libs/gst/vaapi/gstvaapifilter.c:
15197 * gst/vaapi/gstvaapidecodebin.c:
15198 * gst/vaapi/gstvaapipluginutil.c:
15199 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
15201 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
15204 configure: Fix setting of extra compiler warning flags
15206 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15208 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
15209 libs: fix build error
15210 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
15211 functions are used only when libva's API version is greater than 0.36.0
15212 This patch guards those functions completely rather than just their
15213 content. The patch is a continuation of commit 38f8fea4
15214 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
15215 https://bugzilla.gnome.org/show_bug.cgi?id=762055
15217 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
15219 * tests/simple-encoder.c:
15220 tests: simple-encoder: fix build error
15221 argument mismatch of gsize with 'long unsigned int'
15222 https://bugzilla.gnome.org/show_bug.cgi?id=762055
15224 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15226 * gst/vaapi/gstvaapisink.c:
15227 vaapisink: Fix wrong caps advertising
15228 The get_caps() should only report the supported formats.
15229 https://bugzilla.gnome.org/show_bug.cgi?id=761147
15231 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
15234 Automatic update of common submodule
15235 From e97c9bb to b64f03f
15237 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15239 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15240 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
15241 * gst/vaapi/gstvaapi.c:
15242 * gst/vaapi/gstvaapiencode_h264.c:
15243 * gst/vaapi/gstvaapiencode_h265.c:
15244 * gst/vaapi/gstvaapiencode_jpeg.c:
15245 * gst/vaapi/gstvaapiencode_mpeg2.c:
15246 * gst/vaapi/gstvaapiencode_vp8.c:
15247 rename encoders to vaapi{codec}enc
15248 Trying to comply with GStreamer's element names, this patch renames the
15249 encoders using the name format vaapi{codec}enc.
15250 In this way, the plugin documentation is linked correctly.
15251 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15253 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15256 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
15257 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15259 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15262 build: remove vp9 parser check
15263 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
15264 the check of the parser, as we did for the others.
15265 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15267 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15271 Back to development
15272 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15274 === release 1.6.0 ===
15276 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15281 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15283 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
15284 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15285 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15286 libs: fix compiler warnings
15287 After setting the release flags, the compiler warns about a couple
15288 initialized variables.
15289 Also marked a couple of set variables as unused, because they are only
15290 used for assertion.
15291 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15293 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15295 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15296 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
15297 * gst/vaapi/gstvaapidecode.c:
15298 * gst/vaapi/gstvaapidecodebin.c:
15299 * gst/vaapi/gstvaapiencode_h264.c:
15300 * gst/vaapi/gstvaapiencode_h265.c:
15301 * gst/vaapi/gstvaapiencode_jpeg.c:
15302 * gst/vaapi/gstvaapiencode_mpeg2.c:
15303 * gst/vaapi/gstvaapiencode_vp8.c:
15304 * gst/vaapi/gstvaapipostproc.c:
15305 * gst/vaapi/gstvaapisink.c:
15306 docs: update plugin documentation
15307 Update all the documentation of elements of the vaapi plugin.
15308 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15310 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15314 * docs/Makefile.am:
15315 * docs/plugins/Makefile.am:
15316 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15317 * docs/plugins/gstreamer-vaapi-plugins.types:
15318 * docs/reference/Makefile.am:
15319 * docs/reference/plugins/Makefile.am:
15320 * docs/reference/plugins/plugins-sections.txt:
15321 * docs/reference/plugins/plugins.types:
15322 * docs/version.entities.in:
15323 resurrect gtk-doc machinery
15324 Our auto-generated documentation has been a bit neglected. This patch replaces
15325 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
15326 plugins, elements and libraries.
15327 This patch also re-enables documentation generation.
15328 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15330 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15336 use gst-common submodule
15337 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
15338 GStreamer common submodule.
15339 The documentation generation has been disable temporarily since it needs a
15340 major rework, which will be done in the following commit.
15341 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15343 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15347 add gst-common submodule
15348 Pointing to branch 1.6
15349 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15351 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15353 * gstreamer-vaapi.doap:
15354 add doap descriptor
15355 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
15356 describe software projects, in particular free and open source software.
15357 The description is used in GStreamer as in many other open source projects.
15358 This patch adds the doap description of this project.
15359 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15361 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15363 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
15364 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15365 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
15366 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15367 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15368 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
15369 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
15370 * gst-libs/gst/vaapi/gstvaapiimage.c:
15371 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
15372 * gst-libs/gst/vaapi/gstvaapipixmap.c:
15373 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
15374 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15375 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
15376 libs: humongous code style fix
15377 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
15378 umbrella, we need to comply with the project's code style. This meant to
15379 change a lot of code.
15380 It was decided to use a single massive patch to update the code style.
15381 I would like to apologize with the original developers of this code because of
15382 the history breakage.
15383 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15385 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15387 * gst-libs/gst/vaapi/gstvaapicontext.c:
15388 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15389 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
15390 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
15391 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15392 * gst/vaapi/gstvaapivideomemory.c:
15393 libs: small refactors to enhance the code style
15394 As gst-indent generated ugly code in these cases, this patch changes the used
15395 idiomatic into other one.
15396 No functional changes were introduced.
15397 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15399 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15401 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
15402 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15403 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
15404 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15405 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15406 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15407 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15408 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15409 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15410 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15411 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15412 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15413 * gst-libs/gst/vaapi/gstvaapifilter.c:
15414 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15415 * gst-libs/gst/vaapi/gstvaapisurface.c:
15416 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15417 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
15418 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15419 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15420 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
15421 * gst-libs/gst/vaapi/gstvaapiwindow.c:
15422 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15423 libs: small code style fixes
15424 This a set of small code style fixes detected as-is by gst-indent.
15425 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15427 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15429 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15430 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15431 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15432 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15433 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
15434 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15435 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
15436 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15437 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15438 libs: trivial comment style fixes
15439 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15441 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15443 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
15444 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15445 libs: avoid gst-indent mess up
15446 Guard pieces of code to avoid gst-ident to mess up the following code.
15447 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15449 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15451 * gst/vaapi/gstvaapidecode.c:
15452 * gst/vaapi/gstvaapidecodebin.c:
15453 * gst/vaapi/gstvaapipluginutil.c:
15454 * gst/vaapi/gstvaapisink.c:
15455 * gst/vaapi/gstvaapivideomemory.c:
15456 plugins: fix code style
15457 Minor code style changes by executing gst-indent in gst/vaapi directory.
15458 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15460 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
15462 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15463 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15464 Fix some more compiler warning
15465 Two (false) compiler warnings about variables potentially
15466 being used uninitialized, and one about a variable being
15468 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15470 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
15472 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15473 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15474 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15475 * gst-libs/gst/vaapi/gstvaapifilter.c:
15476 * gst/vaapi/gstvaapidecode.c:
15477 * gst/vaapi/gstvaapipluginbase.c:
15478 * gst/vaapi/gstvaapipluginutil.c:
15479 * gst/vaapi/gstvaapipostproc.c:
15480 * tests/simple-encoder.c:
15481 * tests/test-filter.c:
15482 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
15483 Declare variables at the beginning of a code block, which
15484 is how it's done in GStreamer.
15485 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15487 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15489 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15490 decoder: vp9: Fix crop rectangle setting
15491 Align with software vp9dec behaviour: Add crop rectangle
15492 only if display_width/display_height is less than the
15493 frame_hdr->width/frame_hdr->height
15495 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15497 * gst/vaapi/gstvaapidecode.c:
15498 vaapidecode: Fix renegotiation for resolution change
15499 Always renegotiate the pool if the immediate frame which going
15500 to be pushed has a different un-cropped resolution than the already
15503 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15505 * gst/vaapi/gstvaapipluginbase.h:
15506 plugins: use the same pre-processor macro
15507 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
15508 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
15509 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
15510 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
15511 in the header file.
15512 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15514 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15516 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15517 decoder: update a deprecated function
15518 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
15519 deprecated since GStreamer 1.0.
15520 This patch replace it with gst_adapter_prev_pts()
15521 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15523 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15526 build: honor configure's cache
15527 The user might enable --config-cache when calling configure script. If so, our
15528 configuration variables will not be correctly calculated.
15529 This patch extracts the value of our variables either from the cache or from
15530 the operation result.
15531 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15533 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15536 build: use common version variables
15537 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15539 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15542 build: hard-code an unneeded macro
15543 That macro is required for EGL's dynamic module loading, but since
15544 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
15545 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
15546 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15548 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15551 build: refactorization of dependency tracking
15552 This patch tries to avoid branching in configure.ac using a more functional
15553 approach in macros usage.
15554 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15556 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15559 build: check for OpenGL either GLX or EGL are requested
15560 Refactor some code in configure.ac to centralize $enable_opengl definition.
15561 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15563 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15566 build: indent and add square braces
15567 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15569 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15572 build: upgrade autotools version dependency
15573 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15575 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15578 build: enhance string comparisons
15579 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
15580 the string is empty or undefined.
15581 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15583 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15586 build: remove unused variables
15587 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15589 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15592 build: remove check for old version of gstreamer
15593 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15595 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15598 build: remove GStreamer's parsers checks
15599 This patch removes almost all the parsers check since they are already in place,
15600 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
15601 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15603 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15606 * gst/vaapi/Makefile.am:
15607 build: add gstreamer-pbutils dependency
15608 This dependency was added in gstvaapidecodebin with the call
15609 gst_missing_element_message_new().
15610 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15612 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15615 build: fix variable declaration
15616 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15618 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15620 * gst-libs/gst/vaapi/Makefile.am:
15621 build: fix when HEVC decoder is disabled
15622 This a very pathological situation: when we have a HEVC encoder but not a HEVC
15624 The encoder needs functions that are only available when the decoder is
15626 This patch moves the utils functions into the generic sources, such as the
15628 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15630 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15632 * gst/vaapi/Makefile.am:
15633 build: remove unused EGL specific sources
15634 These Makefile variables are not used at all.
15635 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15637 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15639 * gst/vaapi/Makefile.am:
15640 build: remove check for GStreamer 1.2
15641 Since we are working for current stable GStreamer 1.6
15642 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15644 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15646 * gst/vaapi/gstvaapiparse.h:
15647 Remove more video parser crufts
15648 This header is not used anymore since it declares parsers that are
15649 already in GStreamer 1.6
15650 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15652 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
15655 * docs/reference/Makefile.am:
15656 * docs/reference/libs/Makefile.am:
15657 * docs/reference/libs/libs-docs.xml.in:
15658 * docs/reference/libs/libs-overrides.txt:
15659 * docs/reference/libs/libs-sections.txt:
15660 docs: remove library documentation which is non-public now
15661 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15663 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
15667 * debian.upstream/Makefile.am:
15668 * debian.upstream/changelog.in:
15669 * debian.upstream/compat:
15670 * debian.upstream/control.in:
15671 * debian.upstream/copyright:
15672 * debian.upstream/gstreamer-vaapi-doc.install.in:
15673 * debian.upstream/gstreamer-vaapi.install.in:
15674 * debian.upstream/rules:
15675 Remove debian.upstream packaging
15676 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15678 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15680 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15681 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15682 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15683 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15684 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15685 * gst/vaapi/gstcompat.h:
15686 * gst/vaapi/gstvaapi.c:
15687 * gst/vaapi/gstvaapidecode.c:
15688 * gst/vaapi/gstvaapiencode.c:
15689 * gst/vaapi/gstvaapipluginbase.c:
15690 * gst/vaapi/gstvaapipluginbase.h:
15691 * gst/vaapi/gstvaapipluginutil.c:
15692 * gst/vaapi/gstvaapisink.c:
15693 Remove old gst version guards
15694 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
15695 all the old GStreamer version guards.
15696 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15698 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15700 * gst/vaapi/gstvaapiparse.c:
15701 Remove video parser crufts
15702 We forgot to remove gstvaapiparse.c when we removed all the videoparser
15704 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15706 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15708 * docs/reference/libs/Makefile.am:
15709 * docs/reference/plugins/Makefile.am:
15710 * gst-libs/gst/vaapi/Makefile.am:
15711 * gst/vaapi/Makefile.am:
15712 * tests/Makefile.am:
15713 libs: remove versioning
15714 Since we don't install libraries anymore, it makes no sense to keep
15715 versioning them according to the gstreamer's version.
15716 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15718 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15721 * debian.upstream/Makefile.am:
15722 * debian.upstream/control.in:
15723 * debian.upstream/libgstvaapi-dev.install.in:
15724 * debian.upstream/libgstvaapi-drm.install.in:
15725 * debian.upstream/libgstvaapi-glx.install.in:
15726 * debian.upstream/libgstvaapi-wayland.install.in:
15727 * debian.upstream/libgstvaapi-x11.install.in:
15728 * debian.upstream/libgstvaapi.install.in:
15729 * gst-libs/gst/vaapi/Makefile.am:
15730 * tests/Makefile.am:
15731 libs: make libraries no installables
15732 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15734 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15736 * debian.upstream/libgstvaapi-dev.install.in:
15737 * gst-libs/gst/vaapi/Makefile.am:
15738 Do not install libgstvaapi headers
15739 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15741 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15745 * patches/Makefile.am:
15746 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15747 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15748 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15749 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
15750 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15751 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15752 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15753 * patches/videoparsers/Makefile.am:
15754 * patches/videoparsers/series.frag:
15755 Remove videoparser patches
15757 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15761 * debian.upstream/libgstvaapi-dev.install.in:
15762 * pkgconfig/Makefile.am:
15763 * pkgconfig/gstreamer-vaapi-drm.pc.in:
15764 * pkgconfig/gstreamer-vaapi-glx.pc.in:
15765 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15766 * pkgconfig/gstreamer-vaapi-x11.pc.in:
15767 * pkgconfig/gstreamer-vaapi.pc.in:
15768 Remove pkg-config files
15769 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15771 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15777 * ext/codecparsers:
15778 * gst-libs/gst/Makefile.am:
15779 * gst-libs/gst/codecparsers/Makefile.am:
15780 * gst-libs/gst/vaapi/Makefile.am:
15781 * gst/vaapi/Makefile.am:
15782 Remove codecparsers submodule
15783 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15785 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15790 * debian.upstream/libgstvaapi.install.in:
15792 * ext/libvpx/Makefile.am:
15793 * ext/libvpx/gstlibvpx.c:
15794 * ext/libvpx/gstlibvpx.h:
15795 * ext/libvpx/libgstcodecparsers_vpx.vers:
15796 * ext/libvpx/sources.frag:
15797 * ext/libvpx/upstream:
15798 * gst-libs/gst/codecparsers/Makefile.am:
15799 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
15800 Remove libvpx submodule
15801 We will be using upstream codecparsers always.
15802 No more internal libvpx !
15804 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15807 build: fix check for GstJpegParser
15808 Right now the local JPEG parser is always compiled because the check for the
15809 upstreamed version is broken: it looks for an non existent symbol:
15811 This patch changes that check for< GstJpegFrameHdr.
15812 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15814 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
15816 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15817 wayland: free the frame in frame_release_callback()
15818 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
15819 decouple wl_buffer from frame).
15820 Otherwise the frame may be overwritten while it is still used by the
15822 The frame done callback (frame_done_callback()) is called, when the
15823 compositor is done processing the frame and hands it to the hardware.
15824 The buffer release callback (frame_release_callback()) is called when the
15825 buffer memory is no longer used.
15826 This can be quite some time later: E.g. if weston (with the DRM backend)
15827 puts the buffer on a hardware plane, then then buffer release callback is
15828 called when the kernel is done with the buffer. This is usually when the
15829 next frame is shown, so most likely after the frame done callback for the
15831 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
15832 destroy()" the mentioned possible leak should no longer be a problem, so
15833 reverting this change should cause no leaking buffers.
15834 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15835 https://bugzilla.gnome.org/show_bug.cgi?id=758848
15836 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15838 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15840 * gst/vaapi/gstvaapipostproc.c:
15841 vaapipostproc: check ANY caps at transform_caps()
15842 When transforming downstream caps we should check for ANY caps from peer pad,
15843 otherwise we get a segmentation fault.
15844 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15845 https://bugzilla.gnome.org/show_bug.cgi?id=759893
15847 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15849 * gst/vaapi/gstvaapisink.c:
15850 vaapisink: ignore frame if its upload failed
15851 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
15852 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
15853 ignored by the vaapisink, leading to a segmentation fault.
15854 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
15855 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
15856 segmentation fault, but doing and effort to continue rendering. This is
15857 the same behavior of ximagesink.
15858 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15859 https://bugzilla.gnome.org/show_bug.cgi?id=759332
15861 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
15864 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
15865 https://bugzilla.gnome.org/show_bug.cgi?id=759184
15867 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15869 * gst-libs/gst/vaapi/gstvaapicontext.c:
15870 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15871 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15872 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
15873 Add 10 HEVC 10 bit decoding support
15874 Only supporting vaapidecode ! vaapisink combination for now.
15875 Missing dependencies:
15876 1: No support for P010 video format in GStreamer
15877 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
15878 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
15879 through GstVideoMeta.
15880 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
15881 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
15882 of the surfaces is implementation (driver) defined, which is P010.
15884 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15886 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15887 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
15888 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
15889 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
15890 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
15891 chroam type and dimensions. The underlying format of the surfaces is
15892 implementation (driver) defined.
15894 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15896 * gst-libs/gst/vaapi/gstvaapisurface.h:
15897 * gst-libs/gst/vaapi/gstvaapiutils.c:
15898 Add definitions for YUV420 with more than 8 bits per channel
15900 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15902 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15903 gstvaapiporfile: Fix string representation of HEVCMain10 profile
15905 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15908 Bump version for development
15910 === release 0.7.0 ===
15912 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15917 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15922 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15927 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15932 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15934 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15935 texture: detect GL version and use the proper API
15936 When receiving the texture from the application or the video sink, we must
15937 know it size and border. To query the texture the API has changed according to
15938 the OpenGL version used in the GL context of the application/vsink.
15939 This patch checks the current context API type and queries the texture
15940 according to this detected API.
15941 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15942 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15944 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15946 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15947 texture: check for expected target and format
15948 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
15949 formats GL_RGBA or GL_BGRA.
15950 This patch adds a debugging verification of those values.
15951 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15952 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15954 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15956 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15957 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15958 libs: add gl3_bind_texture_2d()
15959 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
15960 needed. In particular, the Intel's Mesa implementation complains if it is
15962 This patch add a new binding function for 2D textures, without enabling
15963 gl3_bind_texture_2d()[2].
15964 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
15965 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
15966 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15967 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15969 2015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15971 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15972 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15973 libs: add gl_get_current_api()
15974 In order to know which OpenGL API use, we must detect the API type of current
15975 context. This patch adds the function gl_get_current_api() which returns the
15977 This function is an adaptation of gst_gl_context_get_current_gl_api() from
15979 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15980 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15982 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15985 * gst-libs/gst/vaapi/Makefile.am:
15986 build: Add gmodule dependency for libgstvaapi_egl
15987 https://bugzilla.gnome.org/show_bug.cgi?id=756259
15989 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15991 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15992 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15993 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15994 * patches/videoparsers/series.frag:
15995 patches/videoparsers: h264: Disable passthorugh mode enabling
15996 This is a quick fix for regression introduced by the upstream
15997 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
15998 The patch is disabling the passthrough mode, otherwise it will
15999 break multi-layer mvc stream parsing.
16000 https://bugzilla.gnome.org/show_bug.cgi?id=758656
16002 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16004 * gst/vaapi/Makefile.am:
16005 * patches/videoparsers/Makefile.am:
16006 * patches/videoparsers/series.frag:
16007 build: add gsth265parse patches conditionally
16008 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
16009 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
16011 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16012 https://bugzilla.gnome.org/show_bug.cgi?id=755525
16014 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16016 * gst/vaapi/Makefile.am:
16017 build: declare correctly parse lib built files
16018 This is a continuation of commit fc8a0d12
16019 When declaring BUILT_SOURCES, those files should not be distributed. This
16020 patch avoids the distribution of the generated source code.
16021 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16022 https://bugzilla.gnome.org/show_bug.cgi?id=755525
16024 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16026 * ext/libvpx/sources.frag:
16027 build: libvpx: Add missing source file
16029 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16031 * gst/vaapi/gstvaapipostproc.c:
16032 vaapipostproc: Correctly detect the caps change
16033 This is a quick fix for regression introuduced by the
16034 commit 757833230bc73b8e3b4e31649e4618ba802bea51
16035 With out this, the gst_vaapipostproc_create() will
16037 https://bugzilla.gnome.org/show_bug.cgi?id=758543
16039 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16041 * ext/libvpx/Makefile.am:
16042 * ext/libvpx/sources.frag:
16043 build: libvpx: update the sources lists
16044 `make dist` broke since commit f06798 (libvpx: Update the submodule to
16045 libvpx-1.4.0) because the sources.frag does not contain all the module
16047 This patch updates thoroughly the sources.
16048 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16049 https://bugzilla.gnome.org/show_bug.cgi?id=755525
16051 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16053 * gst/vaapi/gstvaapipostproc.c:
16054 vaapipostproc: don't set caps change at first set
16055 When the source caps change, the filter is destroyed and recreated.
16056 Nonetheless, this happens every time the vaapipostproc starts, since the caps
16057 change detection algorithm does not take in consideration when the caps are
16059 This patch intents to be an optimization, to avoid a useless filter
16060 destroy-creation cycle when the sources caps are set for first time.
16061 The new helper function video_info_update() is a refactorization to avoid
16063 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16064 https://bugzilla.gnome.org/show_bug.cgi?id=758007
16066 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16068 * gst/vaapi/gstvaapipostproc.c:
16069 vaapipostproc: params video_info_changed() callers
16070 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
16071 swapped the the order. This didn't raise problems since the comparison of both
16072 structures were not affected by its semantics.
16073 But still it would be better to fix this to keep the coherence of the code.
16074 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16075 https://bugzilla.gnome.org/show_bug.cgi?id=758007
16077 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16079 * gst/vaapi/Makefile.am:
16080 build: declare real built files
16081 When runnig the `make dist` target from a clean tree, it fails because
16082 if could not find the copied files from codecparsers submodule.
16083 They weren't copied because they weren't declared as built sources.
16084 This patch removes the stamp mechanism and use the actual file list to copy
16085 as the built sources. Also it fixes the duplication of the parser files.
16086 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16087 https://bugzilla.gnome.org/show_bug.cgi?id=755525
16089 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16091 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16092 decoder: vp9: Fix last/golden/altref frame index setting
16093 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
16094 based on what ever reference frame indices encoded in frame header.
16096 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16098 * debian.upstream/rules:
16099 debian: remove custom parallel compilation
16100 In order to build a debian package with upstream source, the user should
16103 cp -a debian.upstream debian
16104 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
16105 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
16106 way to make a parallel build (-j8 in this case).
16107 This commit removes the script in debian/rules that detects the number of
16108 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
16109 official in debian.
16110 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16111 https://bugzilla.gnome.org/show_bug.cgi?id=754087
16113 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16115 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16116 decoder: vp9: Fix PTS calculation of cloned frames
16118 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16120 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16121 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
16122 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
16123 gstvaapidecoder base calss is reponsible for handling those frames later on.
16124 No need for explicit verification of frame header's show_frame in order to
16125 do picture outputing.
16127 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16129 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16130 decoder: vp9: Fix ref picture update while doing repeat frame
16131 Don't try to do frame decoding and reference picture update
16132 while receiving a vp9 frame having show_existing_frame flag
16135 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16137 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16138 decoder: vp9: Add repeat-frame display handling
16139 If vp9 frame header come up with show_existing_frame flag set,
16140 we should duplicate the existing decoded frame as current frame to
16143 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16145 * gst/vaapi/gstvaapidecodebin.c:
16146 vaapidecodebin: add me as element co-author
16147 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16148 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16150 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16152 * gst/vaapi/gstvaapidecodebin.c:
16153 vaapidecodebin: try to get display from decoder
16154 Rather than create a dummy display, if none has propagated as a context, we
16155 should try to get the one from vaapidecode.
16156 As the bin is already in READY state, the vaapidecode should be also in that
16157 state. That means that the contexts have been negotiated, and it should have
16159 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16160 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16162 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16164 * gst/vaapi/gstvaapidecodebin.c:
16165 * gst/vaapi/gstvaapidecodebin.h:
16166 vaapidecodebin: add postprocessor dynamically
16167 The former approach to left the bin unfinished has some problems: the context
16168 cannot be shared because the vaapidecode is unlinked in many cases, leading to
16169 creating a VADisplay twice.
16170 Initially the bin is fully functional, constructed as
16171 (-----------------------------------)
16173 | (-------------) (-------) |
16174 |<--| vaapidecode |--->| queue |--->|
16175 | (-------------) (-------) |
16176 (-----------------------------------)
16177 When the context is shared and the VADisplay has VPP capabilities, before
16178 changing to READY state, the bin is reconfigured dynamically, adding the
16179 vaapipostproc element afeter the queue:
16180 (--------------------------------------------------------)
16182 | (-------------) (-------) (---------------) |
16183 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
16184 | (-------------) (-------) (---------------) |
16185 (--------------------------------------------------------)
16186 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16187 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16189 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16191 * gst/vaapi/gstvaapidecodebin.c:
16192 vaapidecodebin: delay the bin configuration
16193 Delay the bin configuration until changing to READY state. This is because we
16194 should add the vaapipostproc element until the vaapidecode has emitted the
16195 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
16197 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16198 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16200 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16202 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16203 decoder: vp9: Add crop rectangle support.
16204 Set crop rectange if:
16205 There is display_width and display_height which is different from actual width/height
16207 The changed resolution is less than the actual configured dimension of surfaces
16209 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16211 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16212 decoder: vp9: Fix the context and surface pool reset for multi resolution video
16213 Unlike other decoders, vp9 decoder doesn't need to reset the
16214 whole context and surfaces for each resolution change. Context
16215 reset only needed if resolution of any frame is greater than
16216 what actullay configured. There are streams where a bigger
16217 resolution set in ivf header or webm header but actual resolution
16218 of all frames are less. Also it is possible to have inter-prediction
16219 between these multi resolution frames.
16221 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16223 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16224 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
16225 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
16226 Preliminary fix for supproting multi resolution video decode.
16228 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16230 * gst/vaapi/gstvaapidecode.c:
16231 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
16233 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16235 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16236 decoder: vp9: Set lossless flag from frame header
16238 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16240 * ext/codecparsers:
16241 codecparsers: Update to gst-vaapi-branch d9f25
16242 d9f2527: codecparsers: vp9: Set lossless flag in frame header
16244 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16246 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16247 libs: vp9: remove unused symbols
16248 clang complains about a couple variables and one label which were not
16249 used. This patch removes them.
16250 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16251 https://bugzilla.gnome.org/show_bug.cgi?id=757958
16253 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16255 * ext/codecparsers:
16256 codecparsers: Update to gst-vaapi-branch da251bb
16257 da251bb: codecparsers: vp9: Optimize the memory allocation
16258 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
16260 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16262 * gst/vaapi/gstvaapipluginbase.c:
16263 * gst/vaapi/gstvaapipluginbase.h:
16264 plugin: guard pointers to pad query functions
16265 Since gstreamer 1.4 is not required to have pad query functions if the query
16267 This patch guards out the pad query functions for gstreamer < 1.4
16268 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16269 https://bugzilla.gnome.org/show_bug.cgi?id=757629
16271 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16273 * gst/vaapi/gstvaapiencode.c:
16274 vaapiencode: use pad query vmethods
16275 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
16276 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
16277 while keeps support for previous versions of gstreamer.
16278 This patch is relevant since GstVideoEncoder takes care of other queries that
16279 we are currently ignoring.
16280 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16281 https://bugzilla.gnome.org/show_bug.cgi?id=757629
16283 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16285 * gst/vaapi/gstvaapidecode.c:
16286 vaapidecode: return pad's template caps if no display
16287 A caps query can occur before the element has a display. In that case, the
16288 element can return its pad's template. But when the element already has a
16289 display, and the caps probe fails, the element shall return an empty caps, so
16290 the auto-plug could try with another decoder.
16291 If the element has a display and the caps probe works, then the computed caps
16292 should be returned.
16293 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16294 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16296 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16298 * gst/vaapi/gstvaapidecode.c:
16299 * gst/vaapi/gstvaapisink.c:
16300 plugins: don't create display at caps query
16301 Caps query can happen before the element has a bus. The display creation should
16302 be should occur on the context negotiation, when the bus is already configured.
16303 Then at caps query no display should be created.
16304 Instead of force the display creation, we graciously fail the allowed_caps()
16306 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
16307 basetransform descendant, seems to be not affected by this, nor the encoders.
16308 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16309 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16311 2015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16313 * gst/vaapi/gstvaapidecode.c:
16314 * gst/vaapi/gstvaapiencode.c:
16315 * gst/vaapi/gstvaapipluginutil.c:
16316 * gst/vaapi/gstvaapipluginutil.h:
16317 * gst/vaapi/gstvaapipostproc.c:
16318 * gst/vaapi/gstvaapisink.c:
16319 plugins: fix context query handling
16320 The current context query handling design is flawed: the function
16321 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
16322 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
16323 pad query function should handle differently each case.
16324 This patch changes the gst_vaapi_reply_to_query() for
16325 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
16326 to match the correct context query handling.
16327 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16328 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16330 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16332 * gst/vaapi/gstvaapipluginutil.c:
16333 plugin: don't lose previous context at query
16334 When processing the GST_CONTEXT_QUERY we should not lose the previous
16335 context in the query, we should only add our display structure.
16336 This patch copies the old context, if it is there, and stamp our display on
16337 it. Otherwise, a new context is created.
16338 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16339 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16341 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16343 * gst/vaapi/gstvaapivideocontext.c:
16344 * gst/vaapi/gstvaapivideocontext.h:
16345 vaapivideocontext: add gst_vaapi_video_context_set_display()
16346 This function set the display to an already created context. This function is
16347 going to be used later.
16348 Also, gst_vaapi_video_context_new_with_display() now uses this function.
16349 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16350 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16352 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16354 * gst/vaapi/gstvaapipluginutil.c:
16355 * gst/vaapi/gstvaapivideocontext.c:
16356 * gst/vaapi/gstvaapivideocontext.h:
16357 plugins: check if display is set in sync
16358 Since the context messages are sync'ed, the display assignation happens in the
16359 same thread, hence we can know if the display was found or not as soon we call
16361 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
16362 as a new parameter, the address of the plugin's display, and reports back if
16363 the display was found and set.
16364 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16365 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16367 2015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16369 * gst/vaapi/gstvaapipluginutil.c:
16370 * gst/vaapi/gstvaapivideocontext.c:
16371 plugins: set display through context
16372 Instead of setting the display to the plugin directly after its creation, do
16373 it through the gstreamer's context mechanism, avoiding double assignations.
16374 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16375 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16377 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16379 * gst/vaapi/gstvaapivideocontext.c:
16380 vaapivideocontext: rename context structure
16381 The context structure is named "display" which is too generic. The contrary
16382 happens, for example, with GstGL, what uses the same name as the context, and
16383 its logs make more sense.
16384 This patch renames the context structure with the same name as the
16385 context, thus GST_PTR_FORMAT can pretty print it.
16386 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16388 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16390 * gst/vaapi/gstvaapivideocontext.c:
16391 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
16392 First, refactorized run_context_query() into _gst_context_run_query(), adding
16393 a new parameter: the pad direction, in order to simplify the code.
16394 Second, added a new helper function: _gst_context_query(), which is a generic
16395 context query function. It isolates the operation of running the query and
16396 sets the context if found, also it enhances the logs.
16397 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
16398 future this helper function will be merged into the core libraries of
16400 Finally, gst_vaapi_video_context_prepare() was rewritten to use
16401 _gst_context_query().
16402 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16403 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16405 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16407 * gst/vaapi/gstvaapivideocontext.c:
16408 vaapivideocontext: refactor context category debug
16409 Refactor the extraction GST_CAT_CONTEXT logging using a only once
16410 initializator, so we could get the debug category from different code
16412 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16413 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16415 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16417 * gst/vaapi/gstvaapivideocontext.c:
16418 gstvaapivideocontext: fix indentation
16419 gst-indent does not handle correctly some expression like function
16420 declaration with attributes, breaking the following expressions.
16421 This patch makes gst-indent to ignore the attributed function
16422 declartion so the followed function definition is not mangled, such
16423 as happened in commit b4154a
16424 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16425 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16427 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16429 * gst/vaapi/gstvaapipluginbase.c:
16430 plugin: chain up set_context() vmethod
16431 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
16432 the parent class in order to broadcast all its contexts when the element
16433 is added into a bin:
16434 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
16435 There is no need to guard the call, because before GStreamer 1.7, the
16436 set_context() vmethod was NULL in the element class, hence the conditional
16438 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16439 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16441 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16443 * tests/simple-encoder.c:
16444 tests: simple-encoder: remove dead code
16445 The caps creation for codec state configuration is not used. Let's remove it.
16446 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16448 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16450 * gst/vaapi/gstvaapidecodebin.c:
16451 vaapidecodebin: fix a leaked display instance
16452 The display returned by gst_vaapi_video_context_get_display() increments the
16453 references. Thus, we have to unref the returned display.
16454 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16455 https://bugzilla.gnome.org/show_bug.cgi?id=757595
16457 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16459 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16460 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16461 libs: remove unneeded headers
16462 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
16463 required to include them in the header. It is not also required to include
16464 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
16465 exposes their structures (e.g. GLXPixmap).
16466 Nonetheless, glext.h neither glxext.h are required to include, they are
16467 already included conditionally by gl.h and glx.h, respectively.
16468 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16469 https://bugzilla.gnome.org/show_bug.cgi?id=757577
16471 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16473 * ext/codecparsers:
16474 codecparsers: Update to gst-vaapi-branch 0ea6792
16475 0ea6792: codecparsers: vp9: Add header comments
16476 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
16478 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16480 * gst/vaapi/gstvaapidecode.c:
16481 VP9: plugins: Add VP9 decoder
16483 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16485 * gst-libs/gst/vaapi/Makefile.am:
16486 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16487 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
16488 VP9: libgstvaapi: Add VP9 decoder
16490 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16492 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16493 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16494 VP9: gstvaapiprofile: Add profile definitions
16496 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16499 VP9: build: Check availability of vp9 decoder APIs
16501 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16505 * gst-libs/gst/codecparsers/Makefile.am:
16506 VP9: Allow building vp9 codecparser internally
16508 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16510 * ext/codecparsers:
16511 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
16512 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
16513 e7d9217: codecparser: h264: initialize parsing structures
16514 403d400: codecparser: h265: initialize parsing structures
16516 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16519 configure.ac: don't use an undefined variable
16520 If the environment lacks of gstreamer development packages, this error will
16521 be reported to the user: "gstreamer- was not found"
16522 This is because we are using an undefined variable in the printed message. The
16523 fix simple changes the variable for the hard-coded string "1.0".
16524 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16525 https://bugzilla.gnome.org/show_bug.cgi?id=757283
16527 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16529 * gst/vaapi/gstvaapidecode.c:
16530 vaapidecode: relax guards for memory:VASurface capsfeature
16531 Though caps features are supported since GStreamer 1.2, there are some
16532 issues with the features caps negotiation in that version. Nonetheless,
16533 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
16534 feature negotiation is relaxed for GStreamer 1.4.
16535 The guard is the same as in vaapisink's caps template.
16536 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16537 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16539 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16541 * gst/vaapi/gstvaapidecode.c:
16542 vaapidecode: decide allocation doesn't update srccaps
16543 The received caps query will bring the already negotiated caps, so they are
16544 not expected to change.
16545 This patch removes this verification which is dead code path.
16546 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16547 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16549 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16551 * gst/vaapi/gstvaapidecode.c:
16552 * gst/vaapi/gstvaapipluginutil.c:
16553 * gst/vaapi/gstvaapipluginutil.h:
16554 vaapidecode: use caps to check the features
16555 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
16556 expensive, we check the caps from the allocation query, to check the
16557 negotiated feature.
16558 In order to do this verification a new utility function has been implemented:
16559 gst_vaapi_caps_feature_contains().
16560 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
16561 have been refactorized.
16562 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16563 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16565 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16567 * gst/vaapi/gstvaapidecode.c:
16568 vaapidecode: set format before decide allocation
16569 There is a regression from commit 3d8e5e. It was expected the buffer pool
16570 allocation occur before the caps negotiation, but it is not.
16571 This patch fixes this regression: the caps negotiation is done regardless the
16572 allocation query from downstream.
16573 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16574 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16576 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16579 build: check for patch and fix yasm check
16580 Add configure checking for GNU patch tools and fixed configure
16581 checking YASM to correct sequence.
16582 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16583 https://bugzilla.gnome.org/show_bug.cgi?id=756690
16585 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16587 * ext/libvpx/Makefile.am:
16588 build: Remove disable-md5 option for libvpx build
16589 The configure option --disable-md5 was provided in libvpx-1.3.0 which
16590 has been removed in 1.4.0.
16592 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16594 * ext/libvpx/upstream:
16595 libvpx: Update the submodule to libvpx-1.4.0
16596 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
16598 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16601 configure: mark support for GStreamer 1.2 as obsolete.
16602 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
16603 Our goal is to support the last two stable versions of GStreamer which
16604 are 1.4 and 1.6 at the moment.
16605 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
16606 release and will get rid of those in 0.8.
16608 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16610 * gst/vaapi/gstvaapidecode.c:
16611 vaapidecode: Fix buffer copy assertion
16612 Don't try to copy the NULL buffer-codec_data.
16614 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16617 build: allow builds against GStreamer 1.7.x
16618 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16620 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16622 * gst/vaapi/gstcompat.h:
16623 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
16624 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
16625 add an implementation if gstreamer-vaapi is linked to previous versions.
16626 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16628 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16630 * gst/vaapi/gstvaapidecode.c:
16631 vaapidecode: simplify copy of GstVideoCodecState
16632 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16634 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16636 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
16637 * patches/videoparsers/series.frag:
16638 patches/videoparsers: h265parser: more API fences
16639 Add more API fences according with its version and refresh the patch.
16640 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16641 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16643 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16645 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
16646 * patches/videoparsers/series.frag:
16647 patches/videoparsers: h265parser: rename patch keeping number
16648 Refresh the patch and rename it in order to keep the patch number.
16649 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16650 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16652 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16654 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16655 patches/videoparsers: h264parser: more API fences and refresh
16656 Add more API fences according with its version and refresh the patch.
16657 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16658 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16660 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16662 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
16663 * patches/videoparsers/series.frag:
16664 patches/videoparsers: h264parser: fix description and refresh
16665 Fix a typo in the patch description and refresh it in order to avoid the
16666 creation of .orig files and break the distcheck target.
16667 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16668 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16670 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16672 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16673 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16674 patches/videoparsers: h264parser: refresh patches
16675 In order to avoid the creation of .orig files and break the distcheck target.
16676 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16677 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16679 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16681 * gst/vaapi/Makefile.am:
16682 build: link libgstvaapi_parse against codec parser
16683 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
16684 when running configure.
16685 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
16686 need it if builtin codec parsers are disabled.
16687 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
16688 compilation. If builtin codec parsers are enable, this variable is null, so it
16689 should work using libgstvaapi, as normal.
16690 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16691 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16693 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16696 build: verify for H264 MVC and H265 SPS
16697 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
16698 the required symbols for those were added in GStreamer 1.5
16699 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
16700 parsers, the compilation fails, because the lack of those symbols.
16701 This patch verifies if the installed H264 and H265 parsers have those symbols. If
16702 they do not, the specific built in codec parsers are enabled and used.
16703 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16704 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16706 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16708 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16709 decoder: h264: initialize PPS's slice_group_id
16710 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
16711 so it contains random data.
16712 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
16713 pointer uninitialized, leading to a segmentation fault when the memory is
16715 This patch prevents this by initializing the slice_group_id before the PPS
16717 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16718 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16720 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
16722 * gst/vaapi/gstvaapidecode.c:
16723 vaapidecode: proper numerator and denominator for forced latency framerate
16724 https://bugzilla.gnome.org/show_bug.cgi?id=755040
16726 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16728 * ext/codecparsers:
16729 codecparsers: Update to gst-vaapi-branch commit f9e284b
16730 dae1a84: h264parse/h265parse: Fix negotiation crash
16731 45a9f8a: codecparsers: h265 : Fix default scaling list values
16732 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
16733 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16735 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16737 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16738 decoder: hevc: Don't flush dpb for EOS/EOB nal
16739 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
16740 the dpb_add() itself will handle the flusing(if needed) of dpb
16741 for end of sequence and end of bitstream.
16742 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16744 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16746 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16747 decoder: hevc: Fix the dpb_add() based on C.5.2.3
16748 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
16749 just after the PicLatencyCnt setting of existing dpb frames.
16750 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16752 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16754 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16755 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
16756 This fix is based on the V3 vesion of spec which was missing in older versions.
16757 When the current picture has PicOutputFlag equal to 1, for each picture in the
16758 DPB that is marked as "needed for output" and follows the current picture in output order,
16759 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
16760 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16762 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16764 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16765 decoder: h265: Fix indentation
16767 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
16769 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16770 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16771 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16772 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16773 * gst/vaapi/gstvaapidecode.c:
16774 * gst/vaapi/gstvaapipluginutil.c:
16775 multiview: initial attempt at stereo/multiview support
16776 Add support for marking caps and buffers for multiview or
16777 stereoscopic output.
16778 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16780 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16782 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16783 decoder: hevc: remove unused functions
16784 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16785 https://bugzilla.gnome.org/show_bug.cgi?id=754250
16787 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16789 * gst/vaapi/gstvaapidecode.c:
16790 vaapidecode: remove (another) unused variable
16791 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16793 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16795 * gst/vaapi/gstvaapidecode.c:
16796 vaapidecode: remove unused variable
16797 Thus silence the compilation warnings.
16799 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16801 * gst/vaapi/gstvaapidecode.c:
16802 vaapidecode: compilation fix
16803 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
16804 compilation where the toolchain uses restrictive flags as clang.
16805 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16807 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16809 * gst/vaapi/gstvaapidecode.c:
16810 vaapidecode: renegotiate if caps are not equal
16811 The use of gst_caps_is_always_compatible() for this optimization may lead to
16812 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
16813 if it is required a re-negotiation.
16814 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16815 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16817 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16819 * gst/vaapi/gstvaapidecode.c:
16820 * gst/vaapi/gstvaapidecode.h:
16821 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
16822 Delaying the pool re-negotiation untill we push all decoded (and queued)
16823 frames downstream. Otherwise for the multi-resolution videos, the
16824 GstVideoVideoMemory will be having wrong resolution and which leads
16825 to nasty behaviours, especially when using software renderers.
16826 sample media file: RAP_B_Bossen_1.bin
16828 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
16829 get the final resoultion 416x240.
16830 Starting from 25 th frame, the resolution will change to 416x240. But parser
16831 elements won't report this since the effective croped resolution is same in
16832 both cases. Here the core libgstvaapi will detect this through it's internal
16833 parsing and do all context/pool destory/reset stuffs. Also it will notify this
16834 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
16835 immediately, this will not sync with the resolution of already decoded and queued
16836 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
16837 software renderer). So we have to delay the pool renegotiation in vaapidecode,
16838 untill we push all decoded frames downstream.
16839 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16841 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16843 * gst/vaapi/gstvaapidecode.c:
16844 vaapidecode: Always keep a copy of input codec state
16845 Currently we are sharing the input GstVideoCodecState with
16846 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
16847 each caps change. This is troublesome in many cases, for eg: if
16848 resoultion changes with in a singe stream. Because, when ever there
16849 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
16850 fields with new resolution, but since we are using the same codecstate (ref)
16851 in gstvaapidecode.c, the caps check for input caps change will always fail.
16852 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16854 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16856 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16857 decoder: hevc: Fix the scaling list scan order
16858 The default scan order of scaling lists are up-right-diagonal
16859 as per hevc specification. Use the newly implemented
16860 uprightdiagonal_to_raster conversion codecparser APIs to
16861 get the the scaling_list values in raster order, which is
16862 what the VA intel driver requires.
16864 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16866 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16867 decoder: hevc: sync with the codecparser changes
16868 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
16869 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
16871 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16873 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16874 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16876 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16878 * ext/codecparsers:
16879 codecparsers: Update to gst-vaapi-branch commit 69550f1
16880 c207c6d: codecparsers: h265: Fix tile row and column parsing
16881 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
16882 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16883 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
16884 2f0932b: h264parse: Clear SPS info after processing
16885 f57d6b0: videoparsers: enable accept-template flag
16887 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16889 * debian.upstream/control.in:
16890 debian: add yasm as build dependency
16891 As the compilation of libvpx (for vp8 parser) is enabled by default,
16892 yasm is required by default too.
16893 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16895 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16897 * debian.upstream/rules:
16898 debian: remove --with-gstreamer-api option
16899 It is no longer valid in gstreamer-vaapi.
16900 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16901 [removed unused GST_API_VERSION variable]
16902 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16903 https://bugzilla.gnome.org/show_bug.cgi?id=753618
16905 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16907 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16908 wayland: rename is_cancelled to sync_failed
16909 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
16910 sense. This commit renames this variable to sync_failed.
16912 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
16914 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16915 wayland: Don't return GST_FLOW_ERROR on flushing
16916 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
16917 return FALSE which makes gst_vaapi_window_wayland_render() return
16918 FALSE which ends up posting an ERROR message in
16919 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
16921 https://bugzilla.gnome.org/show_bug.cgi?id=753598
16923 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16925 * gst/vaapi/gstvaapi.c:
16926 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
16927 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
16929 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16931 * gst/vaapi/gstvaapidecodebin.c:
16932 vaapidecodebin: check for postproc instance
16933 If the VPP's deinterlace-method is set, first we should check if the postproc
16934 is already instanced to set it. Otherwise we just store it until the VPP is
16935 added into the bin.
16936 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16937 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16939 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16941 * gst/vaapi/gstvaapidecodebin.c:
16942 * gst/vaapi/gstvaapipluginutil.c:
16943 * gst/vaapi/gstvaapipluginutil.h:
16944 vaapidecodebin: ensure VPP before going to READY
16945 There are sometimes that the VA-API display context is not shared among the
16946 pipeline, but it is important to know it before going to READY state (when the
16947 pipeline is already linked).
16948 One instance of this case is this:
16949 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
16950 This patch adds a new function in gstvaapipluginutil called
16951 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
16952 display, which only will be used for verify if the VAEntrypointVideoProc is
16953 available by the hardware. Afterwards, it should be unrefed.
16954 If the vaapidecodebin is going to READY state, and the element still doesn't
16955 know if VPP is available, the last resort is to create a new instance of the
16956 VA-API display and test for it.
16957 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16959 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16961 * gst/vaapi/gstvaapidecodebin.c:
16962 vaapidecodebin: post an error message if fails
16963 If the construction of the bin fails, post an error message in the bus.
16964 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16965 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16967 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16969 * gst/vaapi/gstvaapidecodebin.c:
16970 * gst/vaapi/gstvaapidecodebin.h:
16971 vaapidecodebin: has_vpp as a tri-state variable
16972 has_vpp can be UNKNOWN while the context message hasn't being received.
16973 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16974 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16976 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16978 * gst/vaapi/gstvaapivideomemory.c:
16979 gstvaapivideomemory: native format with no derived image
16980 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
16981 info based on the derived image configuration.
16982 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16983 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16985 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16987 * gst-libs/gst/vaapi/video-format.c:
16988 * gst-libs/gst/vaapi/video-format.h:
16989 * gst/vaapi/gstvaapivideomemory.c:
16990 surface pool config based on video info
16991 First added the function gst_vaapi_video_format_get_best_native(), which
16992 returns the best native format that matches a particular chroma type:
16993 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
16994 RGB32 chroma and encoded format map to NV12 too.
16995 That format is used to configure, initially, the surface's pool for the
16997 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16998 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17000 2015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17002 * gst/vaapi/gstvaapivideomemory.c:
17003 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
17004 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17005 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17007 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
17009 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17010 gstvaapiencoder: validate chroma according to the VA's RT format
17011 Before, only YUV420 color space where supported. With this patch, the
17012 encoder is queried to know the supported formats and admits YUV422
17013 color space if its available.
17014 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17015 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17017 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17019 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17020 decoder: hevc: Add calculation of WpOffsetHalfRangeC
17021 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
17022 prediction weight table values with out using any hard coding.
17023 Fixme: We don't have parser API for sps_range_extension, so
17024 assumed zero value for high_precision_offsets_enabled_flag.
17025 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17027 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17029 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17030 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
17031 Based on ITU-T rec H265(4/2015): 7-56
17032 This was a wrong equation in rec H265 (4/2013): 7-44...
17033 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17035 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17037 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17038 decoder: hevc: Fix default value assignment of pred_weight_table
17040 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17042 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17043 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
17044 Assign only if ChromaArrayType != 0..
17045 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17047 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17049 * ext/codecparsers:
17050 codecparsers: Update to gst-vaapi-branch commit 1c70432
17051 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
17052 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
17053 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17055 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17057 * ext/codecparsers:
17058 codecparsers: Update to gst-vaapi-branch commit c18b8ad
17059 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
17060 a033083: videoparsers: h265: Fix the frame start detection code
17061 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17063 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17065 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17066 decoder: hevc: Add SEI parsing
17067 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17069 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17071 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17072 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
17073 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
17074 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
17075 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
17076 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
17077 is TRUE. Assuming them as MAIN profile for now.
17078 https://bugzilla.gnome.org/show_bug.cgi?id=753226
17079 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17081 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17083 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17084 patches/videoparsers: Fix the wrong source file path
17085 This is something wrongly typed in commit 6d7b631
17087 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17089 * ext/codecparsers:
17090 codecparsers: Update to gst-vaapi-branch commit b8d8be4
17091 ee7e81b: h264parse: Don't discard first AU delimiter
17092 3690fb9: h264parse: Add more NAL types for debugging output
17093 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
17094 ace61048: h265parse: expose compatible profiles to downstream
17095 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17097 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17099 * gst/vaapi/gstvaapipluginutil.c:
17100 * gst/vaapi/gstvaapivideocontext.c:
17101 * gst/vaapi/gstvaapivideocontext.h:
17102 gstvaapivideocontext: remove unused parameter
17103 gst_vaapi_video_context_prepare() received an unused parameter. This patch
17104 removes it and the structure passed by the caller.
17105 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
17106 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17108 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17110 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17111 decoder: hevc: Fix decoding of stream when it has temporal sublayers
17112 We are calculating the dpb size based on max_dec_pic_buffering.
17113 But if there are more than one temporal sublayers, we are supposed
17114 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
17115 size calculation (Assuming HighestTid as max_sub_layers_minus).
17116 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
17117 https://bugzilla.gnome.org/show_bug.cgi?id=753226
17118 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17120 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17122 * gst/vaapi/gstvaapidecode.c:
17123 * gst/vaapi/gstvaapidecodebin.c:
17124 * gst/vaapi/gstvaapiencode_h264.c:
17125 * gst/vaapi/gstvaapiencode_h265.c:
17126 * gst/vaapi/gstvaapiencode_jpeg.c:
17127 * gst/vaapi/gstvaapiencode_mpeg2.c:
17128 * gst/vaapi/gstvaapiencode_vp8.c:
17129 * gst/vaapi/gstvaapipluginutil.h:
17130 * gst/vaapi/gstvaapipostproc.c:
17131 * gst/vaapi/gstvaapisink.c:
17132 refactor vaapi caps strings for pad templates
17133 Refactor the main vaapi caps strings into three macros:
17134 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
17135 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
17136 Those are in gstvaapipluginutil.h so all the elements could use them, instead
17137 of re-declaring them every time.
17138 No functional changes.
17139 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17141 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17143 * gst/vaapi/gstvaapipostproc.c:
17144 gstvaapipostproc: fix code style
17145 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17147 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17149 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17150 decoder: hevc: Fix the decoding of dependent slice segment
17151 Decoding process for reference picture list construction needs to be
17152 invoked only for P and B slice and the value for slice_type of dependent slice
17153 segment should be taken from the previous independent slice segment header
17155 https://bugzilla.gnome.org/show_bug.cgi?id=753226
17156 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17158 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
17160 * gst/vaapi/gstvaapipluginbase.c:
17161 plugins: reduce the noise of warnings
17162 Those messagse should be attached to the object, also the lack of
17163 caps is not an error, in particular in the case of JPEG encoding.
17164 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17165 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17167 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17169 * gst-libs/gst/vaapi/gstvaapicontext.c:
17170 gstvaapicontext: fix the JPEG encoder attribs value
17171 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
17172 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
17173 assigns the returned value to the attribute.
17174 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17175 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17177 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
17179 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17180 gstvaapiencoder: framerate 0/1 is valid too
17181 Framerate 0/1 is valid, and it is particularly useful for picture
17182 encoding, such as jpeg. This patch makes the encoder to admit that
17184 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17185 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17187 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17189 * gst/vaapi/gstvaapipostproc.c:
17190 vaapipostroc: GLTextureUploadMeta in sink template
17191 Advertise GLTextureUploadMeta in sink caps template.
17192 https://bugzilla.gnome.org/show_bug.cgi?id=752130
17194 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17196 * gst/vaapi/Makefile.am:
17197 * gst/vaapi/gstvaapiencode.c:
17198 * gst/vaapi/gstvaapipluginbase.c:
17199 * gst/vaapi/gstvaapipluginbase.h:
17200 * gst/vaapi/gstvaapipostproc.c:
17201 * gst/vaapi/gstvaapisink.c:
17202 * gst/vaapi/gstvaapiuploader.c:
17203 * gst/vaapi/gstvaapiuploader.h:
17204 remove gstvaapiuploader
17205 Working on bug #744042 I realized that the gstvaapiuploader is practically not
17207 This patch removes the gstvaapiuploader and add the method
17208 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
17209 the system can handle, which is used by vaapisink and vaapipostproc.
17210 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17211 https://bugzilla.gnome.org/show_bug.cgi?id=752777
17213 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17215 * gst/vaapi/gstvaapidecode.c:
17216 vaapidecode: don't lost GLTextureUpload on seek
17217 When seeking, the decoder is reset, but the buffer pool is not
17218 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
17219 pool has the GLTextureUpload meta.
17220 The decoder knows that GLTextureUpload meta was negotiated in
17221 decide_allocation(), but this method is not called when seeking.
17222 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17223 https://bugzilla.gnome.org/show_bug.cgi?id=752929
17225 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17227 * gst/vaapi/gstvaapipluginutil.c:
17228 plugins: don't use gst_pad_get_allowed_caps()
17229 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
17230 decoders, that is OK, but in the case of the postproc might lead loops,
17231 since the gst_base_transform_query_caps() forwards the query upstream
17233 Instead of gst_pad_get_allowed_caps() we only query the peer with
17234 gst_pad_peer_query_caps() using the pad's template as filter.
17235 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17236 https://bugzilla.gnome.org/show_bug.cgi?id=752558
17238 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17243 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17245 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
17246 * patches/videoparsers/series.frag:
17247 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
17248 All API/ABI changes for S3D/MVC are added in 1.5, backporting
17249 them to older verison is not recommended.
17250 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17252 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17254 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17255 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
17257 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17259 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17260 decoder: jpeg: Align with new API/ABI changes in codecparser
17261 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17263 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17265 * ext/codecparsers:
17266 codecparsers: Update to gst-vaapi-branch commit 800bdb2
17267 ed13220: mpegvideometa: add meta transform function
17268 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
17269 7a51722: codecparsers: jpeg: fix docs for table parsing functions
17270 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
17271 387a39d: codecparsers: jpeg: fix up API
17272 db9d6a9: codecparsers: jpeg: tweak API a little
17273 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
17274 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
17275 4658c30: codecparsers: jpeg: fix calculation of segment size
17276 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
17277 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
17278 9422464: h264parse: fix typo in log message
17279 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
17280 77704ce: nalutils: trivial patch to check if
17281 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
17282 7862f95: Revert "codecparsers: remove ignored increment of return"
17283 54017b1: h264parse: Add support for passing stereoscopic/multiview info
17284 8667ee4: h264parse: Don't switch to passthrough on set_caps()
17285 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17287 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17289 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17290 decoder: h264: track previous reference frames.
17291 Improve closure of gaps in frame_num by strictly following and trying
17292 to fill them with previous reference frames. So, they are now tracked
17293 thus avoiding insertion of dummy ("greenish") frames.
17295 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17297 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17298 decoder: h264: fix integration of second field into the DPB.
17299 If the new picture to be added to the DPB is not a first field, then
17300 it shall be the second field of the previous picture that was added
17302 This removes the need for dpb_find_picture() now that we track the
17303 immediately preceding decoded picture, in decode order.
17305 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17307 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17308 decoder: h264: fix closure of "other-field" gap.
17309 When a dummy "other-field" is inserted, it is assumed to inherit the
17310 reference flags from the first field, and the sliding window decoded
17311 reference picture marking process is also executed so that corrupted
17312 frames are moved out as early as possible.
17313 While doing so, we also try to output frames that now contain a single
17314 valid field picture, prior to inserting any other picture into the DPB.
17315 Note: this may be superfluous currently based on the fact that dpb_add()
17316 combines the two most recent pairable fields, but this process would be
17317 further simplified later on.
17319 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17321 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17322 decoder: h264: track corrupted frames.
17323 Mark the picture as "corrupted" if it is reconstructed from corrupted
17324 references or if those references are fake, e.g. resulting from lost
17326 This is useful for notifying the upper layer, or downstream elements,
17327 that the decoded frame may contain artefacts.
17328 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17330 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17332 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17333 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17334 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
17335 * gst/vaapi/gstvaapidecode.c:
17336 decoder: add initial infrastructure for marking corrupted output.
17337 Add initial infrastructure in core codec library and vaapidecode to mark
17338 corrupted frames as such. A corrupted frame is such a frame that was
17339 reconstructed from invalid references for instance.
17340 https://bugzilla.gnome.org/show_bug.cgi?id=751434
17341 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17343 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17346 Bump version for development
17348 === release 0.6.0 ===
17350 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17355 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17360 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17362 * gst-libs/gst/vaapi/gstvaapiprofile.c:
17363 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
17364 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
17365 Right now there is not a primary ranked parser for vc1 and the demuxers
17366 delivers caps without specifying the profile. This situation is not an issue
17367 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
17368 explicit profile defined in the negotiated caps.
17369 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
17370 negotiation admits caps subsets try outs.
17371 This patch solves the issue ignoring the profile negotiation in the caps. For
17372 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
17373 done without the vc1 parser, such as happens in gstreamer 1.5.
17374 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17376 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17378 * gst/vaapi/gstvaapi.c:
17379 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
17380 Unfortunately vaapidecodebin element is not seems to be stable
17381 enough for autoplugging ahead of vaapidecode.
17382 Lowering the rank for now (cosidering the immediate 0.6 release).
17383 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
17384 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17386 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17388 * gst-libs/gst/vaapi/Makefile.am:
17389 build: Add missing CFLAGS to Makefile.am
17391 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17393 * gst-libs/gst/vaapi/gstvaapifilter.c:
17394 gstvaapifilter: Only register STE property if it supported by corresponding VA library
17395 Fix the regression introduced in commit eb465fb.
17396 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17397 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17399 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17401 * gst/vaapi/gstvaapipostproc.c:
17402 vaapipostproc: no format convert on GL tex upload meta
17403 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
17404 color format of the buffer.
17405 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17407 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17409 * gst-libs/gst/vaapi/gstvaapifilter.c:
17410 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
17411 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17412 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17414 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17416 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17417 encoder:h265: Fix the check for packed-header support
17418 Use VA_ENC_PACKED_HEADER_* definition for checking.
17419 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17421 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17423 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17424 encoder:h264: Fix the check for packed-header support
17425 Use VA_ENC_PACKED_HEADER_* definition for checking.
17426 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17428 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17430 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17431 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
17432 One buffering_period() SEI message shall be present in every IDR access unit
17433 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
17434 use a non-CQP mode, e.g. CBR. In other words, when
17435 nal_hrd_parameters_present_flag is set to 1.
17436 One picture_timing() SEI messages shall be present in every access unit
17437 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
17438 https://bugzilla.gnome.org/show_bug.cgi?id=722734
17439 https://bugzilla.gnome.org/show_bug.cgi?id=751831
17440 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17442 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17444 * gst/vaapi/gstvaapidecodebin.c:
17445 vaapidecodebin: notify if vpp is disabled
17446 When the system is aware that VPP is not available by the VA driver,
17447 it would be useful to notify to the user that the disable-vpp property
17449 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17451 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17453 * gst/vaapi/gstvaapidecodebin.c:
17454 * gst/vaapi/gstvaapidecodebin.h:
17455 vaapidecodebin: enable vpp if it is available
17456 Instead of creating and adding VPP into the bin at setup, we wait until
17457 we are sure the VA driver supports it. We know that when the VA video
17458 context is received by the bin. Afterwards, it is decided to instanciate
17459 and link the VPP or not.
17460 This is more efficient and safer than waiting the VPP to fail and then
17462 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17464 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17466 * tests/test-display.c:
17467 * tests/test-windows.c:
17468 tests: Fix compilation while enabling egl as the only renderer in build
17469 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
17471 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17474 configure: fix the build while enabling egl as the only renderer
17476 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17479 libs: Bump library major version
17481 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17483 * gst/vaapi/gstvaapi.c:
17484 * gst/vaapi/gstvaapidecodebin.c:
17485 * gst/vaapi/gstvaapiencode.c:
17486 * gst/vaapi/gstvaapiencode_jpeg.c:
17487 * gst/vaapi/gstvaapipluginbase.c:
17488 * gst/vaapi/gstvaapipluginutil.c:
17489 * gst/vaapi/gstvaapipostproc.c:
17490 * gst/vaapi/gstvaapivideobufferpool.c:
17491 * gst/vaapi/gstvaapivideocontext.c:
17492 * gst/vaapi/gstvaapivideomemory.c:
17493 * gst/vaapi/gstvaapivideometa.c:
17494 gst/vaapi: Switch to upstreram like indentation.
17495 gst-indent for all gst/vaapi/*.c source files
17497 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17499 * gst/vaapi/gstvaapidecodebin.c:
17500 * gst/vaapi/gstvaapidecodebin.h:
17501 vaapidecodebin: Add property to disable VPP
17502 Adding a new propery "disable-vpp", enabling it will prevent
17503 the insertion of vaapipostproc child element.
17504 This is helpful in debugging, specifically to narrow-down the
17505 vaapidecodebin/vaapipostproc related negotiation issues.
17506 No support for run-time disabling for now.
17507 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17509 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17511 * gst/vaapi/gstvaapipostproc.c:
17512 vaapipostproc: Fix wrong selection of passthrough mode.
17513 The Current code path is falling back to passthorugh mode if there is no
17514 vpp property set by the user explictily. But we should not use the
17515 passthrough mode if the negotiated src pad caps have a differnt color space
17516 format than sink pad caps (Even though the user didn't set the format property
17518 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17519 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17521 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17523 * gst/vaapi/gstvaapipostproc.c:
17524 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
17525 This is a workaround to deal with the va-intel-driver for non-native
17526 formats while doing advanced deinterlacing. The format of reference surfaces must
17527 be same as the format used by the driver internally for motion adaptive
17528 deinterlacing and motion compensated deinterlacing.
17529 A permanent solution could be to do the color space conversion internally
17530 for reference surfaces.
17531 https://bugzilla.gnome.org/show_bug.cgi?id=730925
17532 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17534 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17536 * gst/vaapi/gstvaapisink.c:
17537 Work around ABBA deadlock between vaapisink and vaapipostproc
17538 vaapisink takes the display lock, then does a gst_buffer_replace which can
17539 take the lock on the gst_vaapi_video_pool.
17540 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
17541 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
17542 surfaces, which means that gst_vaapi_surface_create is
17543 called. gst_vaapi_surface_create takes the display lock.
17544 If vaapisink and vaapipostproc are in different threads, and this happens,
17545 you get a deadlock. vaapisink holds the display lock, and wants the
17546 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
17547 and wants the display lock.
17548 Work around this by releasing the display lock in vaapisink around the
17549 gst_buffer_replace.
17550 https://bugzilla.gnome.org/show_bug.cgi?id=738249
17551 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17552 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17554 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
17556 * gst/vaapi/gstvaapidecodebin.c:
17557 * gst/vaapi/gstvaapidecodebin.h:
17558 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
17559 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17561 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17563 * gst/vaapi/gstvaapipostproc.c:
17564 vaapipostproc: log negotiated caps
17566 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17568 * gst/vaapi/gstvaapipostproc.c:
17569 vaapipostproc: remove useless debug message
17571 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17573 * gst/vaapi/gstvaapidecode.c:
17574 vaapidecode: log negotiated src/sink caps
17576 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17578 * gst/vaapi/gstvaapisink.c:
17579 vaapisink: error handling if rendering fails
17580 This patch enhance the code path when an error is found when rendering a
17582 If the video meta doesn't contain a surface proxy or a surface, a warning
17583 message is printed.
17584 If the rendering backend fails, a error message is posted in the bus.
17585 https://bugzilla.gnome.org/show_bug.cgi?id=749382
17587 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17589 * gst/vaapi/gstvaapisink.c:
17590 vaapisink: Fix the conditional pad template creation.
17592 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17594 * tests/Makefile.am:
17595 build: Don't build simple-encoder test program if there is no VA Encoding support
17596 This will fix the build error against older VA-APIs <= 0.32
17598 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17600 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17601 * gst-libs/gst/vaapi/gstvaapicompat.h:
17602 Fix build error for older VA-API versions
17603 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
17604 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
17607 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17609 * gst/vaapi/gstvaapisink.c:
17610 vaapisink: Fix the capsfeature advertisement in padtemplate
17611 This fixes the regression introduced in 64acc74.
17612 If a pad supports multiple set of capsfeatures, it needs to add
17613 multiple equal structures with different feature sets to the caps.
17614 Because caps structures with the same name but with a non-equal
17615 set of caps features are not compatible.
17616 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
17617 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17619 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
17621 * gst/vaapi/gstvaapisink.c:
17622 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
17623 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17624 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17625 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17627 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
17629 * gst/vaapi/gstvaapipluginbase.c:
17630 vaapipluginbase: Override downstream allocation reply if no pool
17631 If the downstream replied without a pool, then override it.
17632 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17634 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17636 * gst/vaapi/gstvaapipostproc.c:
17637 * gst/vaapi/gstvaapipostproc.h:
17638 vaapipostproc: add color balance interface
17639 https://bugzilla.gnome.org/show_bug.cgi?id=720376
17641 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17643 * gst-libs/gst/vaapi/gstvaapifilter.c:
17644 * gst-libs/gst/vaapi/gstvaapifilter.h:
17645 * gst/vaapi/gstvaapipostproc.c:
17646 * gst/vaapi/gstvaapipostproc.h:
17647 vaapipostproc: add skin tone enhancement
17648 Added the 'skin-tone-enhancement' property to vaapostproc.
17649 https://bugzilla.gnome.org/show_bug.cgi?id=744088
17651 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17653 * docs/reference/libs/libs-docs.xml.in:
17654 doc: add VA-API reference in freedesktop
17656 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17658 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17659 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17660 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17661 patches/videoparsers: rebase all the h264parse patches
17662 In order to avoid the creation of .orig files and break the distcheck target
17664 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17666 * ext/libvpx/Makefile.am:
17667 build: don't build in parallel libvpx
17668 This fixes the distcheck -j XX target.
17670 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17672 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17673 encoder: jpeg: Fix the packed header generation
17674 This is a work-around to satisfy the va-intel-driver.
17675 Normalize the quality factor and scale QM values (only for packed header
17676 generation) similar to what VA-Intel driver is doing . Otherwise the
17677 generated packed headers will be wrong, since the driver itself is
17678 scaling the QM values using the normalized quality factor.
17679 https://bugzilla.gnome.org/show_bug.cgi?id=748335
17680 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17682 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17684 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17685 decoder: h264: fix uninitialized variables in avcC mode.
17686 Fix uninitialized variables when decoding SPS and PPS NAL units from
17687 "codec-data" buffers. This is particularly important when seeking ops
17688 are involved, and the new persistent states are used more often.
17689 https://bugzilla.gnome.org/show_bug.cgi?id=750094
17691 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17693 * gst/vaapi/gstvaapidecode.c:
17694 vaapidecode: remove unneeded casting
17695 And a code-style fix
17697 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17699 * gst/vaapi/gstvaapidecode.c:
17700 vaapidecode: calculate decoding latency
17701 This is a naïve approach to the calculation of the VA-API decoding latency. It
17702 takes into consideration when the frame-rate has some insane value.
17703 https://bugzilla.gnome.org/show_bug.cgi?id=740419
17705 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
17708 configure: Compiling against libgstgl requires libgstvideo
17709 Fix detection of the GstGL helper headers in uninstalled
17712 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17714 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17715 encoder: hevc: Fix the size over-flow for encoded buffer.
17716 The approximation of 6 times compression ratio migh not
17717 work in all cases. Especially when enabling I frames.
17718 Provide large enough size for coded-buffer creation.
17720 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17722 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17723 encoder: vp8: Fix the size over-flow for encoded buffer.
17724 The approximation of 4 times compression ratio will not
17725 work in all cases. Especially when enabling I frames.
17726 Provide large enough size for coded-buffer creation.
17728 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17730 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17731 encoder: hevc: fix bug in multi slice encoding.
17732 This is a work-around for satisfying the VA-Intel driver.
17733 The driver only support slices begin from CTU row start address.
17734 Multi-Slice encoding also requires a fix in va-intel-driver:
17735 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
17736 https://bugzilla.gnome.org/show_bug.cgi?id=749854
17737 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17739 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17741 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17742 decoder: h264: add initial support for loss of pictures.
17743 Implement decoding process for gaps in frame_num (8.5.2). This
17744 also somewhat supports unintentional loss of pictures.
17745 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17746 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17747 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
17748 [fixed derivation of POC, ensured clone is valid for reference,
17749 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
17750 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17752 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17754 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17755 decoder: h264: add support for missing first field.
17756 Try to identify missing first fields too, thus disregarding any
17757 intermediate gaps in frames. We also assume that we keep the same
17758 field sequence, i.e. if previous frames were in top-field-first
17759 (TFF) order, then so are subsequent frames.
17760 Note that insertion of dummy first fields need to operate in two
17761 steps: (i) create the original first field that the current field
17762 will inherit from, and (ii) submit that field into the DPB prior
17763 to initializing the current (other) field POC values but after any
17764 reference flag was set. i.e. copy reference flags from the child
17765 (other field) to the parent (first field).
17766 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17768 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17770 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17771 decoder: h264: add support for missing second field.
17772 Interlaced H.264 video frames always have two fields to decode and
17773 display. However, in some cases, e.g. packet loss, one of the field
17774 can be missing. This perturbs the reference picture marking process,
17775 whereby the number of references available in DPB no longer matches
17776 the expected value.
17777 This patch adds initial support for missing field within a decoded
17778 frame. The current strategy taken is to find out the nearest field,
17779 by POC value, and with the same parity.
17780 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17782 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17784 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17785 decoder: h264: improve tracking of "top-field-first" flag.
17786 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
17787 does not mandate it. This will be useful for tracking missing fields, and
17788 also for more correct _split_fields() implementation for frames in the DPB.
17790 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17792 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17793 decoder: h264: skip all pictures prior the first I-frame.
17794 Don't try to decode pictures until the first I-frame is received within
17795 the currently active sequence. There is no point is decoding and then
17796 displaying frames with artifacts.
17798 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17800 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17801 decoder: h264: fix processing of EOSEQ NAL.
17802 Fix decoding of end_of_seq() NAL unit so that to not submit the current
17803 picture for decoding again. This is pretty vintage code that dates back
17804 before the existing of the whole decoder units machinery.
17805 One issue that could be arising if that code was kept is that we could
17806 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
17807 Once without the decode_only flag set, and once with that flag set. The
17808 end result is that the GstVideoDecoder would release the codec frame
17809 twice, thus releasing stale data.
17810 In short, the piece of code that is removed by this patch is for once
17811 completely obsolete for a while, and secondly error-prone in corner
17814 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
17816 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17817 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17818 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17819 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17820 decoder: add utility function to clone picture objects.
17821 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17822 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
17823 [added cosmetic changes, fixed propagation of "one-field" flag to
17824 children, fixed per-codec clone modes (h264)]
17825 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17827 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
17829 * gst/vaapi/Makefile.am:
17830 build: don't compile HEVC encoder if not supported
17832 (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
17833 https://bugzilla.gnome.org/show_bug.cgi?id=749954
17834 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17835 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17837 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
17839 * gst-libs/gst/vaapi/gstvaapicompat.h:
17840 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17841 HEVC: decode: add missing va_dec_hevc header
17842 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17843 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17844 https://bugzilla.gnome.org/show_bug.cgi?id=749953
17846 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17848 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17849 mpeg2: fix PTS cache for GOP start.
17850 If the GOP temporal sequence number (TSN) is interpolated from a valid
17851 PTS, then we need to compensate that PTS corresponding to the start of
17852 GOP with the next picture to be decoded, which shall be an I-frame,
17853 based on its sequence number.
17854 https://bugzilla.gnome.org/show_bug.cgi?id=748676
17856 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17858 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17859 mpeg2: avoid crash when seeking with debug logs
17860 Move down the debug message when the state of the decoder is verified
17861 so the slice header is not NULL.
17863 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
17865 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17866 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
17867 Reset state and add some checks for safe state to avoid a crash and
17868 a warning after the decoder is destroyed/recreated during a seek.
17870 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17872 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17873 * patches/videoparsers/series.frag:
17874 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
17875 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17877 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17879 * ext/codecparsers:
17880 codecparsers: Update to gst-vaapi-branch commit 20ee952
17881 b7dded3: h264parse: don't consider unknown stream-format as avc
17882 5110ad9: h264parse: fix up handling of input caps corner cases
17883 e51db3e: h264parse: Remove dead code
17884 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
17885 8482957: h265parse: Fix profile, tier and level setting in caps
17886 4649acb: h265parse: Fix the memory freeing of stored VPS nals
17887 f2beeb7: h265parse: Fix source caps to report cropped dimensions
17888 6886a31: h264parse: Fix profile and level setting in caps
17889 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
17890 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
17891 53074fc: build: Upgrade GStreamer dependency to 1.0
17892 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17894 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17896 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17897 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
17898 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17900 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17902 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17903 HEVC: decode: Update Cropping Rectangle
17904 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17906 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17908 * gst/vaapi/Makefile.am:
17909 * gst/vaapi/gstvaapi.c:
17910 * gst/vaapi/gstvaapiencode_h265.c:
17911 * gst/vaapi/gstvaapiencode_h265.h:
17912 HEVC_Encode: Add HEVC(h265) Encoder plugin
17913 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17914 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17916 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17918 * gst-libs/gst/vaapi/Makefile.am:
17919 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17920 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
17921 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
17922 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17923 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17925 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17928 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
17929 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17930 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17932 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17934 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
17935 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
17936 gstvaapiutils_h265: Add H265 Tier specific utility functions
17937 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
17938 -- New API: gst_vaapi_utils_h265_get_tier_string()
17939 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17940 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17942 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17944 * docs/reference/plugins/Makefile.am:
17945 doc: conditional linking for scanner
17946 Add x11 library only if it is enabled.
17947 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17949 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17951 * docs/reference/plugins/plugins.types:
17952 doc: fix scanner compilation warning
17953 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17955 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17957 * docs/reference/libs/libs-docs.xml.in:
17958 * docs/reference/libs/libs-sections.txt:
17959 doc: update sections and symbols
17960 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17962 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17966 * debian.upstream/Makefile.am:
17967 * docs/Makefile.am:
17968 * docs/reference/Makefile.am:
17969 * docs/reference/libs/Makefile.am:
17970 * docs/reference/plugins/Makefile.am:
17972 * ext/libvpx/Makefile.am:
17974 * gst-libs/Makefile.am:
17975 * gst-libs/gst/Makefile.am:
17976 * gst-libs/gst/base/Makefile.am:
17977 * gst-libs/gst/codecparsers/Makefile.am:
17978 * gst-libs/gst/vaapi/Makefile.am:
17980 * gst/vaapi/Makefile.am:
17981 * patches/Makefile.am:
17982 * patches/videoparsers/Makefile.am:
17983 * pkgconfig/Makefile.am:
17984 * tests/Makefile.am:
17986 This patch handles dinamically the gitignore files with git.mk[1].
17987 Removed the automake variable MAINTAINERCLANFILES in most of the
17988 Makefile.am files since now it is handled by the top one.
17989 1. https://github.com/behdad/git.mk/blob/master/git.mk
17990 https://bugzilla.gnome.org/show_bug.cgi?id=749321
17992 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17994 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17995 wayland: sync() when destroy()
17996 Before pushing a the new frame, the render() method calls sync() to flush the
17997 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
17998 to a memory leak too.
17999 This patch calls sync() in the destroy() to flush the pending frames before
18000 destroying the window.
18001 Also a is_cancelled flag is added. This flag tells to not flush the event
18002 queue again since the method failed previously or were cancelled by the user.
18003 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18005 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
18007 * gst-libs/gst/vaapi/gstvaapiwindow.c:
18008 * gst-libs/gst/vaapi/gstvaapiwindow.h:
18009 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
18010 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18011 * gst/vaapi/gstvaapisink.c:
18012 vaapisink: implement unlock/unlock_stop for wayland
18013 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
18014 shutting down. This can happen e.g. if the wayland compositor exits while
18015 the pipeline is running.
18017 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
18018 * splitted the patch removing wl_display_dispatch_queue()
18019 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18020 https://bugzilla.gnome.org/show_bug.cgi?id=747492
18021 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18023 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18026 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18027 wayland: wl_display_dispatch_queue() can block forever.
18028 wl_display_dispatch_queue() might prevent the pipeline from shutting
18029 down. This can happen e.g. if the wayland compositor exits while the
18030 pipeline is running.
18031 This patch replaces it with these steps:
18032 - With wl_display_prepare_read() all threads announce their intention
18034 - wl_display_read_events() is thread save. On threads reads, the other
18035 wait for it to finish.
18036 - With wl_display_dispatch_queue_pending() each thread dispatches its
18038 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
18039 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
18040 * stripped out the unlock() unlock_stop() logic
18041 * stripped out the poll handling
18042 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18043 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18044 https://bugzilla.gnome.org/show_bug.cgi?id=747492
18046 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18048 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18049 wayland: rename frame for last_frame
18050 Since frame in the private data means the last frame sent, it would
18051 semantically better use last_frame.
18052 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
18054 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18056 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18058 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18059 wayland: use a counter as sync flag
18060 Wayland window has a pointer to the last pushed frame and use it to set the
18061 flag for stopping the queue dispatch loop. This may lead to memory leaks,
18062 since we are not keeping track of all the queued frames structures.
18063 This patch removes the last pushed frame pointer and change the binary flag
18064 for an atomic counter, keeping track of number of queued frames and use it for
18065 the queue dispatch loop.
18066 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18068 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18070 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18071 wayland: decouple wl_buffer from frame
18072 This patch takes out the wayland's buffer from the the frame structure. The
18073 buffer is queued to wayland and destroyed in the "release" callback. The
18074 frame is freed in the surface's "done" callback.
18075 In this way a buffer may be leaked but not the whole frame structure.
18076 - surface 'done' callback is used to throttle the rendering operation and to
18077 unallocate the frame, but not the buffer.
18078 - buffer 'release' callback is used to destroy wl_buffer.
18079 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
18081 * kept the the event_queue for buffer's proxy
18082 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18083 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18085 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18087 * gst/vaapi/gstvaapisink.c:
18088 vaapisink: fix indentation
18090 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18092 * debian.upstream/Makefile.am:
18093 * ext/libvpx/Makefile.am:
18094 * gst-libs/gst/vaapi/Makefile.am:
18095 * gst/vaapi/Makefile.am:
18096 * tests/Makefile.am:
18097 build: fix make distcheck
18098 This patch fixes several issues found when running the `make distcheck`
18100 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
18102 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
18104 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
18105 - The make target distcleancheck failed because some autogenerated files
18106 were not handled with the DISTCLEANFILES variable.
18107 Note: `make distcheck -jXX` is not currently supported.
18109 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18111 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
18112 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
18113 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
18114 h264parse: update patches with upstream
18115 These patches didn't applied cleanly, breaking the `make distcleancheck`
18116 target. Re-sync'ed the patches against the current git's submodule.
18118 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18120 * tests/simple-encoder.c:
18121 tests: simple-encoder: fix build warnings on 64-bit platforms.
18122 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
18123 importantly fix warnings spitted out during build on 64-bit platforms.
18124 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
18125 g_warning ("Invalid VAAPI buffer size (%d)", size);
18127 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
18128 g_warning ("Failed to create output buffer of size %d", size);
18131 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18133 * gst/vaapi/gstvaapipluginbase.c:
18134 * gst/vaapi/gstvaapipluginutil.c:
18135 * gst/vaapi/gstvaapipluginutil.h:
18136 * gst/vaapi/gstvaapivideocontext.h:
18137 plugins: remove gstreamer-0.10 crumbs
18138 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
18139 Still, its definition was still in the code. This patch removes it.
18140 https://bugzilla.gnome.org/show_bug.cgi?id=749113
18142 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18144 * tests/Makefile.am:
18145 * tests/simple-encoder.c:
18146 * tests/y4mreader.c:
18147 * tests/y4mreader.h:
18148 tests: add simple-encoder program
18149 This patch adds a simple-encoder test program that uses libgstvaapi for video
18150 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
18151 format. That can be from a regular file or standard input when the input
18153 Usage: simple-encoder [options]* <source>
18155 --output|-o output file name
18156 --codec|-c codec to use for video encoding
18157 --bitrate|-b desired bitrate (kbps)
18158 By default, and as an initial patch, the encoded stream shall conform to the
18159 minimally supported profile. That is "Constrained Baseline Profile" for H.264
18160 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
18161 generated by libgstvaapi.
18162 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
18163 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
18164 * general code clean-up
18165 * removed the yuv reader thread
18166 * re-wrote the y4m file parser
18167 * updated used API fixed some wrong usage
18168 * fixed a lot of memory leaks
18169 * added the bitrate setting
18170 * keep fps' numerator and denominator
18171 * simplified the thread control
18172 * removed custom logging and use glib
18173 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18174 https://bugzilla.gnome.org/show_bug.cgi?id=719528
18176 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18178 * gst-libs/gst/vaapi/gstvaapiencoder.h:
18179 libs: trivial documentation fix
18180 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
18181 are not errors, so they do not have the ERROR namespace.
18182 This patch fixes this typo in documentation.
18184 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
18186 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
18187 window: Correct prototype to match implementation
18188 On s390x, guintptr and GstVaapiID are not compatible types. The
18189 implementation of gst_vaapi_window_new_internal() and all its callers
18190 seem to assume that its third argument is a GstVaapiID, while the
18191 header gives it guintptr type.
18192 https://bugzilla.gnome.org/show_bug.cgi?id=744559
18194 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18196 * gst/vaapi/gstvaapidecode.c:
18197 * gst/vaapi/gstvaapidecodebin.c:
18198 vaapidecode: add guards for disabled codecs.
18199 Fix link when building plugin elements without HEVC support. e.g. don't
18200 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
18201 support HEVC enabled in libgstvaapi.
18202 Also, drop disabled codecs from static template caps. Add the missing
18203 HEVC static template caps into vaapidecodebin too.
18205 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18208 * gst-libs/gst/vaapi/glibcompat.h:
18209 build: upgrade glib dependency to 2.32
18210 Since bug #745728 was fixed the oldest supported version of GStreamer is
18211 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
18213 This patch changes the required version of glib in configure.ac and removes
18214 the hacks in glibcompat.h
18215 https://bugzilla.gnome.org/show_bug.cgi?id=748698
18217 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18219 * gst/vaapi/gstvaapipluginbase.c:
18220 plugins: check if the pool config is already set
18221 In commit 97b768, a regression for GStreamer 1.2 was introduced:
18222 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
18223 config option is already set. This patch adds an inline function to
18224 first verify if the option is not in the pool config berfore add it.
18226 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18228 * gst/vaapi/gstvaapipostproc.c:
18229 vaapipostproc: tune up a couple of log messages
18230 In order to reduce the noise, the query type log was downgrade from INFO to
18231 DEBUG, and the shared display address log message is assigned to the object.
18233 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18235 * gst/vaapi/gstvaapipluginbase.c:
18236 plugins: check gst_buffer_pool_set_config()
18237 Check the return value of gst_buffer_pool_set_config(). If it fails an error
18238 message is posted in the bus.
18240 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18242 * gst/vaapi/gstvaapipluginbase.c:
18243 plugins: more specific log message
18244 Be more specific in the log message about the reason of creating a new pool.
18246 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18248 * gst/vaapi/gstvaapipluginbase.c:
18249 plugins: delete unused variable
18250 need_pool is a boolean variable extracted from the allocation query, but it is
18251 not used afterwards.
18253 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
18255 * gst/vaapi/gstvaapipluginbase.c:
18256 vaapipluginbase: Update the pool if there was no pool in the downstream reply
18257 Fix regression introduced by bd866479, the query after decide_allocation()
18258 always needs a pool in the first slot.
18259 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18260 https://bugzilla.gnome.org/show_bug.cgi?id=748559
18262 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
18264 * gst/vaapi/gstvaapivideobufferpool.c:
18265 videopool: Free members before chaining up finalize
18266 The finalize function in GObject frees the object memory, so
18267 everything else needs to have been freed before.
18268 https://bugzilla.gnome.org/show_bug.cgi?id=748563
18270 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
18272 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
18273 wayland: don't leak the registry proxy
18274 Release the registry proxy when closing the display.
18275 https://bugzilla.gnome.org/show_bug.cgi?id=748564
18277 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18279 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18280 wayland: refactor _sync() method and rename callback
18281 This patch only intends to improve readability: in the method
18282 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
18284 Also renames the frame_redraw_callback() callback into frame_done_callback(),
18285 which is a bit more aligned to Wayland API.
18287 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18289 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18290 wayland: free frame in buffer release callback
18291 The Wayland compositor may still use the buffer when the frame done
18292 callback is called.
18293 This patch destroys the frame (which contains the buffer) until the
18294 release callback is called. The draw termination callback only controls
18295 the display queue dispatching.
18296 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18297 https://bugzilla.gnome.org/show_bug.cgi?id=747492
18299 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18301 * gst/vaapi/gstvaapidecode.c:
18302 vaapidecode: refactor gst_vaapidecode_internal_flush()
18303 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
18304 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
18305 shares the same error message of gst_vaapidecode_internal_flush() when flush
18308 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18310 * gst/vaapi/gstvaapidecode.c:
18311 vaapidecode: refactor gst_vaapidecode_destroy()
18312 Add the method gst_vaapidecode_purge(). This method releases the
18313 flushed frames from the decoder.
18314 This new method add more readablity to gst_vaapidecode_destroy()
18316 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
18318 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18319 * gst/vaapi/gstvaapidecode.c:
18320 vaapidecode: Tell the base class about released frames on close
18321 The base class needs to be informed about frames that were still queued
18322 in the decoder on release, otherwise they are leaked.
18323 https://bugzilla.gnome.org/show_bug.cgi?id=747999
18325 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18327 * gst/vaapi/gstvaapidecode.c:
18328 vaapidecode: reduce logging noise
18329 When a frame is rejected by downstream, the message is logged twice. This
18330 patch removes one of those logging messages.
18331 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
18332 the log message from error to info.
18334 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
18336 * gst/vaapi/gstvaapidecode.c:
18337 vaapidecode: Use the GstVideoDecoder error reporting function
18338 This way, the decoder won't stop on the first decoding error,
18339 in most cases it can recover after some glitchiness.
18340 https://bugzilla.gnome.org/show_bug.cgi?id=744620
18342 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
18344 * gst/vaapi/gstvaapipluginbase.c:
18345 vaapipluginbase: The allocation query can return without a pool
18346 It is possible to return the min/max/size without actually providing
18347 a pool. This way the source knows how many buffers downstream needs.
18348 https://bugzilla.gnome.org/show_bug.cgi?id=748076
18350 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18353 * gst/vaapi/Makefile.am:
18354 * gst/vaapi/gstvaapiparse.c:
18355 * gst/vaapi/gstvaapiparse.h:
18356 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
18357 * patches/videoparsers/series.frag:
18358 plugins: Add h265 videoparser element "vaapiparse_h265"
18359 This is a mirror of h265parse element in upstream gst-plugins-bad.
18360 There could be additional patches but all should go to upstream.
18361 This is for making development faster.
18362 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
18364 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18366 * ext/codecparsers:
18367 codecparsers: Update to gst-vaapi-branch commit 43a0368
18368 45f1c28: codecparser: h265: Fix nal unit size checking
18369 f25987b: codecparser: h265: Calculate crop rectangle dimensions
18370 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
18371 4c8ec41: Add h265 videoparser plugin source files
18373 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18376 autogen: drop videoutils submodule.
18378 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18380 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18381 decoder: hevc: cosmetics.
18382 Mostly coding style updates. Avoid integer signess inconsistencies.
18383 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
18385 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18387 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18388 decoder: hevc: Add Support for tiled video decoding
18389 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
18390 the tile column width and tile row height should be calculated.
18391 Equations: 6-1, 6-2
18392 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
18394 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18396 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18397 decoder: hevc: Fix decoding when there are RASL pictures present.
18398 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
18399 -- Fix PicOutputFlag setting for RASL picture
18400 -- Fix prev_poc_lsb/prev_poc_msb calculation
18401 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
18402 -- Fixed couple of crashes and added cosmetics
18404 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
18406 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
18407 display: drm: fix race condition setting device type
18408 There is a race condition where g_drm_device_type can be left set to
18409 DRM_DEVICE_RENDERNODES when it shouldn't.
18410 If thread 1 comes in and falls into the last else statement setting up both
18411 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
18412 it sets g_drm_device_type = RENDERNODES.
18413 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
18414 up that type to be tried but then encounters the lock and has to wait until the
18415 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
18416 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
18417 attempts will only try RENDERNODES.
18418 So to avoid this situation I have simply moved the acquisition of the lock higher
18419 up in the attached patch.
18420 https://bugzilla.gnome.org/show_bug.cgi?id=747914
18422 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
18424 * gst/vaapi/gstvaapipostproc.c:
18425 vaapipostproc: Don't create filter on caps query
18426 The problem with this is that creating the filter causes the display to
18427 be selected, and the caps query happens while linking the element. So,
18428 if the downstream or upstream element is using a specific display
18429 object, it won't be propagated correctly to the postproc as it already
18430 has a display at this point.
18431 https://bugzilla.gnome.org/show_bug.cgi?id=747945
18433 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
18435 * gst-libs/gst/vaapi/gstvaapivideopool.c:
18436 videopool: Release lock while allocating new object
18437 The video pool can be accessed with the display lock held, for example,
18438 when releasing a buffer from inside vaapisink_render, but allocating
18439 a new object can may also take the display lock. Which means a possible
18441 https://bugzilla.gnome.org/show_bug.cgi?id=747944
18443 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18445 * gst/vaapi/gstvaapisink.c:
18446 vaapisink: use GstVideoSink vmethod show_frame()
18447 vaapisink inherits from GstVideoSink, in order to use its functionality (such
18448 as ::show-preroll-frame property), we should use its vmethod show_frame(),
18449 rather than call ourselves render() and preroll().
18451 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18453 * gst/vaapi/gstvaapisink.c:
18454 * gst/vaapi/gstvaapisink.h:
18455 vaapisink: add 'handoff' signal
18456 This patch adds the signal ::handoff and the property signal-handoffs. If the
18457 property is set TRUE, the signal ::handoff is emitted just after the buffer is
18459 Based on Zhao Halley <halley.zhao@intel.com>
18460 https://bugzilla.gnome.org/show_bug.cgi?id=747905
18462 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18464 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18465 HEVC: silence the compiler
18466 Fixed a couple of clang complains.
18468 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18470 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18471 wayland: destroy vpp buffer pool on resize
18472 Otherwise the old buffers with the old size are used.
18473 https://bugzilla.gnome.org/show_bug.cgi?id=747491
18475 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18478 * gst-libs/gst/vaapi/Makefile.am:
18479 build: don't compile HEVC if not supported
18480 HEVC decoding was added recently libva-1.5.
18481 This patch avoids HEVC decoding support in libgstvaapi if it is not available
18482 in the installed libva.
18483 https://bugzilla.gnome.org/show_bug.cgi?id=747831
18485 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18487 * gst/vaapi/gstvaapidecode.c:
18488 vaapidecode: Update Author name in plugin metadata
18490 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18492 * gst/vaapi/gstvaapidecode.c:
18493 plugins: Add HEVC decoder
18494 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18496 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18498 * gst-libs/gst/vaapi/Makefile.am:
18499 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18500 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
18501 HEVC: Add HEVC(h265) decoder to core libgstvaapi
18502 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18504 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18506 * gst-libs/gst/vaapi/Makefile.am:
18507 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
18508 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
18509 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
18510 HEVC: Add codec utility methods to core libgstvaapi
18511 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18513 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18515 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18516 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18517 HEVC: gstvaapiprofile: Add profile definitions
18518 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18520 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18523 HEVC: build: Check availability of h265 decoder APIs
18524 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18526 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18530 * gst-libs/gst/codecparsers/Makefile.am:
18531 HEVC: Allow to build h265 codecparser internally
18532 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18534 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18536 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18537 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
18538 * gst-libs/gst/vaapi/gstvaapisurface.c:
18539 guard buffer export API if not available
18540 The support for buffer exports in VA-API was added in version 0.36. These
18541 interfaces are for interop with EGL, OpenCL, etc.
18542 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
18543 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
18544 This patch guards all the buffer exports handling (and dmabuf allocator) if
18545 the detected VA-API version is below 0.36.
18546 https://bugzilla.gnome.org/show_bug.cgi?id=746405
18548 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18550 * ext/codecparsers:
18551 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
18552 767bf22: codecparsers: h265: add helpers to convert quantization matrices
18553 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
18554 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
18555 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
18556 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
18558 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18560 * gst/vaapi/gstvaapidecode.c:
18561 vaapidecode: unref video codec frame twice
18562 We get one reference when the frame is passed to decode_handle_frame()
18563 and create another one in gst_vaapi_decoder_push_frame().
18564 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
18565 Here the frame is always released twice:
18566 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
18567 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
18568 In gst_vaapidecode_reset_full() both references to the frame must be
18570 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18571 https://bugzilla.gnome.org/show_bug.cgi?id=743226
18573 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18575 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18576 libs: remove unused variables
18577 clang reports these unused variables. Let's get rid of them.
18578 This patch is a missing part of commit c82e5173
18579 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18581 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18583 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18584 decoder: mpeg4: remove an spurious comparison
18585 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
18586 less than zero. Hence this pre-condition test is a no-op. This patch removes
18588 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18590 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18592 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18593 encoder: h264: casts slice_param->slice_type
18594 slice_type in slice_param is defined as (char *), but it is compared against a
18595 signed integer. clang complains about this comparison.
18596 This patch casts the variable.
18597 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18599 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18601 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18602 encoder: avoid GstVaapiCodedBuffer redefinition
18603 The symbol GstVaapiCodedBuffer is already defined in
18604 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
18605 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
18606 This patch removes that redefinition.
18607 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18609 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18611 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18612 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18613 libs: remove unused variables
18614 clang reports these unused variables. Let's get rid of them.
18615 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18617 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18619 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18620 encoder: mpeg2: use fabsf() instead of abs()
18621 The member value in frame_rate_tab is float, the result of the abs() function
18622 should be float too. But abs() only manages integers.
18623 This patch replaces abs() with fabsf() to handle correctly the possible floats
18625 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18627 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18629 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18630 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18631 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18632 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18633 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18634 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
18635 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
18636 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
18637 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18639 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18644 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18648 Changing source code download links from https://gitorious to https://github
18649 -- gitmodules: Change gstreamer-codecparsers submodule source download link
18650 -- README: Change the gstreamer-vaapi webpage link
18652 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18654 * ext/codecparsers:
18655 codecparsers: update to gst-vaapi-branch commit 1f792e4
18656 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
18657 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
18658 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
18659 2b92a67: h264parse: reset the parser information when caps changes
18660 05eee86: codecparsers: Indent file
18661 e27a38b: codecparsers: Add READ_UE_MAX macro
18662 2036471: Constify some static arrays everywhere
18664 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18666 * gst/vaapi/gstvaapivideoconverter_glx.c:
18667 * gst/vaapi/gstvaapivideoconverter_x11.c:
18668 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
18670 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18672 * gst/vaapi/gstvaapidecode.c:
18673 * gst/vaapi/gstvaapidecodebin.c:
18674 * gst/vaapi/gstvaapiencode_h264.c:
18675 * gst/vaapi/gstvaapiencode_jpeg.c:
18676 * gst/vaapi/gstvaapiencode_mpeg2.c:
18677 * gst/vaapi/gstvaapiencode_vp8.c:
18678 * gst/vaapi/gstvaapipluginbase.c:
18679 * gst/vaapi/gstvaapipluginutil.c:
18680 * gst/vaapi/gstvaapipluginutil.h:
18681 * gst/vaapi/gstvaapipostproc.c:
18682 * gst/vaapi/gstvaapisink.c:
18683 * gst/vaapi/gstvaapivideobuffer.c:
18684 * gst/vaapi/gstvaapivideobufferpool.c:
18685 * gst/vaapi/gstvaapivideocontext.c:
18686 * gst/vaapi/gstvaapivideocontext.h:
18687 * gst/vaapi/gstvaapivideoconverter_glx.h:
18688 * gst/vaapi/gstvaapivideoconverter_x11.h:
18689 * gst/vaapi/gstvaapivideomemory.h:
18690 * gst/vaapi/gstvaapivideometa_texture.c:
18691 Removal of gstreamer-1.0 support
18692 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
18693 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
18694 This patch removes all the pre-processor conditional code compilation guarded
18696 Thus, all the video converters were removed too.
18697 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18698 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18699 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18701 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18703 * gst-libs/gst/vaapi/gstcompat.h:
18704 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18705 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18706 * gst-libs/gst/vaapi/sysdeps.h:
18707 * gst/vaapi/gstcompat.h:
18708 * gst/vaapi/gstvaapi.c:
18709 * gst/vaapi/gstvaapidecode.c:
18710 * gst/vaapi/gstvaapidecodebin.c:
18711 * gst/vaapi/gstvaapiencode.c:
18712 * gst/vaapi/gstvaapiencode_h264.c:
18713 * gst/vaapi/gstvaapiencode_jpeg.c:
18714 * gst/vaapi/gstvaapiencode_mpeg2.c:
18715 * gst/vaapi/gstvaapiencode_vp8.c:
18716 * gst/vaapi/gstvaapiparse.c:
18717 * gst/vaapi/gstvaapipluginbase.c:
18718 * gst/vaapi/gstvaapipluginutil.c:
18719 * gst/vaapi/gstvaapipostproc.c:
18720 * gst/vaapi/gstvaapisink.c:
18721 * gst/vaapi/gstvaapiuploader.c:
18722 * gst/vaapi/gstvaapivideobuffer.c:
18723 * gst/vaapi/gstvaapivideobufferpool.c:
18724 * gst/vaapi/gstvaapivideocontext.c:
18725 * gst/vaapi/gstvaapivideoconverter_glx.c:
18726 * gst/vaapi/gstvaapivideoconverter_x11.c:
18727 * gst/vaapi/gstvaapivideomemory.c:
18728 * gst/vaapi/gstvaapivideometa.c:
18729 * gst/vaapi/gstvaapivideometa_texture.c:
18731 update and move gstcompat.h
18732 The purpose of gstcompat.h is to couple the API differences among
18733 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
18734 in this compatibility layer shall be removed.
18735 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
18736 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
18737 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
18738 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
18739 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
18740 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18741 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18742 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18744 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18747 * gst/vaapi/Makefile.am:
18748 autotools: remove gstreamer-1.0 support
18749 This patch only removes the support of gstreamer-1.0 in the autotools
18750 scripts. No other files are touched.
18751 In the automake file all the converters were deprecated.
18752 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18753 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18754 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18756 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18761 Remove the gstreamer-videoutils submodule
18763 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18766 * gst-libs/gst/Makefile.am:
18767 * gst-libs/gst/vaapi/Makefile.am:
18768 * gst-libs/gst/video/Makefile.am:
18769 * gst/vaapi/Makefile.am:
18770 * tests/Makefile.am:
18771 Remove libgstvaapi-videoutils.so
18772 This library was intended to add the base classes for video decoders which
18773 where not included in gstreamer-0.10.
18774 Since the support of gstreamer-0.10 is deprecated those classes are not
18775 required, thus the whole library is removed.
18776 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18777 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18778 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18780 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18783 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18784 * gst-libs/gst/vaapi/gstvaapiutils.c:
18785 * tests/test-subpicture.c:
18786 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
18787 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
18788 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
18789 deprecated these guards are not required.
18790 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18791 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18792 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18794 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18796 * gst-libs/gst/vaapi/gstcompat.h:
18797 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18798 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18799 * gst-libs/gst/vaapi/gstvaapiimage.c:
18800 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18801 * gst-libs/gst/vaapi/video-format.c:
18802 * gst-libs/gst/vaapi/video-format.h:
18803 * gst/vaapi/gstvaapi.c:
18804 * gst/vaapi/gstvaapidecode.c:
18805 * gst/vaapi/gstvaapidecodebin.c:
18806 * gst/vaapi/gstvaapidownload.c:
18807 * gst/vaapi/gstvaapidownload.h:
18808 * gst/vaapi/gstvaapiencode.c:
18809 * gst/vaapi/gstvaapiencode_h264.c:
18810 * gst/vaapi/gstvaapiencode_jpeg.c:
18811 * gst/vaapi/gstvaapiencode_mpeg2.c:
18812 * gst/vaapi/gstvaapiencode_vp8.c:
18813 * gst/vaapi/gstvaapiparse.c:
18814 * gst/vaapi/gstvaapipluginbase.c:
18815 * gst/vaapi/gstvaapipluginbase.h:
18816 * gst/vaapi/gstvaapipluginutil.c:
18817 * gst/vaapi/gstvaapipluginutil.h:
18818 * gst/vaapi/gstvaapipostproc.c:
18819 * gst/vaapi/gstvaapisink.c:
18820 * gst/vaapi/gstvaapiupload.c:
18821 * gst/vaapi/gstvaapiupload.h:
18822 * gst/vaapi/gstvaapiuploader.c:
18823 * gst/vaapi/gstvaapivideobuffer.c:
18824 * gst/vaapi/gstvaapivideoconverter_glx.c:
18825 * gst/vaapi/gstvaapivideoconverter_x11.c:
18826 * gst/vaapi/gstvaapivideometa.c:
18827 * gst/vaapi/gstvaapivideometa.h:
18828 * tests/test-filter.c:
18829 * tests/test-subpicture.c:
18830 Removal of gstreamer-0.10 support
18831 This patch removes all the pre-processor conditional code compilation guarded
18832 for gstreamer-0.10.
18833 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18834 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18835 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18837 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18840 * debian.upstream/control.in:
18841 * gst-libs/gst/video/Makefile.am:
18842 * gst/vaapi/Makefile.am:
18843 autotools: remove gstreamer-0.10 support
18844 This patch only removes the support of gstreamer-0.10 in the autotools
18845 scripts. No other files are touched.
18846 The configuration parameter --gstreamer-api was deleted since now it is always
18848 The verification of vmethod query in GstBaseSinkClass was removed since it was
18849 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
18851 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
18853 The automake files were changed accordingly.
18854 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
18855 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18856 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18857 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18859 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18861 * gst/vaapi/gstvaapidecode.c:
18862 vaapidecode: add drain() vmethod
18863 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
18864 class. This patch implements this new method.
18865 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18866 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18867 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18869 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18871 * gst/vaapi/gstvaapidecode.c:
18872 vaapidecode: remove vmethod reset()
18873 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
18874 this patch removes the method reset() which was deprecated in GStreamer 1.2.
18875 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18876 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18877 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18879 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18881 * gst/vaapi/gstvaapidecode.c:
18882 vaapidecode: handle flush() vmethod
18883 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
18884 and flush() was added.
18885 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
18886 superior. Otherwise, reset() is set.
18887 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
18888 was renamed to gst_vaapidecode_internal_flush().
18889 2) The new vmethod flush() always do a hard full reset.
18890 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
18891 gather all collected data with gst_video_decoder_have_frame()
18892 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18893 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18894 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18896 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18898 * gst/vaapi/gstvaapidecode.c:
18899 vaapidecode: call the correct query function
18900 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
18901 a bug was introduced: when calling the parent's query function of the
18902 src pad, the one of the sink pad is called instead. This patch fixes
18904 https://bugzilla.gnome.org/show_bug.cgi?id=746248
18906 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18909 gitmodules: Use https:// url instead of git:// for submodules.
18910 Gitorious is failing to clone repositories over git:// url.
18912 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
18914 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18915 vaapidisplay: mark X11 display as compatible with EGL
18916 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
18917 gst-launch-1.0 ... ! vaapidecode ! glimagesink
18918 https://bugzilla.gnome.org/show_bug.cgi?id=745902
18919 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18921 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
18923 * gst/vaapi/gstvaapidecode.c:
18924 vaapidecode: Don't crash if a buffer outlives the decoder
18925 Sometimes, for example, when switching video streams but keeping
18926 the same sink, the surface will be released after the decoder is
18927 stopped and replaced. This caused a crash because the release
18928 callback was called on an invalid pointer.
18929 The patch adding an additional reference to the decoder object in the buffer.
18930 https://bugzilla.gnome.org/show_bug.cgi?id=745189
18931 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
18932 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18934 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18936 * gst/vaapi/gstvaapidecode.c:
18937 vaapidecode: clean-ups (indentation, drop unused variables)
18939 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18941 * gst/vaapi/gstvaapidecode.c:
18942 vaapidecode: use the query virtual methods in 1.4
18943 GstVideoDecoder, the base class of vaapidecode, added support for
18944 pad queries as virtual methods. This patch enables the use of that
18945 support, while keeping support for lower versions of gstreamer.
18946 This patch is important because GstVideoDecoder takes care of other
18947 queries that might be important in the pipeline managing.
18948 v2: 1) rebase to current master
18949 2) fix indentation with gst-indent
18950 3) simplify the patch layout
18951 4) fix the context query
18952 5) initialise the filter to NULL
18953 6) improve the query log message for gst-1.2
18954 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18956 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18958 * gst/vaapi/gstvaapipostproc.c:
18959 * gst/vaapi/gstvaapipostproc.h:
18960 vaapipostproc: always activate buffer pool
18961 The vaapipostproc has a proxy flag to know if the the buffer pool is
18962 already active. But this fails in some situations where it is needed
18963 to renegotiate the buffer pool.
18964 This patch removes that flag so the renegotiation is done whenever is
18966 https://bugzilla.gnome.org/show_bug.cgi?id=745535
18968 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18970 * gst/vaapi/gstvaapisink.c:
18971 vaapisink: fix minor memory leak in debug mode.
18972 The gst_video_colorimetry_to_string() function returns a newly created
18973 string that represents the GstVideoColorimetry value. So, that needs
18974 to be released after usage, in e.g. GST_DEBUG().
18976 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18978 * gst/vaapi/gstvaapidecodebin.h:
18979 vaapidecodebin: Avoid usage of "__" prefix in macro names
18980 Avoiding "__" prefix usage in Header File Guards as per
18981 C standard recommendation.
18983 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18985 * gst/vaapi/gstvaapi.c:
18986 plugins: Disable vaapidecodebin for GStreamer < 1.4
18987 There are autoplugging issues in GStreamer-1.2.
18988 Lets disable vaapidecodebin untill we get some workarounds for this.
18990 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18992 * gst/vaapi/Makefile.am:
18993 * gst/vaapi/gstvaapi.c:
18994 * gst/vaapi/gstvaapidecodebin.c:
18995 * gst/vaapi/gstvaapidecodebin.h:
18996 plugins: Add a vaapidecodebin element
18997 Add a "vaapidecodebin" element to vaapi plugins.
18998 Child Elements: "vaapidecode ! queue ! vaapipostproc"
18999 The Reasons for implementing a new bin element:
19000 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
19001 with out any dependency to upstream gstreamer.
19002 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
19003 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
19004 Also customers using older gstreamer versions (1.2 and 1.4) will get the
19005 benefit of autoplugging, hardware accelerated deinterlacing support etc.
19006 -- Help to maintain a single thread implementation in vaapidecode.
19007 This will result a dead-lock free vaapidecode in most of the cases.
19008 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
19009 https://bugzilla.gnome.org/show_bug.cgi?id=745216
19011 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19013 * gst/vaapi/gstvaapidecode.c:
19014 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
19016 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19018 * gst/vaapi/gstvaapidecode.c:
19019 * gst/vaapi/gstvaapidecode.h:
19020 vaapidecode: Switch back to Single thread implementation
19021 Because the decoder uses the thread from handle_frame() to decode a frame,
19022 the src pad task creates an unsolveable AB-BA deadlock between
19023 handle_frame() waiting for a free surface and decode_loop() pushing
19024 decoded frames out.
19025 Instead, have handle_frame() take responsibility for pushing surfaces,
19026 and remove the deadlock completely. If you need a separate thread
19027 downstream, you can insert a queue between vaapidecode and its downstream
19029 Another justification for the single thread implementation is,
19030 there are two many point of locking in gstreamer-vaapi's current
19031 implementation which can lead to deadlocks.
19032 https://bugzilla.gnome.org/show_bug.cgi?id=742605
19033 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19034 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19035 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19037 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19039 * gst/vaapi/gstvaapipluginbase.c:
19040 plugins: fix detection of upstream v4l2src element.
19041 Improve check for upstream element that requires DMABUF buffer pool,
19042 e.g. v4l2src element. In particular, make sure to traverse through
19043 any additional capsfilter for instance.
19044 Note: the traversal to the top-most upstream element could be made
19045 more generic, but we are insofar only interested in supporting pipes
19046 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
19047 specification for a desired video camera format, or resolution.
19049 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19051 * gst/vaapi/gstvaapivideomemory.c:
19052 plugins: fix allocation of DMABUF memory.
19053 The dmabuf allocator would close the DMABUF handle passed in the init
19054 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
19055 to avoid a double close, ultimately in the underlying driver that owns
19058 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19060 * gst/vaapi/gstvaapidecode.c:
19061 vaapidecode: keep src caps and output state in sync
19062 vaapidecode keeps an output state that use the format
19063 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
19064 for a correct negotiation.
19065 I don't see the rational behind this decoupling, it looks like
19066 unnecessary complexity. This patch simplify this logic keeping
19067 in sync the output state and the src caps.
19068 This patch improves the readability of the function
19069 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
19070 the patch validates if the buffer pool has the configuration for
19071 the GL texture upload meta, in order to set the caps feature
19072 meta:GLTextureUpload. Otherwise, the I420 format is set back.
19073 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19074 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19075 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19077 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19079 * gst/vaapi/gstvaapidecode.c:
19080 vaapidecode: upload meta only if feature and allocation
19081 When vaapidecode finishes the decoding of a frame and pushes it,
19082 if, in the decide_allocation() method, it is determined if the
19083 next element supports the GL texture upload meta feature, the
19084 decoder adds the buffer's meta.
19085 Nonetheless, in the same spirit of the commit 71d3ce4d, the
19086 determination if the next element supports the GL texture upload
19087 meta needs to check both the preferred caps feature *and* if the
19088 allocation query request the API type.
19089 This patch, first removes the unused variable need_pool, and
19090 determines the attribute has_texture_upload_meta using the
19091 preferred caps feature *and* the allocation query.
19092 Also, the feature passed to GstVaapPluginBase is not longer
19093 determined by has_texture_upload_meta, but by the computed
19095 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19096 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19097 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19099 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19101 * gst/vaapi/gstvaapidecode.c:
19102 * gst/vaapi/gstvaapidecode.h:
19103 * gst/vaapi/gstvaapipluginutil.c:
19104 * gst/vaapi/gstvaapipluginutil.h:
19105 vaapidecode: delayed src caps negotiation
19106 Currently the src caps are set immediately after the sink caps are set, but in
19107 that moment the pipeline might not fully constructed and the video sink has
19108 not negotiated its supported caps and features. As a consequence, in many cases
19109 of playback, the least optimized caps feature is forced. This is partially the
19110 responsible of bug #744039.
19111 Also, vaapidecode doesn't attend the reconfigure events from downstream,
19112 which is a problem too, since the video sink can be changed with different
19114 This patch delays the src caps, setting them until the first frame arrives to
19115 the decoder, assuming until that very moment the whole pipeline is already
19116 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
19117 as a consequence of a reconfiguration event from downstream.
19118 A key part of this patch is the new GstVaapiCapsFeature
19119 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
19120 doesn't have a peer yet. Also, for a better report of the caps allowed
19121 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
19122 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
19123 v3: move the input_state unref to close(), since videodecoder resets at
19124 some events such as navigation.
19125 v4: a) the state_changed() callback replaces the input_state if the media
19126 changed, so this case is also handled.
19127 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
19128 always the input_state, the parameter were removed.
19129 c) there were a lot of repeated code handling the input_state, so I
19130 refactored it with the function gst_vaapi_decode_input_state_replace().
19131 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19132 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19133 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19135 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19137 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19138 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
19139 encoder: h264: add support for more than 2 views
19140 Add support for H.264 MVC Multiview High profile encoding with
19141 more than 2 views. All views within the same accesss unit are
19142 provided in increasing order of view order index (VOIdx).
19143 Upto 10 view are supported for now.
19144 A new property "view-ids" has been provided for the plugins to
19145 set the view ids (which is an array of guint values) to be used
19147 https://bugzilla.gnome.org/show_bug.cgi?id=732453
19149 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19151 * gst/vaapi/gstvaapipluginbase.c:
19152 plugins: upload meta only if feature and allocation
19153 Working on bug #743687, I realized that vaapidecode always adds to its buffer
19154 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
19155 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
19156 Nevertheless, there are occasions where the query has the API type, but the
19157 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
19158 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
19159 buffer pool configuration, and adds its buffer's meta to each output buffer,
19160 even if the negotiated caps feature is memory:SystemMemory with I420 color
19162 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
19163 that relates caps <-> GL upload method. If it receives a buffer with color
19164 format I420, it assumes that it doesn't have a texture upload meta, because
19165 only those with RGB color format has it. Our buffers, with I420 format, say
19166 that they have the upload meta too. In that case the mapped method is a dummy
19167 one which does nothing. I reported this issue in bug #744039 (the patch,
19168 obviously, was rejected).
19169 This patch workarounds the problem: the buffer pool's configuration option
19170 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
19171 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
19172 caps feature is meta:GstVideoGLTextureUploadMeta.
19173 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
19174 in all they seem to work correctly.
19175 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19176 [adapted to fit current EGL changes]
19177 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19179 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19181 * gst-libs/gst/vaapi/gstvaapitexture.c:
19182 * gst-libs/gst/vaapi/gstvaapitexture.h:
19183 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19184 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19185 * gst/vaapi/gstvaapivideometa_texture.c:
19186 plugins: add support for GstVideoGLTextureOrientation.
19187 Add support for GstVideoGLTextureOrientation modes. In particular,
19188 add orientation flags to the GstVaapiTexture wrapper and the GLX
19189 implementations. Default mode is that texture memory is laid out
19190 with top lines first, left row first. Flags indicate whether the
19191 X or Y axis need to be inverted.
19193 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19195 * gst/vaapi/gstvaapidecode.c:
19196 * gst/vaapi/gstvaapipluginbase.c:
19197 * gst/vaapi/gstvaapipluginutil.c:
19198 * gst/vaapi/gstvaapipluginutil.h:
19199 * gst/vaapi/gstvaapipostproc.c:
19200 * gst/vaapi/gstvaapivideometa_texture.c:
19201 plugins: add support for BGRA textures.
19202 Some frameworks (EFL) expect BGRA textures for storage. However,
19203 adding support for that broadly into GStreamer framework implies
19204 two kinds of hacks: (i) libgstgl helpers currently do not support
19205 BGRA textures correctly, (ii) we need to better parse downstream
19206 suggested caps and intersect them with what the VA plugin elements
19207 can offer to them for GL texturing.
19209 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19211 * gst/vaapi/gstvaapipluginutil.c:
19212 plugins: fix support for Wayland/EGL running alongside X11.
19213 When multiple display servers are available, the glimagesink element
19214 (from GStreamer 1.4) may not be able to derive a global display in
19215 Wayland. Rather, a "window"-specific display is created. In this case,
19216 the GstGLDisplay handle available through GstGLContext is invalid.
19217 So, try to improve heuristics for display server characterisation in
19218 those particular situations.
19220 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19223 * gst/vaapi/Makefile.am:
19224 * gst/vaapi/gstvaapidecode.c:
19225 * gst/vaapi/gstvaapipluginbase.c:
19226 * gst/vaapi/gstvaapipluginutil.c:
19227 * gst/vaapi/gstvaapivideobufferpool.c:
19228 * gst/vaapi/gstvaapivideometa_texture.c:
19229 plugins: add initial support for EGL.
19230 Add initial support for EGL through GstVideoGLTextureUploadMeta.
19231 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
19232 downstream supplied GstGLContext configuration, i.e. use its native
19233 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
19234 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
19236 https://bugzilla.gnome.org/show_bug.cgi?id=741079
19238 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19240 * gst/vaapi/gstvaapivideometa_texture.c:
19241 plugins: track video texture size changes.
19242 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
19243 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
19244 now update the texture size from the GstVideoMeta, if any, or reset
19245 to some defaults otherwise.
19247 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19249 * gst/vaapi/gstvaapipluginbase.c:
19250 * gst/vaapi/gstvaapipluginbase.h:
19251 * gst/vaapi/gstvaapipluginutil.c:
19252 plugins: ensure VA display matches GL context expectations.
19253 If a GstGLContext is supplied by the downstream element, then make
19254 sure that the VA plugin element gets a compatible display to what
19255 is requested by the GL context. e.g. re-allocate a VA/GLX display
19256 when a GLX context is provided by the downstream element.
19258 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19261 * gst/vaapi/Makefile.am:
19262 * gst/vaapi/gstvaapipluginbase.c:
19263 * gst/vaapi/gstvaapipluginbase.h:
19264 plugins: record downstream GstGLContext.
19265 Record GL context supplied by downstream elements. This can be useful,
19266 and further needed, to enforce run-time check that the GL context is
19267 compatible for use by libgstvaapi. e.g. check that we don't create a
19268 VA/GLX display for EGL/X11 contexts.
19269 https://bugzilla.gnome.org/show_bug.cgi?id=725643
19270 Original-path-by: Matthew Waters <ystreet00@gmail.com>
19272 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19274 * tests/Makefile.am:
19277 Add initial support for EGL to tests. The new EGL backend can be selected
19278 through the --egl command line option. The OpenGL|ES version can further
19279 be selected with the --gles-version command line option, where the default
19280 of 0 means "desktop" OpenGL.
19282 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19284 * gst-libs/gst/vaapi/Makefile.am:
19285 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19286 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
19287 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
19288 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
19289 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
19290 egl: add windowing support.
19291 This provides for some basic EGL window abstraction.
19293 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19295 * gst-libs/gst/vaapi/Makefile.am:
19296 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19297 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
19298 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
19299 egl: add texture abstraction.
19300 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
19301 or import a foreign allocated one, while still allowing updates from a
19304 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19306 * gst-libs/gst/vaapi/Makefile.am:
19307 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
19308 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
19309 egl: allow for EGLImage imports into VA Surfaces.
19310 Add helpers to import EGLImage objects into VA surfaces. There are
19311 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
19312 which allows for implicit conversion from EGLImage to a VA surface
19313 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
19314 which exactly wraps the source EGLImage, typically in RGBA format
19315 with linear storage.
19316 Note: in case of (i), the EGLImage can be disposed right after the
19317 VA surface creation call, unlike in (ii) where the user shall ensure
19318 that the EGLImage is live until the associated VA surface is no longer
19320 https://bugzilla.gnome.org/show_bug.cgi?id=743847
19322 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19325 * gst-libs/gst/vaapi/Makefile.am:
19326 * gst-libs/gst/vaapi/egl_compat.h:
19327 * gst-libs/gst/vaapi/egl_vtable.h:
19328 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19329 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19330 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19331 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
19332 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
19333 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
19334 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
19335 * gst-libs/gst/vaapi/ogl_compat.h:
19336 Add initial support for EGL.
19337 Add initial support for EGL to libgstvaapi core library. The target
19338 display server and the desired OpenGL API can be programmatically
19339 selected at run-time.
19340 A comprehensive set of EGL utilities are provided to support those
19341 dynamic selection needs, but also most importantly to ensure that
19342 the GL command stream is executed from within a single thread.
19343 https://bugzilla.gnome.org/show_bug.cgi?id=743846
19345 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19347 * gst-libs/gst/vaapi/gstvaapivalue.c:
19348 libs: initialize GValues in a thread-safe manner.
19350 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19352 * gst-libs/gst/vaapi/gstvaapivalue.c:
19353 libs: re-indent all GValue related source code.
19355 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19357 * gst/vaapi/gstvaapidecode.c:
19358 vaapidecode: partially revert 0777f35.
19359 Reset the VA decoder after updating the base plugin caps, and most
19360 importantly, after GstVideoDecoder negotiation. The reason behind
19361 this is that the negotiation could trigger a last decide_allocation()
19362 where we could actually derive a new GstVaapiDisplay to use from the
19363 downstream element. e.g. GLX backend.
19365 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19367 * gst/vaapi/gstvaapidecode.c:
19368 vaapidecode: Caps query should return the list of all supported caps.
19369 Query caps filtering should be always done on top of allowed caps instead
19370 of existing fixed caps on a particular pad.
19371 This fixes the mvc stream decoding when there is a base view(high profile)
19372 and non-base view(stereo-high profile).
19374 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19376 * gst/vaapi/gstvaapidecode.c:
19377 vaapidecode: intersect filter from query caps
19378 According to documentation[1] when receiving a GST_QUERY_CAPS
19379 the return value should be all formats that this elements supports,
19380 taking into account limitations of peer elements further downstream
19381 or upstream, sorted by order of preference, highest preference first.
19382 This patch add those limitations intersecting with the received
19383 filter in the query. Also takes into account the already negotiated
19384 caps. Also adds the processing of the query on the SRC pad.
19385 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
19386 https://bugzilla.gnome.org/show_bug.cgi?id=744406
19388 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19390 * gst-libs/gst/vaapi/Makefile.am:
19391 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19392 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19393 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19394 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19395 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19396 * gst/vaapi/gstvaapivideomemory.c:
19397 Fix compiler warnings
19398 This patch fixes some warnings that gcc 4.9 reports.
19399 https://bugzilla.gnome.org/show_bug.cgi?id=744411
19401 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19403 * gst/vaapi/gstvaapidecode.c:
19404 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
19405 Hence the function name is shown in the gst-inspect-1.0 information
19406 rather than the memory address.
19407 https://bugzilla.gnome.org/show_bug.cgi?id=744330
19409 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19411 * gst/vaapi/gstvaapidecode.c:
19412 vaapidecode: log flow error name
19413 https://bugzilla.gnome.org/show_bug.cgi?id=744387
19415 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19417 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19418 VC1: decoder: Ignore VC1 user BDU's
19419 Don't return error if the processed BDU is a user one, just ignore them.
19420 https://bugzilla.gnome.org/show_bug.cgi?id=741237
19421 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19423 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
19425 * gst/vaapi/gstvaapidecode.c:
19426 * gst/vaapi/gstvaapipluginbase.c:
19427 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
19428 This is required in GStreamer, elements should never return
19429 GST_FLOW_ERROR without posting an ERROR message on the bus.
19430 https://bugzilla.gnome.org/show_bug.cgi?id=744620
19432 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19434 * gst/vaapi/Makefile.am:
19435 * gst/vaapi/gstvaapi.c:
19436 * gst/vaapi/gstvaapiencode_vp8.c:
19437 * gst/vaapi/gstvaapiencode_vp8.h:
19438 plugins: Add VP8 Encoder
19440 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19442 * gst-libs/gst/vaapi/Makefile.am:
19443 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
19444 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
19445 Add VP8 Encoder to core libgstvaapi.
19447 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19450 configure: Add Check for VP8 Encoding API
19452 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
19454 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19455 decoder: vc1: Rounding control handling for VC1 simple and Main profile
19456 Added rounding control handling for VC1 simple and Main profile
19457 based on VC1 standard spec: section 8.3.7
19458 https://bugzilla.gnome.org/show_bug.cgi?id=743958
19459 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
19460 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19462 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19464 * gst/vaapi/Makefile.am:
19465 build: fix make dist when certain conditionals not met.
19466 Fix typo which was preventing the inclusion of jpeg encoder
19467 source files from make dist (when there is no jpeg encoder
19468 API support in libva).
19470 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19472 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19473 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
19474 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
19475 use native YUV420 format (which is i420) as default.
19477 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19479 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19480 encoder: Only support YUV420 native format as input for now
19481 Practically we should be able to support more formats, for eg:
19482 JPEG Encoder can support YUV422, RGBA and all.
19483 But this is causing more issues which need proper fix here and there.
19485 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
19487 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19488 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19489 * gst/vaapi/gstvaapidecode.c:
19490 vaapidecode: Check the condition after taking the lock
19491 Otherwise the condition could become true before the lock
19492 is taken and the g_cond_signal() could be called
19493 before the g_cond_wait(), so the g_cond_wait() is never
19495 https://bugzilla.gnome.org/show_bug.cgi?id=740645
19497 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19499 * gst/vaapi/Makefile.am:
19500 * gst/vaapi/gstvaapi.c:
19501 * gst/vaapi/gstvaapiencode_jpeg.c:
19502 * gst/vaapi/gstvaapiencode_jpeg.h:
19503 plugins: Add JPEG encoder element
19505 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19507 * gst-libs/gst/vaapi/gstvaapicontext.c:
19508 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
19510 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19512 * gst-libs/gst/vaapi/gstvaapicontext.c:
19513 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
19514 Don't add the VAConfigAttribRateControl to the attribute list using
19515 for the vaCreateConfig if it is not supported by the driver.
19517 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19519 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19520 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
19522 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19524 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19525 gstvaapiencoder: Fix crash when handling rate control mask
19526 Having a ratecontrol_mask equal to zero is not a bug, but the driver
19527 might not be supporting any kind of rate control mechanisms.
19530 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19532 * gst-libs/gst/vaapi/Makefile.am:
19533 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19534 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
19535 encoder: Add JPEG Encoder
19537 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19539 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19540 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19541 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
19543 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19545 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19546 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19547 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19548 * gst-libs/gst/vaapi/gstvaapiprofile.h:
19549 Encode: Add support for Picture level Entrypoint
19550 This is useful for JPEG encoding which is utilizing picture level
19551 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
19553 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19556 configure: Add Check for JPEG encoding API
19558 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19563 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19566 Bump version for development.
19568 === release 0.5.10 ===
19570 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19575 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19580 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19582 * gst/vaapi/gstvaapivideometa_texture.c:
19583 Fix compilation error if there is no GL/gl.h header file installed
19585 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19587 * gst/vaapi/gstvaapivideomemory.h:
19588 plugins: drop leftover declaration.
19589 GstVaapiVideoMemory quark is not needed any more, and the actual
19590 implementation was already removed bfore the merge. i.e. this is
19591 an oversight for a hunk that was not meant to be pushed.
19593 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19595 * gst/vaapi/gstvaapipluginbase.c:
19596 * gst/vaapi/gstvaapivideobufferpool.c:
19597 * gst/vaapi/gstvaapivideobufferpool.h:
19598 * gst/vaapi/gstvaapivideomemory.c:
19599 * gst/vaapi/gstvaapivideomemory.h:
19600 plugins: add support for dma_buf exports (v4l2src).
19601 Allow v4l2src element to connected to vaapipostproc or vaapisink when
19602 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
19603 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
19604 to "dmabuf" could work, but with more demanding driver or kernel reqs.
19605 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
19606 with --without-libv4l2.
19607 https://bugzilla.gnome.org/show_bug.cgi?id=743635
19609 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
19612 * gst/vaapi/Makefile.am:
19613 * gst/vaapi/gstvaapipluginbase.c:
19614 plugins: add support for dma_buf imports.
19615 Allow imports of v4l2 buffers into VA surfaces for further operation
19616 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
19617 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19618 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
19619 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19621 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19623 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19624 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19625 surface: add support for GEM buffer imports.
19626 Add support for GEM buffer imports. This is useful for VA/EGL interop
19627 with legacy Mesa implementations, or when it is desired or required to
19628 support outbound textures for instance.
19629 https://bugzilla.gnome.org/show_bug.cgi?id=736718
19631 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19633 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19634 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19635 surface: add support for dma_buf imports.
19636 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
19637 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
19638 resulting VA surface owns the supplied buffer handle.
19639 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19641 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19643 * gst-libs/gst/vaapi/gstvaapisurface.c:
19644 * gst-libs/gst/vaapi/gstvaapisurface.h:
19645 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19646 surface: add initial support for foreign buffer imports.
19647 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
19648 create a VA surface from an external buffer provided throug the
19649 new GstVaapiBufferProxy object.
19651 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19653 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19654 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19655 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19656 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19657 surface: add support for GEM buffer exports.
19658 Add support for GEM buffer exports. This will only work with VA drivers
19659 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
19660 to support interop with EGL and the "Desktop" GL specification. Indeed,
19661 the EXT_image_dma_buf_import extension is not going to be supported in
19662 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
19664 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
19665 in Desktop OpenGL context.
19666 https://bugzilla.gnome.org/show_bug.cgi?id=736717
19668 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19670 * gst-libs/gst/vaapi/Makefile.am:
19671 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19672 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19673 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19674 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19675 surface: add support for dma_buf exports.
19676 Use the new VA buffer export APIs to allow for a VA surface to be
19677 exposed as a plain PRIME fd. This is in view to simplifying interop
19678 with EGL or OpenCL for instance.
19679 https://bugzilla.gnome.org/show_bug.cgi?id=735364
19681 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19683 * gst-libs/gst/vaapi/Makefile.am:
19684 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19685 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19686 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
19687 Add abstraction for exported VA buffers.
19688 The VA buffer export APIs work for a particular lifetime starting from
19689 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
19690 it could be much more convenient to support implicit releases by simply
19691 having a refcount reaching zero.
19692 https://bugzilla.gnome.org/show_bug.cgi?id=736721
19694 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19696 * gst-libs/gst/vaapi/Makefile.am:
19697 Add missing header file to Makefile
19698 Add gstvaapitexture_glx.h to Makefile.am
19700 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19702 * gst-libs/gst/vaapi/gstvaapicontext.c:
19703 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19704 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19705 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19706 * gst/vaapi/gstvaapipostproc.c:
19707 * gst/vaapi/gstvaapiuploader.c:
19708 * gst/vaapi/gstvaapivideobufferpool.c:
19709 * gst/vaapi/gstvaapivideomemory.c:
19710 * gst/vaapi/gstvaapivideomemory.h:
19711 * tests/test-surfaces.c:
19712 videopool: add optional flags for surface pool allocation.
19713 Reword surface pool allocation helpers so that to allow for a simple
19714 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
19715 somewhat more elaborated/flexible form with optional allocation flags
19716 and precise GstVideoInfo specification.
19717 This is an API/ABI change, and SONAME version needs to be bumped.
19719 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19721 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19722 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19723 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19724 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19725 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19726 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19727 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19728 videopool: re-indent all GstVaapiVideoPool related source code.
19730 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19732 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19733 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19734 window: add toplevel display indirection for visualid and colormap.
19735 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
19736 the best suitable window visual id and colormap. This is an indirection in
19737 view to supporting EGL and custom/generic replacements.
19739 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19741 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19742 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19743 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19744 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19745 window: add toplevel API to determine the colormap.
19746 Add GstVaapiWindowClass::get_colormap() hook to help determine the
19747 currently active colormap bound to the supplied window, or actually
19748 create it if it does not already exist yet.
19750 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19752 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
19753 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
19754 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19755 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19756 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19757 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19758 window: add toplevel API to determine a visual id.
19759 Add GstVaapiWindowClass::get_visual_id() function hook to help find
19760 the best suitable visual id for the supplied window. While doing so,
19761 also simplify the process by which an X11 window is created with a
19762 desired Visual, i.e. now use a visual id instead of a Visual object.
19764 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19766 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19767 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19768 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19769 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19770 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19771 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19772 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19773 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19774 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19775 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19776 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19777 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19778 window: add generic helper to create windows.
19779 Add a new generic helper function gst_vaapi_window_new() to create
19780 a window without having the caller to check for the display type
19781 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
19782 to create windows, and the actual backend implementation fills it in.
19783 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19784 This is a simplification in view to supporting EGL.
19786 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19788 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19789 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19790 * gst-libs/gst/vaapi/gstvaapitexture.c:
19791 * gst/vaapi/gstvaapivideometa_texture.c:
19792 display: add utility function to check for OpenGL rendering.
19793 Add gst_vaapi_display_has_opengl() helper function to help determining
19794 whether the display can support OpenGL context to be bound to it, i.e.
19795 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
19797 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19799 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19800 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19801 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19802 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19803 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19804 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19805 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19806 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19807 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19808 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19809 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19810 * gst/vaapi/gstvaapipluginutil.c:
19811 * gst/vaapi/gstvaapivideobuffer.c:
19812 * gst/vaapi/gstvaapivideometa_texture.c:
19813 display: refine the meaning of display type.
19814 Make gst_vaapi_display_get_display_type() return the actual VA display
19815 type. Conversely, add a gst_vaapi_display_get_class_type() function to
19816 return the type of the GstVaapiDisplay instance. The former is used to
19817 identify the display server onto which the application is running, and
19818 the latter to identify the original object class.
19820 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19822 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19823 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19824 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19825 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19826 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19827 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19828 display: cosmetics (helper macros, new internal API names).
19829 Add more helper macros to the top-level GstVaapiDisplay interfaces.
19830 Rename a few others used internally for improved consistency.
19832 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19834 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19835 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19836 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19837 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
19838 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19839 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19840 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19841 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19842 display: record native display object.
19843 Record the underlying native display instance into the toplevel
19844 GstVaapiDisplay object. This is useful for fast lookups to the
19845 underlying native display, e.g. for creating an EGL display.
19847 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19849 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19850 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19851 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19852 display: use a recursive mutex for the display cache.
19853 Use a recursive mutex for the display cache so that a 3rdparty display
19854 object could be initialized during the initialization of the parent
19857 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19859 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19860 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19861 * gst-libs/gst/vaapi/gstvaapitexture.c:
19862 * gst-libs/gst/vaapi/gstvaapitexture.h:
19863 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19864 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19865 texture: add generic helper to create textures.
19866 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19867 and gst_vaapi_texture_new() to create a texture without having
19868 the caller to uselessly check for the display type himself. i.e.
19869 internally, there is now a GstVaapiDisplayClass hook to create
19870 textures, and the actual backend implementation fills it in.
19871 This is a simplification in view to supporting EGL.
19873 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19875 * gst-libs/gst/vaapi/Makefile.am:
19876 * gst-libs/gst/vaapi/gstvaapitexture.c:
19877 * gst-libs/gst/vaapi/gstvaapitexture.h:
19878 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19879 * gst-libs/gst/vaapi/gstvaapitexture_glx.h:
19880 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19881 * gst/vaapi/gstvaapivideoconverter_glx.c:
19882 * gst/vaapi/gstvaapivideometa_texture.c:
19883 * tests/test-textures.c:
19884 texture: move to core libgstvaapi base library.
19885 GstVaapiTexture is a generic abstraction that could be moved to the
19886 core libgstvaapi library. While doing this, no extra dependency needs
19887 to be added. This means that a GstVaapitextureClass is now available
19888 for any specific code that needs to be added, e.g. creation of the
19889 underlying GL texture objects, or backend dependent ways to upload
19890 a surface to the texture object.
19891 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
19893 https://bugzilla.gnome.org/show_bug.cgi?id=736715
19895 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19898 * gst-libs/gst/vaapi/Makefile.am:
19899 * gst-libs/gst/vaapi/gstvaapicompat.h:
19900 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19901 * gst-libs/gst/vaapi/gstvaapitexture.c:
19902 texture: drop support for VA/GLX interfaces.
19903 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
19904 ease of use, but they had other caveats to deal with. It's now better
19905 to move on to legacy mode, whereby VA/GLX interop is two be provided
19906 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
19907 https://bugzilla.gnome.org/show_bug.cgi?id=736711
19909 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19911 * gst-libs/gst/vaapi/gstvaapitexture.c:
19912 * gst-libs/gst/vaapi/gstvaapitexture.h:
19913 * gst/vaapi/gstvaapivideoconverter_glx.c:
19914 * gst/vaapi/gstvaapivideometa_texture.c:
19915 * tests/test-textures.c:
19916 texture: add support for cropping rectangle during transfer.
19917 The gst_vaapi_texture_put_surface() function is missing a crop_rect
19918 argument that would be used during transfer for cropping the source
19919 surface to the desired dimensions.
19920 Note: from a user point-of-view, he should create the GstVaapiTexture
19921 object with the cropped size. That's the default behaviour in software
19922 decoding pipelines that we need to cope with.
19923 This is an API/ABI change, and SONAME version needs to be bumped.
19924 https://bugzilla.gnome.org/show_bug.cgi?id=736712
19926 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19928 * gst-libs/gst/vaapi/gstvaapitexture.c:
19929 * gst-libs/gst/vaapi/gstvaapitexture.h:
19930 texture: re-indent all GstVaapiTexture related source code.
19932 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19934 * gst-libs/gst/vaapi/gstvaapisurface.c:
19935 * gst-libs/gst/vaapi/gstvaapisurface.h:
19936 surface: add more fine-grained allocation helper.
19937 Add new gst_vaapi_surface_new_full() helper function that allocates
19938 VA surface from a GstVideoInfo template in argument. Additional flags
19939 may include ways to
19940 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
19941 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
19942 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
19944 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19946 * gst-libs/gst/vaapi/gstvaapisurface.c:
19947 * gst-libs/gst/vaapi/gstvaapisurface.h:
19948 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19949 surface: re-indent all GstVaapiSurface related source code.
19951 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19953 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19954 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19955 surfaceproxy: add helper to create a wrapped surface object.
19956 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
19957 a proxy. The main use case for that is to convey additional information
19958 at the proxy level that would not be suitable to the plain surface.
19960 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19962 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19963 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19964 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19965 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
19967 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19970 libs: bump library major version.
19972 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19974 * gst-libs/gst/vaapi/gstvaapitypes.h:
19975 libs: re-introduce a GST_VAAPI_ID_INVALID value.
19976 Re-introduce a GST_VAAPI_ID_INVALID value that represents
19977 a non-zero and invalid id. This is useful to have a value
19978 that is still invalid for cases where zero could actually
19981 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19983 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19984 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19985 libs: expose GstVaapiMiniObject APIs to all backends.
19986 Make it possible to have all libgstvaapi backends (libs) access to a
19987 common GstVaapiMiniObject API and implementation. This is a minor step
19988 towards full exposure when needed, but restrict it to libgstvaapi at
19991 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19993 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19994 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19995 * gst-libs/gst/vaapi/gstvaapiobject.c:
19996 * gst-libs/gst/vaapi/gstvaapiobject.h:
19997 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19998 libs: re-indent all GstVaapiObject related source code.
19999 Re-indent and provide additional minor cosmetical changes to the
20000 GstVaapiMiniObject and GstVaapiObject source files.
20002 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20004 * gst/vaapi/gstvaapipluginutil.c:
20005 pluginutil: Fix clearing of subtitle overlay
20006 dvbsuboverlay signals no subtitles present by not setting
20007 GstVideoOverlayCompositionMeta on a buffer.
20008 Detect this, and remove subtitles whenever we have no overlay composition to
20010 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20012 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
20014 * gst/vaapi/gstvaapipostproc.c:
20015 vaapipostproc: clear state on stop
20016 Otherwise restarting may fail because the state of vaapipluginbase and
20017 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
20018 initailization and not call gst_vaapi_plugin_base_set_caps()
20020 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
20022 * gst/vaapi/gstvaapidecode.c:
20023 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
20025 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20027 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20028 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
20029 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
20030 since the vaaapi context creation (gstvaapicontext.c) can still use the
20031 default chroma type which is YUV420.
20032 https://bugzilla.gnome.org/show_bug.cgi?id=743567
20033 https://bugzilla.gnome.org/show_bug.cgi?id=743035
20035 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20037 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
20038 * patches/videoparsers/series.frag:
20039 h264parse: drop patches merged upstream.
20040 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
20042 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20044 * ext/codecparsers:
20045 codecparsers: update to gst-vaapi-branch commit d3b5c1b
20046 8194cac: h264parse: parse SPS subset
20047 64b7f52: h264parse: expose stereo-high profile
20048 774360a: h264parse: add initial support for MVC NAL units
20049 258478f: h264parser: fix stack smashing
20051 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20053 * gst/vaapi/gstvaapivideometa_texture.c:
20054 Fix compilation error if there is no GL/gl.h header file installed
20056 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20058 * gst/vaapi/gstvaapidecode.c:
20059 vaapidecode: commit updated srcpad caps to base plugin.
20060 Make sure that the GstVaapiPluginBase instance receives the new src
20061 pad caps whenever they get updated from within the GstVaapiDecoder
20063 This also ensures that downstream elements receive correctly sized
20064 SW decoded buffers if needed.
20065 https://bugs.tizen.org/jira/browse/TC-114
20067 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20069 * gst/vaapi/gstvaapidecode.c:
20070 vaapidecode: always reset decoder on ::set_format().
20071 Split GstVideoDecoder::set_format() handler to first update the sink
20072 pad caps and reset the active VA decoder instance based on those, and
20073 then update the src pad caps whenever possible, e.g. when the caps
20074 specify a valid video resolution.
20076 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20078 * gst/vaapi/gstvaapivideomemory.c:
20079 vaapivideomemory: don't crash when trying to allocate 0x0 images.
20080 In some occasions, a buffer pool is created for pre-initialization
20081 purposes regardless of whether a valid image size is available or
20082 not. However, during actual decode stage, the vaapidecode element
20083 is expected to update the srcpad caps with the new dimensions, thus
20084 also triggering a reset of the underlying bufferpool.
20086 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20088 * ext/codecparsers:
20089 codecparsers: update to gst-vaapi-branch commit 191cb2f
20090 347605a: h264parse: expose compatible profiles to downstream
20091 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
20092 24a3126: Revert "h264parse: expose compatible profiles to downstream"
20093 8661740: h264parse: expose compatible profiles to downstream
20094 8b7ef3f: codecparsers: fix some compiler warnings
20096 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20098 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20099 encoder: h264: Fix the period between I/P frames
20100 If the key-frame period is set as one, then ip_period shuld be zero
20101 https://bugzilla.gnome.org/show_bug.cgi?id=734992
20103 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20105 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20106 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
20107 https://bugzilla.gnome.org/show_bug.cgi?id=734993
20109 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20111 * gst/vaapi/gstvaapisink.c:
20112 vaapisink: Protect the X11 API invokations with proper locking
20113 https://bugzilla.gnome.org/show_bug.cgi?id=739808
20115 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20117 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20118 encoder: h264: fix pixel-aspect-ratio in encoded stream.
20119 Really report sample aspect ratio (SAR) as present, and make it match
20120 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
20121 really make sure VUI parameter aspect_ratio_info_present_flag is set
20122 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
20123 This is a leftover from git commit a12662f.
20124 https://bugzilla.gnome.org/show_bug.cgi?id=740360
20126 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20128 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20129 decoder: mpeg4: fix uninitialized variables.
20130 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
20131 GST_MPEG4_USER_DATA so that a parse error would result in skipping
20132 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
20133 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
20135 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20137 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20138 encoder: h264: fix profile limits.
20139 Fix ensure_profile_limits() to lower profile to the desired limits,
20140 only if the latter are actually known and the profile needed to be
20143 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20145 * gst/vaapi/gstvaapipostproc.c:
20146 vaapipostproc: fix out caps for GLMemory.
20147 If the best downstream capsfeature turns out to be GLMemory, then make
20148 sure to propagate RGBA video format in caps to that element. This fixes
20149 the following pipeline: ... ! vaapipostproc ! glimagesink.
20151 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20153 * gst/vaapi/gstvaapipostproc.c:
20154 vaapipostproc: fix check for compatible src pad capsfilters.
20155 When an explicit output video format is selected, from an src pad
20156 capsfilter, make sure that the downstream element actually supports
20157 that format. In particular, fix crash with the following pipelines:
20158 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
20159 XXX is a format not supported by xvimagesink.
20160 While doing so, also reduce the set of src pad filter caps to the
20161 actual set of allowed src pad caps.
20163 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20165 * gst/vaapi/gstvaapipostproc.c:
20166 * gst/vaapi/gstvaapipostproc.h:
20167 * gst/vaapi/gstvaapiuploader.c:
20168 * gst/vaapi/gstvaapiuploader.h:
20169 plugins: re-indent all video processing related source code.
20171 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20173 * gst/vaapi/gstvaapivideomemory.c:
20174 plugins: further fixes to the new "current" storage tracker.
20175 The ensure_surface() and ensure_image() functions shall only relate
20176 to the underlying backing store. The actual current flags are to be
20177 updated only through ensure_{surface,image}_is_current() or very other
20178 particular cases in GstMemory hooks.
20180 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20182 * gst/vaapi/gstvaapivideomemory.c:
20183 plugins: fix "current" video memory flags.
20184 If the surface proxy is updated into the GstVaapiVideoMemory, then
20185 it is assumed it is the most current representation of the current
20186 video frame. Likewise, make a few more arrangements to have the
20187 "current " flags set more consistently.
20189 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20191 * gst/vaapi/gstvaapivideomemory.c:
20192 * gst/vaapi/gstvaapivideomemory.h:
20193 * gst/vaapi/gstvaapivideometa.c:
20194 plugins: ensure VA surface is current prior to using it.
20195 When interacting with SW elements, the buffers and underlying video
20196 memory could be mapped as read/write. However, we need to use those
20197 buffers again as plain VA surfaces, we have to make sure the VA image
20198 is thus committed back to VA surface memory.
20199 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
20201 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
20203 * gst/vaapi/gstvaapivideomemory.c:
20204 plugins: enable memory maps for read & write.
20205 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
20206 buffers can be further processed in-place, e.g. with a textoverlay.
20207 https://bugzilla.gnome.org/show_bug.cgi?id=704078
20208 [ported to current git master branch, amended commit message]
20209 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20211 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20213 * gst/vaapi/gstvaapidecode.c:
20214 * gst/vaapi/gstvaapipluginutil.c:
20215 * gst/vaapi/gstvaapipluginutil.h:
20216 * gst/vaapi/gstvaapipostproc.c:
20217 plugins: preserve framerate when updating src caps video format.
20218 In the current implementation, gst_video_info_set_format() would reset
20219 the whole GstVideoInfo structure first, prior to setting video format
20220 and size. So, coleteral information like framerate or pixel-aspect-
20222 Provide and use a unique gst_video_info_change_format() for overcome
20223 this issue, i.e. only have it change the format and video size, and
20224 copy over the rest of the fields.
20225 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20227 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20229 * gst/vaapi/gstvaapi.c:
20230 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
20231 This is for helping decodebin to autoplug the vaapidecode element.
20232 Decodebin is selecting decoder elements only based on rank and caps.
20233 Without overriding the autoplug-* signals there is no way to autoplug
20234 HW decoders inside decodebin. An easier soulution is to raise the
20235 rank of vaapidecode, so that it gets selected first.
20236 https://bugzilla.gnome.org/show_bug.cgi?id=739332
20238 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20240 * gst-libs/gst/vaapi/gstvaapiprofile.c:
20241 * gst/vaapi/gstvaapidecode.c:
20242 vaapidecode: only expose supported profiles when needed.
20243 JPEG and VP8 codecs do not really support the concept of "profile". So,
20244 don't try to expose any set that wouldn't be supported by jpegparse, or
20245 ivfparse for instance.
20246 https://bugzilla.gnome.org/show_bug.cgi?id=739713
20247 https://bugzilla.gnome.org/show_bug.cgi?id=739714
20249 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20251 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20252 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20253 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20254 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20255 decoder: h264: add initial support for repeat-first-field (RFF) flag.
20256 Use the SEI pic_timing() message to track and propagate down the repeat
20257 first field (RFF) flag. This is only initial support as there is one
20258 other condition that could induce the RFF flag, which is not handled
20261 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20263 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20264 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
20265 Fix the decoding process for picture order count type 0 when the previous
20266 picture had a memory_management_control_operation = 5. In particular, fix
20267 the actual variable type for prev_pic_structure to hold the full bits of
20268 the picture structure.
20269 In practice, this used to work though, due to the underlying type used to
20270 express a gboolean.
20272 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20274 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20275 decoder: h264: fix detection of top-field-first (TFF) flag.
20276 Use the SEI pic_timing() message to track the pic_struct variable when
20277 present, or infer it from the regular slice header flags field_pic_flag
20278 and bottom_field_flag. This fixes temporal sequence ordering when the
20279 output pictures are to be displayed.
20280 https://bugzilla.gnome.org/show_bug.cgi?id=739291
20282 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20284 * ext/codecparsers:
20285 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
20286 1241840 h264: fix derivation of MaxPicNum variable
20287 3bd718e h264: fix GstH264ParserResult documentation typo
20288 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
20289 b08e4be h264parse: don't unnecesarily set src_caps
20291 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20293 * gst/vaapi/gstvaapipostproc.c:
20294 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
20295 Added the same Klass specifications used in other upstream
20296 video postprocessing elements like videoconvert, videoscale,
20297 videobalance and deinterlace.
20298 An example use case is for this is to help the playsink
20299 to autoplug the hardware accelerated deinterlacer.
20301 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20303 * gst/vaapi/gstvaapipostproc.c:
20304 vaapipostproc: Tweak the output video format setting to enable the autoplugging
20305 This is a workaround until auto-plugging is fixed when
20306 format=ENCODED + memory:VASurface caps feature are provided.
20307 Use the downstream negotiated video format as the output video format
20308 if the user didn't ask for the colorspace conversion explicitly.
20309 Usecase: This will help to connect elements like videoscale, videorate etc
20311 https://bugzilla.gnome.org/show_bug.cgi?id=739443
20313 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20315 * gst/vaapi/gstvaapipostproc.c:
20316 * gst/vaapi/gstvaapipostproc.h:
20317 vaapipostproc: allow user defined scaling mode.
20318 Add new "scale-method" property to expose the scaling mode to use during
20319 video processing. Note that this is only a hint, and the actual behaviour
20320 may differ from implementation (VA driver) to implementation.
20322 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20324 * gst-libs/gst/vaapi/gstvaapifilter.c:
20325 * gst-libs/gst/vaapi/gstvaapifilter.h:
20326 * gst-libs/gst/vaapi/gstvaapiutils.c:
20327 * gst-libs/gst/vaapi/gstvaapiutils.h:
20328 filter: add initial support for high quality scaling.
20329 Add support for video scaling options in VPP pipelines. Only the
20330 DEFAULT mode is bound to exist. Others might be folded into that
20333 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20335 * gst-libs/gst/vaapi/gstvaapifilter.c:
20336 * gst-libs/gst/vaapi/gstvaapifilter.h:
20337 filter: re-indent all GstVaapiFilter related source code.
20339 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20341 * ext/codecparsers:
20342 codecparsers: update to gst-vaapi-branch commit f9d3bde.
20343 2218b02 h264parse: expose parsed profile and level to downstream
20344 3dbfab4 h264parse: return flushing if we get chained while being set to READY
20345 d40fa8b h264: fix frame packing SEI parsing
20346 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
20347 b3e022e h264: initialize some fields of pic_timing structure
20348 a70661d vc1: fix expected level in sequence-layer parsing unit test
20349 6cee88d vc1: fix level values for simple/main profile
20350 356c189 vc1: add unit test for sequence-layer parsing
20351 ab9f641 vc1: take care of endianness when parsing sequence-layer
20352 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
20354 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20356 * gst/vaapi/gstvaapidecode.c:
20357 vaapidecode: Expose the supported profiles as caps to upstream
20358 This will allows the playbin to fallback to Software Decoder
20359 if the Hardware Decoder does not support a particular profile.
20360 https://bugzilla.gnome.org/show_bug.cgi?id=730997
20362 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20364 * gst/vaapi/gstvaapiencode.c:
20365 * gst/vaapi/gstvaapiencode.h:
20366 * gst/vaapi/gstvaapiencode_h264.c:
20367 encode: Attach the codec-data to out caps only based on negotiated caps
20368 Attach the codec_data to out_caps only if downstream needed.
20369 For eg: h264 encoder doesn't need to stuff codec_data to the
20370 src caps if the negotiated caps has a stream format of byte-stream.
20371 https://bugzilla.gnome.org/show_bug.cgi?id=734902
20373 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20376 configure: echoing installation prefix path
20378 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20380 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20381 display: add support for DRM Render-Nodes.
20382 Add support for DRM Render-Nodes. This is a new feature that appeared
20383 in kernel 3.12 for experimentation purposes, but was later declared
20384 stable enough in kernel 3.15 for getting enabled by default.
20385 This allows headless usages without authentication at all, i.e. usages
20386 through plain ssh connections is possible.
20388 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20390 * gst/vaapi/gstvaapisink.c:
20391 vaapisink: clean-ups (indentation, drop unused variables).
20393 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20396 * gst/vaapi/gstvaapisink.c:
20397 vaapisink: fix GstNavigation "key-press" / "key-release" events.
20398 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
20399 to a KeySym. In particular, there is no such Window argument. Also
20400 make sure to check for, and use, the correct <X11/XKBlib.h> header
20401 where that new function is defined. Otherwise, default to the older
20402 XKeycodeToKeysym() function.
20404 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20406 * gst/vaapi/gstvaapisink.c:
20407 vaapisink: fix GstNavigation "mouse-move" event.
20408 Really use the motion event coordinates to propagate the "mouse-move"
20409 event to upper layer, instead of those from a button event. Those are
20410 technically the same though.
20412 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20414 * gst/vaapi/gstvaapisink.c:
20415 vaapisink: implement the GstNavigation interface
20416 This is useful for things like DVD menus, where key/mouse events
20417 would need to be forwarded from the upstream sink element.
20418 https://bugzilla.gnome.org/show_bug.cgi?id=711479
20420 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20422 * gst/vaapi/gstvaapipluginbase.c:
20423 vaapipostproc: fix deinterlacing from non VA memory buffers.
20424 When we copy a buffer because we're moving it into VA-API memory, we
20425 need to copy flags. Otherwise, interlaced YUV buffers from a capture
20426 source (e.g. V4L2) don't get flagged as interlaced.
20427 https://bugzilla.gnome.org/show_bug.cgi?id=726270
20428 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20429 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
20430 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20432 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20434 * gst/vaapi/gstvaapipostproc.c:
20435 vaapipostproc: add support for GLTextureUploadMeta output.
20436 This allows for vaapipostproc to be chained to the glimagesink element
20438 https://bugzilla.gnome.org/show_bug.cgi?id=735231
20440 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20442 * gst/vaapi/gstvaapipluginutil.c:
20443 * gst/vaapi/gstvaapipluginutil.h:
20444 * gst/vaapi/gstvaapipostproc.c:
20445 vaapipostproc: add support for "download" capability.
20446 Allow implicit conversions to raw video formats, while still keeping
20447 VA surfaces underneath. This allows for chaining the vaapipostproc
20448 element to a software-only element that takes care of maps/unmaps.
20450 https://bugzilla.gnome.org/show_bug.cgi?id=720174
20452 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20454 * gst/vaapi/gstvaapipostproc.c:
20455 * gst/vaapi/gstvaapipostproc.h:
20456 vaapipostproc: use pooled vaapi video meta.
20457 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
20458 video buffer allocation. Also optimize copy of additional metadata info
20459 into the resulting video buffer: only copy the video cropping info and
20460 the source surface proxy.
20461 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20462 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20463 [fixed proxy leak, fixed double free on error, optimized meta copy]
20464 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20466 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20468 * gst/vaapi/gstvaapipostproc.c:
20469 vaapipostproc: fix passthrough mode.
20470 If no explicit output surface format is supplied try to keep the one
20471 supplied through the sink pad caps. This avoids a useless copy, even
20472 if things are kept in GPU memory.
20473 This is a performance regression from git commit dfa70b9.
20475 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20477 * gst/vaapi/gstvaapipostproc.c:
20478 * gst/vaapi/gstvaapipostproc.h:
20479 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
20480 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20481 [used new infrastructure through base decide_allocation() impl]
20482 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20484 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20486 * gst/vaapi/gstvaapipostproc.c:
20487 vaapipostproc: enable advanced deinterlacing with same format.
20488 If only advanced deinterlacing is requested, i.e. deinterlacing is
20489 the only active algorithm to apply with source and output surface
20490 formats being the same, then make sure to enable VPP processing.
20491 Otherwise, allow fallback to bob-deinterlacing with simple rendering
20494 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20496 * gst/vaapi/gstvaapivideomemory.c:
20497 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
20498 https://bugzilla.gnome.org/show_bug.cgi?id=735156
20500 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20502 * gst/vaapi/gstvaapipluginbase.c:
20503 * gst/vaapi/gstvaapipluginutil.c:
20504 plugins: fix memory leaks.
20506 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20508 * gst/vaapi/gstvaapidecode.c:
20509 * gst/vaapi/gstvaapipluginbase.c:
20510 * gst/vaapi/gstvaapipluginbase.h:
20511 plugins: factor out decide_allocation() hook.
20512 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
20513 feature argument can be used to force a bufferpool with a specific kind
20516 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20518 * gst/vaapi/gstvaapivideobufferpool.c:
20519 * gst/vaapi/gstvaapivideobufferpool.h:
20520 * gst/vaapi/gstvaapivideomemory.c:
20521 plugins: allow bufferpool to not allocate vaapi video meta.
20522 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
20523 can be used to disable early allocations of vaapi video metas on buffers,
20524 thus delagating that to the bufferpool user.
20526 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20528 * gst/vaapi/gstvaapivideobuffer.c:
20529 * gst/vaapi/gstvaapivideobuffer.h:
20530 * gst/vaapi/gstvaapivideobufferpool.c:
20531 * gst/vaapi/gstvaapivideobufferpool.h:
20532 * gst/vaapi/gstvaapivideocontext.c:
20533 * gst/vaapi/gstvaapivideocontext.h:
20534 * gst/vaapi/gstvaapivideoconverter_glx.c:
20535 * gst/vaapi/gstvaapivideoconverter_glx.h:
20536 * gst/vaapi/gstvaapivideoconverter_x11.c:
20537 * gst/vaapi/gstvaapivideoconverter_x11.h:
20538 * gst/vaapi/gstvaapivideomemory.c:
20539 * gst/vaapi/gstvaapivideomemory.h:
20540 * gst/vaapi/gstvaapivideometa.c:
20541 * gst/vaapi/gstvaapivideometa.h:
20542 * gst/vaapi/gstvaapivideometa_texture.c:
20543 * gst/vaapi/gstvaapivideometa_texture.h:
20544 plugins: re-indent all GstVaapiVideo* related source code.
20546 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20548 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20549 surfaceproxy: fix copy to propagate view_id.
20550 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
20551 fixing random frames skipped when vaapipostproc element is used in
20552 passthrough mode. In that mode, GstMemory is copied, thus including
20553 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
20555 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20557 * gst/vaapi/gstvaapipostproc.c:
20558 vaapipostproc: fix detection of output surface format changes.
20559 Default to I420 format for output surfaces so that to match the usual
20560 GStreamer pipelines. Though, internally, we could still opt for NV12
20561 surface formats, i.e. default format=ENCODED is a hint for that, thus
20562 delegating the decision to the VA driver.
20564 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20566 * gst/vaapi/gstvaapipostproc.c:
20567 vaapipostproc: fix construction of allowed sink pad caps.
20568 Fix construction of the set of caps allowed on the sink pad to filter
20569 out unsupported raw video caps with GStreamer >= 1.2.
20571 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20573 * gst/vaapi/gstvaapipostproc.c:
20574 * gst/vaapi/gstvaapipostproc.h:
20575 vaapipostproc: improve heuristics for detecting native VA surfaces.
20576 Use the new gst_caps_has_vaapi_surface() helper function to detect
20577 whether the sink pad caps contain native VA surfaces, or not, i.e.
20579 Also rename is_raw_yuv to get_va_surfaces to make the variable more
20580 explicit as we just want a way to differentiate raw video caps from
20581 VA surfaces actually.
20583 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20585 * gst/vaapi/gstvaapipostproc.c:
20586 vaapipostproc: disable discontinuity detection code.
20587 The "discontinuity" tracking code, whereby lost frames are tentatively
20588 detected, is inoperant if the sink pad buffer timestamps are not right
20590 This is a temporary workaround until the following bug is fixed:
20591 https://bugzilla.gnome.org/show_bug.cgi?id=734386
20593 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20595 * gst/vaapi/gstvaapipostproc.c:
20596 vaapipostproc: fix heuristic for detecting discontinuity.
20597 In order to make the discontinuity detection code useful, we need to
20598 detect the lost frames in the history as early as the previous frame.
20599 This is because some VA implementations only support one reference
20600 frame for advanced deinterlacing.
20601 In practice, turn the condition for detecting new frame that is beyond
20602 the previous frame from field_duration*2 to field_duration*3, i.e.
20603 nothing received for the past frame and a half because of possible
20604 rounding errors when calculating the field-duration either in this
20605 element (vaapipostproc), or from the upstream element (parser element).
20606 This is a regression introduced with commit faefd62.
20607 https://bugzilla.gnome.org/show_bug.cgi?id=734135
20609 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20611 * gst/vaapi/gstvaapipluginbase.c:
20612 * gst/vaapi/gstvaapipluginbase.h:
20613 plugins: fix detection of raw video caps.
20614 Use the new gst_caps_has_vaapi_surface() helper function to better
20615 detect raw video caps, and in particular those from RGB colorspace.
20616 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20618 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20620 * gst/vaapi/gstvaapipluginutil.c:
20621 * gst/vaapi/gstvaapipluginutil.h:
20622 plugins: add helper for detecting VA surfaces in caps.
20623 Introduce new gst_caps_has_vaapi_surface() helper function to detect
20624 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
20625 implies a check for memory:VASurface caps features, and format=ENCODED
20626 for earlier versions of GStreamer.
20628 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
20630 * gst/vaapi/gstvaapidecode.c:
20631 vaapidecode: start the decoder task again after finishing
20632 This allows the element to accept data again after draining without
20633 a hard reset or caps change happening in between.
20634 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20636 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
20638 * gst/vaapi/gstvaapidecode.c:
20639 vaapidecode: unlock condition variables before shutting down the element
20640 Otherwise threads might wait for them, causing the shutdown of the element
20641 to deadlock on the streaming thread.
20642 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20644 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
20646 * gst/vaapi/gstvaapidecode.c:
20647 vaapidecode: reset decoder_finish variable after stopping the decoder thread
20648 Otherwise the element is not usable again after draining/EOS.
20649 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20651 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
20653 * gst/vaapi/gstvaapidecode.c:
20654 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
20655 This otherwise results in unnecessary error messages.
20656 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20658 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20660 * gst-libs/gst/vaapi/Makefile.am:
20661 * gst/vaapi/Makefile.am:
20662 build: fix with --no-undefined linker flags.
20663 https://bugzilla.gnome.org/show_bug.cgi?id=729352
20665 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
20667 * gst/vaapi/gstvaapisink.c:
20668 * gst/vaapi/gstvaapisink.h:
20669 vaapisink: add support for GstColorBalance interface.
20670 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20671 [fixed channel names, simplified range factor, fixed memory leak]
20672 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20674 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
20676 * gst/vaapi/gstvaapisink.c:
20677 * gst/vaapi/gstvaapisink.h:
20678 vaapisink: add support for colorbalance adjustment.
20679 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20680 [fixed and simplified tracking of colorbalance value changes]
20681 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20683 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20685 * gst/vaapi/gstvaapisink.c:
20686 vaapisink: improve installation of properties.
20687 Simplify the creation and installation process of properties, by first
20688 accumulating them into a g_properties[] array, and next calling into
20689 g_object_class_install_properties().
20690 Also add missing docs and flags to some properties.
20692 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20694 * gst/vaapi/gstvaapisink.c:
20695 * gst/vaapi/gstvaapisink.h:
20696 vaapisink: code clean-ups.
20697 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
20698 helper macro and use it wherever we know the object is a GstBaseSink or
20699 any base class. Drop explicit initializers for values that have defaults
20702 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20704 * gst/vaapi/gstvaapisink.c:
20705 * gst/vaapi/gstvaapisink.h:
20706 vaapisink: re-indent all GstVaapiSink related source code.
20708 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20710 * gst/vaapi/gstvaapisink.c:
20711 * gst/vaapi/gstvaapisink.h:
20712 vaapisink: introduce separate backends.
20713 Introduce new backends vtable so that to have clean separation between
20714 display dependent code and common base code. That's a "soft" separation,
20715 we don't really need dedicated objects.
20716 https://bugzilla.gnome.org/show_bug.cgi?id=722248
20718 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20720 * gst/vaapi/gstvaapisink.c:
20721 * gst/vaapi/gstvaapisink.h:
20722 vaapisink: drop unused "synchronous" mode.
20723 Support for X11 "synchronous" mode was never implemented, and was only
20724 to be useful for debugging. Drop that altogether, that's not going to
20725 be useful in practice.
20726 https://bugzilla.gnome.org/show_bug.cgi?id=733985
20728 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20730 * gst/vaapi/gstvaapisink.c:
20731 * gst/vaapi/gstvaapisink.h:
20732 vaapisink: drop unused variables.
20733 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
20734 variables. They got merged into the GstVaapiPluginBase object.
20736 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20738 * gst/vaapi/gstvaapisink.c:
20739 * gst/vaapi/gstvaapisink.h:
20740 vaapisink: drop GLX rendering and fancy effects.
20741 Rendering with GLX in vaapisink is kind of useless nowadays, including
20742 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
20743 deprecated in favor of EGL, or more direct buffer sharing with actual
20745 Should testing of interop with GLX be needed, one could still be using
20746 the modern cluttersink or glimagesink elements.
20747 https://bugzilla.gnome.org/show_bug.cgi?id=733984
20749 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
20751 * gst/vaapi/gstvaapisink.c:
20752 * gst/vaapi/gstvaapisink.h:
20753 vaapisink: listen to window size changes on X11.
20754 Allow dynamic changes to the window, e.g. performed by the user, and
20755 make sure to refresh its contents, while preserving aspect ratio.
20756 In practice, Expose and ConfigureNotify events are tracked in X11
20757 display mode by default. This occurs in a separte event thread, and
20758 this is similar to what xvimagesink does. Any of those events will
20759 trigger a reconfiguration of the window "soft" size, subsequently
20760 the render-rect when necessary, and finally _expose() the result.
20761 The default of handle_events=true can be changed programatically via
20762 gst_x_overlay_handle_events().
20763 Thanks to Fabrice Bellet for rebasing the patch.
20764 https://bugzilla.gnome.org/show_bug.cgi?id=711478
20765 [dropped XInitThreads(), cleaned up the code a little]
20766 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20768 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20770 * gst/vaapi/gstvaapidecode.c:
20771 vaapidecode: decode and output all pending frames on normal EOS.
20772 The gst_vaapidecode_decode_loop() function is called within a separate
20773 task to fetch and output all frames that were decoded so far. So, if
20774 the decoder_loop_status is forcibly set to EOS when _finish() is called,
20775 then we are bound to exist the task without submitting the pending
20777 If the downstream element error'ed out, then the gst_pad_push() would
20778 propagate up an error and so we will get it right for cutting off
20779 _finish() early in that case.
20780 This is a regression from 6003596.
20781 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20783 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20786 Bump version for development.
20788 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20793 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20798 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
20800 * gst/vaapi/gstvaapidecode.c:
20801 vaapidecode: properly return from decode loop on downstream errors.
20802 Fixes a hang/race on shutdown where _decode_loop() had already completed
20803 its execution and _finish() was waiting on a GCond for decode_loop()
20804 to complete. Also fixes the possible race where _finish() is called
20805 but _decode_loop() endlessly returns before signalling completion
20806 iff the decoder instance returns GST_FLOW_OK.
20807 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
20808 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20809 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
20810 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20812 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20818 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20820 * gst/vaapi/gstvaapisink.c:
20821 vaapisink: fix GstVideoOverlay::expose() implementation.
20822 Now that we always track the currently active video buffer, it is
20823 not necessary to automatically increase its reference since this is
20824 implicitly performed in ::show_frame() through the get_input_buffer()
20825 helper from GstVaapiPluginBase class.
20826 This is a regression from a26df80.
20828 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20830 * gst/vaapi/gstvaapidecode.c:
20831 * gst/vaapi/gstvaapipluginutil.c:
20832 vaapidecode: simplify bufferpool configuration.
20833 Rework the logics behind the configuration of an adequate bufferpool,
20834 especially when OpenGL meta or additional capsfeatures are needed.
20835 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
20836 and that is not system memory, is now selected by default.
20838 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20840 * gst/vaapi/gstvaapidecode.c:
20841 vaapidecode: fix auto-plugging of vaapisink element.
20842 Make sure to propagate memory:VASurface capsfeature to srcpad caps
20843 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
20844 core currently miss additional patches available in 1.5-git (1.6).
20845 This is a temporary workaround.
20847 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20850 configure: allow builds against GStreamer git (1.5.x).
20851 https://bugzilla.gnome.org/show_bug.cgi?id=733688
20853 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20856 configure: fix build with GStreamer 1.4.0 release.
20858 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20861 * debian.upstream/Makefile.am:
20862 * debian.upstream/control.in:
20863 debian: fix packaging for new naming scheme.
20865 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20870 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20873 configure: mark support for GStreamer < 1.2 as deprecated.
20874 Supporting anything thing below GStreamer 1.2 is asking for trouble
20875 for keeping up with the required facilities to make efficient pipelines.
20876 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
20879 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20882 configure: mark support for GStreamer 0.10 as obsolete.
20883 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
20884 and may actually be removed altogether for a future release. There is
20885 no real point to maintain a build for such an ancient GStreamer version
20886 that is not even supported upstream.
20888 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20890 * gst/vaapi/gstvaapisink.c:
20891 * gst/vaapi/gstvaapisink.h:
20892 vaapisink: allow a specific view component to be displayed.
20893 If a multiview stream is decoded, multiple view components are submitted
20894 as is downstream. It is the responsibility of the sink element to display
20895 the required view components. By default, always select the frame buffer
20896 that matches the view-id of the very first frame to be displayed.
20897 However, introduce a "view-id" property to allow the selection of a
20898 specific view component of interest to display.
20900 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20902 * gst/vaapi/gstvaapisink.c:
20903 vaapisink: always keep the last displayed buffer around.
20904 Always record the VA surface that is currently being rendered, no matter
20905 the fact we are using texturedblit or overlay. That's because in some
20906 occasions, we need to refresh or resize the displayed contents based on
20907 new events. e.g. user-resized window.
20908 Besides, it's simpler to track the last video buffer in GstVaapiSink than
20909 through the base sink "last-sample".
20911 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20913 * gst/vaapi/gstvaapipluginbase.c:
20914 * gst/vaapi/gstvaapipluginbase.h:
20915 * gst/vaapi/gstvaapipluginutil.c:
20916 * gst/vaapi/gstvaapisink.c:
20917 vaapisink: add support for "display-name" property.
20918 Add a "display-name" property to vaapisink so that the end user could
20919 select the desired output. Keep "display-name" in-line with the existing
20920 "display" (GstVaapiDisplayXXX type).
20921 So, for X11 or GLX, the "display-name" is the usual display name as we
20922 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
20923 for wl_display_connect(); and for DRM, the "display-name" is actually the
20925 https://bugzilla.gnome.org/show_bug.cgi?id=722247
20927 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20929 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20930 window: make gst_vaapi_window_reconfigure() thread-safe.
20931 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
20932 thread-safe by default, so that upper layer users don't need to handle
20935 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
20937 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20938 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20939 window: allow for updating size from current geometry.
20940 Add gst_vaapi_window_reconfigure() interface to force an update of
20941 the GstVaapiWindow "soft" size, based on the current geometry of the
20942 underlying native window.
20943 This can be useful for instance to synchronize the window size when
20944 the user changed it.
20945 Thanks to Fabrice Bellet for rebasing the patch.
20946 [changed interface to gst_vaapi_window_reconfigure()]
20947 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20949 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20951 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20952 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20953 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20954 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20955 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20956 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20957 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20958 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20959 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
20960 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20961 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20962 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20963 window: re-indent all GstVaapiWindow related source code.
20965 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20967 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20968 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20969 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20970 display: add interface to retrieve the display name.
20971 Add gst_vaapi_display_get_display_name() helper function to determine
20972 the name associated with the underlying native display. Note that for
20973 raw DRM backends, the display name is actually the device path.
20975 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20977 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20978 display: fix comparison of X11 display names.
20979 Make sure to not only compare display host names, but also the actual
20980 display number. The screen number does not need to be checked at this
20983 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20985 * gst/vaapi/gstvaapidecode.c:
20986 * gst/vaapi/gstvaapivideobufferpool.c:
20987 vaapidecode: add support for VideoAlignment bufferpool option.
20988 Always add VideoAlignment bufferpool option if the downstream element
20989 expects its own pool to be used but does not offer it through a proper
20990 propose_allocation() implementation for instance, and that the ALLOCATION
20991 query does not expose the availability of the Video Meta API.
20992 This fixes propagation of video buffer stride information to Firefox.
20994 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20996 * gst/vaapi/gstvaapivideomemory.c:
20997 vaapivideomemory: always prefer native VA surface formats.
20998 Make sure to always prefer native internal formats for the VA surfaces
20999 that get allocated. Also disable "direct-rendering" mode in this case.
21000 This is needed so that to make sure that anything that gets out of the
21001 decoder, or anything that gets into the encoder, is in native format
21002 for the hardware, and thus the driver doesn't need to perform implicit
21003 conversions in there. Interop with SW elements is still available with
21004 fast implementations of VA imaging APIs.
21006 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21008 * gst/vaapi/gstvaapivideomemory.c:
21009 vaapivideomemory: disallow memory shares across buffers, use a copy.
21010 Forbid shares of GstMemory instances, and rather make copy of it. This
21011 effectively copies the GstMemory structure and enclosed metadata, but
21012 this does not copy the VA surface contents itself. It should though.
21013 This fixes preroll and makes sure to not download garbage for the first
21014 frame when a SW rendering sink is used.
21016 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21018 * gst/vaapi/gstvaapivideomemory.c:
21019 * gst/vaapi/gstvaapivideomemory.h:
21020 vaapivideomemory: use an image pool to cache objects.
21021 Use an image pool to hold VA images to be used for downloads/uploads
21022 of contents for the associated surface.
21023 This is an optmization for size. So, instead of creating as many VA
21024 images as there are buffers (then VA surfaces) allocated, we only
21025 maintain a minimal set of live VA images, thus preserving memory
21028 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21030 * gst/vaapi/gstvaapivideomemory.c:
21031 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
21032 Disable read-write mappings if "direct-rendering" is not supported.
21033 Since the ordering of read and write operations is not specified,
21034 this would require to always download the VA surface on _map(), then
21035 commit the temporary VA image back to the VA surface on _unmap().
21036 Some SW decoding plug-in elements still use R/W mappings though.
21037 https://bugzilla.gnome.org/show_bug.cgi?id=733242
21039 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21041 * gst/vaapi/gstvaapivideomemory.c:
21042 vaapivideomemory: minor code clean-ups.
21043 Fix error messages introduced in the previous commit for the _map()
21044 imaplementation. Also use the new get_image_data() helper function
21045 to determine the base pixels data buffer from a GstVaapiImage when
21046 updating the video info structure from it.
21048 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21050 * gst/vaapi/gstvaapivideomemory.c:
21051 * gst/vaapi/gstvaapivideomemory.h:
21052 vaapivideomemory: add support for raw pixels mappings.
21053 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
21054 cases where the buffer pool is allocated without VideoMeta API, thus
21055 individual planes cannot be mapped.
21056 This is initial support for Firefox >= 30.
21057 https://bugzilla.gnome.org/show_bug.cgi?id=731886
21059 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21061 * gst/vaapi/gstvaapivideomemory.c:
21062 vaapivideomemory: fix determination of the surface pool format.
21063 While creating the vaapi video allocator, make sure the associated
21064 surface pool has correct format instead of defaulting to NV12 video
21065 format even though there is no direct rendering support.
21066 https://bugzilla.gnome.org/show_bug.cgi?id=732691
21068 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21070 * gst/vaapi/gstvaapivideomemory.c:
21071 vaapivideomemory: fix association of surface to proxy.
21072 Make sure to always update the VA surface pointer whenever the proxy
21073 changes. This used to only work when the VA surface is written to, in
21074 interop with SW element ("upload" feature), and this now fixes cases
21075 when the VA surface is needed for reading, in interop with SW element
21076 ("download" feature).
21078 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21080 * gst/vaapi/gstvaapidecode.c:
21081 * gst/vaapi/gstvaapipluginutil.c:
21082 * gst/vaapi/gstvaapivideomemory.c:
21083 plugins: expose I420 format for interop with SW elements.
21084 Always expose I420 format by default when the VA surface could be
21085 mapped for interoperability with non harware accelerated elements.
21086 However, the default behaviour remains the auto-plugging of vaapi
21087 elements, down to the sink.
21088 Side effect: "direct-rendering" mode is also disabled most of the
21089 times as plain memcpy() from uncached speculative write combining
21090 memory is not going to be efficient enough.
21092 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21094 * gst/vaapi/gstvaapidecode.c:
21095 * gst/vaapi/gstvaapivideomemory.c:
21096 plugins: allow download capability to vaapidecode element.
21097 Fix support for VA surface download capability in vaapidecode element
21098 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
21099 but also the libva-intel-driver while performing hardware accelerated
21100 conversions from the native VA surface format (NV12) to the desired
21101 output VA image format.
21102 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
21103 https://bugzilla.gnome.org/show_bug.cgi?id=733243
21105 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
21107 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21108 decoder: mpeg4: fix picture decoder return value for skipped frames.
21109 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
21110 when a frame should be skipped, so the stream processing is not stalled.
21111 https://bugzilla.gnome.org/show_bug.cgi?id=733324
21113 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
21115 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21116 decoder: mpeg2: respect any input PTS provided for a frame.
21117 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
21118 frame timestamps within a GOP, even when it's been fed input PTS for
21120 That leads to incorrect output timestamps in some situations - for example
21121 live playback where input timestamps have been scaled based on arrival time
21122 from the network and don't exactly match the framerate.
21123 https://bugzilla.gnome.org/show_bug.cgi?id=732719
21125 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21127 * gst-libs/gst/vaapi/gstvaapiobject.c:
21128 GstVaapiObject: make gst_vaapi_object_new() more robust.
21129 Forbid GstVaapiObject to be created without an associated klass spec.
21130 It is mandatory that the subclass implements an adequate .finalize()
21131 hook, so it shall provide a valid GstVaapiObjectClass.
21132 https://bugzilla.gnome.org/show_bug.cgi?id=722757
21133 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
21134 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21136 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21138 * gst-libs/gst/vaapi/gstvaapiobject.c:
21139 GstVaapiObject: initialize the derived object data with init() hook.
21140 Call the subclass .init() function in gst_vaapi_object_new(), if
21141 needed. The default behaviour is to zero initialize the subclass
21142 object data, then the .init() function can be used to initialize
21143 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
21144 Also fix the gst_vaapi_object_new() description, which was merely
21145 copied from GstVaapiMiniObject.
21146 https://bugzilla.gnome.org/show_bug.cgi?id=722757
21147 [changed to always zero initialize the subclass]
21148 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21150 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
21152 * gst/vaapi/gstvaapidecode.c:
21153 vaapidecode: make decoder work with playbin
21154 When playbin/decodebin builds the pipeline, it puts decoders and sinks
21155 into different bins and forwards the queries from bins to bins. So in
21156 the initials steps the pipeline is built iteratively by playbin and
21159 [filesrc] -> [typefind]
21160 [filesrc] -> [typefind] -> [demuxer]
21161 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
21162 At this point the decoder is asked for its SRC caps and it will make a
21163 choice based on what gst_pad_peer_query_caps() returns. The problem is
21164 that the caps returns at that point includes caps features like ANY,
21165 essentially because playbin can plug in additional elements like
21166 videoscale, videoconv or deinterlace.
21167 This patch adds a another call to
21168 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
21169 allocation, to make sure we asks the downstream elements when the
21170 entire pipeline has been built.
21171 https://bugzilla.gnome.org/show_bug.cgi?id=731645
21173 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21175 * gst/vaapi/gstvaapipostproc.c:
21176 vaapipostproc: don't let tmp_rect go out of scope.
21177 A compiler change showed me that tmp_rect went out of scope before
21178 it was used. Move it to the beginning of the function instead.
21179 https://bugzilla.gnome.org/show_bug.cgi?id=726363
21180 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21181 [added guards for GStreamer 0.10 builds]
21182 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21184 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21189 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21193 Drop references to deprecated plugins (vaapiupload, vaapidownload),
21194 mention that support for GStreamer 0.10 is deprecated, make overview
21195 more descriptive in certain aspects.
21197 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21202 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21206 build: mention that support for GStreamer 0.10 is deprecated.
21208 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21211 * gst/vaapi/gstvaapidecode.c:
21212 build: fix for GStreamer 0.10.
21214 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21216 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21217 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
21218 * patches/videoparsers/series.frag:
21219 build: fix for GStreamer 1.0.x.
21221 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21223 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21224 decoder: h264: detect incorrectly paired fields in frames.
21225 When a DPB flush is required, e.g. at a natural and of stream or issued
21226 explicitly through an IDR, try to detect any frame left in the DPB that
21227 is interlaced but does not contain two decoded fields. In that case, mark
21228 the picture as having a single field only.
21229 This avoids a hang while decoding tv_cut.mkv.
21231 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21233 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21234 decoder: h264: simplify the DPB output process.
21235 Simplify the dpb_output() function to exclusively rely on the frame store
21236 buffer to output, since this is now always provided. Besides, also fix
21237 cases where split fields would not be displayed.
21238 This is a regression from f48b1e0.
21240 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21242 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21243 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21244 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21245 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
21246 * patches/videoparsers/series.frag:
21247 h264parse: drop patches merged upstream.
21248 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
21249 0005-h264parse-introduce-new-state-tracking-variables.patch
21250 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
21251 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
21253 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21255 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21256 decoder: h264: fix memory leak in PPS.
21257 Cope with latest changes from codecparsers/h264. It is now required
21258 to explicitly clear the GstH264PPS structure as it could contain
21259 additional allocations (slice_group_ids).
21261 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21263 * ext/codecparsers:
21264 codecparsers: update to gst-vaapi-branch commit 2d53b69.
21265 c4ace00 h264parse: fix collection of access units to preserve config headers
21266 0f9f7c9 h264parse: improve conditions for skipping NAL units
21267 9ffb25c h264parse: introduce new state tracking variables
21268 64955d3 h264parse: fix and optimize NAL collection function
21269 13cd2a3 h264: clarifications and documentation fixes
21270 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
21271 18f0de0 h264: fix memory leak in GstH264PPS
21272 fdcb54c h264: fix typo in GstH264VUIParams description
21273 fd4dae9 vp8: move up built-in range decoder private data
21275 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21277 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21278 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21279 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
21280 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
21281 decoder: propagate MVC metadata ("view-id", head of multiview set).
21282 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
21283 bundle", and really expresses the first view component of a multi
21284 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
21286 Likewise, new API is exposed to retrieve the associated "view-id".
21288 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21290 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21291 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21292 decoder: propagate "one-field" flags.
21293 Allow decoders to set the "one-field" attribute when the decoded frame
21294 genuinely has a single field, or if the second field was mis-decoded but
21295 we still want to display the first field.
21297 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21299 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21300 decoder: output decoded frames only once.
21301 Make sure to output the decoded picture, and push the associated
21302 GstVideoCodecFrame, only once. The frame fully represents what needs
21303 to be output, included for interlaced streams. Otherwise, the base
21304 GstVideoDecoder class would release the frame twice.
21305 Anyway, the general process is to output decoded frames only when
21306 they are complete. By complete, we mean a full frame was decoded or
21307 both fields of a frame were decoded.
21309 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21311 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21312 decoder: h264: decode current picture earlier.
21313 Slightly optimize decoding process by submitting the current VA surface
21314 for decoding earlier to the hardware, and perform the reference picture
21315 marking process and DPB update process afterwards.
21316 This is a minor optimization to let the video decode engine kick in work
21317 earlier, thus improving parallel resources utilization.
21319 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21321 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21322 decoder: h264: fix output of second field when first field is not in DPB.
21323 Fix decoding of interlaced streams where a first field (e.g. B-slice)
21324 was immediately output and the current decoded field is to be paired
21325 with that former frame, which is no longer in DPB.
21326 https://bugzilla.gnome.org/show_bug.cgi?id=701340
21328 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21330 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21331 decoder: h264: slightly optimize the process to detect new pictures.
21332 Optimize the process to detect new pictures or start of new access
21333 units by checking if the previous NAL unit was the end of a picture,
21334 or the end of the previous access unit.
21336 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21338 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21339 decoder: h264: handle access unit ("au") optimization.
21340 Optimize parsing when buffers are supplied with access unit alignment.
21341 This helps determining faster when the end of an access unit is reached.
21343 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21345 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21346 decoder: h264: fix tracking of DPB size changes.
21347 Add support for MVC streams with multiple SPS and subset SPS headers
21348 emitted regularly, e.g. at around every I-frame. Track the maximum
21349 number of views in ensure_context() and really reset the DPB size to
21350 the expected value, always. i.e. even if it decreased. dpb_reset()
21351 only cares of ensuring the DPB allocation.
21353 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21355 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21356 decoder: h264: fix the DPB compaction process.
21357 Fix the compaction process when the DPB is cleared for a specific
21358 view, i.e. fix the process of filling in the holes resulting from
21359 removing frame buffers matching the current picture.
21361 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21363 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21364 encoder: h264: generate new SPS only when codec config changed.
21365 It is not necessary to periodically send SPS or subset SPS headers.
21366 This is up to the upper layer (e.g. transport layer) to decide on
21367 if/how to periodically submit those. For now, only generate new SPS
21368 or subset SPS headers when the codec config changed.
21369 Note: the upper layer could readily determine the config headers
21370 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
21371 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21372 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21374 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21376 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21377 encoder: h264: track encoder config changes.
21378 Track and report when encoder configuration changed. For now, this covers
21379 resolution, profile/level and bitrate changes.
21381 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21383 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21384 encoder: h264: add pixel-aspect-ratio to VUI parameters.
21385 Report sample aspect ratio (SAR) as present, and make it match what
21386 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
21387 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
21389 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21391 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21392 encoder: h264: fix number of anchor and non-anchor reference pictures.
21393 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
21394 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
21397 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21399 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21400 encoder: h264: fix timing_info_present_flag value in subset SPS.
21401 When the seq_parameter_set_data() syntax structure is present in a subset
21402 sequence parameter set and vui_parameters_present_flag is equal to 1, then
21403 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
21405 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21407 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21408 encoder: h264: add cpbBrNalFactor values for MVC profiles.
21410 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21412 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21413 h264parse: fix detection of access unit boundaries for MVC.
21414 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
21415 this function is used to determine access unit boundaries, i.e. that
21416 is the key function for alignment=au output format generation.
21418 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21420 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
21421 * patches/videoparsers/series.frag:
21422 h264parse: fix collection of access units to preserve config headers.
21423 Always use a GstAdapter when collecting access units (alignment="au")
21424 in either byte-stream or avcC format. This is required to properly
21425 preserve config headers like SPS and PPS when invalid or broken NAL
21426 units are subsequently parsed.
21427 More precisely, this fixes scenario like:
21428 <SPS> <PPS> <invalid-NAL> <slice>
21429 where we used to reset the output frame buffer when an invalid or
21430 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
21431 preventing the next slice unit to be decoded, should this also
21432 represent any valid data.
21433 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21435 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21437 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21438 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21439 * patches/videoparsers/series.frag:
21440 h264parse: improve conditions for skipping NAL units.
21441 Carefully track cases when skipping broken or invalid NAL units is
21442 necessary. In particular, always allow NAL units to be processed
21443 and let that gst_h264_parse_process_nal() function decide on whether
21444 the current NAL needs to be dropped or not.
21445 This fixes parsing of streams with SEI NAL buffering_period() message
21446 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
21447 SPS NAL unit, among other cases too.
21448 Practical examples from the H.264 AVC conformance suite include
21449 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
21450 when parsing in stream-format=byte-stream,alignment=au mode.
21451 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21453 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21455 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21456 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21457 * patches/videoparsers/series.frag:
21458 h264parse: introduce new state tracking variables.
21459 Improve parser state tracking by introducing new flags reflecting
21460 it: "got-sps", "got-pps" and "got-slice". This is an addition for
21461 robustness purposes.
21462 Older have_sps and have_pps variables are kept because they have
21463 a different meaning. i.e. they are used for deciding on when to
21464 submit updated caps or not, and rather mean "have new SPS/PPS to
21467 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21469 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
21470 * patches/videoparsers/series.frag:
21471 h264parse: default to byte-stream/nalu format (Annex B).
21472 Always default to stream-format=byte-stream,alignment=nalu if avcC
21473 format was not detected. This is the natural stream format specified
21474 in the standard (Annex.B): a series of NAL units prefixed with the
21476 https://bugzilla.gnome.org/show_bug.cgi?id=732167
21478 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21480 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21481 * patches/videoparsers/series.frag:
21482 h264parse: fix and optimize NAL collection function.
21483 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
21484 NAL unit. We don't want to parse the full NAL unit, but only the
21485 header bytes and possibly the first RBSP byte for identifying the
21486 first_mb_in_slice syntax element.
21487 Also fix check for failure when returning from that function. The
21488 only success condition for that is GST_H264_PARSER_OK, so use it.
21489 https://bugzilla.gnome.org/show_bug.cgi?id=732154
21491 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21493 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21494 encoder: h264: fix NAL unit types in packed headers.
21495 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
21496 slice header (nal_unit_type = 1 or 5) only for the base view. In non
21497 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
21498 is required, with an appropriate nal_unit_header_mvc_extension() in
21499 the NAL header bytes.
21500 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21502 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21504 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21505 encoder: h264: add missing field in packed Subset SPS header.
21506 Write the missing num_level_values_signalled_minus1 syntax element
21507 into the packed header for subset sequence parameter set.
21508 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21510 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21512 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21513 decoder: h264: fix marking of non-reference picture into DPB.
21514 Fix search for a picture in the DPB that has a lower POC value than
21515 the current picture. The dpb_find_lowest_poc() function will return
21516 a picture with the lowest POC in DPB and that is marked as "needed
21517 for output", but an additional check against the actual POC value
21518 of the current picture is needed.
21519 This is a regression from 1c46990.
21520 https://bugzilla.gnome.org/show_bug.cgi?id=732130
21522 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21524 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21525 decoder: h264: fix DPB clear when no decoding actually started.
21526 Fix dpb_clear() to clear previous frame buffers only if they actually
21527 exist to begin with. If the decoder bailed out early, e.g. when it
21528 does not support a specific profile, that array of previous frames
21529 might not be allocated beforehand.
21531 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21533 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21534 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21535 * gst/vaapi/gstvaapidecode.c:
21536 decoder: h264: add support for NALU "alignment" optimization.
21537 We can avoid scanning for start codes again if the bitstream is fed
21538 in NALU chunks. Currently, we always scan for start codes, and keep
21539 track of remaining bits in a GstAdapter, even if, in practice, we
21540 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
21542 https://bugzilla.gnome.org/show_bug.cgi?id=723284
21543 [use gst_adapter_available_fast() to determine the top buffer size]
21544 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21546 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21548 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21549 decoder: h264: fix caps to report interlace-mode accordingly.
21550 The `vaapipostproc' element could never determine if the H.264 stream
21551 was interlaced, and thus always assumed it to be progressive. Fix the
21552 H.264 decoder to report interlace-mode accordingly, thus allowing the
21553 vaapipostproc element to automatically enable deinterlacing.
21555 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21557 * gst/vaapi/gstvaapipostproc.c:
21558 vaapipostproc: don't crash with dynamic framerate (0/1).
21559 Avoid reaching an assert if dynamic framerates (0/1) are used. One
21560 way to solve this problem is to just stick field_duration to zero.
21561 However, this means that, in presence of interlaced streams, the
21562 very first field will never be displayed if precise presentation
21563 timestamps are honoured.
21564 https://bugzilla.gnome.org/show_bug.cgi?id=729604
21566 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21568 * gst/vaapi/gstvaapipostproc.c:
21569 vaapipostproc: create filter surface pool if it does not exist yet.
21570 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
21571 recreating filter_pool. Unfortunately, this also meant it didn't create
21572 it if it did not exist.
21573 Fix it to always create the buffer pool if it does not exist.
21574 https://bugzilla.gnome.org/show_bug.cgi?id=723834
21575 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21577 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
21579 * gst/vaapi/gstvaapipostproc.c:
21580 vaapipostproc: reset deinterlacer state when there is a discontinuity.
21581 Reset deinterlacer state, i.e. past reference frames used for advanced
21582 deinterlacing, when there is some discontinuity detected in the course
21583 of processing source buffers.
21584 This fixes support for advanced deinterlacing when a seek occurred.
21585 https://bugzilla.gnome.org/show_bug.cgi?id=720375
21586 [fixed type of pts_diff variable, fetch previous buffer PTS from the
21587 history buffer, reduce heuristic for detecting discontinuity]
21588 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21590 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21592 * gst/vaapi/gstvaapipostproc.c:
21593 vaapipostproc: add support for crop regions in VPP mode.
21594 Apply video cropping regions stored in GstVideoCropMeta, or in older
21595 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
21596 the crop meta are already propagated to the output buffers.
21597 https://bugzilla.gnome.org/show_bug.cgi?id=720730
21599 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21601 * gst/vaapi/gstvaapipostproc.c:
21602 vaapipostproc: make deinterlace-mode behave as expected.
21603 deinterlace-mode didn't behave in the way you'd expect if you have
21604 past experience of the deinterlace element. There were two bugs:
21605 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
21606 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
21607 Fix these up, and add assertions and error messages to detect cases that
21609 https://bugzilla.gnome.org/show_bug.cgi?id=726361
21610 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21611 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21613 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21615 * gst/vaapi/gstvaapidecode.c:
21616 vaapidecode: do not discard video info props when the format changed.
21617 gst_video_info_set_format() does not preserve video info properties. In
21618 order to keep important information in the caps such as interlace mode,
21619 framerate, pixel aspect ratio, ... we need to manually copy back those
21620 properties after setting the new video format.
21621 https://bugzilla.gnome.org/show_bug.cgi?id=722276
21623 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
21625 * gst/vaapi/gstvaapidecode.c:
21626 vaapidecode: plug a memory leak.
21627 It can happen that there is a pool provided that does not advertise
21628 the vappivideometa. We should unref that pool before using our own.
21629 Discovered with vaapidecode ! {glimagesink,cluttersink}
21630 https://bugzilla.gnome.org/show_bug.cgi?id=724957
21631 [fixed compilation by adding the missing semi-colon]
21632 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21634 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21636 * gst/vaapi/gstvaapidecode.c:
21637 vaapidecode: parse source data until a frame is obtained.
21638 Parse any pending data until a complete frame is obtained. This is a
21639 memory optimization to avoid expansion of video packets stuffed into
21640 the GstAdapter, and a fix to EOS condition to detect there is actually
21641 pending data that needs to be decoded, and subsequently output.
21642 https://bugzilla.gnome.org/show_bug.cgi?id=731831
21644 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21646 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21647 encoder: h264: fix multiple slices support in packed headers mode.
21648 Handle packedi slice headers and packed raw data on a per-slice basis,
21649 which is necessary for multi slice encoding.
21651 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21653 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21654 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21655 encoder: add infrastructure for per-slice handling of packed headers.
21656 The packed slice header and packed raw data need to be paired with
21657 the submission of VAEncSliceHeaderParameterBuffer. So handle them
21658 on a per-slice basis insted of a per-picture basis.
21659 [removed useless initializer]
21660 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21662 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21664 * gst/vaapi/gstvaapisink.c:
21665 vaapisink: fix initialization with "drm" display type.
21666 Force early initializatin of the GstVaapiDisplay so that to make sure
21667 that the sink element display object is presented first to upstream
21668 elements, as it will be correctly featuring the requested display type
21670 Otherwise, we might end up in situations where a VA/X11 display is
21671 initialized in vaapidecode, then we try VA/DRM display in vaapisink
21672 (as requested by the "display" property), but this would cause a failure
21673 because we cannot acquire a DRM display that was previously acquired
21674 through another backend (e.g. VA/X11).
21676 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21678 * gst/vaapi/gstvaapipluginbase.c:
21679 plugins: fix initialization with foreign context.
21680 When a new display is settled through GstElement::set_context() (>= 1.2),
21681 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
21682 associated display type.
21684 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21689 * gst/vaapi/Makefile.am:
21690 * gst/vaapi/gstvaapiparse.c:
21691 * gst/vaapi/gstvaapiparse.h:
21692 * patches/Makefile.am:
21693 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
21694 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21695 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21696 * patches/videoparsers/Makefile.am:
21697 * patches/videoparsers/series.frag:
21698 plugins: add built-in video parsers as "vaapiparse" element.
21699 The built-in video parsers elements are built into a single DSO named
21700 libgstvaapi_parse.so. The various video parsers could be accessed as
21702 For now, this only includes a modified version of h264parse so that to
21703 support H.264 MVC encoded streams.
21705 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21707 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21708 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
21709 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
21710 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
21712 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21714 * ext/codecparsers:
21715 codecparsers: update to gst-vaapi-branch commit d6325ac.
21716 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
21717 d2f965a h264parse: set field_pic_flag when parsing a slice header
21718 24c15b8 Import h264parse
21719 a9283e5 bytereader: Use concistant derefence method
21720 a8252c6 bytereader: Use pointer instead of index access
21721 b1bebfc Import GstBitReader and GstByteReader
21722 2f58788 h264: recognize SVC NAL units
21723 4335da5 h264: fix SPS copy code for MVC
21724 cf9b6dc h264: fix quantization matrix conversion routine names
21725 b11ce2a h264: add gst_h264_video_calculate_framerate()
21726 126dc6f add C++ guards for MPEG-4 and VP8 parsers
21728 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21730 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21731 decoder: h264: factor out DPB pruning for MVC.
21732 Factor out the removal process of unused inter-view only reference
21733 pictures from the DPB, prior to the possible insertion of the current
21735 Ideally, the compiler could still opt for generating two loops. But
21736 at least, the code is now clearer for maintenance.
21738 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21740 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21741 decoder: h264: clean-ups.
21742 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
21743 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
21745 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21747 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21748 decoder: h264: improve pruning of unused MVC inter-view frames.
21749 Improve process for the removal of pictures from DPB before possible
21750 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
21751 reference components. In particular, handle cases where picture to be
21752 inserted is not the last one of the access unit and if it was already
21753 output and is no longer marked as used for reference, including for
21754 decoding next view components within the same access unit.
21756 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21758 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21759 decoder: h264: improve DPB bumping process for MVC.
21760 While invoking the DPB bumping process in presence of many views,
21761 it could be necessary to output previous pictures that are ready,
21762 in a whole. i.e. emitting all view components from the very first
21763 view order index zero to the very last one in its original access
21764 unit; and not starting from the view order index of the picture
21765 that caused the DPB bumping process to be invoked.
21766 As a reminder, the maximum number of frames in DPB for MultiView
21767 High profile with more than 2 views is not necessarily a multiple
21768 of the number of views.
21769 This fixes decoding of MVCNV-4.264.
21771 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21773 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21774 decoder: h264: fix inter-view references array growth.
21775 Let the utility layer handle dynamic growth of the inter-view pictures
21776 array. By definition, setting a new size to the array will effectively
21777 grow the array, but would also fill in the newly created elements with
21778 empty entries (NULL), thus also increasing the reported length, which
21781 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21783 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21784 decoder: h264: reduce ReferenceFrames entries to the essential set.
21785 When decoding Multiview High profile streams with a large number of
21786 views, it is not possible to make the VAPictureParameterBufferH264.
21787 ReferenceFrames[] array hold the complete DPB, with all possibly
21788 active pictures to be used for inter-view prediction in the current
21790 So reduce the scope of the ReferenceFrames[] array to only include
21791 the set of reference pictures that are going to be used for decoding
21792 the current picture. Basically, this is a union of all RefPicListX[]
21793 array, for all slices constituting the decoded picture.
21795 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21797 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21798 decoder: h264: fix MVC inter-view prediction process.
21799 The inter-view reference components and inter-view only reference
21800 components that are included in the reference picture lists shall
21801 be considered as not being marked as "used for short-term reference"
21802 or "used for long-term reference". This means that reference flags
21803 should all be removed from VAPictureH264.flags.
21804 This fixes decoding of MVCNV-2.264.
21806 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21808 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21809 decoder: h264: fix detection of profile changes for MVC.
21810 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
21811 be careful to detect profiles changes and not reset the underlying
21812 VA context erroneously. In MVC situations, we could indeed get a
21813 profile_idc change for every SPS that gets activated, alternatively
21814 (base-view -> non-base view -> base-view, etc.).
21815 An improved fix would be to characterize the exact profile to use
21816 once and for all when SPS NAL units are parsed. This would also
21817 allow for fallbacks to a base-view decoding only mode.
21819 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21821 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21822 encoder: h264: drop extraneous definitions.
21823 Re-use definitions from the codecparser headers instead of duplicating
21824 them here again. That covers NALU definitions and slice types.
21826 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21828 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21829 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
21830 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21832 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21834 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21835 encoder: h264: don't allow CABAC with Extended profile.
21836 The H.264 specification does not support CABAC entropy coding for the
21838 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21840 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21842 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21843 encoder: h264: use packed headers mode for MVC encoding.
21844 Exclusively use VA drivers that support raw packed headers for encoding.
21845 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
21846 provides for better compatibility accross the various VA drivers and HW
21847 generations since no particular API is needed beyond what readily exists.
21849 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21851 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21852 encoder: h264: add support for packed slice headers.
21853 https://bugzilla.gnome.org/show_bug.cgi?id=722905
21855 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21857 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21858 encoder: h264: store subset sps to generate the codec-data
21859 Store the SubsetSPS nal unit which we need for MVC specific
21860 codec_data generation.
21862 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21864 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21865 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
21866 Since we are encoding each view independently from each other, we
21867 need a higher number of pre-allocated surfaces to be used as the
21868 reconstructed frames. For Stereo High profile encoding, this means
21869 to effectively double the number of frames to be stored in the DPB.
21871 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21873 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21874 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21875 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21876 * gst/vaapi/gstvaapiencode_h264.c:
21877 encoder: h264: add initial support for H.264 Stereo High profile.
21878 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
21879 for non-base-view streams encoding, and the usual SPS, PPS and Slice
21880 NALs for base-view encoding.
21881 The H.264 Stereo High profile encoding mode will be turned on when the
21882 "num-views" parameter is set to 2. The source (raw) YUV frames will be
21883 considered as Left/Right view, alternatively.
21884 Each of the two views has its own frames reordering pool and reference
21885 frames list management system. Inter-view references are not supported
21886 yet, so the views are encoded independently from each other.
21887 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21888 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
21889 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21891 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21893 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21894 encoder: h264: wrap pools for refs and frames reordering.
21895 Create structures to maintain the reference frames list (RefPool) and
21896 frames reordering (ReorderPool) logic.
21897 This is a prerequisite for H.264 MVC support.
21898 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21900 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21902 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21903 encoder: h264: add provisional support for subset SPS headers.
21904 Add provisions to write subset SPS headers to the bitstream in view
21905 to supporting the H.264 MVC specification.
21906 This assumes the libva "staging" branch is in use.
21907 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21909 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21911 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21912 * gst-libs/gst/vaapi/gstvaapiutils.c:
21913 utils: add H.264 MVC profiles.
21914 Add "MultiView High" and "Stereo High" definitions.
21915 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21916 [require VA-API >= 0.35.2 for MVC profiles]
21917 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21919 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21921 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21922 * gst-libs/gst/vaapi/gstvaapiutils.c:
21923 utils: only enable VP8 profiles for newer VA-API versions.
21924 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
21925 involving VP8 codec on earlier versions of the API.
21927 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21929 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21930 decoder: h264: compute view ids only once per slice.
21931 Optimize lookups of view ids / view order indices by caching the result
21932 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
21933 terribly simplifies is_new_access_unit() and find_first_field() functions.
21935 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21937 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21938 decoder: h264: add support for MVC interlaced streams.
21939 Fix support for MVC Stereo High profile streams with interlaced frames.
21940 Also improve the detection logic of the first field.
21942 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21944 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21945 decoder: h264: add MVC profiles compatibility logic.
21946 Add safe fallbacks for MVC profiles:
21947 - all MultiView High profile streams with 2 views at most can be decoded
21948 with a Stereo High profile compliant decoder ;
21949 - all Stereo High profile streams with only progressive views can be
21950 decoded with a MultiView High profile compliant decoder ;
21951 - all drivers that support slice-level decoding could normally support
21952 MVC profiles when the DPB holds at most 16 frames.
21954 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21956 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21957 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21958 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21959 decoder: h264: add initial support for MVC.
21960 https://bugzilla.gnome.org/show_bug.cgi?id=721772
21962 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21964 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21965 decoder: h264: dynamically allocate the DPB.
21966 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
21967 for supporting the MVC allocation requirements.
21969 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21971 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21972 decoder: h264: fix detection of access unit boundaries.
21973 In order to have a stricter conforming implementation, we need to carefully
21974 detect access unit boundaries. Additional operations could be necessary to
21975 perform at those boundaries.
21977 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21979 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21980 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
21981 Detect the first VCL NAL unit of a picture for MVC, based on the
21982 view_id as per H.7.4.1.2.4. Note that we only need to detect new
21984 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21986 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21988 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21989 decoder: h264: properly handle Prefix NAL units.
21990 Always cache the previous NAL unit so that we could check whether
21991 there is a Prefix NAL unit immediately preceding the current slice
21992 or IDR NAL unit. In that case, the NAL unit metadata is copied into
21993 the current NAL unit. Otherwise, some default values are inferred,
21994 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
21995 [infer default values for slice if previous NAL was not a Prefix]
21996 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21998 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
22000 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22001 decoder: h264: add support for MVC base views.
22002 Allow decoding for base views of MVC encoded streams. For now, just skip
22003 the slice extension and prefix NAL units, and skip non-base view frames.
22004 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
22005 [fixed memory leak, improved check for MVC NAL units]
22006 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22008 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22010 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22011 decoder: h264: simplify storage of decoded picture into DPB.
22012 Factor out process by which the decoded picture with the lowest POC
22013 is found, and possibly output. Likewise, the storage and marking of
22014 a reference decoded, or non-reference decoded picture, into the DPB
22015 could also be simplified as they mostly share the same operations.
22017 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22019 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22020 decoder: h264: minor clean-ups.
22021 Make init_picture_ref_lists() more consistent with other functions
22022 related to the reference marking process by supplying the current
22023 picture as argument.
22025 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22027 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22028 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22029 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22030 display: add utility function to query VA driver name.
22031 Add gst_vaapi_display_get_vendor_string() helper function to query
22032 the underlying VA driver name. The display object owns the resulting
22033 string, so it shall not be deallocated.
22034 That function is thread-safe. It could be used for debugging purposes,
22037 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22039 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22040 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
22041 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22042 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
22043 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
22044 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
22045 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22046 display: make cache maintenance really MT-safe.
22047 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
22048 environments. This makes sure the display cache is also consistent
22049 during the whole display creation process. In the former implementation,
22050 there were risks that display cache got updated in another thread.
22052 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22054 * gst-libs/gst/vaapi/gstvaapicontext.c:
22055 context: allow dynamic growth of VA surfaces pool.
22056 Add support for dynamic growth of the VA surfaces pool. For decoding,
22057 this implies the recreation of the underlying VA context, as per the
22058 requirement from VA-API. Besides, only increases are supported, not
22061 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22063 * gst-libs/gst/vaapi/gstvaapicontext.c:
22064 context: reset VA context if VA surfaces set changed.
22065 It is a requirement from VA-API specification that the VA context got
22066 from vaCreateContext(), for decoding purposes, binds the supplied set
22067 of VA surfaces. This means that if the set of VA surfaces is to be
22068 changed for the current decode session, then the VA context needs to
22069 be recreated with the new set of VA surfaces.
22071 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22073 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22074 decoder: h264: fix assignment of LongTermFrameIdx.
22075 Complement fix committed as e95a42e.
22076 The H.264 AVC standard has to say: if the field is part of a reference
22077 frame or a complementary reference field pair, and the other field of
22078 the same reference frame or complementary reference field pair is also
22079 marked as "used for long-term reference", the reference frame or
22080 complementary reference field pair is also marked as "used for long-term
22081 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
22082 This fixes decoding of MR9_BT_B in strict mode.
22083 https://bugs.freedesktop.org/show_bug.cgi?id=64624
22084 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22086 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22088 * gst-libs/gst/vaapi/gstvaapicontext.c:
22089 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22090 * gst-libs/gst/vaapi/gstvaapiutils.c:
22091 * gst-libs/gst/vaapi/gstvaapiutils.h:
22092 decoder: h264: properly support grayscale formats.
22093 Request the correct chroma format for decoding grayscale streams.
22094 i.e. make lookups of the VA chroma format more generic, thus possibly
22095 supporting more formats in the future.
22096 This means that, if a VA driver doesn't support grayscale formats,
22097 it is now going to fail. We cannot safely assume that maybe grayscale
22098 was implemented on top of some YUV 4:2:0 with the chroma components
22101 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22103 * gst-libs/gst/vaapi/gstvaapifilter.c:
22104 * gst-libs/gst/vaapi/gstvaapifilter.h:
22105 * tests/test-filter.c:
22106 build: fix source file modes.
22107 A few source files are marked executable in error - fix them
22108 https://bugzilla.gnome.org/show_bug.cgi?id=723748
22109 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22111 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22114 * gst-libs/gst/vaapi/Makefile.am:
22115 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22116 * gst/vaapi/gstvaapidecode.c:
22117 build: fix conditional compilation of VP8 decoder.
22118 https://bugzilla.gnome.org/show_bug.cgi?id=729170
22119 [added check for VASliceParameterBufferBase fields]
22120 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22122 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22124 * gst-libs/gst/codecparsers/Makefile.am:
22125 build: fix make dist for codecparsers.
22127 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22129 * ext/codecparsers:
22130 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
22131 h264: fix parsing of slice groups for map type = 2
22133 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22135 * ext/codecparsers:
22136 codecparsers: update to gst-vaapi branch commit f44edfc.
22137 h264: fix derivation of default scaling lists
22139 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
22141 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22142 decoder: h264: fix long-term reference picture marking process.
22143 Fix reference picture marking process with memory_management_control_op
22144 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
22145 picture, or the current picture.
22146 This fixes decoding of FRExt_MMCO4_Sony_B.
22147 https://bugs.freedesktop.org/show_bug.cgi?id=64624
22148 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22149 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
22150 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22152 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22154 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22155 decoder: h264: fix initialization of RefPicLists for multiple slices.
22156 The initialization of reference picture lists (8.2.4.2) applies to all
22157 slices. So, the RefPicList0/1 lists need to be constructed prior to
22158 each slice submission to the HW decoder.
22159 This fixes decoding of video sequences where frames are encoded with
22160 multiple slices of different types, e.g. 4 slices in this order I, P,
22161 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
22162 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22164 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
22166 * ext/codecparsers:
22167 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22168 decoder: h264: skip SPS extension and auxiliary slice NALs.
22169 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
22170 are present in a video, decoders shall perform the (optional) decoding
22171 process specified for these NAL units or shall ignore them (7.4.1).
22172 Implement option 2 (skip) for now, as alpha composition is not
22173 supported yet during the decoding process.
22174 This fixes decoding of the primary coded video in alphaconformanceG.
22175 https://bugzilla.gnome.org/show_bug.cgi?id=703928
22176 https://bugzilla.gnome.org/show_bug.cgi?id=728869
22177 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22178 [skip NAL units earlier, i.e. at parsing time]
22179 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22181 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
22183 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22184 decoder: h264: fix slice data bit offset with MVC NAL units.
22185 When MVC slice NAL units (coded slice extension and prefix NAL) are
22186 present, the number of NAL header bytes is 3, not 1 as usual.
22187 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
22188 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22190 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22192 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22193 decoder: h264: fix activation of picture and sequence parameters.
22194 At the time the first VCL NAL unit of a primary coded picture is found,
22195 and if that NAL unit was parsed to be an SPS or PPS, then the entries
22196 in the parser may have been overriden. This means that, when the picture
22197 is to be decoded, slice_hdr->pps could point to an invalid (the next)
22199 So, one way to solve this problem is to not use the parser PPS and
22200 SPS info but rather maintain our own activation chain in the decoder.
22201 https://bugzilla.gnome.org/show_bug.cgi?id=724519
22202 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22204 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22206 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22207 decoder: h264: retain SEI messages until the end of frame.
22208 Retain the SEI messages that were parsed from the access unit until we
22209 have completely decoded the current frame. This is done so that we can
22210 peek at that data whenever necessary during decoding. e.g. for exposing
22211 3D stereoscopic information at a later stage.
22213 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22215 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22216 decoder: h264: add support for grayscale encoded clips.
22217 Fix support for grayscale encoded video clips, and possibly others if
22218 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
22219 the decision that a surface with the desired chroma format is not
22220 supported to the actual VA driver implementation.
22221 https://bugzilla.gnome.org/show_bug.cgi?id=728144
22223 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22225 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22226 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
22227 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22228 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22229 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22230 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22231 decoder: default to YUV 4:2:0 VA surfaces.
22232 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
22233 make sure all codecs use YUV 4:2:0 output format for now, by default.
22235 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22237 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22238 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22239 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22240 decoder: re-indent GstVaapiDecoder base object.
22242 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22244 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22245 encoder: derive chroma type from video format.
22246 Cope with previous VA context change to derive the correct surface chroma
22247 type from the input video format.
22249 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22251 * gst-libs/gst/vaapi/gstvaapicontext.c:
22252 * gst-libs/gst/vaapi/gstvaapicontext.h:
22253 context: add support for non-YUV 4:2:0 formats.
22254 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
22255 for the upper layer to specify the desired chroma type. If the chroma
22256 type field is not set (or yields zero), then YUV 4:2:0 format is used
22259 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22261 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22262 vp8: fix per-segment deblocking filter level in relative mode.
22263 Fix possible bug when a per-segment deblocking filter level value
22264 needs to be set in non-absolute mode, i.e. when the loop filter update
22265 value is negative in delta mode.
22266 Also clamp the resulting filter level value to 0..63 range.
22268 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22270 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22271 vp8: fix check for disabling the loop filter (again).
22272 Improve condition to disable the loop filter. The previous heuristic
22273 used to check all filter levels, for all segments. It turns out that
22274 only the base filter_level value defined in the frame header needs
22276 This fixes 00-comprehensive-013.
22278 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22280 * gst-libs/gst/codecparsers/Makefile.am:
22281 * gst/vaapi/Makefile.am:
22282 build: fix make dist with certain conditionals not met.
22283 Fix generation of source tarballs when certain conditionals are not
22284 met. e.g. always include all buildable codecparsers sources in the
22285 distribution tarball, fix plug-in element sources set to include X11
22288 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22291 build: add missing files for GStreamer 0.10.
22292 Add missing GstVideoEncoder implementation files to fix build with ancient
22293 GStreamer 0.10 stack.
22294 https://bugzilla.gnome.org/show_bug.cgi?id=723964
22296 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22299 build: add missing files for VP8 bitstream parser.
22300 Fix make dist for building the VP8 bitstream parser.
22302 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22305 * ext/libvpx/Makefile.am:
22306 * gst-libs/gst/codecparsers/Makefile.am:
22307 vp8: allow compilation without the built-in libvpx.
22308 The built-in libvpx serves multiple purposes, among which the most
22309 important ones could be: track the most up-to-date, and optimized,
22310 range decoder; allow for future hybrid implementations (non-VLD);
22311 and have a completely independent range decoder implementation.
22313 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22315 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22316 vp8: propagate PTS from demux frame.
22317 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
22318 or parser would already have determined the PTS from a previous stage.
22320 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22323 * debian.upstream/libgstvaapi.install.in:
22324 * ext/libvpx/Makefile.am:
22325 * ext/libvpx/sources.frag:
22326 * gst-libs/gst/codecparsers/Makefile.am:
22327 vp8: fix compilation with built-in libvpx.
22328 Apply correct patch from fd.o #722760 to fix several issues: update the
22329 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
22332 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22338 * ext/libvpx/Makefile.am:
22339 * ext/libvpx/gstlibvpx.c:
22340 * ext/libvpx/gstlibvpx.h:
22341 * ext/libvpx/libgstcodecparsers_vpx.vers:
22342 * ext/libvpx/sources.frag:
22343 * ext/libvpx/upstream:
22344 * gst-libs/gst/codecparsers/Makefile.am:
22345 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
22346 vp8: use range decoder from libvpx.
22347 Add libvpx submodule that tracks the upstream version 1.3.0. This is
22348 needed to build a libgstcodecparsers_vpx.so library with all symbols
22349 placed into the GSTREAMER namespace.
22351 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22353 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22354 vp8: fix check for disabling the loop filter.
22356 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
22360 * gst-libs/gst/codecparsers/Makefile.am:
22361 * gst-libs/gst/vaapi/Makefile.am:
22362 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22363 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22364 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22365 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22366 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22367 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
22368 * gst-libs/gst/vaapi/gstvaapiprofile.c:
22369 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22370 * gst/vaapi/gstvaapidecode.c:
22371 Add initial VP8 decoder.
22372 https://bugzilla.gnome.org/show_bug.cgi?id=722761
22373 [complete overhaul, fixed support for resolution changes]
22374 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22376 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22378 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22379 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
22380 The gst_h264_parse_parse_sei() function now returns an array of SEI
22381 messages, instead of a single SEI message. Reason: it is allowed to
22382 have several SEI messages packed into a single SEI NAL unit, instead
22383 of multiple NAL units.
22385 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22387 * ext/codecparsers:
22388 codecparsers: update to gst-vaapi-branch commit a454f86.
22389 b2eb5f6 vp8: rename dboolhuff symbols
22390 b74a881 vp8: add GStreamer native utilities
22391 2940ac6 add VP8 bitstream parser
22393 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22395 * ext/codecparsers:
22396 codecparsers: update to gst-vaapi-branch commit d459bc5.
22397 d459bc5 h264: set framerate even for interlaced videos
22398 c78b82c h264: add support for Recovery Point SEI message
22399 7693bac h264: add support for Frame Packing Arrangement SEI message
22400 31fafa7 h264: add support for Stereo Video Information SEI message
22401 8b113a6 h264: parse seq_parameter_set_mvc_extension()
22402 040f9b8 h264: parse MVC syntax elements
22403 cc18ef3 h264: add nal_reader_skip_long() helper
22404 7e76a48 h264: fix slice_header() parsing for MVC
22405 caf46d8 h264: add gst_h264_parse_nalu_header() helper
22406 f75074e h264: add gst_h264_parse_sps_data() helper
22407 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
22408 4e36737 h264: fix skipping of unsupported SEI messages
22409 5300766 h264: fix SEI buffering_period() parsing
22411 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22413 * ext/codecparsers:
22414 * gst-libs/gst/codecparsers/Makefile.am:
22415 codecparsers: update to gst-vaapi-branch commit 8fadf40.
22416 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
22417 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
22418 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
22419 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
22420 8ec5816 h265: Fix segfault when parsing HRD parameter
22421 5b1730f h265: Fix segfault when parsing VPS
22422 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
22423 7ba641d h265: Fix debug output
22424 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
22426 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22428 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22429 decoder: h264: fix robustness patch for bytestream format.
22430 Fix parser and decoder state to sync at the right locations. This is
22431 because we could reset the parser state, while the decoder state was
22432 not copied yet, e.g. when parsing several NAL units from multiple frames
22433 whereas the current frame was not decoded yet.
22434 This is a regression brought in by commit 6fe5496.
22436 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22439 * pkgconfig/Makefile.am:
22440 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22441 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22442 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22443 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22444 build: fix pkgconfig file names (again).
22445 It turns out it is more convenient to have only pkgconfig files named
22446 after the installed GStreamer API version (1.0) instead of using all
22447 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
22448 altogether anyway, so align pkgconfig file names to that.
22450 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22452 * debian.upstream/libgstvaapi-dev.install.in:
22453 * gst-libs/gst/vaapi/Makefile.am:
22454 * pkgconfig/gstreamer-vaapi.pc.in:
22455 build: fix packaging for GStreamer 1.2.
22456 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
22457 the pkgconfig version (1.0) instead of the intended API version (1.2).
22458 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
22459 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
22461 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22464 Bump version for development.
22466 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22468 * debian.upstream/control.in:
22469 debian: fix trailing whitespace in description.
22471 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22473 * debian.upstream/control.in:
22474 * debian.upstream/copyright:
22475 debian: fix package description.
22476 Try to improve package description for the compiled plug-in elements
22477 available in there. e.g. only display vaapidownload and vaapiupload
22478 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
22479 encoding is enabled, etc.
22480 Also increase the copyright notice date.
22482 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22484 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22485 build: fix warnings on 64-bit platforms.
22487 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22489 * gst-libs/gst/vaapi/gstvaapicontext.c:
22490 * gst-libs/gst/vaapi/gstvaapiutils.c:
22491 build: fix for older versions of VA-API (< 0.34.0).
22492 Fix build with older versions of VA-API (< 0.34.0), or versions without
22493 good enough headers for encoding support for instance.
22495 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22501 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22505 VA-API up to 0.34.0 is actually supported. Mention new video encoding
22506 support. Update copyright years, list of supported Intel HD Graphics
22509 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22514 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22516 * tests/test-filter.c:
22517 tests: test-filter: fix "deinterlace" option parse.
22518 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
22519 string was provided, i.e. if it remained set to NULL.
22521 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22523 * gst-libs/gst/vaapi/Makefile.am:
22524 * gst-libs/gst/vaapi/gstvaapicontext.c:
22525 * gst-libs/gst/vaapi/gstvaapicontext.h:
22526 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22527 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
22528 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
22529 libs: factor out usages of vaGetConfigAttributes().
22530 Add gst_vaapi_get_config_attribute() helper function that takes a
22531 GstVaapiDisplay and the rest of the arguments with VA types. The aim
22532 is to have thread-safe VA helpers by default.
22534 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22536 * gst-libs/gst/vaapi/gstvaapiutils.c:
22537 * gst-libs/gst/vaapi/gstvaapiutils.h:
22538 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22539 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22540 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22541 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22542 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22543 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22544 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22545 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22546 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22547 libs: re-indent all source code related to VA utilities.
22549 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22551 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
22552 libs: add missing file (libgstvaapi_priv_check.h).
22554 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22556 * gst-libs/gst/vaapi/gstvaapicontext.c:
22557 * gst-libs/gst/vaapi/gstvaapicontext.h:
22558 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22559 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22560 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22561 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22562 encoder: notify the encoder of the submitted packed headers.
22563 Make sure to configure the encoder with the set of packed headers we
22564 intend to generate and submit. i.e. make selection of packed headers
22565 to submit more robust.
22567 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22569 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22570 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22571 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22572 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22573 encoder: fix and factor out check for supported rate-control modes.
22574 Cache the first compatible GstVaapiProfile found if the encoder is not
22575 configured yet. Next, factor out the code to check for the supported
22576 rate-control modes by moving out vaGetConfigAttributes() to a separate
22577 function, while also making sure that the attribute type is actually
22578 supported by the encoder.
22579 Also fix the default set of supported rate control modes to not the
22580 "none" variant. It's totally useless to expose it at this point.
22582 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22584 * gst-libs/gst/vaapi/gstvaapicontext.c:
22585 * gst-libs/gst/vaapi/gstvaapicontext.h:
22586 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22587 context: move rate-control mode to encoder specific config.
22588 Move usage-specific config out of the common GstVaapiContextInfo.
22589 Create a specialized config for encoding and move rate-control mode
22592 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22594 * gst-libs/gst/vaapi/gstvaapicontext.c:
22595 * gst-libs/gst/vaapi/gstvaapicontext.h:
22596 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22597 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22598 context: introduce concept of usage.
22599 Introduce GstVaapiContextUsage so that to explicitly determine the
22600 usage of a VA context. This is useful in view to simplifying the
22601 creation of VA context for VPP too.
22603 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22605 * gst-libs/gst/vaapi/gstvaapicontext.c:
22606 context: fix get_attribute() value result.
22607 Unknown attributes, or attributes that are not supported for the given
22608 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
22609 So, return failure in this case.
22611 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22613 * gst-libs/gst/vaapi/Makefile.am:
22614 * gst-libs/gst/vaapi/gstvaapicontext.c:
22615 * gst-libs/gst/vaapi/gstvaapicontext.h:
22616 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
22617 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
22618 * gst-libs/gst/vaapi/gstvaapisurface.c:
22619 context: move overlay composition to separate files.
22620 Move GstVideoOverlayComposition handling to separate source files.
22621 This helps keeing GstVaapiContext core implementation to the bare
22622 minimal, i.e. simpy helpers to create a VA context and handle pool
22623 of associated VA surfaces.
22625 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22627 * gst-libs/gst/vaapi/gstvaapicontext.c:
22628 * gst-libs/gst/vaapi/gstvaapicontext.h:
22629 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22630 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22631 context: clean-ups. Strip down APIs.
22632 Improve documentation and debug messages. Clean-up APIs, i.e. strip
22633 them down to the minimal set of interfaces. They are private, so no
22634 need expose getters for instance.
22636 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22638 * gst-libs/gst/vaapi/gstvaapicontext.c:
22639 * gst-libs/gst/vaapi/gstvaapicontext.h:
22640 context: re-indent all GstVaapiContext related source code.
22642 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22644 * gst-libs/gst/vaapi/Makefile.am:
22645 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22646 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22647 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22648 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22649 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22650 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22651 * gst-libs/gst/vaapi/gstvaapiutils.h:
22652 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22653 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22654 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22655 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22656 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22657 libs: check that private headers remain private.
22658 Make sure that libgstvaapi private headers remain internally used to
22659 build libgstvaapi libraries only. All header dependencies were reviewed
22660 and checks for IN_LIBGSTVAAPI definition were added accordingly.
22661 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
22664 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22667 Bump library major version.
22668 Bump the library major version due to API/ABI changes that occurred in
22669 the imaging API. In particular, GstVaapiDisplay interfaces no longer
22670 expose any GstCaps but provide GArray based ones e.g. to determine the
22671 set of supported decode/encode profiles.
22673 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22675 * gst-libs/gst/vaapi/glibcompat.h:
22676 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22677 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22678 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22679 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22680 * gst-libs/gst/vaapi/gstvaapicontext.c:
22681 * gst-libs/gst/vaapi/gstvaapicontext.h:
22682 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22683 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22684 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22685 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22686 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22687 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22688 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22689 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22690 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22691 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22692 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22693 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22694 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22695 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22696 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22697 * gst-libs/gst/vaapi/gstvaapifilter.c:
22698 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22699 * gst-libs/gst/vaapi/gstvaapisurface.c:
22700 * gst-libs/gst/vaapi/gstvaapisurface.h:
22701 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22702 * gst-libs/gst/vaapi/gstvaapitypes.h:
22703 * gst-libs/gst/vaapi/gstvaapiutils.c:
22704 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22705 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22706 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22707 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22708 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22709 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22710 * gst-libs/gst/vaapi/gstvaapivalue.c:
22711 * gst-libs/gst/vaapi/gstvaapivalue.h:
22712 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22713 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22714 * gst/vaapi/gstvaapidecode.c:
22715 * gst/vaapi/gstvaapiencode.c:
22716 * gst/vaapi/gstvaapiencode.h:
22717 * gst/vaapi/gstvaapiencode_h264.c:
22718 * gst/vaapi/gstvaapiencode_h264.h:
22719 * gst/vaapi/gstvaapiencode_mpeg2.c:
22720 * gst/vaapi/gstvaapiencode_mpeg2.h:
22721 * gst/vaapi/gstvaapipluginbase.c:
22722 * gst/vaapi/gstvaapipluginutil.c:
22723 * gst/vaapi/gstvaapipluginutil.h:
22724 * gst/vaapi/gstvaapipostproc.c:
22725 * gst/vaapi/gstvaapipostproc.h:
22726 * gst/vaapi/gstvaapisink.c:
22727 * gst/vaapi/gstvaapisink.h:
22728 * gst/vaapi/gstvaapivideometa_texture.c:
22729 * tests/simple-decoder.c:
22730 legal: update copyright notice dates.
22732 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22734 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22735 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22736 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22737 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22738 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22739 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22740 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22741 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22742 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22743 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22744 * gst/vaapi/gstvaapiencode.c:
22745 * gst/vaapi/gstvaapiencode.h:
22746 * gst/vaapi/gstvaapiencode_h264.c:
22747 * gst/vaapi/gstvaapiencode_h264.h:
22748 * gst/vaapi/gstvaapiencode_mpeg2.c:
22749 * gst/vaapi/gstvaapiencode_mpeg2.h:
22750 legal: add per-file authorship information.
22752 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22754 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22755 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22756 decoder: fix video codec frame number in standalone mode.
22757 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
22758 stream in standalone mode. While we are at it, improve the debugging
22759 messages to also include that frame number.
22761 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
22763 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22764 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22765 decoder: fix crash on invalid pointer for GST_DEBUG().
22766 When decoding failed, or that the frame was dropped, the associated
22767 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
22768 message needs to check whether the proxy is actually present or not.
22769 https://bugzilla.gnome.org/show_bug.cgi?id=722403
22770 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
22771 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22773 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22775 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22776 encoder: h264: disable NAL HRD parameters for now.
22777 Don't emit NAL HRD parameters for now in the SPS headers because the
22778 SEI buffering_period() and picture_timing() messages are not handled
22779 yet. Some additional changes are necessary to get it right.
22780 https://bugzilla.gnome.org/show_bug.cgi?id=722734
22782 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22784 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22785 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22786 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22787 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22788 encoder: h264: fix default CPB buffer size.
22789 Fix default CPB buffer size to something more reasonable (1500 ms)
22790 and that still fits the level limits. This is a non configurable
22791 property for now. The initial CPB removal delay is also fixed to
22793 https://bugzilla.gnome.org/show_bug.cgi?id=722087
22795 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22797 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22798 encoder: h264: fix bitrate encoding for HRD conformance.
22799 Round down the calculated, or supplied, bitrate (kbps) into a multiple
22800 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
22801 that to have less losses in precision. Likewise, don't round up because
22802 that could be a strict constraint imposed by the user.
22804 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22806 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22807 encoder: h264: fix level lookup constraints wrt. bitrate.
22808 Fix the level calculation involving bitrate limits. Since we are
22809 targetting NAL HRD conformance, the check against MaxBR from the
22810 Table A-1 limits shall involve cpbBrNalFactor depending on the
22813 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22815 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22816 encoder: h264: submit sequence parameter only once.
22817 Submit sequence parameter buffers only once, or when the bitstream
22818 was reconfigured in a way that requires such. Always submit packed
22819 sequence parameter buffers at I-frame period, if the VA driver needs
22821 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22823 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22825 * gst-libs/gst/vaapi/gstvaapicontext.c:
22826 * gst-libs/gst/vaapi/gstvaapicontext.h:
22827 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22828 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22829 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22830 encoder: h264: only submit packed headers when required.
22831 Make sure to submit the packed headers only if the underlying VA driver
22832 requires those. Currently, only handle packed sequence and picture
22834 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22836 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22838 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22839 encoder: h264: fix ip_period value in sequence parameter.
22840 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
22841 between the I-frame and the next P-frame. So, this also accounts for
22842 any additional B-frame in the middle of it.
22843 This fixes rate control heuristics for certain VA drivers.
22844 https://bugzilla.gnome.org/show_bug.cgi?id=722735
22846 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22848 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22849 encoder: h264: fix level when bitrate is automatically computed.
22850 Fix level characterisation when the bitrate is automatically computed
22851 from the active coding tools. i.e. ensure the bitrate once the profile
22852 is completely characterized but before the level calculation process.
22854 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22856 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22857 encoder: h264: clean-ups.
22858 Document and rename a few functions here and there. Drop code that
22859 caps num_bframes variable in reset_properties() since they shall
22860 have been checked beforehand, during properties initialization.
22862 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22864 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22865 encoder: h264: clean-up bitwriter related utilities.
22866 Clean-up GstBitWriter related utility functions and simplify notations.
22867 While we are at it, also make bitstream writing more robust should an
22868 overflow occur. We could later optimize for writing headers capped to
22869 their maximum possible size by using the _unchecked() helper variants.
22871 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22873 * gst-libs/gst/vaapi/Makefile.am:
22874 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22875 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22876 encoder: h264: completely remove private headers.
22877 Drop private header since it was originally used to expose internals
22878 to the plugin element. The proper interface is now the properties API,
22879 thus rendering private headers totally obsolete.
22881 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22883 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22884 encoder: h264: fix PPS header packing with profile < high.
22885 Fix PPS header packing when profile is below High since 8x8 transform
22886 mode and scaling lists are High Profile features.
22888 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22890 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22891 encoder: h264: always emit VUI parameters for framerate.
22892 Always emit VUI parameters for timing_info, which includes framerate
22895 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22897 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22898 encoder: h264: really fix frame cropping rectangle calculation.
22899 Make frame cropping rectangle calculation future proof, i.e. exactly
22900 follow the specification (7-18) to (7-21), and subsampling definitions
22902 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22903 https://bugzilla.gnome.org/show_bug.cgi?id=722238
22905 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
22907 * gst/vaapi/gstvaapisink.c:
22908 * gst/vaapi/gstvaapisink.h:
22909 vaapisink: set csc render flags from sinkpad caps.
22910 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
22911 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
22913 https://bugzilla.gnome.org/show_bug.cgi?id=722255
22914 [factored out code, added SMPTE240M, handle per-buffer flags]
22915 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22917 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22919 * gst-libs/gst/vaapi/gstvaapisurface.h:
22920 * gst-libs/gst/vaapi/gstvaapiutils.c:
22921 * gst/vaapi/gstvaapipostproc.c:
22922 surface: rework render flags.
22923 Pack render flags per category and provide more flags into the color
22924 standard category. In particular, cover for SMPTE-240M.
22926 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
22928 * gst-libs/gst/vaapi/gstvaapifilter.c:
22929 * gst/vaapi/gstvaapipostproc.c:
22930 * gst/vaapi/gstvaapipostproc.h:
22931 vaapipostproc: add support for colorbalance filters.
22932 Add support for hue, saturation, brightness and constrat adjustments.
22933 Also fix cap info local copy to match the really expected cap subtype
22935 https://bugzilla.gnome.org/show_bug.cgi?id=720376
22936 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22938 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
22940 * gst/vaapi/gstvaapipostproc.c:
22941 vaapipostproc: fix support for "sharpen" filter.
22942 Fix copy/paste error when submitting the "sharpen" value to the
22943 GstVaapiFilter instance.
22944 https://bugzilla.gnome.org/show_bug.cgi?id=720375
22945 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22947 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
22950 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22951 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22952 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22953 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22954 * pkgconfig/gstreamer-vaapi.pc.in:
22955 pkgconfig: plugin dir should use PKG version not API version.
22956 Fix the pluginsdir and includedir variables in the generated pkgconfig
22957 (.pc) files. The location needs to be built with the PKG version in
22958 mind instead of the API version.
22959 While we are at it, also fix the PKG version for GStreamer >= 1.3.
22960 https://bugzilla.gnome.org/show_bug.cgi?id=720820
22961 [additional fixes for includedir and pkg requirements]
22962 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22964 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
22966 * gst/vaapi/gstvaapisink.c:
22967 vaapisink: fix display initialization in GstVideoOverlay implementation.
22968 When gst_vaapisink_video_overlay_set_window_handle() is called early,
22969 before the pipeline has been set to PLAYING, the display has not yet
22970 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
22971 up-to-date. For this reason the foreign XID is not attached.
22972 Now _ensure_display() is called earlier.
22973 https://bugzilla.gnome.org/show_bug.cgi?id=722244
22974 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22976 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22978 * gst/vaapi/gstvaapisink.c:
22979 vaapisink: expose the raw video formats in static caps template.
22980 Expose all raw video formats in the static caps template since the
22981 vaapisink is supporting raw data. We will get the exact set of formats
22982 supported by the driver dynamically through the _get_caps() routine.
22983 https://bugzilla.gnome.org/show_bug.cgi?id=703271
22984 https://bugzilla.gnome.org/show_bug.cgi?id=720737
22985 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22987 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22989 * gst/vaapi/gstvaapidecode.c:
22990 vaapidecode: query downstream caps features like GLTextureUploadMeta.
22991 Fix vaapidecode to correctly report caps features downstream, when
22992 a custom pipeline is built manually.
22993 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22994 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22996 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22998 * gst/vaapi/gstvaapidecode.c:
22999 vaapidecode: add system memory caps to template caps.
23000 Since vaapidecode provides buffer that can be mapped as regular memory,
23001 those caps should be added to the template caps. That only applies to
23003 https://bugzilla.gnome.org/show_bug.cgi?id=720608
23004 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23006 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
23008 * gst/vaapi/gstvaapidecode.c:
23009 vaapidecode: fix hang on SIGINT.
23010 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
23011 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
23012 locked. This fixes a deadlock on state change from PAUSED to READY.
23013 https://bugzilla.gnome.org/show_bug.cgi?id=720584
23014 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23016 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
23018 * gst/vaapi/gstvaapiencode.c:
23019 vaapiencode: fix possible hang on SIGINT.
23020 vaapiencode might hang when the pipeline is stopped without any EOS,
23021 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
23022 running and locked. This fixes a possible deadlock on state change
23023 from PAUSED to READY.
23024 https://bugzilla.gnome.org/show_bug.cgi?id=720584
23025 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23027 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23029 * gst/vaapi/gstvaapiencode.c:
23030 vaapiencode: fix typo in error message.
23031 Fix incomplete error message in gst_vaapiencode_push_frame().
23033 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23035 * gst/vaapi/gstvaapipluginutil.c:
23036 * gst/vaapi/gstvaapipluginutil.h:
23037 plugins: add helpers to create video caps with features.
23038 Add gst_vaapi_video_format_new_template_caps_with_features() helper
23039 function to add the supplied caps feature string on GStreamer >= 1.2.
23040 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
23041 the "best" caps feature to use for the supplied pad. In practice, we
23042 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
23043 and finally the system memory caps.
23044 https://bugzilla.gnome.org/show_bug.cgi?id=719372
23046 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23048 * gst/vaapi/gstvaapivideometa_texture.c:
23049 plugins: don't apply overlay composition in GLTextureUpload function.
23050 The GLTextureUpload function is not in charge of doing the overlay
23051 composition if any.
23052 https://bugzilla.gnome.org/show_bug.cgi?id=721859
23053 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23055 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23057 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23058 encoder: re-order submission of VA objects.
23059 Change the submission order of VA objects so that to make that process
23060 more logical. i.e. submit sequence parameter first, if any; next the
23061 packed headers associated to sequece, picture or slices; and finally
23062 the actual picture and associated slices.
23064 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23066 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23067 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23068 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23069 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23070 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23071 encoder: clean-up objects.
23072 Various clean-ups to improve consistency and readability: rename some
23073 variables, drop unused macro definitions, drop initialization of vars
23074 that are zero-initialized from the base class, drop un-necessary casts,
23075 allocate GPtrArrays with a destroy function.
23077 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23079 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23080 encoder: h264: fix frame cropping rectangle calculation.
23081 Fix frame cropping rectangle calculation to handle horizontal resolutions
23082 that don't match a multiple of 16 pixels, but also the vertical resolution
23083 that was incorrectly computed for progressive sequences too.
23084 https://bugzilla.gnome.org/show_bug.cgi?id=722089
23086 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23088 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23089 encoder: h264: improve automatic bitrate calculation.
23090 For non "Constant-QP" modes, we could provide more reasonable heuristics
23091 for the target bitrate. In general, 48 bits per macroblock with all the
23092 useful coding tools enable looks safe enough. Then, this rate is raised
23093 by +10% to +15% for each coding tool that is disabled.
23094 https://bugzilla.gnome.org/show_bug.cgi?id=719699
23096 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23098 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23099 encoder: h264: support "high-compression" tuning option.
23100 Add support for "high-compression" tuning option. First, determine the
23101 largest supported profile by the hardware. Next, check any target limit
23102 set by the user. Then, enable each individual coding tool based on the
23103 resulting profile_idc value to use.
23104 https://bugzilla.gnome.org/show_bug.cgi?id=719696
23106 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23108 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23109 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23110 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23111 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23112 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23113 * gst/vaapi/gstvaapiencode_h264.c:
23114 encoder: h264: allow target decoder constraints.
23115 Allow user to precise the largest profile to use for encoding due
23116 to target decoder constraints. For instance, if CABAC entropy coding
23117 mode is requested by "constrained-baseline" profile only is desired,
23118 then an error is returned during codec configuration.
23119 Also make sure that the suitable profile we derived actually matches
23120 what the HW can cope with.
23121 https://bugzilla.gnome.org/show_bug.cgi?id=719694
23123 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23125 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23126 encoder: h264: refine size of coded buffer.
23127 Refine the heuristic to determine the maximum size of a coded buffer
23128 to account for the exact number of slices. set_context_info() is the
23129 last step during codec reconfiguration, no additional change is done
23130 afterwards, so re-using the num_slices field here is fine.
23131 https://bugzilla.gnome.org/show_bug.cgi?id=719953
23133 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
23135 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23136 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23137 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23138 encoder: h264: expose more coding tools.
23139 Add new H.264 coding tools to improve compression:
23140 - "cabac": enable CABAC entropy coding (default: FALSE);
23141 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
23142 https://bugzilla.gnome.org/show_bug.cgi?id=719693
23143 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23145 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23147 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23148 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23149 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23150 encoder: h264: derive profile and level from active coding tools.
23151 Automatically derive the minimum profile and level to be used for
23152 encoding, based on the activated coding tools. The encoder will
23153 be trying to generate a bitstream that has the best chances to be
23154 decoded on most platforms by default.
23155 Also change the default profile to "constrained-baseline" so that
23156 to ensure maximum compatibility when the stream is decoded.
23157 https://bugzilla.gnome.org/show_bug.cgi?id=719691
23159 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23161 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23162 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23163 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23164 encoder: h264: fix hardware profile lookup.
23165 Fix lookup for a suitable HW profile, as to be used by the underlying
23166 hardware, based on heuristics that lead to characterize the SW profile,
23167 i.e. the one used by the SW level encoding logic.
23168 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
23169 as they should respectively match the baseline and main profile.
23170 https://bugzilla.gnome.org/show_bug.cgi?id=719827
23172 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23174 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23175 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23176 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23177 encoder: h264: support only the byte-stream format.
23178 The libgstvaapi core encoders are meant to support raw bitstreams only.
23179 Henceforth, we are always producing a stream in "byte-stream" format.
23180 However, the "codec-data" buffer which holds SPS and PPS headers is
23181 always available. The "lengthSizeMinusOne" field is always set to 3
23182 so that in-place "byte-stream" format to "avc" format conversion could
23185 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23187 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23188 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23189 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23190 * gst/vaapi/gstvaapiencode_h264.c:
23191 encoder: h264: clean-ups.
23192 Various clean-ups to improve consistency and readability: rename some
23193 variables, drop unused macro definitions, drop initialization of vars
23194 that are zero-initialized from the base class, drop un-necessary casts.
23196 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23198 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23199 encoder: mpeg2: fix hardware profile lookup.
23200 Fix lookup for a suitable HW profile, as to be used by the underlying
23201 hardware, based on heuristics that lead to characterize the SW profile,
23202 i.e. the one used by the SW level encoding logic.
23204 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23206 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23207 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23208 encoder: mpeg2: derive profile and level from active coding tools.
23209 Automatically derive the minimum profile and level to be used for
23210 encoding, based on the activated coding tools. Improve lookup for
23211 the best suitable level with the new MPEG-2 helper functions.
23212 Also change the default profile to "simple" so that to ensure maximum
23213 compatibility when the stream is decoded.
23214 https://bugzilla.gnome.org/show_bug.cgi?id=719703
23216 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23218 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23219 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23220 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23221 encoder: mpeg2: clean-ups.
23222 Various clean-ups to improve consistency and readability: drop unused
23223 macro definitions, drop initialization of vars that are zero-initialized
23224 from the base class, drop un-necessary casts.
23226 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23228 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23229 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23230 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23231 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23232 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23233 encoder: add tuning options API.
23234 Add encoder "tune" option to override the default behaviour that is to
23235 favor maximum decoder compatibility at the expense of lower compression
23237 Expected tuning options to be developed are:
23238 - "high-compression": improve compression, target best-in-class decoders;
23239 - "low-latency": tune for low-latency decoding;
23240 - "low-power": tune for encoding in low power / resources conditions.
23242 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23244 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23245 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23246 encoder: fix bitrate units to match kbps.
23247 Bitrate is expressed in kilobits per second (kbps). So, this exactly
23248 means in multiple of 1000 bits, not 1024 bits.
23249 https://bugzilla.gnome.org/show_bug.cgi?id=722086
23251 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23253 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23254 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23255 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23256 encoder: clean-ups.
23257 Drop obsolete and unused macros. Add a few doc comments. Slightly
23258 improve indentation of a few leftovers.
23260 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23262 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23263 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23264 * gst-libs/gst/vaapi/gstvaapivalue.c:
23265 * gst-libs/gst/vaapi/gstvaapivalue.h:
23266 encoder: filter out the supported set of rate-control properties.
23267 Only expose the exact static set of supported rate-control properties
23268 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
23269 only support CQP rate control, then only add it the the exposed enum
23271 Add helper macros and functions to build a GType for an enum subset.
23273 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23275 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23276 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23277 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23278 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23279 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23280 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23281 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23282 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23283 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23284 encoder: add keyframe period API.
23285 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
23286 user control the maximum distance between two keyframes. This new
23287 property can only be set prior to gst_vaapi_encoder_set_codec_state().
23288 A value of zero for "keyframe-period" gets it re-evaluated to the
23289 actual framerate during encoder reconfiguration.
23291 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23293 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23294 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23295 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23296 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23297 encoder: improve codec reconfiguration.
23298 Improve codec reconfiguration to be performed only through a single
23299 function. That is, remove the _set_context_info() hook as subclass
23300 should not alter the parent GstVaapiContextInfo itself. Besides, the
23301 VA context is constructed only at the final stages of reconfigure().
23303 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23305 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
23306 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
23307 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23308 encoder: fix possible memory leak of coded buffer pools.
23309 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
23310 buffer pool only if the coded buffer size actually changed.
23312 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23314 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23315 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23316 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23317 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23318 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23319 * gst/vaapi/gstvaapiencode.c:
23320 * gst/vaapi/gstvaapiencode.h:
23321 encoder: add video codec-state API.
23322 Add interface to communicate the encoder resolution and related info
23323 like framerate, interlaced vs. progressive, etc. This new interface
23324 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
23325 but rather use GstVideoCodecState.
23326 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
23327 point for codec config. This means that the encoder is reconfigured
23328 there to match the latest properties.
23330 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23332 * gst/vaapi/gstvaapiencode.c:
23333 vaapiencode: don't crash on NULL encoder on _finish().
23334 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
23335 if it was not created in the first place. Return "not-negotiated" error
23336 since this means we did not even reach GstVideoEncoder::set_format(),
23337 where the encoder could have been created.
23338 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
23339 and that we failed to negotiate either pad.
23340 https://bugzilla.gnome.org/show_bug.cgi?id=719704
23342 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23344 * gst/vaapi/gstvaapiencode.c:
23345 * gst/vaapi/gstvaapiencode.h:
23346 * gst/vaapi/gstvaapiencode_h264.c:
23347 vaapiencode: use more GstVaapiPluginBase facilities.
23348 Avoid duplication of pad references or query functions since they are
23349 provided through the GstVaapiPluginBase object.
23351 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23353 * gst/vaapi/gstvaapiencode.c:
23354 * gst/vaapi/gstvaapiencode.h:
23355 * gst/vaapi/gstvaapiencode_h264.c:
23356 * gst/vaapi/gstvaapiencode_h264.h:
23357 * gst/vaapi/gstvaapiencode_mpeg2.c:
23358 vaapiencode: fix negotiation process of output caps.
23359 The specified caps in gst_video_encoder_set_output_state() function
23360 arguments should not contain any resolution, pixel-aspect-ratio,
23361 framerate, codec-data et al. Those rather should be set through the
23362 returned GstVideoCodecState. This means that output caps creation
23363 could be delayed until before gst_video_encoder_finish_frame() is
23365 This greatly simplifies the GstVideoEncoder::set_format() callback
23368 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23370 * gst/vaapi/gstvaapiencode.c:
23371 vaapiencode: make GstVaapiEncode an abstract type.
23372 Make base GstVaapiEncode class an abstract type so that we cannot
23373 create an instance from it without going through any of the codec
23374 specific derived class.
23376 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23378 * gst/vaapi/gstvaapiencode.c:
23379 * gst/vaapi/gstvaapiencode.h:
23380 * gst/vaapi/gstvaapiencode_h264.c:
23381 * gst/vaapi/gstvaapiencode_mpeg2.c:
23382 vaapiencode: rename a few member functions.
23383 Rename a few member functions to make them more consistent:
23384 - alloc_encoder(): now reduced to allocate the encoder object only;
23385 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
23387 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23389 * gst/vaapi/gstvaapiencode.c:
23390 * gst/vaapi/gstvaapiencode.h:
23391 * gst/vaapi/gstvaapiencode_h264.c:
23392 * gst/vaapi/gstvaapiencode_h264.h:
23393 * gst/vaapi/gstvaapiencode_mpeg2.c:
23394 vaapiencode: update for new properties API.
23395 Update MPEG-2 and H.264 encode elements to cope with the new core
23396 libgstvaapi properties API. i.e. all configurable properties are now
23397 directly handled at the GstVaapiEncoder level.
23398 Besides, this also makes sure to not use or modify the GstVaapiEncoder
23399 private definitions directly. Private data need to remain private.
23400 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23402 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23404 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23405 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23406 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23407 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23408 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23409 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23410 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23411 encoder: add properties API.
23412 Add interface to communicate configurable properties to the encoder.
23413 This covers both the common ones (rate-control, bitrate), and the
23414 codec specific properties.
23415 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23417 2014-01-06 18:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23419 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23420 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23421 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23422 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23423 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23424 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23425 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23426 * gst/vaapi/gstvaapiencode.c:
23427 * gst/vaapi/gstvaapiencode_h264.c:
23428 * gst/vaapi/gstvaapiencode_mpeg2.c:
23429 encoder: add bitrate API.
23430 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
23431 the bitrate for encoding. Currently, changing this parameter is only
23432 valid before the first frame is encoded. Should the value be modified
23433 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
23435 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23437 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23439 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23440 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23441 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23442 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23443 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23444 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23445 * gst-libs/gst/vaapi/gstvaapitypes.h:
23446 * gst/vaapi/gstvaapiencode.c:
23447 * gst/vaapi/gstvaapiencode.h:
23448 * gst/vaapi/gstvaapiencode_h264.c:
23449 * gst/vaapi/gstvaapiencode_mpeg2.c:
23450 encoder: add rate control API.
23451 Add gst_vaapi_encoder_set_rate_control() interface to request a new
23452 rate control mode for encoding. Changing the rate control mode is
23453 only valid prior to encoding the very first frame. Afterwards, an
23454 error ("operation-failed") is issued.
23455 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23457 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23459 * gst/vaapi/gstvaapiencode.c:
23460 * gst/vaapi/gstvaapiencode_h264.c:
23461 * gst/vaapi/gstvaapiencode_mpeg2.c:
23462 vaapiencode: fix indentation.
23464 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23466 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23467 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23468 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23469 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23470 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23471 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23472 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23473 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23474 * gst/vaapi/gstvaapiencode.h:
23475 encoder: fix indentation.
23477 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23479 * gst-libs/gst/vaapi/Makefile.am:
23480 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
23481 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
23482 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
23483 utils: add new MPEG-2 helper functions.
23484 Add various helper functions to convert profile, level, chroma formats
23485 from gstreamer-vaapi world and the MPEG-2 specification world.
23487 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23489 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23490 utils: h264: don't use fatal asserts.
23491 Replace g_assert() with a g_debug() so that to not make the program
23492 abort when an unsupported value is supplied.
23494 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23496 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23497 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23498 utils: h264: add helpers for profile and level string mappings.
23499 Add profile and level helper functions to convert to/from strings.
23501 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23503 * gst-libs/gst/vaapi/Makefile.am:
23504 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23505 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23506 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23507 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
23508 utils: h264: expose levels in public header.
23509 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
23510 H.264 levels in there. The additional helper functions are meant
23511 to be private for now.
23513 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23515 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23516 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23517 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23518 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23519 codec: add helper macros to maintain object refcount.
23520 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
23521 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
23523 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23525 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23526 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23527 codec: re-indent decoder objects.
23529 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23531 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23532 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23533 codec: re-indent base codec objects.
23535 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23537 * gst/vaapi/gstvaapipluginbase.c:
23538 plugins: do not free debug category in finalize method.
23539 Fixes a crash when multiple vaapidecode elements are finalized since
23540 the debug category is created once in the class init method.
23541 This is a regression from git commit 7e58d60.
23542 https://bugzilla.gnome.org/show_bug.cgi?id=721390
23543 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23545 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23547 * gst-libs/gst/vaapi/glibcompat.h:
23548 * tests/simple-decoder.c:
23549 tests: simple-decoder: don't use deprecated g_thread_create().
23550 Use g_thread_try_new() instead of the deprecated g_thread_create()
23551 function. Provide compatibility glue for any GLib version < 2.31.2.
23553 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23555 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23556 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23557 * gst-libs/gst/vaapi/gstvaapisurface.c:
23558 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
23559 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23560 * gst/vaapi/gstvaapiencode.c:
23561 Fix printf()-like formats.
23562 Fix formts for various GST_DEBUG et al. invocations. More precisely,
23563 make size_t arguments use the %zu format specifier accordingly; force
23564 XID formats to be a 32-bit unsigned integer; and fix the format used
23565 for gst_vaapi_create_surface_with_format() error cases since we have
23566 been using strings nowadays.
23568 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23570 * gst-libs/gst/vaapi/video-format.c:
23571 * gst-libs/gst/vaapi/video-format.h:
23572 utils: format: drop unused helper functions.
23573 The following helper functions are no longer used, thus are removed:
23574 - gst_vaapi_video_format_from_structure()
23575 - gst_vaapi_video_format_from_caps()
23576 - gst_vaapi_video_format_to_caps()
23578 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23580 * gst-libs/gst/vaapi/video-format.c:
23581 * gst-libs/gst/vaapi/video-format.h:
23582 utils: re-indent GstVideoFormat related helpers.
23584 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23586 * gst/vaapi/gstvaapidownload.c:
23587 download: use GstVideoInfo facilities to build output caps.
23588 Use standard GstVideoInfo related functions to build the output caps,
23589 thus directly preserving additional fields as needed, instead of
23590 manually copying them over through gst_vaapi_append_surface_caps().
23591 Also ensure that the input caps are fixated first.
23593 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23595 * gst/vaapi/gstvaapidownload.c:
23596 * gst/vaapi/gstvaapipluginutil.c:
23597 * gst/vaapi/gstvaapipluginutil.h:
23598 * gst/vaapi/gstvaapiuploader.c:
23599 plugins: factor out construction of template caps.
23600 Add new helper functions to build video template caps.
23601 - gst_vaapi_video_format_new_template_caps():
23602 create GstCaps with size, frame rate and PAR to full range
23603 - gst_vaapi_video_format_new_template_caps_from_list():
23604 try to create a "simplified" list from the supplied formats
23606 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23608 * gst/vaapi/gstvaapipluginutil.c:
23609 * gst/vaapi/gstvaapipluginutil.h:
23610 * gst/vaapi/gstvaapipostproc.c:
23611 plugins: factor out construction of GValue from GstVideoFormat.
23612 Add new helper functions to build GValues from GstVideoFormat:
23613 - gst_vaapi_value_set_format():
23614 build a GValue from the supplied video format
23615 - gst_vaapi_value_set_format_list():
23616 build a GValue list from the supplied array of video formats
23618 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23620 * gst/vaapi/gstvaapipluginutil.c:
23621 * gst/vaapi/gstvaapipluginutil.h:
23622 * gst/vaapi/gstvaapivideocontext.c:
23623 * gst/vaapi/gstvaapivideocontext.h:
23624 plugins: re-indent common and video context creation utils.
23626 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23628 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23629 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23630 * gst/vaapi/gstvaapidecode.c:
23631 * tests/test-display.c:
23632 display: don't use GstCaps for decode or encode profiles list.
23633 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
23634 more convenient APIs that return an array of GstVaapiProfile instead
23635 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
23637 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23639 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23640 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23641 * gst/vaapi/gstvaapidownload.c:
23642 * gst/vaapi/gstvaapiuploader.c:
23643 * tests/test-display.c:
23644 display: don't use GstCaps for image or subpicture formats list.
23645 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
23646 returned GstCaps, with more convenient APIs that return an array of
23647 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
23649 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23651 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23652 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23653 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23654 display: allocate queried resources on-demand.
23655 Allocate the set of decoders or encoders on-demand, when they are
23656 queried. Likewise for VA display attributes, image and subpicture
23659 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23661 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23662 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23663 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23664 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23665 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23666 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23667 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23668 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
23669 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23670 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23671 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23672 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23673 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23674 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23675 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23676 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23677 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23678 display: re-indent all GstVaapiDisplay related source code.
23680 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23682 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23683 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23684 utils: add helper functions to get codec or profile name.
23686 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23688 * gst/vaapi/gstvaapipostproc.c:
23689 * gst/vaapi/gstvaapipostproc.h:
23690 * gst/vaapi/gstvaapiuploader.c:
23691 plugins: fix permissions for certain files.
23692 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
23695 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23697 * gst/vaapi/gstvaapivideometa_texture.c:
23698 plugins: implement GLTextureUploadMeta user data copy.
23699 Makes the copies of a buffer reference their own GLTextureUploadMeta
23700 user data and prevent the original buffer accessing already freed
23701 memory if its copies has been released and freed.
23702 https://bugzilla.gnome.org/show_bug.cgi?id=720336
23703 [Propagate the original meta texture to the copy too]
23704 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23706 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23708 * gst/vaapi/gstvaapiencode.c:
23709 * gst/vaapi/gstvaapiencode.h:
23710 * gst/vaapi/gstvaapipluginbase.c:
23711 * gst/vaapi/gstvaapipluginbase.h:
23712 * gst/vaapi/gstvaapipostproc.c:
23713 * gst/vaapi/gstvaapipostproc.h:
23714 * gst/vaapi/gstvaapisink.c:
23715 * gst/vaapi/gstvaapisink.h:
23716 plugins: factor out support for raw YUV buffers on sink pads.
23717 Factor out propose_allocation() hooks, creation of video buffer pool
23718 for the sink pad, conversion from raw YUV buffers to VA surface backed
23719 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
23720 with the new GstVaapiPluginBase abilities.
23722 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23724 * gst-libs/gst/vaapi/gstcompat.h:
23725 * gst/vaapi/gstvaapidecode.c:
23726 * gst/vaapi/gstvaapidecode.h:
23727 * gst/vaapi/gstvaapidownload.c:
23728 * gst/vaapi/gstvaapipluginbase.c:
23729 * gst/vaapi/gstvaapipluginbase.h:
23730 * gst/vaapi/gstvaapipostproc.c:
23731 * gst/vaapi/gstvaapipostproc.h:
23732 * gst/vaapi/gstvaapisink.c:
23733 * gst/vaapi/gstvaapiupload.c:
23734 plugins: factor out pad caps.
23736 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23738 * gst/vaapi/gstvaapidecode.c:
23739 * gst/vaapi/gstvaapidownload.c:
23740 * gst/vaapi/gstvaapiencode.c:
23741 * gst/vaapi/gstvaapipluginbase.c:
23742 * gst/vaapi/gstvaapipostproc.c:
23743 * gst/vaapi/gstvaapisink.c:
23744 * gst/vaapi/gstvaapiupload.c:
23745 plugins: factor out video context sharing code.
23747 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23749 * gst/vaapi/gstvaapidecode.c:
23750 * gst/vaapi/gstvaapidownload.c:
23751 * gst/vaapi/gstvaapiencode.c:
23752 * gst/vaapi/gstvaapipluginbase.c:
23753 * gst/vaapi/gstvaapipluginbase.h:
23754 * gst/vaapi/gstvaapipostproc.c:
23755 * gst/vaapi/gstvaapisink.c:
23756 * gst/vaapi/gstvaapiupload.c:
23757 plugins: factor out GstImplementsInterface.
23759 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23761 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23762 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23763 * gst/vaapi/gstvaapipluginbase.c:
23764 * gst/vaapi/gstvaapipluginutil.c:
23765 plugins: check type of display obtained from neighbours.
23766 Fix display creation code to check that any display obtained from a
23767 neighbour actually has the type we expect. Note: if display type is
23768 set to "any", we can then accept any VA display type.
23770 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23772 * gst/vaapi/gstvaapidecode.c:
23773 * gst/vaapi/gstvaapidownload.c:
23774 * gst/vaapi/gstvaapiencode.c:
23775 * gst/vaapi/gstvaapipluginbase.c:
23776 * gst/vaapi/gstvaapipluginbase.h:
23777 * gst/vaapi/gstvaapipluginutil.c:
23778 * gst/vaapi/gstvaapipluginutil.h:
23779 * gst/vaapi/gstvaapipostproc.c:
23780 * gst/vaapi/gstvaapisink.c:
23781 * gst/vaapi/gstvaapisink.h:
23782 * gst/vaapi/gstvaapiupload.c:
23783 plugins: factor out display creation process.
23784 Move common VA display creation code to GstVaapiPluginBase, with the
23785 default display type remaining "any". Also add a "display-changed"
23786 hook so that subclasses could perform additional tasks when/if the
23787 VA display changed, due to a new display type request for instance.
23788 All plug-ins are updated to cope with the new internal APIs.
23790 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23792 * gst/vaapi/Makefile.am:
23793 * gst/vaapi/gstvaapidecode.c:
23794 * gst/vaapi/gstvaapidecode.h:
23795 * gst/vaapi/gstvaapidownload.c:
23796 * gst/vaapi/gstvaapidownload.h:
23797 * gst/vaapi/gstvaapiencode.c:
23798 * gst/vaapi/gstvaapiencode.h:
23799 * gst/vaapi/gstvaapipluginbase.c:
23800 * gst/vaapi/gstvaapipluginbase.h:
23801 * gst/vaapi/gstvaapipostproc.c:
23802 * gst/vaapi/gstvaapipostproc.h:
23803 * gst/vaapi/gstvaapisink.c:
23804 * gst/vaapi/gstvaapisink.h:
23805 * gst/vaapi/gstvaapiupload.c:
23806 * gst/vaapi/gstvaapiupload.h:
23807 plugins: add new base object, store display in there.
23808 Introduce a new GstVaapiPluginBase object that will contain all common
23809 data structures and perform all common tasks. First step is to have a
23810 single place to hold VA displays.
23811 While we are at it, also make sure to store and subsequently release
23812 the appropriate debug category for the subclasses.
23814 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23816 * gst-libs/gst/vaapi/gstvaapiobject.h:
23817 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23818 * gst/vaapi/gstvaapivideometa_texture.c:
23819 * gst/vaapi/gstvaapivideometa_texture.h:
23820 plugins: fix GLTextureUploadMeta to work with different texture ids.
23821 The GLTextureUploadMeta implementation assumed that for each upload()
23822 sequence, the supplied texture id is always the same as the one that
23823 was previously cached into the underlying GstVaapiTexture. Cope with
23824 any texture id change the expense to recreate the underlying VA/GLX
23826 https://bugzilla.gnome.org/show_bug.cgi?id=719643
23828 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23830 * gst/vaapi/gstvaapidecode.c:
23831 * gst/vaapi/gstvaapivideobufferpool.c:
23832 * gst/vaapi/gstvaapivideometa_texture.c:
23833 plugins: allow builds without GLX enabled for GStreamer 1.2.
23834 Don't try to build GLTextureUploadMeta related code if GLX is not
23835 enabled during GStreamer >= 1.2 builds.
23837 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23839 * gst/vaapi/gstvaapidecode.c:
23840 * gst/vaapi/gstvaapivideobufferpool.c:
23841 * gst/vaapi/gstvaapivideobufferpool.h:
23842 * gst/vaapi/gstvaapivideometa_texture.c:
23843 * gst/vaapi/gstvaapivideometa_texture.h:
23844 plugins: request GLTextureUpload meta on buffers in the buffer pool.
23845 Requesting the GLTextureUpload meta on buffers in the bufferpool
23846 prevents such metas from being de-allocated when buffers are released
23848 This is particulary useful in terms of performance when using the
23849 GLTextureUploadMeta API since the GstVaapiTexture associated with
23850 the target texture is stored in the meta.
23851 https://bugzilla.gnome.org/show_bug.cgi?id=712558
23852 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23854 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23856 * gst/vaapi/gstvaapivideometa_texture.c:
23857 plugins: robustify GstVideoGLTextureUploadMeta implementation.
23858 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
23859 when the GstVaapiTexture associated with the supplied texture id could
23862 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23864 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23865 h264: improve robustness when packets are missing.
23866 Improve robustness when some expected packets where not received yet
23867 or that were not correctly decoded. For example, don't try to decode
23868 a picture if there was no valid frame headers parsed so far.
23869 https://bugs.freedesktop.org/show_bug.cgi?id=57902
23871 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23873 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23874 decoder: h264: fix decoding of BA3_SVA_C.264.
23875 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
23876 extended profile specifications. However, the SPS header has the
23877 constraint_set1_flag syntax element set to 1. This means that, if
23878 a Main profile compliant decoder is available, then it should be
23879 able to decode this stream.
23880 This changes makes it possible to fall-back from Extended profile
23881 to Main profile if constraint_set1_flag is set to 1.
23882 https://bugzilla.gnome.org/show_bug.cgi?id=720190
23884 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23886 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23887 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23888 utils: h264: add more profiles.
23889 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
23890 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
23891 multiview profiles (H.10.1.1, H.10.1.2).
23892 Document "Constrained Baseline" and "High 10" profiles.
23894 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23896 * ext/codecparsers:
23897 codecparsers: update to gst-vaapi-branch commit e7d0e18.
23898 e7d0e18 h264: complete set of NAL unit types
23900 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
23902 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23903 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23904 decoder: h264: add support for constrained baseline profile.
23905 Recognize streams marked as conforming to the "Constrained Baseline
23906 Profile". If VA driver supports that as is, fine. Otherwise, fallback
23907 to baseline, main or high profile.
23908 Constrained Baseline Profile conveys coding tools that are common
23909 to baseline profile and main profile.
23910 https://bugzilla.gnome.org/show_bug.cgi?id=719947
23911 [Added fallbacks to main and high profiles]
23912 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23914 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23916 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23917 decoder: h264: fix decoding of scaling lists.
23918 The GStreamer codecparser layer now parses the scaling lists in zigzag
23919 scan order, as expected, so that to match the original bitstream layout
23920 and specification. However, further convert the scaling lists into
23921 raster scan order to fit the existing practice in most VA drivers.
23922 https://bugzilla.gnome.org/show_bug.cgi?id=706406
23924 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23926 * ext/codecparsers:
23927 codecparsers: update to gst-vaapi-branch commit 177c73b.
23928 a7e3255 add H.265 (HEVC) bitstream parser
23929 177c73b h264: fix picture level scaling lists derivation (rule B)
23930 14733f1 h264: fix parsing of VCL HRD parameters
23931 59a0b47 h264: store quantization matrices in zig-zag order
23932 ffb6e26 h264: add helpers to convert quantization matrices
23933 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
23934 719d1b0 mpeg2: turn internal consistency check into a g_assert()
23935 5241d8e all: remove some unused functions
23936 18eb312 all: fix for GST_DISABLE_GST_DEBUG
23937 963c04a all: make warnings more meaningful
23939 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23941 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23942 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23943 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23944 utils: add helpers for H.264 levels.
23945 - gst_vaapi_utils_h264_get_level():
23946 Returns GstVaapiLevelH264 from H.264 level_idc value
23947 - gst_vaapi_utils_h264_get_level_idc():
23948 Returns H.264 level_idc value from GstVaapiLevelH264
23949 - gst_vaapi_utils_h264_get_level_limits():
23950 Returns level limits as specified in Table A-1 of the H.264 standard
23951 - gst_vaapi_utils_h264_get_level_limits_table():
23952 Returns the Table A-1 specification
23954 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23956 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23957 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23958 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23959 utils: add new H.264 profiles.
23960 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
23961 and helper functiions.
23963 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23965 utils: add new H.264 helper functions.
23967 - gst_vaapi_utils_h264_get_profile():
23968 Returns GstVaapiProfile from H.264 profile_idc value
23969 - gst_vaapi_utils_h264_get_profile_idc():
23970 Returns H.264 profile_idc value from GstVaapiProfile
23972 - gst_vaapi_utils_h264_get_chroma_type():
23973 Returns GstVaapiChromaType from H.264 chroma_format_idc value
23974 - gst_vaapi_utils_h264_get_chroma_format_idc():
23975 Returns H.264 chroma_format_idc value from GstVaapiChromaType
23977 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23979 * gst-libs/gst/base/Makefile.am:
23980 * gst-libs/gst/vaapi/Makefile.am:
23981 Fix missing files in distribution tarball.
23982 https://bugzilla.gnome.org/show_bug.cgi?id=719776
23983 [Additional fixes and clean-ups]
23984 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23986 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23988 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23989 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23990 encoder: fix computation of max coded buffer size (again).
23991 The previous fix was only valid to express the maximum size of the
23992 macroblock layer, i.e. without any headers. Now, also account for
23993 the slice headers and top picture header, but also any other header
23994 we might stuff into the VA coded buffer, e.g. sequence headers.
23996 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23998 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23999 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24000 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24001 encoder: fix computation of max coded buffer size.
24002 Fix coded buffer size for each codec. A generic issue was that the
24003 number of macroblocks was incorrectly computed. The second issue was
24004 specific to MPEG-2 were the max number of bits per macroblock, and
24005 as defined by the standard, was incorrectly mapped to the (lower)
24006 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
24008 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24010 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24011 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24012 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24013 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24014 encoder: simplify VA context initialization process.
24015 Change get_context_info() into a set_context_info() function that
24016 initializes common defaults into the base class, thus allowing the
24017 subclasses to specialize the context info further on.
24018 The set_context_info() hook is also the location where additional
24019 context specific data could be initialized. At this point, we are
24020 guaranteed to have valid video resolution size and framerate. i.e.
24021 gst_vaapi_encoder_set_format() was called beforehand.
24023 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
24025 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24026 encoder: fix mpeg2 compilation error.
24027 https://bugzilla.gnome.org/show_bug.cgi?id=719746
24028 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24030 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24032 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24033 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24034 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24035 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24036 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24037 * gst/vaapi/gstvaapiencode.c:
24038 encoder: clean-ups and document public APIs.
24039 Clean public APIs up so that to better align with the decoder APIs.
24040 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
24041 return the VA coded buffer proxy. Also provide useful documentation
24042 for the public APIs.
24044 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24046 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24047 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24048 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24049 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
24050 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
24051 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
24052 through GstVaapiCodedBufferProxy user-data facility.
24053 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
24055 Partial fix for the following report:
24056 https://bugzilla.gnome.org/show_bug.cgi?id=719530
24058 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24060 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24061 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24062 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24063 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24064 * gst/vaapi/gstvaapiencode.c:
24065 encoder: refactor status codes.
24066 Drop obsolete or unused status codes. Align some status codes with the
24067 decoder counterparts.
24069 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24071 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24072 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24073 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
24074 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24075 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
24076 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24077 encoder: fix subclassing process.
24078 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
24079 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
24080 thus avoiding useless run-time checks. Also simplify the subclass
24081 initialization process to be less error prone.
24083 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24085 encoder: rework GstVaapiCodedBuffer and related proxy.
24086 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
24087 public and private interfaces. Besides, the map/unmap APIs should not
24088 be exposed as is but appropriate accessors should be provided instead.
24089 * GstVaapiCodedBuffer: VA coded buffer abstraction
24090 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
24091 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
24092 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
24093 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
24094 the specified max size, and bound to the supplied encoder
24095 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
24096 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
24097 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
24098 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
24099 Rationale: more optimized transfer functions might be provided in the
24100 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
24101 https://bugzilla.gnome.org/show_bug.cgi?id=719775
24103 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24105 * gst/vaapi/gstvaapidecode.c:
24106 * gst/vaapi/gstvaapiencode.c:
24107 * gst/vaapi/gstvaapipostproc.c:
24108 * gst/vaapi/gstvaapisink.c:
24109 plugins: fix reference leaks of VA display objects.
24110 Fix GstElement::set_context() implementation for all plug-in elements
24111 to avoid leaking an extra reference to the VA display, thus preventing
24112 correct cleanup of VA resources in GStreamer 1.2 builds.
24114 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24116 * gst/vaapi/gstvaapipluginutil.c:
24117 * gst/vaapi/gstvaapivideocontext.c:
24118 plugins: simplify gst_vaapi_ensure_display().
24119 Return earlier if the creation of a VA display failed. Likewise, simplify
24120 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
24123 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24125 * gst/vaapi/gstvaapivideomemory.c:
24126 plugins: fix memory leaks through GstVideoMeta maps.
24127 When GstVideoMeta maps were used, the supporting functions incorrectly
24128 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
24129 always increasing the associated GstMemory reference count and giving
24130 zero chance to actually release that, and subsequently the VA display.
24132 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24134 * gst-libs/gst/vaapi/gstvaapifilter.c:
24135 * gst/vaapi/gstvaapiencode_h264.c:
24136 * gst/vaapi/gstvaapiencode_mpeg2.c:
24137 * gst/vaapi/gstvaapipostproc.c:
24138 * gst/vaapi/gstvaapisink.c:
24139 * gst/vaapi/gstvaapiuploader.c:
24140 plugins: use G_PARAM_STATIC_STRINGS.
24141 This avoids a few string copies during initialization.
24143 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24145 * gst/vaapi/gstvaapivideometa.c:
24146 plugins: simplify VA video meta to only reference surface proxies.
24147 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
24148 now allocated from a surface pool. This also means that the local
24149 reference to the VA surface is also gone, as it could be extracted
24150 from the associated surface proxy.
24152 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24154 * gst/vaapi/gstvaapivideobuffer.c:
24155 * gst/vaapi/gstvaapivideobuffer.h:
24156 * gst/vaapi/gstvaapivideometa.c:
24157 * gst/vaapi/gstvaapivideometa.h:
24158 plugins: drop obsolete functions.
24159 Drop the following functions that are not longer used:
24160 - gst_vaapi_video_buffer_new_with_surface()
24161 - gst_vaapi_video_meta_new_with_surface()
24162 - gst_vaapi_video_meta_set_surface()
24163 - gst_vaapi_video_meta_set_surface_from_pool()
24165 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24167 * gst/vaapi/gstvaapivideometa.c:
24168 plugins: allow VA video meta to be allocated from surface proxy pools.
24169 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
24170 from surface pools instead of plain VA surfaces. This is to simplify
24171 allocations now that surface proxies are created from a surface pool.
24173 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24175 * docs/reference/libs/libs-sections.txt:
24176 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24177 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24178 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24179 surfaceproxy: add copy function.
24180 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
24181 proxy with the same information from the parent proxy, except that the
24182 user-defined destroy notify function is not copied over.
24183 The underlying VA surface is pushed back to the video pool only when
24184 the last reference to the parent surface proxy is released.
24186 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24188 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
24189 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
24190 * gst/vaapi/gstvaapiencode.c:
24191 vaapiencode: optimize _handle_frame() to avoid extra allocation.
24192 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
24193 and in particular the GstVaapiEncObjUserData object. i.e. directly use
24194 the VA surface proxy from the source buffer. This also makes the user
24195 data attached to the GstVideoCodecFrame more consistent between both
24196 the decoder and encoder plug-in elements.
24198 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24200 * gst/vaapi/gstvaapiencode.c:
24201 vaapiencode: fix memory leaks in _push_frame() on error.
24202 Simplify gst_vaapiencode_push_frame(), while also removing the call
24203 to gst_video_encoder_negotiate() since this is implicit in _finish()
24204 if caps changed. Also fixed memory leaks that occured on error.
24206 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24208 * gst/vaapi/gstvaapiencode.c:
24209 * gst/vaapi/gstvaapiencode.h:
24210 * gst/vaapi/gstvaapiencode_h264.c:
24211 * gst/vaapi/gstvaapiencode_h264.h:
24212 * gst/vaapi/gstvaapiencode_mpeg2.c:
24213 vaapiencode: additional clean-ups.
24214 Constify pointers wherever possible. Drop unused variables, and use
24215 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
24216 to correctly report errors, especially when in-place conversion from
24217 bytestream to avcC format failed.
24219 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24221 * gst/vaapi/gstvaapiencode.c:
24222 * gst/vaapi/gstvaapiencode.h:
24223 * gst/vaapi/gstvaapiencode_h264.c:
24224 * gst/vaapi/gstvaapiencode_h264.h:
24225 * gst/vaapi/gstvaapiencode_mpeg2.c:
24226 * gst/vaapi/gstvaapiencode_mpeg2.h:
24227 vaapiencode: move common properties to base class.
24228 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
24229 base class. The actual range of supported rate control modes is currently
24230 implemented as a plug-in element hook. This ought to be determined from
24231 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
24233 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24235 * gst/vaapi/gstvaapiencode_h264.c:
24236 * gst/vaapi/gstvaapiencode_mpeg2.c:
24237 vaapiencode: fix plugin description and debug name.
24238 Align the plug-in debug category to its actual name. i.e. enable debug
24239 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
24240 the plug-in element description to make it more consistent with other
24243 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24246 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24247 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24248 * gst-libs/gst/video/Makefile.am:
24249 * gst/vaapi/gstvaapiencode.c:
24250 * gst/vaapi/gstvaapiencode.h:
24251 * gst/vaapi/gstvaapiencode_h264.c:
24252 * gst/vaapi/gstvaapiencode_mpeg2.c:
24253 vaapiencode: add initial support for GStreamer 0.10.
24255 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24257 * gst-libs/gst/vaapi/gstcompat.h:
24258 libs: add more GstBuffer compat glue for GStreamer 0.10.
24259 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
24260 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
24263 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24266 * gst-libs/gst/video/Makefile.am:
24267 libs: always use built-in videoutils for GStreamer 0.10.
24268 GStreamer 0.10.36 is the latest and ultimate version to be released
24269 from the GStreamer 0.10 branch. i.e. no further releases are to be
24270 made. So, we can safely enable the built-in videoutils replacement
24271 now that they are in sync with the 0.10 branch.
24273 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24276 videoutils: update to master commit d4a15a5.
24277 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
24278 86096cc videodecoder: minor cosmetic changes to align a bit more with master
24279 b4b8b52 videodecoder: allow parse function to not use all data on adapter
24280 2145495 videodecoder: warn if frame list gets long
24281 36c3753 videodecoder: Also use the object lock to protect the output_state
24282 518c93d videodecoder: fix seeking again
24283 185fb63 video: Correct usage of the base class stream lock
24284 170e944 videodecoder: Expose _negotiate function
24286 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
24289 * gst-libs/gst/vaapi/Makefile.am:
24290 * tests/Makefile.am:
24291 Fix build with GStreamer >= 1.3.
24292 http://bugzilla.gnome.org/show_bug.cgi?id=715183
24293 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24295 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24298 configure: disable encoders with GStreamer 0.10.
24299 Don't try to build video encoders for GStreamer 0.10. Support code is
24300 not there yet, and probably will never for such an ancient version.
24302 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24304 * gst/vaapi/gstvaapiencode.c:
24305 vaapiencode: fix error handling while allocating output buffers.
24306 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
24307 unmap the coded buffer prior to returning an error.
24309 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24311 * gst/vaapi/gstvaapiencode.c:
24312 vaapiencode: fix error handling in _finish() hook.
24313 Fix GstVideoEncoder::finish() implementation to really return possible
24314 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
24316 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24318 * gst/vaapi/gstvaapiencode.c:
24319 * gst/vaapi/gstvaapiencode.h:
24320 * gst/vaapi/gstvaapiencode_h264.c:
24321 * gst/vaapi/gstvaapiencode_h264.h:
24322 * gst/vaapi/gstvaapiencode_mpeg2.c:
24323 * gst/vaapi/gstvaapiencode_mpeg2.h:
24324 vaapiencode: minor clean-ups.
24325 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
24326 the GObject type system. We are guaranteed to only deal with the same
24327 plug-in element object.
24329 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24331 * gst/vaapi/gstvaapiencode.c:
24332 * gst/vaapi/gstvaapiencode_h264.c:
24333 * gst/vaapi/gstvaapiencode_mpeg2.c:
24334 vaapiencode: fix support for raw YUV sink buffers.
24335 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
24336 The most efficient way to do so is to let the vaapiencode elements
24337 allocate a buffer pool, and subsequently buffers from it. This means
24338 that upstream elements are expected to honour downstream pools.
24339 If upstream elements insist on providing their own allocated buffers
24340 to the vaapiencode elements, then it possibly would be more efficient
24341 to insert a vaapipostproc element before the vaapiencode element.
24342 This is because vaapipostproc currently has better support than other
24343 elements for "foreign" raw YUV buffers.
24345 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24347 * gst/vaapi/gstvaapiencode.c:
24348 vaapiencode: fix support for GStreamer 1.2.
24350 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
24352 * gst/vaapi/gstvaapiencode.c:
24353 * gst/vaapi/gstvaapiencode_h264.c:
24354 * gst/vaapi/gstvaapiencode_mpeg2.c:
24355 vaapiencode: initial port to GStreamer 1.2.
24356 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24358 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
24360 * gst/vaapi/Makefile.am:
24361 * gst/vaapi/gstvaapi.c:
24362 * gst/vaapi/gstvaapiencode_mpeg2.c:
24363 * gst/vaapi/gstvaapiencode_mpeg2.h:
24364 plugins: add mpeg2 encoder element.
24365 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
24366 is called "vaapiencode_mpeg2".
24368 - rate-control: rate control mode (default: cqp - constant QP)
24369 - bitrate: desired bitrate in kbps (default: auto-calculated)
24370 - key-period: maximal distance between two key frames (default: 30)
24371 - max-bframes: number of B-frames between I and P (default: 2)
24372 - quantizer: constant quantizer (default: 8)
24373 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24375 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
24377 * gst/vaapi/Makefile.am:
24378 * gst/vaapi/gstvaapi.c:
24379 * gst/vaapi/gstvaapiencode_h264.c:
24380 * gst/vaapi/gstvaapiencode_h264.h:
24381 plugins: add h264 encoder element.
24382 Add GstVaapiEncodeH264 element object. The actual plug-in element
24383 is called "vaapiencode_h264".
24385 - rate-control: rate control mode (default: none)
24386 - bitrate: desired bitrate in kbps (default: auto-calculated)
24387 - key-period: maximal distance between two key frames (default: 30)
24388 - num-slices: number of slices per frame (default: 1)
24389 - max-bframes: number of B-frames between I and P (default: 0)
24390 - min-qp: minimal quantizer (default: 1)
24391 - init-qp: initial quantizer (default: 26)
24392 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24394 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
24396 * gst/vaapi/Makefile.am:
24397 * gst/vaapi/gstvaapiencode.c:
24398 * gst/vaapi/gstvaapiencode.h:
24399 plugins: add base encoder element.
24400 vaapiencode element is based on GstVideoEncoder APIs.
24401 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24403 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
24405 * gst-libs/gst/vaapi/Makefile.am:
24406 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24407 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
24408 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
24409 encoder: add mpeg2 encoder.
24410 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
24411 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24413 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
24415 * gst-libs/gst/vaapi/Makefile.am:
24416 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24417 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
24418 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
24419 encoder: add h264 encoder.
24420 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24422 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
24425 * gst-libs/gst/vaapi/Makefile.am:
24426 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24427 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24428 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
24429 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
24430 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24431 Add initial infrastructure for video encoding.
24432 Add initial API for video encoding: only basic interfaces and small
24433 encoder objects are implemented so far.
24434 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24436 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
24439 * gst-libs/gst/Makefile.am:
24440 * gst-libs/gst/base/Makefile.am:
24441 * gst-libs/gst/base/gstbitwriter.c:
24442 * gst-libs/gst/base/gstbitwriter.h:
24443 * gst-libs/gst/vaapi/Makefile.am:
24444 libs: add generic bitstream writer.
24445 GstBitWriter provides a bit writer that can write any number of bits
24446 to a pre-allocated memory buffer. Helper functions are also provided
24447 to write any number of bits from 8, 16, 32 and 64 bit variables.
24448 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24450 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
24452 * gst-libs/gst/vaapi/gstvaapicontext.c:
24453 * gst-libs/gst/vaapi/gstvaapicontext.h:
24454 libs: add support for rate-control to GstVaapiContext.
24455 Extend GstVaapiContextInfo structure to hold the desired rate control
24456 mode for encoding purposes. For decoding purposes, this field is not
24457 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
24458 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24460 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
24462 * gst-libs/gst/vaapi/gstvaapitypes.h:
24463 * gst-libs/gst/vaapi/gstvaapiutils.c:
24464 * gst-libs/gst/vaapi/gstvaapiutils.h:
24465 * gst-libs/gst/vaapi/gstvaapivalue.c:
24466 * gst-libs/gst/vaapi/gstvaapivalue.h:
24467 libs: add rate-control attributes.
24468 Add GstVaapiRateControl types and GType values in view to supporting
24469 rate controls for encoding. This is meant to be used for instance in
24471 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24473 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24476 Bump version for development.
24478 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24480 * gst/vaapi/Makefile.am:
24481 build: fix for Wayland headers not in standard include dirs.
24482 Fix build when Wayland headers don't live in plain system include dirs
24483 like /usr/include but rather in /usr/include/wayland for instance.
24484 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
24485 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24487 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
24489 * gst-libs/gst/vaapi/Makefile.am:
24490 build: link libgstvaapi-wayland against videoutils.
24491 This library is using symbols that don't exist in GStreamer 0.10 so
24492 it needs to link to built-in implementation (libgstvaapi-videoutils).
24493 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24494 Signed-off-by: Ross Burton <ross.burton@intel.com>
24495 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24497 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24499 * gst-libs/gst/vaapi/gstvaapifilter.c:
24500 * gst/vaapi/gstvaapipostproc.c:
24501 vaapostproc: fix memory leaks.
24502 Destroy VPP output surface pool on exit. Also avoid a possible crash
24503 in double-free situation caused by insufficiently reference counted
24504 array of formats returned during initialization.
24506 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24508 * gst/vaapi/gstvaapipostproc.c:
24509 * gst/vaapi/gstvaapipostproc.h:
24510 vaapipostproc: fix and optimize advanced deinterlacing mode.
24511 Fix advanced deinterlacing modes with VPP to track only up to 2 past
24512 reference buffers. This used to be 3 past reference buffers but this
24513 doesn't fit with the existing decode pipeline that only has 4 extra
24515 Also optimize references tracking to be only enabled when needed, i.e.
24516 when advanced deinterlacing mode is used. This means that we don't
24517 need to track past references for basic bob or weave deinterlacing.
24519 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24521 * gst/vaapi/gstvaapipostproc.c:
24522 vaapipostproc: fix "mixed" mode deinterlacing.
24523 In "mixed" interlaced streams, the buffer contains additional flags that
24524 specify whether the frame contained herein is interlaced or not. This means
24525 that we can alternatively get progressive or interlaced frames. Make sure
24526 to disable deinterlacing at the VPP level when the source buffer is no longer
24529 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24531 * gst/vaapi/gstvaapipostproc.c:
24532 vaapipostproc: fix memory leaks with advanced deinterlacing.
24533 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
24534 of past buffers. Completely reset the deinterlace state, thus destroying
24535 any buffer currently held, on _start(), _stop() and _destroy().
24537 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24541 - GStreamer 1.2 APIs are supported ;
24542 - Video Processing (VA/VPP) features.
24544 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24547 README: update for GStreamer >= 1.0.x and VPP features.
24549 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24551 * gst-libs/gst/vaapi/glibcompat.h:
24552 * gst-libs/gst/vaapi/gstvaapicontext.h:
24553 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24554 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24555 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24556 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24557 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24558 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24559 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24560 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24561 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24562 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24563 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24564 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24565 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24566 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24567 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24568 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24569 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24570 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24571 * gst-libs/gst/vaapi/gstvaapiimage.c:
24572 * gst-libs/gst/vaapi/gstvaapiimage.h:
24573 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24574 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24575 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24576 * gst-libs/gst/vaapi/gstvaapiobject.c:
24577 * gst-libs/gst/vaapi/gstvaapiobject.h:
24578 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24579 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24580 * gst-libs/gst/vaapi/gstvaapisurface.h:
24581 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24582 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24583 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24584 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24585 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24586 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24587 * gst-libs/gst/vaapi/gstvaapitexture.c:
24588 * gst-libs/gst/vaapi/gstvaapitexture.h:
24589 * gst-libs/gst/vaapi/gstvaapitypes.h:
24590 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24591 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24592 * gst-libs/gst/vaapi/gstvaapivalue.c:
24593 * gst-libs/gst/vaapi/gstvaapivalue.h:
24594 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24595 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24596 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24597 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24598 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24599 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24600 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24601 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24602 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24603 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24604 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24605 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24606 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24607 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24608 * gst/vaapi/gstvaapi.c:
24609 * gst/vaapi/gstvaapidecode.h:
24610 * gst/vaapi/gstvaapidownload.h:
24611 * gst/vaapi/gstvaapipluginutil.c:
24612 * gst/vaapi/gstvaapipluginutil.h:
24613 * gst/vaapi/gstvaapipostproc.h:
24614 * gst/vaapi/gstvaapisink.h:
24615 * gst/vaapi/gstvaapivideoconverter_glx.h:
24619 * tests/test-display.c:
24620 * tests/test-jpeg.c:
24621 * tests/test-jpeg.h:
24622 * tests/test-mpeg4.c:
24623 * tests/test-mpeg4.h:
24624 * tests/test-surfaces.c:
24625 * tests/test-windows.c:
24626 legal: update copyright notice dates.
24628 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24630 * gst-libs/gst/vaapi/glibcompat.h:
24631 * gst-libs/gst/vaapi/gstcompat.h:
24632 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24633 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24634 * gst-libs/gst/vaapi/gstvaapicompat.h:
24635 * gst-libs/gst/vaapi/gstvaapicontext.c:
24636 * gst-libs/gst/vaapi/gstvaapicontext.h:
24637 * gst-libs/gst/vaapi/gstvaapidebug.h:
24638 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24639 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24640 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24641 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24642 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24643 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24644 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24645 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24646 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24647 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24648 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24649 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24650 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24651 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24652 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24653 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
24654 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
24655 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24656 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24657 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24658 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24659 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24660 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24661 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24662 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24663 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24664 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24665 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24666 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24667 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24668 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24669 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24670 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24671 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24672 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24673 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24674 * gst-libs/gst/vaapi/gstvaapifilter.c:
24675 * gst-libs/gst/vaapi/gstvaapifilter.h:
24676 * gst-libs/gst/vaapi/gstvaapiimage.c:
24677 * gst-libs/gst/vaapi/gstvaapiimage.h:
24678 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
24679 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24680 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24681 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
24682 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24683 * gst-libs/gst/vaapi/gstvaapiobject.c:
24684 * gst-libs/gst/vaapi/gstvaapiobject.h:
24685 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24686 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
24687 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
24688 * gst-libs/gst/vaapi/gstvaapipixmap.c:
24689 * gst-libs/gst/vaapi/gstvaapipixmap.h:
24690 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
24691 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
24692 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
24693 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24694 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24695 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24696 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24697 * gst-libs/gst/vaapi/gstvaapisurface.c:
24698 * gst-libs/gst/vaapi/gstvaapisurface.h:
24699 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24700 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24701 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24702 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24703 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24704 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24705 * gst-libs/gst/vaapi/gstvaapitexture.c:
24706 * gst-libs/gst/vaapi/gstvaapitexture.h:
24707 * gst-libs/gst/vaapi/gstvaapitypes.h:
24708 * gst-libs/gst/vaapi/gstvaapiutils.c:
24709 * gst-libs/gst/vaapi/gstvaapiutils.h:
24710 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24711 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24712 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24713 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24714 * gst-libs/gst/vaapi/gstvaapivalue.c:
24715 * gst-libs/gst/vaapi/gstvaapivalue.h:
24716 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24717 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24718 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24719 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24720 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24721 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24722 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24723 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24724 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24725 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24726 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24727 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24728 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24729 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24730 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24731 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24732 * gst-libs/gst/vaapi/sysdeps.h:
24733 * gst-libs/gst/vaapi/video-format.c:
24734 * gst-libs/gst/vaapi/video-format.h:
24735 * gst/vaapi/gstvaapi.c:
24736 * gst/vaapi/gstvaapidecode.c:
24737 * gst/vaapi/gstvaapidecode.h:
24738 * gst/vaapi/gstvaapidownload.c:
24739 * gst/vaapi/gstvaapidownload.h:
24740 * gst/vaapi/gstvaapipluginutil.c:
24741 * gst/vaapi/gstvaapipluginutil.h:
24742 * gst/vaapi/gstvaapipostproc.c:
24743 * gst/vaapi/gstvaapipostproc.h:
24744 * gst/vaapi/gstvaapisink.c:
24745 * gst/vaapi/gstvaapisink.h:
24746 * gst/vaapi/gstvaapiupload.c:
24747 * gst/vaapi/gstvaapiupload.h:
24748 * gst/vaapi/gstvaapiuploader.c:
24749 * gst/vaapi/gstvaapiuploader.h:
24750 * gst/vaapi/gstvaapivideobuffer.c:
24751 * gst/vaapi/gstvaapivideobuffer.h:
24752 * gst/vaapi/gstvaapivideobufferpool.c:
24753 * gst/vaapi/gstvaapivideobufferpool.h:
24754 * gst/vaapi/gstvaapivideocontext.c:
24755 * gst/vaapi/gstvaapivideocontext.h:
24756 * gst/vaapi/gstvaapivideoconverter_glx.c:
24757 * gst/vaapi/gstvaapivideoconverter_glx.h:
24758 * gst/vaapi/gstvaapivideoconverter_x11.c:
24759 * gst/vaapi/gstvaapivideoconverter_x11.h:
24760 * gst/vaapi/gstvaapivideomemory.c:
24761 * gst/vaapi/gstvaapivideomemory.h:
24762 * gst/vaapi/gstvaapivideometa.c:
24763 * gst/vaapi/gstvaapivideometa.h:
24764 * gst/vaapi/gstvaapivideometa_texture.c:
24765 * gst/vaapi/gstvaapivideometa_texture.h:
24774 * tests/simple-decoder.c:
24775 * tests/test-decode.c:
24776 * tests/test-decode.h:
24777 * tests/test-display.c:
24778 * tests/test-filter.c:
24779 * tests/test-h264.c:
24780 * tests/test-h264.h:
24781 * tests/test-jpeg.c:
24782 * tests/test-jpeg.h:
24783 * tests/test-mpeg2.c:
24784 * tests/test-mpeg2.h:
24785 * tests/test-mpeg4.c:
24786 * tests/test-mpeg4.h:
24787 * tests/test-surfaces.c:
24788 * tests/test-textures.c:
24789 * tests/test-vc1.c:
24790 * tests/test-vc1.h:
24791 * tests/test-windows.c:
24792 legal: add per-file authorship information.
24793 Credit original authors on a per-file basis as we cannot expect people
24794 to know all country-specific rules, or bother browsing through the git
24797 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24803 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24808 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24810 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24811 decoder: don't include obsolete headers.
24812 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
24813 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
24816 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24818 * gst/vaapi/Makefile.am:
24819 * gst/vaapi/gstvaapi.c:
24820 * gst/vaapi/gstvaapipostproc.c:
24821 vaapipostproc: add initial support for GStreamer 1.2.
24822 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
24823 right now so that to cope with auto-plugging issues/regressions. e.g.
24824 this happens when the correct set of expected caps are being exposed.
24825 This means that, currently, the proposed caps are not fully accurate.
24827 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
24829 * gst/vaapi/gstvaapipostproc.c:
24830 * gst/vaapi/gstvaapipostproc.h:
24831 vaapipostproc: add support for denoise and sharpen filters.
24832 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24834 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24836 * gst/vaapi/gstvaapipostproc.c:
24837 * gst/vaapi/gstvaapipostproc.h:
24838 vaapipostproc: add support for advanced deinterlacing.
24839 Add initial support for advanced deinterlacing. The history buffer
24840 size is arbitrarily set to 3 references for now.
24842 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24844 * gst/vaapi/gstvaapipostproc.c:
24845 vaapipostproc: fix deinterlacing with VPP.
24846 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
24847 for the first field. Render flags were supplied instead of the actual
24848 deinterlacing flags (deint_flags).
24850 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24852 * gst/vaapi/gstvaapipostproc.c:
24853 vaapipostproc: fix transform caps.
24854 Fix GstBaseTransform::transform_caps() implementation to always return
24855 the complete set of allowed sink pad caps (unfixated) even if the src
24856 pad caps we are getting are fixated. Rationale: there are just so many
24857 possible combinations, and it was wrong to provide a unique set anyway.
24858 As a side effect, this greatly simplifies the ability to derive src pad
24859 caps from fixated sink pad caps.
24861 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
24863 * docs/reference/libs/libs-sections.txt:
24864 * gst-libs/gst/vaapi/gstvaapifilter.c:
24865 * gst-libs/gst/vaapi/gstvaapifilter.h:
24866 filter: add helper to specify references for deinterlacing.
24867 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
24868 list of surfaces used for forward or backward reference in advanced
24869 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
24870 The list of surfaces used as deinterlacing references shall be live
24871 until the next call to gst_vaapi_filter_process().
24872 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24874 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24876 * gst-libs/gst/vaapi/gstvaapifilter.c:
24877 * gst-libs/gst/vaapi/gstvaapifilter.h:
24878 * gst-libs/gst/vaapi/gstvaapiutils.c:
24879 * gst/vaapi/gstvaapipostproc.c:
24880 * tests/test-filter.c:
24881 filter: fix semantics of deinterlacing flags.
24882 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
24883 flag is meant to specify the organization of reference frames used in
24884 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
24885 to specify that the top-field of the supplied input surface is to be
24886 used for deinterlacing. Conversely, if not set, this means that the
24887 bottom field of the supplied input surface will be used instead.
24889 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24891 * docs/reference/libs/libs-sections.txt:
24892 * gst-libs/gst/vaapi/gstvaapifilter.c:
24893 * gst-libs/gst/vaapi/gstvaapifilter.h:
24894 filter: add helpers to check for supported/active operation.
24895 Add a couple of helper functions:
24896 - gst_vaapi_filter_has_operation(): checks whether the VA driver
24897 advertises support for the supplied operation ;
24898 - gst_vaapi_filter_use_operation(): checks whether the supplied
24899 operation was already enabled to its non-default value.
24901 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24903 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24904 libs: fix GstVaapiSurfaceProxy destroy notify call site.
24905 The user-defined destroy notify function is meant to be called only when
24906 the surface proxy was fully released, i.e. once it actually released the
24907 VA surface back to the underlying pool.
24909 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
24911 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24912 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24913 libs: make GstVaapiVideoPool thread-safe.
24914 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24915 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24917 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
24919 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24920 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24921 libs: robustify decoder objects and surface proxy initialization.
24922 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
24923 sequences to have the expected default values set beforehand in case of an
24924 error raising up further during creation. i.e. make it possible to cleanly
24925 destroy those partially initialized objects.
24926 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24927 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24929 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24931 * gst/vaapi/gstvaapidecode.c:
24932 vaapidecode: fix decoder flush.
24933 There are situations where gst_video_decoder_flush() is called, and
24934 this subsequently produces a gst_video_decoder_reset() that kills the
24935 currently active GstVideoCodecFrame. This means that it no longer
24936 exists by the time we reach GstVideoDecoder::finish() callback, thus
24937 possibly resulting in a crash if we assumed spare data was still
24938 available for decode (current_frame_size > 0).
24939 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
24940 that means a flush, thus performing the actual operations there like
24941 calling gst_video_decoder_have_frame() if pending data is available.
24943 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24945 * gst/vaapi/gstvaapidecode.c:
24946 * gst/vaapi/gstvaapidecode.h:
24947 vaapidecode: fix dead-locks with decoder task.
24948 Review all interactions between the main video decoder stream thread
24949 and the decode task to derive a correct sequence of operations for
24950 decoding. Also avoid extra atomic operations that become implicit under
24951 the GstVideoDecoder stream lock.
24953 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24955 * gst/vaapi/gstvaapidecode.c:
24956 vaapidecode: fix hard reset for seek cases.
24957 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
24958 and completely purge any decoded output frame that may come out from
24959 it. At this stage, the GstVaapiDecoder shall be in a complete clean
24960 state to start decoding over new buffers.
24961 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24963 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24965 * gst/vaapi/gstvaapidecode.c:
24966 * gst/vaapi/gstvaapidecode.h:
24967 vaapidecode: drop decode timeout, always wait for a free surface.
24968 vaapidecode used to wait up to one second past the expected time of
24969 presentation for the last decoded frame. This is not realistic in
24970 practice when it comes to video pause/resume. Changed behaviour to
24971 unconditionnally wait for a free VA surface prior to continuing the
24972 decoding. The decode task will continue pushing the output frames to
24973 the downstream element while also reporting errors at the same time
24974 to the main thread.
24975 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24976 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24978 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24980 * gst/vaapi/gstvaapidecode.c:
24981 vaapidecode: fix srcpad caps for GStreamer 1.2.
24982 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
24983 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
24984 that it relied on possibly un-initialized data. Fix srcpad caps to be
24985 initialized from a sanitized copy of GstVideoDecoder output state caps.
24986 Note: the correct way to expose the srcpad caps triggers an additional
24987 issue in core GStreamer auto-plugging capabilities as the correct caps
24988 to be exposed should be format=ENCODED with memory:VASurface caps feature
24989 at the minimum. In some situations, we could determine the underlying
24990 VA surface format, but this is not always possible. e.g. cases where it
24991 is not allowed to expose the underlying VA surface data, or when the
24992 VA driver implementation cannot actually provide such information.
24994 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24996 * gst/vaapi/gstvaapidecode.c:
24997 * gst/vaapi/gstvaapisink.c:
24998 plugins: streamline VA formats exposed in caps to a realistic set.
24999 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
25000 output formats for GStreamer 1.2 in caps to a realistic subset. This
25001 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
25002 underlying VA surface format, or if it is actually not allowed to get
25003 access to the surface contents.
25005 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25007 * gst/vaapi/gstvaapidecode.c:
25008 * gst/vaapi/gstvaapisink.c:
25009 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
25010 Fix vaapidecode srcpad caps to only expose RGBA video format for the
25011 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
25012 so far. Besides, drop this meta from the vaapisink sinkpad caps since
25013 we really don't support that for rendering.
25014 https://bugzilla.gnome.org/show_bug.cgi?id=711828
25016 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25019 configure: automatically detect GStreamer API version.
25020 Automatically detect GStreamer API version. The --with-gstreamer-api
25021 configure option now defaults to "autodetect" and configure then tries
25022 to derive the GStreamer API version from the highest version based on
25023 what pkg-config --modversion would report.
25024 https://bugzilla.gnome.org/show_bug.cgi?id=711657
25026 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
25028 * gst/vaapi/gstvaapipostproc.c:
25029 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
25030 Fix raw YUV data uploaded as in the following pipeline:
25031 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
25032 The main reason why it failed was that the videoparse element simply
25033 allocates GstBuffer with raw data chunk'ed off the sink pad without
25034 any prior knowledge of the actual frame info. i.e. it basically just
25035 calls gst_adapter_take_buffer().
25036 We could avoid the extra copy performed in vaapipostproc if the videoparse
25037 element was aware of the downstream pool and bothers copying line by
25038 line, for each plane. This means that, for a single frame per buffer,
25039 the optimizatin will be to allocate the video buffer downstream, map
25040 it, and copy each line that is coming through until we need to fills
25041 in the successive planes.
25042 Still, optimized raw YUV uploads already worked with the following:
25043 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
25044 https://bugzilla.gnome.org/show_bug.cgi?id=711250
25045 [clean-ups, fixed error cases to unmap and unref outbuf]
25046 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25048 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25050 * gst/vaapi/gstvaapipostproc.c:
25051 vaapipostproc: try to downgrade deinterlace-method when needed.
25052 If the currently selected deinterlacing method is not supported by the
25053 underlying hardware, then try to downgrade the method to a supported one.
25054 At the minimum, basic bob-deinterlacing shall always be supported.
25056 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25058 * gst/vaapi/gstvaapipostproc.c:
25059 vaapipostproc: add initial support for deinterlacing with VPP.
25060 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
25061 this only covers bob-deinterlacing when the output pixel format is
25064 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25066 * gst/vaapi/gstvaapipostproc.c:
25067 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
25068 The size argument for GstBaseTransform::transform_size() hook is a
25069 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
25071 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25073 * gst/vaapi/gstvaapipostproc.c:
25074 * gst/vaapi/gstvaapipostproc.h:
25075 vaapipostproc: add initial support for scaling.
25076 Add initial support for basic scaling with size specified through the
25077 "width" and "height" properties. If either user-provided dimension is
25078 zero and "force-aspect-ratio" is set to true (the default), then the
25079 other dimension is scaled to preserve the aspect ratio.
25081 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25083 * gst/vaapi/gstvaapipostproc.c:
25084 * gst/vaapi/gstvaapipostproc.h:
25085 vaapipostproc: add initial support for color conversion.
25086 If VPP is available, we always try to implicitly convert the source
25087 buffer to the "native" surface format for the underlying accelerator.
25088 This means that no optimization is performed yet to propagate raw YUV
25089 buffers to the downstream element as is, if VPP is available. i.e. it
25090 will always cause a color conversion.
25092 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25094 * gst/vaapi/gstvaapipostproc.c:
25095 vaapipostproc: fix bug when user disabled deinterlacing.
25096 Fix pipeline error / hang when the user disabled deinterlacing through
25097 the deinterlace-mode=disabled property setting.
25099 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25101 * gst/vaapi/gstvaapipostproc.c:
25102 * gst/vaapi/gstvaapipostproc.h:
25103 vaapipostproc: factor out operations to be applied into flags.
25104 Even if we only support deinterlacing for now, use flags to specify
25105 which filters are to be applied to each frame we receive in transform().
25106 This is preparatory work for integrating new filters.
25108 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25110 * gst/vaapi/gstvaapipostproc.c:
25111 * gst/vaapi/gstvaapipostproc.h:
25112 vaapipostproc: add support for raw YUV video source buffers.
25113 Allow video processing from raw YUV buffers coming from the sink pad,
25114 while still producing a VA surface for the downstream elements.
25116 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25118 * gst/vaapi/gstvaapipluginutil.c:
25119 * gst/vaapi/gstvaapipluginutil.h:
25120 * gst/vaapi/gstvaapipostproc.c:
25121 vaapipostproc: add support for "mixed" interlace mode.
25122 Add support for "mixed" interlace-mode, whereby the video frame buffer
25123 shall be deinterlaced only if its flags mention that's actually an
25124 interlaced frame buffer.
25126 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25128 * gst-libs/gst/vaapi/gstcompat.h:
25129 * gst/vaapi/gstvaapipostproc.c:
25130 * gst/vaapi/gstvaapipostproc.h:
25131 * gst/vaapi/gstvaapivideobuffer.c:
25132 * gst/vaapi/gstvaapivideobuffer.h:
25133 vaapipostproc: rework plug-in element.
25134 Rewrite the vaapipostproc plug-in element so that it derives from
25135 GstBaseTransform, thus simplifying the caps negotiation process.
25137 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25139 * gst/vaapi/gstvaapivideobufferpool.c:
25140 * gst/vaapi/gstvaapivideomemory.c:
25141 * gst/vaapi/gstvaapivideomemory.h:
25142 plugins: fix and optimize check for buffer pool allocator params.
25143 Reset the buffer pool allocator only if the config caps changed in a
25144 sensible way: format or resolution change. i.e. don't bother with
25145 other caps like colorimetry et al. as this doesn't affect the way to
25146 allocate VA surfaces or images.
25148 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25150 * gst/vaapi/gstvaapivideomemory.c:
25151 plugins: enable memory maps for read & write with direct-rendering.
25152 Enable read and write mappings only if direct-rendering is supported.
25153 Otherwise, this means that we may need to download data from the VA
25154 surface first for correctness, even if the VA surface doesn't need to
25155 be read at all. i.e. sometimes, READWRITE mappings are meant for
25156 surfaces that are written to first, and read afterwards for further
25158 https://bugzilla.gnome.org/show_bug.cgi?id=704078
25160 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25162 * gst/vaapi/gstvaapivideomemory.c:
25163 plugins: fix check for direct-rendering support.
25164 Fix check for direct-rendering if the creation of VA surfaces with
25165 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
25166 that we tried to allocate a VA surface based on the corresponding
25167 chroma type. i.e. in that particular case, we have to make sure that
25168 the derived image has actually the expected format.
25170 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25172 * gst/vaapi/gstvaapivideobufferpool.c:
25173 * gst/vaapi/gstvaapivideomemory.c:
25174 * gst/vaapi/gstvaapivideomemory.h:
25175 plugins: fix buffer pool reset_buffer() to reset memory resources.
25176 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
25177 memory resources, and more particularly the VA surface proxy. Most
25178 importantly, the GstVaapiVideoMeta is retained. Cached surface in
25179 memory are released, thus triggering a new allocation the next time
25180 we need to map the buffer.
25182 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25184 * gst/vaapi/gstvaapivideomemory.c:
25185 * gst/vaapi/gstvaapivideomemory.h:
25186 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
25187 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
25188 pool stored in the parent VA memory allocator.
25189 This fixes the following scenario:
25190 - VA video buffer 1 is allocated from a buffer pool
25191 - Another video buffer is created, and inherits info from buffer 1
25192 - Buffer 1 is released, thus pushing it back to the buffer pool
25193 - New buffer alloc request comes it, this yields buffer 1 back
25194 - At this stage, buffers 1 and 2 still share the same underlying VA
25195 surface, but buffer 2 was already submitted downstream for further
25196 processing, thus conflicting with additional processing we were
25197 about to perform on buffer 1.
25198 Maybe the core GstBufferPool implementation should have been fixed
25199 instead to actually make sure that the returned GstBuffer memory we
25200 found from the pool is writable?
25202 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25204 * gst/vaapi/gstvaapiuploader.c:
25205 plugins: create a proxy for GstVaapiUploader allocated buffers.
25206 Always make sure to allocate a VA surface proxy for GstVaapiUploader
25207 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
25209 This fixes cases where we want to retain the underlying surface longer,
25210 instead of releasing it back to the surface pool right away.
25212 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25214 * gst/vaapi/gstvaapidecode.c:
25215 * gst/vaapi/gstvaapipluginutil.c:
25216 * gst/vaapi/gstvaapipluginutil.h:
25217 * gst/vaapi/gstvaapipostproc.c:
25218 plugins: add helper function to disable deinterlacing in caps.
25219 Add gst_caps_set_interlaced() helper function that would reset the
25220 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
25221 interlaced field to "false" for GStreamer 0.10.
25223 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25225 * gst-libs/gst/vaapi/gstvaapifilter.c:
25226 filter: fix memory leak of VPP operations.
25227 Fix ensure_operations() to release the VPP operations array if non
25228 NULL, prior to returning to the caller. The former function was also
25229 renamed to a more meaningful get_operations() since the caller owns
25230 the returned array that needs to be released.
25232 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
25234 * gst-libs/gst/vaapi/gstvaapifilter.c:
25235 filter: fix first-time operation lookup.
25236 Fix first-time operation lookup through find_operation() if the set
25237 of supported operations was not initially determined through the
25238 gst_vaapi_filter_get_operations() helper function.
25239 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25241 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
25243 * gst-libs/gst/vaapi/gstvaapifilter.c:
25244 filter: fix colorbalance related subtypes.
25245 Fix intiialization of GstVaapiFilterOpData for colorbalance related
25246 operations. In particular, fill in the va_subtype field accordingly.
25247 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25249 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25251 * gst-libs/gst/vaapi/gstvaapifilter.c:
25252 filter: fix VA-API 0.34.0 symbol guards.
25253 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
25254 that need to be guarded for libva 0.34 and 0.33, respectively.
25255 https://bugzilla.gnome.org/show_bug.cgi?id=709102
25256 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25258 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25260 * gst/vaapi/gstvaapidecode.c:
25261 * gst/vaapi/gstvaapipluginutil.c:
25262 * gst/vaapi/gstvaapisink.c:
25263 plugins: hanle the context query in any pad.
25264 Also this patch simplifies the code, since now the query is common for the
25265 decoder and the sink.
25266 https://bugzilla.gnome.org/show_bug.cgi?id=709200
25268 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25270 * gst/vaapi/gstvaapivideocontext.c:
25271 plugins: query upstream element for a GstContext.
25272 Fix gst_vaapi_video_context_prepare() to also query upstream elements
25273 for a valid GstContext. Improve comments regarding the steps used to
25274 lookup or build that context, thus conforming to the GstContext API
25276 https://bugzilla.gnome.org/show_bug.cgi?id=709112
25277 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25279 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25282 * debian.upstream/control.in:
25283 Fix detection and packaging of GStreamer 1.2.x builds.
25284 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
25285 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
25286 purposes, update the versioning to -1.2 suffix instead.
25288 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25290 * gst/vaapi/Makefile.am:
25291 * gst/vaapi/gstvaapidecode.c:
25292 * gst/vaapi/gstvaapidecode.h:
25293 * gst/vaapi/gstvaapisink.c:
25294 * gst/vaapi/gstvaapivideometa_texture.c:
25295 * gst/vaapi/gstvaapivideometa_texture.h:
25296 plugins: add support for GstVideoGLTextureUploadMeta.
25297 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
25298 requested, and more specifically under a GLX configuration, then add
25299 the GstVideoGLTextureUploadMeta to the output buffer.
25300 https://bugzilla.gnome.org/show_bug.cgi?id=703236
25301 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25303 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25305 * gst/vaapi/gstvaapidecode.c:
25306 * gst/vaapi/gstvaapisink.c:
25307 * gst/vaapi/gstvaapivideomemory.h:
25308 plugins: add support for GstCaps features.
25309 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
25310 as expressed in caps, to the more standard use of caps features. i.e.
25311 add "memory:VASurface" feature attribute to the associated caps.
25312 https://bugzilla.gnome.org/show_bug.cgi?id=703271
25313 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25315 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25317 * gst/vaapi/gstvaapidecode.c:
25318 * gst/vaapi/gstvaapisink.c:
25319 plugins: improve ::query() debugging messages.
25320 Fix gst_vaapidecode_query() to correctly display the query type name,
25321 instead of randomly displaying that we shared the underlying display.
25322 Also add debug info for the GstVaapiSink::query() handler, i.e. the
25323 supplied query type name actually.
25324 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25326 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25328 * gst/vaapi/gstvaapidecode.c:
25329 * gst/vaapi/gstvaapisink.c:
25330 plugins: add support for GstContext API.
25331 Add support for the new GstContext API from GStreamer 1.2.x.
25332 - implement the GstElement::set_context() hook ;
25333 - reply to the `context' query from downstream elements.
25334 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25335 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25337 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25339 * gst/vaapi/Makefile.am:
25340 * gst/vaapi/gstvaapipluginutil.c:
25341 * gst/vaapi/gstvaapivideocontext.c:
25342 * gst/vaapi/gstvaapivideocontext.h:
25343 plugins: add compat layer for GstVideoContext.
25344 Add thin compatibility layer for the deprecated GstVideoContext API.
25345 For GStreamer API >= 1.2, this involves the following two functions:
25346 - gst_vaapi_video_context_prepare(): queries if a context is already
25347 set in the pipeline ;
25348 - gst_vaapi_video_context_propagate(): propagates the newly-created
25349 context to the rest of the pipeline.
25350 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25351 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25353 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25356 * gst/vaapi/Makefile.am:
25357 * gst/vaapi/gstvaapi.c:
25358 * gst/vaapi/gstvaapidecode.c:
25359 * gst/vaapi/gstvaapipluginutil.c:
25360 * gst/vaapi/gstvaapisink.c:
25361 * gst/vaapi/gstvaapivideobuffer.c:
25362 plugins: initial port to GStreamer 1.2.
25363 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
25364 is rather minimalistic so that to test the basic functionality.
25365 Disable vaapipostproc plugin for now as further polishing is needed.
25366 Also disable GstVideoContext interface support since this API is now
25367 gone in 1.2.x. This is preparatory work for GstContext support.
25368 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25369 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25371 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25373 * tests/simple-decoder.c:
25374 tests: simple-decoder: fix for non-X11 backends.
25375 Don't try to create pixmaps if we have not requested that feature. This
25376 fixes execution for non-X11 backends, and most specifically DRM video
25379 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25381 * ext/codecparsers:
25382 codecparsers: update to gst-vaapi-branch commit b33bd32.
25383 b33bd32 jpeg: fix and optimize scan for next marker code
25385 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25387 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25388 jpeg: fix calculation of MCU count.
25389 Fix calculation of MCU count for image sizes that are not a multiple
25390 of 8 pixels in either dimension, but also for non-common sampling
25391 factors like 4:2:2 in non-interleaved mode.
25393 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25395 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25396 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25397 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25398 jpeg: add support for multiscan images.
25399 Add support for images with multiple scans per frame. The Huffman table
25400 can be updated before SOS, and thus possibly requiring multiple uploads
25401 of Huffman tables to the VA driver. So, the latter must be able to cope
25402 with multiple VA buffers of type 'huffman-table' and with the correct
25405 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25407 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25408 jpeg: improve robustness when packets are missing.
25409 Improve robustness when some expected packets where not received yet
25410 or that were not correctly decoded. For example, don't try to decode
25411 a picture if there was no valid frame headers.
25413 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25415 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25416 jpeg: minor clean-ups.
25417 Improve debugging and error messages. Rename a few variables to fit the
25418 existing naming conventions. Change some fatal asserts to non-fatal
25421 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25423 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25424 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25425 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25426 jpeg: rework and optimize parser.
25427 Split the input buffer data into decoder units that represent a JPEG
25428 segment. Handle scan decoder unit specifically so that it can include
25429 both the scan header (SOS) but also any other ECS or RSTi segment.
25430 That way, we parse the input buffer stream only once at the gst-vaapi
25431 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
25432 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
25433 determine segment boundaries and decode them.
25434 In practice, this is a +15 to +25% performance improvement.
25436 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25438 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25439 jpeg: handle comment segments.
25440 Fix decode_buffer() function to gracefully skip comment (COM) segments.
25441 This fixes decoding of streams generated by certain cameras, e.g. like
25442 the Logitech Pro C920.
25443 https://bugzilla.gnome.org/show_bug.cgi?id=708208
25444 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25446 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25448 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25449 jpeg: fix determination of image bounds.
25450 Look for the exact image bounds characterised by the <SOI> and <EOI>
25451 markers. Use the gst_jpeg_parse() codec parser utility function to
25452 optimize the lookup for the next marker segment.
25453 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25455 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25457 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25458 jpeg: fix calculation of offset to next marker segment.
25459 Fix calculation of the offset to the next marker segment since the
25460 correction of the codecparser part to match the API specification.
25461 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
25462 of the segment minus any marker prefix.
25463 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25464 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25466 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25468 * ext/codecparsers:
25469 codecparsers: update to gst-vaapi-branch commit 23c7dde.
25470 23c7dde jpeg: fix calculation of segment size
25472 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25475 Bump version for development.
25477 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25483 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25488 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
25491 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25492 configure: fix detection of VA/JPEG decoding API.
25493 Fix detection of VA/JPEG decoding API with non-standard libva packages.
25494 More precisely, some packages were shipping with a <va/va.h> header that
25495 did not include <va/va_dec_jpeg.h>.
25496 https://bugzilla.gnome.org/show_bug.cgi?id=706055
25497 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25499 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
25501 * gst/vaapi/gstvaapisink.c:
25502 vaapisink: ensure the uploader is setup for upstream allocated buffers.
25503 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
25504 is setup in case upstream elements allocate buffers themselves without
25505 honouring our GstVaapiSink::bufer_alloc() hook.
25506 In particular, this fixes support for OGG video streams with WebKit.
25507 https://bugzilla.gnome.org/show_bug.cgi?id=703934
25508 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25510 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25512 * gst/vaapi/gstvaapisink.c:
25513 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
25514 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
25517 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25519 * gst/vaapi/gstvaapisink.c:
25520 * gst/vaapi/gstvaapisink.h:
25521 vaapisink: handle raw buffers not created from VA video buffer pool.
25522 Handle raw video buffers that were not created from a VA video buffer
25523 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
25524 builds instead of the GstVaapiUploader.
25525 https://bugs.freedesktop.org/show_bug.cgi?id=55818
25527 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25529 * gst/vaapi/gstvaapidecode.c:
25530 vaapidecode: remove extraneous size information from allowed caps.
25531 Fix _getcaps() implementation to not report codecs with size information
25532 filled in the returned caps. That's totally useless nowadays. Ideally,
25533 this is a hint to insert a video parser element, thus allowing future
25534 optimizations, but this is not a strict requirement for gstreamer-vaapi,
25535 which is able to parse the elementary bitstreams itself.
25536 https://bugzilla.gnome.org/show_bug.cgi?id=704734
25538 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25540 * gst/vaapi/gstvaapidecode.c:
25541 * gst/vaapi/gstvaapidecode.h:
25542 vaapidecode: submit the last frame from output adapter to decoder.
25543 If there is no frame delimiter at the end of the stream, e.g. no
25544 end-of-stream or end-of-sequence marker, and that the current frame
25545 was fully parsed correctly, then assume that last frame is complete
25546 and submit it to the decoder.
25547 https://bugzilla.gnome.org/show_bug.cgi?id=705123
25548 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25549 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25551 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25553 * gst/vaapi/gstvaapidecode.c:
25554 * gst/vaapi/gstvaapidecode.h:
25555 vaapidecode: push all decoded frames from within the task.
25556 Make sure to push all decoded frames from the task so that the unlying
25557 VA surfaces could all be rendered from the same thread.
25559 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25561 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25562 wayland: render the raw surface if VPP failed.
25563 As a last resort, if video processing capabilities (VPP) are not available,
25564 or they did not produce anything conclusive enough, then try to fallback to
25565 the original rendering code path whereby the whole VA surface is rendered
25566 as is, no matter of video cropping or deinterlacing requests.
25567 Note: under those conditions, the visual outcome won't be correct but at
25568 least, something gets displayed instead of bailing out.
25570 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25572 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25573 wayland: add supporting for video processing.
25574 Try to use VA/VPP processing capabilities to handle video cropping and
25575 additional rendering flags that may not be directly supported by the
25576 underlying hardware when exposing a suitable Wayland buffer for the
25577 supplied VA surface. e.g. deinterlacing, different color primaries than
25580 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25582 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25583 wayland: add new frame redraw infrastructure.
25584 Update the frame redraw infrastructure with a new FrameState stucture
25585 holds all the necessary information used to display the next pending
25587 While we are at it, delay the sync operation down to when it is actually
25588 needed. That way, we keep performing additional tasks meanwhile.
25590 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25592 * docs/reference/libs/libs-sections.txt:
25593 * gst-libs/gst/vaapi/gstvaapifilter.c:
25594 * gst-libs/gst/vaapi/gstvaapifilter.h:
25595 filter: allow specification of render target regions.
25596 Add support for rendering the source surface to a particular region within
25597 the supplied target surface. The default background color is black.
25599 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25601 * gst/vaapi/gstvaapivideobuffer.c:
25602 decode: fix creation of GLX video buffers for GStreamer 0.10.
25603 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
25604 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
25606 This fixes support for cluttersink with GStreamer 0.10 builds.
25608 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25610 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25611 mpeg2: disable video cropping as picture_display_extension() is missing.
25612 Disable video cropping in MPEG-2 codec because it is partially implemented
25613 and actually because nobody implements it that way, and the standard spec
25614 does not specify the display process either anyway.
25615 Most notably, there are two possible use cases for sequence_display_extension()
25616 horizontal_display_size & vertical_display_size: (i) guesstimating the
25617 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
25618 in conjunction with picture_display_extension() information.
25619 https://bugzilla.gnome.org/show_bug.cgi?id=704848
25621 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
25623 * gst/vaapi/gstvaapisink.c:
25624 * gst/vaapi/gstvaapisink.h:
25625 vaapisink: allow scaling to ignore aspect ratio.
25626 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
25627 which allows you to say that you don't want the sink to respect aspect
25628 ratio. Add the same property to vaapisink.
25629 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
25630 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
25632 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
25634 * gst/vaapi/gstvaapisink.c:
25635 vaapisink: fix memory leak of GstVaapiUploader instance.
25636 Make sure gst_vaapisink_ensure_uploader() checks for the existence
25637 of a former GstVaapiUploader instance prior to forcibly creating a
25639 https://bugzilla.gnome.org/show_bug.cgi?id=703980
25641 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25643 * gst/vaapi/gstvaapisink.c:
25644 vaapisink: fix get_caps() implementation for GStreamer 1.0.
25645 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
25646 by honouring the filter caps argument. More precisely, this fixes the
25647 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
25648 https://bugzilla.gnome.org/show_bug.cgi?id=705192
25649 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25650 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25652 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25654 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25655 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
25656 This fixes the following issue:
25657 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
25658 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
25659 'GstVaapiDecoderMpeg4Class'
25660 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
25661 'GstVaapiDecoderMpeg4Class' was here
25662 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
25663 make[5]: Leaving directory
25664 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
25665 https://bugzilla.gnome.org/show_bug.cgi?id=705148
25667 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25669 * tests/test-filter.c:
25670 tests: filter: add support for deinterlacing.
25671 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
25672 deinterlacing filter. However, if --deinterlace option is not set but the
25673 --deinterlace-flags option is set with "top-field-first", then the very
25674 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
25676 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25678 * tests/test-filter.c:
25679 tests: filter: add support for denoising and sharpening.
25680 Add --denoise option to enable noise reduction with the level specified
25681 as the option value (float). Likewise, add --sharpen option to enable
25683 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25685 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25687 * tests/test-filter.c:
25688 tests: filter: add support for frame cropping.
25689 Add support for frame cropping through the --crop-rect|-c argument.
25690 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
25691 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
25693 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25695 * tests/test-filter.c:
25696 tests: filter: dump supported operations and formats.
25698 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
25700 * tests/Makefile.am:
25701 * tests/test-filter.c:
25702 tests: add initial test for video processing.
25703 Add minimal test case for video processing: scaling and color format
25705 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25707 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
25709 * docs/reference/libs/libs-sections.txt:
25710 * gst-libs/gst/vaapi/gstvaapifilter.c:
25711 * gst-libs/gst/vaapi/gstvaapifilter.h:
25712 * gst-libs/gst/vaapi/gstvaapiutils.c:
25713 * gst-libs/gst/vaapi/gstvaapiutils.h:
25714 * gst/vaapi/gstvaapipostproc.c:
25715 * gst/vaapi/gstvaapipostproc.h:
25716 filter: add initial support for deinterlacing.
25717 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
25718 the selected field from the input surface is kept for the target surface.
25719 Setting gst_vaapi_filter_set_deinterlacing() method argument to
25720 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
25721 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
25722 to libgstvaapi core library.
25723 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25725 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
25727 * docs/reference/libs/libs-sections.txt:
25728 * gst-libs/gst/vaapi/gstvaapifilter.c:
25729 * gst-libs/gst/vaapi/gstvaapifilter.h:
25730 filter: add support for color balance adjustment.
25731 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
25732 and contrast. The respective range for each filter shall be the same as
25733 for the VA display attributes.
25734 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25736 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
25738 * docs/reference/libs/libs-sections.txt:
25739 * gst-libs/gst/vaapi/gstvaapifilter.c:
25740 * gst-libs/gst/vaapi/gstvaapifilter.h:
25741 filter: add support for sharpening.
25742 Sharpening is configured with a float value. The supported range is
25743 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
25745 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25747 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25749 * docs/reference/libs/libs-sections.txt:
25750 * gst-libs/gst/vaapi/gstvaapifilter.c:
25751 * gst-libs/gst/vaapi/gstvaapifilter.h:
25752 filter: add support for denoising.
25753 Noise reduction is configured with a float value. The supported range
25754 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
25756 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25758 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25760 * docs/reference/libs/libs-sections.txt:
25761 * gst-libs/gst/vaapi/gstvaapifilter.c:
25762 * gst-libs/gst/vaapi/gstvaapifilter.h:
25763 filter: add support for frame cropping.
25764 Frame cropping is defined with a GstVaapiRectangle value. The default
25765 behaviour is to treat the source surface as a whole
25767 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25769 * gst-libs/gst/vaapi/gstvaapifilter.c:
25770 filter: add helper functions.
25771 Add helper functions to ensure an operation VA buffer is allocated to
25772 the right size; that filter caps get parsed and assigned to the right
25773 operation too; and that float parameters are correctly scaled to fit
25774 the reported range from the VA driver.
25776 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25779 * docs/reference/libs/libs-docs.xml.in:
25780 * docs/reference/libs/libs-sections.txt:
25781 * gst-libs/gst/vaapi/Makefile.am:
25782 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25783 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25784 * gst-libs/gst/vaapi/gstvaapifilter.c:
25785 * gst-libs/gst/vaapi/gstvaapifilter.h:
25786 Add initial infrastructure for video processing.
25787 Add initial API for video processing: only scaling and color format
25788 conversion operations are supported.
25790 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25792 * gst-libs/gst/vaapi/video-format.c:
25793 * gst-libs/gst/vaapi/video-format.h:
25794 libs: add gst_vaapi_video_format_from_string() helper.
25795 Add gst_vaapi_video_format_from_string() helper function to convert from
25796 a video format string representation to a suitable GstVideoFormat. This
25797 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
25798 builds, and a proper iteration over all GstVideoFormat string representations
25799 otherwise for earlier GStreamer 0.10.x builds.
25801 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25803 * gst-libs/gst/vaapi/video-format.c:
25804 * gst-libs/gst/vaapi/video-format.h:
25805 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
25806 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
25807 VA fourcc value to a suitable GstVideoFormat.
25809 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25811 * gst-libs/gst/vaapi/gstvaapivalue.c:
25812 * gst-libs/gst/vaapi/gstvaapivalue.h:
25813 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
25814 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
25815 structures as a standard GType. This could be useful to have them
25816 described as a GValue later on.
25818 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25820 * docs/reference/libs/libs-docs.xml.in:
25821 * docs/reference/libs/libs-sections.txt:
25822 * gst-libs/gst/vaapi/Makefile.am:
25823 * gst-libs/gst/vaapi/gstvaapicontext.h:
25824 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25825 libs: drop some public APIs.
25826 Don't expose GstVaapiContext APIs and make them totally private to
25827 libgstvaapi core library. That API would also tend to disappear in
25828 a future revision. Likewise, don't expose GstVaapiDisplayCache API
25829 but keep symbols visible so that the various render backends could
25830 share a common display cache implementation in libgstvaapi.
25831 Try to clean-up the documentation from any stale entry too.
25833 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25837 tests: image: allow creation of images with interleaved patterns.
25838 Add image_generate_full() function to create interleaved color rectangles.
25839 If flags is zero, the whole frame is generated with a unique pattern. If
25840 flags is non-zero, then each field is handled individually.
25842 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25845 tests: image: fix conversion from RGB to YUV.
25846 Fix RGB to YUV conversion to preserve full data range.
25848 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25851 tests: image: try to upload images through vaDeriveImage() too.
25852 On some platforms, vaPutImage() would fail even if it does not involve
25853 color format conversion or scaling, whereas copying raw pixels through
25854 vaDeriveImage() could work instead.
25856 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25859 tests: image: add support for packed YUV formats.
25860 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
25862 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25865 tests: image: fix generation of I420/YV12 images.
25866 U/V planes were reversed, thus producing invalid images.
25868 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25871 tests: image: fix string representation for GstVideoFormat.
25873 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25875 * docs/reference/libs/libs-sections.txt:
25876 * gst-libs/gst/vaapi/Makefile.am:
25877 * gst-libs/gst/vaapi/gstvaapiimage.c:
25878 * gst-libs/gst/vaapi/gstvaapiimage.h:
25879 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
25880 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25881 * gst-libs/gst/vaapi/gstvaapisurface.c:
25882 image: clean image API up.
25883 Don't expose functions that reference a GstVaapiImageRaw, those are
25884 meant to be internal only for implementing subpictures sync. Also add
25885 a few private definitions to avoid functions calls for retrieving
25886 image size and format information.
25888 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25890 * docs/reference/libs/libs-sections.txt:
25891 * gst-libs/gst/vaapi/gstvaapiimage.c:
25892 * gst-libs/gst/vaapi/gstvaapiimage.h:
25893 image: add gst_vaapi_image_copy() helper.
25894 Add gst_vaapi_image_copy() helper function to copy images of same format
25897 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25899 * gst/vaapi/gstvaapivideoconverter_x11.c:
25900 plugins: handle video cropping in X11 pixmap converter.
25901 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
25902 we could decode from the stream.
25904 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25906 * gst/vaapi/Makefile.am:
25907 * gst/vaapi/gstvaapivideobuffer.c:
25908 * gst/vaapi/gstvaapivideoconverter_glx.c:
25909 * gst/vaapi/gstvaapivideoconverter_x11.c:
25910 * gst/vaapi/gstvaapivideoconverter_x11.h:
25911 plugins: add support for "x11-pixmap" video converter type.
25912 Install a new video converter that supports X11 pixmap targets for X11
25913 backends only, or make the GLX converter creation function chain up to
25914 the X11 converter whenever requested.
25916 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25918 * tests/simple-decoder.c:
25919 tests: simple-decoder: add support for pixmap API.
25920 Add support for the new render-to-pixmap API. Avoid flickering on
25921 platforms supporting video overlay by keeping up to 2 intermediate
25924 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25926 * tests/simple-decoder.c:
25927 tests: simple-decoder: add support for video cropping.
25928 Handle video cropping information attached to a VA surface proxy.
25930 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25934 * tests/test-decode.c:
25935 tests: add support for render-to-pixmap.
25936 Add --pixmap option to test-decode so that to allow copies of VA
25937 surface to an intermediate pixmap and rendering from that pixmap.
25938 Only X11 backends are supported for now.
25940 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25943 * gst-libs/gst/vaapi/Makefile.am:
25944 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25945 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25946 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25947 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
25948 x11: implement pixmap rendering with RENDER extension.
25949 Use hardware accelerated XRenderComposite() function, from the RENDER
25950 extension, to blit a pixmap to screen. Besides, this can also support
25951 cropping and scaling.
25953 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25955 * docs/reference/libs/libs-docs.xml.in:
25956 * docs/reference/libs/libs-sections.txt:
25957 * gst-libs/gst/vaapi/Makefile.am:
25958 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25959 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25960 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
25961 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
25962 x11: implement pixmap API.
25963 Implement the new render-to-pixmap API. The only supported pixmap format
25964 that will work is xRGB, with native byte ordering. Others might work but
25965 they were not tested.
25967 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25969 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25970 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25971 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25972 x11: update x11_get_geometry() helper function with depth output.
25973 Allow x11_get_geometry() utility function to also return the depth
25974 assigned to the X drawable.
25976 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25978 * docs/reference/libs/libs-docs.xml.in:
25979 * docs/reference/libs/libs-sections.txt:
25980 * gst-libs/gst/vaapi/Makefile.am:
25981 * gst-libs/gst/vaapi/gstvaapipixmap.c:
25982 * gst-libs/gst/vaapi/gstvaapipixmap.h:
25983 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
25984 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25985 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25986 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
25987 Add initial Pixmap API.
25988 Add API to transfer VA urfaces to native pixmaps. Also add an API to
25989 render a native pixmap, for completeness. In general, rendering to
25990 pixmap would only be useful to certain VA drivers and use cases on
25991 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
25994 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25996 * docs/reference/libs/libs-sections.txt:
25997 * gst-libs/gst/vaapi/gstvaapiimage.c:
25998 * gst-libs/gst/vaapi/gstvaapisurface.c:
25999 * gst-libs/gst/vaapi/video-format.c:
26000 * gst-libs/gst/vaapi/video-format.h:
26001 libs: add and expose gst_vaapi_video_format_to_string() helper.
26002 This is just a wrapper over gst_video_format_to_string() for older
26003 GStreamer 0.10 builds.
26005 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
26007 * gst/vaapi/gstvaapipluginutil.c:
26008 plugins: fix display type comparison in gst_vaapi_create_display().
26009 After the code got moved to create the gst_vaapi_create_display() helper,
26010 this comparison was not updated to dereference the newly-created
26011 pointer, so the code was comparing the pointer itself to the type, and
26012 therefore failing to retrieve the VA display.
26013 This fixes the following error (and gets gst-vaapi decoding again):
26014 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
26015 https://bugzilla.gnome.org/show_bug.cgi?id=704410
26016 Signed-off-by: Emilio López <emilio@elopez.com.ar>
26018 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26021 Bump version for development.
26023 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26025 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26026 mpeg2: don't output dummy pictures.
26027 Mark dummy pictures as output already so that we don't try to submit
26028 them to the upper layer since this is purely internal / temporary
26029 picture for helping the decoder.
26031 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26033 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26034 decoder: dispose GstVideoCodecFrame earlier.
26035 Once the picture was output, it is no longer necessary to keep an extra
26036 reference to the underlying GstVideoCodecFrame. So, we can release it
26037 earlier, and maybe subsequently release the associate surface proxy
26040 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26046 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26048 * docs/reference/libs/libs-sections.txt:
26049 * gst-libs/gst/vaapi/Makefile.am:
26050 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26051 * gst-libs/gst/vaapi/gstvaapiimage.c:
26052 * gst-libs/gst/vaapi/gstvaapisurface.c:
26053 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26054 * gst-libs/gst/vaapi/video-format.c:
26055 * gst-libs/gst/vaapi/video-format.h:
26056 * gst/vaapi/gstvaapidownload.c:
26057 * gst/vaapi/gstvaapiuploader.c:
26059 * tests/test-display.c:
26060 Fix new video format API.
26061 Fix new internal video format API, based on GstVideoFormat, to not
26062 clobber with system symbols. So replace the gst_video_format_* prefix
26063 with gst_vaapi_video_format_ prefix, even if the format type remains
26066 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26069 Bump library major version.
26070 Bump the library major version due to API/ABI changes that occurred in
26071 the imaging API. In particular, GstVaapiImageFormat type was replaced
26072 with the standard GstVideoFormat type. All dependent APIs were updated
26073 to match this change.
26075 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26080 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26082 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26083 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26084 decoder: fix memory leak when processing interlaced pictures.
26085 Fix memory leak when processing interlaced pictures and that occurs
26086 because the first field, represented as a GstVideoCodecFrame, never
26087 gets released. i.e. when the picture is completed, this is generally
26088 the case when the second field is successfully decoded, we need to
26089 propagate the GstVideoCodecFrame of the first field to the original
26090 GstVideoDecoder so that it could reclaim memory.
26091 Otherwise, we keep accumulating the first fields into GstVideoDecoder
26092 private frames list until the end-of-stream is reached. The frames
26093 are eventually released there, but too late, i.e. too much memory
26094 may have been consumed.
26095 https://bugzilla.gnome.org/show_bug.cgi?id=701257
26097 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26099 * gst/vaapi/gstvaapipluginutil.c:
26100 plugins: simlpify gst_vaapi_create_display() helper.
26101 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
26102 performs the necessary validation checks for the underlying VA display
26103 prior to returning to the caller. So, if an error occurred, then NULL is
26104 really returned in that case.
26106 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26108 * gst/vaapi/gstvaapipluginutil.c:
26109 plugins: add gst_vaapi_create_display() helper.
26110 https://bugzilla.gnome.org/show_bug.cgi?id=703235
26111 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26113 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26115 * gst/vaapi/gstvaapivideobufferpool.c:
26116 plugins: don't reallocate pool allocator for the same caps.
26117 If the video buffer pool config doesn't have new caps, then it's not
26118 necessary to reinstantiate the allocator. That could be a costly
26119 operation as we could do some extra heavy checking in there.
26121 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26123 * gst/vaapi/gstvaapivideomemory.c:
26124 plugins: fix ref counting of GstVaapiVideoMemory allocator.
26125 Fix reference counting issue whereby gst_memory_init() does not hold
26126 an extra reference to the GstAllocator. So, there could be situations
26127 where the last instance of GstVaapiVideoAllocator gets released before
26128 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
26130 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26132 * gst/vaapi/gstvaapiuploader.c:
26133 vaapiupload: use implicit color conversion to NV12.
26134 Always perform conversion of sources buffers to NV12 since this is
26135 the way we tested for this capability in ensure_allowed_caps(). This
26136 also saves memory bandwidth for further rendering. However, this may
26137 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
26139 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26141 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26142 pool: fix deallocation of video pools.
26143 The queue of free objects to used was deallocated with g_queue_free_full().
26144 However, this convenience function shall only be used if the original queue
26145 was allocated with g_queue_new(). This caused memory corruption, eventually
26146 leading to a crash.
26147 The correct solution is to pair the g_queue_init() with the corresponding
26148 g_queue_clear(), while iterating over all free objects to deallocate them.
26150 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
26152 * gst/vaapi/gstvaapidownload.c:
26153 vaapidownload: fix src caps format error.
26154 This fixes direct linking of vaapidownload element to xvimagesink with
26155 VA drivers supporting vaGetImage() from the native VA surface format to
26156 a different VA image format. i.e. color conversion during download.
26157 http://bugzilla.gnome.org/show_bug.cgi?id=703937
26158 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26160 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26162 * gst/vaapi/gstvaapidownload.c:
26163 vaapidownload: fix debug string for image formats.
26164 The image is now expressed as a standard GstVideoFormat, which is not
26165 a FOURCC but rather a regular enum value.
26166 This is a regression introduced in commit 09397fa.
26168 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
26170 * gst-libs/gst/vaapi/gstvaapiimage.c:
26171 image: add support for raw YUY2/UYVY image copies.
26172 Implement raw image copies for YUY2 format. Add support for UYVY format
26173 too, with the same copy function as for YUY2. Even though components
26174 ordering differs, copying line strides is essentially the same.
26175 https://bugzilla.gnome.org/show_bug.cgi?id=703939
26176 https://bugzilla.gnome.org/show_bug.cgi?id=703940
26177 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26179 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26181 * gst/vaapi/gstvaapiuploader.c:
26182 plugins: clean-up video uploader helper.
26183 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
26184 were already negotiated beforehand, and they are not used from the
26185 buffer in upstream elements.
26186 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
26187 represented as a GstVideoInfo.
26189 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26191 * gst/vaapi/gstvaapiuploader.c:
26192 plugins: use GstVideoInfo in video uploader helper.
26194 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26196 * gst/vaapi/gstvaapivideomemory.c:
26197 plugins: allow creation of VA surfaces with explicit pixel format.
26198 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
26199 with an explicit pixel format. This allows for direct rendering to
26200 VA surface memory from a software decoder.
26202 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26204 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26205 surface: fix surface pool creation with an explicit pixel format.
26206 Fix creation of surface pool objects to honour explicit pixel format
26207 specification. If this operation is not supported, then fallback to
26208 the older interface with chroma format.
26210 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26212 * gst-libs/gst/vaapi/gstvaapisurface.c:
26213 surface: try to determine the underlying VA surface format.
26214 If a VA surface was allocated with the chroma-format interface, try to
26215 determine the underlying pixel format on gst_vaapi_surface_get_format(),
26216 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
26218 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26220 * docs/reference/libs/libs-sections.txt:
26221 * gst-libs/gst/vaapi/gstvaapisurface.c:
26222 * gst-libs/gst/vaapi/gstvaapisurface.h:
26223 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26224 surface: allow creation with explicit pixel format.
26225 Make it possible to create VA surfaces with a specific pixel format.
26226 This is a new capability brought in by VA-API >= 0.34.0. If that
26227 capability is not built-in (e.g. using VA-API < 0.34.0), then
26228 gst_vaapi_surface_new_with_format() will return NULL.
26230 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26232 * docs/reference/libs/libs-sections.txt:
26233 * gst-libs/gst/vaapi/video-format.c:
26234 * gst-libs/gst/vaapi/video-format.h:
26235 surface: add helper function to get chroma type from GstVideoFormat.
26236 Add gst_video_format_get_chroma_type() helper function to determine
26237 the GstVaapiChromaType from a standard GStreamer video format. It is
26238 possible to reconstruct that from GstVideoFormatInfo but it is much
26239 simpler (and faster?) to use the local GstVideoFormatMap table.
26241 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26243 * gst-libs/gst/vaapi/gstvaapisurface.c:
26244 * gst-libs/gst/vaapi/gstvaapisurface.h:
26245 * gst-libs/gst/vaapi/gstvaapiutils.c:
26246 * gst-libs/gst/vaapi/gstvaapiutils.h:
26247 surface: add new chroma formats.
26248 Add new chroma formats available with VA-API >= 0.34.0. In particular,
26249 this includes "RGB" chroma formats, and more YUV subsampled formats.
26250 Also add a new from_GstVaapiChromaType() helper function to convert
26251 libgstvaapi chroma type to VA chroma format.
26253 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26255 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26256 pool: fix image pool to check for the video format to use.
26257 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
26258 image pool object, only if the underlying VA display does support the
26259 requested VA image format.
26261 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26263 * gst-libs/gst/vaapi/gstvaapicontext.c:
26264 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26265 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26266 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26267 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26268 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26269 * gst/vaapi/gstvaapidownload.c:
26270 * gst/vaapi/gstvaapiuploader.c:
26271 * tests/Makefile.am:
26272 * tests/test-surfaces.c:
26273 Use GstVideoInfo for video pools.
26274 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
26275 structures instead. Those are smaller, and allows for streamlining
26278 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26280 * gst-libs/gst/vaapi/gstvaapiimage.c:
26281 * gst-libs/gst/vaapi/video-format.c:
26282 Add more video formats.
26283 Add new video format mappings to VA image formats:
26284 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
26285 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
26287 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26289 * gst-libs/gst/vaapi/gstvaapiimage.c:
26290 image: fix debug message with video format.
26291 Fix debug message string with image format expressed with GstVideoFormat
26292 instead of the obsolete format that turned out to be a fourcc.
26293 This is a regression from git commit e61c5fc.
26295 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26299 * tests/test-display.c:
26300 * tests/test-textures.c:
26301 * tests/test-windows.c:
26302 tests: port to new video format API.
26304 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26306 * gst/vaapi/gstvaapidownload.c:
26307 * gst/vaapi/gstvaapiuploader.c:
26308 * gst/vaapi/gstvaapivideomemory.c:
26309 plugins: port to new video format API.
26311 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26313 * gst-libs/gst/vaapi/gstvaapiimage.c:
26314 libs: use GstVideoInfo wherever possible.
26315 In particular, use gst_video_info_from_caps() helper function in VA image
26316 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
26317 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
26319 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26321 * docs/reference/libs/libs-docs.xml.in:
26322 * docs/reference/libs/libs-sections.txt:
26323 * gst-libs/gst/vaapi/Makefile.am:
26324 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26325 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
26326 libs: drop GstVaapiImageFormat helpers.
26327 Drop GstVaapiImageFormat helpers since everything was moved to the new
26328 GstVideoFormat based API. Don't bother with backwards compatibility and
26329 just bump the library major version afterwards.
26331 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26333 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26334 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26335 * gst-libs/gst/vaapi/gstvaapiimage.c:
26336 * gst-libs/gst/vaapi/gstvaapiimage.h:
26337 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26338 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26339 libs: port to new video format API.
26341 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26343 * docs/reference/libs/libs-docs.xml.in:
26344 * docs/reference/libs/libs-sections.txt:
26345 * gst-libs/gst/vaapi/Makefile.am:
26346 * gst-libs/gst/vaapi/video-format.c:
26347 * gst-libs/gst/vaapi/video-format.h:
26348 Add new video format API.
26349 Leverage GstVideoFormat utilities from core GStreamer to provide an
26350 adaptation layer to VA image formats.
26352 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26357 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26359 * gst/vaapi/gstvaapisink.c:
26360 vaapisink: fix creation of GLX texture.
26361 Fix creation of GLX texture, to not depend on the GstCaps video size that
26362 could be wrong, especially in presence of frame cropping. So, use the size
26363 from the source VA surfaces.
26364 An optimization could be to reduce the texture size to the actual visible
26365 size on screen. i.e. scale down the texture size to match the screen dimensions,
26366 while preserving the VA surface aspect ratio. However, some VA drivers don't
26369 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26371 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26372 mpeg2: add support for video cropping.
26373 If the stream has a sequence_display_extenion, then attach the
26374 display_horizontal/display_vertical dimension as the cropping
26375 rectangle width/height to the GstVaapiPicture.
26376 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26378 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26380 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26381 vc1: add support for video cropping.
26382 If the Advanced profile has display_extension fields, then set the display
26383 width/height dimension as cropping rectangle to the GstVaapiPicture.
26384 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26386 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26388 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26389 h264: add support for video cropping.
26390 If the encoded stream has the frame_cropping_flag set, then associate
26391 the cropping rectangle to GstVaapiPicture.
26392 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26394 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26398 * tests/test-decode.c:
26399 * tests/test-subpicture.c:
26400 tests: add basic support for video cropping.
26401 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
26402 instead of a plain GstVaapiSurface. This means that we can now retrieve
26403 the frame cropping rectangle from the surface proxy, along with additional
26404 information if ever needed.
26406 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26408 * gst/vaapi/gstvaapidecode.c:
26409 * gst/vaapi/gstvaapisink.c:
26410 * gst/vaapi/gstvaapivideometa.c:
26411 plugins: add support for video cropping.
26412 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
26413 specific meta information to hold video cropping details. Make the sink
26414 support video cropping in X11 and GLX modes.
26416 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26418 * gst/vaapi/gstvaapivideometa.c:
26419 * gst/vaapi/gstvaapivideometa.h:
26420 plugins: add helper functions to set the render rectangle.
26421 Some video clips may have a clipping region that needs to propogate to
26422 the renderer. These helper functions make it possible to attach that
26423 clipping region, as a GstVaapiRectangle, the the video meta associated
26425 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26426 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26428 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26430 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26431 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26432 surfaceproxy: allow for NULL cropping rectangle.
26433 Make it possible associate an empty cropping rectangle to the surface
26434 proxy, thus resetting any cropping rectangle that was previously set.
26435 This allows for returning plain NULL when no cropping rectangle was
26436 initially set up to the surface proxy, or if it was reset to defaults.
26438 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26440 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26441 surfaceproxy: clean-up helper macros.
26442 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
26443 proxy macro argument to a GstVaapiSurfaceProxy pointer.
26445 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26447 * gst-libs/gst/vaapi/gstvaapisurface.c:
26448 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26449 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26450 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26451 surface: add simple surface info accessors as helper macros.
26452 Add helper macros to retrieve the VA surface information like size
26453 (width, height) or chroma type. This is a micro-optimization to avoid
26454 useless function calls and NULL pointer re-checks in internal routines.
26456 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26458 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26459 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26460 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26461 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26462 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26463 decoder: add support for video cropping.
26464 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
26465 cropping information from raw bitstreams to each picture being decoded.
26466 Also add helper function to surface proxy to propagate that information
26467 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
26468 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26469 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26471 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26473 * ext/codecparsers:
26474 codecparsers: update to gst-vaapi-branch commit f90de0a.
26475 f90de0a h264: fix calculation of the frame cropping rectangle
26476 535515c h264: parse the cropping rectangle separately
26478 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26480 * ext/codecparsers:
26481 codecparsers: update to gst-vaapi-branch commit 0f68a71.
26482 0f68a71 mpeg2: fix video packet header size checks
26484 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
26486 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26487 mpeg2: reset quantization matrices on new sequence headers.
26488 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
26489 shall be reset to their default values when a Sequence_Header() is
26491 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26493 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26496 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26497 mpeg2: cope with latest codecparser changes.
26498 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
26499 used in individual header parsers. Also use the new slice parsing API.
26501 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26503 * ext/codecparsers:
26504 codecparsers: update to gst-vaapi-branch commit dddd182.
26505 dddd182 mpeg2: add slice header parsing API
26506 94e6228 mpeg2: add sequence scalable extension parsing API
26507 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
26508 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
26510 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26512 * gst/vaapi/gstvaapisink.c:
26513 vaapisink: expose the raw video formats in static caps template.
26514 Expose all raw video formats in the static caps template since the
26515 vaapisink is supporting raw data. We will get the exact set of formats
26516 supported by the driver dynamically through the _get_caps() routine.
26517 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
26518 https://bugzilla.gnome.org/show_bug.cgi?id=702178
26519 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26521 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26523 * gst/vaapi/gstvaapisink.c:
26524 * gst/vaapi/gstvaapisink.h:
26525 vaapisink: add "use-glx" property for OpenGL rendering.
26526 Now that VA/GLX capable buffers are generated by default on X11, thus
26527 depending on a VA/GLX display, we stil want to use vaPutSurface() for
26528 rendering since it is faster.
26529 Anyway, OpenGL rendering in vaapisink was only meant for testing and
26530 enabling "fancy" effects to play with. This has no real value. So,
26531 disable OpenGL rendering by default.
26533 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26535 * gst/vaapi/gstvaapipluginutil.c:
26536 plugins: try to allocate a GLX display first over an X11 one.
26537 If the gstreamer-vaapi plug-in elements are built with GLX support, then
26538 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
26540 https://bugzilla.gnome.org/show_bug.cgi?id=701742
26542 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
26545 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
26546 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
26547 https://bugzilla.gnome.org/show_bug.cgi?id=698858
26548 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26550 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
26552 * gst-libs/gst/vaapi/gstvaapiimage.c:
26553 image: fix wrong check for rect bounds in copy_image().
26555 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26558 Bump version for development.
26560 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26566 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26571 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26574 * gst-libs/gst/codecparsers/Makefile.am:
26575 configure: always build the MPEG-4 parser.
26576 Always build the MPEG-4 parser for now as there are also core fixes
26577 included in the parser that cannot be tested for with API checks.
26579 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26582 configure: add --enable-builtin-codecparsers [default="yes"] option.
26583 Add flag to have all codecparsers built-in, thus ensuring that the
26584 resulting binaries have all the necessary bug fixes and this is what
26585 the QA has been testing anyway.
26586 Of course, for a completely up-to-date Linux distribution, you could
26587 also opt for --disable-builtin-codecparsers and use the system ones.
26588 Though, some core fixes could be missing, and those cannot be tested
26589 for with API checks.
26591 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26593 * ext/codecparsers:
26594 codecparsers: update to gst-vaapi-branch commit 843ce3e.
26595 843ce3e jpeg: fix default Huffman tables generation.
26596 8655187 mpeg2: fix the pixel-aspect-ratio calculation
26597 21099dc mpeg2: actually store video bitrate values
26598 dd02087 mpeg2: fix picture packet extension size check
26599 25948e9 mpeg2: increase min size for picture coding ext
26600 f1f5a40 ensure the debug category is properly initialized
26602 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26604 * debian.upstream/Makefile.am:
26605 debian: fix list of generated files for .deb packaging.
26607 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26610 * debian.upstream/Makefile.am:
26611 * debian.upstream/control.in:
26612 debian: fix libgstvaapi -dev package name.
26613 Fix libgstvaapi -dev package name so that to allow installation of both
26614 GStreamer 0.10 and 1.0.x based packages.
26616 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26621 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26623 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26624 wayland: fix memory leak of display resources.
26626 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
26628 * gst/vaapi/gstvaapisink.c:
26629 vaapisink: fix build without VA/GLX support.
26631 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26633 * gst/vaapi/gstvaapivideomemory.c:
26634 * gst/vaapi/gstvaapivideomemory.h:
26635 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
26636 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
26637 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
26638 caller. This is the only sensible enough thing to do in this mode as
26639 the underlying surface pixels need to be extracted through an explicit
26640 call to the gst_video_frame_map() function instead.
26641 A possible use-case of this is to implement a "handoff" signal handler
26642 to fakesink or identity element for further processing.
26644 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26646 * gst/vaapi/gstvaapivideomemory.c:
26647 plugins: silence check for direct-rendering mode in video memory.
26648 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
26649 mode support, and not trigger fatal-criticals if either test surface or
26650 image could not be created. Typical case: pixel format mismatch, e.g. NV12
26651 supported by most hardware vs. I420 supported by most software decoders.
26653 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26655 * gst/vaapi/gstvaapivideomemory.c:
26656 plugins: improve video memory flags safety checks.
26657 On map, ensure we have GST_MAP_WRITE flags since this is only what we
26658 support for now. Likewise, on unmap, make sure that the VA image is
26659 unmapped for either read or write, while still committing it to the
26660 VA surface if write was requested.
26662 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26664 * gst-libs/gst/vaapi/gstvaapisurface.c:
26665 surface: fix memory leak through unreleased parent context.
26666 Break the circular references between GstVaapiContext and its children
26667 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
26668 context, which holds a reference to its VA surfaces, then none of those
26670 How does this impact support for subpictures?
26671 The only situation when the parent context needs to disappear is when
26672 it is replaced with another one because of a resolution change in the
26673 video stream for instance, or a normal destroy. In this case, it does
26674 not really matter to apply subpictures to the peer surfaces since they
26675 are either gone, or those that are left in the pipe can probably bear
26676 a reinstantiation of the subpictures for it.
26677 So, parent_context is set to NULL when the parent context is destroyed,
26678 other VA surfaces can still get subpictures attached to them, individually
26679 not as a whole. i.e. subpictures for surface S1 will be created from
26680 active composition buffers and associated to S1, subpictures for S2 will
26681 be created from the next active composition buffers, etc. We don't try
26682 to cache the subpictures in those cases (pending surfaces until EOS
26683 is reached, or pending surfaces until new surfaces matching new VA context
26684 get to be used instead).
26686 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26688 * gst/vaapi/gstvaapisink.c:
26689 vaapisink: fix one-time initialization when display property is set.
26690 Fix gst_vaapisink_ensure_display() to perform one-time initialization
26691 tasks even if the `display' property was explicitly set.
26693 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26695 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26696 window: fix GLX window initialization.
26697 Make sure to create the GLX context once the window object has completed
26698 its creation. Since gl_resize() relies on the newly created window size,
26699 then we cannot simply overload the GstVaapiWindowClass::create() hook.
26700 So, we just call into gst_vaapi_window_glx_ensure_context() once the
26701 window object is created in the gst_vaapi_window_glx_new*() functions.
26703 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26705 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26706 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26707 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26708 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26709 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26710 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26711 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26712 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26713 * gst-libs/gst/vaapi/gstvaapitexture.c:
26714 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26715 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26716 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26717 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26718 display: validate display types.
26720 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26722 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26723 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26724 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26725 display: drop internal NAME_PREFIX, store the real display name.
26726 Always store a valid display name/device path, instead of adding a
26727 particular prefix. i.e. make it simply a strdup(), or "" if it was
26730 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26732 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26733 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26734 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26735 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26736 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26737 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26738 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26739 display: make it possible to lookup the display cache by type.
26740 Make it possible to add extra an extra filter to most of display cache
26741 lookup functions so that the GstVaapiDisplay instance can really match
26742 a compatible and existing display by type, instead of relying on extra
26743 string tags (e.g. "X11:" prefix, etc.).
26745 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26747 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26748 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26749 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26750 display: cope with new display cache API.
26752 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26754 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26755 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26756 display: rework display cache API.
26757 Simplify display cache API, while making it more flexible. We can now create
26758 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
26760 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26762 * tests/test-display.c:
26763 tests: improve check for display cache.
26764 Improve check for display cache infrastructure. In particular, for X11 and
26765 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
26766 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
26767 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
26768 already exists will have to generate different VA displays.
26770 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
26772 * gst/vaapi/gstvaapiuploader.c:
26773 uploader: fix memory leak in GStreamer 0.10 builds.
26774 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
26775 but it exhibited a memory leak because the surface generated for the
26776 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
26777 possible to release that surface back to the parent pool when the meta
26778 gets released, and the memory consumption kept growing.
26779 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26781 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26783 * gst/vaapi/gstvaapivideometa.c:
26784 plugins: fix gst_vaapi_video_meta_new_from_pool().
26785 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
26786 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
26787 was hereby totally broken. Fixed this regression by using the newly
26788 provided gst_vaapi_video_pool_get_object_type() function.
26790 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26792 * gst/vaapi/gstvaapiuploader.c:
26793 * gst/vaapi/gstvaapivideomemory.c:
26794 * gst/vaapi/gstvaapivideometa.c:
26795 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
26797 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26800 tests: cope with GST_VAAPI_IS_xxx() macros removal.
26802 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26804 * docs/reference/libs/libs-sections.txt:
26805 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26806 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26807 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26808 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26809 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26810 libs: add query for GstVaapiVideoPool object types.
26811 Add API to identify the underlying GstVaapiVideoPool object type.
26813 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26815 * docs/reference/libs/libs-sections.txt:
26816 * gst-libs/gst/vaapi/gstvaapicontext.c:
26817 * gst-libs/gst/vaapi/gstvaapicontext.h:
26818 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26819 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26820 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26821 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26822 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26823 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26824 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26825 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26826 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26827 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26828 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26829 * gst-libs/gst/vaapi/gstvaapiimage.c:
26830 * gst-libs/gst/vaapi/gstvaapiimage.h:
26831 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26832 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26833 * gst-libs/gst/vaapi/gstvaapiobject.c:
26834 * gst-libs/gst/vaapi/gstvaapiobject.h:
26835 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26836 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26837 * gst-libs/gst/vaapi/gstvaapisurface.c:
26838 * gst-libs/gst/vaapi/gstvaapisurface.h:
26839 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26840 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26841 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26842 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26843 * gst-libs/gst/vaapi/gstvaapitexture.c:
26844 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26845 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26846 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26847 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26848 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26849 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26850 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26851 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26852 libs: drop GST_VAAPI_IS_xxx() helper macros.
26853 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
26854 deriving from GObject and so those were only checking for whether the
26855 argument was NULL or not. This is now irrelevant, and even confusing
26856 to some extent, because we no longer have type checking.
26857 Note: this incurs more type checking (review) but the libgstvaapi is
26858 rather small, so this is manageable.
26860 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26863 Bump library major version.
26864 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
26865 This is a fundamental change that requires a new SONAME. More changes are
26866 underway to streamline the core libraries.
26867 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
26868 On one particular test (sintel HD trailer), the total number of executed
26869 instruction was reduced by 8%.
26871 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26873 * docs/reference/libs/Makefile.am:
26874 * docs/reference/libs/libs-docs.xml.in:
26875 * docs/reference/libs/libs-sections.txt:
26876 * docs/reference/libs/libs.core.types:
26877 * docs/reference/libs/libs.glx.types:
26878 * docs/reference/libs/libs.x11.types:
26879 docs: cope with removed APIs.
26880 Some APIs are dead because they are no longer based on GObject.
26882 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26884 * gst/vaapi/gstvaapidecode.c:
26885 * gst/vaapi/gstvaapidownload.c:
26886 * gst/vaapi/gstvaapipluginutil.c:
26887 * gst/vaapi/gstvaapipostproc.c:
26888 * gst/vaapi/gstvaapisink.c:
26889 * gst/vaapi/gstvaapiupload.c:
26890 * gst/vaapi/gstvaapiuploader.c:
26891 * gst/vaapi/gstvaapivideobufferpool.c:
26892 * gst/vaapi/gstvaapivideoconverter_glx.c:
26893 * gst/vaapi/gstvaapivideomemory.c:
26894 * gst/vaapi/gstvaapivideometa.c:
26895 plugins: cope with new GstVaapiMiniObject objects.
26897 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26902 * tests/simple-decoder.c:
26903 * tests/test-decode.c:
26904 * tests/test-display.c:
26905 * tests/test-subpicture.c:
26906 * tests/test-surfaces.c:
26907 * tests/test-textures.c:
26908 * tests/test-windows.c:
26909 tests: cope with new GstVaapiMiniObject objects.
26911 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26913 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26914 display: fix set_synchronous() to lock display.
26916 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26918 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26919 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26920 videopool: simplify creation of video objects pool.
26922 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26924 * gst-libs/gst/vaapi/gstvaapiobject.c:
26925 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26926 * gst-libs/gst/vaapi/gstvaapitypes.h:
26927 libs: simplify GstVaapiID definitions.
26928 Make GstVaapiID a gsize instead of guessing an underlying integer large
26929 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
26930 this is plain zero and that it is no longer passed as varargs.
26932 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26934 * gst-libs/gst/vaapi/Makefile.am:
26935 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26936 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26937 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26938 * gst-libs/gst/vaapi/gstvaapivalue.c:
26939 * gst-libs/gst/vaapi/gstvaapivalue.h:
26940 libs: drop obsolete function helpers and objects.
26941 Drop obsolete GstVaapiID related function helpers for passing them as
26944 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26946 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26947 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26948 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26949 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26950 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26951 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26952 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26953 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26954 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26955 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26956 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26957 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26958 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26959 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26960 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26961 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26962 * gst-libs/gst/vaapi/gstvaapiobject.c:
26963 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26964 libs: use GstVaapiMiniObject for display objects.
26966 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26968 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26969 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26970 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26971 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26972 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26973 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26974 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
26975 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26976 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26977 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26978 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26979 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26980 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26981 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26982 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26983 libs: use GstVaapiMiniObject for video decoders.
26984 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
26985 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
26986 helper function to let the user add a callback to a function triggered
26987 whenever the codec state (e.g. caps) changes.
26989 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26991 * docs/reference/libs/libs-sections.txt:
26992 * gst-libs/gst/vaapi/Makefile.am:
26993 * gst-libs/gst/vaapi/gstvaapicontext.c:
26994 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26995 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26996 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26997 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26998 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26999 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27000 * gst-libs/gst/vaapi/gstvaapivideopool.h:
27001 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
27002 libs: use GstVaapiMiniObject for video object pools.
27003 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
27004 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
27005 no longer used for a long time. Make object allocators static, i.e.
27006 local to the shared library.
27008 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27010 * gst-libs/gst/vaapi/gstvaapitexture.c:
27011 * gst-libs/gst/vaapi/gstvaapitexture.h:
27012 libs: use GstVaapiObject for texture objects.
27014 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27016 * gst-libs/gst/vaapi/Makefile.am:
27017 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27018 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27019 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
27020 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
27021 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27022 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27023 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
27024 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27025 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
27026 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27027 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27028 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
27029 libs: use GstVaapiObject for window objects.
27031 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27033 * gst-libs/gst/vaapi/gstvaapicontext.c:
27034 * gst-libs/gst/vaapi/gstvaapicontext.h:
27035 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27036 * gst-libs/gst/vaapi/gstvaapiimage.c:
27037 * gst-libs/gst/vaapi/gstvaapiimage.h:
27038 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27039 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27040 * gst-libs/gst/vaapi/gstvaapisurface.c:
27041 * gst-libs/gst/vaapi/gstvaapisurface.h:
27042 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27043 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27044 libs: use GstVaapiObject for VA objects.
27046 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27048 * gst-libs/gst/vaapi/Makefile.am:
27049 * gst-libs/gst/vaapi/gstvaapiobject.c:
27050 * gst-libs/gst/vaapi/gstvaapiobject.h:
27051 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27052 Port GstVaapiObject to GstVaapiMiniObject.
27054 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27056 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27057 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
27058 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27059 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27060 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27061 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
27062 libs: refine GstVaapiMiniObject.
27063 Drop support for user-defined data since this capability was not used
27064 so far and GstVaapiMiniObject represents the smallest reference counted
27065 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
27066 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
27067 is also possible to further simplify the layout of the object. i.e. merge
27068 GstVaapiMiniObjectBase into GstVaapiMiniObject.
27070 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27072 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27073 decoder: update picture size from the bitstream.
27074 Propagate the picture size from the bitstream to the GstVaapiDecoder,
27075 and subsequent user who installed a signal on notify::caps. This fixes
27076 decoding of TS streams when the demuxer failed to extract the required
27079 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27081 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27082 decoder: fix raw decoding mode.
27083 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
27084 surface proxy to the caller.
27086 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27088 * docs/reference/libs/libs-sections.txt:
27089 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27090 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27091 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27092 * gst/vaapi/gstvaapidecode.c:
27093 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
27094 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
27095 wait for a frame to be decoded, until the specified timeout in microseconds,
27096 prior to returning to the caller.
27097 This is a fix to performance regression from 851cc0, whereby the vaapidecode
27098 loop executed on the srcpad task was called to often, thus starving all CPU
27101 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27104 Bump version for development.
27106 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27112 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27117 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27119 * gst/vaapi/gstvaapidecode.c:
27120 vaapidecode: rework heuristics to detect decode timeout.
27121 Rework heuristics to detect when downstream element ran into errors,
27122 and thus failing to release any VA surface in due time for the current
27123 frame to get decoded. In particular, recalibrate the render time base
27124 when the first frame gets submitted downstream, or when there is no
27125 timestamp that could be inferred.
27127 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27129 * gst-libs/gst/vaapi/gstcompat.h:
27130 * gst/vaapi/gstvaapidecode.c:
27131 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
27132 Rework GstVideoDecoder::handle_frame() to decode the current frame,
27133 while possibly waiting for a free surface, and separately submit all
27134 decoded frames from a task. This makes it possible to pop and render
27135 decoded frames as soon as possible.
27137 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27139 * gst/vaapi/gstvaapidecode.c:
27140 * gst/vaapi/gstvaapidownload.c:
27141 * gst/vaapi/gstvaapisink.c:
27142 * gst/vaapi/gstvaapiupload.c:
27143 plugins: use gst_object_unref() wherever applicable.
27144 Use gst_object_unref() wherever applicable, e.g. objects derived from
27145 GstElement, GstVideoPool, etc.
27147 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27149 * docs/reference/plugins/plugins-docs.xml.in:
27150 * docs/reference/plugins/plugins-sections.txt:
27151 * docs/reference/plugins/plugins.types:
27152 docs: drop obsolete plug-ins.
27153 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
27154 i.e. vaapiupload and vaapidownload are no longer the recommended
27157 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27159 * debian.upstream/rules:
27160 debian: fix build of GStreamer 0.10 packages.
27161 Fix build of Debian packages to scan the actual GStreamer API version
27162 from the generated changelog file.
27164 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27166 * gst/vaapi/gstvaapipostproc.c:
27167 vaapipostproc: minor clean-ups.
27168 Use g_clear_object() wherever appropriate and remove dead-code.
27170 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27172 * gst/vaapi/gstvaapipostproc.c:
27173 vaapipostproc: fix reference counting buf for passthrough mode.
27174 Fix reference counting bug for passthrough mode, whereby the input buffer
27175 was propagated as is downstream through gst_pad_push() without increasing
27176 its reference count before. The was a problem when gst_pad_push() returns
27177 an error and we further decrease the reference count of the input buffer.
27179 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27181 * gst-libs/gst/vaapi/gstcompat.h:
27182 * gst/vaapi/Makefile.am:
27183 * gst/vaapi/gstvaapi.c:
27184 * gst/vaapi/gstvaapidecode.c:
27185 * gst/vaapi/gstvaapipluginutil.h:
27186 * gst/vaapi/gstvaapipostproc.c:
27187 vaapipostproc: port to GStreamer 1.0.
27188 Add support for interlaced streams with GStreamer 1.0 too. Basically,
27189 this enables vaapipostproc, though it is not auto-plugged yet. We also
27190 make sure to reply to CAPS queries, and happily handle CAPS events.
27192 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27194 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27195 decoder: fix GstVideoCodecFrame flags for interlaced contents.
27196 Fix support for interlaced contents with GStreamer 0.10. In particular,
27197 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
27199 This is a regression from commit 87e5717.
27201 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27203 * gst-libs/gst/vaapi/Makefile.am:
27204 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27205 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27206 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
27207 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
27208 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
27209 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
27210 structure was only useful to parsing and a proper GstvaapiDecoderFrame
27211 instance will be created instead.
27213 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27215 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27216 decoder: export presentation timestamp for raw decoding mode.
27217 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
27218 held any information about the expected presentation timestamp, frame
27219 duration or additional flags like interlaced or top-field-first.
27221 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27223 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27224 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27225 decoder: use new GstVaapiSurfaceProxy utility functions.
27226 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
27227 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
27228 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
27229 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
27230 than gst_vaapi_picture_output().
27232 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27234 * docs/reference/libs/libs-sections.txt:
27235 * gst-libs/gst/vaapi/Makefile.am:
27236 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27237 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27238 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
27239 surfaceproxy: add more attributes for raw decoding modes.
27240 Add more attributes for raw decoding modes, i.e. directly through the
27241 libgstvaapi helper library. In particular, add presentation timestamp,
27242 duration and a couple of flags (interlaced, TFF, RFF, one-field).
27244 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27246 * docs/reference/libs/libs-sections.txt:
27247 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27248 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27249 * gst/vaapi/gstvaapidecode.c:
27250 * tests/simple-decoder.c:
27251 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
27252 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
27253 to call some user-provided function when the surface proxy is released.
27255 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
27258 * gst-libs/gst/vaapi/Makefile.am:
27259 build: link libgstvaapi-glx-1.0.so against libdl.
27260 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
27261 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
27263 https://bugzilla.gnome.org/show_bug.cgi?id=698046
27264 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27266 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27268 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27269 decoder: fix gst_vaapi_decoder_get_codec_state().
27270 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
27271 supposed to make GstVaapiDecoder own the return GstVideoCodecState
27272 object. Only comment was updated, not the actual code.
27274 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27276 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27277 * gst/vaapi/gstvaapidecode.c:
27278 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
27279 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
27280 i.e. make the GstVaapiDecoder object own the return state so that callers
27281 that want an extra reference to it would just gst_video_codec_state_ref()
27282 it before usage. This aligns the behaviour with what we had before with
27283 gst_vaapi_decoder_get_caps().
27284 This is an ABI incompatible change, library major version was bumped from
27285 previous release (0.5.2).
27287 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27289 * gst/vaapi/gstvaapivideobufferpool.h:
27290 * gst/vaapi/gstvaapivideoconverter_glx.h:
27291 plugins: mark a few more functions as internal.
27292 Mark the following functions are internal, i.e. private to the vaapi plug-in:
27293 - gst_vaapi_video_buffer_pool_get_type()
27294 - gst_vaapi_video_converter_glx_get_type()
27295 - gst_vaapi_video_converter_glx_new()
27297 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27299 * gst/vaapi/gstvaapivideobuffer.c:
27300 plugins: implement GstSurfaceMeta API.
27301 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
27302 an unstable/deprecated API, this makes it possible to support Clutter
27303 sink with minimal changes. Tested against clutter-gst 1.9.92.
27305 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27307 * gst/vaapi/gstvaapisink.c:
27308 vaapisink: optimize GstVideoOverlayInterface::expose().
27309 When render-mode is "overlay", then it is not really useful to peek into
27310 the GstBaseSink::last_buffer, since we have our own video_buffer already
27311 recorded and maintained into GstVaapiSink.
27313 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27315 * gst/vaapi/gstvaapisink.c:
27316 vaapisink: fix memory leak of GstSample objects.
27317 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
27318 This also fixes extra unreferencing of the underlying GstBuffer in the common
27319 path afterwards (for both 0.10 or 1.0).
27321 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27323 * gst-libs/gst/vaapi/gstcompat.h:
27324 * gst/vaapi/gstvaapi.c:
27325 plugins: fix description for gst-inspect.
27326 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
27327 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
27328 incorrectly uses #name for creating the plug-in name, instead of using macro
27329 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
27331 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27335 Update build requirements for GStreamer 1.0.x support. Add section for
27336 ways to report bugs.
27338 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27343 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27345 * gst-libs/gst/vaapi/Makefile.am:
27346 * gst/vaapi/Makefile.am:
27347 Fix make dist to include all source files, in any case.
27348 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
27349 sure to include all source files in either case while generating source
27352 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27355 Bump library major version.
27356 Bump library major version, while preserving a major version of 0 for
27357 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
27358 0.10 based librarieS.
27360 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27362 * gst/vaapi/gstvaapivideomemory.c:
27363 * gst/vaapi/gstvaapivideomemory.h:
27364 plugins: implement direct-rendering mode for raw YUV buffer uploads.
27365 Allow direct-rendering (writes) into target VA surfaces.
27367 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27369 * gst/vaapi/gstvaapivideobufferpool.c:
27370 * gst/vaapi/gstvaapivideomemory.c:
27371 * gst/vaapi/gstvaapivideomemory.h:
27372 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
27373 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
27374 the last component is unmapped. Downloads are not supported yet. The aim
27375 was to first support SW decoding + HW accelerated rendering (vaapisink).
27378 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27380 * gst/vaapi/gstvaapidecode.c:
27381 vaapidecode: submit all decoded frames before decoding a new one.
27382 Make sure to purge all pending frames that were already decoded prior
27383 to decoding a new one. This helps release VA surfaces as early as
27386 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27388 * gst/vaapi/gstvaapidecode.c:
27389 vaapidecode: reply to CAPS queries.
27390 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
27391 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
27392 This fixes fallback to SW decoding if no HW decoder is available.
27394 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27396 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27397 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27398 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27399 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27400 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27401 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27402 decoder: fix unpaired GstBuffer map/unmaps.
27403 This possibly fixes a few memory leaks along the way.
27405 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27408 * gst-libs/gst/vaapi/gstcompat.h:
27409 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27410 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27411 * gst/vaapi/Makefile.am:
27412 * gst/vaapi/gstvaapi.c:
27413 * gst/vaapi/gstvaapidecode.c:
27414 * gst/vaapi/gstvaapisink.c:
27415 * gst/vaapi/gstvaapisink.h:
27416 * gst/vaapi/gstvaapiuploader.c:
27418 Allow build against either GStreamer API (0.10 or 1.0).
27419 Introduce a new configure option --with-gstreamer-api that determines
27420 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
27421 Also integrate more compatibility glue into gstcompat.h and plugins.
27423 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27425 * gst/vaapi/gstvaapidecode.c:
27426 * gst/vaapi/gstvaapisink.c:
27427 * gst/vaapi/gstvaapisink.h:
27428 plugins: use new video buffer pools.
27429 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
27430 GstBaseSink::propose_allocation() to expose that pool to upstream
27431 elements; and also implement GstVideoDecoder::decide_allocation() to
27432 actually use that pool (from downstream), if any, or create one.
27433 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27435 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27437 * gst/vaapi/Makefile.am:
27438 * gst/vaapi/gstvaapivideobufferpool.c:
27439 * gst/vaapi/gstvaapivideobufferpool.h:
27440 * gst/vaapi/gstvaapivideomemory.c:
27441 * gst/vaapi/gstvaapivideomemory.h:
27442 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
27443 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
27444 object currently holds a reference to GstVaapiVideoMeta.
27445 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27447 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27449 * gst/vaapi/gstvaapivideometa.c:
27450 * gst/vaapi/gstvaapivideometa.h:
27451 plugins: allow copies of GstVaapiVideoMeta objects.
27452 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
27453 objects created from GstVaapiVideoPool. This is mostly useful to clone a
27454 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
27457 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27459 * gst/vaapi/gstvaapivideometa.c:
27460 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
27461 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
27462 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
27463 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
27466 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27468 * gst/vaapi/Makefile.am:
27469 * gst/vaapi/gstvaapi.c:
27470 * gst/vaapi/gstvaapidecode.c:
27471 * gst/vaapi/gstvaapidownload.c:
27472 * gst/vaapi/gstvaapipluginutil.c:
27473 * gst/vaapi/gstvaapipostproc.c:
27474 * gst/vaapi/gstvaapisink.c:
27475 * gst/vaapi/gstvaapiupload.c:
27476 * gst/vaapi/gstvaapiuploader.c:
27477 * gst/vaapi/gstvaapivideobuffer.c:
27478 * gst/vaapi/gstvaapivideoconverter_glx.c:
27479 * gst/vaapi/gstvaapivideometa.c:
27480 * gst/vaapi/gstvaapivideometa.h:
27481 plugins: initial port to GStreamer 1.0.
27482 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
27483 is rather minimalistic so that to test the basic functionality.
27484 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
27485 needs polishing wrt. to GStreamer 1.x functionality and the former are
27486 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
27487 which are yet to be implemented.
27488 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27490 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27492 * gst-libs/gst/vaapi/gstcompat.h:
27495 * tests/simple-decoder.c:
27496 * tests/test-subpicture.c:
27497 tests: add support for GStreamer 1.0.
27499 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27502 * gst-libs/gst/vaapi/gstcompat.h:
27503 * gst-libs/gst/vaapi/gstvaapicontext.c:
27504 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27505 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27506 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27507 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27508 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27509 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27510 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27511 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27512 * gst-libs/gst/vaapi/gstvaapiimage.c:
27513 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27514 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27515 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27516 * gst-libs/gst/vaapi/gstvaapisurface.h:
27517 Add initial support for GStreamer 1.0.
27518 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
27519 core decoding library. The changes are kept rather minimal here so that
27520 the library retains as little dependency as possible on core GStreamer
27522 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27524 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27526 * gst/vaapi/gstvaapisink.c:
27527 vaapisink: improve check for raw YUV format mode.
27528 Improve check for raw YUV format modes by avoiding checks against strings
27529 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
27530 GstBaseSink::set_caps() is called first and if VA surface format mode is
27531 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
27532 called before set_caps(), then we just make a full check. This one is
27533 pretty rare though, e.g. it usually happens once for custom pipelines.
27535 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27537 * gst/vaapi/gstvaapipluginutil.c:
27538 plugins: don't fail if there is no overlay composition to apply.
27539 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
27540 was found. i.e. return success (TRUE). This was harmless though extra
27541 debug messages are not nice.
27542 This is a regression introduced by commit 95b8659.
27544 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27546 * gst/vaapi/gstvaapidecode.c:
27547 * gst/vaapi/gstvaapidecode.h:
27548 vaapidecode: expose the exact set of supported HW decoders.
27549 Don't return static caps that don't mean anything for the underlying codecs
27550 that are actually supported for decoding. i.e. always allocate a VA display
27551 and retrieve the exact set of HW decoders available. That VA display may be
27552 re-used later on during negotiation through GstVideoContext "prepare-context".
27553 This fixes fallback to SW decoding if no HW decoder is available.
27555 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27557 * docs/reference/libs/libs-sections.txt:
27558 * gst-libs/gst/vaapi/gstvaapicontext.c:
27559 * gst-libs/gst/vaapi/gstvaapicontext.h:
27560 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27561 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27562 decoder: drop obsolete functions.
27563 Drop the following functions that are now obsolete:
27564 - gst_vaapi_context_get_surface()
27565 - gst_vaapi_context_put_surface()
27566 - gst_vaapi_context_find_surface_by_id()
27567 - gst_vaapi_surface_proxy_new()
27568 - gst_vaapi_surface_proxy_get_context()
27569 - gst_vaapi_surface_proxy_set_context()
27570 - gst_vaapi_surface_proxy_set_surface()
27571 This is an API change.
27573 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27575 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27576 decoder: delegate surface size check to VA context reset.
27577 Now that the surface pool is reference counted in the surface proxy wrapper,
27578 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
27579 Besides, this check is already performed in gst_vaapi_context_reset_full().
27581 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27583 * docs/reference/libs/libs-sections.txt:
27584 * gst-libs/gst/vaapi/gstvaapicontext.c:
27585 * gst-libs/gst/vaapi/gstvaapicontext.h:
27586 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27587 * gst-libs/gst/vaapi/gstvaapisurface.h:
27588 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27589 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27590 decoder: simplify acquisition/release of spare surface.
27591 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
27592 proxy from the context surface pool. This change also makes sure to retain
27593 the parent surface pool in the proxy.
27594 Besides, it was also totally useless to attach/detach parent context to
27595 VA surface each time we acquire/release it. Since the whole context owns
27596 all associated VA surfaces, we can mark this as such only once and for all.
27598 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27601 Bump version for development.
27603 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27609 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27614 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27616 * gst/vaapi/gstvaapipluginutil.c:
27617 * gst/vaapi/gstvaapisink.c:
27618 plugins: fix usage of gst_vaapi_reply_to_query().
27619 Make gst_vaapi_reply_to_query() first check whether the query argument
27620 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
27621 Then, make sure vaapisink propagates the query to the parent class if
27622 it is not a video-context query.
27624 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27626 * gst/vaapi/gstvaapivideobuffer.c:
27627 * gst/vaapi/gstvaapivideobuffer.h:
27628 plugins: streamline video buffers.
27629 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
27630 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
27631 gst_vaapi_video_buffer_get_meta().
27633 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27635 * docs/reference/libs/libs-sections.txt:
27636 * gst-libs/gst/vaapi/Makefile.am:
27637 * gst/vaapi/Makefile.am:
27638 * gst/vaapi/gstvaapidecode.c:
27639 * gst/vaapi/gstvaapidownload.c:
27640 * gst/vaapi/gstvaapipostproc.c:
27641 * gst/vaapi/gstvaapisink.c:
27642 * gst/vaapi/gstvaapiupload.c:
27643 * gst/vaapi/gstvaapiuploader.c:
27644 * gst/vaapi/gstvaapivideobuffer.h:
27645 * gst/vaapi/gstvaapivideoconverter_glx.c:
27646 * gst/vaapi/gstvaapivideometa.c:
27647 * gst/vaapi/gstvaapivideometa.h:
27648 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
27649 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
27650 actual plugin elements. That's only useful there. Also inline reference
27651 counting code from GstVaapiMiniObject.
27653 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27655 * gst/vaapi/Makefile.am:
27656 * gst/vaapi/gstvaapidecode.c:
27657 * gst/vaapi/gstvaapidownload.c:
27658 * gst/vaapi/gstvaapipluginbuffer.c:
27659 * gst/vaapi/gstvaapipluginbuffer.h:
27660 * gst/vaapi/gstvaapipostproc.c:
27661 * gst/vaapi/gstvaapiupload.c:
27662 * gst/vaapi/gstvaapiuploader.c:
27663 * gst/vaapi/gstvaapivideobuffer.c:
27664 * gst/vaapi/gstvaapivideobuffer.h:
27665 plugins: drop gstvaapipluginbuffer.[ch] helper files.
27666 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
27667 to gstvaapivideobuffer.[ch], and drop the obsolete files.
27669 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27671 * docs/reference/libs/libs-sections.txt:
27672 * docs/reference/libs/libs.core.types:
27673 * gst-libs/gst/vaapi/Makefile.am:
27674 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27675 * gst/vaapi/Makefile.am:
27676 * gst/vaapi/gstvaapidownload.h:
27677 * gst/vaapi/gstvaapipluginbuffer.c:
27678 * gst/vaapi/gstvaapipostproc.h:
27679 * gst/vaapi/gstvaapivideobuffer.c:
27680 * gst/vaapi/gstvaapivideobuffer.h:
27681 * gst/vaapi/gstvaapivideoconverter_glx.h:
27682 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
27683 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
27684 actual plugin elements. That's only useful there.
27686 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27688 * gst/vaapi/gstvaapipluginutil.c:
27689 * gst/vaapi/gstvaapipluginutil.h:
27690 * gst/vaapi/gstvaapisink.c:
27691 * gst/vaapi/gstvaapivideoconverter_glx.c:
27692 plugins: use common helper function to apply compositions.
27693 Use common gst_vaapi_apply_composition() helper function to apply compositions
27694 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
27696 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27698 * gst-libs/gst/vaapi/Makefile.am:
27699 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27700 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27701 * gst/vaapi/Makefile.am:
27702 * gst/vaapi/gstvaapipluginbuffer.c:
27703 * gst/vaapi/gstvaapivideoconverter_glx.c:
27704 * gst/vaapi/gstvaapivideoconverter_glx.h:
27705 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
27706 Make sure libgstvaapi core decoding library doesn't include un-needed
27707 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
27708 Besides, even if the vaapisink element is not used, we are bound to have
27709 a correctly populated GstSurfaceBuffer from vaapidecode.
27710 Also clean-up the file along the way.
27712 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27714 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27715 vc1: fix use of possibly uninitialized variable.
27716 In decode_codec_data(), force initialization of format to zero so that
27717 we can catch up cases where codec-data has neither "format" nor "wmvversion"
27718 fields, thus making it possible to gracefully fail in this case.
27720 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27722 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27723 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
27725 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27727 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27728 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27729 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27730 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27731 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27732 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27733 decoder: sanitize codec-data decoding.
27734 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
27735 codec-data in the decoder sub-class. Provide a common shared helper
27736 function to do the actual work and delegating further to the sub-class.
27738 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27740 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27741 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27742 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27743 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27744 decoder: get rid of GstVaapiDecoderUnit::buffer field.
27745 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
27746 useless nowadays as creating sub-buffers doesn't bring any value. It
27747 actually means more memory allocations. We can't do without that in
27748 JPEG and MPEG-4:2 decoders.
27750 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27752 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27753 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27754 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27755 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27756 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27757 decoder: sanitize uses of codec frame input buffer (cosmetics).
27758 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
27761 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27763 * gst/vaapi/gstvaapisink.c:
27764 vaapisink: add helper function to apply a composition buffer.
27765 Simplify application of a composition buffer to a GstVaapiSurface, and
27766 all its peers, until that function is eventually promoted to libgstvaapi.
27768 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27770 * gst/vaapi/gstvaapisink.c:
27771 vaapisink: fix support for raw YUV buffers.
27772 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
27773 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
27774 However, we previously assumed in that case that it was a "native" VA buffer,
27775 thus not calling into GstVaapiUploader::process().
27777 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27779 * gst-libs/gst/vaapi/gstcompat.h:
27780 * gst/vaapi/gstvaapidecode.c:
27781 * gst/vaapi/gstvaapidownload.c:
27782 * gst/vaapi/gstvaapipostproc.c:
27783 * gst/vaapi/gstvaapisink.c:
27784 * gst/vaapi/gstvaapiupload.c:
27785 plugins: use modern GstElement metadata information.
27786 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
27787 basically is the same as gst_element_class_set_details_simple() in
27788 GStreamer 0.10 context.
27790 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27792 * gst/vaapi/gstvaapidecode.c:
27793 * gst/vaapi/gstvaapidownload.c:
27794 * gst/vaapi/gstvaapipostproc.c:
27795 * gst/vaapi/gstvaapisink.c:
27796 * gst/vaapi/gstvaapiupload.c:
27797 plugins: move up interfaces (cosmetics).
27798 Move GstImplementsInterface and GstVideoContext support functions up
27799 so that to keep a clear separation between the plugin element and its
27802 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27804 * gst/vaapi/gstvaapisink.c:
27805 * gst/vaapi/gstvaapiuploader.c:
27806 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
27807 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
27808 Also use the newly added gst_vaapi_image_format_from_structure() helper
27809 in GstVaapiUploader::ensure_allowed_caps().
27811 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27813 * gst/vaapi/gstvaapipluginbuffer.c:
27814 plugins: fix creation of video buffer from another source buffer.
27815 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
27816 buffer video meta since it would be unreference'd from the get_buffer()
27817 helper function. For other cases, we still use (steal) the newly created
27820 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27822 * gst/vaapi/gstvaapipluginbuffer.c:
27823 * gst/vaapi/gstvaapipluginutil.c:
27824 plugins: include "sysdeps.h" header instead of "config.h".
27826 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27828 * gst-libs/gst/vaapi/gstcompat.h:
27830 tests: modernize GstTypeFind functions.
27831 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
27832 exactly correspond to the expected behaviour.
27834 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27838 * tests/test-decode.c:
27839 * tests/test-display.c:
27840 * tests/test-h264.c:
27841 * tests/test-h264.h:
27842 * tests/test-jpeg.c:
27843 * tests/test-jpeg.h:
27844 * tests/test-mpeg2.c:
27845 * tests/test-mpeg2.h:
27846 * tests/test-mpeg4.c:
27847 * tests/test-mpeg4.h:
27848 * tests/test-textures.c:
27849 * tests/test-vc1.c:
27850 * tests/test-vc1.h:
27851 * tests/test-windows.c:
27852 tests: fix license templates.
27854 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27856 * tests/test-display.c:
27857 tests: use gst_vaapi_image_format_from_structure() in test-display.
27858 Use gst_vaapi_image_format_from_structure() helper in test-display and
27859 then extract a VAImageFormat from it instead of relying on GstCaps for
27860 YUV and RGB formats.
27862 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27867 * tests/test-decode.c:
27868 * tests/test-display.c:
27869 * tests/test-subpicture.c:
27870 * tests/test-textures.c:
27871 * tests/test-windows.c:
27872 tests: include "sysdeps.h" header instead of "config.h".
27874 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27876 * gst-libs/gst/vaapi/gstcompat.h:
27877 * gst-libs/gst/vaapi/gstvaapicontext.c:
27878 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27879 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
27880 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
27881 function with GStreamer 0.10 compatible semantics, or that tries to
27882 approach the current meaning. Basically, this is also just about moving
27883 the helper to gstcompat.h.
27885 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27887 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27888 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27889 image: add gst_vaapi_image_format_from_structure() helper.
27890 Add helper function to convert video formats from a GstStructure to a
27891 plain GstVaapiImageFormat.
27893 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27895 * gst-libs/gst/vaapi/Makefile.am:
27896 * gst-libs/gst/vaapi/gstcompat.h:
27897 * gst-libs/gst/vaapi/sysdeps.h:
27898 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
27900 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27902 * gst-libs/gst/vaapi/sysdeps.h:
27903 sysdeps: add more standard includes by default.
27905 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27908 configure: improve GStreamer API version checks.
27910 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27913 * debian.upstream/Makefile.am:
27914 * debian.upstream/changelog.in:
27915 * debian.upstream/control.in:
27916 * debian.upstream/gstreamer-vaapi-doc.install.in:
27917 * debian.upstream/libgstvaapi-dev.install.in:
27918 * debian.upstream/libgstvaapi-drm.install.in:
27919 * debian.upstream/libgstvaapi-glx.install.in:
27920 * debian.upstream/libgstvaapi-wayland.install.in:
27921 * debian.upstream/libgstvaapi-x11.install.in:
27922 * debian.upstream/libgstvaapi.install.in:
27923 * docs/reference/libs/Makefile.am:
27924 * docs/reference/libs/libs-docs.xml.in:
27925 * docs/reference/plugins/Makefile.am:
27926 * docs/reference/plugins/plugins-docs.xml.in:
27927 * gst-libs/gst/vaapi/Makefile.am:
27928 * gst/vaapi/Makefile.am:
27929 * pkgconfig/Makefile.am:
27930 * pkgconfig/gstreamer-vaapi-drm.pc.in:
27931 * pkgconfig/gstreamer-vaapi-glx.pc.in:
27932 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
27933 * pkgconfig/gstreamer-vaapi-x11.pc.in:
27934 * pkgconfig/gstreamer-vaapi.pc.in:
27935 * tests/Makefile.am:
27936 configure: rename GST_MAJORMINOR to GST_API_VERSION.
27938 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27941 configure: improve check for H.264 codecparser.
27943 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
27945 * gst/vaapi/gstvaapiuploader.c:
27946 vaapiupload: fix illegal write in ensure_image().
27947 Fix ensure_image() to only zero-initialize the first line of each plane.
27948 Properly initializing each plane to their full vertical resolution would
27949 require to actually compute it based on the image format.
27950 In particular, for NV12 images, the UV plane has half vertical resolution
27951 vs. the Y plane. So using the full image height to initialize the UV plane
27952 will obviously lead to a buffer overflow. Likewise for other YUV format.
27953 Since ensure_image() is only a helper function to initialize something,
27954 and not necessarily the whole thing, it is fine to initializ the first
27955 line only. Besides, the target surface is not rendered either.
27956 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27958 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
27960 * gst-libs/gst/codecparsers/Makefile.am:
27961 * gst-libs/gst/video/Makefile.am:
27962 build: fix compiling of local GstVideoDecoder and codecparsers.
27963 Generated source files were missing a dependency on the complete set of
27964 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
27965 to build and almost every codec parser source depends on parserutils.h.
27966 https://bugs.freedesktop.org/show_bug.cgi?id=59575
27967 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
27968 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27970 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27972 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27973 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
27974 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
27975 there is no pred_weight_table() that was parsed.
27976 This is a workaround for the VA intel-driver on Ivy Bridge.
27978 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27980 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27981 h264: use new profile definitions from codecparsers.
27983 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27985 * ext/codecparsers:
27986 codecparsers: update to gst-vaapi-branch commit 500bc02.
27987 500bc02 h264: add profile enums
27989 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27994 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27996 * ext/codecparsers:
27997 codecparsers: update to gst-vaapi-branch commit 31b1c57.
27998 8957fb7 mpeg2: add helpers to convert quantization matrices
27999 07c4034 mpeg2: store quantization matrices in zigzag scan order
28001 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28003 * tests/simple-decoder.c:
28004 tests: simple-decoder: fix build on older platforms.
28005 Make simple-decoder build and execute correctly on older platforms,
28006 and more precisely older versions of glib.
28008 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28010 * gst-libs/gst/vaapi/glibcompat.h:
28011 glibcompat: add replacement for g_async_queue_timeout_pop().
28012 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
28013 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
28014 new data to arrive in the queue.
28016 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28018 * gst-libs/gst/vaapi/glibcompat.h:
28019 glibcompat: add replacement for g_cond_wait().
28021 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28023 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28024 mpeg2: fix decoding of 4K videos.
28025 Account for slice_vertical_position_extension when vertical_size > 2800.
28027 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28029 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28030 mpeg2: fix decoding of sequence_end().
28031 There shall be only one place to call decode_current_picture(), and this
28032 is in the end_frame() hook. The EOS unit is processed after end_frame()
28033 so this means we cannot have a valid picture to decode/output at this
28036 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28038 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28039 mpeg2: improve robustness when packets are missing.
28040 Improve robustness when some expected packets where not received yet
28041 or that were not correctly decoded. For example, don't try to decode
28042 a picture if there was no valid sequence or picture headers.
28044 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28046 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28047 decoder: handle decode-only frames in raw API mode.
28048 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
28049 surface proxy, i.e. with a valid VA surface. This means that any frame
28050 marked as decode-only is simply skipped.
28052 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28054 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28055 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28056 decoder: allow frames to be dropped.
28057 If the decoder was not able to decode a frame because insufficient
28058 information was available, e.g. missing sequence or picture header,
28059 then allow the frame to be gracefully dropped without generating
28061 It is also possible that a frame is not meant to be displayed but
28062 only used as a reference, so dropping that frame is also a valid
28063 operation since GstVideoDecoder base class has extra references to
28064 that GstVideoCodecFrame that needs to be released.
28066 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28068 * gst/vaapi/gstvaapidecode.c:
28069 vaapidecode: handle decode-only frames.
28070 Decode-only frames may not have a valid surface proxy. So, simply discard
28071 them gracefully, i.e. don't create meta data information. GstVideoDecoder
28072 base class will properly handle this case and won't try to push any buffer
28073 to downstream elements.
28075 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28077 * gst/vaapi/gstvaapidecode.c:
28078 vaapidecode: add support for post-seek semantics reset.
28079 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
28080 and the creation of a new VA decoder.
28081 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28083 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28086 Bump version for development.
28088 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28094 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28096 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28097 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
28099 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28101 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28102 decoder: fix documentation for GstVaapiDecoderFrame.
28103 Drop superfluous reference to prev_slice member.
28105 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28107 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28108 decoder: assume current frame is complete at end-of-stream.
28109 Assume we got a complete frame when the end-of-stream is reached and that
28110 the current codec frame contains at least one slice data unit.
28112 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28116 * debian.upstream/copyright:
28117 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28118 * gst-libs/gst/vaapi/gstvaapicontext.c:
28119 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28120 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28121 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28122 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28123 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28124 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28125 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28126 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28127 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28128 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28129 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28130 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28131 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28132 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28133 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28134 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28135 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28136 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28137 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
28138 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28139 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28140 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28141 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28142 * gst-libs/gst/vaapi/gstvaapisurface.c:
28143 * gst-libs/gst/vaapi/gstvaapiutils.c:
28144 * gst-libs/gst/vaapi/gstvaapiutils.h:
28145 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28146 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28147 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28148 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28149 * gst-libs/gst/vaapi/sysdeps.h:
28150 * gst/vaapi/gstvaapidecode.c:
28151 * gst/vaapi/gstvaapidownload.c:
28152 * gst/vaapi/gstvaapipluginbuffer.c:
28153 * gst/vaapi/gstvaapipluginbuffer.h:
28154 * gst/vaapi/gstvaapipostproc.c:
28155 * gst/vaapi/gstvaapisink.c:
28156 * gst/vaapi/gstvaapiupload.c:
28157 * gst/vaapi/gstvaapiuploader.c:
28159 * tests/test-decode.c:
28160 * tests/test-subpicture.c:
28161 legal: fix year for some copyright notices (2013).
28163 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28165 * gst-libs/gst/vaapi/gstvaapicontext.h:
28166 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28167 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28168 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
28169 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28170 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
28171 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28172 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
28173 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28174 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28175 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28176 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28177 * gst-libs/gst/vaapi/gstvaapisurface.c:
28178 * gst-libs/gst/vaapi/gstvaapisurface.h:
28179 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
28180 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
28181 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28182 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28183 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28184 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
28185 * gst/vaapi/gstvaapidecode.h:
28186 * gst/vaapi/gstvaapisink.h:
28187 * tests/test-subpicture.c:
28188 legal: fix year for some copyright notices (2012).
28190 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28192 * gst-libs/gst/vaapi/gstvaapicompat.h:
28193 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
28194 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28195 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
28196 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
28197 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
28198 * gst-libs/gst/vaapi/gstvaapiobject.c:
28199 * gst-libs/gst/vaapi/gstvaapiobject.h:
28200 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
28201 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
28202 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
28203 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28204 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28205 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28206 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28207 * gst-libs/gst/vaapi/gstvaapitexture.c:
28208 * gst-libs/gst/vaapi/gstvaapitexture.h:
28209 * gst-libs/gst/vaapi/gstvaapitypes.h:
28210 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
28211 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
28212 * gst-libs/gst/vaapi/gstvaapivalue.c:
28213 * gst-libs/gst/vaapi/gstvaapivalue.h:
28214 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28215 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28216 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28217 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
28218 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
28219 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28220 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
28221 * tests/test-display.c:
28222 * tests/test-surfaces.c:
28223 * tests/test-windows.c:
28224 legal: add Intel copyright on modified files.
28226 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28231 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28233 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28234 wayland: use a local event queue to avoid lock contention.
28235 This improves performance when rendering several surfaces from within
28236 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
28238 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28240 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28241 wayland: fix thread-safe issues.
28242 The Wayland API is not fully thread-safe and client applications shall
28243 perform locking themselves on key functions. Besides, make sure to
28244 release the lock if the _render() function fails.
28246 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28248 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28249 wayland: really wait until the pending redraw completed.
28250 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
28251 the completion of the redraw request. Use it in _render() function to
28252 actually block until the previous draw request is completed.
28254 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28256 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28257 wayland: fix frame_redraw callback.
28258 The redraw callback needs to be attached to the surface prior to the
28259 commit. Otherwise, the callback notifies the next surface repaint,
28260 which is not the desired behaviour. i.e. we want to be notified for
28261 the surface we have just filled.
28262 Another isse was the redraw_pending was reset before the actual completion
28263 of the frame redraw callback function, thus causing concurrency issues.
28264 e.g. the callback could have been called again, but with a NULL buffer.
28266 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28268 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
28269 wayland: fix display sharing.
28270 When the Wayland display is shared, we still have to create our own local
28271 shell and compositor objects, since they are not propagated from the cache.
28272 Likewise, we also need to determine the display size or vaapisink would
28273 fail to account for the display aspect ratio, and will try to create a 0x0
28276 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28278 * ext/codecparsers:
28279 codecparsers: update to gst-vaapi-branch commit 21a098e.
28280 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
28281 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
28283 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28285 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28286 vc1: handle frames with multiple slices.
28288 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28290 * ext/codecparsers:
28291 codecparsers: update to gst-vaapi-branch commit 3fba492.
28292 3fba492 vc1: add API to parse slice headers
28294 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28296 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28297 vc1: handle CLOSED_ENTRY.
28298 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
28299 lack a reference anchor picture, these B pictures shall be discarded.
28300 https://bugs.freedesktop.org/show_bug.cgi?id=59505
28302 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28304 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28305 vc1: cope with latest codecparser changes.
28306 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
28307 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
28308 the actual value of DQPROFILE.
28310 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28312 * ext/codecparsers:
28313 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
28314 3d2c67c vc1: simplify GstVC1VopDquant structure
28316 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28318 * ext/codecparsers:
28319 codecparsers: update to gst-vaapi-branch commit 5d33da8.
28320 5d33da8 vc1: fix bitplanes decoding
28321 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
28322 0b13d2b vc1: fix calculation of ALTPQUANT
28323 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
28325 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28327 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28328 vc1: fix size of encapsulated BDU.
28329 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
28330 the size of the BDU data, starting from offset, i.e. after any start
28332 This fixes a buffer overflow during the unescaping process.
28334 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
28336 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28337 vc1: fix decoding of WMV3 videos in AVI format.
28338 The AVI demuxer (avidemux) does not set a proper "format" attribute
28339 to the generated caps. So, try to recover the video codec format from
28340 the "wmvversion" property instead.
28341 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28343 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28345 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28346 vc1: review and report errors accordingly.
28347 Use GST_ERROR() to report real errors instead of hiding them into
28350 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28352 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28353 vc1: don't create GstBuffers for all decoder units.
28354 Don't create temporary GstBuffers for all decoder units, even if they
28355 are lightweight "sub-buffers", since it is not really necessary to keep
28356 the buffer data around.
28358 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28360 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28361 vc1: implement flush() hook.
28362 Make it a simple DPB flush.
28364 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28366 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28367 vc1: implement {start,end}_frame() hooks.
28368 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28369 that to create new VA context earlier and submit VA pictures to the
28370 HW for decoding as soon as possible. i.e. don't wait for the next
28371 frame to start decoding the previous one.
28373 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28375 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28376 vc1: fix next POC for new sequence layers.
28377 Fix next POC when a new sequence layer is reached. At this point, we
28378 need to reset any previous reference picture, i.e. non B-frame.
28380 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28382 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28383 vc1: port to common GstVaapiDpb interface.
28384 Use GstVaapiDpb interface instead of maintaining our own prev and next
28385 picture pointers. While doing so, try to derive a sensible POC value.
28386 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28388 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28390 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28391 vc1: fix decode_sequence_end() to return success, not EOS.
28393 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28395 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28396 decoder: simplify gst_vaapi_decoder_get_surface().
28397 Avoid extraenous branches, i.e. immediately return with success once we
28398 have a decoded frame available.
28400 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28402 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28403 decoder: optimize and clean decode_step() up.
28404 Avoid usage of goto. Simplify decode_step() process to first accumulate all
28405 pending buffers into the GstAdapter, and then parse and decode units from
28406 that input adapter. Stop the process once a frame is fully decoded or an
28409 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28411 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28412 display: move "vaapi" debug init to libgstvaapi_init_once().
28414 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28417 * gst-libs/gst/vaapi/Makefile.am:
28418 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28419 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
28420 display: dump gstreamer-vaapi version for debugging purposes.
28422 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28424 * tests/Makefile.am:
28425 tests: simple-decoder: fix build with built-in videoutils.
28426 Fix build with built-in videoutils, i.e. when system GStreamer installation
28427 does not know about GstVideoDecoder API.
28429 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28431 * tests/simple-decoder.c:
28432 tests: simple-decoder: flush decoded frames at EOS.
28433 Flush the remaining decoded frames when an end-of-stream is reached.
28435 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28437 * tests/simple-decoder.c:
28438 tests: simple-decoder: drop use of GstVaapiVideoMeta.
28439 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
28440 in libgstvaapi forever. Rather, that'd move to plugin elements at some
28443 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28445 * tests/simple-decoder.c:
28446 tests: simple-decoder: add benchmark mode.
28447 Add --benchmark option to enable benchmark mode where rendering is not
28448 synchronized with presentation timestamps of the decoded surfaces.
28450 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28452 * tests/Makefile.am:
28453 * tests/simple-decoder.c:
28454 tests: simple-decoder: honour framerate from the bitstream.
28455 Try to honour the framerate from the bitstream, or cap the playback to
28458 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28460 * tests/simple-decoder.c:
28461 tests: simple-decoder: set window size to the surface dimensions.
28462 Set the window size to the decoded surface dimensions, if the user has
28463 not requested the application to run in full-screen mode. Besides, no
28464 effort is made to preserve aspect ratio or to center the video within
28467 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28469 * tests/Makefile.am:
28470 * tests/simple-decoder.c:
28471 tests: add simple decoder application.
28472 Add simple decoder application to show off decoding capabilities from
28473 raw bitstreams, for debugging or performance evaluation purposes.
28475 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28477 * tests/Makefile.am:
28480 tests: add codec helper utils.
28481 Add helper functions to determine the codec type from a specific file
28482 or utility functions to convert from codec type to GstCaps or from
28483 codec name to codec type.
28485 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28488 tests: allow fullscreen mode.
28489 Add new --fullscreen|-f option to create new windows in fullscreen mode.
28491 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28493 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28494 h264: implement GstVaapiDecoder::flush() as a DPB flush.
28496 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28498 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28499 h264: handle end-of-stream NALU.
28500 Handle <end-of-stream> NAL unit to actually flush any pending picture
28503 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28505 * gst/vaapi/gstvaapidecode.c:
28506 vaapidecode: handle EOS events.
28507 Flush all decoded frames to downstream when EOS is received. This is
28508 performed by implementing GstVideoDecoder::finish() hook.
28510 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28512 * gst/vaapi/gstvaapidecode.c:
28513 vaapidecode: split gvd_handle_frame() into decode/push frames.
28514 Split GstVideoDecoder::handle_frame() implementation into two functions:
28515 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
28516 for purging all decoded frames and submit them downstream.
28518 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28520 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28521 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28522 decoder: add GstVaapiDecoder::flush() hook.
28524 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28526 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28527 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28528 decoder: fix check for end-of-stream in raw API mode.
28529 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
28530 if the end-of-stream was already reached at the previous iteration.
28532 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28534 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28535 decoder: make decode_step() return once the frame is decoded.
28536 Make sure we always have a free surface left to use for decoding the
28537 current frame. This means that decode_step() has to return once a frame
28538 gets decoded. If the current adapter contains more buffers with valid
28539 frames, they will get parsed and decoded on subsequent iterations.
28541 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28543 * ext/codecparsers:
28544 codecparsers: update to gst-vaapi-branch commit b47983a.
28545 8840c2d h264: zero-initialize SPS VUI parameters
28547 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28550 Bump version for development.
28552 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28558 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28560 * docs/reference/libs/libs-docs.xml.in:
28561 * docs/reference/libs/libs-sections.txt:
28562 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28563 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28564 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28565 docs: expose new interfaces.
28567 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28572 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28574 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28575 dpb: cosmetics (clean-ups).
28577 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28579 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28580 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28581 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28582 dpb: port to GstVaapiMiniObject.
28584 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28586 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28587 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28588 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28589 dpb: drop GstVaapiDpb2 interface, keep only one class.
28590 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
28591 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
28592 around the specified picture POC.
28594 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28596 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28597 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28598 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28599 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
28600 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
28601 useful to other decoders that require 2 reference pictures, e.g. VC-1.
28602 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28604 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28607 Bump version for pre-release.
28609 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28614 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
28617 * gst-libs/gst/vaapi/gstvaapicontext.c:
28618 * gst-libs/gst/vaapi/gstvaapiutils.c:
28619 * gst-libs/gst/vaapi/sysdeps.h:
28620 * tests/test-subpicture.c:
28621 overlay: fix build without advanced GstVideoOverlayFormatFlags.
28622 Check for global-alpha support in GstVideoOverlayComposition API.
28623 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28625 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28627 * tests/test-subpicture.c:
28628 tests: add support for global-alpha subpictures.
28629 Add --global-alpha option to test-subpicture.
28631 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28633 * tests/Makefile.am:
28634 * tests/test-subpicture.c:
28635 tests: use GstVideoOverlayComposition API for subpicture test.
28637 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28639 * tests/Makefile.am:
28640 * tests/test-subpicture.c:
28641 tests: use common decoder helpers for subpicture test.
28642 Use common decoder helpers for subpicture test, thus allowing to decode
28643 sample images in an alternate format.
28645 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28647 * tests/Makefile.am:
28650 * tests/test-decode.c:
28651 tests: add decoder helpers.
28653 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28655 * gst-libs/gst/vaapi/gstvaapicontext.c:
28656 overlay: fix ordering of composition layers.
28657 Make sure to maintain the association order of composition layers when
28658 GstVideoOverlayRectangle objects are kept around (cached).
28660 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28662 * gst-libs/gst/vaapi/gstvaapicontext.c:
28663 overlay: fix support for global-alpha.
28664 Fix support for global-alpha subpictures. The previous changes brought
28665 the ability to check for GstVideoOverlayRectangle changes by comparing
28666 the underlying pixel buffer pointers. If sequence number and pixel data
28667 did not change, then this is an indication that only the global-alpha
28668 value changed. Now, try to update the underlying VA subpicture global-alpha
28670 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28672 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28674 * gst-libs/gst/vaapi/gstvaapicontext.c:
28675 overlay: detect render-rect changes.
28676 Don't re-upload VA subpicture if only the render rectangle changed.
28677 Rather deassociate the subpicture and re-associate it with the new
28680 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28682 * gst-libs/gst/vaapi/gstvaapicontext.c:
28683 overlay: fix check for pixels buffer change.
28684 A GstVideoOverlayRectangle is created whenever the underlying pixels data
28685 change. However, when global-alpha is supported, it is possible to re-use
28686 the same GstVideoOverlayRectangle but with a change to the global-alpha
28687 value. This process causes a change of sequence number, so we can no longer
28689 Still, if sequence numbers did not change, then there was no change in
28690 global-alpha either. So, we need a way to compare the underlying GstBuffer
28691 pointers. There is no API to retrieve the original pixels buffer from
28692 a GstVideoOverlayRectangle. So, we use the following heuristics:
28693 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
28694 format flags from which the GstVideoOverlayRectangle was created. This
28695 will work if there was no prior consumer of the GstVideoOverlayRectangle
28696 with alternate (non-"native") format flags.
28697 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
28698 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
28699 with flags that match the subpicture. This is needed to cope with
28700 platforms that don't support global-alpha in HW, so the gst-video
28701 layer takes care of that and fixes this up with a possibly new
28702 GstBuffer, and hence pixels data (or) in-place by caching the current
28703 global-alpha value applied. So we have to determine the rectangle
28704 was previously used, based on what previous flags were used to
28705 retrieve the ARGB pixels buffer.
28707 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28709 * gst-libs/gst/vaapi/gstvaapicontext.c:
28710 overlay: optimize cache at the GstVideoOverlayRectangle level.
28711 We previously assumed that an overlay composition changed if the number
28712 of overlay rectangles in there actually changed, or that the rectangle
28713 was updated, and thus its seqnum was also updated.
28714 Now, we can cope with cases where the GstVideoOverlayComposition grew
28715 by one or a few more overlay rectangles, and the initial overlay rectangles
28718 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28720 * gst-libs/gst/vaapi/gstvaapicontext.c:
28721 overlay: simplify caching of GstVideoOverlayComposition objects.
28722 Create the GPtrArray once in the _init() function and destroy it only
28723 in the _finalize() function. Then use overlay_clear() to remove all
28724 subpicture associations for intermediate updates, don't recreate the
28726 Make GstVaapiOverlayRectangle a reference counted object. Also make
28727 sure that overlay_rectangle_new() actually creates and associates the
28730 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28732 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28733 * gst-libs/gst/vaapi/gstvaapiutils.c:
28734 * gst-libs/gst/vaapi/gstvaapiutils.h:
28735 overlay: add support for global-alpha.
28736 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
28737 the same code path could also work for premultiplied-alpha but this
28739 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28741 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28743 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28744 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28745 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28746 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28747 * gst-libs/gst/vaapi/gstvaapisurface.c:
28749 * tests/test-subpicture.c:
28750 subpicture: add support for global-alpha.
28751 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
28752 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
28753 to address this feature.
28754 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28756 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28758 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28759 * gst-libs/gst/vaapi/gstvaapiutils.c:
28760 * gst-libs/gst/vaapi/gstvaapiutils.h:
28761 subpicture: add premultiplied-alpha and global-alpha feature flags.
28762 Add premultiplied-alpha and global-alpha feature flags, along with converters
28763 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
28764 also necessary for GstVideoOverlayComposition API.
28766 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28768 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28769 display: allow image/subpicture formats with additional flags.
28770 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
28771 and any additional flags needed. Currently, all flags are set to zero.
28773 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28775 * gst-libs/gst/codecparsers/Makefile.am:
28776 * gst-libs/gst/video/Makefile.am:
28777 * tests/Makefile.am:
28778 libs: fix build of submodule wrappers.
28779 Make sure to build codecparsers/ and videoutils/ sources against the
28780 newly generated headers when out-of-source builds are used.
28782 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28785 configure: fix checks for packages installed in non-standard roots.
28787 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28789 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28790 decoder: fix mini object implementation on 64-bit systems.
28791 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
28792 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
28793 Only a gsize can hold all bits of a pointer.
28794 Thanks to Ouping Zhang for spotting this error.
28796 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28798 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28799 mpeg2: optimize scan for the end of the frame.
28800 Heuristic: if the second start-code is available, check whether that
28801 one marks the start of a new frame because e.g. this is a sequence
28802 or picture header. This doesn't save much, since we already cache the
28805 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28807 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28808 mpeg2: optimize scan for start codes.
28809 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
28810 A start code prefix is defined by the following bytes: 00 00 01. Thus,
28811 for any group of 3 bytes (xx yy zz), we have the following possible cases:
28812 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
28813 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
28814 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
28815 4. xx == 00, yy == 00, zz == 1, we have match!
28816 This algorithm requires to peek bytes from the adapter. This increases the
28817 amount of bytes copied to a temporary buffer, but this process is much faster
28818 than scanning for all the bytes and using shift/masks. So, overall, this is
28821 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28823 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28824 mpeg2: drop useless gst_adapter_peek().
28825 Drop useless gst_adapter_peek() since the returned buffer was not used
28826 and this could incur superfluous memcpy().
28828 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28830 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28831 mpeg2: cosmetics: move parse_slice() down.
28833 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28835 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28836 mpeg2: avoid too many allocations of parser info objects.
28837 Move parsing back to decoding step, but keep functions separate for now.
28838 This is needed for future optimizations that may introduce some meta data
28839 for parsed info attached to codec frames.
28841 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28843 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28844 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28845 decoder: decoder units are no longer dynamically allocated objects.
28847 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28849 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28850 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28851 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28852 decoder: optimize pre-allocation of decoder units.
28853 Optimize pre-allocation of decoder units, thus avoiding un-necessary
28854 memory reallocations. The heuristic used is that we could have around
28855 one slice unit per macroblock line.
28857 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28859 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28860 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28861 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28862 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28863 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28864 decoder: use an array of units instead of a single-linked list.
28865 Use a GArray to hold decoder units in a frame, instead of a single-linked
28866 list. This makes 'append' calls faster, but not that much. At least, this
28867 makes things clearer.
28869 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28871 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28872 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28873 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28874 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28875 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28876 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28877 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28878 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28879 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28880 decoder: refactor decoder unit API.
28881 Allocate decoder unit earlier in the main parse() function and don't
28882 delegate this task to derived classes. The ultimate purpose is to get
28883 rid of dynamic allocation of decoder units.
28885 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28887 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28888 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
28889 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
28890 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
28892 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28894 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28895 h264: introduce parser info instead of H.264 specific decoder unit.
28896 Use a new GstVaapiParserInfoH264 data structure instead of deriving
28897 from GstVaapiDecoderUnit for H.264 specific parser information.
28899 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28901 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28902 h264: set default values for some header fields.
28903 The SPS, PPS and slice headers are not fully zero-initialized in the
28904 codecparsers/ library. Rather, the standard upstream behaviour is to
28905 initialize only certain syntax elements with some inferred values if
28906 they are not present in the bitstream.
28907 At the gstreamer-vaapi decoder level, we need to further initialize
28908 certain syntax elements with some sensible default values so that to
28909 not complicate VA drivers that just pass those verbatim to the HW,
28910 and also avoid an memset() of the whole decoder unit.
28911 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28912 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28914 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28916 * ext/codecparsers:
28917 codecparsers: update to gst-vaapi-rebased commit b47983a.
28918 b47983a h264: add inferred value for slice_beta_offset_div2
28920 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28922 * gst/vaapi/gstvaapidecode.c:
28923 * gst/vaapi/gstvaapidownload.c:
28924 * gst/vaapi/gstvaapipluginbuffer.c:
28925 * gst/vaapi/gstvaapipluginbuffer.h:
28926 * gst/vaapi/gstvaapipostproc.c:
28927 * gst/vaapi/gstvaapisink.c:
28928 * gst/vaapi/gstvaapiupload.c:
28929 * gst/vaapi/gstvaapiuploader.c:
28930 plugins: cope with new GstVaapiVideoMeta API.
28931 Update plugin elements with the new GstVaapiVideoMeta API.
28932 This also fixes support for subpictures/overlay because GstVideoDecoder
28933 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
28934 is marked as read-only. However, when comes in the textoverlay element
28935 for example, it checks whether the input buffer is writable. Since that
28936 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
28937 does not preserve the parent field, the generated buffer in textoverlay
28938 is not exploitable because we lost all VA specific information.
28939 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
28940 all information are preserved through gst_buffer_copy() since the latter
28941 does copy metadata (qdata in this case).
28943 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28945 * gst-libs/gst/vaapi/Makefile.am:
28946 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28947 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28948 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28949 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28950 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28951 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28952 videobuffer: wrap video meta into a surface buffer.
28953 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
28954 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
28955 expecting a GstSurfaceBuffer like Clutter.
28957 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28959 * gst-libs/gst/vaapi/Makefile.am:
28960 * gst-libs/gst/vaapi/gstvaapivideometa.c:
28961 * gst-libs/gst/vaapi/gstvaapivideometa.h:
28962 videobuffer: add video meta information.
28963 Add new GstVaapiVideoMeta object that holds all information needed to
28964 convey gst-vaapi specific data as a GstBuffer.
28966 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28968 * gst/vaapi/gstvaapidecode.c:
28969 vaapidecode: fix calculation of the time-out value.
28970 Fix calculation of the time-out value for cases where no VA surface is
28971 available for decoding. In this case, we need to wait until downstream
28972 sink consumed at least one surface. The time-out was miscalculated as
28973 it was always set to <current-time> + one second, which is not suitable
28974 for streams with larger gaps.
28976 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28978 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28979 decoder: always use the calculated presentation timestamp.
28980 Use PTS value computed by the decoder, which could also be derived from
28981 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
28982 the original one was miscomputed or only represented a DTS instead.
28984 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28986 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28987 h264: don't create sub-buffer for slice data.
28989 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28991 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28992 decoder: create new context when encoded resolution changes.
28993 Create a new VA context if the encoded surface size changes because we
28994 need to keep the underlying surface pool until the last one was released.
28995 Otherwise, either of the following cases could have happened: (i) release
28996 a VA surface to an inexistent pool, or (ii) release VA surface to an
28997 existing surface pool, but with different size.
28999 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29001 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29002 mpeg2: don't create sub-buffer for slice data.
29003 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
29004 frame input buffer data. This is possible because the codec frame is valid
29005 until end_frame() where we submit the VA buffers for decoding. Anyway, the
29006 slice data buffer is copied into the VA buffer when it is created.
29008 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29010 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29011 mpeg2: minor clean-ups.
29012 Drop explicit initialization of most fields that are implicitly set to
29013 zero. Remove some useless checks for NULL pointers.
29015 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29017 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29018 mpeg2: optimize scan for the second start code.
29019 Optimize scan for the second start code, on the next parse() call so that
29020 to avoid scanning again earlier bytes where we didn't find any start code.
29022 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29024 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29025 mpeg2: use sequence_display_extension() to compute PAR.
29026 Also compute pixel-aspect-ratio from sequence_display_extension(),
29027 should it exist in the bitstream.
29029 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29031 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29032 mpeg2: handle sequence_display_extension().
29034 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29036 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29037 mpeg2: implement {start,end}_frame() hooks.
29038 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
29039 that to create new VA context earlier and submit VA pictures to the
29040 HW for decoding as soon as possible. i.e. don't wait for the next
29041 frame to start decoding the previous one.
29043 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29045 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29046 mpeg2: parse slice() header earlier.
29047 Parse slice() header and first macroblock position earlier in _parse()
29048 function instead of waiting for the _decode() stage. This doesn't change
29049 anything but readability.
29051 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29053 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29054 mpeg2: add codec specific decoder unit.
29055 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
29056 GstMpegVideoPacket and additional parsed header info. Besides, we now
29057 parse as early as in the _parse() function so that to avoid un-necessary
29058 creation of sub-buffers in _decode() for video packets that are not slices.
29060 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29062 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29063 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
29064 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
29065 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
29066 decoder: introduce lists of units to decode before/after frame.
29067 Theory of operations: all units marked as "slice" are moved to the "units"
29068 list. Since this list only contains slice data units, the prev_slice pointer
29069 was removed. Besides, we now maintain two extra lists of units to be decoded
29070 before or after slice data units.
29071 In particular, all units in the "pre_units" list will be decoded before
29072 GstVaapiDecoder::start_frame() is called and units in the "post_units"
29073 list will be decoded after GstVaapiDecoder::end_frame() is called.
29075 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29077 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29078 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29079 decoder: drop useless checks for codec objects.
29080 Codec objects are used internally only and they are bound to be created
29081 with a valid GstVaapiDecoder object.
29083 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29085 * gst/vaapi/gstvaapidecode.c:
29086 vaapidecode: use GST_ERROR to print error messages.
29088 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29090 * gst/vaapi/gstvaapidecode.c:
29091 vaapidecode: avoid double release of frame on error.
29092 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
29093 was already called before and it returned an error. In that case, we were
29094 releasing the frame again, thus leading to a "double-free" condition.
29096 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29103 * gst-libs/gst/Makefile.am:
29104 * gst-libs/gst/vaapi/Makefile.am:
29105 * gst-libs/gst/video/Makefile.am:
29106 * gst/vaapi/Makefile.am:
29107 Add videoutils submodule for GstVideoDecoder APIs.
29109 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29112 configure: check for GstVideoDecoder API.
29113 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
29114 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
29115 parties may either use upstream git 0.10 branch or backport the necessary support
29116 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
29118 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29120 * docs/reference/libs/libs.core.types:
29121 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
29122 GstVaapiSurfaceProxy is no longer based on the GType system.
29124 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29126 * docs/reference/libs/libs-sections.txt:
29127 docs: fix entries for GstVaapiSurfaceProxy.
29129 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29134 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29137 * gst-libs/gst/vaapi/Makefile.am:
29138 Bump library major version.
29139 Increase library major so that to cope with API/ABI incompatible changes
29140 since 0.4.x series and avoid user issues.
29142 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29144 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29145 surfaceproxy: minor clean-ups.
29147 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29149 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29150 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29151 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29152 surfaceproxy: drop accessors to obsolete attributes.
29153 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
29154 VA surface. i.e. drop any other attribute like timestamp, duration,
29155 interlaced or top-field-first.
29157 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29159 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29160 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29161 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29162 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29163 * gst/vaapi/gstvaapidecode.c:
29164 decoder: maintain decoded frames as GstVideoCodecFrame objects.
29165 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
29166 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
29167 the strict minimum: a context and a surface.
29169 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29171 * gst/vaapi/gstvaapidecode.c:
29172 vaapidecode: output all decoded frames as soon as possible.
29173 Make sure to push all decoded frames downstream as soon as possible.
29174 This makes sure we don't need to wait for a new frame to be ready to
29175 be decoded before receiving new decoded frames.
29176 This also separates the decode process and the output process. The latter
29177 could be moved to a specific GstTask later on.
29179 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29181 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29182 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29183 decoder: add gst_vaapi_decoder_get_frame() API.
29184 Add new gst_vaapi_decoder_get_frame() function meant to be used with
29185 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
29186 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
29187 as the user-data object.
29189 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29191 * gst/vaapi/gstvaapipostproc.c:
29192 vaapipostproc: use GstBuffer flags for TFF.
29193 Determine whether the buffer represents the top-field only by checking for
29194 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
29195 flag. Also trust "interlaced" caps to determine whether the input frame
29196 is interleaved or not.
29198 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29200 * gst/vaapi/gstvaapipostproc.c:
29201 vaapipostproc: handle video sub-buffers.
29202 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
29203 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
29205 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29207 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29208 h264: optimize initialization process of decoder units.
29209 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
29210 The latter don't require zero-initialization since the codecparsers/ lib
29211 will do so for key variables already. This is not a great value per se but
29212 at least it makes it possible to check whether the default initialization
29213 decisions made in the codecparsers/ lib were right or not.
29214 This can be reverted if this exposes too many issues.
29216 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29218 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29219 h264: minor clean-ups.
29220 Drop explicit initialization of most fields that are implicitly set to
29221 zero. Drop helper macros for casting to GstVaapiPictureH264 or
29222 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
29224 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29226 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29227 h264: drop GstVaapiSliceH264 object.
29228 Use standard GstVaapiSlice object from now on since we already have
29229 parsed and recorded the slice headers (GstH264SliceHdr decode units).
29231 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29233 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29234 h264: detect new pictures from decode-units.
29235 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
29236 of assuming frame boundaries when first_mb_in_slice is zero.
29238 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29240 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29241 h264: implement {start,end}_frame() hooks.
29242 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
29243 that to create new VA context earlier and submit VA pictures to the
29244 HW for decoding as soon as possible. i.e. don't wait for the next
29245 frame to start decoding the previous one.
29247 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29249 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29250 h264: optimize scan for the second start code.
29251 Optimize scan for the second start code, on the next parse() call so that
29252 to avoid scanning again earlier bytes where we didn't find any start code.
29254 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29256 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29257 h264: add codec specific decoder unit.
29258 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
29259 NAL unit header (GstH264NalUnit) and additional parsed header info.
29260 Besides, we now parse headers as early as in the _parse() function so
29261 that to avoid un-necessary creation of sub-buffers in _decode() for
29262 NAL units that are not slices.
29263 This is a performance win by ~+1.1% only.
29265 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29267 * gst/vaapi/gstvaapisink.c:
29268 vaapisink: handle sub video-buffers.
29269 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
29270 for non raw YUV cases. Make sure vaapisink now understands those buffers.
29272 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29274 * gst/vaapi/gstvaapidecode.c:
29275 vaapidecode: use gst_vaapi_decoder_get_codec_state().
29276 Directly use the GstVideoCodecState associated with the VA decoder
29277 instead of parsing caps again.
29278 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29279 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29281 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29283 * gst/vaapi/gstvaapidecode.c:
29284 vaapidecode: use more standard helpers.
29285 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
29288 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29290 * gst/vaapi/gstvaapidecode.c:
29291 * gst/vaapi/gstvaapidecode.h:
29292 vaapidecode: move to GstVideoDecoder base class.
29293 Make vaapidecode derive from the standard GstVideoDecoder base element
29294 class. This simplifies the code to the strict minimum for the decoder
29295 element and makes it easier to port to GStreamer 1.x API.
29296 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29297 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29299 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29301 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29302 jpeg: initial port to new GstVaapiDecoder API
29304 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29306 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29307 vc1: initial port to new GstVaapiDecoder API
29309 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29311 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29312 h264: initial port to new GstVaapiDecoder API
29314 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29316 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29317 mpeg4: initial port to new GstVaapiDecoder API
29319 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29321 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29322 mpeg2: initial port to new GstVaapiDecoder API.
29324 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29326 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29327 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29328 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29329 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29330 * gst-libs/gst/vaapi/gstvaapiprofile.c:
29331 * gst-libs/gst/vaapi/gstvaapiprofile.h:
29332 decoder: use GstVideoCodecState.
29333 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
29334 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
29335 it possible to drop picture size (width, height) information, framerate
29336 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
29337 and interlace mode (is_interlaced field).
29338 This is a new API with backwards compatibility maintained. In particular,
29339 gst_vaapi_decoder_get_caps() is still available.
29340 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29341 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29343 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29345 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29346 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29347 * tests/test-decode.c:
29348 * tests/test-subpicture.c:
29349 decoder: update gst_vaapi_decoder_get_surface() semantics.
29350 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
29351 API. That is, return a GstVaapiDecoderStatus and the decoded surface
29352 as a handle to GstVaapiSurfaceProxy in parameter.
29353 This is an API/ABI change.
29355 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29357 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29358 decoder: use standard helper functions.
29359 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
29360 whenever necessary.
29362 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29364 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29365 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29366 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29367 decoder: expose new parse/decode API.
29368 Introduce new decoding process whereby a GstVideoCodecFrame is created
29369 first. Next, input stream buffers are accumulated into a GstAdapter,
29370 that is then passed to the _parse() function. The GstVaapiDecoder object
29371 accumulates all parsed units and when a complete frame or field is
29372 detected, that GstVideoCodecFrame is passed to the _decode() function.
29373 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
29374 process was successful.
29376 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29378 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29379 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29380 decoder: add {start,end}_frame() hooks.
29381 The start_frame() hook is called prior to traversing all decode-units
29382 for decoding. The unit argument represents the first slice in the frame.
29383 Some codecs (e.g. H.264) need to wait for the first slice in order to
29384 determine the actual VA context parameters.
29386 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29388 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29389 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29390 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29391 decoder: add new GstVaapiDecoder API.
29392 Split decoding process into two steps: (i) parse incoming bitstreams
29393 into simple decoder-units until the frame or field is complete; and
29394 (ii) decode the whole frame or field at once.
29395 This is an ABI change.
29397 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29399 * gst-libs/gst/vaapi/Makefile.am:
29400 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
29401 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
29402 decoder: add new "decoder-frame" object.
29403 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
29404 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
29405 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
29406 as the user-data member element.
29407 This is a libgstvaapi internal object.
29409 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29411 * gst-libs/gst/vaapi/Makefile.am:
29412 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
29413 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
29414 decoder: add new "decoder-unit" object.
29415 Introduce GstVaapiDecoderUnit which represents a fragment of the source
29416 stream to be decoded. For instance, a decode-unit will be a NAL unit for
29417 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
29419 This is a libgstvaapi internal object.
29421 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29423 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29424 Port GstVaapiFrameStore to GstVaapiMiniObject.
29426 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29428 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29429 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
29430 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29431 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29432 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29433 Port codec objects to GstVaapiMiniObject.
29435 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29437 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29438 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29439 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29440 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29441 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29442 * gst/vaapi/gstvaapidecode.c:
29443 * gst/vaapi/gstvaapipluginbuffer.c:
29444 * tests/test-decode.c:
29445 * tests/test-subpicture.c:
29446 surfaceproxy: port to GstVaapiMiniObject.
29447 GstVaapiSurfaceProxy does not use any particular functionality from
29448 GObject. Actually, it only needs a basic object type with reference
29450 This is an API and ABI change.
29452 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29454 * gst-libs/gst/vaapi/Makefile.am:
29455 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
29456 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
29457 Add GstVaapiMiniObject.
29458 Introduce a new reference counted object that is very lightweight and
29459 also provides flags and user-data functionalities. Initialization and
29460 finalization times are reduced by up to a factor 5x vs GstMiniObject
29461 from GStreamer 0.10 stack.
29462 This is a libgstvaapi internal object.
29464 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29466 * tests/Makefile.am:
29467 * tests/test-decode.c:
29468 * tests/test-mpeg4.c:
29469 * tests/test-mpeg4.h:
29470 tests: add test for MPEG-4:2 decoding.
29472 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29474 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29475 h264: initialize VA context before allocating the first slice.
29476 Fix decode_slice() to ensure a VA context exists prior to creating a
29477 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
29478 context ID. i.e. the latter was not initialized, thus causing failures
29479 on Cedar Trail for example.
29481 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
29484 configure: install plugin elements in GST_PLUGIN_PATH, if set.
29485 If GST_PLUGIN_PATH environment variable exists and points to a valid
29486 directory, then use it as the system installation path for gst-vaapi
29488 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29490 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29493 configure: downgrade glib required version to 2.28.
29495 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29497 * gst-libs/gst/vaapi/glibcompat.h:
29498 * gst/vaapi/gstvaapi.c:
29499 libs: fix compatibility with glib 2.28.
29500 Always prefer non deprecated APIs by default and provide compatibility
29501 glue for older glib versions when necessary.
29503 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29505 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29506 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
29507 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29508 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29509 libs: use glib >= 2.32 semantics for mutexes.
29510 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
29511 and termination. Basically, the new mutex objects can be used as static
29512 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
29514 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29516 * gst-libs/gst/vaapi/Makefile.am:
29517 libs: only export gst_vaapi_*() symbols.
29518 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
29519 library and the system-provided one, mainly used by videoparses/. Now,
29520 only symbols with the gst_vaapi_* prefix will be exported, if they are
29521 not marked as "hidden" to libgstvaapi.
29523 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29525 * gst/vaapi/gstvaapiuploader.c:
29526 vaapiupload: reset direct-rendering to zero when changing caps.
29527 Make sure to reset direct-rendering flag to zero when caps are changed,
29528 and only derive it to one when the next checks succeed.
29530 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29532 * gst/vaapi/gstvaapiupload.c:
29533 vaapiupload: fix sink caps to report the supported set of YUV caps.
29534 Try to allocate the GstVaapiUploader helper object prior to listing the
29535 supported image formats. Otherwise, only a single generic caps is output
29536 with no particular pixel format referenced in there.
29538 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
29540 * gst/vaapi/gstvaapiupload.c:
29541 * gst/vaapi/gstvaapiupload.h:
29542 vaapiupload: use new GstVaapiUploader helper.
29543 Use GstVaapiUploader helper that automatically handles direct rendering
29544 mode, thus making the "direct-rendering" property obsolete and hence it
29546 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
29547 really well supported and it could actually trigger degraded performance.
29548 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29550 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29552 * gst/vaapi/gstvaapisink.c:
29553 * gst/vaapi/gstvaapiuploader.c:
29554 * gst/vaapi/gstvaapiuploader.h:
29555 vaapisink: compute and expose the supported set of YUV caps.
29556 Make vaapisink expose only the set of supported caps for raw YUV buffers.
29557 Add gst_vaapi_uploader_get_caps() helper function to determine the set
29558 of supported YUV caps as source (for images). This function actually
29559 tries to zero and upload each image to a 64x64 test surface. Of course,
29560 this relies on VA drivers to not claim success if vaPutImage() is not
29561 correctly supported.
29563 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29566 * gst/vaapi/Makefile.am:
29567 * gst/vaapi/gstvaapisink.c:
29568 * gst/vaapi/gstvaapisink.h:
29569 * gst/vaapi/gstvaapiuploader.c:
29570 * gst/vaapi/gstvaapiuploader.h:
29571 vaapisink: add support for raw YUV buffers.
29572 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
29573 It is up to the caller to negotiate source caps (for images) and output
29574 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
29575 to help decide between the creation of a GstVaapiVideoBuffer or a regular
29576 GstBuffer on sink pads.
29577 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
29578 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29580 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29582 * gst-libs/gst/vaapi/gstvaapiimage.c:
29583 image: fix GstVaapiImage map and unmap.
29584 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
29585 structure correctly filled in if the image was already mapped.
29586 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
29587 was already unmapped.
29589 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
29592 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29593 videobuffer: fix memory leak for surface and image.
29594 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
29595 thus resulting on actual memory leak of GstVaapiImage when using them
29596 for downloads/uploads from VA surfaces and more specifically surfaces
29597 when the pipeline is shutdown. i.e. vaTerminate() was never called
29598 because the resources were not unreferenced, and thus not deallocated
29600 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29602 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29607 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29609 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29610 h264: fix picture size in macroblocks.
29611 The picture size signalled by sps->{width,height} is the actual size with
29612 cropping applied, not the original size derived from pic_width_in_mbs_minus1
29613 and pic_height_in_map_units_minus1. VA driver expects that original size,
29615 There is another issue pending: frame cropping information needs to be
29618 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29620 * gst-libs/gst/codecparsers/Makefile.am:
29621 codecparsers: always build parserutils first.
29622 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
29623 This is needed since that's the common dependency for actual codec
29624 parsers (gstvc1parser.c for instance).
29626 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29628 * gst-libs/gst/codecparsers/Makefile.am:
29629 codecparsers: always build the VC-1 parser library.
29630 ... this is useful to make sure pixel-aspect-ratio and framerate
29631 information are correctly parsed since we have no means to detect
29632 that at configure time.
29634 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29637 * gst-libs/gst/codecparsers/Makefile.am:
29638 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29639 mpeg2: fix PAR calculation from commit bd11bae.
29640 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
29641 correct PAR values. While doing so, require a newer version of the
29642 bitstream parser library.
29643 Note: it may be necessary to also parse the Sequence_Display_Extension()
29645 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29646 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29648 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29650 * gst-libs/gst/vaapi/Makefile.am:
29651 Fix build with the GNU gold linker.
29652 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
29653 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
29655 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
29658 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29659 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29660 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29661 wayland: port to 1.0 version of the protocol.
29662 This patch updates to relect the 1.0 version of the protocol. The main
29663 changes are the switch to wl_registry for global object notifications
29664 and the way that the event queue and file descriptor is processed.
29665 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29667 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29669 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29670 h264: fix incorrect integration of previous commit (4d31e1e).
29671 git am got confused somehow, though the end result doesn't change at
29672 all since we require both SPS and PPS to be parsed prior to decoding
29675 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29677 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29678 h264: start decoding slices after first SPS/PPS activation.
29679 Only start decoding slices when at least one SPS and PPS got activated.
29680 This fixes cases when a source represents a substream of another stream
29681 and no SPS and PPS was inserted before the first slice of the generated
29684 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29686 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29687 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
29688 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
29689 contain up to 32 fields but VA ReferenceFrames[] array expects up to
29690 16 reference frames, thus including both fields.
29692 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29694 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29695 h264: fix interlaced stream decoding with MMCO.
29696 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
29697 is equal to 1, i.e. when memory management control operations are used. In
29698 particular, when field_pic_flag is set to 0, the new reference flags shall
29699 be applied to both fields.
29701 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29703 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29704 h264: add initial support for interlaced streams.
29705 Decoded frames are only output when they are complete, i.e. when both
29706 fields are decoded. This also means that the "interlaced" caps is not
29707 propagated to vaapipostproc or vaapisink elements. Another limitation
29708 is that interlaced bitstreams with MMCO are unlikely to work.
29710 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29712 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29713 h264: split remove_reference_at() into finer units.
29714 Split remove_reference_at() into a function that actually removes the
29715 specified entry from the short-term or long-term reference picture array,
29716 and a function that sets reference flags to the desired value, possibly
29717 zero. The latters marks the picture as "unused for reference".
29719 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29721 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29722 decoder: fix gst_vaapi_picture_new_field() object type.
29723 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
29724 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
29725 shall generate a GstVaapiPictureH264 object.
29727 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29729 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29730 h264: add picture structure for reference picture marking process.
29731 Introduce new `structure' field to the H.264 specific picture structure
29732 so that to simplify the reference picture marking process. That local
29733 picture structure is derived from the original picture structure, as
29734 defined by the syntax elements field_pic_flag and bottom_field_flag.
29736 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29738 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29739 h264: introduce new frame store structure.
29740 The frame store represents a Decoded Picture Buffer entry, which can
29741 hold up to two fields. So far, the frame store is only used to hold
29744 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29746 * ext/codecparsers:
29747 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
29748 73d6aab h264: fix rbsp_more_data() implementation
29749 25d04cf h264: fix error code for invalid size parsed in SPS
29750 84798e5 fix FSF address
29752 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29754 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29755 h264: minor clean-ups.
29756 Move DPB flush up if the current picture to decode is an IDR. Besides,
29757 don't bother to check for IDR pictures in dpb_add() function since an
29758 explicit DPB flush was already performed in this case.
29760 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29762 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29763 h264: simplify reference picture marking process.
29764 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
29765 of maintaining them separately. This avoids refs/unrefs while making it
29766 possible to generate the list based on the actual picture structure.
29767 This also ensures that the list of generated ReferenceFrames[] actually
29768 matches what reference frames are available in the DPB. i.e. short_ref[]
29769 and long_ref[] entries are implied from the DPB, so there is no risk of
29770 having "dangling" references.
29772 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29774 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29775 h264: introduce per-field POC in GstVaapiPictureH264.
29776 Use the POC member available in the GstVaapiPicture base class and
29777 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
29778 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
29779 initialized to INT_MAX, so that to simplify picture POC calculation
29780 for non frame pictures.
29782 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29784 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29785 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
29786 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
29787 reference bits, thus simplifying the reference picture marking process
29788 to only track a single set of reference flags. Also introduce a new
29789 long_term_frame_idx member.
29791 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29793 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29794 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
29796 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29798 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29799 h264: fill in GstVaapiPicture structure.
29800 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
29802 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29804 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29805 h264: add vaapi_fill_picture() helper.
29806 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
29807 to VAPictureH264 structure. This is preparatory work to get rid of the
29808 local VAPictureH264 member in GstVaapiPictureH264.
29810 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29812 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29813 h264: fix activation order of picture and sequence parameters.
29814 Delay ensure_context() until we actually need a VA context for allocating
29815 new VA surfaces, and then GstVaapiPictures, but also when a real activation
29816 of a new picture parameter set occurs, thus also implying an activation
29817 of the related sequence parameter set.
29818 The most important thing was to drop the global pps and sps pointers since
29819 they may not have matched the currently activated picture parameter or
29820 sequence parameter sets at the specified decode point.
29821 Anoter positive side-effect is that this cleans up all occurrences of
29822 decode_current_picture() to only keep those useful in decode_picture(),
29823 before a new picture is allocated, or in decode_sequence_end() when
29824 an end-of-stream or end-of-sequence condition occurred.
29826 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29828 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29829 h264: fix scaling list generation.
29830 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
29831 array was partially copied to the VAIQMatrixBufferH264. While we are
29832 at it, also improve bounds checking and avoid copying 8x8 scaling
29833 lists if transform_8x8_mode_flag is set to 0.
29835 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29837 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29838 h264: fix detection of picture boundaries.
29839 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
29840 unit of a primary coded picture.
29842 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29844 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29845 h264: optimize handling of scaling lists.
29846 Don't copy scaling lists twice to an intermediate state. Rather, directly
29847 use the scaling lists from GstH264PPS since they would match those provided
29848 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
29849 available in the bitstream.
29851 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29853 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29854 h264: simplify code when MMCO is 5.
29855 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
29856 is now updated accordingly to the standard. Besides, MMCO = 5 specific
29857 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
29859 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29861 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29862 h264: fix MMCO-based reference picture marking process.
29863 Fix adaptive memory control decoded reference picture marking process
29864 implementation for operations 2 to 6, thus also fixing support for
29865 long-term reference pictures.
29867 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29869 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29870 h264: move MMCO handlers out of the loop (cosmetics).
29871 This change only splits each individual MMCO handler into several functions
29872 dedicated for each operation. This is needed to perform further work later
29875 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29878 debian: fix make dist for packaging.
29879 bzip2 tarballs are now used, so update the deb.upstream dependencies
29880 to include dist-bzip2 instead of plain old dist, and use the correct
29881 tar extract options to handle that format.
29883 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29886 configure: generate bzip2 tarballs in ustar format by default.
29888 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29891 configure: bump glib required version to 2.31.2.
29892 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
29893 rather than g_mutex_new() and g_cond_new() respectively.
29895 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
29897 * gst/vaapi/gstvaapidecode.c:
29898 * gst/vaapi/gstvaapidecode.h:
29899 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
29900 The use of heap allocated GMutex/GCond is deprecated. Instead place them
29901 inside the structure they are locking.
29902 These changes switch to use g_mutex_init/g_cond_init rather than the heap
29903 allocation functions.
29904 Because we cannot test for a NULL pointer for the GMutex/GCond we must
29905 initialise inside the GObject _init function and clear inside the _finalize
29906 which is guaranteed to only be called once and after the object is no longer
29909 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29911 * gst/vaapi/gstvaapidecode.c:
29912 vaapidecode: fix compiler warnings.
29913 Don't care of the return value for gst_vaapi_decoder_put_buffer()
29914 during destruction of the element. Don't print out (uninitialised)
29915 error code when allocation of video buffer failed.
29917 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29919 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29920 h264: add flag to compile with strict DPB ordering mode.
29921 Allow build with strict DPB ordering mode whereby evicted entries
29922 are replaced by the next entries, in order instead of optimizing
29923 it away with the last entry in the DPB.
29924 This is only useful for debugging purpose, against a reference SW
29925 decoder for example.
29927 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29929 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29930 h264: drop extra code covered by built-in codecparsers.
29931 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
29932 a newer version of codecparsers/ are used if the system provided one is
29933 now recent enough to have those required extensions.
29935 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29937 * gst-libs/gst/codecparsers/Makefile.am:
29938 codecparsers: fix generation of symlinks.
29939 Try to improve dependencies while generating symlinks to externally
29940 maintained copy of codecparsers (derived from upstream git master
29943 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29945 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29946 vc1: use framerate information from bitstream parser.
29948 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29950 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29951 vc1: use pixel-aspect-ratio from bitstream parser.
29952 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29953 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29955 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29957 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29958 mpeg2: use pixel-aspec-ratio information from bitstream parser.
29959 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29960 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29962 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29965 * gst-libs/gst/codecparsers/Makefile.am:
29966 codecparsers: h264: use submodule sources.
29967 Use newer sources from the codecparsers/ submodule for
29968 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
29969 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
29971 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29975 * gst-libs/gst/codecparsers/Makefile.am:
29976 * gst-libs/gst/codecparsers/gstjpegparser.c:
29977 * gst-libs/gst/codecparsers/gstjpegparser.h:
29978 * gst-libs/gst/vaapi/Makefile.am:
29979 codecparsers: jpeg: use submodule sources.
29981 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29988 * ext/codecparsers:
29989 Add codecparsers submodule.
29991 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29994 .gitignore: updates.
29996 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29999 autogen: fix check for gtkdocize and autoreconf.
30000 If gtkdocize or autoreconf programs were not found, then the autogen.sh
30001 script would fail to report that correctly because test -z was not passed
30002 any argument (empty string "" in this case).
30004 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
30006 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30007 h264: use pixel-aspect-ratio from SPS header.
30008 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
30009 from the sequence headers.
30010 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
30011 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30013 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30015 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30016 h264: add decode_nalu() helper function.
30017 Split decode_buffer() into the core infrastructure that determines
30018 the NAL units contained in the adapter and the actual function that
30019 decodes the NAL unit.
30021 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30023 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30024 h264: fix end-of-stream conditions (flush).
30025 Decode pending data in the adapter prior to processing the actual
30026 code for end-of-stream.
30028 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30030 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30031 mpeg2: add decode_packet() helper function.
30032 Split decode_buffer() into the core infrastructure that determines
30033 the packets contained in the adapter and the actual function that
30034 decodes the packet data.
30036 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30038 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30039 mpeg2: fix end-of-stream conditions (flush).
30040 Decode pending data in the adapter prior to processing the actual
30041 code for end-of-stream. Initial code from Feng Yuan.
30043 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30045 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30046 mpeg2: fix memory leak of empty packets.
30047 Fix memory leakage of empty packets, i.e. packets that only contain
30048 the start code prefix. In particular, free empty user-data packets.
30049 Besides, the codec parser will already fail gracefully if the packet
30050 to parse does not have the minimum required size. So, we can also
30051 completely drop the block of code that used to handle packets of size 4
30052 (including the start code).
30054 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30056 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30057 mpeg2: fix return value for "no-data" conditions.
30058 Fix return value when the second scan for start code fails. This means
30059 there is not enough data to determine the full extents of the current
30060 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
30061 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
30063 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30065 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30066 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
30067 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
30068 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
30069 or with a size equals to zero. In this case, that buffer is simply
30070 skipped and the function returns TRUE. A NULL buffer argument still
30071 marks the end-of-stream.
30073 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30075 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30076 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30077 decoder: drop unused functions.
30079 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
30081 * gst/vaapi/gstvaapidecode.c:
30082 vaapidecode: flush buffers when receiving EOS.
30083 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30085 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30087 * debian.upstream/Makefile.am:
30088 debian: fix make dist for packaging.
30090 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30092 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30093 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30094 wayland: cosmetics (remove tabs).
30096 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
30098 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30099 wayland: add support for windowed mode.
30100 Rather than always making the surface fullscreen instead implement the
30101 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
30102 fullscreen on not depending on that.
30103 Reviewed-by: Joe Konno <joe.konno@intel.com>
30104 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30106 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30109 Bump version for development.
30111 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30115 Fix and document build dependencies better.
30117 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30119 * debian.upstream/control.in:
30120 debian: fix GStreamer build dependencies.
30122 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30125 * debian.upstream/control.in:
30126 debian: fix Wayland build dependencies.
30128 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30130 * debian.upstream/control.in:
30131 debian: fix conditional build of packages.
30132 Make it still possible to build package even if one of the build dependencies
30133 for a specific video backend is not available.
30135 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30137 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30138 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30139 utils: drop unused GLX helpers.
30140 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
30141 extensions since they are not used throughout gstreamer-vaapi.
30143 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30145 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30146 utils: fix build with <GL/glext.h> version >= 85.
30147 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
30148 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
30149 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
30150 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
30151 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
30152 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
30153 newer versions of the <GL/glext.h> header.
30155 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30158 configure: update VA-API version requirements.
30159 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
30161 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30163 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30164 h264: review and report errors accordingly.
30165 Use GST_ERROR() to report real errors instead of hiding them into
30168 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30170 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30171 h264: exclusively use GstAdapter, drop sub-buffer hack.
30172 Maintaining the sub-buffer is rather suboptimal especially since we
30173 were also maintaining a GstAdapter. Now, we only use the GstAdapter
30174 thus requiring minor extra parsing when receiving avcC buffers.
30176 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30181 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30186 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30188 * debian.upstream/gstreamer-vaapi.install.in:
30189 debian: fix packaging on recent Ubuntu platforms.
30190 Use explicit GStreamer plugins path.
30192 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30194 * docs/reference/libs/libs-docs.xml.in:
30195 * docs/reference/libs/libs.core.types:
30196 docs: fix build for make dist.
30198 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
30200 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30201 wayland: set opaque region for YUV surface.
30202 This allows the compositor to optimize redraws and cull away changes
30203 obscured by the video surface.
30204 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30206 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30209 configure: fix check for libva-glx and libva-drm.
30211 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30213 * gst-libs/gst/vaapi/glibcompat.h:
30214 glibcompat: add replacement for g_cond_wait_until().
30216 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30218 * gst/vaapi/gstvaapidecode.c:
30219 * gst/vaapi/gstvaapidownload.c:
30220 * gst/vaapi/gstvaapipostproc.c:
30221 * gst/vaapi/gstvaapisink.c:
30222 * gst/vaapi/gstvaapiupload.c:
30223 plugins: include "sysdeps.h" instead of "config.h".
30225 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30227 * gst-libs/gst/codecparsers/gstjpegparser.c:
30228 codecparsers: jpeg: add missing includes.
30230 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30232 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30233 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30234 * gst/vaapi/gstvaapidecode.c:
30235 vaapidecode: don't reset decoder if codec type is the same.
30236 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
30237 if the underlying codec type actually changed. This makes it possible
30238 to be more tolerant with certain MPEG-2 streams that get parsed to
30239 form caps that are compatible with the previous state but minor changes
30242 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30244 * gst/vaapi/gstvaapidecode.c:
30245 vaapidecode: simplify codec lookup from caps.
30246 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
30247 the specified caps. Don't globally expose this function since this is
30248 really trivial and only used in the vaapidecode element.
30250 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30252 * gst/vaapi/gstvaapidecode.c:
30253 * gst/vaapi/gstvaapidecode.h:
30254 vaapidecode: improve "no free surface" conditions.
30255 Previously, vaapidecode would wait up to one second until a free surface
30256 is available, or it aborts decoding. Now, vaapidecode waits until the
30257 last decoded surface was to be presented, plus one second. Besides, end
30258 times are now expressed relative to the monotonic clock.
30260 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30262 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30263 * gst/vaapi/gstvaapidecode.c:
30264 decoder: propagate buffer duration downstream.
30266 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30268 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30269 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30270 surfaceproxy: add "duration" property.
30272 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30274 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30275 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30276 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30277 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30278 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30279 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30280 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30281 decoder: cope with new GstVaapiContextInfo based API.
30282 Update decoders to report the maximum number of reference frames to use.
30284 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30286 * gst-libs/gst/vaapi/gstvaapicontext.c:
30287 context: JPEG codec does not need any reference frame.
30289 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30291 * gst-libs/gst/vaapi/gstvaapicontext.c:
30292 * gst-libs/gst/vaapi/gstvaapicontext.h:
30293 context: allow number of reference frames to be set.
30294 Make it possible to specify the maximum number of references to use within
30295 a single VA context. This helps reducing GPU memory allocations to the useful
30296 number of references to be used.
30298 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30300 * gst/vaapi/gstvaapipostproc.c:
30301 vaapipostproc: fix deinterlace-{mode,method} types definition.
30303 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30305 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30306 mpeg4: fix debug info for unsupported profile.
30308 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30310 * gst-libs/gst/vaapi/gstvaapicontext.c:
30311 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30312 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30313 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30314 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30315 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30316 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30317 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30318 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30319 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30320 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30321 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30322 * gst-libs/gst/vaapi/gstvaapiimage.c:
30323 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
30324 * gst-libs/gst/vaapi/gstvaapiobject.c:
30325 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30326 * gst-libs/gst/vaapi/gstvaapisurface.c:
30327 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
30328 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30329 * gst-libs/gst/vaapi/gstvaapitexture.c:
30330 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30331 * gst-libs/gst/vaapi/gstvaapivalue.c:
30332 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30333 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30334 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30335 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30336 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30337 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30338 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
30339 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30340 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30341 libs: fix build in strict ISO C mode.
30343 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30345 * gst/vaapi/gstvaapi.c:
30346 * gst/vaapi/gstvaapidecode.c:
30347 * gst/vaapi/gstvaapidownload.c:
30348 * gst/vaapi/gstvaapipostproc.c:
30349 * gst/vaapi/gstvaapisink.c:
30350 * gst/vaapi/gstvaapiupload.c:
30351 plugins: fix build in strict ISO C mode.
30353 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30355 * pkgconfig/gstreamer-vaapi-glx.pc.in:
30356 * pkgconfig/gstreamer-vaapi-x11.pc.in:
30357 * pkgconfig/gstreamer-vaapi.pc.in:
30358 pkgconfig: fix dependencies and slightly improve description.
30359 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
30360 descriptions with clearer renderer names.
30362 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
30364 * gst/vaapi/gstvaapidecode.c:
30365 vaapidecode: acquire lock only if the mutex exists.
30366 When playback stops the GstVaapiDecode object is reset into a clean
30367 state. However, surfaces may still be referenced by library users and
30368 unreferencing them after the reset triggers an access to an unset mutex.
30369 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30371 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30373 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30374 decoder: drop extraneous return for void function.
30376 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30378 * gst-libs/gst/vaapi/gstvaapiimage.c:
30379 image: don't use (void *) pointer arithmetic.
30381 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
30383 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30384 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30385 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30386 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30387 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30388 * gst-libs/gst/vaapi/gstvaapiprofile.h:
30389 * gst-libs/gst/vaapi/gstvaapisurface.h:
30390 * gst-libs/gst/vaapi/gstvaapitypes.h:
30391 * gst/vaapi/gstvaapipostproc.h:
30392 Do not forward declare enums.
30393 Forward declaring enums is not allowed by the C standard and aborts
30394 compilation if the header file is included in a C++ project.
30395 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30397 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30400 configure: fix check for VA/DRM API.
30402 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30404 * gst/vaapi/gstvaapisink.c:
30405 vaapisink: fix calculation of window size.
30406 If either dimension is out-of-bounds, then scale window to fit the
30407 display size, even if the output is to be rotated. Use the standard
30408 gst_video_sink_center_rect() function to center and scale the window
30409 wrt. the outer (display) bounds.
30411 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
30413 * gst/vaapi/gstvaapisink.c:
30414 * gst/vaapi/gstvaapisink.h:
30415 vaapisink: add video rotation support.
30416 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30418 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30420 * gst/vaapi/gstvaapipluginutil.h:
30421 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
30422 This macro helps swapping variables while maintaining the correct underlying
30423 and primitive type.
30425 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30427 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30428 display: fix display aspect ratio when display is rotated.
30430 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30433 * gst-libs/gst/vaapi/Makefile.am:
30434 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30435 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
30436 display: fix physical display size when display is rotated.
30438 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30440 * gst-libs/gst/vaapi/gstvaapivalue.c:
30441 display: fix GstVaapiRotation enumeration of values.
30443 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30445 * docs/reference/libs/libs-docs.xml.in:
30446 * docs/reference/libs/libs-sections.txt:
30447 * gst-libs/gst/vaapi/Makefile.am:
30448 * gst-libs/gst/vaapi/gstvaapivideosink.c:
30449 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30450 * gst/vaapi/gstvaapidecode.c:
30451 * gst/vaapi/gstvaapidownload.c:
30452 * gst/vaapi/gstvaapipostproc.c:
30453 * gst/vaapi/gstvaapisink.c:
30454 * gst/vaapi/gstvaapiupload.c:
30455 vaapisink: drop obsolete GstVaapiVideoSink interface.
30456 This interface was deprecated since 0.3.x series when the GstVideoContext
30457 interface was added to the main GStreamer APIs.
30459 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30461 * gst/vaapi/gstvaapisink.c:
30462 * gst/vaapi/gstvaapisink.h:
30463 vaapisink: automatically detect overlay rendering mode.
30464 Retain the VA surface until another surface is to be displayed only
30465 if VA display rendering mode is determined to be "overlay" mode.
30467 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30469 * gst/vaapi/gstvaapisink.c:
30470 * gst/vaapi/gstvaapisink.h:
30471 vaapisink: retain VA surface until another one is displayed.
30472 Keep VA surface proxy associated with the surface that is currently
30473 being displayed. This makes sure that surface is not released back
30474 to the pool of surfaces free to use for decoding. This is necessary
30475 with VA driver implementations that support rendering to an overlay
30476 pipe. Otherwise, there could be cases where we are decoding into a
30477 surface that is being displayed, hence some flickering.
30479 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30481 * gst/vaapi/gstvaapisink.h:
30482 vaapisink: fix build with older toolchains.
30483 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
30485 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30487 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30488 display: partially revert 8ebe4d6.
30489 Don't try to fix up the initial values, this could make things worse.
30490 Simply assume the driver does not support the capability in this case.
30492 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30494 * tests/test-display.c:
30495 tests: dump VA display properties.
30497 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30499 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30500 display: fix validation process of properties during discovery.
30501 Some VA drivers (e.g. EMGD) can have completely random values for initial
30502 display attributes. So, try to improve the discovery process to check the
30503 initial display attribute values actually fall within valid bounds. If not,
30504 try to reset those to some sensible values like the default value reported
30505 through vaQueryDisplayAttributes().
30507 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30509 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30510 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30511 display: add color balance properties.
30512 Add support for hue, saturation, brightness and contrast attributes.
30514 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30516 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30517 display: initialize default attribute values.
30518 Ensure the display attribute is actually supported by trying to retrieve
30519 its current value during GstVaapiDisplay creation.
30521 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30523 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30524 display: raise "notify" for property changes.
30526 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30528 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30529 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30530 display: expose display attributes as GObject properties.
30531 Expose VA display "render-mode" and "rotation" attributes as standard
30532 GObject properties.
30534 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30536 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30537 display: install properties in batch.
30538 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
30539 It is useful to maintain properties as GParamSpec so that to be able to raise
30540 "notify" signals by id instead of by name in the future.
30542 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30544 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30545 display: fix gst_vaapi_display_has_property().
30546 Append the "render-mode" and "rotation" properties, should they be supported
30547 by the underlying VA driver.
30549 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
30551 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30552 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30553 * gst-libs/gst/vaapi/gstvaapitypes.h:
30554 * gst-libs/gst/vaapi/gstvaapiutils.c:
30555 * gst-libs/gst/vaapi/gstvaapiutils.h:
30556 * gst-libs/gst/vaapi/gstvaapivalue.c:
30557 * gst-libs/gst/vaapi/gstvaapivalue.h:
30558 display: add support for rotation modes.
30559 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30561 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30563 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30564 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30565 * gst-libs/gst/vaapi/gstvaapitypes.h:
30566 * gst-libs/gst/vaapi/gstvaapivalue.c:
30567 * gst-libs/gst/vaapi/gstvaapivalue.h:
30568 display: add support for rendering modes.
30569 A rendering mode can be "overlay" or "texture"'ed blit.
30570 The former mode implies that a VA surface used for rendering can't be
30571 re-used right away for decoding, so the sink shall make provisions to
30572 retain the associated surface proxy until the next surface is to be
30574 The latter mode implies that the VA surface is implicitly copied to an
30575 intermediate backing store, or back buffer of a frame buffer, so the
30576 associated surface proxy can be disposed right away.
30578 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30580 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30581 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30582 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30583 display: add initial support for display attributes.
30584 The VA display attributes are mapped to properties so that to maintain the
30585 GStreamer terminology. Properties are to be identified by name, but internal
30586 functions are available to lookup the property by the actual VA display
30589 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30591 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30592 jpeg: fix end-of-image (EOI) handler.
30593 decode_current_picture() was converted to return a gboolean instead
30594 of a GstVaapiDecoderStatus, so we were not getting out of the decode
30595 loop as expected, or could cause an error instead.
30596 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30598 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30600 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30601 mpeg2: include start code into VA slice data buffer.
30602 Integrate the start code prefix in the slice data buffer that is submitted
30603 to the hardware. VA-API specifies that slice_data_offset is the offset to
30604 the first byte of slice data. And, for MPEG-2, slice() data begins with
30605 the slice_start_code. Some VA driver implementations (EMGD) expect this.
30607 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
30610 autogen: fix configure script generation when srcdir != builddir.
30611 This patch allows for regenerating the configure script from a build
30612 directory that is not the actual source directory.
30613 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30615 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
30618 configure: use new libtool syntax.
30619 This now requires libtool >= 2.2 to regenerate the configure script.
30620 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30622 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
30624 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30625 decoder: use g_object_notify_by_pspec().
30626 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
30627 avoid a property name lookup. i.e. this makes notifications faster to
30628 the `vaapidecode' element.
30629 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30631 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30633 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30634 wayland: handle de-interlacing flags.
30635 VA/Wayland API was updated to allow flags for bob deinterlacing.
30636 More elaborated filters will require a complete VA/VPP pipeline.
30638 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30640 * gst-libs/gst/codecparsers/gstjpegparser.c:
30641 jpeg: fix default quantization tables.
30642 Two elements in the luminance quantization table were wrong. So,
30643 gst_jpeg_get_default_quantization_tables() now reconstructs tables
30644 in zig-zag order from the standard ones (Tables K.1 and K.2).
30646 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30648 * gst-libs/gst/codecparsers/gstjpegparser.c:
30649 jpeg: compute default Huffman tables.
30650 ... instead of having them pre-calculated. This saves around 1.5 KB
30651 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
30652 to do more work. Though, the client application may have to call that
30653 function at most once, only.
30655 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30657 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30658 display: drop VAProfileNone entries from debug messages.
30660 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
30662 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30663 display: query for supported display attributes.
30664 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30666 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
30668 * gst-libs/gst/vaapi/gstvaapiutils.c:
30669 * gst-libs/gst/vaapi/gstvaapiutils.h:
30670 utils: add string_of_VADisplayAttributeType() helper.
30671 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30673 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30675 * gst/vaapi/gstvaapisink.c:
30676 vaapisink: handle VA/DRM API.
30677 This is not useful in practice but for raw performance evaluation when
30678 the sink is invoked with display=drm sync=false. fakesink could also be
30681 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30683 * gst/vaapi/Makefile.am:
30684 * gst/vaapi/gstvaapipluginutil.c:
30685 plugins: add support for headless pipelines.
30687 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30689 * tests/Makefile.am:
30691 * tests/test-display.c:
30692 * tests/test-windows.c:
30693 tests: add support for headless decoding.
30695 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30699 * debian.upstream/Makefile.am:
30700 * debian.upstream/control.in:
30701 * debian.upstream/libgstvaapi-drm.install.in:
30702 * gst-libs/gst/vaapi/Makefile.am:
30703 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30704 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30705 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30706 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
30707 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
30708 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30709 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
30710 * pkgconfig/Makefile.am:
30711 * pkgconfig/gstreamer-vaapi-drm.pc.in:
30712 Add initial support for VA/DRM.
30714 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30717 * gst-libs/gst/vaapi/Makefile.am:
30718 Fix build without X11 (again).
30719 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
30720 files list wrt. x11, glx and wayland backends.
30722 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30725 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30726 * gst-libs/gst/vaapi/gstvaapicompat.h:
30727 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30728 jpeg: update to the latest VA-API changes (0.32.1+).
30730 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30732 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30733 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30734 * gst/vaapi/gstvaapisink.c:
30735 wayland: implement display ::get_size*() hooks.
30737 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30739 * gst/vaapi/gstvaapipluginutil.c:
30740 plugins: prefer X11 rendering over GLX.
30741 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
30742 for rendering instead of texturing.
30744 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
30746 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30747 wayland: use scale fullscreen method.
30748 This makes the compositor scale the surface to fit and preserves aspect
30750 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30752 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
30754 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30755 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
30756 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30758 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30760 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30761 wayland: fix double disconnect of display.
30763 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30765 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30766 wayland: mangle display name for cache lookups.
30768 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30771 * debian.upstream/Makefile.am:
30772 * debian.upstream/control.in:
30773 * debian.upstream/libgstvaapi-wayland.install.in:
30774 * pkgconfig/Makefile.am:
30775 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
30776 wayland: add packaging files.
30778 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30780 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30781 * gst/vaapi/gstvaapipluginutil.c:
30782 * gst/vaapi/gstvaapisink.c:
30783 * pkgconfig/Makefile.am:
30784 Fix build without X11.
30786 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30788 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30789 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30790 * gst/vaapi/Makefile.am:
30791 * gst/vaapi/gstvaapipluginutil.c:
30792 * gst/vaapi/gstvaapisink.c:
30793 plugins: add support for Wayland.
30795 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30797 * tests/Makefile.am:
30799 * tests/test-display.c:
30800 * tests/test-windows.c:
30801 tests: add support for Wayland.
30803 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30807 * gst-libs/gst/vaapi/Makefile.am:
30808 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30809 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
30810 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30811 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30812 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30813 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
30814 Add initial support for VA/Wayland.
30815 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30817 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30819 * gst/vaapi/gstvaapipluginbuffer.c:
30820 plugins: fix creation of video buffer from surface proxy.
30821 Fix a regression introduced with commit 8ef490a.
30823 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30825 * gst/vaapi/gstvaapipluginbuffer.c:
30826 * gst/vaapi/gstvaapipluginutil.c:
30827 plugins: use new display types more.
30828 In particular, simplify gst_vaapi_reply_to_query() with display types.
30829 Likewise for creating new video buffers.
30831 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30833 * gst/vaapi/gstvaapidecode.c:
30834 * gst/vaapi/gstvaapidownload.c:
30835 * gst/vaapi/gstvaapipluginutil.c:
30836 * gst/vaapi/gstvaapipluginutil.h:
30837 * gst/vaapi/gstvaapipostproc.c:
30838 * gst/vaapi/gstvaapisink.c:
30839 * gst/vaapi/gstvaapiupload.c:
30840 plugins: fix display type selection and propagation.
30841 If vaapisink is in the GStreamer pipeline, then we shall allocate a
30842 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
30843 queries from vaapidecode shall get a valid answer from vaapisink.
30845 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30847 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30848 display: fix destruction of mutex.
30850 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30852 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30853 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30854 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30855 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30856 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30857 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30858 * gst/vaapi/gstvaapipluginutil.c:
30859 * gst/vaapi/gstvaapipluginutil.h:
30860 * gst/vaapi/gstvaapisink.c:
30861 display: add display types.
30862 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
30863 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
30864 type to "any", and add a "display-type" attribute.
30866 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30868 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30869 display: use prefixed display names for cache lookups.
30870 This improves display name comparisons by always allocating a valid display
30871 name. This also helps to disambiguate lookups by name in the global display
30872 cache, should a new backend be implemented.
30874 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30876 * gst/vaapi/gstvaapipluginutil.h:
30877 plugins: declare helper functions as internal.
30879 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30881 * docs/reference/libs/libs-sections.txt:
30882 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30883 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30884 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30885 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30886 * gst/vaapi/Makefile.am:
30887 * gst/vaapi/gstvaapidecode.c:
30888 * gst/vaapi/gstvaapidownload.c:
30889 * gst/vaapi/gstvaapipluginbuffer.c:
30890 * gst/vaapi/gstvaapipluginbuffer.h:
30891 * gst/vaapi/gstvaapipostproc.c:
30892 * gst/vaapi/gstvaapiupload.c:
30893 videobuffer: drop deprecated functions.
30894 Move video buffer creation routines to plugin elements. That exclusively
30895 uses *_typed_new*() variants.
30897 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30899 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30900 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30901 videobuffer: mark video buffer creation routines as deprecated.
30902 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
30903 plugin elements. So deprecate any explicit creation routines that are not the
30904 new *_typed_new*() variants.
30906 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30908 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30909 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30910 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
30911 videobuffer: factor out base and GLX implementations.
30912 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
30913 This avoids duplication of code, and makes it possible to further implement
30914 generic video buffer creation routines that automatically map to base or GLX
30917 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30919 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30920 utils: fix gl_create_context() with parent context set.
30921 If GLX window was created from a foreign Display, then that same Display shall
30922 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
30923 will now use the same Display that the parent, if available.
30924 This fixes cluttersink with the Intel GenX VA driver.
30926 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30928 * gst/vaapi/gstvaapidecode.c:
30929 * gst/vaapi/gstvaapidownload.c:
30930 * gst/vaapi/gstvaapipluginutil.c:
30931 * gst/vaapi/gstvaapipluginutil.h:
30932 * gst/vaapi/gstvaapipostproc.c:
30933 * gst/vaapi/gstvaapisink.c:
30934 * gst/vaapi/gstvaapiupload.c:
30935 pluginutils: improve automatic display type selection.
30937 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30939 * gst/vaapi/gstvaapipluginutil.c:
30940 * gst/vaapi/gstvaapipluginutil.h:
30941 pluginutils: cosmetics (indentation fixes).
30943 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30946 configure: simplify video outputs summary.
30948 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30951 * gst/vaapi/gstvaapipluginutil.c:
30952 * gst/vaapi/gstvaapipluginutil.h:
30953 * gst/vaapi/gstvaapisink.c:
30954 * gst/vaapi/gstvaapisink.h:
30955 configure: drop check for --enable-vaapisink-glx.
30956 vaapisink is now built with support for multiple display types, whenever
30957 they are enabled. The new "display" attribute is used to select a particular
30960 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30963 * gst-libs/gst/vaapi/gstvaapicompat.h:
30964 * gst/vaapi/Makefile.am:
30965 * gst/vaapi/gstvaapidecode.c:
30966 * gst/vaapi/gstvaapidownload.c:
30967 * gst/vaapi/gstvaapipluginutil.c:
30968 * gst/vaapi/gstvaapipostproc.c:
30969 * gst/vaapi/gstvaapiupload.c:
30970 * tests/test-display.c:
30971 configure: drop check for --enable-vaapi-glx.
30972 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
30973 support, or fallback to TFP+FBO if this API is not found. Now, we check for
30974 the VA/GLX API by default if --enable-glx is set. If this API is not found,
30975 we now default to use TFP+FBO.
30976 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
30977 will be removed in the future. If GLX rendering is requested, then the VA/GLX
30978 API shall be used as it covers most usages. e.g. AMD driver can't render to
30981 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30984 tests: allow GLX output, if available and selected.
30986 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30988 * tests/Makefile.am:
30991 * tests/test-decode.c:
30992 * tests/test-subpicture.c:
30993 * tests/test-surfaces.c:
30994 tests: use common display and window creation routines.
30995 Add new --output option to select the renderer. Use --list-outputs to
30996 print a list of supported renderers.
30998 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31000 * tests/Makefile.am:
31001 tests: move encoded bitstreams to libutils.la.
31003 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31005 * tests/Makefile.am:
31006 tests: build convenience library for common utilities.
31008 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31010 * tests/Makefile.am:
31011 * tests/test-display.c:
31012 tests: simplify build with various display options.
31014 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31017 configure: improve checks for X11.
31019 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31021 * tests/Makefile.am:
31022 configure: fix previous commit for GLX deps.
31024 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31027 * gst-libs/gst/vaapi/Makefile.am:
31028 configure: improve checks for GLX.
31030 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31033 * gst-libs/gst/vaapi/gstvaapicompat.h:
31034 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31035 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
31036 * gst-libs/gst/vaapi/gstvaapiutils.h:
31037 Drop support for obsolete VA-API versions < 0.30.4.
31039 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31042 * gst-libs/gst/Makefile.am:
31043 * gst-libs/gst/gstutils_version.h.in:
31044 * gst/vaapi/gstvaapisink.c:
31045 vaapisink: drop checks for new APIs used by default.
31046 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
31047 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
31048 are no longer necessary.
31050 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31053 configure: cosmetics and some minor changes.
31054 - Better grouping of feature checks
31055 - Sort list of config files to generate
31057 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31060 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31061 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31062 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31063 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31064 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
31065 * gst-libs/gst/vaapi/gstvaapiutils.h:
31066 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31067 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31068 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
31070 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31072 * gst-libs/gst/vaapi/Makefile.am:
31073 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
31074 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
31075 Drop obsolete GstVaapiTSB.
31076 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
31078 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31080 * docs/reference/libs/libs-sections.txt:
31081 docs: add missing entries for the JPEG decoder.
31083 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31086 * gst-libs/gst/vaapi/Makefile.am:
31087 * gst/vaapi/gstvaapidecode.c:
31088 * tests/test-decode.c:
31089 * tests/test-subpicture.c:
31090 Drop all references to USE_CODEC_PARSERS.
31092 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31096 * docs/reference/libs/libs-sections.txt:
31097 * docs/reference/libs/libs.core.types:
31098 * gst-libs/gst/vaapi/Makefile.am:
31099 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31100 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
31101 * gst/vaapi/gstvaapidecode.c:
31102 * gst/vaapi/gstvaapidecode.h:
31103 * tests/test-decode.c:
31104 * tests/test-subpicture.c:
31105 Drop FFmpeg-based decoders.
31106 GStreamer codecparsers-based decoders are the only supported decoders now.
31107 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
31109 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
31112 * debian.upstream/control.in:
31113 configure: bump glib required version to 2.28.
31114 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31116 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
31118 * gst/vaapi/gstvaapidecode.h:
31119 * gst/vaapi/gstvaapidownload.h:
31120 * gst/vaapi/gstvaapipostproc.h:
31121 * gst/vaapi/gstvaapisink.h:
31122 * gst/vaapi/gstvaapiupload.h:
31123 plugins: declare _get_type() functions as const.
31124 Declaring a function as const enables better optimization of calls to
31126 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31128 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
31130 * gst/vaapi/gstvaapidecode.c:
31131 * gst/vaapi/gstvaapidownload.c:
31132 * gst/vaapi/gstvaapipostproc.c:
31133 * gst/vaapi/gstvaapisink.c:
31134 * gst/vaapi/gstvaapiupload.c:
31135 plugins: use g_clear_object() wherever applicable.
31136 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31138 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
31140 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31141 * gst-libs/gst/vaapi/gstvaapicontext.h:
31142 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31143 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31144 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
31145 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
31146 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31147 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
31148 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
31149 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31150 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
31151 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31152 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
31153 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
31154 * gst-libs/gst/vaapi/gstvaapiimage.h:
31155 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
31156 * gst-libs/gst/vaapi/gstvaapiobject.h:
31157 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
31158 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
31159 * gst-libs/gst/vaapi/gstvaapisurface.h:
31160 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
31161 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31162 * gst-libs/gst/vaapi/gstvaapitexture.h:
31163 * gst-libs/gst/vaapi/gstvaapivalue.h:
31164 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31165 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
31166 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
31167 * gst-libs/gst/vaapi/gstvaapivideopool.h:
31168 * gst-libs/gst/vaapi/gstvaapivideosink.h:
31169 * gst-libs/gst/vaapi/gstvaapiwindow.h:
31170 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
31171 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
31172 libs: declare _get_type() functions as const.
31173 Declaring a function as const enables better optimization of calls
31175 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31177 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
31179 * gst-libs/gst/vaapi/glibcompat.h:
31180 * gst-libs/gst/vaapi/gstvaapicontext.c:
31181 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31182 * gst-libs/gst/vaapi/gstvaapiobject.c:
31183 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31184 * gst-libs/gst/vaapi/gstvaapisurface.c:
31185 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31186 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31187 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31188 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31189 libs: use g_clear_object() wherever applicable.
31190 This is a preferred thread-safe version. Also add an inline version of
31191 g_clear_object() if compiling with glib < 2.28.
31192 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31194 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
31198 * docs/reference/libs/Makefile.am:
31199 * gst-libs/gst/vaapi/Makefile.am:
31200 * gst-libs/gst/vaapi/gstvaapimarshal.list:
31201 * gst-libs/gst/vaapi/gstvaapiobject.c:
31202 libs: use generic g_cclosure_marshal_VOID__VOID().
31203 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31205 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31208 * gst-libs/gst/vaapi/glibcompat.h:
31209 glibcompat: drop explicit check for g_list_free_full().
31211 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31214 Bump version for development.
31216 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31218 * gst-libs/gst/codecparsers/Makefile.am:
31219 jpeg: fix make dist.
31221 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
31225 * docs/Makefile.am:
31226 configure: fix build without gtk-doc support.
31227 Also do not generate tamplate files as all the documentation is inline.
31228 Drop un-needed code in autogen.sh as well.
31229 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31231 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
31236 configure: put m4 macros and autogenerated files into m4/ directory.
31237 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31239 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
31242 configure: drop deprecated autoconf macros.
31243 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
31244 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31246 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
31249 configure: don't use AC_SUBST for some variables.
31250 PKG_CHECK_MODULES already does this for us.
31251 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31253 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31255 * gst/vaapi/gstvaapidecode.c:
31256 * gst/vaapi/gstvaapidownload.c:
31257 * gst/vaapi/gstvaapipostproc.c:
31258 * gst/vaapi/gstvaapiupload.c:
31259 plugins: add support for GstImplementsInterface.
31261 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
31264 * gst/vaapi/gstvaapidecode.c:
31265 * gst/vaapi/gstvaapidownload.c:
31266 * gst/vaapi/gstvaapipostproc.c:
31267 * gst/vaapi/gstvaapisink.c:
31268 * gst/vaapi/gstvaapiupload.c:
31269 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
31270 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31272 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
31275 * gst/vaapi/gstvaapisink.c:
31276 plugins: do not use deprecated GStreamer -base symbols.
31277 Bump GStreamer plugins -base required version to 0.10.31, needed for
31278 gst_x_overlay_got_window_handle().
31279 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31281 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
31284 * gst/vaapi/gstvaapidecode.c:
31285 * gst/vaapi/gstvaapidownload.c:
31286 * gst/vaapi/gstvaapipostproc.c:
31287 * gst/vaapi/gstvaapisink.c:
31288 * gst/vaapi/gstvaapiupload.c:
31289 plugins: do not use deprecated core GStreamer symbols.
31290 Bump GStreamer required version to 0.10.14, needed for
31291 gst_element_class_set_details_simple().
31292 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31294 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31296 * tests/test-decode.c:
31297 tests: fix build without JPEG decoder support.
31299 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31301 * tests/Makefile.am:
31302 * tests/test-decode.c:
31303 * tests/test-jpeg.c:
31304 * tests/test-jpeg.h:
31305 tests: add test for JPEG decoding.
31307 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31309 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31310 jpeg: update to match latest parser API.
31312 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31314 * gst-libs/gst/codecparsers/gstjpegparser.c:
31315 * gst-libs/gst/codecparsers/gstjpegparser.h:
31316 codecparsers: jpeg: tweak parser API.
31317 ... to allow for more consistent parsing API among various codec parsers.
31318 In particular, drop use of GList.
31320 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31323 jpeg: fix configure check for VA/JPEG decoding API.
31325 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31327 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31328 jpeg: fix build with VA-API < 0.32.0.
31330 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31335 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31338 Bump version for development.
31340 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31346 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31351 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
31353 * gst/vaapi/gstvaapipluginutil.c:
31354 vaapiplugin: fix build when compiling without GLX.
31355 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31357 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31360 configure: disable FFmpeg-based decoders.
31361 FFmpeg decoders are still available through the --enable-ffmpeg option
31362 but are no longer maintained.
31364 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31366 * gst-libs/gst/vaapi/Makefile.am:
31367 Fix build with recent GStreamer stack.
31369 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31372 * gst-libs/gst/vaapi/gstvaapicompat.h:
31373 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31374 jpeg: update to current VA/JPEG decoding API.
31376 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31378 * gst-libs/gst/codecparsers/gstjpegparser.c:
31379 * gst-libs/gst/codecparsers/gstjpegparser.h:
31380 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31381 codecparsers: jpeg: track valid quantization and Huffman tables.
31382 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
31383 to determine whether a table actually changed since the last user
31384 synchronization point. That way, this makes it possible for some
31385 hardware accelerated decoding solution to upload only those tables
31388 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
31390 * gst-libs/gst/codecparsers/gstjpegparser.c:
31391 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
31392 Use GstByteReader *_unchecked() variants as much as possible.
31393 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31395 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
31397 * gst-libs/gst/codecparsers/gstjpegparser.c:
31398 * gst-libs/gst/codecparsers/gstjpegparser.h:
31399 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31400 jpeg: add new GstJpegHuffmanTables structure.
31401 Add new GstJpegHuffmanTables helper structure to hold all possible
31402 AC/DC Huffman tables available to all components.
31403 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31405 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
31407 * gst-libs/gst/codecparsers/gstjpegparser.c:
31408 * gst-libs/gst/codecparsers/gstjpegparser.h:
31409 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31410 jpeg: make gst_jpeg_parse() support multiple scans.
31411 gst_jpeg_parse() now gathers all scans available in the supplied
31412 buffer. A scan comprises of the scan header and any entropy-coded
31413 segments or restart marker following it. The size and offset to
31414 the associated data (ECS + RST segments) are append to a new
31415 GstJpegScanOffsetSize structure.
31416 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31418 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
31420 * gst-libs/gst/codecparsers/gstjpegparser.c:
31421 * gst-libs/gst/codecparsers/gstjpegparser.h:
31422 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31423 jpeg: update to match latest parser API.
31424 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31426 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31428 * gst-libs/gst/codecparsers/gstjpegparser.h:
31429 jpeg: simplify and optimize parser API.
31431 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
31433 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31434 mpeg: fix picture used to determine backward_reference_vop_coding_type.
31435 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
31436 but Gwenole did not apply all the bits.
31437 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31439 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
31441 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31442 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
31443 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31445 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
31447 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31448 mpeg4: handle skipped frames (vop_hdr->coded = 0).
31449 Gracefully skip non VOP coded frames.
31450 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31452 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
31454 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31455 mpeg4: fix timestamp issues on too fast playback.
31456 Improve generation of presentation timestamps to be less sensitive
31457 to input stream errors. In practise, GOP is also a synchronization
31458 point for PTS calculation.
31459 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31461 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31463 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31464 Fix build without JPEG decoder.
31466 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
31468 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31469 mpeg4: fix VOP coding type of backward reference pictures.
31470 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31472 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
31474 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31475 mpeg4: fix handling of temporal reference distances.
31476 TRD and TRB fields are not large enough to hold the difference of PTS
31477 expressed with nanosecond resolution. So, compute them from the original
31479 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31481 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31483 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31484 dpb: mpeg2: cosmetics.
31485 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
31487 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31490 * gst-libs/gst/vaapi/Makefile.am:
31491 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31492 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31493 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31494 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31495 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31496 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31497 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31498 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31499 * gst/vaapi/gstvaapidecode.c:
31500 Add initial JPEG decoder.
31501 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31503 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31506 * gst-libs/gst/Makefile.am:
31507 * gst-libs/gst/codecparsers/Makefile.am:
31508 * gst-libs/gst/codecparsers/gstjpegparser.c:
31509 * gst-libs/gst/codecparsers/gstjpegparser.h:
31510 * gst-libs/gst/vaapi/Makefile.am:
31511 codecparsers: add JPEG parser.
31512 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31514 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
31516 * gst/vaapi/gstvaapidecode.c:
31517 vaapidecode: fix VA display type.
31518 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
31520 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31522 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31524 * gst/vaapi/gstvaapidecode.c:
31525 vaapidecode: fix includes when compiling for a single API.
31527 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31530 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31531 mpeg2: fix calculation of macroblock_offset.
31532 Fix decoding of streams with extra slice() information before the first
31533 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
31535 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31537 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31538 mpeg2: fix interpolation of GOP TSN from new PTS.
31539 New GOP TSN base could be mis-calculated. In particular, this fixes
31540 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
31542 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31545 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31546 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31547 mpeg2: fix decoding of high profile streams.
31548 Allow MPEG-2 High profile streams only if the HW supports that profile
31549 or no High profile specific bits are used, and thus Main profile could
31550 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
31551 set to 11 and no sequence_scalable_extension() was parsed.
31553 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31556 * gst/vaapi/gstvaapidecode.c:
31557 vaapidecode: report unsupported codec profiles.
31558 Try to gracefully abort when the HW does not support the requested
31559 profile. There is no fallback unless profiles are correctly parsed
31560 and matched through caps beforehand.
31562 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
31565 * gst/vaapi/gstvaapisink.c:
31566 vaapisink: don't resize a 'foreign' X-window.
31567 Don't forcibly resize foreign X windows. The user is responsible for
31568 their size and vaapisink shall not change this.
31569 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31571 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
31574 * gst/vaapi/gstvaapisink.c:
31575 * gst/vaapi/gstvaapisink.h:
31576 vaapisink: recalculate render rect only if caps are negotiated.
31577 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
31578 caps got negotiated. Besides, when a foreign window is provided by the
31579 user, so should the render rect.
31580 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31582 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31585 Bump version for development.
31587 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31592 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31594 * docs/reference/libs/libs-docs.xml.in:
31595 * docs/reference/libs/libs-sections.txt:
31596 * docs/reference/plugins/plugins-docs.xml.in:
31597 * docs/reference/plugins/plugins-sections.txt:
31598 * docs/reference/plugins/plugins.types:
31599 * gst-libs/gst/vaapi/gstvaapiimage.c:
31600 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31601 * gst/vaapi/gstvaapipostproc.c:
31602 Fix a few documentation issues.
31604 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31608 Update introduction and changelog.
31610 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31612 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31613 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31614 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31615 mpeg2: allocate dummy picture for first field based I-frame.
31616 In P-pictures, prediction shall be made from the two most recently
31617 decoded reference fields. However, when the first I-frame is a field,
31618 the next field of the current picture could be a P-picture but only a
31619 single field was decoded so far. In this case, create a dummy picture
31620 with POC = -1 that will be used as reference.
31621 Some VA drivers would error out if P-pictures don't have a forward
31622 reference picture. This is true in general but not in this very specific
31625 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31627 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31628 mpeg2: fix simple to main profile fallback.
31629 Allow fallback from simple to main profile when the HW decoder does
31630 not support the former profile and that no sequence_header_extension()
31631 is available to point out this.
31633 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
31635 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31636 mpeg4: improve error checking while decoding packets.
31637 decode_picture() could return an error when an MPEG-4 profile is not
31638 supported for example. In this case, the underlying VA context is not
31639 allocated and no other proper action can be taken. Likewise on exit
31640 from decode_slice().
31641 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31643 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31645 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31646 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31647 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31648 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31649 decoder: use POC to maintain the DPB.
31650 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
31651 numbers. A signed 32-bit integer should be enough for 1 year of continuous
31652 video streaming at 60 Hz.
31653 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
31654 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
31656 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31658 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31659 mpeg2: rework generation of presentation timestamps.
31660 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
31661 i.e. demuxer could not determine the PTS or the generated PTS is lower than
31662 max PTS from past pictures, then try to fix it up based on the duration of
31664 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
31665 reconstruct a current time. Also now handle wrapped TSN correctly.
31667 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31669 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31670 mpeg2: ignore empty user-data packets.
31671 Fix tcela-8.bits conformance test.
31673 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31675 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31676 mpeg2: review and report errors accordingly.
31677 Use GST_ERROR() to report real errors instead of hiding them into
31680 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31682 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31683 mpeg2: fix invalid interlaced frame in progressive sequence.
31684 Some streams, badly constructed, could have signaled an interlaced
31685 frame while the sequence was meant to be progressive. Warn and force
31686 frame to be progressive in this case.
31688 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31690 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31691 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31692 mpeg2: add support for interlaced streams.
31693 Pictures are submitted to the HW for rendering only when both fields
31694 are decoded or current picture is a full frame.
31696 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31698 * gst-libs/gst/vaapi/Makefile.am:
31699 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31700 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31701 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31702 mpeg2: add new decoded picture buffer infrastructure.
31703 Decoded pictures are now maintained into DPB, similarly to H.264.
31704 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
31706 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31708 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31709 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31710 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31711 decoder: add first-field flag to picture.
31712 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
31713 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
31714 as the first field. Any subsequent allocated field will become the second field.
31716 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31718 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31719 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31720 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31721 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31722 decoder: allow pictures to be cloned for field decoding.
31723 Add gst_vaapi_picture_new_field() function that clones a picture, while
31724 preserving the parent picture surface. i.e. the surface proxy reference
31725 count is increased and other fields copied as is. Besides, the picture
31726 is reset into a "non-output" mode.
31728 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31730 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31731 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31732 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31733 decoder: rework picture field flags.
31734 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
31735 could be propagated to the surface proxy when it is pushed for rendering.
31736 Besides, top and bottom fields are now expressed with picture structure flags
31737 from GstVaapiSurfaceRenderFlags.
31739 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31741 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31742 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31743 decoder: add OUTPUT flag to pictures.
31744 Allow pictures to be marked as output gst_vaapi_picture_output().
31746 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31748 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31749 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31750 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31751 decoder: fix semantics of SKIPPED pictures.
31752 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
31753 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
31754 has nothing to do with rendering. This only means that the currently decoded
31755 picture is just a copy of its reference picture.
31757 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31759 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31760 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31761 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31762 * gst/vaapi/gstvaapipostproc.c:
31763 vaapipostproc: get "interlaced" attribute from surface proxy.
31764 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
31765 vaapipostproc so that to handles cases where bitstream is interlaced
31766 but almost only frame pictures are generated. In this case, we should
31767 not be alternating between top/bottom fields.
31769 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31772 * debian.upstream/control.in:
31773 * gst/vaapi/Makefile.am:
31774 * gst/vaapi/gstvaapi.c:
31775 * gst/vaapi/gstvaapipostproc.c:
31776 * gst/vaapi/gstvaapipostproc.h:
31777 vaapipostproc: add new element for video postprocessing.
31778 Add vaapipostproc element for video postprocessing. So far, only basic
31779 bob deinterlacing is implemented. Interlaced mode is automatically
31780 detected based on sink caps ("interlaced" field).
31782 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31784 * docs/reference/libs/libs-sections.txt:
31785 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31786 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31787 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31788 * gst/vaapi/gstvaapisink.c:
31789 videobuffer: add surface render flags.
31790 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
31791 to be set to the video buffer. In particular, this is mostly useful for
31792 basic deinterlacing.
31794 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31796 * gst-libs/gst/vaapi/gstvaapicompat.h:
31797 compat: add compatibility glue with VA-API 0.34+ (WIP).
31799 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31801 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31802 h264: skip all Filler Data NALs.
31804 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
31806 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31807 mpeg4: check for decoder status prior to decoding packet.
31808 Make sure there is a VA surface free prior to decoding the current frame.
31809 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31811 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
31813 * gst/vaapi/gstvaapidecode.c:
31814 * gst/vaapi/gstvaapidecode.h:
31815 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
31816 Rationale: playbin2 links all elements at run-time. Once vaapidecode
31817 is created and a NEWSEGMENT event arrives, downstream element may not
31818 be ready yet. So, delay this event until next element is chained in,
31819 otherwise basesink could output "Received buffer without a new-segment.
31820 Assuming timestamps start from 0".
31821 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31823 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
31825 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31826 mpeg2: fix GOP timestamps when incorrect data is received.
31827 Some streams have incorrect GOP timestamps, or nothing set at all.
31828 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
31829 from demuxer timestamps, which are monotonic.
31830 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31832 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
31834 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31835 mpeg2: don't decode anything before the first sequence_header().
31836 Skip all pictures prior to the first sequence_header(). Besides,
31837 skip all picture_data() if there was no prior picture_header().
31838 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31840 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
31842 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31843 ffmpeg: add support for interlaced streams.
31844 Evaluate interlaced stream properties.
31845 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31847 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31849 * gst/vaapi/gstvaapidecode.c:
31850 vaapidecode: propagate interlaced and TFF properties downstream.
31851 Propagate "interlaced" caps downstream and set "tff" buffer flag
31852 appropriately to output buffers for interlaced pictures.
31853 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31855 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31857 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31858 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31859 decoder: maintain caps for interlaced streams.
31860 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
31862 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31864 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31866 * docs/reference/libs/libs-sections.txt:
31867 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31868 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31869 surfaceproxy: add TFF property.
31870 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
31871 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31873 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31876 AUTHORS: update to match current authors.
31878 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31880 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31881 mpeg2: fix is_first_field calculation.
31882 Reset is_first_field for frame pictures. Factor out locations where
31883 the flag is updated.
31885 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31887 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31888 mpeg2: catch incorrect picture_structure from bitstreams.
31889 Assume "frame" picture structure if the syntax element was zero or if
31890 progressive_frame is set.
31892 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31894 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31895 mpeg2: fix slice_vertical_position calculation (again).
31896 VA-API expects slice_vertical_position as the initial position from the
31897 bitstream. i.e. the direct slice() information. VA drivers will be fixed
31900 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31902 * gst/vaapi/gstvaapidecode.c:
31903 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
31904 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
31905 For gst_element_class_get_pad_template(), no unreferencing is necessary
31906 according to the GStreamer documentation.
31908 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31911 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31912 h264: fix slice_data_bit_offset calculation.
31913 Unlike what VA-API documentation defines, the slice_data_bit_offset
31914 represents the offset to the first macroblock in the slice data, minus
31915 any emulation prevention bytes in the slice_header().
31916 This fix copes with binary-only VA drivers that won't be fixed any
31917 time soon. Besides, this aligns with the current FFmpeg behaviour
31918 that was based on those proprietary drivers implementing the API
31921 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
31923 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31924 h264: skip all Access Unit (AU) NALs.
31925 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31927 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
31929 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31930 h264: fix modification process of reference picture lists.
31931 Construction of RefPicList0/1 could be off by one element.
31932 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31934 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31936 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31937 mpeg2: fix size calculation from sequence_extension().
31938 Original values from sequence_header() are 12-bit and the remaining
31939 2 most significant bits are coming from sequence_extension().
31940 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31942 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31944 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31945 mpeg2: fix slice_vertical_position calculation.
31946 Make sure to adjust slice_vertical_position if picture structure
31947 is a top or bottom field.
31949 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31951 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31952 decoder: add picture structure flags.
31954 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31956 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31957 mpeg2: fix decoding at end-of-sequence.
31959 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31961 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31962 mpeg2: fix slice_horizontal_position calculation.
31964 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31966 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31967 mpeg2: drop useless mb_y and mb_height members.
31969 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31971 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31972 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
31973 6.3.15 says that "some slices may have the same slice_vertical_position,
31974 since slices may start and finish anywhere". So, we can't submit the current
31975 picture to the HW right away since subsequent slices would be missing.
31977 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31979 * gst-libs/gst/vaapi/gstvaapiimage.c:
31980 image: fix source stride in picture copy.
31982 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31984 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31985 decoder: fix double buffer free with some VA drivers.
31986 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
31987 push the VA buffer object into a list of free buffers to be re-used. However,
31988 reference pictures (and data) that was kept would explicitly release the VA
31989 buffer object later on, thus possibly destroying a valid (re-used) object.
31990 Besides, some other VA drivers don't support correctly the vaRenderPicture()
31991 semantics for VA buffers disposal and would leak memory if there is no explicit
31992 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
31993 right after vaRenderPicture(). All VA drivers need to be aligned.
31995 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31997 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31998 h264: complete any current picture decoder before SPS / PPS change.
31999 This ensures the VA context is clear when the encoded resolution
32000 changes. i.e. make sure older picture is decoded with the older
32001 VA context before it changes.
32003 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32005 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32006 h264: create VA context earlier when SPS is parsed.
32008 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32010 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32011 h264: don't allocate too big data structures on stack.
32013 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32015 * gst-libs/gst/vaapi/glibcompat.h:
32016 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32017 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32018 glib: map deprecated API to glib >= 2.32 equivalents.
32019 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
32020 GRecMutex, which no longer require any prior call to g_thread_init().
32022 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32024 * gst-libs/gst/vaapi/gstvaapiutils.h:
32025 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32026 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32027 glib: fix includes.
32029 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32031 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32032 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32033 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32034 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32035 cosmetics: fix warnings (drop unused variables).
32037 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32039 * gst/vaapi/gstvaapidecode.c:
32040 vaapidecode: fix another pad template ref leak.
32042 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32044 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32045 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32046 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32047 mpeg2: fix crash when there is no free surface to decode into.
32049 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
32051 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32052 display: skip profiles which have no entrypoints.
32053 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32055 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32057 * gst/vaapi/gstvaapiupload.c:
32058 vaapiupload: use g_object_unref() for GstVaapiImage.
32060 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32062 * gst/vaapi/gstvaapidecode.c:
32063 * gst/vaapi/gstvaapidownload.c:
32064 * gst/vaapi/gstvaapisink.c:
32065 * gst/vaapi/gstvaapiupload.c:
32066 plugins: fix pad template ref leaks.
32068 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32071 Bump version for development.
32073 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32079 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32083 Mention codecparsers-based decoders, FFmpeg is now optional. Update
32084 list of support HW.
32086 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32091 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32093 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32094 decoder: allocate proxy surface earlier.
32095 This simplifies gst_vaapi_picture_output() to only update the presentation
32096 timestamp and submit the proxy to the decoder for output.
32098 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32100 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32101 decoder: fix memory leak of VA objects on exit.
32102 On sequence end, if the last decoded picture is not output for rendering,
32103 then the proxy surface is not created. In this case, the original surface
32104 must be released explicitly to the context.
32106 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32108 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32109 mpeg2: use GstAdapter to track input sequence.
32110 This fixes possible memory leaks and improves performance by removing
32113 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32116 * gst-libs/gst/vaapi/Makefile.am:
32117 * gst-libs/gst/vaapi/glibcompat.h:
32118 * gst-libs/gst/vaapi/sysdeps.h:
32119 Add glib compatibility glue for older versions.
32121 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32123 * gst-libs/gst/vaapi/Makefile.am:
32124 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32125 * gst-libs/gst/vaapi/gstvaapicontext.c:
32126 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32127 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32128 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32129 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32130 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32131 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32132 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32133 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32134 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32135 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32136 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32137 * gst-libs/gst/vaapi/gstvaapiimage.c:
32138 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32139 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32140 * gst-libs/gst/vaapi/gstvaapiobject.c:
32141 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32142 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32143 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32144 * gst-libs/gst/vaapi/gstvaapisurface.c:
32145 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32146 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32147 * gst-libs/gst/vaapi/gstvaapitexture.c:
32148 * gst-libs/gst/vaapi/gstvaapiutils.c:
32149 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32150 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32151 * gst-libs/gst/vaapi/gstvaapivalue.c:
32152 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32153 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
32154 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32155 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32156 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32157 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32158 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32159 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32160 * gst-libs/gst/vaapi/sysdeps.h:
32161 Add header for system-dependent definitions.
32163 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32165 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32166 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32167 * gst-libs/gst/vaapi/gstvaapiutils.c:
32168 * gst-libs/gst/vaapi/gstvaapiutils.h:
32169 decoder: optimize slice data buffers initialization.
32170 VA drivers may have a faster means to transfer user buffers to GPU
32171 buffers than using memcpy(). In particular, on Intel Gen graphics, we
32172 can use pwrite(). This provides for faster upload of bitstream and can
32173 help higher bitrates.
32174 vaapi_create_buffer() helper function was also updated to allow for
32175 un-mapped buffers and pre-initialized data for buffers.
32177 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32179 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32180 h264: simplify RefPicList reconstruction.
32182 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32184 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32185 h264: flush DPB when the end of the sequence is reached.
32187 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32189 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32190 h264: handle Decoded Picture Buffer (DPB).
32192 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32194 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32195 h264: fix pred_weight_table() reconstruction.
32196 Only the explicit pred_weight_table(), possibly with the inferred default
32197 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
32198 is not set for P/SP slices.
32200 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32202 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32203 h264: execute reference picture marking process (MMCO).
32205 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32207 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32208 h264: fix presentation timestamps.
32210 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32212 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32213 h264: execute reference picture marking process (sliding window).
32215 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32217 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32218 h264: handle avcC format for decoding buffers.
32220 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32222 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32223 h264: handle codec-data.
32224 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32226 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32228 * gst-libs/gst/vaapi/Makefile.am:
32229 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32230 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
32231 * gst/vaapi/gstvaapidecode.c:
32232 * tests/test-decode.c:
32233 Add initial H.264 decoder.
32235 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32237 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32238 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
32239 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
32240 Keep a valid reference to the proxy in GstVaapiPicture so that frames
32241 marked as "used for reference" could be kept during the lifetime of the
32242 picture. i.e. don't release them too soon as they could be re-used right
32245 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32247 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32248 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32249 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32250 decoder: properly reference count pictures.
32251 This fixes cases where a GstVaapiPicture would be destroyed whereas
32252 there is still a valid instance of it in either prev, current or
32255 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32257 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32258 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32259 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32260 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32261 decoder: simplify output of decoded frames.
32262 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
32263 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
32264 is already set correctly and reference count increased, if necessary.
32266 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32268 * gst-libs/gst/vaapi/Makefile.am:
32269 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32270 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
32271 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32272 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32273 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32274 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32275 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
32276 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32277 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32278 decoder: rework the internal VA objects API.
32279 The new API simplifies a lot reference counting and makes it more
32280 flexible for future additions/changes. The GstVaapiCodecInfo is
32281 also gone. Rather, new helper macros are provided to allocate
32282 picture, slice and quantization matrix parameter buffers.
32284 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32286 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32287 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32288 decoder: allow slices to be attached to pictures later.
32290 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32292 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32293 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32294 decoder: add ref_count to GstVaapiPicture.
32296 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32298 * gst/vaapi/gstvaapisink.c:
32299 vaapisink: cap window size to the maximum display size.
32301 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
32303 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32304 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32305 profile: match video/x-h263 as H.263 Baseline profile.
32306 HACK: qtdemux does not report profiles for H.263. So, assume plain
32307 "video/x-h263" is H.263 Baseline profile.
32308 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32310 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32312 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32313 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32314 display: report H.263 Baseline profile.
32315 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
32316 profile (VAProfileMPEG4Simple) is supported.
32318 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32320 * gst-libs/gst/vaapi/Makefile.am:
32321 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32322 Add template for workarounds.
32324 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32326 * tests/test-decode.c:
32327 tests: error out if FFmpeg|codecparsers are not supported.
32329 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32331 * docs/reference/libs/libs-sections.txt:
32332 * gst-libs/gst/vaapi/gstvaapisurface.h:
32333 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32334 surface: don't expose gst_vaapi_surface_get_parent_context().
32335 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
32336 It's just an internal helper function. However, it's still possible to get
32337 the parent context through the "parent-context" property.
32339 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32341 * tests/Makefile.am:
32342 * tests/test-subpicture.c:
32343 tests: fix build without FFmpeg.
32345 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32348 Bump version for development.
32350 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32356 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32359 * debian.upstream/copyright:
32360 * gst-libs/gst/vaapi/gstvaapicontext.c:
32361 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32362 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32363 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32364 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32365 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32366 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32367 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32368 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32369 * gst-libs/gst/vaapi/gstvaapiimage.c:
32370 * gst-libs/gst/vaapi/gstvaapiimage.h:
32371 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32372 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32373 * gst-libs/gst/vaapi/gstvaapiutils.c:
32374 * gst-libs/gst/vaapi/gstvaapiutils.h:
32375 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32376 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32377 * gst/vaapi/gstvaapi.c:
32378 * gst/vaapi/gstvaapidecode.c:
32379 * gst/vaapi/gstvaapidownload.c:
32380 * gst/vaapi/gstvaapidownload.h:
32381 * gst/vaapi/gstvaapipluginutil.c:
32382 * gst/vaapi/gstvaapipluginutil.h:
32383 * gst/vaapi/gstvaapisink.c:
32384 * gst/vaapi/gstvaapiupload.c:
32385 * gst/vaapi/gstvaapiupload.h:
32386 * tests/test-decode.c:
32387 legal: fix year for some copyright notices.
32389 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32391 * gst-libs/gst/vaapi/gstvaapicontext.c:
32392 * gst-libs/gst/vaapi/gstvaapicontext.h:
32393 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32394 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32395 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32396 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32397 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32398 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32399 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32400 * gst-libs/gst/vaapi/gstvaapiimage.c:
32401 * gst-libs/gst/vaapi/gstvaapiimage.h:
32402 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32403 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32404 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32405 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32406 * gst-libs/gst/vaapi/gstvaapisurface.c:
32407 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32408 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32409 * gst-libs/gst/vaapi/gstvaapiutils.c:
32410 * gst-libs/gst/vaapi/gstvaapiutils.h:
32411 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32412 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32413 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32414 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32415 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32416 * gst/vaapi/gstvaapidownload.h:
32417 * gst/vaapi/gstvaapisink.h:
32418 * gst/vaapi/gstvaapiupload.h:
32419 * tests/test-decode.c:
32420 legal: add Intel copyright on modified files.
32422 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32424 * gst-libs/gst/vaapi/gstvaapi_priv.h:
32425 * gst-libs/gst/vaapi/gstvaapicompat.h:
32426 * gst-libs/gst/vaapi/gstvaapicontext.c:
32427 * gst-libs/gst/vaapi/gstvaapicontext.h:
32428 * gst-libs/gst/vaapi/gstvaapidebug.h:
32429 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32430 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32431 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32432 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32433 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32434 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32435 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32436 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32437 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
32438 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
32439 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32440 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32441 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
32442 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
32443 * gst-libs/gst/vaapi/gstvaapiimage.c:
32444 * gst-libs/gst/vaapi/gstvaapiimage.h:
32445 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32446 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32447 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32448 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
32449 * gst-libs/gst/vaapi/gstvaapiobject.c:
32450 * gst-libs/gst/vaapi/gstvaapiobject.h:
32451 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32452 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32453 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
32454 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32455 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32456 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32457 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32458 * gst-libs/gst/vaapi/gstvaapisurface.c:
32459 * gst-libs/gst/vaapi/gstvaapisurface.h:
32460 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32461 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
32462 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32463 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32464 * gst-libs/gst/vaapi/gstvaapitexture.c:
32465 * gst-libs/gst/vaapi/gstvaapitexture.h:
32466 * gst-libs/gst/vaapi/gstvaapitypes.h:
32467 * gst-libs/gst/vaapi/gstvaapiutils.c:
32468 * gst-libs/gst/vaapi/gstvaapiutils.h:
32469 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32470 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32471 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32472 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32473 * gst-libs/gst/vaapi/gstvaapivalue.c:
32474 * gst-libs/gst/vaapi/gstvaapivalue.h:
32475 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32476 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32477 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32478 * gst-libs/gst/vaapi/gstvaapivideopool.h:
32479 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32480 * gst-libs/gst/vaapi/gstvaapivideosink.h:
32481 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32482 * gst-libs/gst/vaapi/gstvaapiwindow.h:
32483 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32484 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32485 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32486 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
32487 * gst/vaapi/gstvaapidecode.c:
32488 * gst/vaapi/gstvaapidecode.h:
32489 * gst/vaapi/gstvaapidownload.c:
32490 * gst/vaapi/gstvaapidownload.h:
32491 * gst/vaapi/gstvaapisink.c:
32492 * gst/vaapi/gstvaapisink.h:
32493 * gst/vaapi/gstvaapiupload.c:
32494 * gst/vaapi/gstvaapiupload.h:
32497 * tests/test-decode.c:
32498 * tests/test-decode.h:
32499 * tests/test-display.c:
32500 * tests/test-h264.c:
32501 * tests/test-h264.h:
32502 * tests/test-mpeg2.c:
32503 * tests/test-mpeg2.h:
32504 * tests/test-surfaces.c:
32505 * tests/test-textures.c:
32506 * tests/test-vc1.c:
32507 * tests/test-vc1.h:
32508 * tests/test-windows.c:
32509 legal: fix copyright notices to include "Copyright" term.
32511 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
32513 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32514 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32515 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32516 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32518 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
32520 * gst-libs/gst/vaapi/Makefile.am:
32521 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32522 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32523 * gst/vaapi/gstvaapidecode.c:
32524 Add initial MPEG-4 decoder.
32525 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32527 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32529 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32530 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32531 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32532 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32534 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32536 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32537 vc1: fix codec-data decoding for WMV3 format.
32539 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32541 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32542 vc1: fix presentation timestamps.
32544 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32546 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32547 vc1: fix MV mode packing.
32549 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32551 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32552 vc1: handle codec-data.
32554 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32556 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32557 vc1: handle encapsulated bitstreams.
32559 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32561 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32562 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32563 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32564 vc1: fix bitplanes decoding.
32566 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32568 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32569 vc1: fix BFRACTION reconstruction.
32571 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32573 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32574 vc1: fix framerate calculation.
32576 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32578 * gst-libs/gst/vaapi/Makefile.am:
32579 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32580 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32581 * gst/vaapi/gstvaapidecode.c:
32582 * tests/test-decode.c:
32583 Add initial VC-1 decoder.
32585 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
32587 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32588 mpeg2: fix first field detection.
32589 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32591 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32593 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32594 mpeg2: fix quantisation matrix construction.
32596 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32598 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32599 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32600 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
32601 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32603 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32605 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32606 mpeg2: fix packets spanning over two buffers.
32608 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32610 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32611 mpeg2: ignore system start codes (PES headers).
32613 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32615 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32616 mpeg2: handle closed_gop.
32618 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32620 * gst-libs/gst/vaapi/Makefile.am:
32621 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32622 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32623 * gst/vaapi/gstvaapidecode.c:
32624 * tests/test-decode.c:
32625 Add initial MPEG-2 decoder.
32627 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32630 * gst-libs/gst/vaapi/Makefile.am:
32631 * gst/vaapi/gstvaapidecode.c:
32632 * tests/test-decode.c:
32633 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
32635 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32637 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32638 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32639 Add VA decoder helpers.
32641 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32643 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32644 decoder: add new error codes.
32645 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
32646 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
32648 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32650 * gst-libs/gst/vaapi/Makefile.am:
32651 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
32652 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
32653 Add timestamp buffer store helper utils.
32655 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32657 * gst-libs/gst/vaapi/gstvaapiutils.c:
32658 * gst-libs/gst/vaapi/gstvaapiutils.h:
32659 Add VA buffer helpers.
32661 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32663 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32664 utils: slight improvements to gl_bind_texture().
32666 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32668 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32669 utils: pretty-print output of gl_get_error_string().
32671 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32673 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32674 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
32676 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32678 * gst-libs/gst/vaapi/gstvaapiutils.c:
32679 utils: simplify string of VAProfile/VAEntrypoint.
32681 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32683 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32684 * gst-libs/gst/vaapi/gstvaapiutils.c:
32685 * gst-libs/gst/vaapi/gstvaapiutils.h:
32686 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
32688 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32693 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32695 * tests/test-decode.c:
32696 tests: check for shared VA displays (display cache).
32698 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32700 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32701 display: always free VA display cache if it is empty.
32703 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32705 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32706 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32707 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32708 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32709 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32710 display: use VA display cache for X11 and GLX winsys.
32712 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32714 * gst-libs/gst/vaapi/Makefile.am:
32715 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32716 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32717 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
32718 display: implement a VA display cache.
32720 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32722 * gst/vaapi/gstvaapipluginutil.c:
32723 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
32724 This ensures the display name provided to gst_vaapi_display_*_new()
32725 maps to the system defaults, instead of forcing "" that could be different
32726 from the current DISPLAY name.
32728 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32730 * gst/vaapi/gstvaapiupload.c:
32731 vaapiupload: only set caps on newly created buffers.
32732 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32734 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32736 * gst/vaapi/gstvaapisink.c:
32737 vaapisink: ensure VA display in GstBaseSink::start() hook.
32738 This ensures a VA display is ready by the time upstream elements request
32741 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32743 * gst/vaapi/gstvaapisink.c:
32744 vaapisink: don't leak GL texture.
32745 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32747 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32749 * gst/vaapi/gstvaapisink.c:
32750 vaapisink: fix calculation of render region.
32752 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32754 * gst/vaapi/gstvaapisink.c:
32755 vaapisink: automatically fit video to window.
32757 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32759 * gst/vaapi/gstvaapisink.c:
32760 vaapisink: implement GstXOverlay::set_render_rectangle().
32762 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32764 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32765 window: always check geometry when the window is mapped.
32767 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
32769 * gst-libs/gst/vaapi/gstvaapiutils.c:
32770 Add missing profiles from VA-API 0.32.0.
32771 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32773 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32776 .gitignore: add test-subpicture.
32778 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32781 Bump version for development.
32783 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32789 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32791 * tests/Makefile.am:
32792 tests: fix make dist (ship with test-subpicture-data.h).
32794 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32799 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32801 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32802 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32803 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32804 decoder: fix possible leak of VA surfaces.
32805 Under some circumstances, we could have leaked a surface, thus not
32806 releasing it to the pool of available surfaces in the VA context.
32807 The strategy is now to use a proxy earlier and automatically ref/unref
32808 whenever necessary. In particular, during the lifetime needed for FFmpeg.
32810 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32812 * docs/reference/libs/libs-sections.txt:
32813 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32814 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32815 surfaceproxy: add helper to retrieve the VA surface ID.
32817 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32819 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32820 surfaceproxy: simplify destruction.
32821 Also make sure to always make sure to release the surface back to the
32822 pool of surfaces in the associated VA context, if any.
32824 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32826 * gst/vaapi/gstvaapidecode.c:
32827 vaapidecode: fix deinitialization order.
32829 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32831 * gst-libs/gst/vaapi/gstvaapicontext.c:
32832 context: avoid self reference loops with surfaces.
32834 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32836 * debian.upstream/control.in:
32837 debian: update control.in description for new plugins.
32839 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32841 * gst/vaapi/gstvaapiupload.c:
32842 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
32843 This also fixes extra structures, beyond the one at index 0, to hold
32844 the right additional values.
32846 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32848 * gst/vaapi/gstvaapiupload.c:
32849 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
32851 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32854 * docs/reference/plugins/plugins-docs.xml.in:
32855 * docs/reference/plugins/plugins-sections.txt:
32856 * docs/reference/plugins/plugins.types:
32857 * gst/vaapi/Makefile.am:
32858 * gst/vaapi/gstvaapi.c:
32859 * gst/vaapi/gstvaapidownload.c:
32860 * gst/vaapi/gstvaapidownload.h:
32861 vaapidownload: add new plugin to download pixels from VA surfaces.
32863 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32865 * gst/vaapi/gstvaapipluginutil.c:
32866 * gst/vaapi/gstvaapipluginutil.h:
32867 vaapipluingutils: add helper to append surface caps to YUV caps.
32869 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32871 * docs/reference/libs/libs-sections.txt:
32872 * gst-libs/gst/vaapi/gstvaapiimage.c:
32873 * gst-libs/gst/vaapi/gstvaapiimage.h:
32874 image: add helpers to extract pixels to user buffers.
32876 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32878 * gst-libs/gst/vaapi/gstvaapiimage.c:
32879 image: simplify initialization of raw images from video buffers.
32881 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32883 * gst-libs/gst/vaapi/gstvaapiimage.c:
32884 image: fix update from NV12 buffers.
32886 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32888 * gst/vaapi/gstvaapiupload.c:
32889 vaapiupload: fix memory leak in _init() function.
32891 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32895 * debian.upstream/control.in:
32896 * docs/reference/plugins/plugins-docs.xml.in:
32897 * docs/reference/plugins/plugins-sections.txt:
32898 * docs/reference/plugins/plugins.types:
32899 * gst/vaapi/Makefile.am:
32900 * gst/vaapi/gstvaapi.c:
32901 * gst/vaapi/gstvaapiupload.c:
32902 * gst/vaapi/gstvaapiupload.h:
32903 Rename vaapiconvert element to vaapiupload.
32905 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32908 Bump version for development.
32910 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32916 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32921 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32923 * gst-libs/gst/vaapi/gstvaapisurface.c:
32924 * gst-libs/gst/vaapi/gstvaapisurface.h:
32925 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32926 * gst/vaapi/gstvaapisink.c:
32927 surface: apply composition to the parent context, if requested.
32929 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32931 * docs/reference/libs/libs-sections.txt:
32932 * gst-libs/gst/vaapi/gstvaapicontext.c:
32933 * gst-libs/gst/vaapi/gstvaapicontext.h:
32934 context: make it possible to apply composition globally.
32936 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32938 * gst-libs/gst/vaapi/gstvaapisurface.c:
32939 surface: fix associate subpicture to not report deassociation errors.
32941 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32943 * gst-libs/gst/vaapi/gstvaapisurface.c:
32944 surface: fix typo in debug message.
32946 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32948 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32949 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32950 * gst-libs/gst/vaapi/gstvaapisurface.c:
32951 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
32953 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32955 * docs/reference/libs/libs-sections.txt:
32956 * gst-libs/gst/vaapi/Makefile.am:
32957 * gst-libs/gst/vaapi/gstvaapicontext.c:
32958 * gst-libs/gst/vaapi/gstvaapisurface.c:
32959 * gst-libs/gst/vaapi/gstvaapisurface.h:
32960 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32961 surface: record parent context.
32963 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32965 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32966 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32967 * gst/vaapi/gstvaapidecode.c:
32968 * gst/vaapi/gstvaapisink.c:
32971 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32973 * gst-libs/gst/vaapi/gstvaapisurface.c:
32974 * gst-libs/gst/vaapi/gstvaapisurface.h:
32975 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32976 * gst/vaapi/gstvaapisink.c:
32977 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
32979 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32982 configure: check for GstVideoOverlayComposition.
32984 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32989 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32991 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32992 converter: add support for GstVideoOverlayComposition planes.
32993 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32995 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32997 * gst/vaapi/gstvaapisink.c:
32998 vaapisink: handle GstVideoOverlayComposition planes.
32999 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33001 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33003 * gst-libs/gst/vaapi/gstvaapisurface.c:
33004 surface: use unscaled overlay rectangle for blending.
33006 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33008 * gst-libs/gst/vaapi/gstvaapisurface.c:
33009 surface: fix VA image leak when an error occurred.
33011 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33013 * gst-libs/gst/vaapi/gstvaapisurface.c:
33014 * gst-libs/gst/vaapi/gstvaapisurface.h:
33015 surface: add helper to handle GstVideoOverlayComposition.
33016 This helper resets the subpictures to reflect the current composition
33017 layers provided with the buffers.
33018 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33020 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33022 * docs/reference/libs/libs-sections.txt:
33023 * gst-libs/gst/vaapi/Makefile.am:
33024 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33025 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33026 * gst/vaapi/gstvaapiconvert.c:
33027 image: add gst_vaapi_image_format_from_video() helper.
33029 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33031 * gst-libs/gst/vaapi/gstvaapiimage.c:
33032 * gst-libs/gst/vaapi/gstvaapiimage.h:
33033 image: allow updates from GstVaapiImageRaw.
33035 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33037 * gst-libs/gst/vaapi/gstvaapiimage.c:
33038 * gst-libs/gst/vaapi/gstvaapiimage.h:
33039 * gst/vaapi/gstvaapiconvert.c:
33040 * tests/test-subpicture.c:
33041 image: allow partial updates.
33043 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33045 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33046 subpicture: fix doc for gst_vaapi_subpicture_set_image().
33048 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33050 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33051 display: fix has_image_format() to check against subpicture formats.
33053 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33055 * tests/test-subpicture.c:
33056 tests: fix subpicture test.
33058 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
33060 * tests/Makefile.am:
33061 * tests/test-subpicture-data.c:
33062 * tests/test-subpicture-data.h:
33063 * tests/test-subpicture.c:
33064 tests: add test for subpictures.
33065 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33067 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33069 * gst/vaapi/gstvaapiconvert.c:
33070 * gst/vaapi/gstvaapidecode.c:
33071 Add missing video context queries.
33072 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33074 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33077 Bump version for development.
33079 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33081 * gst-libs/gst/video/Makefile.am:
33082 * gst-libs/gst/video/gstbasevideocodec.c:
33083 * gst-libs/gst/video/gstbasevideocodec.h:
33084 * gst-libs/gst/video/gstbasevideodecoder.c:
33085 * gst-libs/gst/video/gstbasevideodecoder.h:
33086 * gst-libs/gst/video/gstbasevideoutils.c:
33087 * gst-libs/gst/video/gstbasevideoutils.h:
33088 Drop unused copy of GstBaseVideoDecoder.
33090 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33096 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33099 README: update dependencies.
33101 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33106 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33109 configure: check for GstBaseSink 'query' vfunc.
33111 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33113 * gst/vaapi/Makefile.am:
33114 vaapiplugin: include local build dir to CFLAGS for generated files.
33116 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33119 autogen: don't configure if NO_CONFIGURE variable is set.
33121 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
33123 * gst/vaapi/gstvaapidecode.c:
33124 * gst/vaapi/gstvaapidecode.h:
33125 vaapidecode: return sink caps template if decoder is in NULL state.
33126 Otherwise, the decoder would always create its own X display instead
33127 of probing it from the downstream element, which is not reliable.
33128 e.g. DISPLAY is not :0 or when running on Wayland.
33129 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33131 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33133 * gst/vaapi/gstvaapiconvert.c:
33134 * gst/vaapi/gstvaapidecode.c:
33135 vaapiplugin: properly set surface type to "vaapi" in caps.
33137 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33139 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33140 decoder: drop unused headers.
33142 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33144 * gst/vaapi/gstvaapiconvert.c:
33145 * gst/vaapi/gstvaapidecode.c:
33146 vaapiplugin: properly set opengl support in caps.
33147 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33149 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33151 * gst/vaapi/gstvaapiconvert.c:
33152 * gst/vaapi/gstvaapidecode.c:
33153 vaapiplugin: allocate GLX buffers when supported.
33154 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33156 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33158 * gst-libs/gst/vaapi/Makefile.am:
33159 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33160 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
33161 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
33162 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
33163 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
33164 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
33165 videobuffer: add GLX buffer support.
33166 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33168 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33170 * gst-libs/gst/vaapi/Makefile.am:
33171 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33172 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33173 Port to GstSurfaceBuffer interface.
33174 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33176 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33178 * gst/vaapi/gstvaapidecode.c:
33179 * gst/vaapi/gstvaapisink.c:
33180 Don't use downstream buffer allocation.
33181 With the new video/x-surface abstraction, we can't rely on having a VA
33182 specific sink downstream. Also, there was no particular reason to do that.
33183 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33185 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33187 * gst-libs/gst/vaapi/Makefile.am:
33188 * gst-libs/gst/vaapi/gstvaapicontext.c:
33189 * gst-libs/gst/vaapi/gstvaapisurface.h:
33190 * gst/vaapi/gstvaapiconvert.c:
33191 * gst/vaapi/gstvaapisink.c:
33192 * tests/Makefile.am:
33193 * tests/test-surfaces.c:
33194 Change caps to use new video/x-surface generic type.
33195 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33197 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33200 * gst-libs/gst/vaapi/Makefile.am:
33201 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33202 * gst/vaapi/Makefile.am:
33203 * gst/vaapi/gstvaapiconvert.c:
33204 * gst/vaapi/gstvaapidecode.c:
33205 * gst/vaapi/gstvaapipluginutil.c:
33206 * gst/vaapi/gstvaapipluginutil.h:
33207 * gst/vaapi/gstvaapisink.c:
33208 * gst/vaapi/gstvaapisink.h:
33209 Port to GstVideoContext interface.
33210 This new interface allows for upstream and downstream display sharing
33211 that works in both static and dynamic pipelines.
33212 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33214 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33216 * gst/vaapi/gstvaapisink.c:
33217 vaapisink: use GST_ERROR to print error messages.
33219 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33221 * gst/vaapi/Makefile.am:
33222 vaapiplugin: link against VA/GLX when enabled.
33224 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33226 * gst/vaapi/gstvaapiconvert.c:
33227 * gst/vaapi/gstvaapisink.c:
33228 Add Intel copyright information.
33230 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33232 * gst/vaapi/gstvaapisink.c:
33233 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
33235 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33239 * gst-libs/gst/Makefile.am:
33240 * gst-libs/gst/gstutils_version.h.in:
33241 Add new GStreamer version check utilities.
33243 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
33245 * gst/vaapi/gstvaapisink.c:
33246 vaapisink: replace the deprecated xoverlay API with the new one.
33247 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33249 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33252 configure: allow for pre-releases.
33254 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33256 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33257 display: destroy display on creation failure.
33258 This allows element to detect that the display creation has actually
33260 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33262 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33264 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33265 display: don't crash when config is empty.
33266 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33268 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33271 * debian.upstream/copyright:
33272 doc: mention Collabora copyrights.
33274 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33277 .gitignore: refine for generated docs.
33279 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33282 * docs/reference/plugins/Makefile.am:
33284 * gst/vaapi/Makefile.am:
33285 * gst/vaapi/gstvaapi.c:
33286 * gst/vaapi/gstvaapiconvert.c:
33287 * gst/vaapi/gstvaapiconvert.h:
33288 * gst/vaapi/gstvaapidecode.c:
33289 * gst/vaapi/gstvaapidecode.h:
33290 * gst/vaapi/gstvaapisink.c:
33291 * gst/vaapi/gstvaapisink.h:
33292 * gst/vaapiconvert/Makefile.am:
33293 * gst/vaapidecode/Makefile.am:
33294 Group all plugins into the same bundle
33295 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33297 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33300 Bump version for development.
33302 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33305 * debian.upstream/control.in:
33306 debian: build against upstream libva packages.
33308 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33310 * docs/reference/libs/Makefile.am:
33311 * docs/reference/plugins/Makefile.am:
33312 * tests/Makefile.am:
33313 Fix build on Ubuntu 11.10 (Oneric).
33315 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33320 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33324 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33326 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33328 * gst/vaapiconvert/gstvaapiconvert.c:
33329 * gst/vaapidecode/gstvaapidecode.c:
33330 * gst/vaapisink/gstvaapisink.c:
33331 Update license in plugin definition
33332 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33334 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33337 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33338 decoder: fix use of invalid data at the end-of-stream.
33340 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33342 * gst/vaapiconvert/gstvaapiconvert.c:
33343 vaapiconvert: fix some warnings.
33345 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33348 * debian.upstream/changelog.in:
33349 * debian.upstream/control.in:
33350 * debian.upstream/copyright:
33351 * gst/vaapiconvert/gstvaapiconvert.c:
33352 * gst/vaapidecode/gstvaapidecode.c:
33353 * gst/vaapisink/gstvaapisink.c:
33354 Update with my current e-mail address.
33356 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33360 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
33362 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
33366 * tests/test-decode.c:
33367 * tests/test-decode.h:
33368 * tests/test-display.c:
33369 * tests/test-h264.c:
33370 * tests/test-h264.h:
33371 * tests/test-mpeg2.c:
33372 * tests/test-mpeg2.h:
33373 * tests/test-surfaces.c:
33374 * tests/test-textures.c:
33375 * tests/test-vc1.c:
33376 * tests/test-vc1.h:
33377 * tests/test-windows.c:
33378 switch tests licence to LGPL v2.1+
33380 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
33384 * debian.upstream/copyright:
33385 * gst/vaapiconvert/gstvaapiconvert.c:
33386 * gst/vaapiconvert/gstvaapiconvert.h:
33387 * gst/vaapidecode/gstvaapidecode.c:
33388 * gst/vaapidecode/gstvaapidecode.h:
33389 * gst/vaapisink/gstvaapisink.c:
33390 * gst/vaapisink/gstvaapisink.h:
33391 move plugins to LGPL v2.1+
33393 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33395 * gst/vaapidecode/gstvaapidecode.c:
33396 vaapidecode: fix sink caps to not expose size information.
33397 This fixes this particular issue:
33398 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
33399 a real subset of its template caps
33401 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33404 * gst/vaapidecode/gstvaapidecode.c:
33405 vaapidecode: fix decoding of MPEG-2 PS files.
33407 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33409 * gst-libs/gst/vaapi/Makefile.am:
33410 Cosmetics (sort source files).
33412 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33414 * gst/vaapiconvert/gstvaapiconvert.c:
33415 * gst/vaapiconvert/gstvaapiconvert.h:
33416 vaapiconvert: fix direct-rendering caps detection.
33418 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33420 * gst-libs/gst/vaapi/gstvaapiimage.c:
33421 Fix gst_vaapi_image_new_with_image().
33423 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33425 * gst/vaapiconvert/gstvaapiconvert.c:
33426 vaapiconvert: warn when surface failed to be updated with image.
33428 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33430 * gst/vaapiconvert/gstvaapiconvert.c:
33431 vaapiconvert: fix autodetection for vaDeriveImage() support.
33433 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33435 * gst/vaapiconvert/gstvaapiconvert.c:
33436 vaapiconvert: fix memory leak (VA surface image).
33438 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33441 * gst/vaapiconvert/gstvaapiconvert.c:
33442 vaapiconvert: fix direct-rendering mode.
33444 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33446 * docs/reference/libs/libs-sections.txt:
33447 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33448 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33449 Add gst_vaapi_video_buffer_new_from_buffer().
33450 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
33451 Any image, surface or surface proxy will be inherited from the source buffer
33452 if it is a GstVaapiVideoBuffer.
33454 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33456 * gst/vaapiconvert/gstvaapiconvert.c:
33457 vaapiconvert: protect access to direct_rendering.
33459 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33461 * gst/vaapiconvert/gstvaapiconvert.c:
33462 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
33464 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33468 * debian.upstream/copyright:
33469 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33470 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33471 * gst-libs/gst/vaapi/gstvaapisurface.h:
33472 * gst/vaapidecode/gstvaapidecode.c:
33473 * gst/vaapidecode/gstvaapidecode.h:
33474 Add Intel copyright information.
33476 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33481 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33483 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33484 Fix build with newer FFmpeg versions.
33486 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33488 * gst/vaapidecode/gstvaapidecode.c:
33489 * gst/vaapidecode/gstvaapidecode.h:
33490 Fix decoding of MPEG-2 TS files.
33492 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33494 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33495 Report caps update only once per video resolution change.
33497 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33499 * gst-libs/gst/vaapi/gstvaapisurface.h:
33500 Add canonical form (type name) of VA surface caps.
33502 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33505 Bump version for development.
33507 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33510 Use pretty build output with automake >= 1.11.
33512 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33514 * gst/vaapiconvert/Makefile.am:
33515 * gst/vaapidecode/Makefile.am:
33516 * gst/vaapisink/Makefile.am:
33517 * tests/Makefile.am:
33518 Fix build with libva headers not in a standard include dir.
33520 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33525 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33527 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33528 * gst-libs/gst/vaapi/gstvaapicompat.h:
33529 * gst-libs/gst/vaapi/gstvaapicontext.c:
33530 * gst-libs/gst/vaapi/gstvaapicontext.h:
33531 * gst-libs/gst/vaapi/gstvaapidebug.h:
33532 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33533 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33534 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33535 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33536 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33537 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33538 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33539 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33540 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33541 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33542 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33543 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33544 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33545 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33546 * gst-libs/gst/vaapi/gstvaapiimage.c:
33547 * gst-libs/gst/vaapi/gstvaapiimage.h:
33548 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33549 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33550 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33551 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33552 * gst-libs/gst/vaapi/gstvaapiobject.c:
33553 * gst-libs/gst/vaapi/gstvaapiobject.h:
33554 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33555 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33556 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33557 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33558 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33559 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33560 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33561 * gst-libs/gst/vaapi/gstvaapisurface.c:
33562 * gst-libs/gst/vaapi/gstvaapisurface.h:
33563 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33564 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33565 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33566 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33567 * gst-libs/gst/vaapi/gstvaapitexture.c:
33568 * gst-libs/gst/vaapi/gstvaapitexture.h:
33569 * gst-libs/gst/vaapi/gstvaapitypes.h:
33570 * gst-libs/gst/vaapi/gstvaapiutils.c:
33571 * gst-libs/gst/vaapi/gstvaapiutils.h:
33572 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33573 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33574 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33575 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33576 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33577 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33578 * gst-libs/gst/vaapi/gstvaapivalue.c:
33579 * gst-libs/gst/vaapi/gstvaapivalue.h:
33580 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33581 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33582 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33583 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33584 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33585 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33586 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33587 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33588 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33589 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33590 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33591 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33592 * gst/vaapiconvert/gstvaapiconvert.c:
33593 * gst/vaapiconvert/gstvaapiconvert.h:
33594 * gst/vaapidecode/gstvaapidecode.c:
33595 * gst/vaapidecode/gstvaapidecode.h:
33596 * gst/vaapisink/gstvaapisink.c:
33597 * gst/vaapisink/gstvaapisink.h:
33600 * tests/test-decode.c:
33601 * tests/test-decode.h:
33602 * tests/test-display.c:
33603 * tests/test-h264.c:
33604 * tests/test-h264.h:
33605 * tests/test-mpeg2.c:
33606 * tests/test-mpeg2.h:
33607 * tests/test-surfaces.c:
33608 * tests/test-textures.c:
33609 * tests/test-vc1.c:
33610 * tests/test-vc1.h:
33611 * tests/test-windows.c:
33612 Update copyright notice.
33614 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33617 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33618 * gst-libs/gst/vaapi/gstvaapisurface.c:
33619 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33620 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33621 * gst-libs/gst/vaapi/gstvaapitexture.c:
33622 * gst-libs/gst/vaapi/gstvaapiutils.c:
33623 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33624 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33625 * gst-libs/gst/vaapi/gstvaapivalue.c:
33626 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33627 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33628 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33629 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33630 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33631 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33632 Fix licensing terms.
33634 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33639 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33641 * debian.upstream/copyright:
33642 Fix license terms...
33644 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33646 * gst/vaapisink/gstvaapisink.c:
33647 Render pretty background only in use-reflection=true mode.
33649 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33654 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33656 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33657 Drop the GLX 1.3 requirement.
33659 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33661 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33662 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33663 Call the GLX/Pixmap related functions through the vtable.
33665 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33669 * gst-libs/gst/vaapi/Makefile.am:
33670 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33671 Drop dependency on libavformat.
33673 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33675 * gst-libs/gst/video/gstbasevideodecoder.c:
33676 * gst-libs/gst/video/gstbasevideodecoder.h:
33677 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
33679 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33681 * gst-libs/gst/video/gstbasevideodecoder.c:
33682 * gst-libs/gst/video/gstbasevideoutils.c:
33683 * gst-libs/gst/video/gstbasevideoutils.h:
33684 Drop superfluous functions.
33686 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33688 * gst-libs/gst/video/gstbasevideodecoder.c:
33689 Really drop any dependency on libgstvideo. i.e. inline the helpers.
33691 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33693 * gst-libs/gst/video/gstbasevideodecoder.c:
33694 Further drop dependency on libgstvideo.
33696 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33698 * gst-libs/gst/video/Makefile.am:
33699 * gst-libs/gst/video/gstbasevideocodec.c:
33700 * gst-libs/gst/video/gstbasevideocodec.h:
33701 * gst-libs/gst/video/gstbasevideodecoder.c:
33702 * gst-libs/gst/video/gstbasevideodecoder.h:
33703 * gst-libs/gst/video/gstbasevideoutils.c:
33704 * gst-libs/gst/video/gstbasevideoutils.h:
33705 Add GstBaseVideoDecoder from gst-plugins-bad git.
33707 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33709 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33710 Fix GLX version check.
33712 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33716 Bump version for development.
33718 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33721 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33722 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
33724 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33729 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33731 * gst-libs/gst/vaapi/gstvaapicompat.h:
33732 Fix build with older VA-API 0.29-sds.
33734 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33736 * gst/vaapisink/gstvaapisink.c:
33737 * gst/vaapisink/gstvaapisink.h:
33738 Fix upscaling in foreign window (Totem).
33740 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33742 * gst/vaapisink/gstvaapisink.c:
33743 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
33745 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33748 * gst/vaapisink/gstvaapisink.c:
33749 Fix video rendering rect within an embedder window (Totem).
33751 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33754 * gst/vaapisink/gstvaapisink.c:
33755 Disable GLX rendering when vaapisink uses a foreign X window.
33757 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33759 * gst/vaapisink/gstvaapisink.c:
33760 Simplify GLX rendering code.
33762 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33765 Bump version for development.
33767 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33772 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33774 * gst/vaapidecode/gstvaapidecode.c:
33775 Wait for at most one second for a VA surface to become available.
33777 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33781 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
33783 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33787 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33788 Fix decoder caps to report codec aliases.
33790 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33793 * gst/vaapidecode/gstvaapidecode.c:
33794 * gst/vaapidecode/gstvaapidecode.h:
33795 Fix VC-1 decoding through the playbin2 pipeline.
33797 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33799 * docs/reference/libs/libs-sections.txt:
33800 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33801 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33802 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33803 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33804 Regularly update and expose decoder caps.
33806 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33808 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33809 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33810 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33811 Add mechanism to reinsert buffer leftovers into the queue.
33813 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33816 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33817 Fix memory leak of encoded buffers.
33819 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33821 * docs/reference/libs/libs-sections.txt:
33822 * gst-libs/gst/vaapi/gstvaapicontext.c:
33823 * gst-libs/gst/vaapi/gstvaapicontext.h:
33824 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33825 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33826 Check for out-of-free-surfaces condition.
33828 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33830 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33831 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
33833 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33835 * gst/vaapisink/gstvaapisink.c:
33836 Improve debug info for gst_vaapisink_ensure_render_rect().
33838 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33841 Bump version for development.
33843 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33848 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33850 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33851 Improve previous fix.
33853 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33856 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33857 Fix a crash in the FFmpeg decoder on close.
33859 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33862 Sort platforms by name.
33864 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33868 Bump version for development.
33870 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33872 * gst/vaapisink/gstvaapisink.c:
33873 Add debug info for _show_frame().
33875 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33878 Nuke older build dir.
33880 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33882 * debian.upstream/control.in:
33883 Fix packaging deps.
33885 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33890 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33893 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33894 Fix OpenGL texture internal format (Clutter).
33896 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33901 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33903 * gst/vaapisink/gstvaapisink.c:
33904 Debug video & display PARs.
33906 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33908 * gst/vaapisink/gstvaapisink.c:
33909 Use XGetGeometry() to retrieve the window size.
33911 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33913 * gst/vaapisink/gstvaapisink.c:
33916 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33918 * gst/vaapisink/gstvaapisink.c:
33919 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
33921 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33924 Drop obsolete comment.
33926 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33931 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33933 * gst/vaapidecode/gstvaapidecode.c:
33934 Fix GstVaapiDisplay refcounting in vaapidecode.
33936 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33938 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33941 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33943 * gst/vaapisink/gstvaapisink.c:
33944 * gst/vaapisink/gstvaapisink.h:
33945 Fix render rect when the foreign window size changes.
33947 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33951 * gst/vaapisink/Makefile.am:
33952 * gst/vaapisink/gstvaapisink.c:
33953 Add GstXOverlay interface to vaapisink (e.g. for Totem).
33955 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33958 Update deps to match configure.ac versions.
33960 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33962 * gst/vaapiconvert/gstvaapiconvert.c:
33963 * gst/vaapidecode/gstvaapidecode.c:
33964 * gst/vaapisink/gstvaapisink.c:
33967 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33970 * gst/vaapidecode/Makefile.am:
33971 * gst/vaapidecode/gstvaapidecode.c:
33972 * gst/vaapidecode/gstvaapidecode.h:
33973 Fix vaapidecode to expose the HW supported caps only.
33975 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33977 * gst/vaapidecode/gstvaapidecode.c:
33978 Initialize decoder earlier.
33980 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33984 * gst/vaapidecode/gstvaapidecode.c:
33985 Fix integration within the playbin2 pipeline.
33987 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33989 * docs/reference/libs/Makefile.am:
33990 Exclude gstvaapiutils_gst.h from docs for now.
33992 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33994 * gst/vaapiconvert/gstvaapiconvert.c:
33995 * gst/vaapidecode/gstvaapidecode.c:
33996 * gst/vaapisink/gstvaapisink.c:
33997 Raise VA-API plugins ranks.
33999 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34001 * gst-libs/gst/vaapi/Makefile.am:
34002 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
34003 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
34004 Add gst_vaapi_display_lookup_downstream() helper.
34006 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34008 * gst/vaapidecode/gstvaapidecode.c:
34009 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
34011 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34013 * docs/reference/libs/libs-sections.txt:
34014 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34015 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34016 * gst/vaapisink/gstvaapisink.c:
34017 Expose VA display through GstVaapiVideoBuffer.
34019 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34021 * gst/vaapidecode/gstvaapidecode.c:
34022 Simplify gst_vaapidecode_set_caps() and fix memory leak.
34024 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34026 * docs/reference/libs/libs-sections.txt:
34027 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34028 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34029 Expose video pool display.
34031 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34033 * gst-libs/gst/vaapi/gstvaapivideosink.c:
34034 Stop iteration if there is no more element to examine.
34036 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34038 * gst/vaapiconvert/gstvaapiconvert.c:
34039 * gst/vaapidecode/gstvaapidecode.c:
34040 * gst/vaapisink/gstvaapisink.c:
34041 Improve plugin details.
34043 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34045 * gst-libs/gst/vaapi/gstvaapisurface.h:
34046 * gst/vaapiconvert/gstvaapiconvert.c:
34047 * gst/vaapidecode/gstvaapidecode.c:
34048 * gst/vaapisink/gstvaapisink.c:
34049 Factor out VA surface caps.
34051 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34053 * gst/vaapidecode/gstvaapidecode.c:
34054 Add gst_vaapidecode_ensure_display() helper for set-caps.
34056 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34059 Bump version for development.
34061 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34064 Really make it 0.2.0.
34066 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34071 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34073 * docs/reference/libs/Makefile.am:
34074 Don't exclude GstVaapiParamSpecs.
34076 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34078 * docs/reference/libs/Makefile.am:
34079 * docs/reference/libs/libs-sections.txt:
34080 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34081 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34084 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34086 * gst/vaapiconvert/gstvaapiconvert.c:
34087 * gst/vaapidecode/gstvaapidecode.c:
34088 * gst/vaapisink/gstvaapisink.c:
34089 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.
34091 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34093 * gst-libs/gst/vaapi/Makefile.am:
34094 Really link all helper libraries with libtool -no-undefined.
34096 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34098 * gst-libs/gst/vaapi/Makefile.am:
34099 Link helper libraries with libtool -no-undefined.
34101 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34104 * debian.upstream/gstreamer-vaapi.install.in:
34105 * gst/vaapiconvert/Makefile.am:
34106 * gst/vaapidecode/Makefile.am:
34107 * gst/vaapisink/Makefile.am:
34108 Don't build plugins with SONAME. Make them plain *.so.
34110 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34113 Improve documentation for release.
34115 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34117 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34118 Fix build with older VA-API 0.29.
34120 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34125 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34127 * tests/Makefile.am:
34130 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34132 * docs/reference/libs/Makefile.am:
34133 * docs/reference/libs/libs-docs.xml.in:
34134 * docs/reference/libs/libs-sections.txt:
34135 * docs/reference/libs/libs.core.types:
34136 * docs/reference/plugins/Makefile.am:
34137 * docs/reference/plugins/plugins-docs.xml.in:
34138 * docs/reference/plugins/plugins-sections.txt:
34139 * docs/reference/plugins/plugins.types:
34142 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34144 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34147 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34149 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34150 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34151 * gst/vaapidecode/gstvaapidecode.c:
34152 * tests/test-decode.c:
34153 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
34155 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34157 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34158 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34159 Extract framerate information from caps.
34161 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34163 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34164 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34165 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34166 Move caps initialization to parent class.
34168 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34170 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34173 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34175 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34178 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34180 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34181 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34182 More simplifications.
34184 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34186 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34187 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34188 * tests/test-decode.c:
34189 Simplify GstVaapiDecoder API.
34191 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34193 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34194 Drop obsolete defs.
34196 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34198 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34199 Drop obsolete decls.
34201 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34203 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34204 * gst/vaapidecode/gstvaapidecode.c:
34205 Add more aliases for MPEG-4 decoding.
34207 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34209 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34210 Use avctx->coded_{width,height} info to create the VA context.
34212 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34214 * tests/test-decode.c:
34215 * tests/test-decode.h:
34216 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
34218 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34220 * tests/test-decode.c:
34221 * tests/test-decode.h:
34222 * tests/test-h264.c:
34223 * tests/test-h264.h:
34224 * tests/test-mpeg2.c:
34225 * tests/test-mpeg2.h:
34226 * tests/test-vc1.c:
34227 * tests/test-vc1.h:
34228 Simplify tests info.
34230 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34232 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34233 Try to improve heuristics to use an AVCodecContextParser.
34235 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34237 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34238 Fix VC-1 decoding, it does not require any specific parser.
34240 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34242 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34243 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
34245 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34247 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34248 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34249 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
34251 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34253 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34254 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34255 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34256 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34257 * gst/vaapidecode/gstvaapidecode.c:
34258 * gst/vaapidecode/gstvaapidecode.h:
34259 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
34261 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34263 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34264 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34265 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34266 Improve WMV3 detection yet further.
34268 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34270 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34271 Fix detection of plain old WMV3 contents.
34273 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34275 * tests/test-vc1.c:
34276 Add End-of-Sequence start code.
34278 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34280 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34281 * gst/vaapidecode/gstvaapidecode.c:
34282 Fix VC-1 detection.
34284 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34286 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34287 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
34289 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34291 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34292 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34293 Drop obsolete (and wrong) code.
34295 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34297 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34298 Cosmetics (spelling).
34300 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34302 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34303 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34304 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34305 Try to fix timestamps (step 1). Looks OK on H55.
34307 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34309 * debian.upstream/Makefile.am:
34310 Ship with COPYING.LIB.
34312 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34317 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34318 * gst-libs/gst/vaapi/gstvaapicompat.h:
34319 * gst-libs/gst/vaapi/gstvaapicontext.c:
34320 * gst-libs/gst/vaapi/gstvaapicontext.h:
34321 * gst-libs/gst/vaapi/gstvaapidebug.h:
34322 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34323 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34324 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34325 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34326 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34327 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34328 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34329 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34330 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34331 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34332 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34333 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34334 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34335 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34336 * gst-libs/gst/vaapi/gstvaapiimage.c:
34337 * gst-libs/gst/vaapi/gstvaapiimage.h:
34338 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34339 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34340 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34341 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
34342 * gst-libs/gst/vaapi/gstvaapiobject.c:
34343 * gst-libs/gst/vaapi/gstvaapiobject.h:
34344 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34345 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34346 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
34347 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34348 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34349 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34350 * gst-libs/gst/vaapi/gstvaapisurface.h:
34351 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
34352 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34353 * gst-libs/gst/vaapi/gstvaapitexture.h:
34354 * gst-libs/gst/vaapi/gstvaapitypes.h:
34355 * gst-libs/gst/vaapi/gstvaapiutils.h:
34356 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34357 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34358 * gst-libs/gst/vaapi/gstvaapivalue.h:
34359 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34360 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34361 * gst-libs/gst/vaapi/gstvaapivideosink.h:
34362 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34363 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34364 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34365 Relicense gst-libs/ code to LGPL v2.1+.
34367 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34369 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34370 Drop extraneous comma.
34372 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34374 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34375 Drop variant=itu field to help codec detection.
34377 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34379 * gst/vaapidecode/gstvaapidecode.c:
34380 Decode as many surfaces as possible in gst_vaapidecode_step().
34382 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34384 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34385 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34386 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34387 * gst/vaapidecode/gstvaapidecode.c:
34388 * gst/vaapidecode/gstvaapidecode.h:
34389 * tests/test-decode.c:
34390 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
34392 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34397 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34399 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34400 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
34402 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34404 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34405 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34406 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
34408 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34410 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34411 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34412 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
34414 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34416 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34417 Document H.264 / AVC1 format case better.
34419 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34421 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34422 Fix H.264 decoding with AVC1 format bitstreams.
34424 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34426 * gst/vaapidecode/gstvaapidecode.c:
34427 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
34429 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34431 * gst/vaapisink/gstvaapisink.c:
34432 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
34434 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34436 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34437 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34438 Export gst_vaapi_video_buffer_new().
34440 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34442 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34443 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
34445 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34450 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34455 * gst/vaapidecode/Makefile.am:
34456 * gst/vaapidecode/gstvaapidecode.c:
34457 * gst/vaapidecode/gstvaapidecode.h:
34458 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
34460 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34462 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34463 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34464 Add gst_vaapi_decoder_pause().
34466 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34468 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34469 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34470 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34471 Use a GstTask with start/stop semantics for the decoder thread.
34473 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34475 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34476 Drop extraneous var.
34478 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34480 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34481 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34482 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
34484 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34486 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34487 Fix gst_vaapi_decoder_get_surface() status.
34489 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34491 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34492 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34493 Try to set correct timestamps to the decoded surface proxy.
34495 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34497 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34498 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34499 * tests/test-decode.c:
34500 Add timestamps to GstVaapiSurfaceProxy.
34502 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34504 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34505 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
34507 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34509 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34510 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
34512 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34514 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34515 Prefer profile from codec-data if any was found there.
34517 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34519 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34520 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
34522 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34524 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34525 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
34527 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34529 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34530 Fix VC-1 codec initialization, it really needs an extradata buffer.
34532 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34534 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34535 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34536 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.
34538 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34540 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34541 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
34543 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34545 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34546 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34547 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34548 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34549 * tests/test-decode.c:
34550 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
34552 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34554 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34555 Cosmetics (weird indentation).
34557 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34559 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34560 Cosmetics (extraneous variable, debug message).
34562 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34565 Fix check for VA-API enabled FFmpeg.
34567 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34569 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34570 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34571 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34572 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34573 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
34575 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34577 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34578 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34579 Add more error codes. Fix documentation.
34581 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34583 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34584 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
34586 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34588 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34589 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34590 * tests/test-decode.c:
34591 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
34593 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34595 * tests/test-vc1.c:
34596 Drop useless End-of-Sequence marker.
34598 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34600 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34601 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.
34603 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34605 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34606 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34607 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.
34609 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34611 * tests/test-h264.c:
34612 * tests/test-vc1.c:
34613 Regenerate correct clips.
34615 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34617 * tests/Makefile.am:
34618 * tests/test-decode.c:
34619 * tests/test-h264.c:
34620 * tests/test-h264.h:
34621 * tests/test-mpeg2.c:
34622 * tests/test-mpeg2.h:
34623 * tests/test-vc1.c:
34624 * tests/test-vc1.h:
34625 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
34626 XXX: only VC-1 decoding works at this time because of awful
34627 bugs left in GstVaapiDecoderFfmpeg et al.
34629 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34632 * gst-libs/gst/vaapi/Makefile.am:
34633 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34634 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34635 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34636 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34637 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34638 Add initial (multithreaded) decoder based on FFmpeg.
34639 There are tons of bugs left:
34640 - Decoder API not nice enough with error conditions
34641 - FFmpeg parser is sometimes broken
34642 - Packets queue can be lost
34644 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34646 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34647 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34648 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
34650 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34652 * gst-libs/gst/vaapi/gstvaapicontext.c:
34653 * gst-libs/gst/vaapi/gstvaapicontext.h:
34654 Add VA context abstraction.
34656 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34658 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34659 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
34661 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34663 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34664 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34665 Add a means to cap the number of objects allocated in the pool.
34667 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34669 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34670 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34671 Add VA entrypoint abstraction.
34673 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34675 * docs/reference/libs/libs-docs.xml.in:
34676 * docs/reference/libs/libs-sections.txt:
34677 * gst-libs/gst/vaapi/Makefile.am:
34678 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34679 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34680 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34681 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34682 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34683 * tests/test-display.c:
34684 Add VA profile abstraction.
34686 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34688 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34689 Fix OpenGL rendering on G45 systems.
34691 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34693 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34694 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
34696 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34698 * gst-libs/gst/vaapi/gstvaapitexture.c:
34699 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34700 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34701 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.
34703 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34705 * gst-libs/gst/vaapi/gstvaapitexture.c:
34706 Fix get-out conditions.
34708 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34710 * gst-libs/gst/vaapi/gstvaapitexture.c:
34711 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34712 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.
34714 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34716 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34719 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34721 * docs/reference/libs/libs-sections.txt:
34722 * gst-libs/gst/vaapi/Makefile.am:
34723 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34724 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34725 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34726 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34727 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34728 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34729 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34730 * gst-libs/gst/vaapi/gstvaapitexture.c:
34731 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34732 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34733 * tests/test-windows.c:
34734 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
34736 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34738 * gst-libs/gst/vaapi/Makefile.am:
34739 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34740 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34741 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34742 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34743 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34744 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34745 * gst-libs/gst/vaapi/gstvaapiimage.c:
34746 * gst-libs/gst/vaapi/gstvaapiobject.c:
34747 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34748 * gst-libs/gst/vaapi/gstvaapisurface.c:
34749 * gst-libs/gst/vaapi/gstvaapitexture.c:
34750 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34751 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34752 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34753 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
34755 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34757 * gst-libs/gst/vaapi/gstvaapitexture.c:
34758 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34759 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34760 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34761 Improve handling of GL contexts.
34763 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34768 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34771 Bump version for development.
34773 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34776 * debian.upstream/Makefile.am:
34777 * debian.upstream/control.in:
34778 Rename -dev package to libgstvaapi-dev.
34780 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34786 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34788 * gst-libs/gst/vaapi/gstvaapiutils.c:
34789 Fix build with VA-API < 0.30.
34791 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34794 * gst-libs/gst/vaapi/gstvaapicompat.h:
34795 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34796 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34797 * gst-libs/gst/vaapi/gstvaapitexture.c:
34798 * tests/test-display.c:
34799 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
34801 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34803 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34804 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34805 Add TFP and FBO helpers.
34807 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34809 * gst-libs/gst/vaapi/gstvaapiutils.c:
34810 * gst-libs/gst/vaapi/gstvaapiutils.h:
34811 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
34813 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34815 * gst-libs/gst/vaapi/gstvaapitexture.c:
34816 * gst-libs/gst/vaapi/gstvaapiutils.c:
34817 * gst-libs/gst/vaapi/gstvaapiutils.h:
34818 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34819 Use a shorter function name.
34821 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34823 * docs/reference/libs/libs-sections.txt:
34824 * gst-libs/gst/vaapi/gstvaapisurface.c:
34825 * gst-libs/gst/vaapi/gstvaapisurface.h:
34826 * gst-libs/gst/vaapi/gstvaapiutils.c:
34827 * gst-libs/gst/vaapi/gstvaapiutils.h:
34828 Add gst_vaapi_surface_query_status() wrapper.
34830 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34832 * docs/reference/plugins/Makefile.am:
34833 Fix leftover during migration.
34835 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34839 * docs/reference/plugins/Makefile.am:
34841 * gst/vaapiconvert/Makefile.am:
34842 * gst/vaapiconvert/gstvaapiconvert.c:
34843 * gst/vaapiconvert/gstvaapiconvert.h:
34844 * gst/vaapisink/Makefile.am:
34845 * gst/vaapisink/gstvaapisink.c:
34846 * gst/vaapisink/gstvaapisink.h:
34847 Rename to gst/ as sys/ was too vague.
34849 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34851 * gst-libs/gst/vaapi/gstvaapiimage.c:
34852 * gst-libs/gst/vaapi/gstvaapiimage.h:
34853 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34854 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34855 * gst-libs/gst/vaapi/gstvaapisurface.c:
34856 * gst-libs/gst/vaapi/gstvaapisurface.h:
34857 Try to not reference VA-API types directly.
34859 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34861 * sys/vaapisink/gstvaapisink.c:
34862 Fix reflection code to preserve aspect ratio.
34864 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34866 * sys/vaapisink/gstvaapisink.c:
34867 * sys/vaapisink/gstvaapisink.h:
34868 Fix fullscreen mode.
34870 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34872 * sys/vaapisink/gstvaapisink.c:
34873 * sys/vaapisink/gstvaapisink.h:
34874 Add OpenGL reflection effect ("use-reflection").
34876 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34879 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34880 Use a projection suitable for rotation around the Y axis.
34882 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34885 * sys/vaapisink/Makefile.am:
34886 * sys/vaapisink/gstvaapisink.c:
34887 * sys/vaapisink/gstvaapisink.h:
34888 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
34890 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34893 * debian.upstream/Makefile.am:
34894 * debian.upstream/control.in:
34895 * debian.upstream/libgstvaapi-glx.install.in:
34896 Add libgstvaapi-glx-0 package.
34898 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34900 * pkgconfig/Makefile.am:
34901 Really fix make distclean.
34903 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34905 * docs/reference/libs/Makefile.am:
34908 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34910 * pkgconfig/Makefile.am:
34911 Fix make distclean.
34913 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34915 * tests/Makefile.am:
34918 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34920 * docs/reference/libs/Makefile.am:
34921 * docs/reference/libs/libs.core.types:
34922 * docs/reference/libs/libs.glx.types:
34923 * docs/reference/libs/libs.x11.types:
34926 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34928 * sys/vaapisink/gstvaapisink.h:
34929 Fix build without GLX.
34931 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34936 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34938 * sys/vaapisink/Makefile.am:
34939 * sys/vaapisink/gstvaapisink.c:
34940 * sys/vaapisink/gstvaapisink.h:
34941 Add VA/GLX support to vaapisink.
34943 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34945 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34946 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34947 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34948 Add glXSwapBuffers() workaround for NVIDIA.
34950 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34952 * tests/Makefile.am:
34953 * tests/test-textures.c:
34954 Improve VA/GLX textures test.
34956 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34958 * gst-libs/gst/vaapi/gstvaapitexture.c:
34959 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34960 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34961 Fix texture rendering.
34963 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34965 * docs/reference/libs/libs-docs.xml.in:
34966 * docs/reference/libs/libs-sections.txt:
34967 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34968 * gst-libs/gst/vaapi/gstvaapitexture.c:
34971 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34973 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34974 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34975 Add gst_vaapi_window_glx_put_texture() helper.
34977 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34979 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34982 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34986 * tests/test-windows.c:
34989 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34991 * gst-libs/gst/vaapi/Makefile.am:
34992 * gst-libs/gst/vaapi/gstvaapitexture.c:
34993 * gst-libs/gst/vaapi/gstvaapitexture.h:
34994 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34995 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34996 Add initial VA/GLX texture abstraction though the API is not good enough yet.
34998 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35000 * docs/reference/libs/libs-sections.txt:
35001 * gst-libs/gst/vaapi/gstvaapiobject.c:
35002 * gst-libs/gst/vaapi/gstvaapiobject.h:
35003 Add gst_vaapi_object_{,un}lock_display() helpers.
35005 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35007 * tests/Makefile.am:
35010 * tests/test-windows.c:
35011 Factor out image utilities.
35013 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35015 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35016 MT-Safe: lock display.
35018 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35020 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
35021 Make sure window resize completed prior to resizing the GL viewport.
35023 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35025 * gst-libs/gst/vaapi/Makefile.am:
35026 gstvaapicompat.h is a private header, don't install it.
35028 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35030 * docs/reference/libs/libs-sections.txt:
35031 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35032 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35033 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35034 Add gst_vaapi_display_{sync,flush}() helpers.
35036 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35038 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35039 * sys/vaapisink/gstvaapisink.c:
35040 * sys/vaapisink/gstvaapisink.h:
35041 Add "synchronous" mode.
35043 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35045 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35046 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35047 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
35049 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35051 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
35052 Restore GLX context only if there is one.
35054 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35056 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
35057 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
35058 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
35059 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
35060 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
35062 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35064 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35065 Check GstVaapiWindow::render() is available prior to calling it.
35067 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35069 * tests/Makefile.am:
35070 * tests/test-display.c:
35071 * tests/test-textures.c:
35072 Add VA/GLX display tests.
35074 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35077 * gst-libs/gst/vaapi/Makefile.am:
35080 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35082 * docs/reference/libs/Makefile.am:
35083 * docs/reference/libs/libs-docs.xml.in:
35084 * docs/reference/libs/libs-sections.txt:
35085 * docs/reference/libs/libs.types:
35086 Add missing API documentation.
35088 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35091 * gst-libs/gst/vaapi/Makefile.am:
35092 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
35093 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
35094 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
35095 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
35096 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
35097 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
35098 * pkgconfig/Makefile.am:
35099 * pkgconfig/gstreamer-vaapi-glx.pc.in:
35100 * tests/Makefile.am:
35101 * tests/test-textures.c:
35102 Add initial VA/GLX support.
35104 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35106 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35107 Add missing includes (for vaapi_check_status()).
35109 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35111 * gst-libs/gst/vaapi/gstvaapidebug.h:
35112 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
35114 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35116 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35117 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35118 Add gst_vaapi_window_x11_is_foreign_xid() helper.
35120 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35122 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35123 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35124 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35125 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35126 Allow derived classes to specify custom Visual and Colormap.
35128 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35130 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35131 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35132 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35133 Allow window creation with a specific visual (e.g. for GLX support).
35135 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35137 * gst-libs/gst/vaapi/gstvaapiimage.c:
35138 Fix return value on error (though it's the same in the end).
35140 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35142 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35143 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35144 Simplify initialization of VADisplay.
35146 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35149 Move __attribute__((visibility("hidden"))) check down.
35151 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35153 * docs/reference/libs/libs-sections.txt:
35154 * gst-libs/gst/vaapi/gstvaapiimage.c:
35155 * gst-libs/gst/vaapi/gstvaapiimage.h:
35156 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35157 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35158 * gst-libs/gst/vaapi/gstvaapisurface.c:
35159 * gst-libs/gst/vaapi/gstvaapisurface.h:
35160 * tests/test-surfaces.c:
35161 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
35163 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35165 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35166 Use the parent display object, no need to maintain another one.
35167 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
35169 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35171 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35172 Add more internal helpers.
35174 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35176 * gst-libs/gst/vaapi/gstvaapiimage.c:
35177 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35178 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35179 * gst-libs/gst/vaapi/gstvaapisurface.c:
35180 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35181 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35182 Rename to GST_VAAPI_OBJECT_DISPLAY().
35184 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35186 * docs/reference/libs/libs-sections.txt:
35187 * gst-libs/gst/vaapi/gstvaapiimage.c:
35188 * gst-libs/gst/vaapi/gstvaapiobject.c:
35189 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35190 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35191 * gst-libs/gst/vaapi/gstvaapisurface.c:
35192 * gst-libs/gst/vaapi/gstvaapitypes.h:
35193 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35194 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
35196 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35198 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35199 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35200 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35201 Make GstVaapiWindow* derive from GstVaapiObject.
35203 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35206 Factor out use gstreamer-vaapi (PACKAGE name).
35208 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35211 Improve versioning summary.
35213 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35215 * gst-libs/gst/vaapi/Makefile.am:
35216 gstvaapicompat.h is now a private header (not installed).
35218 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35220 * gst-libs/gst/vaapi/gstvaapiimage.c:
35221 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35222 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35223 * gst-libs/gst/vaapi/gstvaapiobject.c:
35224 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35225 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35226 Include gstvaapicompat.h in source files only, not headers.
35228 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35231 * gst-libs/gst/vaapi/Makefile.am:
35232 * sys/vaapiconvert/Makefile.am:
35233 * sys/vaapisink/Makefile.am:
35234 * tests/Makefile.am:
35235 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
35237 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35241 * gst-libs/gst/vaapi/Makefile.am:
35242 * gst-libs/gst/vaapi/gstvaapicompat.h:
35243 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35244 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35245 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35246 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35247 * gst-libs/gst/vaapi/gstvaapisurface.c:
35248 * gst-libs/gst/vaapi/gstvaapiutils.c:
35249 * gst-libs/gst/vaapi/gstvaapiutils.h:
35250 * pkgconfig/gstreamer-vaapi-x11.pc.in:
35251 * pkgconfig/gstreamer-vaapi.pc.in:
35252 * sys/vaapiconvert/Makefile.am:
35253 * sys/vaapisink/Makefile.am:
35254 * tests/Makefile.am:
35255 Add compatibility with the original VA-API 0.29.
35257 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35259 * gst-libs/gst/vaapi/gstvaapivalue.h:
35260 Add missing file (gstvaapivalue.h).
35262 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35264 * gst-libs/gst/vaapi/gstvaapiimage.c:
35265 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35266 * gst-libs/gst/vaapi/gstvaapisurface.c:
35267 Fix g_warning() invocation.
35269 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35271 * gst-libs/gst/vaapi/gstvaapisurface.c:
35272 Deassociate subpictures while destroying the surface.
35274 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35276 * gst-libs/gst/vaapi/gstvaapisurface.c:
35277 Fix destruction order of subpictures. They should be destroyed first.
35279 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35282 * gst-libs/gst/vaapi/gstvaapiimage.c:
35283 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35284 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35285 * tests/test-windows.c:
35286 Add support for AYUV format.
35288 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35290 * tests/test-windows.c:
35291 Simplify upload process and fallback to subpictures.
35293 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35295 * docs/reference/libs/libs-docs.xml.in:
35296 * docs/reference/libs/libs-sections.txt:
35297 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35300 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35302 * gst-libs/gst/vaapi/Makefile.am:
35303 * gst-libs/gst/vaapi/gstvaapiobject.c:
35304 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35305 * gst-libs/gst/vaapi/gstvaapitypes.h:
35306 * gst-libs/gst/vaapi/gstvaapivalue.c:
35307 Move GValue specific stuff to a dedicated file.
35309 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35311 * tests/test-surfaces.c:
35312 Cosmetics (lowercase for consistency).
35314 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35316 * gst-libs/gst/vaapi/gstvaapiobject.c:
35317 Cosmetics (vertical alignment).
35319 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35321 * gst-libs/gst/vaapi/gstvaapiobject.c:
35322 Fix return value on error.
35324 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35326 * docs/reference/libs/libs-sections.txt:
35327 * gst-libs/gst/vaapi/gstvaapiimage.c:
35328 * gst-libs/gst/vaapi/gstvaapiimage.h:
35329 * gst-libs/gst/vaapi/gstvaapiobject.c:
35330 * gst-libs/gst/vaapi/gstvaapiobject.h:
35331 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35332 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35333 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35334 * gst-libs/gst/vaapi/gstvaapisurface.c:
35335 * gst-libs/gst/vaapi/gstvaapisurface.h:
35336 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35337 * tests/test-surfaces.c:
35338 Move "id" down to the GstVaapiObject base.
35340 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35342 * gst-libs/gst/vaapi/gstvaapitypes.c:
35343 Cosmetics (drop extraneous empty line).
35345 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35347 * gst-libs/gst/vaapi/Makefile.am:
35348 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35349 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
35350 Add GParamSpecs for GstVaapiID.
35352 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35354 * docs/reference/libs/libs.types:
35355 Drop gst_vaapi_id_get_type().
35357 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35359 * docs/reference/libs/libs-sections.txt:
35360 * gst-libs/gst/vaapi/gstvaapitypes.h:
35361 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
35363 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35365 * docs/reference/libs/libs-sections.txt:
35366 * docs/reference/libs/libs.types:
35367 * gst-libs/gst/vaapi/Makefile.am:
35368 * gst-libs/gst/vaapi/gstvaapitypes.c:
35369 * gst-libs/gst/vaapi/gstvaapitypes.h:
35370 Add GstVaapiID abstraction.
35372 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35374 * docs/reference/libs/libs.types:
35377 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35379 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35380 * gst-libs/gst/vaapi/gstvaapiimage.c:
35381 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35382 * gst-libs/gst/vaapi/gstvaapisurface.c:
35383 Drop useless include (<va/va_backend.h>).
35385 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35387 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35388 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
35390 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35392 * gst-libs/gst/vaapi/Makefile.am:
35393 * gst-libs/gst/vaapi/gstvaapiimage.c:
35394 * gst-libs/gst/vaapi/gstvaapiobject.c:
35395 * gst-libs/gst/vaapi/gstvaapiobject.h:
35396 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35397 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35398 * gst-libs/gst/vaapi/gstvaapisurface.c:
35399 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35400 Move private definitions and accessors to gstvaapiobject_priv.h.
35402 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35404 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35405 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35406 * gst-libs/gst/vaapi/gstvaapiimage.c:
35407 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35408 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35409 * gst-libs/gst/vaapi/gstvaapiobject.c:
35410 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35411 * gst-libs/gst/vaapi/gstvaapisurface.c:
35412 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35413 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35414 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35415 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35416 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35417 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35418 Fix short descriptions.
35420 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35424 * debian.upstream/Makefile.am:
35425 * debian.upstream/changelog.in:
35426 * debian.upstream/compat:
35427 * debian.upstream/control.in:
35428 * debian.upstream/copyright:
35429 * debian.upstream/gstreamer-vaapi-doc.install.in:
35430 * debian.upstream/gstreamer-vaapi.install.in:
35431 * debian.upstream/libgstvaapi-dev.install.in:
35432 * debian.upstream/libgstvaapi-x11.install.in:
35433 * debian.upstream/libgstvaapi.install.in:
35434 * debian.upstream/rules:
35435 Generate upstream packages through make deb.upstream.
35437 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35440 Bump version for development.
35442 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35444 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35445 Use a black background for new windows.
35447 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35452 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35455 * docs/reference/libs/libs.types:
35456 * gst-libs/gst/vaapi/Makefile.am:
35457 * gst-libs/gst/vaapi/gstvaapimarshal.list:
35458 * gst-libs/gst/vaapi/gstvaapiobject.c:
35459 * gst-libs/gst/vaapi/gstvaapiobject.h:
35460 * tests/test-surfaces.c:
35461 Add "destroy" signal.
35463 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35465 * docs/reference/libs/libs-docs.xml.in:
35466 Improve gst-plugins-vaapi Library reference template.
35468 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35470 * docs/reference/libs/libs-docs.xml.in:
35471 * docs/reference/libs/libs-sections.txt:
35472 * gst-libs/gst/vaapi/Makefile.am:
35473 * gst-libs/gst/vaapi/gstvaapiimage.c:
35474 * gst-libs/gst/vaapi/gstvaapiimage.h:
35475 * gst-libs/gst/vaapi/gstvaapiobject.c:
35476 * gst-libs/gst/vaapi/gstvaapiobject.h:
35477 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35478 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35479 * gst-libs/gst/vaapi/gstvaapisurface.c:
35480 * gst-libs/gst/vaapi/gstvaapisurface.h:
35481 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35482 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
35484 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35486 * sys/vaapisink/gstvaapisink.c:
35489 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35491 * sys/vaapisink/gstvaapisink.c:
35492 Make sure VA display is valid when created with an explicit "display" name.
35494 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35496 * sys/vaapisink/gstvaapisink.c:
35497 Use plain "display" property for the X11 display name.
35499 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35501 * sys/vaapiconvert/gstvaapiconvert.c:
35502 * sys/vaapisink/gstvaapisink.c:
35503 Document vaapiconvert & vaapisink plugins.
35505 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35508 * docs/reference/Makefile.am:
35509 * docs/reference/plugins/Makefile.am:
35510 * docs/reference/plugins/plugins-docs.xml.in:
35511 * docs/reference/plugins/plugins-overrides.txt:
35512 * docs/reference/plugins/plugins-sections.txt:
35513 * docs/reference/plugins/plugins.types:
35514 Add plugins documentation template.
35516 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35518 * sys/vaapisink/gstvaapisink.c:
35519 * sys/vaapisink/gstvaapisink.h:
35520 Don't export gst_vaapisink_get_display().
35522 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35525 * docs/reference/libs/libs-docs.xml.in:
35526 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35527 * gst-libs/gst/vaapi/gstvaapiimage.c:
35528 * gst-libs/gst/vaapi/gstvaapisurface.c:
35529 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35530 Drop introspection annotations since they require gtk-doc >= 1.12.
35532 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35534 * gst-libs/gst/vaapi/gstvaapisurface.c:
35535 Add note about the fact that the surface holds an extra reference to the subpicture.
35537 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35539 * gst-libs/gst/vaapi/gstvaapiimage.c:
35540 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35541 * gst-libs/gst/vaapi/gstvaapisurface.c:
35542 Improve debugging messages.
35544 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35546 * tests/test-windows.c:
35547 Unref subpicture earlier as the surface is supposed to hold a reference to it.
35549 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35551 * docs/reference/libs/libs-sections.txt:
35552 * gst-libs/gst/vaapi/gstvaapisurface.c:
35553 * gst-libs/gst/vaapi/gstvaapisurface.h:
35554 * tests/test-windows.c:
35555 Add gst_vaapi_surface_{,de}associate_subpicture() API.
35557 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35559 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35560 Wait for MapNotify or UnmapNotify events on foreign windows too.
35562 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35564 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35565 Check whether the foreign XID is mapped at binding time.
35567 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35569 * sys/vaapisink/gstvaapisink.c:
35570 Add missing includes.
35572 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35575 * debian/Makefile.am:
35576 * debian/control.in:
35577 * debian/gstreamer-vaapi-doc.install.in:
35581 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35583 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35584 Fix warnings (drop extraneous var).
35586 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35588 * docs/reference/libs/libs-sections.txt:
35589 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35590 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
35592 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35594 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35597 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35599 * gst-libs/gst/vaapi/Makefile.am:
35600 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35601 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35602 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35603 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35604 Try to improve switch to fullscreen mode.
35606 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35608 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35609 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35610 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35611 Improve display locking and rework X event wait functions.
35613 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35615 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35616 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35617 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
35619 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35621 * gst-libs/gst/vaapi/Makefile.am:
35622 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35623 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35624 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.
35626 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35628 * docs/reference/libs/libs-sections.txt:
35629 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35630 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35631 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
35633 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35635 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35636 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35637 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35638 Add gst_vaapi_window_get_display() to base.
35640 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35642 * docs/reference/libs/libs-docs.xml.in:
35643 * docs/reference/libs/libs-sections.txt:
35644 * gst-libs/gst/vaapi/Makefile.am:
35645 * gst-libs/gst/vaapi/gstvaapitypes.h:
35646 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35647 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35648 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35649 * sys/vaapisink/gstvaapisink.c:
35650 * sys/vaapisink/gstvaapisink.h:
35651 Add GstVaapiPoint & GstVaapiRectangle data structures.
35653 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35658 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35661 * sys/vaapisink/gstvaapisink.c:
35662 * sys/vaapisink/gstvaapisink.h:
35663 Allow `vaapisink` to render videos in fullscreen mode.
35665 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35667 * docs/reference/libs/libs-sections.txt:
35668 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35669 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35670 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35671 Add gst_vaapi_window_set_fullscreen() API.
35673 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35675 * sys/vaapisink/gstvaapisink.c:
35676 Size window so that to respect the video and pixel aspect ratio.
35678 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35680 * docs/reference/libs/libs-sections.txt:
35681 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35682 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35683 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35684 * tests/test-display.c:
35685 Add gst_vaapi_display_get_pixel_aspect_ratio().
35687 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35689 * docs/reference/libs/libs-sections.txt:
35692 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35694 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35695 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35696 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35697 * tests/test-display.c:
35698 Add display size accessors.
35700 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35703 * debian/control.in:
35704 Build-Requires: gstreamer-plugins-base >= 0.10.16.
35706 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35708 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35709 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35710 * gst-libs/gst/vaapi/gstvaapiimage.h:
35711 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35712 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35713 * gst-libs/gst/vaapi/gstvaapisurface.h:
35714 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35715 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35716 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35717 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35718 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35719 Fix documentation of *Class'es.
35721 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35723 * gst-libs/gst/vaapi/gstvaapiutils.c:
35724 * gst-libs/gst/vaapi/gstvaapiutils.h:
35725 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35726 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
35728 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35730 * docs/reference/libs/libs-sections.txt:
35731 * gst-libs/gst/vaapi/gstvaapisurface.h:
35732 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35733 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
35735 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35737 * docs/reference/libs/libs-sections.txt:
35738 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35739 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35740 * sys/vaapisink/gstvaapisink.c:
35741 * tests/test-windows.c:
35742 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
35744 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35746 * docs/reference/libs/Makefile.am:
35747 Fix make dist for --enable-gtk-doc builds.
35749 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35752 Improve autogen.sh.
35754 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35758 Generate gtk-doc.make from gtkdocize.
35760 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35765 * docs/Makefile.am:
35766 * docs/reference/Makefile.am:
35767 * docs/reference/libs/Makefile.am:
35768 * docs/reference/libs/libs-docs.xml.in:
35769 * docs/reference/libs/libs-overrides.txt:
35770 * docs/reference/libs/libs-sections.txt:
35771 * docs/reference/libs/libs.types:
35772 Document public API for libgstvaapi-*.so.*.
35774 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35776 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35777 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35778 Document GstVaapiVideoBuffer.
35780 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35782 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35783 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35784 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35785 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35786 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35787 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35788 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
35790 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35792 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35793 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35794 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35795 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35796 * gst-libs/gst/vaapi/gstvaapiimage.c:
35797 * gst-libs/gst/vaapi/gstvaapiimage.h:
35798 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35799 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35800 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35801 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35802 * gst-libs/gst/vaapi/gstvaapisurface.c:
35803 * gst-libs/gst/vaapi/gstvaapisurface.h:
35804 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35805 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35806 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35807 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35808 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35809 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35810 Add tedious documentation.
35812 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35814 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35815 Beautify append_formats().
35817 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35819 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35820 Simplify GstVaapiDisplay (use GArray).
35822 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35825 * sys/vaapiconvert/gstvaapiconvert.c:
35826 * sys/vaapiconvert/gstvaapiconvert.h:
35827 Factor out direct-rendering infrastructure.
35829 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35831 * sys/vaapiconvert/gstvaapiconvert.c:
35832 * sys/vaapiconvert/gstvaapiconvert.h:
35833 Allow user to specify inout-buffers & derive-image optimizations.
35835 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35837 * sys/vaapiconvert/gstvaapiconvert.c:
35838 Reduce number of debug messaged printed out.
35840 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35842 * sys/vaapiconvert/gstvaapiconvert.c:
35843 * sys/vaapiconvert/gstvaapiconvert.h:
35844 Add vaDeriveImage() optimization.
35846 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35848 * gst-libs/gst/vaapi/gstvaapiimage.c:
35849 Fix gst_vaapi_image_create() from a foreign VA image.
35851 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35853 * gst-libs/gst/vaapi/gstvaapiimage.c:
35854 * gst-libs/gst/vaapi/gstvaapiimage.h:
35855 * gst-libs/gst/vaapi/gstvaapisurface.c:
35856 * gst-libs/gst/vaapi/gstvaapisurface.h:
35857 Add gst_vaapi_surface_derive_image() API.
35859 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35861 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35862 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35863 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35864 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().
35866 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35868 * tests/test-windows.c:
35869 Try YV12 & I420 image formats too.
35871 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35873 * gst-libs/gst/vaapi/gstvaapiimage.c:
35874 Split map/unmap functions into internal functions that don't check preconditions.
35876 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35878 * gst-libs/gst/vaapi/gstvaapiimage.c:
35879 Improve gst_vaapi_image_new() sanity checks.
35881 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35883 * tests/test-windows.c:
35886 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35888 * sys/vaapiconvert/gstvaapiconvert.c:
35889 Check if our inout buffer is still alive or default to a separate output buffer.
35891 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35893 * sys/vaapiconvert/gstvaapiconvert.c:
35894 * sys/vaapiconvert/gstvaapiconvert.h:
35895 Factor out buffers negotiation and optimization checks.
35897 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35899 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35900 * gst-libs/gst/vaapi/gstvaapiimage.c:
35901 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35902 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35903 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35904 * sys/vaapiconvert/gstvaapiconvert.h:
35907 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35909 * gst-libs/gst/vaapi/gstvaapiimage.c:
35910 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
35912 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35914 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35915 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35916 * gst-libs/gst/vaapi/gstvaapiimage.c:
35917 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35918 * gst-libs/gst/vaapi/gstvaapisurface.c:
35919 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35920 Add VA display locking utilities.
35922 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35924 * sys/vaapisink/gstvaapisink.c:
35925 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
35927 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35929 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35930 * tests/test-windows.c:
35931 Don't show window by default during creation.
35933 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35935 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35936 Fix gst_vaapi_window_x11_destroy().
35938 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35940 * sys/vaapiconvert/gstvaapiconvert.c:
35941 * sys/vaapiconvert/gstvaapiconvert.h:
35942 Alias sink & src pad buffers whenever possible.
35944 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35946 * gst-libs/gst/vaapi/gstvaapiimage.c:
35947 * gst-libs/gst/vaapi/gstvaapiimage.h:
35948 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
35950 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35952 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35953 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35954 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
35956 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35958 * sys/vaapiconvert/gstvaapiconvert.c:
35959 Fix image & surface size cache.
35961 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35964 Move gstreamer-vaapi package versioning to the top.
35966 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35969 Bump version for development.
35971 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35974 Cosmetics (shorten lines).
35976 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35982 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35984 * debian/Makefile.am:
35985 * debian/changelog.in:
35987 * debian/control.in:
35988 * debian/copyright:
35989 * debian/gstreamer-vaapi.install.in:
35990 * debian/libgstvaapi-dev.install.in:
35991 * debian/libgstvaapi-x11.install.in:
35992 * debian/libgstvaapi.install.in:
35994 Add debian packaging.
35996 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36000 Add debian packaging.
36002 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36004 * pkgconfig/Makefile.am:
36005 Silence GNU make extensions warning.
36007 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36010 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'
36012 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36016 * pkgconfig/Makefile.am:
36017 * pkgconfig/gstreamer-vaapi-x11.pc.in:
36018 * pkgconfig/gstreamer-vaapi.pc.in:
36019 Add pkgconfig files.
36021 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36024 * gst-libs/gst/vaapi/Makefile.am:
36025 * sys/vaapisink/Makefile.am:
36026 * tests/Makefile.am:
36027 Split X11 support to libgstvaapi-x11-*.so.*
36029 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36031 * gst-libs/gst/vaapi/Makefile.am:
36032 Don't install private headers.
36034 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36036 * gst-libs/gst/vaapi/gstvaapidebug.h:
36037 * gst-libs/gst/vaapi/gstvaapiutils.c:
36038 * gst-libs/gst/vaapi/gstvaapiutils.h:
36041 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36043 * gst-libs/gst/vaapi/Makefile.am:
36044 * gst-libs/gst/vaapi/gstvaapidebug.h:
36045 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36046 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36047 * gst-libs/gst/vaapi/gstvaapiimage.c:
36048 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
36049 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36050 * gst-libs/gst/vaapi/gstvaapisurface.c:
36051 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
36052 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
36053 * gst-libs/gst/vaapi/gstvaapivideopool.c:
36054 * gst-libs/gst/vaapi/gstvaapiwindow.c:
36055 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36056 Rename vaapi_debug.h to gstvaapidebug.h.
36058 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36060 * gst-libs/gst/vaapi/Makefile.am:
36061 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36062 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36063 * gst-libs/gst/vaapi/gstvaapiimage.c:
36064 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36065 * gst-libs/gst/vaapi/gstvaapisurface.c:
36066 * gst-libs/gst/vaapi/gstvaapiutils.c:
36067 * gst-libs/gst/vaapi/gstvaapiutils.h:
36068 * gst-libs/gst/vaapi/vaapi_debug.h:
36069 Move vaapi_utils.* to gstvaapiutils.*
36071 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36073 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
36074 Cosmetics (remove an extra line).
36076 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36078 * gst-libs/gst/vaapi/Makefile.am:
36079 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
36080 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
36081 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36082 Move X11 utilties to gstvaapiutils_x11.[ch].
36084 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36086 * gst-libs/gst/vaapi/Makefile.am:
36087 * gst-libs/gst/vaapi/gstvaapivideosink.c:
36088 * gst-libs/gst/vaapi/gstvaapivideosink.h:
36089 * sys/vaapiconvert/gstvaapiconvert.c:
36090 * sys/vaapisink/gstvaapisink.c:
36091 Rename GstVaapiSinkBase to GstVaapiVideoSink.
36093 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36096 * tests/Makefile.am:
36097 * tests/examples/Makefile.am:
36098 * tests/examples/generic/Makefile.am:
36099 * tests/test-display.c:
36100 * tests/test-surfaces.c:
36101 * tests/test-windows.c:
36102 Move tests to top-level tests/ directory.
36104 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36106 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36107 * gst-libs/gst/vaapi/gstvaapiimage.c:
36108 * sys/vaapiconvert/gstvaapiconvert.c:
36109 * sys/vaapiconvert/gstvaapiconvert.h:
36110 Handle I420 formats internally in GstVaapiImage.
36112 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36114 * sys/vaapiconvert/gstvaapiconvert.c:
36115 * sys/vaapiconvert/gstvaapiconvert.h:
36116 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
36118 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36120 * gst-libs/gst/vaapi/gstvaapiimage.c:
36121 Implement I420 and YV12 if the underlying implementation does not.
36123 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36125 * sys/vaapiconvert/Makefile.am:
36126 * sys/vaapiconvert/gstvaapiconvert.c:
36127 * sys/vaapiconvert/gstvaapiconvert.h:
36128 Add initial vaapiconvert plugin.
36130 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36132 * sys/vaapisink/gstvaapisink.c:
36133 * sys/vaapisink/gstvaapisink.h:
36136 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36138 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36141 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36143 * tests/examples/generic/test-windows.c:
36144 Generate R/G/B rects.
36146 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36148 * gst-libs/gst/vaapi/gstvaapisurface.c:
36149 * gst-libs/gst/vaapi/gstvaapisurface.h:
36150 Add gst_vaapi_surface_sync().
36152 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36154 * gst-libs/gst/vaapi/gstvaapiimage.c:
36155 Cosmetics (reverse args order).
36157 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36159 * gst-libs/gst/vaapi/gstvaapiimage.c:
36160 * gst-libs/gst/vaapi/gstvaapiimage.h:
36161 * gst-libs/gst/vaapi/gstvaapisurface.c:
36164 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36166 * gst-libs/gst/vaapi/Makefile.am:
36167 * gst-libs/gst/vaapi/gstvaapiwindow.c:
36168 * gst-libs/gst/vaapi/gstvaapiwindow.h:
36169 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36170 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
36171 * tests/examples/generic/Makefile.am:
36172 * tests/examples/generic/test-windows.c:
36173 Add VA/X11 window abstraction.
36175 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36177 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36178 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36179 Add VA and X11 display accessors.
36181 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36183 * gst-libs/gst/vaapi/gstvaapiimage.c:
36186 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36188 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36191 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36193 * gst-libs/gst/vaapi/gstvaapiimage.c:
36194 * gst-libs/gst/vaapi/gstvaapiimage.h:
36195 * gst-libs/gst/vaapi/gstvaapisurface.c:
36196 * gst-libs/gst/vaapi/gstvaapisurface.h:
36197 Add gst_vaapi_{get,put}_image() API.
36199 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36201 * gst-libs/gst/vaapi/gstvaapiimage.c:
36202 * gst-libs/gst/vaapi/gstvaapiimage.h:
36203 Add gst_vaapi_image_update_from_buffer() helper.
36205 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36207 * sys/vaapisink/Makefile.am:
36208 * sys/vaapisink/gstvaapisink.c:
36209 * sys/vaapisink/gstvaapisink.h:
36210 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
36212 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36214 * tests/examples/generic/Makefile.am:
36215 * tests/examples/generic/test-surfaces.c:
36218 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36220 * gst-libs/gst/vaapi/Makefile.am:
36221 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
36222 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
36223 Add basic GstVaapiVideoBuffer.
36225 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36227 * gst-libs/gst/vaapi/Makefile.am:
36228 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
36229 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
36230 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
36231 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
36232 * gst-libs/gst/vaapi/gstvaapivideopool.c:
36233 * gst-libs/gst/vaapi/gstvaapivideopool.h:
36234 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
36236 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36238 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36239 Simplify format conversion code.
36241 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36243 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36244 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36245 Add gst_vaapi_image_format_from_caps() helper.
36247 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36249 * gst-libs/gst/vaapi/Makefile.am:
36250 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
36251 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
36252 Add VA surface pool (lazy allocator).
36254 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36256 * gst-libs/gst/vaapi/gstvaapisurface.c:
36257 * gst-libs/gst/vaapi/gstvaapisurface.h:
36258 Add gst_vaapi_surface_get_size() helper.
36260 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36262 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36263 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
36265 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36267 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36268 Reset display-name if the user provided his own X11 display.
36270 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36272 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36273 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36274 * tests/examples/generic/test-display.c:
36275 Add gst_vaapi_display_x11_new_with_display() API.
36277 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36279 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36280 * gst-libs/gst/vaapi/gstvaapiimage.h:
36281 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36282 * gst-libs/gst/vaapi/gstvaapisurface.h:
36283 Fix *_GET_CLASS() definitions...
36285 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36287 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36288 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36289 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36290 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36291 * tests/examples/generic/test-display.c:
36292 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
36294 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36296 * gst-libs/gst/vaapi/gstvaapisurface.c:
36297 * gst-libs/gst/vaapi/gstvaapisurface.h:
36298 Use GstVaapiChromaType abstraction.
36300 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36302 * gst-libs/gst/vaapi/gstvaapiimage.c:
36303 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36304 * gst-libs/gst/vaapi/gstvaapisurface.c:
36305 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
36307 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36309 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36310 Don't warn on failure, just return an appropriate error or value.
36312 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36314 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36315 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36316 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36317 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
36319 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36321 * gst-libs/gst/vaapi/Makefile.am:
36322 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
36323 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
36324 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
36326 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36328 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36329 * gst-libs/gst/vaapi/gstvaapiimage.c:
36330 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36331 * gst-libs/gst/vaapi/gstvaapisurface.c:
36332 * gst-libs/gst/vaapi/vaapi_debug.h:
36335 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36337 * gst-libs/gst/vaapi/gstvaapiimage.c:
36338 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36339 Fix GstVaapiImage and GstVaapiSubpicture initialization.
36341 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36343 * gst-libs/gst/vaapi/gstvaapisurface.c:
36344 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
36346 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36348 * tests/examples/generic/test-display.c:
36351 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36353 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36354 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36355 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36356 Fix GstVaapiDisplay initialization.
36358 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36360 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36361 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36362 Get VA image & subpicture formats as GstCaps.
36364 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36366 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36367 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36368 Add helper to convert from GstVaapiImageFormat to GstCaps.
36370 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36372 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36373 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36374 * gst-libs/gst/vaapi/gstvaapisurface.c:
36375 Cosmetics (drop unused variables).
36377 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36380 * sys/vaapiconvert/Makefile.am:
36381 * sys/vaapiconvert/gstvaapiconvert.c:
36382 * sys/vaapiconvert/gstvaapiconvert.h:
36383 * sys/vaapisink/Makefile.am:
36384 * sys/vaapisink/gstvaapisink.c:
36385 * sys/vaapisink/gstvaapisink.h:
36386 Add boilerplate for vaapiconvert and vaapisink elements.
36388 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36392 * sys/vaapiconvert/Makefile.am:
36393 Add vaapiconvert element hierarchy.
36395 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36397 * sys/vaapisink/Makefile.am:
36398 Rename to vaapisink.
36400 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36402 * gst-libs/gst/vaapi/gstvaapisurface.c:
36403 Shorter code (and more correct).
36405 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36407 * gst-libs/gst/vaapi/gstvaapisurface.c:
36408 * gst-libs/gst/vaapi/gstvaapisurface.h:
36409 Add helper to get GstVaapiDisplay from a surface.
36411 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36413 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36414 Fix subpicture formats list length.
36416 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36418 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36419 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36420 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
36422 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36424 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36425 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36426 Cosmetics (more checks, includes).
36428 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36430 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36431 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36432 Really add VA subpicture abstraction.
36434 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36436 * gst-libs/gst/vaapi/Makefile.am:
36437 * gst-libs/gst/vaapi/gstvaapiimage.c:
36438 * gst-libs/gst/vaapi/gstvaapiimage.h:
36439 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36440 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36441 * gst-libs/gst/vaapi/gstvaapisurface.c:
36442 * gst-libs/gst/vaapi/gstvaapisurface.h:
36443 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
36445 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36448 * gst-libs/gst/vaapi/Makefile.am:
36449 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36450 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36451 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36452 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36453 * gst-libs/gst/vaapi/vaapi_debug.h:
36454 * gst-libs/gst/vaapi/vaapi_utils.c:
36455 * gst-libs/gst/vaapi/vaapi_utils.h:
36456 * tests/examples/generic/Makefile.am:
36457 * tests/examples/generic/test-display.c:
36458 Add initial VA display abstraction.
36460 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36464 * tests/Makefile.am:
36465 * tests/examples/Makefile.am:
36466 * tests/examples/generic/Makefile.am:
36467 Add tests infrastructure.
36469 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36472 Clean up VA-API checks.
36474 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36477 Check for __attribute__((visibility("hidden"))).