1 2022-09-23 17:18:35 +0200 Stéphane Cerveau <scerveau@igalia.com>
3 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4 h265parse: fix typo in member of GstH265SPS
5 Rename sps_extnsion_params to sps_extension_params
6 Fix comment about vui_parameters_present_flag
7 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3072>
9 2022-10-04 03:57:31 +0100 Tim-Philipp Müller <tim@centricular.com>
13 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3115>
15 === release 1.21.1 ===
17 2022-10-04 01:14:01 +0100 Tim-Philipp Müller <tim@centricular.com>
22 * gstreamer-vaapi.doap:
26 2022-10-04 01:13:59 +0100 Tim-Philipp Müller <tim@centricular.com>
29 Update ChangeLogs for 1.21.1
31 2022-09-21 19:19:45 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
34 meson: Use implicit builtin dirs in pkgconfig generation
35 Starting with Meson 0.62, meson automatically populates the variables
36 list in the pkgconfig file if you reference builtin directories in the
37 pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
38 We need this, because ${prefix}/libexec is a hard-coded value which is
39 incorrect on, for example, Debian.
40 Bump requirement to 0.62, and remove version compares that retained
41 support for older Meson versions.
42 Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245
43 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>
45 2022-09-01 15:11:31 -0400 Thibault Saunier <tsaunier@igalia.com>
48 meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
49 Removing some copy pasted code
50 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
52 2022-09-01 11:51:48 -0400 Thibault Saunier <tsaunier@igalia.com>
55 meson: Namespace the plugins_doc_dep/libraries variables
56 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
58 2022-08-31 18:44:14 -0400 Thibault Saunier <tsaunier@igalia.com>
61 meson: Rename plugins list and make them "dependency" objects
62 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
64 2022-05-31 15:18:03 +0200 Stéphane Cerveau <scerveau@collabora.com>
68 docs: disable in static build
69 Following gst-plugins-base, disable docs if static_build
76 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2529>
78 2022-08-11 21:22:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
80 * gst-libs/gst/vaapi/gstvaapidisplay.c:
81 * gst/vaapi/gstvaapi.c:
82 * gst/vaapi/gstvaapidecode.c:
83 vaapi: plugin: Handle when no encoders/decoders available.
84 Nouveau driver currently only exposes postproc entry. But
85 vaapidecodebin is registered independent if there are decoders or not,
86 exposing a segmentation fault.
87 This patch removes the encoder/decoder/codec arrays if no entries are
88 found, and if no decoders are found vaapidecodebin is not
89 registered. Also for vaapipostproc if no postproc entry is found.
90 Also, if general decoder, used by vaapidecodebin, doesn't have a sink
91 pad string, don't register the glib type.
93 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2865>
95 2022-07-27 08:45:45 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com>
97 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
98 vaapi: h265dec: avoid possible NULL deref
99 Check "pi" before attempting to dereference it.
100 Captured by static analysis.
101 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2801>
103 2022-07-26 12:12:50 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
105 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
106 vaapi: h264dec: Remove dead code
107 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2795>
109 2022-07-26 12:22:10 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
111 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
112 vaapi: h265dec: Refresh our sps/pps copy
113 The decoder uses a copy of the SPS/PPS. Since
114 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575
115 the SPS/PPS is updated when the slice header is parsed. As a side
116 effect, the H265 decoder was using an partially filled copy.
117 Fixes: 5ae05bb42a ("codecparsers: Defering computation of pps and sps fields")
119 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2795>
121 2022-06-09 20:00:35 +0800 He Junyan <junyan.he@intel.com>
123 * gst-libs/gst/vaapi/gstvaapifilter.c:
124 vaapi: Do not disable the whole vpp when some va operations not available.
125 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2578>
127 2022-05-26 12:08:44 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com>
129 * tests/check/elements/vaapioverlay.c:
130 tests: vaapi: remove unused header
131 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2503>
133 2022-05-26 12:06:43 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com>
135 * tests/check/elements/vaapioverlay.c:
136 tests: vaapi: fix memleak in vaapioverlay test
137 Need to unmap the frame to ensure vaapioverlay can destruct/dispose.
138 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2503>
140 2022-04-12 15:23:08 +0300 Sebastian Dröge <sebastian@centricular.com>
142 * gst-libs/gst/vaapi/gstvaapivalue.c:
143 Fix `transfer` gobject-introspection annotation typos
144 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2160>
146 2022-03-30 11:06:02 -0400 Xavier Claessens <xavier.claessens@collabora.com>
149 Use gmodule-no-export-2.0
150 We don't need `-Wl,--export-dynamic`, that's used only for executables
151 that needs to export an API to be used by plugins they load.
152 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
154 2022-03-25 15:00:20 -0400 Xavier Claessens <xavier.claessens@collabora.com>
156 * gst-libs/gst/vaapi/gstvaapifilter.c:
158 Remove glib and gobject dependencies everywhere
159 They are part of gst_dep already and we have to make sure to always have
160 gst_dep. The order in dependencies matters, because it is also the order
161 in which Meson will set -I args. We want gstreamer's config.h to take
162 precedence over glib's private config.h when it's a subproject.
163 While at it, remove useless fallback args for gmodule/gio dependencies,
164 only gstreamer core needs it.
165 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
167 2021-09-11 12:17:56 -0300 Thibault Saunier <tsaunier@igalia.com>
169 * docs/gst_plugins_cache.json:
171 tools: Add support for building gstreamer tools against gst-full
172 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1581>
174 2022-03-18 16:59:32 +0000 Thibault Saunier <tsaunier@igalia.com>
176 * tests/check/elements/vaapipostproc.c:
177 navigation: Add support for key Modifiers in all relevant events
178 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010>
180 2022-02-14 16:08:23 +0100 Vivienne Watermeier <vwatermeier@igalia.com>
182 * gst/vaapi/gstvaapipostproc.c:
183 * gst/vaapi/gstvaapisink.c:
184 * tests/check/elements/vaapipostproc.c:
185 all: Use new navigation interface and API
186 Use and implement the new navigation interface in all relevant sink elements,
187 and use API functions everywhere instead of directy accessing the event structure.
188 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>
190 2022-03-16 13:17:21 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
192 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
193 codecs: av1: Fix state when we show existing keyframe
194 Showing existing keyframe have special meaning in AV1. All the references
195 frame will be refreshed with the original keyframe information. The refresh
196 process (7.20) is implemented by saving data from the frame_header into the
197 state. To fix this special case, load all the relevant information into the
199 As there is nothing happening in between this and the loading of the key-frame
200 into the state, this patch also remove the separate API function, using it
203 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1971>
205 2022-03-18 13:42:27 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
208 meson: Bump all meson requirements to 0.60
209 Lots of new warnings ever since
210 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934
211 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977>
213 2022-03-08 14:54:34 +0800 GuYanjie <yanjie.gu@intel.com>
215 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
216 vaapih265dec: fixed st_rps_bits setting in h265 decoding.
217 According to va_dec_hevc.h, pic_param->st_rps_bits should be set
218 for accelorater to skip parsing the *short_term_ref_pic_set
219 (num_short_term_ref_pic_sets) structure.
220 Also modified fill_picture to get parser info as a parameter,
221 in order to get slide_hdr->short_term_ref_pic_set_size.
222 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1886>
224 2021-11-19 18:47:24 -0800 Haihao Xiang <haihao.xiang@intel.com>
226 * gst-libs/gst/vaapi/gstvaapiblend.c:
227 * gst/vaapi/gstvaapioverlay.c:
228 * gst/vaapi/gstvaapioverlay.h:
229 vaapioverlay: inline sinkpad scaling support
230 Often, users will need to scale inputs (e.g.
231 with vaapipostproc) before they are submitted
232 to the vaapioverlay. However, this results in
233 multiple VPP passes/operations in the pipeline
234 which creates unnecessary process overhead.
235 This change allows for inputs to be submitted
236 at original scale to vaapioverlay with per-sinkpad
237 scale dimensions specified so they can be scaled
238 and blended/composited in a single VPP pass/operation
239 to avoid the unnecessary process overhead.
240 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1380>
242 2021-11-19 14:46:34 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
244 * gst-libs/gst/vaapi/gstvaapiblend.c:
245 vaapioverlay: use vpp blend state iif using alpha
246 Don't set VAAPI vpp blend flags if alpha == 1.0,
247 i.e. fully opaque. This can avoid extra processing
248 overhead on some drivers that apply blending
249 unconditionally when flags are present, even if the
250 end result is the same without blend flags (i.e. all
251 opaque alpha channels).
252 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1380>
254 2022-02-09 06:01:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
258 vaapi: Use meson's features for option selection.
259 Modernize option selection, so if a required dependency is missing,
260 produce a meaningful error message.
261 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1676>
263 2021-09-30 17:42:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
266 build: Add libva dependency fallback.
267 Then libva can be subproject and used by either gstreamer-vaapi,
268 va and msdk in gst-plugins-bad.
269 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1397>
271 2022-02-04 11:15:47 +0000 Tim-Philipp Müller <tim@centricular.com>
275 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635>
277 === release 1.20.0 ===
279 2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
284 * gstreamer-vaapi.doap:
288 2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
291 Update ChangeLogs for 1.20.0
293 2022-01-30 09:38:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
295 * gst/vaapi/gstvaapipluginutil.c:
297 vaapi: Disable Wayland if no libdrm
298 Platform wise, is not possible, as far as I known, to have Wayland
299 without kernel's DRM. Though, it's possible to configure
300 gstreamer-vaapi without DRM but Wayland support, with the enhanced
301 handling of dmabuf in vaapisink for Wayland, vaapisink will always
302 fail. Given both issues, configuration with no DRM but Wayland, makes
303 things more complex, and a simpler approach is to refuse that
305 This patch disables Wayland support if there isn't DRM support. Also,
306 it disables the display test for Wayland, relying only on DRM and
308 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
310 2022-01-30 07:10:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
312 * gst-libs/gst/vaapi/video-format.c:
313 vaapi: libs: video-format: Check if formats map is not NULL.
314 Formats map is instantiated at the end of the display
315 instantiation. The problem is the Wayland display which looks for a
316 format in a callback, before the map is populated.
317 If user compiles gstreamer-vaapi with DRM support, the map is
318 populated with a DRM display at GStreamer plugin registration. But if
319 not, or a VA driver is not available, the plugin will try with a
320 Wayland driver, which cause the NULL de-reference.
321 Nevertheless, in the case of no DRM support, and if the Wayland
322 display doesn't get a reply from the format conversion is not a
324 So the solution is the trivial one, check if the format map is already
325 populated before de-reference it.
327 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
329 === release 1.19.90 ===
331 2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
336 * gstreamer-vaapi.doap:
340 2022-01-28 14:28:28 +0000 Tim-Philipp Müller <tim@centricular.com>
343 Update ChangeLogs for 1.19.90
345 2022-01-05 02:07:59 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
349 meson: Add explicit check: kwarg to all run_command() calls
350 This is required since Meson 0.61.0, and causes a warning to be
352 https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c
353 https://github.com/mesonbuild/meson/issues/9300
354 This exposed a bunch of places where we had broken run_command()
355 calls, unnecessary run_command() calls, and places where check: true
357 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
359 2022-01-04 16:19:44 +0800 He Junyan <junyan.he@intel.com>
361 * gst-libs/gst/vaapi/gstvaapiprofile.c:
362 vaapi: av1dec: Use named profiles to replace the numeric ones.
363 Use named AV1 profiles (i.e., main, high) to replace the old "0"
365 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1491>
367 2021-12-01 15:36:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
369 * gst/vaapi/gstvaapidecodebin.c:
370 vaapidecodebin: Misc enhancements.
371 - Use GST_WARNING rather than g_critical
372 - Replace gst_ghost_pad_new_from_template() with
373 gst_ghost_pad_new() to avoid using the template.
374 - Declare extern variable
375 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
377 2021-12-01 12:26:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
379 * gst/vaapi/gstvaapidecode.c:
380 vaapidecode: Autogenerate caps template.
381 vaapidecode is used in vaapidecodebin and it exposes all the
382 theoretically supported caps, but that slows down autoplug. With this
383 autplug is negotiated faster, giving more option to decodebin to select
385 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
387 2021-11-16 17:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
389 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
390 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
391 vaapi: libs: Use unsized arrays as parameters.
392 Instead of defining a sized array for function signature, use it
393 unsized (a pointer alias, basically). In this way clang warning is
395 warning: ‘fill_profiles’ accessing 64 bytes in a region of size 12 [-Wstringop-overflow=]
396 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
398 2021-11-16 17:21:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
401 vaapi: meson: Fail if static build.
402 And initialize the plugin array.
403 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
405 2021-11-15 16:38:34 +0800 Ung, Teng En <teng.en.ung@intel.com>
407 * gst/vaapi/gstvaapipostproc.c:
408 vaapipostproc: fix mising metadata when using system
409 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1325>
411 2021-11-03 18:44:03 +0000 Tim-Philipp Müller <tim@centricular.com>
416 === release 1.19.3 ===
418 2021-11-03 15:43:36 +0000 Tim-Philipp Müller <tim@centricular.com>
423 * gstreamer-vaapi.doap:
427 2021-11-03 15:43:32 +0000 Tim-Philipp Müller <tim@centricular.com>
430 Update ChangeLogs for 1.19.3
432 2021-10-18 15:47:00 +0100 Tim-Philipp Müller <tim@centricular.com>
434 * tests/check/meson.build:
435 meson: update for meson.build_root() and .build_source() deprecation
436 -> use meson.project_build_root() or .global_build_root() instead.
437 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
439 2021-10-18 00:40:14 +0100 Tim-Philipp Müller <tim@centricular.com>
442 * gst-libs/gst/vaapi/meson.build:
444 * tests/check/meson.build:
445 meson: update for dep.get_pkgconfig_variable() deprecation
446 ... in favour of dep.get_variable('foo', ..) which in some
447 cases allows for further cleanups in future since we can
448 extract variables from pkg-config dependencies as well as
449 internal dependencies using this mechanism.
450 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
452 2021-10-14 18:38:26 +0100 Tim-Philipp Müller <tim@centricular.com>
455 meson: bump meson requirement to >= 0.59
456 For monorepo build and ugly/bad, for advanced feature
457 option API like get_option('xyz').required(..) which
458 we use in combination with the 'gpl' option.
459 For rest of modules for consistency (people will likely
460 use newer features based on the top-level requirement).
461 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
463 2021-10-15 00:33:39 +0800 He Junyan <junyan.he@intel.com>
466 Docs: Fix a typo for Intel's vaapi driver name.
467 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1151>
469 2021-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
472 doc: update IRC links to OFTC
473 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
475 2021-09-26 01:07:02 +0100 Tim-Philipp Müller <tim@centricular.com>
479 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
481 === release 1.19.2 ===
483 2021-09-23 01:35:54 +0100 Tim-Philipp Müller <tim@centricular.com>
488 * gstreamer-vaapi.doap:
492 2021-08-26 15:06:53 +0800 Zhang Yuankun <yuankunx.zhang@intel.com>
494 * gst/vaapi/gstvaapidecode.c:
495 vaapi: decoder: modify the condition to judge whether dma buffer is supported
496 It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
497 return false even if this platform support the mem_type dma buffer.
498 And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
499 on Gen12(such as TGL).
500 Without this patch, The command such as:
501 gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
502 x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
503 will return not-negotiated.
504 Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
505 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
507 2021-05-14 12:04:04 +0800 He Junyan <junyan.he@intel.com>
509 * gst-libs/gst/vaapi/gstvaapidisplay.c:
510 * gst/vaapi/gstvaapivideocontext.c:
511 Display: Add a property to export the VA display handle.
512 Just like what we do in VA plugins. The display can be seen as a
513 generic gst object and we can add a property to get the internal
515 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
517 2021-05-14 11:49:01 +0800 He Junyan <junyan.he@intel.com>
519 * gst/vaapi/gstvaapivideomemory.c:
520 * gst/vaapi/gstvaapivideomemory.h:
521 plugins: video memory: Add a GST_MAP_VAAPI flag to peek the surface.
522 Just like what we do in VA plugins, the GST_MAP_VAAPI can directly
523 peek the surface of the VA buffers. The old flag 0 just peek the
524 surface proxy, which may not be convenient for the users who do not
525 want to include our headers.
526 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
528 2021-07-09 11:01:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
530 * gst/vaapi/gstvaapi.c:
531 * gst/vaapi/gstvaapidecode.c:
532 Revert "vaapi: Demote vaapidecodebin to rank NONE."
533 This reverts commit 7a25c5d4ec95aefeca6515ac023b23c5dd330194.
534 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/436>
536 2021-06-23 16:23:00 +0800 He Junyan <junyan.he@intel.com>
538 * gst/vaapi/gstvaapiencode.c:
539 plugins: encode: fix a deadlock because of _drain()
540 We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(),
541 whose context does not hold the stream lock of the encoder. The
542 current gst_vaapiencode_drain inside unlock/lock pair adds a extra
543 lock count to the stream lock of encoder and causes hang later.
544 We just remove the gst_vaapiencode_drain() and expand its logic
545 correctly according to the lock/unlock context.
546 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/433>
548 2021-06-29 15:09:13 +0800 He Junyan <junyan.he@intel.com>
550 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
551 libs: decoder: av1: Clean the film_grain_info field.
552 We need to clean all film_grain_info fields when the film grain
553 feature is not enabled. It may have random data because the picture
554 parameter buffer is not cleaned.
555 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/434>
557 2021-06-03 22:12:04 +0800 He Junyan <junyan.he@intel.com>
559 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
560 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
561 libs: encoder: mpeg2: Add highP level for 1080@50p/60p.
562 The MPEG2 spec has amendment 3 to introduce a new level highP, which
563 is used for 1080@50p/60p streams. We need to add this level to avoid
564 encoding failure because of the level check.
566 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/432>
568 2021-05-11 16:59:07 +0800 He Junyan <junyan.he@intel.com>
570 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
571 Decoder: H264: Add the support for frame packing arrangement SEI message.
572 Frame packing arrangement SEI message is an alternative simple stereo 3D
573 manner for AVC. We need to recognize that SEI message and report the correct
575 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/420>
577 2021-05-22 18:54:49 +0100 Tim-Philipp Müller <tim@centricular.com>
579 * gst-libs/gst/vaapi/gstvaapifilter.c:
581 Use g_memdup2() where available and add fallback for older GLib versions
582 Alloc size is based on existing allocations and struct sizes.
583 g_memdup() is deprecated since GLib 2.68 and we want to avoid
584 deprecation warnings with recent versions of GLib.
585 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/431>
587 2021-06-01 15:29:16 +0100 Tim-Philipp Müller <tim@centricular.com>
592 === release 1.19.1 ===
594 2021-06-01 00:16:31 +0100 Tim-Philipp Müller <tim@centricular.com>
599 * gstreamer-vaapi.doap:
603 2021-04-23 19:01:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
605 * gst/vaapi/gstvaapi.c:
606 * gst/vaapi/gstvaapidecode.c:
607 vaapi: Demote vaapidecodebin to rank NONE.
608 One of the main reasons of vaapidecodebin was because it mitigated the
609 possible surface exhaustion. But that problem is currently
610 solved. Nowadays, vaapidecodebin brings more problems than it
611 solves. Thus this patch demotes vaapidecodebin to NONE rank while
612 bumping PRIMARY + 1 the most common decoders.
613 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>
615 2021-05-20 10:28:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
617 * gst/vaapi/gstvaapi.c:
618 * gst/vaapi/gstvaapioverlay.c:
619 plugins: Demote rank of vaapipostproc and vaapioverlay.
620 Since almost all video filters have rank NONE, these both elements
622 This is useful for autovideoconvert and other bins, and users might
623 force to use these by setting the environment variable
624 GST_PLUGIN_FEATURE_RANK.
625 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>
627 2021-04-21 10:55:45 +0200 François Laignel <fengalin@free.fr>
629 * tests/check/elements/vaapioverlay.c:
630 Use gst_element_request_pad_simple...
631 Instead of the deprecated gst_element_get_request_pad.
632 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
634 2021-04-23 11:02:05 +0800 Zhang yuankun <yuankunx.zhang@intel.com>
636 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
637 libs: encoder: VP9: fix > 4k encode fail issue
638 The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
639 width of a tile in units of superblocks. So the max width of one tile
640 should not be larger than 64x64=4096. When the width exceeds 4k, we
641 need to split it into multiple tiles in columns. The current vp9 encoder
642 does not handle this correctly.
644 gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
645 vaapivp9enc ! fakesink
647 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>
649 2021-04-02 15:43:45 +0800 Haihao Xiang <haihao.xiang@intel.com>
651 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
652 libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
653 Otherwise user will be misled that the specified device is using
654 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
655 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>
657 2021-03-22 13:41:13 +0800 He Junyan <junyan.he@intel.com>
659 * gst-libs/gst/vaapi/gstvaapiencoder.c:
660 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
661 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
662 decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
663 If ROI is enabled, the CUs within the ROI region may have different
664 QP from the other part of the picture. This needs us to enable the
665 cu_qp_delta_enabled_flag even in the CQP mode.
666 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>
668 2021-03-19 17:42:36 +1100 Matthew Waters <matthew@centricular.com>
670 * gst-libs/gst/vaapi/gstvaapicontext.c:
671 * gst-libs/gst/vaapi/gstvaapicontext.h:
672 * gst-libs/gst/vaapi/gstvaapiencoder.c:
673 * gst-libs/gst/vaapi/gstvaapifilter.c:
674 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
675 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
676 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
677 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
678 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
679 * gst-libs/gst/vaapi/gstvaapivalue.c:
680 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
681 * gst/vaapi/gstvaapipluginbase.c:
682 * gst/vaapi/gstvaapisink.c:
683 * gst/vaapi/gstvaapisink.h:
684 * gst/vaapi/gstvaapivideocontext.c:
685 * gst/vaapi/gstvaapivideomemory.c:
686 * tests/internal/simple-decoder.c:
687 gst: don't use volatile to mean atomic
688 volatile is not sufficient to provide atomic guarantees and real atomics
689 should be used instead. GCC 11 has started warning about using volatile
690 with atomic operations.
691 https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
692 Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
693 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>
695 2021-02-24 17:41:02 +0100 Paul Goulpié <paul.goulpie@ubicast.eu>
697 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
698 gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
699 forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
700 Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>
702 2021-02-04 15:05:55 +0800 He Junyan <junyan.he@intel.com>
704 * gst/vaapi/gstvaapipostproc.c:
705 plugins: postproc: Fix a problem of propose_allocation when passthrough.
706 We should query the downstream element to answer a precise allocation
707 query when the passthrough mode is enabled.
708 The current way still decides the allocation by the postproc itself. The
710 gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
711 vaapipostproc ! fakevideosink silent=false sync=true
712 will lose some info such as the GST_VIDEO_META_API_TYPE.
713 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>
715 2021-01-27 12:05:44 +0800 Haihao Xiang <haihao.xiang@intel.com>
717 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
718 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
719 * gst/vaapi/gstvaapivideocontext.c:
720 libs: display: drm: support gst.vaapi.app.Display context for drm backend
721 Attributes for drm backend:
722 - va-display : ponter of VADisplay
723 - drm-device-fd : the DRM device file descriptor
724 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
726 2021-01-13 14:43:20 +0800 Haihao Xiang <haihao.xiang@intel.com>
729 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
730 libs: display: drm: allow user specify a drm device via an env variable
731 Currently the default drm device is always used on a system with
732 multiple drm devices. This patch allows user to specify the required
733 drm device via GST_VAAPI_DRM_DEVICE env variable
735 GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
736 vaapih264enc ! fakesink
737 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
739 2021-01-25 14:45:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
741 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
742 libs: display: drm: fix set_device_path_from_fd
743 drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
744 drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
745 so we can't get the right device path. Running test-display will get the
747 ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
749 Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
750 issue because a special permission is required for SET_VERSION ioctl.
751 This patch retrieves the device path from file descriptor via
753 [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
754 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>
756 2021-01-20 10:42:09 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
758 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
759 glx: Iterate over FBConfig and select 8 bit color size
760 Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
761 In latest mesa versions the first fbconfig might not be 8 bit, so iterate
762 over it to find the correct config with supported values.
763 This also adds 8 bit alpha size to the framebuffer configuration which is
764 required to get it working properly.
765 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>
767 2021-01-11 09:57:03 +0800 Ung, Teng En <teng.en.ung@intel.com>
769 * gst-libs/gst/vaapi/gstvaapiutils.c:
770 vaapipostproc: fix code style.
771 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
773 2020-12-21 05:42:00 +0000 Ung, Teng En <teng.en.ung@intel.com>
775 * gst-libs/gst/vaapi/gstvaapidisplay.c:
776 * gst-libs/gst/vaapi/gstvaapidisplay.h:
777 * gst-libs/gst/vaapi/gstvaapifilter.c:
778 vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
779 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
781 2020-12-21 05:36:29 +0000 Ung, Teng En <teng.en.ung@intel.com>
783 * gst-libs/gst/vaapi/gstvaapiutils.c:
784 vaapipostproc: Added gstreamer BT2020 color standard support.
785 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
787 2021-01-09 16:05:48 +0800 He Junyan <junyan.he@intel.com>
789 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
790 decoder: AV1: Fix a static analysis problem of update_state().
791 No need to check the picture pointer after we have already dereferenced it.
793 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>
795 2020-12-22 23:43:52 +0800 He Junyan <junyan.he@intel.com>
797 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
798 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
799 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
800 libs: decoder: Add decode_with_surface_id for AV1 film_grain.
801 The AV1 film_graim feature needs two surfaces the same time for
802 decoding. One is for recon surface which will be used as reference
803 later, and the other one is for display. The GstVaapiPicture should
804 contain the surface for display, while the vaBeginPicture() need
805 the recon surface as the target.
806 We add a gst_vaapi_picture_decode_with_surface_id API to handle this
808 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
810 2020-08-27 21:46:41 +0800 He Junyan <junyan.he@intel.com>
812 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
813 * gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
814 * gst-libs/gst/vaapi/gstvaapiprofile.c:
815 * gst-libs/gst/vaapi/gstvaapiprofile.h:
816 * gst-libs/gst/vaapi/gstvaapiutils.c:
817 * gst-libs/gst/vaapi/meson.build:
818 * gst/vaapi/gstvaapidecode.c:
820 libs: decoder: AV1: Add the av1 decoder support.
821 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
823 2020-08-27 21:39:35 +0800 He Junyan <junyan.he@intel.com>
825 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
826 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
827 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
828 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
829 libs: codecobject: Add number of elements when create codec object.
830 One slice data may need several slice parameter buffers at one time.
831 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
833 2020-12-12 10:30:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
835 * gst/vaapi/gstvaapidecodebin.c:
836 * gst/vaapi/gstvaapipluginbase.c:
837 * gst/vaapi/gstvaapivideobufferpool.c:
838 vaapi: use gst_clear_object instead of g_clear_object
839 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>
841 2020-12-08 13:34:35 +0800 He Junyan <junyan.he@intel.com>
843 * gst/vaapi/gstvaapiencode.c:
844 plugins: encode: unlock the stream lock before _flush()
845 The current encoder will hang when EOS comes. When we call the
846 gst_vaapi_encoder_encode_and_queue(), we should release the stream
847 lock, just like what we do in gst_vaapiencode_handle_frame().
848 The deadlock happens when: The input thread holding the stream lock
849 is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
850 buffer, while the output thread which holding the coded buffer resource
851 is acquiring the stream lock in _push_frame() to push the data to
853 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>
855 2020-12-09 00:04:33 +0800 He Junyan <junyan.he@intel.com>
857 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
858 libs: encoder: H264: Fix one assert in get_pending_reordered().
859 gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
860 case for HIERARCHICAL_B mode. The pipeline:
861 gst-launch-1.0 videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
862 keyframe-period=32 ! fakesink
864 ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
865 assertion failed: (count != 0)
866 The last few B frames are not fetched in correct order when HIERARCHICAL_B
868 We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
869 make the last several frames encoded in reverse order. The NAL of last few
870 frames come in reverse order in the bit stream, though it can still output
872 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>
874 2020-06-25 16:25:21 +0800 He Junyan <junyan.he@hotmail.com>
876 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
877 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
878 libs: encoder: H265: Add screen content coding extensions support.
879 In scc mode, the I frame can ref to itself and it needs the L0 reference
880 list enabled. So we should set the I frame to P_SLICE type. We do not need
881 to change the ref_pic_list0/1 passed to VA driver, just need to enable the
882 VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
883 the driver consider the current frame as reference. For bits conformance,
884 the NumRpsCurrTempList0 should be incremented by one to include the current
885 picture as the reference frame. We manually do it when packing the slice header.
887 gst-launch-1.0 videotestsrc num-buffers=10 ! \
888 capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
889 vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
890 filesink location=out.265
891 Can be used to specify that the encoder should use SCC profiles.
892 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>
894 2020-07-11 23:37:29 +0800 He Junyan <junyan.he@intel.com>
896 * gst/vaapi/gstvaapiencode_vp9.c:
897 plugin: encode: vp9: Implement the set_config().
898 We store the allowed profiles list to encoder in set_config().
899 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
901 2020-07-11 23:39:40 +0800 He Junyan <junyan.he@intel.com>
903 * gst/vaapi/gstvaapiencode_vp9.c:
904 plugin: encode: vp9: Add the profile into output caps.
905 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
907 2020-07-11 23:27:21 +0800 He Junyan <junyan.he@intel.com>
909 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
910 libs: encoder: vp9: no need to ensure_hw_profile.
911 Once we decide the profile and can get the valid entrypoint for
912 that profile, hw must already support this profile/entrypoint pair.
913 No need to check it again in set_context_info().
914 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
916 2020-07-11 23:22:55 +0800 He Junyan <junyan.he@intel.com>
918 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
919 libs: encoder: vp9: Improve the manner to decide the profile.
920 We should decide the VP9 encoder's profile based on the chroma and
921 depth of the input format, then make sure it is included in the
923 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
925 2020-07-11 23:17:02 +0800 He Junyan <junyan.he@intel.com>
927 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
928 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
929 libs: util: vpx: add get_chroma_format_idc for VP9
930 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
932 2020-07-11 23:09:59 +0800 He Junyan <junyan.he@intel.com>
934 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
935 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
936 libs: encoder: vp9: Add allowed_profiles.
937 We need the allowed_profiles to store the allowed profiles in down
940 vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
942 We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
944 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
946 2020-11-30 18:00:30 +0800 He Junyan <junyan.he@intel.com>
948 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
949 libs: decoder: H265: Fix a typo in scc reference setting.
950 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>
952 2020-07-17 18:00:30 +0800 He Junyan <junyan.he@intel.com>
954 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
955 * gst-libs/gst/vaapi/gstvaapiprofile.c:
956 * gst-libs/gst/vaapi/gstvaapiprofile.h:
957 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
958 * gst-libs/gst/vaapi/video-format.c:
959 * gst/vaapi/gstvaapidecode.c:
960 libs: decoder: H265: Add MAIN_422_12 profile supporting.
961 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
963 2020-07-31 14:38:42 +0800 He Junyan <junyan.he@intel.com>
965 * gst-libs/gst/vaapi/gstvaapiimage.c:
966 * gst-libs/gst/vaapi/video-format.c:
967 * gst-libs/gst/vaapi/video-format.h:
968 video-format: Add Y212_LE format.
969 It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
970 also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
972 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
974 2020-07-30 23:21:06 +0800 He Junyan <junyan.he@intel.com>
976 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
977 * gst-libs/gst/vaapi/gstvaapiprofile.c:
978 * gst-libs/gst/vaapi/gstvaapiprofile.h:
979 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
980 * gst-libs/gst/vaapi/video-format.c:
981 * gst/vaapi/gstvaapidecode.c:
982 libs: decoder: H265: Add MAIN_444_12 profile supporting.
983 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
985 2020-07-30 23:13:10 +0800 He Junyan <junyan.he@intel.com>
987 * gst-libs/gst/vaapi/gstvaapiimage.c:
988 * gst-libs/gst/vaapi/video-format.c:
989 * gst-libs/gst/vaapi/video-format.h:
990 video-format: Add Y412_LE format.
991 It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
992 also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
994 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
996 2020-09-17 16:47:43 +0800 He Junyan <junyan.he@intel.com>
998 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
999 libs: decoder: h265: fill missing predictor_palette_size field.
1000 The predictor_palette_size of VAPictureParameterBufferHEVCScc is
1001 forgotten and need to be filled when streams have palettes.
1002 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>
1004 2020-09-17 15:35:11 +0800 He Junyan <junyan.he@intel.com>
1006 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1007 libs: utils: h265: Use get_profile_from_sps to get profile.
1008 We now use gst_h265_get_profile_from_sps() to replace the old way
1009 of gst_h265_profile_tier_level_get_profile() to get more precise
1010 profile. The new function consider the unstandard cases and give
1011 a more suitable profile decision.
1012 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>
1014 2020-10-19 13:46:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1016 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1017 libs: decoder: vp9: 0xff segment pred probs if no temporal update
1018 According to the spec (6.2.11 Segmentation params syntax)
1019 segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
1020 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
1022 2020-10-19 13:42:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1024 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1025 libs: decoder: vp9: avoid reference rewriting
1026 The removed code set all the reference frames to the current frame it is a key
1027 one, but later, all the reference frames were rewritten with the decoded picture
1028 buffers or VA_INVALID_SURFACE if they were not available.
1029 Basically, all this time the first reference frame assignment has been ignored,
1030 and it's not described by the spec, and this patch removes that code.
1031 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
1033 2020-09-20 09:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1035 * gst/vaapi/gstvaapidecode.c:
1036 decoder: don't reply src caps query with allowed if pad is fixed
1037 If the pad is already fixed the caps query have to be reply with the
1038 current fixed caps. Otherwise the query has to be replied with the
1039 autogeneratd src caps.
1040 This path fix this by falling back to the normal caps query processing
1041 if the pad is already fixed. Otherwise it will fetch the allowed src
1043 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>
1045 2020-09-15 00:11:30 +0800 He Junyan <junyan.he@intel.com>
1047 * gst/vaapi/gstvaapidecode.c:
1048 plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
1049 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>
1051 2020-09-01 09:31:33 +0200 Marc Leeman <m.leeman@televic.com>
1053 * gst/vaapi/gstvaapisink.c:
1054 vaapisink: when updating the caps, reset rotation
1055 When an element upstream changes settings (e.g. crop), new caps are sent
1056 to vaapisink. When vaapisink was rotating the image, it needs to
1057 re-evaluate if the sink needs to rotate the image.
1058 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>
1060 2020-09-08 17:31:02 +0100 Tim-Philipp Müller <tim@centricular.com>
1063 ci: include template from gst-ci master branch again
1065 2020-09-08 16:59:07 +0100 Tim-Philipp Müller <tim@centricular.com>
1070 === release 1.18.0 ===
1072 2020-09-08 00:09:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1078 * gstreamer-vaapi.doap:
1082 2020-09-07 12:15:43 +0300 Sebastian Dröge <sebastian@centricular.com>
1084 * gst-libs/gst/vaapi/gstvaapifilter.c:
1085 Update for gst_video_transfer_function_*() function renaming
1086 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>
1088 2020-08-22 12:53:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1090 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1091 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1092 Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
1093 This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
1094 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e
1096 === release 1.17.90 ===
1098 2020-08-20 16:16:25 +0100 Tim-Philipp Müller <tim@centricular.com>
1103 * gstreamer-vaapi.doap:
1107 2020-08-17 11:43:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1109 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
1110 libs: surface: egl: guard memory type
1111 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>
1113 2020-08-17 19:26:43 +0800 He Junyan <junyan.he@intel.com>
1115 * gst/vaapi/gstvaapidecode.c:
1116 plugin: decode: Fix two mem leaks because of caps.
1117 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>
1119 2020-08-16 01:57:15 +0800 He Junyan <junyan.he@intel.com>
1121 * gst/vaapi/gstvaapivideomemory.c:
1122 plugin: allocator: No need to ref allocator when create mem.
1123 We do not need to ref the allocator when creating GstVaapiVideoMemory
1124 kind memory, and then release it in _free(). The framework already
1126 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>
1128 2020-08-14 10:42:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1130 * gst/vaapi/gstvaapiencode_h264.c:
1131 vaapiencode: h264: ignore level without breaking negotiation
1132 Since commit 9f627ef2 if the user sets level in the encoder src caps
1133 the caps negotiation is rejected.
1134 But since the same commit the same encoder set the autoconfigured
1135 level in caps. Some change in the base class might fixed the operation
1136 order so now the caps are set and later negotiated.
1137 This patch removes the level check.
1139 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>
1141 2019-07-09 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1143 * gst-libs/gst/vaapi/egl_vtable.h:
1144 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
1145 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
1146 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
1147 libs: egl: surface: export EGLImage as DMABuf if GEM not supported
1148 This code path is used when frames are rendered as textures through
1149 GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
1150 Originally the EGLImage was exported as GEM, which was handled by
1151 Intel drivers, but Gallium ones cannot create VA surfaces from
1152 GEM buffers, only DMABuf.
1153 This patch checks the memory types supported by VA driver to choose
1154 the render the EGLImages from GEM or DMABuf, because GEM is still
1155 better where supported.
1156 DMABuf is well handled either by intel-vaapi-driver and gallium.
1158 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
1160 2020-05-26 16:18:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1162 * gst-libs/gst/vaapi/gstvaapifilter.c:
1163 * gst-libs/gst/vaapi/gstvaapifilter.h:
1164 libs: filter: gst_vaapi_filter_get_memory_types()
1165 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
1167 2020-08-12 18:48:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1169 * gst/vaapi/gstvaapipluginbase.c:
1170 * gst/vaapi/gstvaapipluginbase.h:
1171 plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
1172 Since nobody uses it, just remove it.
1173 Thus extract_allowed_surface_formats() is refactored to attend only
1174 gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
1175 Now a surface is created when the image chorma is different from the
1176 previous one. And if the driver has the quirk, it outputs all the
1177 supported image formats without trying them.
1178 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
1180 2020-08-12 17:50:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1182 * gst/vaapi/gstvaapidecode.c:
1183 vaapidecode: expose raw src caps with same chroma
1184 The try-and-error approach for getting the possible image formats from
1185 a surface has brought several problems in different drivers, from
1186 crashes to drop in performance.
1187 Instead of that we change the algorithm to determine the possible
1188 image formats based in the surface chroma: only those available image
1189 formats with same chroma are exposed as possible raw caps.
1190 Do this is important to avoid performance degrading in raw sinks
1191 which doesn't handle NV12 but it does YV12 or I420.
1192 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
1194 2020-07-10 17:05:38 +0800 He Junyan <junyan.he@intel.com>
1196 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1197 libs: util: h265: use common parser API to get vaapi profiles.
1198 We can reuse H265 parser's API to recognize the correct profile and
1199 then just need to convert them to VAAPI profiles.
1200 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>
1202 2020-08-07 16:41:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1204 * gst-libs/gst/vaapi/meson.build:
1205 * gst/vaapi/meson.build:
1207 build: update for gl pkg-config file split
1208 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>
1210 2020-08-06 12:51:27 +0800 Xu Guangxin <guangxin.xu@intel.com>
1212 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1213 h264dec: mark remaining frames as unreference before exec_picture_refs_modification
1214 8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
1215 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>
1217 2020-07-31 18:22:46 +0800 He Junyan <junyan.he@intel.com>
1219 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1220 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1221 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1222 libs: encoder: H265: Enable Main 12 profile support.
1223 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
1225 2020-07-31 19:17:39 +0800 He Junyan <junyan.he@intel.com>
1227 * gst-libs/gst/vaapi/video-format.c:
1228 video format: Fix P012_LE's chrome type typo.
1229 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
1231 2020-08-04 21:15:01 +0300 Jordan Petridis <jordan@centricular.com>
1233 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
1234 gstvaapiminiobject.c: fix clang 10 warnings
1235 the typesystem checks in g_atomic_pointer_compare_and_exchange
1236 seem to trigger some false positives with clang 10
1237 similar to gstreamer!584
1238 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>
1240 2020-07-31 11:07:23 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1242 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1243 libs: window: wayland: destroy all wayland buffers during finalize
1244 Some buffers and the associated FrameState state may still be pending at
1245 that point. If the wayland connection is shared, then messages for the
1246 buffer may still arrive. However, the associated event queue is already
1247 deleted. So the result is a crash.
1248 With a private connection the associated memory is leaked instead.
1249 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1251 2020-06-18 20:25:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1253 * tests/examples/test-vaapicontext.c:
1254 test: vaapicontext: fix draw callback with multiple videos
1255 The callback is called for both windows. So make sure that
1256 gst_video_overlay_set_render_rectangle() is called for the correct one.
1257 Otherwise, the left video will be randomly moved behind the right video.
1258 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1260 2020-06-19 09:23:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1262 * tests/examples/meson.build:
1263 * tests/examples/test-vaapicontext.c:
1264 test: vaapicontext: support wayland display
1265 On Wayland, The whole gtk window is one Wayland surface. So
1266 gtk_widget_get_window() must be called on the top-level widget.
1267 For any other widget the following gdk_window_ensure_native() may create a
1268 new top-level Wayland surface that is never visible.
1269 As a result, the coordinates passed to
1270 gst_video_overlay_set_render_rectangle() must be relativ to the top-level
1271 window. Otherwise the video is placed incorrectly.
1272 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1273 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1275 2017-12-01 20:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1277 * tests/examples/test-vaapicontext.c:
1278 test: vaapicontext: use playbin to test files
1279 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1281 2017-11-29 11:11:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1283 * tests/examples/test-vaapicontext.c:
1284 test: vaapicontext: add PLAY and NULL buttons
1285 They only appear when only one sink is instanciated and their purpose
1286 is to test the NULL-PLAY use case in context sharing.
1287 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1289 2020-06-19 21:26:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1291 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1292 libs: wayland: update the opaque region in set_render_rect
1293 gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
1294 thread. That thread may be responsible for making the window visible.
1295 At that point another thread will block in gst_vaapi_window_wayland_sync()
1296 because the frame callback will not be called until the window is visible.
1297 If that happens, then acquiring the display lock in
1298 gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
1299 Cache the size of the opaque rectangle separately and create the opaque
1300 region right before applying it to the surface.
1301 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1303 2020-06-19 09:21:16 +0200 Hyunjun Ko <zzoon@igalia.com>
1305 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1306 * gst-libs/gst/vaapi/gstvaapiwindow.h:
1307 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1308 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1309 * gst/vaapi/gstvaapisink.c:
1310 libs: window: implements gst_vaapi_window_set_render_rectangle
1311 Implements new vmethod gst_vaapi_window_set_render_rectangle,
1312 which is doing set the information of the rendered rectangle set by
1314 This is necessary on wayland at least to get exact information of
1316 And vaapisink calls this when gst_video_overlay_set_render_rectangle is
1318 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1320 2017-11-08 13:23:39 +0900 Hyunjun Ko <zzoon@igalia.com>
1322 * gst/vaapi/gstvaapisink.c:
1323 vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
1324 Implements gst_vaapisink_wayland_create_window_from_handle() to support
1325 using external wl_surface.
1326 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1328 2020-06-19 09:11:20 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1330 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1331 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1332 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1333 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1334 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
1335 libs: wayland: implement video overlay API
1336 The Wayland sub-surfaces API is used to embed the video into an application
1338 See Appendix A. Wayland Protocol Specification as the following.
1340 The aim of sub-surfaces is to offload some of the compositing work
1341 within a window from clients to the compositor. A prime example is
1342 a video player with decorations and video in separate wl_surface
1344 This should allow the compositor to pass YUV video buffer processing to
1345 dedicated overlay hardware when possible.
1347 Added new method gst_vaapi_window_wayland_new_with_surface()
1348 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1349 Zhao Halley <halley.zhao@intel.com>
1350 changzhix.wei@intel.com
1351 Hyunjun Ko <zzoon@igalia.com>
1352 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1354 2020-06-19 21:54:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1356 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1357 doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
1358 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1360 2020-06-11 08:25:57 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1362 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1363 libs: display: always call close_display()
1364 All close_display() have their own checks for use_foreign_display and only
1365 destroy locally created objects in that case.
1366 Without this objects other than the actuall foreign display itself are
1368 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1370 2020-07-30 23:37:10 +0800 He Junyan <junyan.he@intel.com>
1372 * gst-libs/gst/vaapi/video-format.h:
1373 video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
1374 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>
1376 2020-05-25 17:02:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1378 * gst/vaapi/gstvaapidecode.c:
1379 * gst/vaapi/gstvaapipluginutil.c:
1380 * gst/vaapi/gstvaapipluginutil.h:
1381 plugins: add gst_vaapi_caps_set_width_and_height_range()
1382 This utility function is called internally by
1383 gst_vaapi_build_caps_from_formats() and can be used outside.
1384 This function sets frame size and framerates ranges.
1385 Also gst_vaapi_build_caps_from_formats() is simplified.
1386 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>
1388 2020-07-31 15:27:38 +0800 He Junyan <junyan.he@intel.com>
1390 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1391 libs: decoder: fix a crash issue when get_surface_formats.
1392 Some context does not report any valid format that we can support.
1393 For example, the HEVC 444 12 bits decoder context, all the formats
1394 it reports is not supported now, which make the formats list a NULL
1395 array. We should check that pointer before we use it.
1396 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>
1398 2020-07-03 19:28:28 +0800 He Junyan <junyan.he@intel.com>
1400 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1401 libs: encoder: h265: choose the profile based on allowed list.
1402 We can decide the profile in ensure_profile(), based on allowed list
1403 passed by the encode. We also need to check whether the entrypoint is
1404 available. Once it is decided, no need to check the hw entrypoint
1406 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1408 2020-07-29 22:05:41 +0800 He Junyan <junyan.he@intel.com>
1410 * gst/vaapi/gstvaapiencode_h265.c:
1411 plugins: encode: h265: set all allowed profiles to encoder.
1412 We should collect all allowed profiles and pass them to the inside
1413 encoder, rather than just calculate the max profile idc.
1414 The allowed profiles should also be supported by the HW.
1415 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1417 2020-07-29 22:32:55 +0800 He Junyan <junyan.he@intel.com>
1419 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1420 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1421 libs: display: Add a helper function to get profiles by codec.
1422 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1424 2020-07-03 01:28:28 +0800 He Junyan <junyan.he@intel.com>
1426 * gst/vaapi/gstvaapiencode_h265.c:
1427 plugins: encode: h265: collect all allowed profiles to encoder.
1428 We should collect all allowed profiles and pass them to the inside
1429 encoder, rather than just calculate the max profile idc.
1430 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1432 2020-07-03 00:53:31 +0800 He Junyan <junyan.he@intel.com>
1434 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1435 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1436 * gst/vaapi/gstvaapiencode_h265.c:
1437 libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
1438 In h265, bigger profile idc may not be compatible with the small profile
1439 idc. And more important, there are multi profiles with the same profile
1440 idc. Such as main-422-10, main-444 and main-444-10, they all have profile
1442 So recording the max profile idc is not enough, the encoder needs to know
1443 all allowed profiles when deciding the real profile.
1444 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1446 2020-07-02 23:33:31 +0800 He Junyan <junyan.he@intel.com>
1448 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1449 libs: encoder: h265: No need to check hw_max_profile.
1450 In h265, higher profile idc number does not mean better compression
1451 performance and may be not compatible with the lower profile idc.
1452 So, it is not suitable to find the heighest idc for hw to ensure the
1454 On the other side, when the entrypoint of the selected profile is valid,
1455 it means the hw really support this profile, no need to check it again.
1456 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1458 2020-04-08 19:41:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1460 * gst/vaapi/gstvaapipostproc.c:
1461 vaapipostproc: early return if fixate srcpad caps fails
1462 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>
1464 2020-07-29 13:39:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1466 * gst/vaapi/gstvaapipluginutil.c:
1467 vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
1468 Generalize the way how the preferred color format is chosen. Also
1469 use new GStreamre API as syntatic sugar.
1470 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>
1472 2020-07-29 14:22:18 +0800 He Junyan <junyan.he@intel.com>
1474 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1475 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1476 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1477 * gst/vaapi/gstvaapidecode.c:
1478 * gst/vaapi/gstvaapiencode.c:
1479 libs: profile: Use get_codec_from_caps to get codec type.
1480 There is no need to get a profile from the caps and then convert
1481 that profile into codec type. We can get the codec type by caps's
1483 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1485 2020-07-12 19:42:40 +0800 He Junyan <junyan.he@intel.com>
1487 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1488 libs: profile: h265: Fix return value of from_codec_data_h265.
1489 profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
1490 The codec data of caps contain the profile IDC, but the mapping between
1491 profile IDC and GstVaapiProfile is wrong.
1492 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1494 2020-07-07 00:46:23 +0800 He Junyan <junyan.he@intel.com>
1496 * gst/vaapi/gstvaapiencode_vp9.c:
1497 plugins: encode: vp9: Implement vp9's allowed_profiles() func.
1498 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1500 2020-07-08 16:30:17 +0800 He Junyan <junyan.he@intel.com>
1502 * gst/vaapi/gstvaapiencode_h264.c:
1503 * gst/vaapi/gstvaapiencode_h265.c:
1504 * gst/vaapi/gstvaapipluginutil.c:
1505 * gst/vaapi/gstvaapipluginutil.h:
1506 plugin: util: rename h26x_encoder_get_profiles_from_caps().
1507 Change its name to encoder_get_profiles_from_caps(). Other codecs such
1508 as VP9 also needs to use this function.
1509 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1511 2020-07-06 23:35:12 +0800 He Junyan <junyan.he@intel.com>
1513 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
1514 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
1515 * gst-libs/gst/vaapi/meson.build:
1516 libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
1517 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1519 2020-07-29 10:17:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1521 * gst-libs/gst/vaapi/gstvaapicontext.c:
1522 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1523 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1524 libs: display, context: handle broken jpeg decoder for i965 driver
1525 JPEG decoding in i965 driver is pretty much broken, and the driver is
1526 deprecated which mean authors only accept trivial fixes.
1527 Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
1528 format which is not a common format in GStreamer. It can export it to
1529 I420 at mapping raw bytes, but DMABuf exporting is problematic.
1530 This patch artificially adds NV12 to the context format list when it's
1531 JPEG decoder for i965 and force the usage of old VA-API for surface
1532 creation without specifying color format. Also it artificially
1533 disables the DMABuf announcement.
1534 1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
1535 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1537 2020-07-29 12:02:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1539 * gst-libs/gst/vaapi/gstvaapicontext.c:
1540 libs: context: change function to internal code style
1541 Instead of a getter the function `get_preferred_format()` to
1542 `ensure_preferred_format()` which aligns to the code style.
1543 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1545 2020-07-28 20:00:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1547 * gst/vaapi/gstvaapidecode.c:
1548 vaapidecode: always merge profile caps in sink caps
1549 This commit fixes a regression of e962069d, where if the profile's
1550 caps doesn't have a caps profile, it's ignored.
1551 This patch add a conditional jump if the caps doesn't have a profile
1554 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>
1556 2020-07-28 12:22:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1559 build: request libdrm >= 2.4.98 and fallback
1561 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>
1563 2020-05-18 17:32:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1565 * gst/vaapi/gstvaapidecode.c:
1566 vaapidecode: dma caps only use reported color format
1567 This fix pipelines without vaapipostproc after vaapi decoder, such as
1568 gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
1569 On EGL platforms, so DMABuf is used.
1570 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1572 2020-02-07 17:10:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1574 * gst/vaapi/gstvaapidecode.c:
1575 vaapidecode: use allowed srcpad caps for caps query
1576 Instead of using just the template caps use the current allowed
1577 srcpad caps, which is created considering the current decoder
1579 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1581 2020-01-22 17:41:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1583 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1584 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1585 * gst/vaapi/gstvaapidecode.c:
1586 vaapidecode: build allowed srcpad caps from va context
1587 Instead of generating allowed srcpad caps with generic information,
1588 now it takes the size an formats limits from the decoder's context.
1589 This is possible since srcpad caps are generated after the internal
1591 The patch replaces gst_vaapi_decoder_get_surface_formats() with
1592 gst_vaapi_decoder_get_suface_attributes().
1593 From these attributes, formats are only used for VASurface memory
1594 caps feature. For system memory caps feature, the old
1595 gst_vaapi_plugin_get_allowed_srcpad_caps() is still used, since
1596 i965 jpeg decoder cannot deliver mappable format for gstreamer.
1597 And for the other caps features (dmabuf and texture upload) the
1598 same static list are used.
1599 This patch also adds DMABuf caps feature only if the context
1600 supports that memory type. Nonetheless, we keep the pre-defined
1601 formats since they are the subset of common derive formats formats
1602 supported either by amd/gallium and both intel drivers, since,
1603 when exporting the fd through vaAcquireBufferHandle()/
1604 vaReleaseBufferHandle(), the formats of the derivable image cannot
1605 be retriebable from the driver. Later we'll use the attribute
1606 formats for the DMABuf feature too, when the code be ported to
1607 vaExportSurfaceHandle().
1608 Finally, the allowed srcpad caps are removed if the internal decoder
1609 is destroyed, since context attribues will change.
1610 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1612 2020-02-07 16:50:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1614 * gst/vaapi/gstvaapidecode.c:
1615 vaapidecode: reorder src caps template
1616 Since negotiation depends on caps order, first is VA, then DMABuf,
1617 later GLUploadTexture (deprecated) and finally raw.
1618 Also, for decoders, the possible available color formats for DMABuf
1619 is extended to all the possible VA color formats.
1620 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1622 2020-07-22 10:01:41 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1624 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1625 libs: window: wayland: use dmabuf protocol if available
1626 Currently vaGetSurfaceBufferWl() is used to create wayland buffers.
1627 Unfortunately this is not implemented by the 'media-driver' and Mesa VA-API
1628 drivers. And the implementation provided by 'intel-vaapi-driver' is not
1629 compatible with a Wayland server that uses the iris Mesa driver.
1630 So create the Wayland buffers manually with the zwp_linux_dmabuf_v1 wayland
1631 protocol. Formats and modifiers supported by the Wayland server are taken
1632 into account. If necessary, VPP is enabled to convert the buffer into a
1634 Fall back to vaGetSurfaceBufferWl() if creating buffers via dambuf protocol
1636 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1638 2020-07-21 10:03:19 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1640 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1641 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1642 libs: window: allow choosing the format for the vpp pool
1643 Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1644 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1646 2020-06-28 17:42:29 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1648 * gst-libs/gst/vaapi/video-format.c:
1649 * gst-libs/gst/vaapi/video-format.h:
1650 video-format: add DRM formats to the mapping table
1651 This will be needed for the DMABuf protocol support to map DRM formats to
1652 vaapi and gstreamer formats.
1653 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1655 2020-07-22 09:36:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1657 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1658 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1659 * gst-libs/gst/vaapi/meson.build:
1660 libs: display: wayland: add basic dmabuf protocol support
1661 This is just the basic infrastructure. Hook up the interface and collect
1662 all supported formats.
1663 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1665 2020-07-06 09:59:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1667 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1668 libs: window: wayland: wait for configure before committing the first buffer
1669 Committing the first buffer for a surface must not be done before
1670 ack_configure() has been sent for the xdg_surface.
1671 With weston, the commit will fail with "error 3: xdg_surface has never been
1673 Wait in gst_vaapi_window_wayland_show() until configure is done to avoid
1675 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1677 2020-07-01 14:50:51 +0800 He Junyan <junyan.he@hotmail.com>
1679 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1680 libs: encoder: h265: set no P frame automatically.
1681 The double reference lists may be required by drivers and there should
1682 be no P frames in the of stream. The old way of converting P frames to
1683 B frames is by setting `low-delay-b` property, which is unconvenient
1684 and has bad user experience, since most of the users do not know when
1685 to set this property, and if it is not set correctly, the encoding
1686 pipeline fails or even hangs on some platforms. VA driver now provides
1687 a attribute to query whether both reference lists must be un-NULL for
1688 a profile/entrypoint pair.
1689 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1691 2020-04-15 16:26:55 +0800 He Junyan <junyan.he@hotmail.com>
1693 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1694 libs: encoder: h265: Deprecate the low-delay-b property.
1695 In HEVC, P and B definitions are different from AVC: P frames have
1696 just one reference list and so 1 MV, while B frames have two reference
1697 lists and so 2 MVs. No matter B or P, ist reference lists can contain
1698 forward/backward reference. So P and B can both have bi-directions
1699 dependency, the difference is just their reference list
1700 number (i.e. MV number). This is different from the AVC.
1701 The *low delay b mode* refers to a special HEVC mode, in which the
1702 stream just contain I and B frames, without P frames, and all B frames
1703 only have forward direction dependencies (i.e. all inter frames have 2
1704 reference lists but no backward reference in both lists). This is
1705 similar to AVC I/P mode, but changing the P to the forward dependent
1707 The `low-delay-b` property is now just used to simply convert all P
1708 frames to B frames when driver does not support P frames (so both
1709 reference lists have the same references frames). This is a little
1710 different from the meaning of low delay b mode (the two ref lists may
1711 have the different reference frames). And the driver now can report
1712 whether it supports P frames correctly, so there is no need to use
1713 this property and deprecate it.
1714 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1716 2020-07-24 12:54:31 +0200 Marc Leeman <m.leeman@televic.com>
1718 * gst/vaapi/gstvaapipostproc.c:
1719 postproc: reconfigure after changing cropping values
1720 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/365>
1722 2020-07-09 13:49:29 +0800 He Junyan <junyan.he@intel.com>
1724 * gst/vaapi/gstvaapiencode.h:
1725 * gst/vaapi/gstvaapiencode_h264.c:
1726 * gst/vaapi/gstvaapiencode_h265.c:
1727 * gst/vaapi/gstvaapiencode_jpeg.c:
1728 * gst/vaapi/gstvaapiencode_mpeg2.c:
1729 * gst/vaapi/gstvaapiencode_vp8.c:
1730 * gst/vaapi/gstvaapiencode_vp9.c:
1731 plugin: encode: Add static caps for template documentation.
1732 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1734 2020-07-08 19:03:14 +0800 He Junyan <junyan.he@intel.com>
1736 * gst/vaapi/gstvaapiencode_vp9.c:
1737 plugin: encode: vp9: Use the dynamically built src template caps.
1738 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1740 2020-07-08 19:02:45 +0800 He Junyan <junyan.he@intel.com>
1742 * gst/vaapi/gstvaapiencode_vp8.c:
1743 plugin: encode: vp8: Use the dynamically built src template caps.
1744 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1746 2020-07-08 19:02:23 +0800 He Junyan <junyan.he@intel.com>
1748 * gst/vaapi/gstvaapiencode_jpeg.c:
1749 plugin: encode: jpeg: Use the dynamically built src template caps.
1750 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1752 2020-07-08 19:00:39 +0800 He Junyan <junyan.he@intel.com>
1754 * gst/vaapi/gstvaapiencode_mpeg2.c:
1755 plugin: encode: mpeg2: Use the dynamically built src template caps.
1756 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1758 2020-07-08 18:59:18 +0800 He Junyan <junyan.he@intel.com>
1760 * gst/vaapi/gstvaapiencode_h265.c:
1761 plugin: encode: h265: Use the dynamically built src template caps.
1762 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1764 2020-07-08 18:57:26 +0800 He Junyan <junyan.he@intel.com>
1766 * gst/vaapi/gstvaapiencode_h264.c:
1767 plugin: encode: h264: Use the dynamically built src template caps.
1768 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1770 2020-07-08 18:46:58 +0800 He Junyan <junyan.he@intel.com>
1772 * gst/vaapi/gstvaapiencode.h:
1773 * gst/vaapi/gstvaapiencode_h264.c:
1774 * gst/vaapi/gstvaapiencode_h265.c:
1775 * gst/vaapi/gstvaapiencode_jpeg.c:
1776 * gst/vaapi/gstvaapiencode_mpeg2.c:
1777 * gst/vaapi/gstvaapiencode_vp8.c:
1778 * gst/vaapi/gstvaapiencode_vp9.c:
1779 plugin: encode: Store the coded caps in type's init data.
1780 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1782 2020-07-08 18:30:00 +0800 He Junyan <junyan.he@intel.com>
1784 * gst/vaapi/gstvaapipluginutil.c:
1785 * gst/vaapi/gstvaapipluginutil.h:
1786 plugin: util: add helper function build_template_coded_caps_by_codec()
1787 Like build_template_raw_caps_by_codec(), this function can detect and
1788 build the caps for specified codec based on the query of the profiles.
1789 The result is coded caps such as video/x-h265, video/x-h264. The result
1790 can be used as the template of encode's src or decode's sink.
1791 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1793 2020-07-07 17:16:41 +0800 He Junyan <junyan.he@intel.com>
1795 * gst/vaapi/gstvaapiencode.h:
1796 * gst/vaapi/gstvaapipluginutil.c:
1797 * gst/vaapi/gstvaapipluginutil.h:
1798 plugins: utils: rename build_template_caps_by_codec.
1799 Rename the function build_template_caps_by_codec() to the name of
1800 build_template_raw_caps_by_codec(). It can be used to collect all
1801 raw video formats for encode's sink and decode's src.
1802 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1804 2020-07-21 20:14:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1806 * gst/vaapi/gstvaapidecode.c:
1807 * gst/vaapi/gstvaapipluginutil.c:
1808 * gst/vaapi/gstvaapipluginutil.h:
1809 vaapidecode: merge common profiles before setting size range
1810 The synthetic profiles, such as H264 baseline, H265 intra, etc. are
1811 added at the end of processing all available VA profiles. This
1812 generated an non-optimal caps for negotiation, since the synthetic
1813 profiles don't have frame size ranges.
1814 This patch adds those possible synthetic profiles when the associated
1815 profile is processed, with its frame size ranges.
1816 Now allowed sink caps are simpler.
1817 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/363>
1819 2020-07-21 22:05:08 +0800 He Junyan <junyan.he@intel.com>
1821 * gst/vaapi/gstvaapipluginutil.c:
1822 plugin: util: Add the missing DMA buffer input in template caps.
1823 We pass the wrong parameter to gst_vaapi_build_caps_from_formats()
1824 and lose the DMA feature in caps.
1825 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/362>
1827 2020-07-14 18:13:56 +0800 He Junyan <junyan.he@intel.com>
1829 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1830 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1831 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1832 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1833 * gst-libs/gst/vaapi/video-format.c:
1834 * gst/vaapi/gstvaapidecode.c:
1835 libs: decoder: H265: Add MAIN_12 profile supporting.
1836 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1838 2020-07-09 23:07:38 +0800 He Junyan <junyan.he@intel.com>
1840 * gst-libs/gst/vaapi/gstvaapiimage.c:
1841 * gst-libs/gst/vaapi/video-format.c:
1842 video-format: Add P012_LE format.
1843 It can be used as HEVC YUV_4:2:0 12bits stream's decoder output, and
1844 also can be used as the input format for encoding HEVC YUV_4:2:0 12bits
1846 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1848 2020-07-17 00:45:53 +0800 He Junyan <junyan.he@intel.com>
1850 * gst/vaapi/gstvaapidecode.c:
1851 plugin: decode: correct ensure_allowed_sinkpad_caps's caps.
1852 The decode allowed caps returned by ensure_allowed_sinkpad_caps()
1853 contains all profiles of the whole VAAPI, like:
1854 image/jpeg, width=(int)[ 0, 1638 4 ], height=(int)[ 0, 16384 ];
1855 video/mpeg, mpegversion=(int)2, profile=(string){ simple, main },
1856 width=(int)[ 0, 2048 ], height=(int)[ 0, 2048 ]; video/x-h264,
1857 profile=(string){ main, high, constrained-baseline }, width=(int)[ 0,
1858 4096 ], height=(int)[ 0, 4096 ]; video/x-h264, profile=(string){
1859 constrained-high, progressive-high, baseline }; video/x-h265,
1860 profile=(string){ main, main-intra }, width=(int)[ 0, 8192 ],
1861 height=(int)[ 0, 8192 ]; video/x-vp8, width=(int)[ 0, 4096 ],
1862 height=(int)[ 0, 4096 ]; video/x-wmv, wmvversion=(int)3,
1863 format=(string)WVC1, profile=(string)advanced, width=(int)[ 0, 3840 ],
1864 height=(int)[ 0, 3840 ]; video/x-wmv, wmvversion=(int)3,
1865 profile=(string){ simple, main }, width=(int)[ 0, 3840 ],
1866 height=(int)[ 0, 3840 ]
1867 Which is verbose and may have latent problems. It should only contains
1868 the profiles belong to its codec type. For example, h265 should only
1870 video/x-h265, profile=(string){ main, main-intra },
1871 width=(int)[ 0, 8192 ], height=(int)[ 0, 8192 ]
1872 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/361>
1874 2020-07-13 11:06:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1876 * gst/vaapi/gstvaapidecodebin.c:
1877 vaapidecodebin: don't force NV12 since P010_10LE is now possible
1878 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/360>
1880 2020-07-12 20:34:31 +0800 He Junyan <junyan.he@intel.com>
1882 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1883 libs: profile: The VP9 profiles' name should be just "0,1,2,3"
1884 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/357>
1886 2020-07-08 17:33:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1888 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1889 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1890 * gst/vaapi/gstvaapidecode.c:
1891 * gst/vaapi/gstvaapidecode.h:
1892 * tests/internal/simple-decoder.c:
1893 vaapidecode: Remove NO_SURFACE error handling
1894 Since surfaces are not bounded to decoding context it makes no sense
1895 to keep the surface semaphore. This patch removes the handling of
1897 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1899 2020-07-08 17:48:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1901 * gst/vaapi/gstvaapidecode.c:
1902 * gst/vaapi/gstvaapidecode.h:
1903 Revert "vaapidecode: drop non-keyframe in reverse playback"
1904 Since the number of surfaces are not bounded to decoder context,
1905 this hack is no longer needed.
1906 This reverts commit 19c0c8a97385ce119440c4aad2d689fc79297435.
1907 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1909 2019-12-06 14:21:33 +0800 He Junyan <junyan.he@hotmail.com>
1911 * gst-libs/gst/vaapi/gstvaapicontext.c:
1912 libs: decoder: context: remove surfaces binding from context.
1913 The vaCreateContext do not need to specify the surfaces for the
1914 context creation now. So we do not need to bind any surface to the
1915 context anymore. Surfaces should be the resource belong to display
1916 and just be used in encoder/decoder context.
1917 The previous manner has big limitation for decoder. The context's
1918 surface number is decided by dpb size. All the surfaces in dpb will
1919 be attached to a gstbuffer and be pushed to down stream, and the
1920 decoder need to wait down stream free the surface and go on if not
1921 enough surface available. For more and more use cases, this causes
1922 deadlock. For example,
1923 gst-launch-1.0 filesrc location=a.h264 ! h264parse ! vaapih264dec
1924 ! x264enc ! filesink location=./output.h264
1925 will cause deadlock and make the whole pipeline hang.
1926 the x264enc encoder need to cache more than dpb size surfaces.
1927 The best solution is seperating the surfaces number and the dpb size.
1928 dpb and dpb size shoule be virtual concepts maintained by the decoder.
1929 And let the surfaces_pool in context maintain the re-use of all surfaces.
1930 For encoder, the situation is better, all the surfaces are just used
1931 as reference frame and no need to be pushed to down stream. We can
1932 just reserve and set the capacity of the surfaces_pool to meet the
1936 Co-Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1937 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1939 2020-07-08 17:50:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1942 * scripts/extract-release-date-from-doap-file.py:
1943 meson: set release date from .doap file for releases
1944 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/355>
1946 2020-07-08 11:57:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1948 * gst/vaapi/gstvaapipluginbase.c:
1949 plugins: use VA allocator by default on raw caps
1950 Instead of using dmabuf allocator in source pad, when raw video caps
1951 are negotiated, it uses VA allocator as before, since it is stable
1952 in more use cases, for example transcoding, and more backend drivers.
1953 Dmabuf allocator is only used when dmabuf caps feature is negotiated.
1954 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>
1956 2020-06-06 18:47:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1958 * gst/vaapi/gstvaapi.c:
1959 vaapisink: rank it as secondary
1960 iHD doesn't provide a full implemention for rendering surfaces and
1961 i965 has problems in wayland. And I suspect this path is followed
1962 by other driver implementations.
1963 This patch demotes the rank of vaapisink to secondary, so it will
1964 not be autoplugged avoiding bad experience of users.
1965 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/336>
1967 2020-06-19 10:44:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1969 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1970 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1971 libs: decoder: h264, h265: in context at least 16 reference surfaces
1972 Registering only stream's DBP size number of surfaces for decoding VA
1973 surfaces brings issues for certain streams. This change register all
1974 possible number of reference surfaces in a stream, which is 16.
1977 2020-07-04 21:21:57 +0800 He Junyan <junyan.he@intel.com>
1979 * gst/vaapi/gstvaapiencode_h265.c:
1980 plugins: encode: h265: Add profile,level,tier to output caps.
1981 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1983 2020-07-04 21:08:20 +0800 He Junyan <junyan.he@intel.com>
1985 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1986 libs: encoder: h265: init tier to GST_VAAPI_TIER_H265_UNKNOWN.
1987 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1989 2020-07-04 21:05:49 +0800 He Junyan <junyan.he@intel.com>
1991 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1992 libs: encoder: h265: fix a bug to get get_profile_tier_level.
1993 0 is a valid value for h265 tier.
1994 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1996 2020-07-02 19:19:35 +0800 He Junyan <junyan.he@intel.com>
1998 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1999 libs: encoder: h265: no need to check the high compression tune.
2000 The h265 encoder just support tune mode:
2002 (3): low-power - Low power mode
2003 So, no need to check and set the high compression parameters.
2004 And by the way, the current ensure_tuning_high_compression manner
2005 of choosing the hightest profile idc as the best compression profile
2006 is not correct. Unlike h264, in h265 the higher profile idc number
2007 does not mean it has more compression tools, and so it has better
2008 compression performance. It may even be un-compatible with the lower
2009 profile idc. For example, the SCREEN_CONTENT_CODING profile with idc
2010 9 is not compatible with 3D_MAIN profile with idc 8.
2011 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/348>
2013 2020-07-03 02:04:14 +0100 Tim-Philipp Müller <tim@centricular.com>
2018 === release 1.17.2 ===
2020 2020-07-03 00:36:40 +0100 Tim-Philipp Müller <tim@centricular.com>
2025 * gstreamer-vaapi.doap:
2029 2020-06-23 10:20:46 -0400 Thibault Saunier <tsaunier@igalia.com>
2031 * docs/gst_plugins_cache.json:
2032 * gst/vaapi/gstvaapiencode.c:
2033 docs: Mark parent classes as plugin API
2035 2020-06-23 00:07:57 +0200 Mathieu Duponchelle <mathieu@centricular.com>
2038 meson: mark plugins cache target as always stale
2040 2020-06-19 23:34:11 -0400 Thibault Saunier <tsaunier@igalia.com>
2042 * docs/gst_plugins_cache.json:
2043 doc: Stop documenting properties from parents
2045 2020-06-20 00:28:35 +0100 Tim-Philipp Müller <tim@centricular.com>
2050 === release 1.17.1 ===
2052 2020-06-19 19:27:11 +0100 Tim-Philipp Müller <tim@centricular.com>
2057 * gstreamer-vaapi.doap:
2061 2020-06-19 15:21:56 +0100 Tim-Philipp Müller <tim@centricular.com>
2063 * docs/gst_plugins_cache.json:
2064 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2065 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2066 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2067 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2068 Update plugin docs and add more plugins
2069 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
2071 2020-06-11 08:32:05 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
2073 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
2074 libs: wayland: display: only handle the first output
2075 Right now, all outputs are handled. The means that the registry object for
2076 all but the last are leaked. As a result the sizes are not used correctly.
2077 With two outputs, at first the mode and physical size of the second output
2078 are used. If the first output changes the mode, then the physical size of
2079 the second output is used in combination with the resolution of the first
2080 output. The resulting pixel aspect ratio is incorrect.
2081 There seems to be no way to determine on which output the window is shown,
2082 so just use the first one to get consistent results.
2083 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
2085 2020-06-11 18:15:17 +0800 He Junyan <junyan.he@hotmail.com>
2087 * gst/vaapi/gstvaapipluginbase.c:
2088 plugins: pluginbase: Do not destroy display when _close()
2089 When the element's state changes to NULL, it can still receive
2090 queries, such as the image formats. The display is needed in such
2091 queries but not well protected for MT safe.
2092 For example, ensure_allowed_raw_caps() may still use the display
2093 while it is disposed by gst_vaapi_plugin_base_close() because of
2095 We can keep the display until the element is destroyed. When the
2096 state changes to NULL, and then changes to PAUSED again, the display
2097 can be correctly set(if type changes), or leave untouched.
2099 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
2101 2020-06-09 21:19:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2103 * gst-libs/gst/vaapi/gstvaapicontext.c:
2104 libs: context: use correct printing modifier
2105 GstVaapiID is an alias of gsize, thus its modifier is platform
2107 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
2109 2020-06-06 00:42:46 +0200 Mathieu Duponchelle <mathieu@centricular.com>
2111 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2112 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2113 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2114 * gst-libs/gst/vaapi/gstvaapifilter.c:
2115 * gst-libs/gst/vaapi/gstvaapivalue.c:
2116 plugins: uddate gst_type_mark_as_plugin_api() calls
2118 2020-03-05 18:12:27 +0800 He Junyan <junyan.he@hotmail.com>
2120 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2121 libs: encoder: h265: Enable tile in VA command.
2122 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2124 2020-03-05 17:56:51 +0800 He Junyan <junyan.he@hotmail.com>
2126 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2127 libs: encoder: h265: Add ensure_tile to calculate tiles.
2128 We need consider tiles and slices together, separate tiles uniformly
2129 and then assign slices uniformly to each tiles.
2130 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2132 2020-04-30 14:19:29 +0800 He Junyan <junyan.he@hotmail.com>
2134 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2135 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2136 libs: display: add a quirk for iHD driver tile encoding.
2137 The iHD driver has a requirement that one slice can not span tiles
2138 when tile is enabled, which is not required by hevc spec.
2139 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2141 2020-03-05 17:40:43 +0800 He Junyan <junyan.he@hotmail.com>
2143 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2144 libs: encoder: h265: Add tile info to bitstream.
2145 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2147 2020-03-05 17:29:41 +0800 He Junyan <junyan.he@hotmail.com>
2149 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2150 libs: encoder: h265: promote level if tile is enabled.
2151 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2153 2020-03-05 17:07:28 +0800 He Junyan <junyan.he@hotmail.com>
2155 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2156 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
2157 libs: encoder: h265: Add num-tile-cols/rows properties.
2158 These properties are used for support of tile encoding. We just
2159 support uniform mode of tile encoding, that is, separating picture
2160 equally by (num-tile-cols X num-tile-rows).
2161 According to HEVC spec A1, the max number of tiles in column is 20
2162 and in rows is 22, so add two constant definitions.
2163 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2165 2020-03-05 16:21:24 +0800 He Junyan <junyan.he@hotmail.com>
2167 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2168 libs: encoder: h265: extract slice creation from add_slice_headers
2169 extract slice creation details from add_slice_headers, and let the
2170 add_slice_headers just focuses on calculating slice start address
2172 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2174 2020-03-05 12:44:45 +0800 He Junyan <junyan.he@hotmail.com>
2176 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2177 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2178 libs: encoder: Add a helper function to check the tile support.
2179 Encoding by tiles separation now is a very common feature for all
2180 relative new codecs, such as HEVC, AV1, and VP9. Just make this
2181 check as a common helper function of the encoder base class.
2182 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2184 2020-05-13 18:02:07 +0800 He Junyan <junyan.he@hotmail.com>
2186 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2187 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2188 * gst-libs/gst/vaapi/gstvaapiprofile.h:
2189 * gst-libs/gst/vaapi/gstvaapiutils.c:
2190 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2191 libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
2192 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2194 2020-05-13 16:05:59 +0800 He Junyan <junyan.he@hotmail.com>
2196 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2197 libs: decoder: update reference list for SCC.
2198 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2200 2020-05-13 15:46:29 +0800 He Junyan <junyan.he@hotmail.com>
2202 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2203 libs: decoder: H265: Fill picture and slice SCC parameters.
2204 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2206 2020-05-13 15:00:53 +0800 He Junyan <junyan.he@hotmail.com>
2208 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2209 libs: util: H265: recognize the SCC profiles.
2210 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2212 2020-05-13 14:53:46 +0800 He Junyan <junyan.he@hotmail.com>
2214 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2215 * gst-libs/gst/vaapi/gstvaapiprofile.h:
2216 * gst-libs/gst/vaapi/gstvaapiutils.c:
2217 libs: profile: Add screen extended main/main10/main444 define.
2218 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2220 2020-04-03 14:53:40 +0800 He Junyan <junyan.he@hotmail.com>
2222 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2223 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2224 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2225 * gst/vaapi/gstvaapiencode_h265.c:
2226 libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
2227 Using YUY2 as the input of the encoder can generate main 4:2:2 bit
2228 streams and using Y210 as the input of the encoder can generate main
2229 4:2:2 10 bit streams.
2230 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
2232 2020-05-29 16:40:20 +0800 He Junyan <junyan.he@hotmail.com>
2234 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2235 libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
2236 We need to use the chroma_format_idc as the index for getting the
2237 SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
2238 The wrong SubWidthC or SubHeightC make us calculate a wrong right
2239 or bottom offset for crop size and generate garbage in output.
2240 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
2242 2020-05-29 15:37:24 +0800 He Junyan <junyan.he@hotmail.com>
2244 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2245 libs: encoder: h265: Fix chrome idc for 444 10 bits
2246 GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
2247 to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
2248 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
2250 2020-06-03 18:37:22 -0400 Thibault Saunier <tsaunier@igalia.com>
2253 doc: Require hotdoc >= 0.11.0
2255 2020-06-03 18:49:53 -0400 Thibault Saunier <tsaunier@igalia.com>
2257 * gst/vaapi/gstvaapipostproc.c:
2258 doc: Fix wrong link to GstVideoDirectionMethod
2260 2020-06-03 17:38:10 -0400 Thibault Saunier <tsaunier@igalia.com>
2262 * docs/gst_plugins_cache.json:
2263 * meson_options.txt:
2264 docs: Update plugin cache with the new format
2265 And fix the default URL which should not be inside quotes.
2267 2020-06-03 17:37:48 -0400 Thibault Saunier <tsaunier@igalia.com>
2269 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2270 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2271 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2272 * gst-libs/gst/vaapi/gstvaapifilter.c:
2273 * gst-libs/gst/vaapi/gstvaapivalue.c:
2274 * gst/vaapi/gstvaapipostproc.c:
2275 Use gst_type_mark_as_plugin_api() for all non-element plugin types
2277 2020-05-23 22:09:17 +0800 He Junyan <junyan.he@hotmail.com>
2279 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2280 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2281 * gst-libs/gst/vaapi/gstvaapicontext.h:
2282 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2283 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2284 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
2285 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
2286 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
2287 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2288 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
2289 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
2290 * gst-libs/gst/vaapi/gstvaapiimage.h:
2291 * gst-libs/gst/vaapi/gstvaapiobject.c:
2292 * gst-libs/gst/vaapi/gstvaapiobject.h:
2293 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
2294 * gst-libs/gst/vaapi/gstvaapiprofile.h:
2295 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2296 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2297 * gst-libs/gst/vaapi/gstvaapisurface.h:
2298 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
2299 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2300 * gst-libs/gst/vaapi/meson.build:
2301 libs: delete all gstvaapiobject related files.
2302 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2304 2020-05-23 20:48:54 +0800 He Junyan <junyan.he@hotmail.com>
2306 * gst-libs/gst/vaapi/gstvaapisurface.c:
2307 libs: surface: return fail immediately if can not create subpicture
2308 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2310 2020-05-23 14:00:58 +0800 He Junyan <junyan.he@hotmail.com>
2312 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2313 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2314 * gst-libs/gst/vaapi/gstvaapisurface.c:
2315 * tests/internal/image.c:
2316 libs: subpicture: Make subpicture a standard GstMiniObject.
2317 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2319 2020-05-26 02:19:15 +0800 He Junyan <junyan.he@hotmail.com>
2321 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2322 libs: decoder: h264: Add ref flags for splited field.
2323 When split one frame into fields, the second field should also
2324 copy the reference flags.
2325 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
2327 2020-05-25 15:46:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2329 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2330 libs: decoder: h264: disallow multiple slice group
2331 As far as we know there are no VAAPI drivers supporting FMO, which
2332 migth be used in baseline streams.
2333 This commit is a continuation of
2334 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
2335 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
2337 2020-05-20 10:50:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2339 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2340 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2341 * gst/vaapi/gstvaapidecode.c:
2342 * gst/vaapi/gstvaapidecode_props.c:
2343 * gst/vaapi/gstvaapidecode_props.h:
2344 vaapidecoder: h264: remove baseline as constrained property
2345 From now on always the baseline is going to be treated as constrained without
2346 need of setting a property.
2347 Since the property was added along the development cycle (1.17 / commit
2348 866a9f06) and never released, we assume that it is safe to remove it.
2350 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
2352 2020-05-21 11:37:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2355 README: update VP9 decoder and encoder
2356 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
2358 2020-05-21 13:42:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
2360 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2361 vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
2362 This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
2363 so let's align this plugin with other libraries / softwares.
2364 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
2366 2020-05-18 18:29:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2368 * gst/vaapi/gstvaapivideobufferpool.c:
2369 vaapivideobufferpool: fix meta overwrite
2370 commit 7ac2a207 added a regression by erroneously assumed that
2371 GstVaapiVideoMeta is actually a GstMeta, which is not.
2372 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
2374 2020-05-17 09:55:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2376 * gst/vaapi/gstvaapivideobufferpool.c:
2377 * gst/vaapi/gstvaapivideometa_texture.c:
2378 * gst/vaapi/gstvaapivideometa_texture.h:
2379 vaapivideopool: Set pooled flag to added metas.
2380 So this could hint filters how to use these metas.
2381 Had to change the return value for texutre upload meta in order
2383 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
2385 2020-05-16 20:49:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2387 * gst-libs/gst/vaapi/gstvaapicontext.c:
2388 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2389 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2390 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
2391 * gst-libs/gst/vaapi/gstvaapisurface.c:
2392 libs: use array_unref() rather than array_free()
2393 It is more convinience and thread-safe.
2394 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
2396 2020-04-10 22:20:35 +0800 He Junyan <junyan.he@hotmail.com>
2398 * gst/vaapi/gstvaapi.c:
2399 plugin: use register_type to replace get_type for encode init.
2400 xxx_register_type will detect the template sink caps and is needed
2401 to be called at init time.
2402 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2404 2020-04-10 22:05:50 +0800 He Junyan <junyan.he@hotmail.com>
2406 * gst/vaapi/gstvaapiencode_vp9.c:
2407 * gst/vaapi/gstvaapiencode_vp9.h:
2408 plugins: encode: Modify sink template of vp9 encode.
2409 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2410 Also implement gst_vaapiencode_vp9_register_type, which should be
2411 called at plugin register time.
2412 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2414 2020-04-10 22:05:18 +0800 He Junyan <junyan.he@hotmail.com>
2416 * gst/vaapi/gstvaapiencode_vp8.c:
2417 * gst/vaapi/gstvaapiencode_vp8.h:
2418 plugins: encode: Modify sink template of vp8 encode.
2419 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2420 Also implement gst_vaapiencode_vp8_register_type, which should be
2421 called at plugin register time.
2422 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2424 2020-04-10 22:04:34 +0800 He Junyan <junyan.he@hotmail.com>
2426 * gst/vaapi/gstvaapiencode_mpeg2.c:
2427 * gst/vaapi/gstvaapiencode_mpeg2.h:
2428 plugins: encode: Modify sink template of mpeg2 encode.
2429 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2430 Also implement gst_vaapiencode_mpeg2_register_type, which should be
2431 called at plugin register time.
2432 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2434 2020-04-10 22:03:49 +0800 He Junyan <junyan.he@hotmail.com>
2436 * gst/vaapi/gstvaapiencode_h265.c:
2437 * gst/vaapi/gstvaapiencode_h265.h:
2438 plugins: encode: Modify sink template of h265 encode.
2439 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2440 Also implement gst_vaapiencode_h265_register_type, which should be
2441 called at plugin register time.
2442 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2444 2020-04-10 22:00:38 +0800 He Junyan <junyan.he@hotmail.com>
2446 * gst/vaapi/gstvaapiencode_h264.c:
2447 * gst/vaapi/gstvaapiencode_h264.h:
2448 plugins: encode: Modify sink template of h264 encode.
2449 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2450 Also implement gst_vaapiencode_h264_register_type, which should be
2451 called at plugin register time.
2452 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2454 2020-04-10 22:11:34 +0800 He Junyan <junyan.he@hotmail.com>
2456 * gst/vaapi/gstvaapiencode_jpeg.c:
2457 * gst/vaapi/gstvaapiencode_jpeg.h:
2458 plugins: encode: Modify sink template of jpeg encode.
2459 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2460 Also implement gst_vaapiencode_jpeg_register_type, which should be
2461 called at plugin register time.
2462 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2464 2020-04-23 00:02:02 +0800 He Junyan <junyan.he@hotmail.com>
2466 * gst/vaapi/gstvaapiencode.h:
2467 plugin: encode: add a helper macro to register encode type.
2468 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2470 2020-04-10 21:44:05 +0800 He Junyan <junyan.he@hotmail.com>
2472 * gst/vaapi/gstvaapipluginutil.c:
2473 * gst/vaapi/gstvaapipluginutil.h:
2474 plugins: util: Add a helper function to detect supported caps.
2475 This helper function iterate all profiles and entrypoints belong
2476 to the specified codec, query the VAConfigAttribRTFormat and list
2477 all possible video formats.
2478 This function is used by each codec to get the template sink caps
2479 (for encode) or src caps(for decode) at register time, when just
2480 all possible formats are listed and no need to be very accurate.
2481 So there is no context created for the performance reason. Most
2482 codecs just use YUV kinds of formats as the input/output, so we do
2483 not include RGB kinds of formats. User can specified more formats
2484 in extra_fmts(For example, jpeg may need BGRA) if needed.
2485 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2487 2020-04-10 21:27:32 +0800 He Junyan <junyan.he@hotmail.com>
2489 * gst/vaapi/gstvaapiencode.c:
2490 * gst/vaapi/gstvaapipluginutil.c:
2491 * gst/vaapi/gstvaapipluginutil.h:
2492 plugin: encode: extract the allowed caps maker as a helper function.
2493 Extract all logic about making caps for encode's sink as a standalone
2494 helper function. It can be reused.
2495 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2497 2020-04-10 21:21:43 +0800 He Junyan <junyan.he@hotmail.com>
2499 * gst-libs/gst/vaapi/video-format.c:
2500 * gst-libs/gst/vaapi/video-format.h:
2501 libs: video-format: add a helper function of get_formats_by_chroma.
2502 The function iterates all supported video formats and returns the
2503 formats belong to the specified chroma type.
2504 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2506 2020-05-16 21:03:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2508 * gst-libs/gst/vaapi/gstvaapitexture.c:
2509 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2510 libs: texture: remove unused headers include
2511 This is continuation of
2512 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
2513 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
2515 2020-05-16 19:58:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2517 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
2518 * gst-libs/gst/vaapi/gstvaapiimage.h:
2519 * gst-libs/gst/vaapi/gstvaapisurface.h:
2520 libs: removed duplicated function declarations
2521 Some headers had duplicated inlined function declaration. This was
2522 for gtkdoc, but now GStreamer uses hotdoc and the internal library
2523 documentation is not generated. So let's remove these extra lines.
2524 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
2526 2020-04-18 19:32:24 +0800 He Junyan <junyan.he@hotmail.com>
2528 * gst-libs/gst/vaapi/gstvaapitexture.c:
2529 * gst-libs/gst/vaapi/gstvaapitexture.h:
2530 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2531 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
2532 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2533 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
2534 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2535 * gst/vaapi/gstvaapivideometa_texture.c:
2536 * tests/internal/test-textures.c:
2537 libs: texture: Make texture a standard GstMiniObject.
2538 We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
2539 the qdata of miniobject and avoid extending the base texture class.
2540 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
2542 2020-04-26 12:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2546 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
2548 2020-04-21 18:00:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2550 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2551 libs: display: drm: use g_strcmp0 to be null safe
2552 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
2554 2020-04-26 13:30:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
2556 * gst/vaapi/gstvaapipluginutil.c:
2557 vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
2558 We may build this plugin with window system support but run it without
2559 window system. Without this patch, the following pipeline will trigger a
2560 segfault when running it without window system.
2561 gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
2562 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
2564 2020-04-21 11:16:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2567 build: use join_paths() for driverdir
2569 2020-04-21 09:04:51 +0000 Veerabadhran G <vegopala@amd.com>
2572 README: Update supported hardware
2573 Added the AMD hardware list to the "Hardware Requirements" section.
2575 2020-04-04 13:58:00 +0200 He Junyan <junyan.he@hotmail.com>
2577 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2578 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
2579 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2580 libs: bufferproxy: remove GstMemory reference
2581 Since bufferproxy and surface are not referenced circularly, there's
2582 no need to keep, in the buffer proxy, a reference to the GstMemory
2583 where it is held. This patch removes that handling.
2585 2020-03-15 23:29:05 +0800 He Junyan <junyan.he@hotmail.com>
2587 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2588 * gst-libs/gst/vaapi/gstvaapisurface.c:
2589 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2590 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
2591 * gst/vaapi/gstvaapivideomemory.c:
2592 libs,plugin: break surface-bufferproxy circular reference
2593 The bufferproxy may reference the surface and the surface may also
2594 reference the bufferproxy, producing a circular reference, which might
2595 lead to serious resource leak problems.
2596 Now make the relationship clearer, the bufferproxy's references is
2597 transfered to surface, while bufferproxy just keeps the surface's
2598 address without increasing its reference count.
2599 The surface can be created through a bufferproxy like in
2600 gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
2601 get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
2602 both cases the surface holds a bufferproxy's reference.
2604 2020-04-03 18:43:52 +0200 He Junyan <junyan.he@hotmail.com>
2606 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2607 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2608 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2609 libs: bufferproxy: rename parent memeber as surface
2611 2020-03-15 22:07:31 +0800 He Junyan <junyan.he@hotmail.com>
2613 * gst/vaapi/gstvaapivideobufferpool.c:
2614 plugin: bufferpool: use hashmap to cache dmabuf mem-surface
2615 The old way of refer memory by bufferproxy is not a good one, since it
2616 make the logic error prone.
2617 Now it is established a map between surface-bufferproxy and its GstMemory,
2618 caching the memory bound by a surface looked for the specified surface.
2620 2020-03-15 21:50:24 +0800 He Junyan <junyan.he@hotmail.com>
2622 * gst/vaapi/gstvaapivideobufferpool.c:
2623 * gst/vaapi/gstvaapivideobufferpool.h:
2624 plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
2625 Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
2626 In fact, no one is using that flag, and all vaapi buffers should
2627 have GstVaapiVideoMeta.
2629 2020-02-13 09:43:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2631 * gst/vaapi/gstvaapipostproc.c:
2632 * gst/vaapi/gstvaapipostproc.h:
2633 vaapipostproc: enable HDR10 tone mapping
2635 2020-02-13 09:00:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2637 * gst-libs/gst/vaapi/gstvaapifilter.c:
2638 * gst-libs/gst/vaapi/gstvaapifilter.h:
2639 libs: filter: HDR10 tone mapping support
2640 Add support for HDR10 tone mapping (since VA-API 1.4.0).
2642 2020-04-02 15:14:15 +0800 He Junyan <junyan.he@hotmail.com>
2644 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2645 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2646 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2647 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2648 * gst/vaapi/gstvaapiencode_h265.c:
2649 libs: encoder: h265: Support MAIN 4:4:4 10 profile.
2650 Using Y410 as the input of the encoder can generate main_444_10 bit
2653 2020-04-02 15:19:41 +0800 He Junyan <junyan.he@hotmail.com>
2655 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2656 libs: encoder: fix an inexact trace info in chroma type check.
2658 2020-03-31 12:22:31 +0800 Haihao Xiang <haihao.xiang@intel.com>
2660 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2661 libs: encoder: make sure format array is not NULL when returning TRUE
2662 This fixed segfault when running the pipeline below with iHD driver
2663 (commit efe5e9a) on ICL
2664 gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
2667 2020-03-18 13:28:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2669 * gst-libs/gst/vaapi/gstvaapidecoder.h:
2670 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2671 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
2672 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
2673 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
2674 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
2675 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
2676 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
2677 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
2678 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2679 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
2680 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2681 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
2682 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
2683 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2684 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2685 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2686 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2687 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2688 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2689 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2690 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2691 * gst-libs/gst/vaapi/gstvaapifilter.h:
2692 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
2693 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2694 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
2695 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
2696 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
2697 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2698 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
2699 libs: extend g_autoptr support
2701 2020-03-26 22:40:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2703 * gst/vaapi/gstvaapivideometa.c:
2704 vaapivideometa: remove compiler warning
2706 2020-03-22 20:59:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2709 * meson_options.txt:
2710 build: Add meson's option package-origin.
2711 This options is added to synchronize with other gstreamer packages
2712 build configuration.
2713 Though, to avoid breaking distro configuration it is set, as default,
2714 the issues gitlab's url, instead of the used string
2715 "Unkown package origin".
2716 Also, set_quoted is used for string based cdata.
2718 2020-02-25 13:45:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2720 * gst/vaapi/gstvaapipostproc.c:
2721 vaapipostproc: deprecate format, width and size parameters
2722 Since they should only be controlled by caps negotiation.
2724 2020-03-18 16:41:01 +0800 He Junyan <junyan.he@hotmail.com>
2726 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2727 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2728 * gst/vaapi/gstvaapidecode.c:
2729 libs,plugins: decoder: Add -intra profile support for hevc.
2730 In hevc, we can consider the -intra profile a subset of the none
2731 -intra profile. The -intra profiles just contain I frames and we
2732 definitely can use the none -intra profiles's context to decode
2734 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2736 2020-03-04 12:35:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2738 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2739 libs: encoder: h265: support ICQ/QVBR BRC
2740 Enable support for ICQ and QVBR bitrate control.
2741 The code is essentially the same for h264 ICQ/QVBR support
2742 which was added in commit 9e0c133a2403.
2744 2020-03-19 11:19:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2746 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2747 libs: encoder: set VA HRD param before RC param
2748 This is a workaround for intel-media-driver bug
2749 https://github.com/intel/media-driver/issues/865
2750 The driver will force the RC method to CBR for HEVCe
2751 when it parses the HRD param. Thus, any RC method
2752 param submitted "prior" to the HRD param will be lost.
2753 Therefore, VBR, ICQ and QVBR for HEVCe can't be
2754 effectively enabled if the RC method param "precedes"
2756 To work around this issue, set the HRD param before
2757 the RC method param so the driver will parse the RC
2758 method param "after" the HRD param.
2759 Afaict, other codecs in the driver (and other drivers)
2760 do not appear to be dependent on the order of HRD and
2761 RC param submission.
2763 2019-11-25 14:16:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
2765 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2766 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2767 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2768 vaapijpegenc: Add a quantization quirk for iHD driver
2769 iHD driver shifts the value by 50 when calculating quantization for JPEG
2770 encoding, so we should add 50 in this plugin for iHD driver too.
2772 2020-03-13 21:49:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2774 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2775 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
2776 * gst-libs/gst/vaapi/gstvaapipixmap.c:
2777 * gst-libs/gst/vaapi/gstvaapipixmap.h:
2778 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
2779 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
2780 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
2781 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2782 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2783 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2784 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
2785 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2786 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
2787 * gst-libs/gst/vaapi/meson.build:
2789 * tests/internal/output.c:
2790 * tests/internal/output.h:
2791 * tests/internal/simple-decoder.c:
2792 * tests/internal/test-decode.c:
2793 libs: remove GstVaapiPixmap
2794 GstVaapiPixmap is an abstract base class which only implementation
2795 were GstVaapiPixmapX11. This class were used for a special type of
2796 rendering in the tests apps, utterly unrelated in GStreamer.
2797 Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
2798 we should remove this unused API.
2799 This removal drops libxrender dependency.
2801 2020-03-17 18:51:19 +0800 He Junyan <junyan.he@hotmail.com>
2803 * gst-libs/gst/vaapi/gstvaapiutils.c:
2804 libs: utils: Add HEVC Main444 sting in string_of_VAProfile
2805 HEVCMain444_10 is already a supported profile and misses the strings.
2807 2020-03-17 12:47:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2809 * gst/vaapi/gstvaapi.c:
2810 plugin: don't error if cannot create display
2811 This might generated errors on automatic tools such as CI. Let's
2812 rather just raise a warning and let continue.
2814 2020-03-09 01:52:57 +0800 He Junyan <junyan.he@hotmail.com>
2816 * tests/check/meson.build:
2817 test: fix a ninja test failure for vaapioverlay.
2818 That test case only works with drm display, so the build such as
2819 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2821 gets a failure when run ninja test. Just enable this test when drm
2824 2020-02-07 23:56:13 +0800 He Junyan <junyan.he@hotmail.com>
2826 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2827 libs: videopool: fix a condition race for pool allocate.
2829 2020-03-05 13:22:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2831 * gst/vaapi/gstvaapivideobufferpool.c:
2832 vaapivideobufferpool: force video meta if sizes are different
2833 The strides and offsets could be the same, but the allocation
2834 size might be different (e.g. alignment). Thus, ensure we also
2835 set the flag to copy from VA memory to system memory when alloc
2839 2020-03-05 14:18:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2841 * gst/vaapi/gstvaapidecode.c:
2842 vaapidecode: don't set base sink caps twice
2843 Base class's sink pad caps are already set when calling set_format().
2844 There's no need to call it again in gst_vaapidecode_negotiate().
2846 2020-03-05 13:26:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2848 * gst/vaapi/gstvaapidecode.c:
2849 vaapidecode: unlock stream if caps update fails
2850 If caps update fail a dead lock occurs since the stream mutex is not
2853 2020-03-03 15:24:32 +0800 Xu Guangxin <guangxin.xu@intel.com>
2855 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2856 libs: decoder: h265: parser state after update dependent slice
2857 If the dependent_slice_segment_flag is true, most slice info derived from last slice.
2858 So we need check the slice type after we call populate_dependent_slice_hdr
2860 2020-02-16 12:21:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2862 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2863 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2864 libs: display: force RGBA image format for i965 driver
2865 Since commit 32bf6f1e GLTextureUpload is broken because i965
2866 doesn't report properly RGBA support. It could be possible to use RGBx
2867 but GLTextureUpload only regotiates RGBA.
2868 The simplest fix to this regression is adding synthetically the RGBA
2869 format in the internal format map.
2871 2020-02-14 19:30:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2873 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2874 libs: display: iterate all quirks table
2875 Instead of break at the fist foud quirk in the table, iterate all over
2876 so it would be feasible to add several quirks for one driver per
2879 2020-02-25 12:05:28 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2881 * gst-libs/gst/vaapi/gstvaapifilter.c:
2882 libs: filter: handle RGB to/from YUV color primary driver quirk
2883 The intel-media-driver (iHD) can't convert output color
2884 primaries when doing YUV to/from RGB CSC. Thus, we must
2885 keep the output color primaries the same as the input
2886 color primaries for this case.
2889 2020-02-25 12:00:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2891 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2892 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2893 libs: display: add YUV to/from RGB color primary quirk
2894 The intel-media-driver (iHD) can't convert output color
2895 primaries when doing YUV to/from RGB CSC.
2897 2020-02-28 11:33:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2899 * gst/vaapi/gstvaapivideomemory.c:
2900 Revert "vaapivideomemory: Store surface allocation flags."
2901 This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
2902 it rewrites the buffer size whilst surface allocation flags are
2903 stored when allocator_params_init() is called since fab890ce.
2906 2020-01-27 18:19:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2908 * gst/vaapi/gstvaapivideomemory.c:
2909 vaapivideomemory: Try surface with allocation flags.
2910 When a vaapi allocator is instantiated, it first try to generate a
2911 surface with the specified configuration.
2912 This patch adds, in this tried buffer, the requested allocation flags.
2914 2020-01-27 18:10:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2916 * gst/vaapi/gstvaapivideomemory.c:
2917 vaapivideomemory: Store surface allocation flags.
2918 Store surface allocation flags passed to the vaapi allocator in
2919 GObject's qdata, because it might be used by the vaapivideobufferpool
2920 when recreating the allocator given any resolution change.
2922 2020-01-24 19:32:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2924 * gst-libs/gst/vaapi/gstvaapisurface.c:
2925 * gst-libs/gst/vaapi/gstvaapisurface.h:
2926 libs: surface: Add hints to allocation flags.
2927 When creating surfaces it is possible to pass to VA hints of its usage,
2928 so the driver may do some optimizations.
2929 This commit adds the handling of encoding/decoding hints.
2931 2020-01-24 22:08:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2933 * gst-libs/gst/vaapi/gstvaapicontext.c:
2934 * gst-libs/gst/vaapi/gstvaapisurface.c:
2935 * gst-libs/gst/vaapi/gstvaapisurface.h:
2936 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2937 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2938 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2939 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2940 * tests/internal/test-filter.c:
2941 * tests/internal/test-surfaces.c:
2942 libs: surface: surfacepool: Add allocation flags in constructors.
2944 2020-02-22 16:06:13 +0800 He Junyan <junyan.he@hotmail.com>
2947 build: let the build fail if none if X11, wayland or drm.
2948 In fact, gst_vaapi_create_test_display only test x11, wayland and
2949 drm, no glx and egl entries. So if none of them is enabled, no
2950 vaapi element can be detected.
2952 2020-02-21 00:58:47 +0800 He Junyan <junyan.he@hotmail.com>
2954 * tests/internal/test-display.c:
2955 test: avoid unused warning for test-display
2956 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2957 -Dwith_glx=no buildir
2958 generate unused warnings.
2960 2020-02-21 00:50:47 +0800 He Junyan <junyan.he@hotmail.com>
2963 build: fix meson build error when without x11.
2964 meson -Dwith_x11=no build_dir
2965 can not success build the project because the glx is still enabled.
2966 We need to disable GLX when X11 is disabled.
2968 2020-02-14 19:53:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
2970 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2971 libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
2972 Intel HW has limitation on max_transform_hierarchy_depth_inter and
2973 max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
2974 other HWs if other HWs may support other values
2975 [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
2977 2020-02-21 07:37:50 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2979 * gst/vaapi/gstvaapipostproc.c:
2980 * gst/vaapi/gstvaapipostprocutil.c:
2981 vaapipostproc: do not compensate for crop/direction if no VPP
2982 If we do not have functional VPP, then cropping and video
2983 direction is non-functional and we should avoid calling
2984 any of the gst_vaapi_filter* APIs.
2986 2020-02-21 06:54:47 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2988 * gst/vaapi/gstvaapipostproc.c:
2989 vaapipostproc: only set VPP colorimetry when VPP is available
2990 If we don't have functional vpp then we should not call
2991 gst_vaapi_filter_set_colorimetry.
2993 2020-02-16 01:25:37 +0800 He Junyan <junyan.he@hotmail.com>
2995 * gst/vaapi/gstvaapivideobufferpool.c:
2996 * gst/vaapi/gstvaapivideomemory.c:
2997 * gst/vaapi/gstvaapivideomemory.h:
2998 videobufferpool: don't reset surface when created internally
2999 The bug fixing, in commit 89f202ea, just considers the case when
3000 surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
3001 which is typically a decoder's behavior. But vaapipostproc doesn't
3002 provide any surface when calling gst_buffer_pool_acquire_buffer(),
3003 thus a surface is created when GstMemory is allocated.
3004 If the surface proxy in buffer's meta is reset at
3005 buffer_pool_reset_buffer(), that surface will be destroyed and it
3006 won't be available anymore. But GstBuffers are cached in the buffer
3007 pool and they are reused again, hence only those images are rendered
3011 2020-02-16 17:19:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3013 * gst-libs/gst/vaapi/gstvaapiblend.c:
3014 * gst-libs/gst/vaapi/gstvaapifilter.c:
3015 * gst/vaapi/gstvaapi.c:
3016 libs: blend: filter: handle finalize() if display isn't assigned
3017 I've just discovered iHD driver in Skylake doesn't have VideoProc
3018 entry point, hence, in this platform, when vaapioverlay is tried to be
3019 registered, critical warnings are raised because blend doesn't have a
3021 As it is possible to have drivers without EntryPointVideoProc it is
3022 required to handle it gracefully. This patch does that: only tries to
3023 register vaapioverlay if the testing display has VPP and finalize()
3024 vmethods, in filter and blend, bail out if display is NULL.
3026 2020-02-15 11:02:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3028 * gst-libs/gst/vaapi/gstvaapifilter.c:
3029 * gst-libs/gst/vaapi/gstvaapiutils.c:
3030 libs: filter: guard all color properties to VA-API 1.2.0
3031 Older VA-API (0.39.0) doesn't have VAProcColorProperties.
3032 Thus, guard all colorimetry -> VA-API support to version
3036 2020-02-17 08:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3038 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3039 libs: decoder: h265: set parser info state at decoding codec data
3040 Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
3041 parser info in sps array. If that parser info comes from decoding
3042 codec data, that parser info will have an undefined state which might
3044 This patch sets the parser info state, at decoding codec data, with
3045 the internal parser state. This is similar with h264 decoder apprach.
3046 Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
3048 2020-02-07 15:24:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3050 * gst/vaapi/gstvaapipostproc.c:
3051 vaapipostproc: demote log message to trace level
3053 2020-02-14 14:45:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3055 * gst-libs/gst/vaapi/video-format.c:
3056 libs: video-format: set general vaapi log category
3057 Instead of logging in an unspecified category, set the default vaapi.
3059 2020-02-15 11:44:48 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3061 * gst-libs/gst/vaapi/gstvaapiutils.c:
3062 libs: utils: guard EncSliceLP for VA-API < 0.39.1
3065 2020-02-14 16:17:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
3067 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3068 libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
3070 2020-02-11 11:31:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3072 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
3073 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3074 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3075 libs: remove crumbs of libva < 0.39
3076 All these guarded code seem like leftovers of commit 920b1ec7a. This
3077 patch completes that missing clean up.
3079 2020-02-11 00:38:40 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3081 * gst-libs/gst/vaapi/gstvaapifilter.c:
3082 * gst-libs/gst/vaapi/gstvaapiutils.c:
3083 libs: VA explicit color standard not supported until 1.2.0
3084 VAProcColorStandardExplicit and associated VAProcColorProperties
3085 (primaries, transfer and matrix) are not supported until
3087 Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
3091 2020-02-10 09:31:15 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3093 * gst-libs/gst/vaapi/gstvaapiutils.c:
3094 libs: utils: WA: use explicit for sRGB colorimetry
3095 Addresses #228 on iHD side. It seems iHD can't handle
3096 VAProcColorStandardSRGB in all situations for vpp. But
3097 it has no problem when we specify the sRGB parameters
3098 via VAProcColorStandardExplicit parameters.
3100 2020-02-07 11:25:31 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3102 * gst-libs/gst/vaapi/gstvaapifilter.c:
3103 libs: filter: set vpp input/output color range
3104 We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
3105 And, the [iHD] driver essentially computes the same color
3106 range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
3107 cases were gstreamer computes it automatically. But,
3108 if the user wants to make it explicit, we should try
3111 2020-02-07 11:20:11 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3113 * gst-libs/gst/vaapi/gstvaapiutils.c:
3114 * gst-libs/gst/vaapi/gstvaapiutils.h:
3115 libs: utils: map GstVideoColorRange to VAAPI VPP
3117 2020-02-07 15:28:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3119 * gst/vaapi/gstvaapidecode.c:
3120 vaapidecode: don't remove chroma-site nor colorimetry
3121 Since now they can be handled by vaapipostproc.
3123 2020-02-04 14:17:43 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3125 * gst/vaapi/gstvaapipostprocutil.c:
3126 vaapipostproc: use sink resolution to calculate src colorimetry
3127 The default output colorimetry is persuaded by the output
3128 resolution, which is too naive when doing VPP cropping
3129 and/or scaling. For example, scaling 4K(sink)->1080P(src)
3130 resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
3131 colorimetry selection and some drivers don't support that
3133 Thus, if output (i.e. downstream) does not specify a
3134 colorimetry then we use the input resolution instead of the
3135 output resolution to create the default colorimetry. Also,
3136 note that we still use the output format since it may be a
3137 different color space than the input. As in the example
3138 above, this will result in bt2020(sink)->bt2020(src)
3139 colorimetry selection and all drivers (afaik) should support
3142 2020-02-04 09:57:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3144 * gst/vaapi/gstvaapipostprocutil.c:
3145 vaapipostproc: set srcpad colorimetry unconditionally
3146 We always need a srcpad colorimetry for VAAPI VPP
3148 Also, check the return value of _set_colorimetry.
3150 2020-01-30 12:34:07 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3152 * gst/vaapi/gstvaapipostprocutil.c:
3153 vaapipostproc: do not override explicit srcpad colorimetry
3154 If colorimetry has been set by a capsfilter (e.g.
3155 vaapipostproc ! video/x-raw,colorimetry=bt709) then
3156 don't try to override it. Previously, the aforementioned
3157 capsfilter will fail to negotiate if default colorimetry
3158 is not the same as the capsfilter (e.g. 4K resolutions).
3160 2020-01-30 09:37:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3162 * gst/vaapi/gstvaapipostproc.c:
3163 vaapipostproc: set vpp filter colorimetry
3164 Set the input and output colorimetry for vpp filter.
3166 2020-01-30 09:34:10 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3168 * gst-libs/gst/vaapi/gstvaapifilter.c:
3169 * gst-libs/gst/vaapi/gstvaapifilter.h:
3170 libs: filter: support vpp input/output color standard
3171 Add API function to allow setting the input and output vpp
3172 color standard from GstVideoColorimetry.
3174 2020-02-04 11:32:54 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3176 * gst-libs/gst/vaapi/gstvaapiutils.c:
3177 * gst-libs/gst/vaapi/gstvaapiutils.h:
3178 libs: utils: map GstVideoColorimetry to VAAPI VPP
3179 Fallback to VAProcColorStandardExplicit if there is no
3182 2020-02-04 10:27:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3184 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3185 * gst-libs/gst/vaapi/gstvaapidisplay.h:
3186 libs: display: add vpp color standard quirk for i965 driver
3187 The i965 does not properly report supported vpp color
3190 2020-02-02 18:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3192 * gst/vaapi/gstvaapivideobufferpool.c:
3193 vaapivideobufferpool: dmabuf implies allocator
3194 Some code can be optimized since only if the dmabuf allocator is set,
3195 the internal flag of dmabuf is TRUE, thus there's no need to evaluate
3196 the allocator address.
3198 2020-01-29 11:55:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3200 * gst/vaapi/gstvaapivideobufferpool.c:
3201 vaapivideobufferpool: reject configuration if allocator isn't vaapi
3202 If the requested allocator in set_config() is not a VAAPI valid one,
3203 reject the configuration, instead of lying and using a private one.
3204 This patch superseeds !254 and !24
3206 2020-01-29 11:55:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3208 * gst/vaapi/gstvaapivideobufferpool.c:
3209 vaapivideobufferpool: add explanation for allocator reconfig
3211 2020-01-29 11:54:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3213 * gst/vaapi/gstvaapivideobufferpool.c:
3214 vaapivideobufferpool: check for vaapi meta first
3215 If the configured meta doesn't request vaapi meta then it is not a
3216 vaapi buffer pool. Bail out as soon as possible.
3218 2020-01-29 11:52:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3220 * gst/vaapi/gstvaapivideobufferpool.c:
3221 vaapivideobufferpool: turn errors into warnings
3222 set_config() vmethod should fail gracefully, thus upstream could
3223 negotiate another pool if possible.
3224 Instead of sending error messages to the bus, let demote the level
3227 2020-01-29 11:51:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3229 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3230 libs: display: log out vendor string when available
3231 This is useful while asking for logs to know the used driver.
3233 2020-01-27 11:49:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3235 * gst-libs/gst/vaapi/gstvaapisurface.c:
3236 libs: surface: initialize VASurfaceAttribExternalBuffers
3237 Initialize VASurfaceAttribExternalBuffers using compiler's syntax
3238 rather than using memset().
3240 2020-01-27 11:44:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3242 * gst-libs/gst/vaapi/gstvaapisurface.c:
3243 libs: surface: merge two loops into one
3244 Merge two loops into one for setting offsets and strides in the
3245 external buffer descriptor.
3247 2020-01-22 10:42:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3249 * gst-libs/gst/vaapi/gstvaapisurface.c:
3250 * gst-libs/gst/vaapi/gstvaapisurface.h:
3251 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
3252 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
3253 libs: surface: surfacepool: rename variable for clearity
3254 In order to be readable, the meaningless 'flags' is renamed to
3255 surface_allocation_flags, which is clearer.
3257 2020-01-27 18:40:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3259 * gst/vaapi/gstvaapivideobufferpool.c:
3260 vaapivideobufferpool: Reuse internal allocator is possible.
3261 Instead of creating a new allocator when upstream requests a different
3262 allocator, this patch tries to reuse the internal allocator if it was
3263 already initializated.
3264 If the stream changes, then either one will be unref and a new
3265 allocator is created.
3267 2020-01-27 18:05:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3269 * gst/vaapi/gstvaapivideobufferpool.c:
3270 vaapivideobufferpool: Log messages in proper category.
3271 The log messages where logged in the GstBufferPool category because
3272 the instance was not properly casted. This fix that situation.
3274 2020-01-16 11:49:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3276 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3277 * gst-libs/gst/vaapi/gstvaapidisplay.h:
3278 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3279 * gst/vaapi/gstvaapipluginbase.c:
3280 libs: display: driver quirks mechanism
3281 This mechanism comes from ffmpeg vaapi implementation, where they have
3283 A specific driver is identified by a substring present in the vendor
3284 string. If that substring is found, a set of bitwise flags are store.
3285 These flags can be accessed through the function
3286 gst_vaapi_display_has_driver_quirks().
3287 The purpose for this first quirks is to disable the put image try for
3288 AMD Gallium driver (see [1]).
3289 1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
3291 2020-01-15 23:07:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3293 * gst/vaapi/gstvaapipluginutil.c:
3294 plugins: renable Mesa Gallium driver
3296 2020-01-24 11:55:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3298 * gst/vaapi/gstvaapivideobufferpool.c:
3299 vaapivideobufferpool: validate returned meta
3300 Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
3301 the acquired buffer is not null.
3302 This situation should be very "pathological", but still it is better
3303 be safe since that meta might be used later to create a new dma
3306 2020-01-22 18:50:36 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3308 * gst/vaapi/gstvaapivideobufferpool.c:
3309 vaapivideobufferpool: always update/release the underlying surface proxy
3310 gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
3311 releases the last reference on an exported DMA buffer. This should
3312 release the underlying surface proxy. To avoid releasing the wrong
3313 surface due to a stale surface proxy reference in the buffer's
3314 GstVaapiVideoMeta, always update the reference to the correct surface
3315 in gst_vaapi_video_buffer_pool_acquire_buffer().
3317 2020-01-23 16:56:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3319 * gst-libs/gst/vaapi/gstvaapicontext.c:
3320 * gst-libs/gst/vaapi/gstvaapicontext.h:
3321 * gst-libs/gst/vaapi/gstvaapisurface.c:
3322 * gst-libs/gst/vaapi/gstvaapisurface.h:
3323 libs: context: select vaCreateSurfaces version according attributes
3324 This commit tries to centralize the selection of vaCreateSurfaces
3325 version, instead of having fallbacks everywhere.
3326 These fallbacks are hacks, added because new drivers use the latest
3327 version of vaCreateSurfaces (with surface attributes) [1], meanwhile
3328 old drivers (or profiles as JPEG decoder in i965) might rather use the
3330 In order to select which method, there's detected hack: each config
3331 context has a list of valid formats, in the case of JPEG decoder the
3332 list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
3333 handled correctly by the current gstreamer-vaapi code [2].
3334 The hack consist in identify if the format list contains an arbitrary
3335 preferred format (which is suposedly well supported by
3336 gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
3337 the the old version of vaCreateSurfaces is used, and the surfaces wil
3338 be mapped into a image with their own color format.
3339 1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
3340 2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
3342 2020-01-21 19:35:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3344 * gst-libs/gst/vaapi/gstvaapicontext.c:
3345 libs: context: add debug category for context
3347 2020-01-22 20:20:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3349 * gst-libs/gst/vaapi/gstvaapiblend.c:
3350 libs: blend: guard VA_BLEND_GLOBAL_ALPHA
3352 2020-01-21 14:09:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3354 * gst/vaapi/gstvaapiencode_h264.c:
3355 vaapiencode: promote info to warning
3356 Let's notify user about using constrained-baseline instead on
3357 requested basline profile.
3359 2019-06-28 15:41:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
3361 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3362 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
3363 * gst/vaapi/gstvaapidecode.c:
3364 * gst/vaapi/gstvaapidecode_props.c:
3365 * gst/vaapi/gstvaapidecode_props.h:
3366 vaapih264dec: Add a property to assume constrained-baseline
3367 When baseline-as-constrained is set, the decoder will expose support
3368 for baseline decoding and assume that the baseline content is
3369 constrained-baseline. This can be handy to decode streams in hardware
3370 that would otherwise not be possible to decode. A lot of baseline
3371 content is in fact constrained.
3373 2020-01-17 16:19:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3375 * gst/vaapi/gstvaapiencode_h264.c:
3376 * gst/vaapi/gstvaapipluginutil.c:
3377 vaapih264enc: accept baseline as constrained baseline compatible
3379 2020-01-17 14:24:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3381 * gst/vaapi/gstvaapiencode_h264.c:
3382 vaapih264enc: update level in src caps
3383 And, if downstream requests a specific level, the caps are not
3384 negotiated, because there is no mechanism right now to specify a
3385 custom level in the internal encoder.
3387 2020-01-17 17:12:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3389 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3390 libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
3392 2020-01-17 13:38:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3394 * gst/vaapi/gstvaapiencode_h264.c:
3395 vaapih264enc: force byte-stream if avc isn't supported
3396 Removing the validation in gst_vaapiencode_h264_get_caps() since that
3397 ought be handled in gst_vaapiencode_h264_set_config()
3399 2020-01-08 17:37:22 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3401 * gst/vaapi/gstvaapiencode_h264.c:
3402 vaaph264enc: suppress avc if the driver does not support packed headers
3403 Do not negotiate AVC output if the driver does not support it.
3405 2020-01-08 17:16:35 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3407 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3408 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3409 libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
3410 AVC output requires packed header support in the driver.
3412 2020-01-17 13:07:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3414 * gst/vaapi/gstvaapiencode_h264.c:
3415 vaapih264enc: intersect the new proposed caps
3416 Instead of just leave to keep the proposed caps, with the best profile
3417 in the allowed caps, is its intersected again.
3419 2020-01-17 12:58:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3421 * gst/vaapi/gstvaapiencode_h264.c:
3422 vaapih264enc: propose new profile caps and fixate it
3423 When the available caps doesn't intersect with the allowed caps in the
3424 pipeline, a new caps is proposed rather than just expecting to
3426 Later, the intersected caps (profile_caps) is fixated in order to
3427 extract the configuration.
3429 2020-01-17 13:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3431 * gst/vaapi/gstvaapiencode_h264.c:
3432 vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
3433 Add a common fail code path for gst_vaapiencode_h264_set_config().
3435 2020-01-17 12:54:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3437 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3438 libs: encoder: unref formats array if none
3439 The formats array is always created, in order to keep the logic and
3440 to avoid broken caps, if this formats array doesn't contain any
3441 elements, it has to be unref and the function should return NULL.
3443 2020-01-17 14:22:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3445 * gst/vaapi/gstvaapiencode_h264.c:
3446 vaapih264enc: fix log message
3447 Before the log wasn't processed because wrong instance pointer.
3449 2019-06-22 00:44:25 +0800 He Junyan <junyan.he@hotmail.com>
3451 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3452 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3453 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3454 * gst/vaapi/gstvaapiencode_h265.c:
3455 plugin: encode: Add H265 main-444 profile.
3456 Expose the main-444 profile to h265enc caps, when the upstream
3457 chooses to use VUYA as input, we choose main 4:4:4 profile to encode
3460 2020-01-15 19:36:00 +0800 He Junyan <junyan.he@hotmail.com>
3462 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3463 libs: encoder: h265: Consider main-444 profile when encoding.
3464 Add support of main-444 profile for parameter setting and packed header
3467 2020-01-15 23:04:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3469 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3470 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3471 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3472 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3473 * gst/vaapi/gstvaapiencode.c:
3474 vaapiencode: DMABuf only if PRIME is available
3475 Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
3476 memory type is available in the VA surface attributes of codec
3479 2020-01-16 09:14:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
3481 * hooks/pre-commit.hook:
3482 Add hooks/pre-commit.hook
3483 meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
3484 Copied and pasted pre-commit.hook from other gstreamer modules to make
3485 sure gstreamer-vaapi follows the same code style
3487 2019-12-26 16:45:51 +0800 He Junyan <junyan.he@hotmail.com>
3489 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3490 libs: encoder: h265: Set encoder paramters base on entrypoint.
3491 When the tune is NONE, we now can choose entrypoint freely. So the
3492 GST_VAAPI_ENCODER_TUNE macro may not return the correct current
3494 We also delay CTU size calculation after entrypoint has been decided.
3496 2019-12-28 19:18:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3498 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3499 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3500 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3501 * gst-libs/gst/vaapi/gstvaapicontext.c:
3502 * gst-libs/gst/vaapi/gstvaapicontext.h:
3503 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3504 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3505 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3506 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3507 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3508 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3509 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3510 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3511 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3512 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3513 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3514 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3515 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3516 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3517 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3518 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3519 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3520 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3521 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3522 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3523 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3524 * gst-libs/gst/vaapi/meson.build:
3525 * gst/vaapi/gstvaapi.c:
3526 * gst/vaapi/gstvaapiencode.c:
3527 * gst/vaapi/gstvaapiencode.h:
3528 * gst/vaapi/gstvaapiencode_h264_fei.c:
3529 * gst/vaapi/gstvaapiencode_h264_fei.h:
3530 * gst/vaapi/gstvaapifeivideometa.c:
3531 * gst/vaapi/gstvaapifeivideometa.h:
3532 * gst/vaapi/meson.build:
3534 * tests/internal/meson.build:
3535 * tests/internal/test-fei-enc-in.c:
3536 * tests/internal/test-fei-enc-out.c:
3537 Remove all FEI related
3538 FEI encoders are not actively mantained neither tested, and it is
3539 using infrastructure that is changing and FEI is stopping this
3541 Also it is required to rethink how FEI can be used in GStreamer.
3543 2020-01-14 11:17:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3545 * gst/vaapi/gstvaapioverlay.c:
3546 vaapioverlay: ensure sinkpad has current buffer
3547 Use the gst_video_aggregator_pad_has_current_buffer API
3548 to check if the current sinkpad has a queued buffer before
3549 attempting to obtain a input buffer from the base plugin.
3550 If the sinkpad does not have a current buffer, then it is
3551 either not producing them yet (e.g. current time < sinkpad
3552 start time) or it has reached EOS.
3553 Previously, we only handled EOS case.
3555 gst-launch-1.0 videotestsrc num-buffers=100 \
3556 ! vaapipostproc ! vaapioverlay name=overlay \
3557 ! vaapisink videotestsrc timestamp-offset=1000000000 \
3558 num-buffers=100 ! video/x-raw,width=160,height=120 \
3561 2020-01-14 18:57:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3563 * gst/vaapi/gstvaapioverlay.c:
3564 vaapioverlay: unroll the recursive call
3565 Recursive functions are elegant but dangerous since they might
3566 overflow the stack. It is better to turn them into a list tranversal
3567 if possible, as this case.
3569 2020-01-14 18:46:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3571 * gst-libs/gst/vaapi/gstvaapiblend.c:
3572 * gst/vaapi/gstvaapioverlay.c:
3573 vaapioverlay: add minimal documentation
3575 2020-01-14 18:25:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3577 * gst-libs/gst/vaapi/gstvaapiblend.c:
3578 * gst-libs/gst/vaapi/gstvaapiblend.h:
3579 * gst/vaapi/gstvaapioverlay.c:
3580 libs: blend: simplify generator API
3581 Instead of using a parent structure that has to be derived by API
3582 consumers, this change propse a simplification by using the common
3583 pattern of GTK of passing a function pointer and user data which will
3584 be passed as its parameter. That user data contains the state and the
3585 function will be called to update that state.
3587 2020-01-10 10:14:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3589 * gst-libs/gst/vaapi/gstvaapiblend.c:
3590 * gst-libs/gst/vaapi/gstvaapiblend.h:
3591 libs: blend: remove begin/render/end API
3592 This API was risky and is superseded by the surface
3593 generator (process) API.
3596 2020-01-10 10:12:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3598 * gst/vaapi/gstvaapioverlay.c:
3599 vaapioverlay: use blend surface generator API
3602 2020-01-10 09:54:30 -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: add surface generator API
3607 This new API allows the user to call a single method (process)
3608 which handles the [display] lock/unlock logic internally for
3610 This API supersedes the risky begin, render, end API.
3611 It eliminates the need for the user to call a lock method
3612 (process_begin) before processing the input buffers
3613 (process_render) and calling an unlock method (process_end)
3617 2019-12-23 14:29:08 +0800 He Junyan <junyan.he@hotmail.com>
3619 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3620 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3621 * gst/vaapi/gstvaapiencode.c:
3622 * gst/vaapi/gstvaapiencode.h:
3623 * gst/vaapi/gstvaapiencode_h264.c:
3624 * gst/vaapi/gstvaapiencode_h265.c:
3625 plugin: encode: List all possible profiles to detect input formats.
3626 The current get_profile just return one possible profile for the encode,
3627 which is not enough. For example, if we want to support HEVC 4:4:4
3628 profile, the input of encode should be VYUA rather than NV12 in HEVC
3629 main profile. So the command line:
3630 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3631 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3632 tune=low-power init-qp=30 ! fakesink
3633 can not work because vaapih265enc just report NV12 in sink caps, we need
3634 to specify the profile obviously like:
3635 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3636 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3637 tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
3638 profile=main-444 ! fakesink
3639 The encode should have the ability to choose the profile based on input
3640 format automatically. If the input video format is VUYA, the main-444
3641 profile should be auto choosed.
3642 We modify to let get_allowed_profiles of each encode sub class to return
3643 an array of all supported profiles based on downstream's allowed caps, or
3644 return NULL if no valid profiles specified by downstream.
3645 If no allowed profiles found, all profiles which belong to the current
3646 encoder's codec will be the candidates.
3647 The function gst_vaapi_encoder_get_surface_attributes collects the surface's
3648 attributes for that profile list we just get.
3649 So for this case, both NV12 and VUYA should be returned.
3650 TODO: some codec like VP9, need to implement the get_profile() function.
3652 2020-01-08 15:07:36 +0800 He Junyan <junyan.he@hotmail.com>
3654 * gst/vaapi/gstvaapipluginutil.c:
3655 * gst/vaapi/gstvaapipluginutil.h:
3656 plugin: util: add helper function to detect profiles in caps.
3658 2020-01-08 15:04:18 +0800 He Junyan <junyan.he@hotmail.com>
3660 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3661 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3662 libs: encoder: add a helper function to get all supported profiles
3664 2020-01-13 15:34:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
3666 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3667 libs: decoder: Don't unref null object
3668 ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
3669 gst_vaapi_context_unref: assertion 'context != NULL' failed
3671 2020-01-10 09:26:44 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3673 * gst/vaapi/gstvaapioverlay.c:
3674 plugins: overlay: use proper NULL check on double pointer
3675 Check the address of the variable is not NULL,
3676 not the address of the pointer.
3678 2020-01-08 23:42:21 +0800 He Junyan <junyan.he@hotmail.com>
3680 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3681 libs: codedbuf: delete a useless field.
3682 The context field in GstVaapiCodedBuffer is not inited correctly
3683 and is never used, just delete it.
3685 2019-12-29 17:57:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3687 * gst/vaapi/gstvaapipluginutil.c:
3688 plugins: add iHD driver in whitelist
3690 2020-01-02 21:02:40 +0800 He Junyan <junyan.he@hotmail.com>
3692 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3693 libs: encoder: modify 265 SPS header's profile compatibility flag.
3694 Make the SPS profile compatibility flags more precisely conform to
3697 2020-01-06 19:39:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3699 * tests/check/elements/vaapioverlay.c:
3700 test: vaapioverlay: bail test if not available
3701 vaapioverlay is only registered if the VA driver support the blend
3703 This patch only executes the test if vaapioverlay is available,
3704 otherwise the test is bail out without raising an error.
3706 2020-01-06 14:53:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3708 * tests/check/elements/vaapioverlay.c:
3709 tests: vaapioverlay: force drm backend
3711 2019-12-22 17:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3713 * gst-libs/gst/vaapi/gstvaapiblend.c:
3714 libs: blend: update to new mini-object API
3716 2019-11-19 13:48:22 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3718 * tests/check/elements/vaapioverlay.c:
3719 * tests/check/meson.build:
3720 tests: check: add basic vaapioverlay test
3721 Add test_overlay_position test to verify sink_1 input
3722 is overlayed onto sink_0 input at the appropriate
3725 2019-11-14 12:03:57 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3727 * gst/vaapi/gstvaapi.c:
3728 * gst/vaapi/gstvaapioverlay.c:
3729 * gst/vaapi/gstvaapioverlay.h:
3730 * gst/vaapi/meson.build:
3731 plugins: add vaapioverlay plugin
3732 A plugin similar to the base compositor element but
3733 uses VA-API VPP blend functions to accelerate the
3734 overlay/compositing.
3736 gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
3737 ! tee name=testsrc ! queue \
3738 ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
3739 name=overlay ! vaapisink testsrc. ! queue ! overlay.
3741 2019-11-14 12:02:19 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3743 * gst-libs/gst/vaapi/gstvaapiblend.c:
3744 * gst-libs/gst/vaapi/gstvaapiblend.h:
3745 * gst-libs/gst/vaapi/meson.build:
3746 libs: add a vaapi blend class
3747 Support for the VA-API VPP blend functions.
3749 2019-11-14 11:54:59 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3751 * gst/vaapi/gstvaapipluginbase.c:
3752 * gst/vaapi/gstvaapipluginbase.h:
3753 plugins: base: add GstVideoAggregator subclass support
3755 2020-01-05 19:32:16 +0800 He Junyan <junyan.he@hotmail.com>
3757 * gst-libs/gst/vaapi/gstvaapiimage.c:
3758 libs: image: init all image fields correctly.
3760 2020-01-06 17:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
3762 * gst/vaapi/gstvaapipostproc.c:
3763 doc: fix pipeline typo in vaapipostproc
3765 2020-01-02 21:11:44 +0800 He Junyan <junyan.he@hotmail.com>
3767 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3768 libs: encoder: modify 265 VPS header fields.
3769 vps_base_layer_internal_flag and vps_base_layer_available_flag
3770 have been clearly defined now.
3772 2020-01-01 19:54:13 +0800 He Junyan <junyan.he@hotmail.com>
3774 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
3775 libs: display: fix a resource leak in X11 pixmap format.
3777 2020-01-02 18:00:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3779 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3780 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3781 libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
3783 2019-12-30 14:09:17 +0800 He Junyan <junyan.he@hotmail.com>
3785 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3786 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3787 * gst/vaapi/gstvaapiencode.c:
3788 libs: encoder: get surfaces resolution the same time with formats.
3789 We can get all the information about the video format at one shot
3790 when we create the test context for getting the supported formats.
3791 The current way to get the width and height ranges are inefficient,
3792 since it calls the function gst_vaapi_profile_caps_append_encoder()
3793 and it creates another temporal context to detect the resolution
3795 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3797 2019-12-28 17:42:55 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3799 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3800 libs: encoder: vp9: fix code style
3802 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3804 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3805 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3806 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3807 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3808 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3809 libs: encoder: set entrypoint based on tune automatically
3810 Some profile, such as H265_MAIN_444 on new Intel platform, may only
3811 support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
3813 1. We need to specify the tune mode like `vaapih265enc tune=low-power`
3814 every time when we need to use this kind of profile. Or we can not
3815 create the encoder context successfully.
3816 2. More seriously, we set the entrypoint to a fixed value in
3817 init_context_info() and so the create_test_context_config() can not
3818 create the test context for these profile and can not get the
3819 supported video formats, either.
3820 We now change the entrypoint setting based on the tune option of the
3821 encoder. If no tune property provided, we just choose the first
3822 available entrypoint.
3824 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3826 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3827 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3828 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3829 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3830 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3831 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3832 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3833 libs: encoder: set context info profile by encoder
3834 Instead of init_context_info() setting the passed profile, it is
3835 assumed that it has to be set by each encoder.
3836 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3838 2019-12-27 18:49:02 +0100 He Junyan <junyan.he@hotmail.com>
3840 * gst-libs/gst/vaapi/gstvaapicontext.c:
3841 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3842 libs: context: add invalid entrypoint symbol
3843 The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
3844 zero, which was already used as an invalid value tacitly. This patch
3845 only makes it explicit.
3846 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3848 2019-12-29 01:13:29 +0800 He Junyan <junyan.he@hotmail.com>
3850 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3851 libs: pixmap: Fix a pixmap creation crash.
3852 We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
3853 pixmap creation, which causes crash if we run the internal test case
3855 test-decode --pixmap
3857 2019-12-22 14:35:18 +0800 He Junyan <junyan.he@hotmail.com>
3859 * gst/vaapi/gstvaapiencode.c:
3860 plugin: encode: set allowed_sinkpad_caps to empty.
3861 We now set encode->allowed_sinkpad_caps to NULL if we fail to get
3862 surfaces formats. This causes two problem:
3863 1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
3864 which changes its behavior. It will use encode's sinkpad template
3865 rather than empty caps to do the clip job. So even if we fail to set
3866 allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
3868 2. We should just set the allowed_sinkpad_caps once. The NULL point
3869 make the ensure_allowed_sinkpad_caps function works again and again.
3871 2019-12-22 15:22:57 +0800 He Junyan <junyan.he@hotmail.com>
3873 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3874 libs: encoder: Add NULL pointer check for context when finalize.
3875 Context may be NULL if pipeline fail in early stage, and the
3876 ensure_context will not be called. Need to add a pointer protection
3879 2019-12-20 06:38:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3881 * gst/vaapi/gstvaapipluginbase.c:
3882 plugins: base: do not reset can_dmabuf
3883 Don't reset the can_dmabuf field. This restores the
3884 close/reset logic that existed prior to commit
3885 ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
3887 Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
3888 once during startup, but may need to reset the other private
3889 fields multiple times during negotiation. Thus, can_dmabuf
3890 should be exempt from the resets.
3893 2019-12-06 00:21:12 +0800 He Junyan <junyan.he@hotmail.com>
3895 * gst/vaapi/gstvaapiencode.c:
3896 plugin: encode: Refine encode's sink caps.
3897 The old manner to get the encode's sink caps is not correct.
3898 Such as 264 encode, it gets:
3899 video/x-raw(memory:VASurface),
3900 format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
3901 P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
3902 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3903 video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
3904 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3905 framerate=(fraction)[ 0/1, 2147483647/1 ];
3906 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3907 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3908 where the formats for memory:VASurface and memory:DMABuf are superfluous.
3909 All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
3910 input format for encoder.
3912 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3913 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3914 video/x-raw(memory:VASurface), format=(string){ NV12 },
3915 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3916 framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
3917 format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3918 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3919 as the correct result.
3921 2019-12-20 08:37:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3923 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3924 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3925 libs: display: code clean up
3927 2019-12-12 21:34:21 +0800 He Junyan <junyan.he@hotmail.com>
3929 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3930 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3931 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3932 libs: display: refine the profile/entrypoint map.
3933 The old way make the one config for each profile/entrypoint pair,
3934 which is not very convenient for description the relationship
3935 between them. One profile may contain more than one entrypoints
3936 to within it, so a set like data structure should be more suitable.
3938 2019-12-19 14:19:10 +0100 He Junyan <junyan.he@hotmail.com>
3940 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3941 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3942 * gst-libs/gst/vaapi/gstvaapicontext.c:
3943 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3944 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3945 * gst-libs/gst/vaapi/gstvaapifilter.c:
3946 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3947 * gst-libs/gst/vaapi/gstvaapisurface.c:
3948 * gst-libs/gst/vaapi/gstvaapisurface.h:
3949 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3950 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
3951 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3952 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3953 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3954 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
3955 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
3956 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3957 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3958 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3959 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3960 * gst/vaapi/gstvaapipluginbase.c:
3961 * gst/vaapi/gstvaapivideomemory.c:
3962 * gst/vaapi/gstvaapivideometa.c:
3963 * gst/vaapi/gstvaapivideometa_texture.c:
3964 * tests/internal/image.c:
3965 * tests/internal/test-filter.c:
3966 * tests/internal/test-surfaces.c:
3967 * tests/internal/test-windows.c:
3968 libs: surface: port to GstMiniObject
3969 GstVaapiMiniObject and GstVaapiObject are deprecated.
3970 This is the first step to remove them by porting GstVaapiSurface as
3971 a GstMiniBuffer descendant.
3972 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3974 2019-12-19 18:26:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3976 * gst-libs/gst/vaapi/gstvaapisurface.c:
3977 libs: surface: rename create function names to init
3978 There are several internal functions with 'create' name, but they
3979 don't create any new structure, but rather it initializes that
3980 structure. Renaming those function to reflect better their purpose.
3982 2019-12-19 14:17:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3984 * gst-libs/gst/vaapi/gstvaapisurface.c:
3985 libs: surface: use macro accessors
3987 2019-12-19 13:46:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3989 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3990 libs: surface: fix internal documentation
3992 2019-12-18 18:00:49 +0100 He Junyan <junyan.he@hotmail.com>
3994 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3995 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
3996 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3997 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3998 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3999 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4000 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4001 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4002 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4003 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4004 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4005 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4006 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
4007 * gst-libs/gst/vaapi/gstvaapivideopool.c:
4008 libs: codedbuffer: port to GstMiniObject
4009 GstVaapiMiniObject and GstVaapiObject are deprecated.
4010 This is the first step to remove them by porting GstVaapiCodedBuffer
4011 as a GstMiniBuffer descendant.
4012 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4014 2019-12-18 12:57:01 +0100 He Junyan <junyan.he@hotmail.com>
4016 * gst-libs/gst/vaapi/gstvaapiimage.c:
4017 * gst-libs/gst/vaapi/gstvaapiimage.h:
4018 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
4019 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
4020 * gst-libs/gst/vaapi/gstvaapisurface.c:
4021 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
4022 * gst-libs/gst/vaapi/gstvaapivideopool.c:
4023 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4024 * gst/vaapi/gstvaapipluginbase.c:
4025 * gst/vaapi/gstvaapivideomemory.c:
4026 * gst/vaapi/gstvaapivideometa.c:
4027 * tests/internal/image.c:
4028 * tests/internal/simple-encoder.c:
4029 * tests/internal/test-fei-enc-in.c:
4030 * tests/internal/test-filter.c:
4031 * tests/internal/test-windows.c:
4032 libs: image: port to GstMiniObject base class
4033 GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
4034 first step to remove them, by porting GstVaapiImage as a
4036 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4038 2019-09-24 01:01:22 +0800 He Junyan <junyan.he@hotmail.com>
4040 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
4041 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
4042 * gst-libs/gst/vaapi/gstvaapicontext.c:
4043 * gst-libs/gst/vaapi/gstvaapicontext.h:
4044 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4045 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4046 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4047 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4048 libs: context: port to a plain C structure
4049 The GstVaapiMiniObject is obsolete and we need to replace it. This
4050 patch turns GstVaapiContext into a plain C structure with its own
4051 reference counting mechanism.
4052 Also this patch removes unused overlays attributes.
4053 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4055 2019-12-18 00:40:58 +0800 He Junyan <junyan.he@hotmail.com>
4057 * gst/vaapi/gstvaapiencode_h264.c:
4058 * gst/vaapi/gstvaapiencode_h264_fei.c:
4059 * gst/vaapi/gstvaapiencode_h265.c:
4060 * gst/vaapi/gstvaapiencode_jpeg.c:
4061 * gst/vaapi/gstvaapiencode_mpeg2.c:
4062 * gst/vaapi/gstvaapiencode_vp8.c:
4063 * gst/vaapi/gstvaapiencode_vp9.c:
4064 plugin: encode: change the dmabuf caps to all supported formats.
4065 The encode's dmabuf caps definition is obsolete, it can support
4066 more formats now. Re-define it to include all supported formats
4067 in video format map.
4069 2019-12-17 17:09:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4071 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4072 libs: encoder: h264fei: remove unnecessary check
4073 Issue detected by Coverity
4074 `info_to_pack.h264_slice_header` is always allocated by
4075 gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
4076 in doesn't make much sense. But it requires to be free on the error
4078 There may be a null pointer dereference, or else the comparison
4079 against null is unnecessary.
4080 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
4081 pointer comparison already dereference the pointer earlier
4083 2019-12-17 17:05:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4085 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4086 libs: encoder: h264fei: remove unnecessary assert
4087 Issue detected by Coverity
4088 An unsigned value can never be negative, so this test will always
4089 evaluate the same way.
4090 In add_slice_headers: An unsigned value can never be less than 0
4092 2019-12-17 16:57:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4094 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4095 libs: encoder: h264fei: remove unnecessary check
4096 Issue detected by Coverity
4097 There may be a null pointer dereference, or else the comparison
4098 against null is unnecessary.
4099 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
4100 pointer comparison already dereference the pointer earlier
4102 2019-12-17 16:49:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4104 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4105 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4106 libs: encoder: h264fei: don't free memory on stack
4107 Issue detected by Coverity
4108 `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
4109 declared in the stack, but it is free in
4110 gst_vaapi_feienc_h264_encode() as if declared on the heap.
4111 This patch initializes the structure and removes the free.
4112 A non-heap pointer is placed on the free list, likely causing a crash
4114 In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
4115 expression, which can never be heap allocated.
4117 2019-12-17 13:22:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4119 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4120 libs: encoder: h264fei: fix surface leak
4121 Issue detected by Coverity
4122 If the FEI mode is not handled the created resources should be
4123 released and return and error code.
4124 The system resource will not be reclaimed and reused, reducing the
4125 future availability of the resource.
4126 In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
4129 2019-12-17 13:09:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4131 * tests/check/elements/vaapipostproc.c:
4132 tests: check return calling of gst_navigation_event_parse.*
4133 This issue was detected by Coverity.
4134 If the function returns an error value, the error value may be mistaken
4136 In cb_mouse_event: Value returned from a function is not checked for
4137 errors before being used
4139 2019-12-16 16:25:02 +0800 He Junyan <junyan.he@hotmail.com>
4141 * gst/vaapi/gstvaapiencode_h264.c:
4142 * gst/vaapi/gstvaapiencode_h264_fei.c:
4143 * gst/vaapi/gstvaapiencode_h265.c:
4144 * gst/vaapi/gstvaapiencode_jpeg.c:
4145 * gst/vaapi/gstvaapiencode_mpeg2.c:
4146 * gst/vaapi/gstvaapiencode_vp8.c:
4147 * gst/vaapi/gstvaapiencode_vp9.c:
4148 plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
4149 Then encode plugin just supports raw formats declared in vaapi video
4150 format map. This modification makes the template caps more precise.
4152 2019-11-14 11:13:51 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
4154 * gst/vaapi/gstvaapipluginbase.c:
4155 plugins: base: add GstPad param to internal helper functions
4156 The base plugin public API function implementations determine
4157 which pad should be passed to the internal helper functions.
4158 Currently, only the base plugin static sinkpad and static
4159 srcpad are supported/used. However, this change enables future
4160 API functions to be added that can accept a pad (i.e. request pad)
4161 from an element subclass (e.g. a GstVideoAggregator subclass).
4163 2019-11-12 12:21:52 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
4165 * gst/vaapi/gstvaapipluginbase.c:
4166 * gst/vaapi/gstvaapipluginbase.h:
4167 plugins: base: manage pad-specific data in a single struct
4168 Define a struct (GstVaapiPadPrivate) to encapsulate the
4169 pad-specific data (i.e. buffer pool, allocator, info,
4171 Add an interface to retrieve the data struct for a given
4173 Finally, update the base plugin to use the data struct
4174 throughout the implementation.
4175 This will enable us to easily extend the base plugin in the
4176 future to allow for N-to-1 pad subclasses (e.g. overlay/
4179 2019-10-29 15:13:44 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4181 * gst/vaapi/gstvaapidecode.c:
4182 * gst/vaapi/gstvaapiencode.c:
4183 * gst/vaapi/gstvaapipluginbase.h:
4184 * gst/vaapi/gstvaapipostproc.c:
4185 plugins: use plugin base macros to access pad specific data
4186 Don't access base struct fields directly since the underlying
4187 definition can change. Instead, use the accessor macros.
4189 2019-12-03 00:52:45 +0800 He Junyan <junyan.he@hotmail.com>
4191 * gst/vaapi/gstvaapidecode.c:
4192 libs: decoder: Modify decode src's template raw formats
4193 We do not need to maintain a standalone list of decoder's output
4194 template for raw formats and that is easy to make mistake(for
4195 example, the AYVU is wrong in that list, should be VUYA).
4196 Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
4199 2019-12-11 14:11:13 +0800 He Junyan <junyan.he@hotmail.com>
4201 * gst/vaapi/gstvaapipostproc.c:
4202 libs: postproc: Modify src/sink template raw formats
4203 We need to provide more precise template caps for postproc's src
4204 and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
4205 available which are really superfluous.
4207 2019-12-10 18:40:42 -0300 Thibault Saunier <tsaunier@igalia.com>
4209 * tests/check/elements/vaapipostproc.c:
4210 Do not mix declaration and code
4212 2019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4214 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4215 libs: decoder: h265: skip all pictures prior the first I-frame
4216 Don't try to decode until the first I-frame is received within the
4217 currently active sequence. i965 H265 decoder don't show any artifact
4221 2019-11-27 01:44:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4223 * gst-libs/gst/vaapi/video-format.c:
4224 libs: video-format: remove dead code
4226 2019-10-31 00:59:34 +0800 He Junyan <junyan.he@hotmail.com>
4228 * gst-libs/gst/vaapi/video-format.c:
4229 * gst-libs/gst/vaapi/video-format.h:
4230 * gst/vaapi/gstvaapipluginutil.h:
4231 libs: video-format: add GST_VAAPI_FORMATS_ALL
4232 GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
4233 as a caps template string, and make them available in caps with
4234 memory:VASurface feature.
4237 2019-11-06 22:37:12 +0800 He Junyan <junyan.he@hotmail.com>
4239 * gst-libs/gst/vaapi/video-format.c:
4240 * tests/internal/test-windows.c:
4241 libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
4242 We only support VUYA format in gst vaapi now, need to correct
4245 2019-10-09 15:13:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4247 * tests/check/elements/vaapipostproc.c:
4248 tests: check: vaapipostproc test_orientation_mouse_events
4249 Test that vaapipostproc properly translates mouse events
4250 when using video-direction (orientation).
4252 2019-10-09 10:11:54 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4254 * tests/check/elements/vaapipostproc.c:
4255 * tests/check/meson.build:
4256 tests: check: vaapipostproc test_crop_mouse_events
4257 Test that vaapipostproc properly translates mouse events
4260 2019-10-08 12:20:26 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4263 * meson_options.txt:
4264 * tests/check/elements/vaapipostproc.c:
4265 * tests/check/meson.build:
4266 * tests/meson.build:
4267 tests: check: initial unit test support
4268 Add minimal unit test toolchain files and a simple
4269 vaapipostproc unit test.
4271 2019-10-08 12:19:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4274 * tests/examples/meson.build:
4275 * tests/examples/test-roi.c:
4276 * tests/examples/test-vaapicontext.c:
4277 * tests/examples/test-vaapipostproc.c:
4278 * tests/examples/test-vaapisink.c:
4279 * tests/internal/codec.c:
4280 * tests/internal/codec.h:
4281 * tests/internal/decoder.c:
4282 * tests/internal/decoder.h:
4283 * tests/internal/image.c:
4284 * tests/internal/image.h:
4285 * tests/internal/meson.build:
4286 * tests/internal/output.c:
4287 * tests/internal/output.h:
4288 * tests/internal/simple-decoder.c:
4289 * tests/internal/simple-encoder.c:
4290 * tests/internal/test-decode.c:
4291 * tests/internal/test-decode.h:
4292 * tests/internal/test-display.c:
4293 * tests/internal/test-fei-enc-in.c:
4294 * tests/internal/test-fei-enc-out.c:
4295 * tests/internal/test-filter.c:
4296 * tests/internal/test-h264.c:
4297 * tests/internal/test-h264.h:
4298 * tests/internal/test-jpeg.c:
4299 * tests/internal/test-jpeg.h:
4300 * tests/internal/test-mpeg2.c:
4301 * tests/internal/test-mpeg2.h:
4302 * tests/internal/test-mpeg4.c:
4303 * tests/internal/test-mpeg4.h:
4304 * tests/internal/test-subpicture-data.c:
4305 * tests/internal/test-subpicture-data.h:
4306 * tests/internal/test-subpicture.c:
4307 * tests/internal/test-surfaces.c:
4308 * tests/internal/test-textures.c:
4309 * tests/internal/test-vc1.c:
4310 * tests/internal/test-vc1.h:
4311 * tests/internal/test-windows.c:
4312 * tests/internal/y4mreader.c:
4313 * tests/internal/y4mreader.h:
4314 * tests/meson.build:
4315 tests: move examples and tests to subfolders
4316 This makes way for adding unit (check) tests.
4318 2019-10-14 01:01:27 +0100 Tim-Philipp Müller <tim@centricular.com>
4326 * gst-libs/Makefile.am:
4327 * gst-libs/gst/Makefile.am:
4328 * gst-libs/gst/vaapi/Makefile.am:
4330 * gst/vaapi/Makefile.am:
4332 * tests/Makefile.am:
4333 * tests/elements/Makefile.am:
4334 Remove autotools build
4336 2019-10-10 15:26:36 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4338 * gst/vaapi/gstvaapipostproc.c:
4339 vaapipostproc: fix off-by-one coord translations
4340 When translating navigation x,y coordinates for
4341 video-direction, it is necessary to subtract 1
4342 when using the video dimensions to compute the
4343 new x,y coordinates. That is, a 100x200 image
4344 should map coordinates in x=[0-99],y=[0-199].
4345 This issue was found with unit tests provided
4348 2019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4350 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4351 libs: window: x11: Avoid usage of deprecated API
4353 2019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4356 build: halt meson configuration if no renderer API
4357 We should halt meson configuration if there is no render API
4358 installed (either DRM, Wayland or X11).
4359 That behavior was already in autotools but missed in meson. This patch
4363 2019-10-09 12:12:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4365 * gst-libs/gst/vaapi/gstvaapifilter.c:
4366 libs: filter: fix default orientation regression
4367 Fix regression introduced in f232f87f7082
4369 2019-10-07 11:53:23 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4371 * gst-libs/gst/vaapi/gstvaapifilter.c:
4372 libs: filter: use OP_DATA_DEFAULT_VALUE macro
4374 2019-10-07 11:39:19 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4376 * gst-libs/gst/vaapi/gstvaapifilter.c:
4377 libs: filter: use macro for returning op default value
4378 The code is essentially the same for getting all op default
4379 values. Thus, use a macro to help minimize code duplication
4380 and [hopefully] encourage using the same mechanism for all
4383 2019-10-07 09:56:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4385 * gst-libs/gst/vaapi/gstvaapifilter.c:
4386 libs: filter: query param spec for default scale method
4389 2019-10-07 09:44:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4391 * gst-libs/gst/vaapi/gstvaapifilter.c:
4392 libs: filter: query param spec for default skin-tone values
4395 2019-10-02 12:54:52 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4397 * gst-libs/gst/vaapi/gstvaapifilter.c:
4398 libs: filter: query param spec for default video-direction
4401 2019-10-07 10:23:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4406 2019-09-05 16:40:52 +0800 Yan Wang <yan.wang@linux.intel.com>
4408 * gst-libs/gst/vaapi/gstvaapifilter.c:
4409 * gst-libs/gst/vaapi/gstvaapifilter.h:
4410 * gst/vaapi/gstvaapipostproc.c:
4411 * gst/vaapi/gstvaapipostproc.h:
4412 vaapipostproc: Use level value for skin-tone-enhancement filter.
4413 Currently the parameter of skin-tone-enhancement filter is forced
4414 to zero. In fact it could be set different value by the user.
4415 So create a new property named as "skin-tone-enhancement-level"
4416 for accepting the used defined parameter value.
4417 At the same time, skin-tone-enhancement is marked as deprecated.
4418 When skin-tone-enhancement-level is set, skin-tone-enhancement
4421 2019-09-21 13:39:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4423 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4424 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4425 libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
4426 g_return_val_fail() documentations says:
4427 If expr evaluates to FALSE, the current function should be
4428 considered to have undefined behaviour (a programmer error).
4429 The only correct solution to such an error is to change the
4430 module that is calling the current function, so that it avoids
4431 this incorrect call.
4432 So it was missused in a couple parts of the H264 and H265 internal
4433 decoders. This patch changes that to plain conditionals.
4434 Also, it was included a couple code-style fixes.
4436 2019-09-23 19:52:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4438 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4439 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4440 * tests/simple-encoder.c:
4441 * tests/test-fei-enc-in.c:
4442 libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
4443 Since GstVaapiEncoder is a descendant of of GstObject, there is no
4444 need to keep a custom ref()/unref() methods. This patch deletes them.
4446 2019-09-24 01:03:02 +0800 He Junyan <junyan.he@hotmail.com>
4448 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4449 libs: encoder: correct encoder's ref/unref function.
4450 GstVaapiEncoder now is a standard gstobject and need to use
4451 gst_object_ref/unref functions.
4453 2019-09-19 12:09:20 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4455 * gst/vaapi/gstvaapiencode_h264_fei.c:
4456 gst: encode: h264_fei: remove useless comparison
4457 The expression "len >= 0" is always true since "len"
4458 is an unsigned type. And it is clear that the writers
4459 intention was not to write "len > 0" since we handle
4460 len == 0 in the ensuing "if (len < 3)" conditional
4463 2019-09-19 11:17:24 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4465 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4466 libs: encoder: h264_fei: fix potential overflow before widen
4467 Found by static analysis. encoder->mb_width * encoder->mb_height
4468 is evaluated using 32-bit arithmetic before widen. Thus, cast
4469 at least one of these to guint64 to avoid overflow.
4471 2019-09-19 10:56:13 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4473 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4474 libs: encoder: h264_fei: remove dead error condition
4475 Found by static analysis. The feipak is always null
4476 when we reach the error target.
4478 2019-09-19 10:49:11 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4480 * gst-libs/gst/vaapi/gstvaapiutils.c:
4481 libs: utils: add missing break in switch
4483 2019-09-11 11:56:35 +0800 He Junyan <junyan.he@hotmail.com>
4485 * gst-libs/gst/vaapi/video-format.c:
4486 libs: video-format: Make all YUV format available
4487 The YUV formats have no ambiguity for drivers, so we can add them all.
4488 Some old driver(i965) does not implement full get/put image functions
4489 but can use derive image funtions for the YUV format. It does not
4490 report that kind of formats correctly in image query, but will derive
4491 that YUV format image from surface. The dynamic mapping of YUV format
4492 will block that manner.
4493 Adding more YUV format mapping has no side effect. So considering the
4494 legacy driver conformance, we add all YUV formats mapping statically
4495 and dynamic mapping RBG formats
4499 2019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com>
4501 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4502 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
4503 egl: Fix racyness in display thread creation
4504 Multiple different scenarios could break the display thread creation and
4505 end up blocking waiting for thread o be created. Fix them all by
4506 correctly waiting for a new boolean to become valid.
4508 2019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com>
4510 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4511 egl: don't advertise a wrapped EGLContext as actually wrapped
4512 It's not actually wrapped as we create a new EGLContext from the passed
4513 in EGLContext. As a result, the created EGLContext was never destroyed.
4515 2019-09-16 23:28:31 +0800 He Junyan <junyan.he@hotmail.com>
4517 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4518 libs: h264decoder: do not return error for unhandled NAL unit.
4519 Some streams have error data introducing unknown NAL type. There are
4520 also kinds of NAL types we do not want to handle. The old manner will
4521 set a decoder error when encounter this, which cause a latent crash bug.
4522 The decoder may successfully decode the picture and insert it into DPB.
4523 But there are error NAL units after the AU which cause the post unit error
4524 and make that frame dropped. The later output of the picture still want
4525 to ref that frame and crash.
4526 No need to set decoder error when can not recognize or handle the NAL
4527 unit, just skip it and continue.
4530 2019-09-11 14:32:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4532 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4533 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4534 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4535 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4536 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4537 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4538 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4539 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4540 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4541 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4542 * gst/vaapi/gstvaapiencode.c:
4543 libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
4544 This patch makes use of GST_PARAM_USER_SHIFT to define the internal
4545 param in encoders to decide which parameters to expose. Thus
4546 gstreamer-vaapi will not interfere with any change in GStreamer in the
4548 Also, the internal symbol was change to
4549 GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
4551 2019-09-09 18:06:51 +0800 He Junyan <junyan.he@hotmail.com>
4553 * gst-libs/gst/vaapi/gstvaapiimage.c:
4554 * gst-libs/gst/vaapi/video-format.c:
4555 libs: Add BGR10A2_LE support for color space conversion.
4558 2019-08-23 14:41:06 +0800 He Junyan <junyan.he@hotmail.com>
4560 * gst-libs/gst/vaapi/gstvaapisurface.c:
4561 libs: surface: add pointer check for surface_new_from_formats.
4563 gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
4564 vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink
4565 will crash on i965 driver because of no pointer check.
4566 We now generate the video format map between GST format and VA format
4567 dynamically based on the image format returned by vaQueryImageFormats.
4568 i965 driver does to report image format of 444P and Y800 forcc, while
4569 the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
4570 not recognize these format and pass a NULL pointer to
4571 gst_vaapi_surface_new_from_formats.
4572 We need to add a pointer check here and let the fallback logic handle
4573 this case correctly.
4574 Other drivers work well.
4576 2019-09-07 13:23:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4578 * gst-libs/gst/vaapi/gstvaapiutils.c:
4579 libs: utils: guard the VAEntrypointFEI symbol
4580 VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
4582 2019-09-05 14:48:22 +0800 He Junyan <junyan.he@hotmail.com>
4584 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4585 * gst-libs/gst/vaapi/video-format.c:
4586 * gst-libs/gst/vaapi/video-format.h:
4587 libs: video-format: Refine the video format mapping.
4588 Improve the mapping between va format and gst format. The new map
4589 will be generated dynamically, based on the query result of image
4590 format in VA driver. Also consider the ambiguity of RGB color
4593 2019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com>
4595 * gst/vaapi/gstvaapipluginutil.c:
4596 pluginutil: Remove Mesa from drivers white list
4597 The Mesa Gallium driver is poorly tested currently, leading to bad user
4598 experience for AMD users. The driver can be added back to the white list at
4599 runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
4601 2019-07-08 14:18:00 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4603 * gst/vaapi/gstvaapipostproc.c:
4604 * gst/vaapi/gstvaapipostproc.h:
4605 * gst/vaapi/gstvaapipostprocutil.c:
4606 vaapipostproc: allow cropping via properties
4607 Add crop-left, crop-right, crop-top and crop-bottom
4608 properties to vaapipostproc.
4610 2019-08-30 17:31:45 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4612 * gst/vaapi/gstvaapipostproc.c:
4613 vaapipostproc: rotate outbuf and crop meta if forwarding
4614 When forwarding crop meta to downstream, the output
4615 buffer and crop meta need to be rotated, too.
4617 for i in 90r 180 90l vert horiz ul-lr ur-ll
4619 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4620 ! videocrop top=100 bottom=30 left=40 right=20 \
4621 ! vaapipostproc video-direction=$i \
4623 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4624 ! videocrop top=100 bottom=30 left=40 right=20 \
4625 ! vaapipostproc video-direction=$i \
4626 ! identity drop-allocation=true \
4630 2019-08-30 14:14:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4632 * gst/vaapi/gstvaapipostproc.c:
4633 vaapipostproc: fix output buffer WxH for crop meta forwarding
4634 Adding crop meta x,y to w,h only compensates for left,top
4635 cropping. But we also need to compensate for right,bottom
4637 The video meta contains the appropriate w,h (uncropped)
4638 values, so use it instead.
4640 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4641 ! videocrop top=50 bottom=30 left=40 right=20 \
4642 ! vaapipostproc ! vaapisink & \
4643 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4644 ! videocrop top=50 bottom=30 left=40 right=20 \
4645 ! vaapipostproc ! identity drop-allocation=1 \
4648 2019-09-04 10:52:51 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4650 * gst/vaapi/gstvaapipostproc.c:
4651 vaapipostproc: handle size and direction together in src events
4652 Mapping a pointer event needs to consider both size and
4653 video-direction operations together, not just one or the other.
4654 This fixes an issue where x,y were not being mapped correctly
4655 for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
4656 the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set. Thus,
4657 the first condition in the pointer event handling was entered and
4658 x,y scale factor were incorrectly computed due to srcpad WxH
4660 This also fixes all cases where both video-direction and scaling
4661 are enabled at the same time.
4662 Test that all pointer events map appropriately:
4665 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4666 ! vaapipostproc video-direction=${i} width=300 \
4668 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4669 ! vaapipostproc video-direction=${i} width=300 height=200 \
4671 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4672 ! vaapipostproc video-direction=${i} height=200 \
4674 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4675 ! vaapipostproc video-direction=${i} \
4679 2019-08-20 14:22:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4681 * gst/vaapi/gstvaapipostproc.c:
4682 * gst/vaapi/gstvaapipostproc.h:
4683 vaapipostproc: advertise crop meta is handled
4684 Advertise to upstream that vaapipostproc can handle
4686 When used in conjunction with videocrop plugin, the
4687 videocrop plugin will only do in-place transform on the
4688 crop meta when vaapipostproc advertises the ability to
4689 handle it. This allows vaapipostproc to apply the crop
4690 meta on the output buffer using vaapi acceleration.
4691 Without this advertisement, the videocrop plugin will
4692 crop the output buffer directly via software methods,
4693 which is not what we desire.
4694 vaapipostproc will not apply the crop meta if downstream
4695 advertises crop meta handling; vaapipostproc will just
4696 forward the crop meta to downstream. If crop meta is
4697 not advertised by downstream, then vaapipostproc will
4698 apply the crop meta.
4700 1. vaapipostproc will forward crop meta to vaapisink
4701 gst-launch-1.0 videotestsrc \
4702 ! videocrop left=10 \
4705 2. vaapipostproc will do the cropping
4706 gst-launch-1.0 videotestsrc \
4707 ! videocrop left=10 \
4709 ! identity drop-allocation=1 \
4712 2019-08-29 18:44:36 +0800 He Junyan <junyan.he@hotmail.com>
4714 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4715 libs: encoder: clean two virtual func in encoder class
4716 set_property and get_default_properties functions are no longer
4717 needed for encoder class.
4719 2019-08-29 18:43:30 +0800 He Junyan <junyan.he@hotmail.com>
4721 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4722 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4723 libs: encoder: delete old set_property and property enum feienc264
4725 2019-08-29 18:39:27 +0800 He Junyan <junyan.he@hotmail.com>
4727 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4728 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4729 libs: encoder: delete old set_property and property enum in h264 fei
4731 2019-08-29 18:37:58 +0800 He Junyan <junyan.he@hotmail.com>
4733 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4734 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4735 libs: encoder: delete old set_property and property enum in vp9
4737 2019-08-29 18:36:51 +0800 He Junyan <junyan.he@hotmail.com>
4739 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4740 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4741 libs: encoder: delete old set_property and property enum in vp8
4743 2019-08-29 18:35:59 +0800 He Junyan <junyan.he@hotmail.com>
4745 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4746 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4747 libs: encoder: delete old set_property and property enum in mpeg2
4749 2019-08-29 18:34:57 +0800 He Junyan <junyan.he@hotmail.com>
4751 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4752 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4753 libs: encoder: delete old set_property and property enum in jpeg
4755 2019-08-29 18:31:56 +0800 He Junyan <junyan.he@hotmail.com>
4757 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4758 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4759 libs: encoder: delete old set_property and property enum in h265
4761 2019-08-29 18:30:07 +0800 He Junyan <junyan.he@hotmail.com>
4763 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4764 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4765 libs: encoder: delete old set_property and property enum in h264
4767 2019-08-29 18:17:42 +0800 He Junyan <junyan.he@hotmail.com>
4769 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4770 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4771 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4772 libs: encoder: delete EncoderPropInfo related functions
4774 2019-08-29 16:13:19 +0800 He Junyan <junyan.he@hotmail.com>
4776 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4777 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4778 libs: encoder: delete encoder_set_property
4779 We no longer need this obsolete set_property function now after
4780 switch to standard gobject's property manner.
4781 Also delete the old encoder's property enum in the header file.
4783 2019-08-29 15:59:43 +0800 He Junyan <junyan.he@hotmail.com>
4785 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4786 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4787 libs: encoder: delete properties_get_default for base class
4789 2019-08-29 15:52:04 +0800 He Junyan <junyan.he@hotmail.com>
4791 * gst/vaapi/gstvaapiencode.c:
4792 * gst/vaapi/gstvaapiencode.h:
4793 plugin: encode: delete useless init_properties.
4794 Also delete the get_properties function in encode class. We now
4795 use g_object_class_list_properties to get all properties for
4796 internal encoder class.
4798 2019-08-29 15:43:45 +0800 He Junyan <junyan.he@hotmail.com>
4800 * gst/vaapi/gstvaapiencode.c:
4801 * gst/vaapi/gstvaapiencode.h:
4802 plugin: encode: delete set/get_property func in encode class
4803 Use standard gobject's property functions to replace the old way.
4805 2019-08-29 15:31:16 +0800 He Junyan <junyan.he@hotmail.com>
4807 * gst/vaapi/gstvaapiencode.c:
4808 * gst/vaapi/gstvaapiencode.h:
4809 plugin: encode: delete gst_vaapiencode_init_properties
4810 No need to init the properties got by get_default_properties func
4811 now. The properties are inited correctly in internal encoder class.
4813 2019-08-29 15:19:10 +0800 He Junyan <junyan.he@hotmail.com>
4815 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4816 libs: encoder: delete 3 useless init macro
4818 2019-08-29 15:16:26 +0800 He Junyan <junyan.he@hotmail.com>
4820 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4821 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4822 libs: encoder: delete get_default_properties of feienc
4824 2019-08-29 15:14:14 +0800 He Junyan <junyan.he@hotmail.com>
4826 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4827 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4828 libs: encoder: delete get_default_properties of H264 Fei
4830 2019-08-29 15:07:17 +0800 He Junyan <junyan.he@hotmail.com>
4832 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4833 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4834 libs: encoder: delete get_default_properties of VP9
4836 2019-08-29 15:06:25 +0800 He Junyan <junyan.he@hotmail.com>
4838 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4839 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4840 libs: encoder: delete get_default_properties of VP8
4842 2019-08-29 15:03:52 +0800 He Junyan <junyan.he@hotmail.com>
4844 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4845 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4846 libs: encoder: delete get_default_properties of MPEG2
4848 2019-08-29 15:03:19 +0800 He Junyan <junyan.he@hotmail.com>
4850 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4851 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4852 libs: encoder: delete get_default_properties of JPEG
4854 2019-08-30 19:15:38 +0800 He Junyan <junyan.he@hotmail.com>
4856 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4857 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4858 libs: encoder: delete get_default_properties of H265
4860 2019-08-29 14:59:12 +0800 He Junyan <junyan.he@hotmail.com>
4862 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4863 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4864 libs: encoder: delete get_default_properties of H264
4866 2019-08-29 14:53:59 +0800 He Junyan <junyan.he@hotmail.com>
4868 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4869 libs: encoder: delete the useless constructed func for encoder.
4871 2019-08-26 23:16:33 +0800 He Junyan <junyan.he@hotmail.com>
4873 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4874 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4875 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4876 libs: encoder: implement get_view_ids for h264 encoder.
4878 2019-08-20 23:56:33 +0800 He Junyan <junyan.he@hotmail.com>
4880 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4881 * gst/vaapi/gstvaapiencode.c:
4882 * gst/vaapi/gstvaapiencode_h264.c:
4883 * gst/vaapi/gstvaapiencode_h264_fei.c:
4884 * gst/vaapi/gstvaapiencode_h265.c:
4885 * gst/vaapi/gstvaapiencode_jpeg.c:
4886 * gst/vaapi/gstvaapiencode_mpeg2.c:
4887 * gst/vaapi/gstvaapiencode_vp8.c:
4888 * gst/vaapi/gstvaapiencode_vp9.c:
4889 gst: encode: enable new type of property mechanism.
4891 2019-08-20 22:16:35 +0800 He Junyan <junyan.he@hotmail.com>
4893 * gst/vaapi/gstvaapiencode.c:
4894 * gst/vaapi/gstvaapiencode.h:
4895 gst: encode: add property help functions for encoder properties.
4896 The encoder is a true gstobject now and all the properties are using
4897 gobject's properties mechanism. Add help functions to handle the properties
4898 between encode and encoder class.
4899 The basic idea is mapping the same property between encoder and encode. All
4900 the encoder's properties will have the same name, the same type in encode.
4901 The set/get property function just forward the property setting/getting to
4902 the encoder using the same property name and value. Because the encoder is
4903 created on needed, we need to cache the property setting in encode.
4905 2019-08-30 18:39:32 +0800 He Junyan <junyan.he@hotmail.com>
4907 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4908 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4909 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4910 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4911 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4912 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4913 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4914 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4915 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4916 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4917 libs: encoder: add flags to all encoder properties.
4918 G_PARAM_CONSTRUCT make all properties init correctly, we do not
4919 need to init the properties manually.
4920 G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
4921 flag, means need to expose the property to according encode class.
4923 2019-08-20 17:00:39 +0800 He Junyan <junyan.he@hotmail.com>
4925 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4926 libs: encoder: Add properties for h264 encoder fei.
4927 Install properties for h264 encoder fei class. Also set the new get/set
4928 property functions for gobject class. Still use the old properties
4929 way now and this new feature will be enabled later.
4931 2019-08-20 15:58:30 +0800 He Junyan <junyan.he@hotmail.com>
4933 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4934 libs: encoder: Add properties for h264 fei encoder.
4935 Install properties for h264 fei encoder class. Also set the new get/set
4936 property functions for gobject class. Still use the old properties
4937 way now and this new feature will be enabled later.
4939 2019-08-20 15:29:27 +0800 He Junyan <junyan.he@hotmail.com>
4941 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4942 libs: encoder: Add properties for vp9 encoder.
4943 Install properties for vp9 encoder class. Also set the new get/set
4944 property functions for gobject class. Still use the old properties
4945 way now and this new feature will be enabled later.
4947 2019-08-20 15:01:02 +0800 He Junyan <junyan.he@hotmail.com>
4949 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4950 libs: encoder: Add properties for vp8 encoder.
4951 Install properties for vp8 encoder class. Also set the new get/set
4952 property functions for gobject class. Still use the old properties
4953 way now and this new feature will be enabled later.
4955 2019-08-20 14:31:58 +0800 He Junyan <junyan.he@hotmail.com>
4957 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4958 libs: encoder: Add properties for mpeg2 encoder.
4959 Install properties for mpeg2 encoder class. Also set the new get/set
4960 property functions for gobject class. Still use the old properties
4961 way now and this new feature will be enabled later.
4963 2019-08-20 14:53:06 +0800 He Junyan <junyan.he@hotmail.com>
4965 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4966 libs: encoder: Add properties for jpeg encoder.
4967 Install properties for jpeg encoder class. Also set the new get/set
4968 property functions for gobject class. Still use the old properties
4969 way now and this new feature will be enabled later.
4971 2019-08-20 14:12:36 +0800 He Junyan <junyan.he@hotmail.com>
4973 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4974 libs: encoder: Add properties for h265 encoder.
4975 Install properties for h265 encoder class. Also set the new get/set
4976 property functions for gobject class. Still use the old properties
4977 way now and this new feature will be enabled later.
4979 2019-08-20 01:33:40 +0800 He Junyan <junyan.he@hotmail.com>
4981 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4982 libs: encoder: Add properties for h264 encoder.
4983 Install properties for h264 encoder class. Also set the new get/set
4984 property functions for gobject class. Still use the old properties
4985 way now and this new feature will be enabled later.
4987 2019-08-19 15:38:09 +0800 He Junyan <junyan.he@hotmail.com>
4989 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4990 libs: encoder: add properties and prop help functions
4991 Add all common properties to encoder base class. rate-control and
4992 tune are moved to sub class.
4994 2019-08-29 14:38:49 +0800 He Junyan <junyan.he@hotmail.com>
4996 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4997 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4998 libs: encoder: delete useless gst_vaapi_encoder_new func.
4999 GstVaapiEncoder is a abstract gobject and never be created directly.
5001 2019-07-27 00:55:53 +0800 He Junyan <junyan.he@hotmail.com>
5003 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5004 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5005 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5006 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5007 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5008 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
5009 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5010 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5011 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
5012 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
5013 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5014 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
5015 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5016 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5017 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
5018 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5019 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
5020 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5021 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
5022 lib: encoder: gstobjectfy all vaapi encoders.
5023 Replace all gstvaapiobject in vaapi encoders with standard gstobject.
5024 Let the gstobject common logic to handle all the init and finalize
5025 works. But the property install/set/get still use the old way, need
5026 to be improved later.
5028 2019-08-29 12:11:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5030 * gst/vaapi/gstvaapipostproc.c:
5031 vaapipostproc: check for filter before appending caps
5032 While ensuring the allowed sink pad caps, the filter attributes set
5033 the frame size restriction, but it is not ensured, at that moment,
5034 that the filter is already instantiaded.
5035 In order to silence the glib logs, this patch add only calls
5036 gst_vaapi_filter_append_caps() if the filter is instantiated.
5038 2019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com>
5040 * gst/vaapi/gstvaapidecodebin.c:
5041 Classify vaapidecodebin as a hardware decoder
5043 2019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com>
5045 * gst/vaapi/gstvaapipostproc.c:
5046 libs: postproc: fix a memory leak point.
5047 filter_ops and filter_formats should already have valid value when
5048 the function gst_vaapipostproc_ensure_filter_caps re-enter
5050 2019-08-27 01:30:36 +0800 He Junyan <junyan.he@hotmail.com>
5052 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5053 libs: util: Fix a memory leak in config_surface_attributes_get
5055 2019-08-22 14:33:54 +0800 Wangfei <fei.w.wang@intel.com>
5057 * gst/vaapi/gstvaapidecode.c:
5058 vaapidecode: support transform ROI meta
5059 This will benefit the use case like:
5060 src ---> encode ---> decode ---> circle ROI ---> sink
5065 2019-08-23 19:10:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5067 * gst/vaapi/gstvaapidecodedoc.c:
5068 docstrings: port ulinks to markdown links
5070 2019-08-20 17:05:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5072 * gst-libs/gst/vaapi/Makefile.am:
5073 * gst-libs/gst/vaapi/gstvaapicontext.c:
5074 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
5075 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
5076 * gst-libs/gst/vaapi/meson.build:
5077 libs: remove context's overlay
5078 The context overlay was an optimization to apply a video composition
5079 to all the surfaces bound to a context.
5080 But since commit 18031dc6 this optimization was disabled, so it is
5081 better just get rid of it.
5083 2019-08-20 16:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5085 * gst-libs/gst/vaapi/gstvaapicontext.c:
5086 * gst-libs/gst/vaapi/gstvaapisurface.c:
5087 * gst-libs/gst/vaapi/gstvaapisurface.h:
5088 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
5089 * gst/vaapi/gstvaapipluginutil.c:
5090 * tests/test-subpicture.c:
5091 libs: remove surface's parent context
5092 In commit 18031dc6 surface's parent context is not assigned because of
5093 circular references. Since then (2013), there's has no issue with
5094 subpictures attached to a context, the current only users of this API.
5095 This patch cleans up all of related code with the unused surface's
5098 2019-08-18 13:53:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5100 * gst/vaapi/gstvaapidecode.c:
5101 vaapidecode: guard if no structure is available in caps
5103 2019-08-18 13:53:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5105 * gst-libs/gst/vaapi/gstvaapifilter.c:
5106 * gst-libs/gst/vaapi/gstvaapifilter.h:
5107 * gst/vaapi/gstvaapipostproc.c:
5108 vaapipostproc: append frame size restrictions in caps
5110 2019-08-18 13:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5112 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
5113 libs: profilecaps: refactor common code
5115 2019-08-16 19:35:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5117 * gst/vaapi/gstvaapiencode.c:
5118 vaapiencode: set frame size restrictions in caps
5121 2019-08-16 19:28:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5123 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5124 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5125 * gst/vaapi/gstvaapiencode.c:
5126 vaapiencode: enhance how the profile is defined
5127 This code doesn't define the profile used by the internal encoder, but
5128 it used to "predict" which is going to be used and to get the caps
5130 Before the profile was predicted by checking the donwstream caps, but
5131 sometimes they are not defined, setting an unknown profile. In order
5132 to enhances this situation, the encoder asks to internal encoder if it
5133 has one. If so, it is used.
5134 To ask the internal encoder's profile a new accessor function was
5135 added: gst_vaapi_encoder_get_profile()
5137 2019-08-16 19:26:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5139 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
5140 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
5141 libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
5142 Previously it was just a boilerplate. Now it is real implementation.
5144 2019-08-16 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5146 * gst-libs/gst/vaapi/gstvaapiutils.c:
5147 libs: utils: treat va_rt_format as bitwise flag
5148 The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
5149 is a bitwise flag with *all* the supported chroma types.
5150 Previously it was assumed that the return value was a single value,
5151 thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
5152 simple case. But it is wrong.
5153 This patch changes the case block with a sequence of ifs testing the
5154 bitwise. For now we assume a "priority" list in the testing sequence.
5156 2019-08-16 18:07:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5158 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5159 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5160 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
5161 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5162 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5163 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5164 * gst-libs/gst/vaapi/gstvaapiprofile.c:
5165 * gst-libs/gst/vaapi/gstvaapiprofile.h:
5166 * tests/test-display.c:
5167 libs: profile: add gst_vaapi_profile_get_va_name()
5168 gst_vaapi_profile_get_name() returns a proper name for
5169 GstCaps. Nonetheless, there are many profiles which don't have a name
5170 representation for that realm.
5171 gst_vaapi_profile_get_va_name() returns the name of the profile
5172 according to its VAProfile name.
5173 This new funtion is used in the encoder error message.
5175 2019-08-05 19:47:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5177 * gst-libs/gst/vaapi/Makefile.am:
5178 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
5179 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
5180 * gst-libs/gst/vaapi/meson.build:
5181 * gst/vaapi/gstvaapidecode.c:
5182 libs: profilecaps: move caps config into a new file
5183 Implement all the appending of frame size restrictions in caps, for
5184 encoders and decoders, in a new source file.
5186 2019-08-05 19:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5188 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5189 libs: decoder: ref the caps as property
5191 2019-08-02 16:56:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5193 * gst-libs/gst/vaapi/gstvaapicontext.c:
5194 * gst-libs/gst/vaapi/gstvaapicontext.h:
5195 libs: context: add gst_vaapi_context_get_surface_attributes()
5196 This function copies the surface attributes from the context's object
5199 2019-08-02 12:46:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5201 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
5202 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
5203 * gst-libs/gst/vaapi/gstvaapiutils.c:
5204 * gst-libs/gst/vaapi/gstvaapiutils.h:
5205 libs: move memory types conversions to gstvaapiutils
5206 And add more supported memory types by current VA.
5208 2019-08-01 19:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5210 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5211 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
5212 libs: utils: remove unused function gst_vaapi_get_surface_formats()
5214 2019-08-01 19:46:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5216 * gst-libs/gst/vaapi/gstvaapicontext.c:
5217 * gst-libs/gst/vaapi/gstvaapicontext.h:
5218 * gst-libs/gst/vaapi/gstvaapifilter.c:
5219 libs: context, filter: use new surface attributes API
5221 2019-08-01 19:13:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5223 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5224 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
5225 libs: utils: add gst_vaapi_config_surface_attributes_get()
5226 To extract the surface restrictions per config using a new structure:
5227 GstVaapiConfigSurfaceAttributes
5229 2019-07-31 13:08:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5231 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5232 Split the surface attribute retrieval
5234 2019-07-15 21:51:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5236 * gst/vaapi/gstvaapipostproc.c:
5237 vaapipostproc: handle navigation downstream event
5238 When navigation events contains coordiantes those have to be mapped
5239 to the new size and/or orientation.
5241 2019-07-15 21:23:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5243 * tests/elements/test-vaapisink.c:
5244 test-vaapisink: also use vaapipostproc to change orientation
5246 2019-07-15 21:27:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5248 * gst-libs/gst/vaapi/gstvaapifilter.c:
5249 * gst-libs/gst/vaapi/gstvaapifilter.h:
5250 * gst/vaapi/gstvaapipostproc.c:
5251 * gst/vaapi/gstvaapipostproc.h:
5252 * gst/vaapi/gstvaapipostprocutil.c:
5253 vaapipostproc: handle image-orientation upstream event
5254 Now that vaapipostproc can possible handle video-direction, it
5255 should also handle the image-orientation event from upstream if
5256 video-direction property is set to auto.
5258 2019-07-26 22:09:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5260 * gst/vaapi/gstvaapipostproc.c:
5261 vaapipostproc: add missing locks when adding flags
5263 2019-07-26 22:05:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5265 * gst/vaapi/gstvaapipostproc.c:
5266 vaapipostproc: update filter before fixate caps
5267 It is requiered to know if postproc is capable to change the video
5268 direction before fixating the source caps.
5269 In order to do it, it'ss required to know if there's a functional VPP,
5270 but that's checked at create() vmethod, which occurs after caps
5272 This patch checks for a functional VPP at fixate caps and, if so,
5273 checks for the enabled filtes and later do the caps fixations.
5275 2019-07-26 19:46:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5277 * gst-libs/gst/vaapi/gstvaapifilter.c:
5278 * gst-libs/gst/vaapi/gstvaapivalue.c:
5279 * gst-libs/gst/vaapi/gstvaapivalue.h:
5280 * gst/vaapi/gstvaapipostproc.c:
5281 vaapipostproc: element warning if video direction is unsupported
5282 If the video direction is unsupported by the driver, an element
5283 warning is posted in the bus to notify the application.
5284 gst_vaapi_enum_type_get_nick() was added in the library thus it can
5285 be used elsewhere. It retrives the nick from an enum gtype.
5287 2019-07-26 19:09:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5289 * gst-libs/gst/vaapi/gstvaapifilter.c:
5290 libs: filter: check mirror and rotation caps only once
5291 This patch locks the display before querying the pipeline caps and
5292 stores the mirror and rotation capabilities, thus they are not queried
5293 every time the video direction is set.
5295 2019-08-16 19:51:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5297 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5298 libs: encoder: vp9: set VP9_0 profile as default
5299 Commit 0afc8131 introduced a regression and only NV12 format were
5300 admitted, failing in any other valid color format.
5301 This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
5303 2019-08-16 13:25:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5305 * gst-libs/gst/vaapi/gstvaapifilter.c:
5306 libs: filter: fail if first color balance value is invalid
5308 2019-08-06 19:24:08 +0800 Yan Wang <yan.wang@linux.intel.com>
5310 * gst-libs/gst/vaapi/gstvaapifilter.c:
5311 * gst-libs/gst/vaapi/gstvaapiutils.c:
5312 * gst-libs/gst/vaapi/gstvaapiutils.h:
5313 libs: filter: set all color balance values
5314 When set multiple settings of color balance like hue, saturation,
5315 brightness and contrast for vaapipostproc, they should be set as
5316 parameters of color balance filter, at the same color balance
5318 Otherwise, multiple color balance filter calling will cause
5319 previous setting get reset by the last calling with default value.
5321 Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
5323 2019-08-16 11:02:08 +0800 Wangfei <fei.w.wang@intel.com>
5325 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5326 libs: h265dec: remove limitation of get iq matrix
5327 According hevc spec, scaling_list_data is not related
5328 to chroma_format_idc.
5330 2019-05-30 23:52:51 +0800 He Junyan <junyan.he@hotmail.com>
5332 * gst-libs/gst/vaapi/gstvaapivideopool.c:
5333 libs: videopool: fix undocumented behavior and counting
5334 gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
5335 because it locks twice the same mutex.
5336 Also, n had different meanings in the current code: as an increase
5337 value and as a new total of allocated surfaces.
5338 This patche removes the undocumented behavoir (usually a deadlock) and
5339 fixes the meaning of n as the new total of allocated surfaces.
5340 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5342 2019-07-17 11:56:45 +0800 He Junyan <junyan.he@hotmail.com>
5344 * gst-libs/gst/vaapi/gstvaapiutils.c:
5345 libs: utils: Add missing entries for string_of_VAEntrypoint.
5347 2019-07-18 22:01:01 +0800 He Junyan <junyan.he@hotmail.com>
5349 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5350 libs: encoder: Consider vp9 profiles based on input format.
5351 Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
5354 2019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5356 * gst/vaapi/gstvaapivideomemory.c:
5357 vaapivideomemory: demote error message to info
5358 The main reason to demote the message's level is because it is not an
5359 error, it's a possible output of the trial and there's a code path
5361 Secondly, it's very annoying when using gallium driver for radeon.
5363 2019-07-18 13:32:46 +0800 Wangfei <fei.w.wang@intel.com>
5365 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5366 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5367 * gst-libs/gst/vaapi/gstvaapitypes.h:
5368 * gst-libs/gst/vaapi/gstvaapiutils.c:
5369 * gst-libs/gst/vaapi/gstvaapivalue.c:
5370 libs: encoder: h264: support ICQ/QVBR bitrate control mode
5371 ICQ is Intelligent Constant Quality. It will use the initial QP
5372 vaule of icq-quality-factor to adjust QP at MB level intelligently
5373 to improve subjective quality.
5374 QVBR is Quality defined VBR. It will use qvbr-quality-factor to
5375 adjust QP for each MB to get enough quality picture without waste
5378 2019-08-05 10:51:24 +0800 Wangfei <fei.w.wang@intel.com>
5380 * gst-libs/gst/vaapi/gstvaapitypes.h:
5381 libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
5382 The value return from GST_VAAPI_RATECONTROL_MASK will be used by
5383 GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
5384 deal with unsigned int. Otherwise there may be an error of out of
5385 range of integer if we define few more rate-control mode.
5387 2019-06-07 09:54:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5389 * gst/vaapi/gstvaapidecodebin.c:
5390 vaapidecodebin: set queue's max size buffers to 1
5391 Otherwise the queue will swallow all the available decoder's surfaces
5392 reaching a dead-lock.
5393 This setting might impact the bin's peformance, but it's a trade-off.
5395 2019-06-07 09:53:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5397 * gst/vaapi/gstvaapidecodebin.c:
5398 vaapidecodebin: set properties default values
5400 2019-05-31 13:12:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5402 * gst/vaapi/gstvaapidecode.c:
5403 vaapidecode: don't error if can't push buffers downtream
5404 When the code path goes to push buffers downstream when no surface
5405 available in decoder context, and it fails the code bails out with a
5407 That behavior is wrong, since it shouldn't be fatal. The use case is
5408 when the video stream is disabled.
5409 This patch just ignores the errors in this situation and demotes the
5410 level of a log message.
5412 2019-05-18 13:24:35 +0800 Wangfei <fei.w.wang@intel.com>
5414 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5415 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5416 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5417 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
5418 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5419 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5420 libs: encoder: h264,h265: add new property "max-qp"
5421 Add new property "max-qp" to allow set the maximum quantisation
5424 2019-05-23 10:18:52 -0400 Wangfei <fei.w.wang@intel.com>
5426 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5427 libs: encoder: vp9: add low power mode encode
5428 By now, this feature only support by media-driver on Ice Lake
5429 platform, more information you can reference:
5430 https://github.com/intel/media-driver
5432 2019-07-15 15:33:07 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5434 * gst/vaapi/gstvaapipostprocutil.c:
5435 vaapipostproc: update PAR when rotating
5436 When rotating, swap pixel-aspect-ratio during
5440 2019-07-01 15:26:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5442 * gst-libs/gst/vaapi/gstvaapifilter.c:
5443 * gst-libs/gst/vaapi/gstvaapiutils.c:
5444 * gst-libs/gst/vaapi/gstvaapiutils.h:
5445 * gst/vaapi/gstvaapipostprocutil.c:
5446 vaapipostproc: add rotation support
5447 Adds vpp rotation support to vaapipostproc. Uses
5448 property video-direction. Default is identity (no
5452 2019-05-22 10:47:30 -0400 Wangfei <fei.w.wang@intel.com>
5454 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5455 libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
5456 Intel media-driver requires enablement of diff_cu_qp_delta_depth when
5457 cu_qp_delta_enabled_flag enabled.
5460 2019-07-01 17:02:33 +0800 Wangfei <fei.w.wang@intel.com>
5462 * gst-libs/gst/vaapi/gstvaapiutils.c:
5463 libs: encoder: Add MB ratecontrol mode to get its string
5465 2019-07-01 16:52:00 +0800 Wangfei <fei.w.wang@intel.com>
5467 * gst-libs/gst/vaapi/gstvaapiutils.c:
5468 libs: encoder: refine guard of bitrate control mode
5469 Remove useless guard of all bitrate control mode's guard except MB
5470 which is define in VA-API version 0.39.1.
5472 2019-06-29 00:08:40 +1000 Jan Schmidt <jan@centricular.com>
5474 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5475 h264: Update for parse_vui_params parameter removal.
5476 Update calls to the h264 parser lib for removal of the
5477 parse_vui_params parameter.
5479 2019-06-24 16:26:56 -0400 Wang Zhanjun <zhanjunx.wang@intel.com>
5481 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5482 libs: dec: vp9: do not use display size as decoded size
5483 If display size is smaller than current frame size, then the crop size
5484 will be set as display size, which either crashes the pipeline or the
5485 output MD5 does not match. Rather it should use the actual decoded size.
5486 This patch removes the cropping set. For rendering we can use aspect
5487 ratio to set display size.
5489 Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
5490 Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
5492 2019-06-28 16:32:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5497 2019-06-25 19:11:12 +0800 He Junyan <junyan.he@hotmail.com>
5499 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5500 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5501 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
5502 libs: dec: h265: Consider chroma_bit_depth to choose chrome type
5503 For some main-10 stream, sometime the luma is 8 bits while chrome is more
5504 than 8 bits, which cause using the wrong NV12 surface as the render target
5508 2019-06-25 10:31:20 +0800 Wangfei <fei.w.wang@intel.com>
5510 * gst/vaapi/gstvaapidecode.c:
5511 vaapidecode: set initial decode format according surface chroma type
5512 For surfaces with different chroma type, it is prefer to initialize
5513 a format which chroma type should be same with surface chroma type
5514 instead of using fixed NV12.
5516 2019-05-30 09:48:51 -0400 Wangfei <fei.w.wang@intel.com>
5518 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5519 * gst-libs/gst/vaapi/gstvaapiimage.c:
5520 * gst-libs/gst/vaapi/video-format.c:
5521 * gst/vaapi/gstvaapidecode.c:
5522 * gst/vaapi/gstvaapipluginutil.h:
5523 libs: decoder: jpeg: add support 400/411/422/444 chroma type
5524 When create vaapi surface, it is better to use the chroma type get
5525 from jpeg file instead of using fixed 420 format. And the correct
5526 chroma type can be determined by horizontal_factor/vertical_factor
5527 flags that get from jpegparse.
5529 2019-06-22 00:05:24 +0800 He Junyan <junyan.he@hotmail.com>
5531 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5532 libs: dec: h265: Fix profile_idc mapping.
5533 The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
5534 wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
5535 happened to be the correct value.
5536 We only support Annex A profile_idc (1-4).
5538 2019-06-10 20:46:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5540 * gst/vaapi/gstvaapipluginbase.c:
5541 plugins: remove last negotiated video info if caps are same
5542 If the allocation caps and negotiated caps are the same,
5543 then ensure any previously negotiated video info is also
5544 removed. This can occur when multi-resolution video
5545 decoding returns to it's original resolution.
5548 2019-06-10 20:39:28 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5550 * gst/vaapi/gstvaapivideomemory.c:
5551 vaapivideomemory: allow negotiated info to be removed
5552 Allow NULL negotiated_vinfo to be passed into
5553 gst_allocator_set_vaapi_negotiated_video_info to allow
5554 any previously set info to be removed.
5556 2019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com>
5558 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5559 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5560 libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
5561 When input frame's formate changes, vp{8,9} encoders don't reset their frame
5562 counter, hence the newly created frame could become a P-frame, leading to some
5563 major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
5564 prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
5565 GstVaapiEncoderVP9 implementations.
5567 2019-05-31 12:30:03 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5569 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5570 libs: encoder: increase bitrate prop max value
5571 There are many profile levels that can support
5572 more than 102400 kbps. Thus, increase the max
5573 allowed bitrate property value from 102400 kbps
5574 to 2048000 kbps (same as msdk encoder plugins).
5576 2019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com>
5578 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5579 libs: mpeg2 encoder: No packed header for SPS and PPS
5580 Dislable passing down packed PPS and PPS to driver if driver does
5584 2019-05-31 23:10:33 +0200 Niels De Graef <niels.degraef@barco.com>
5589 meson: Bump minimal GLib version to 2.44
5590 This means we can use some newer features and get rid of some
5591 boilerplate code using the G_DECLARE_* macros.
5592 As discussed on IRC, 2.44 is old enough by now to start depending on it.
5594 2019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5596 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5597 libs: dec: vp9: clear parser pointer after release
5598 Fix an use-after-release of the parser pointer in VP9 decoder.
5600 2019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru>
5602 * gst/vaapi/gstvaapiencode.c:
5603 vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
5604 This fixes a deadlock in gst_vaapiencode_change_state, which was due to
5605 srcpad's chain function was locked waiting for available buffers. Since the
5606 coded buffers in codedbuf_queue become available after sinkpad consume the
5607 encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
5608 are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
5609 available buffers and holds the stream_lock of the srcpad.
5611 2019-05-29 23:08:22 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5613 * gst-libs/gst/vaapi/gstvaapitypes.h:
5614 * gst/vaapi/gstvaapidecodebin.c:
5615 * gst/vaapi/gstvaapidecodedoc.c:
5616 * gst/vaapi/gstvaapiencode_h264.c:
5617 * gst/vaapi/gstvaapiencode_h264_fei.c:
5618 * gst/vaapi/gstvaapiencode_h265.c:
5619 * gst/vaapi/gstvaapiencode_jpeg.c:
5620 * gst/vaapi/gstvaapiencode_mpeg2.c:
5621 * gst/vaapi/gstvaapiencode_vp8.c:
5622 * gst/vaapi/gstvaapiencode_vp9.c:
5623 * gst/vaapi/gstvaapipostproc.c:
5624 * gst/vaapi/gstvaapisink.c:
5625 doc: remove xml from comments
5627 2019-05-13 16:39:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5629 * gst-libs/gst/vaapi/gstvaapifilter.c:
5630 * gst-libs/gst/vaapi/gstvaapifilter.h:
5631 * gst-libs/gst/vaapi/gstvaapiutils.c:
5632 * gst-libs/gst/vaapi/gstvaapiutils.h:
5633 * gst/vaapi/gstvaapipostproc.c:
5634 * gst/vaapi/gstvaapipostproc.h:
5635 vaapipostproc: add mirror support
5636 Adds vpp mirroring support to vaapipostproc. Use
5637 property video-direction. Valid values are identity,
5638 horiz or vert. Default is identity (no mirror).
5640 v2: Use GstVideoOrientationMethod enum
5641 v3: Don't warn for VA_MIRROR_NONE.
5642 Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
5643 v4: Query VAAPI caps when setting mirror value
5644 instead of during per-frame processing.
5645 v5: Return TRUE in warning cases when setting mirror value.
5647 2019-05-29 01:35:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5649 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
5650 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5651 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5652 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5653 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5654 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5655 * gst/vaapi/gstvaapidecodebin.c:
5656 * gst/vaapi/gstvaapisink.c:
5657 doc: fix some incorrect gtk-doc links
5659 2019-05-16 09:22:42 -0400 Thibault Saunier <tsaunier@igalia.com>
5661 * docs/gst_plugins_cache.json:
5662 docs: Update plugin cache
5663 Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
5665 2019-05-16 16:46:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5667 * gst-libs/gst/vaapi/gstvaapisurface.h:
5668 libs: surface: fix documentation format
5670 2019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com>
5672 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5673 libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
5674 When enable low delay B, the reference list 1 will be same with
5675 reference list 0, so need reset the num_ref_idx_l1_active_minus1
5676 to num_ref_idx_l0_active_minus1.
5679 2019-05-13 19:05:43 -0400 Thibault Saunier <tsaunier@igalia.com>
5682 meson: Fix call to wrong function
5684 2018-10-22 11:48:29 +0200 Thibault Saunier <tsaunier@igalia.com>
5689 * docs/gst_plugins_cache.json:
5692 * docs/plugins/Makefile.am:
5693 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5694 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5695 * docs/plugins/gstreamer-vaapi-plugins.types:
5696 * docs/plugins/inspect/plugin-vaapi.xml:
5697 * docs/plugins/running.xml:
5699 * docs/version.entities.in:
5700 * gst/vaapi/meson.build:
5702 * meson_options.txt:
5703 docs: Port to hotdoc
5705 2019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com>
5707 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5708 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5709 libs: encoder: not call ensure_num_slices inside g_assert
5710 g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
5711 defined. The function inside the g_assert will take no effect and
5712 we will fail to set the correct slice number.
5714 2019-04-29 09:52:39 +0800 Wangfei <fei.w.wang@intel.com>
5716 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5717 libs: h265: dec: Add extension flags setting.
5718 Use VAPictureParameterBufferHEVCExtension&
5719 VASliceParameterBufferHEVCExtension to pass extension setting from
5720 some extension profile clips which may include these information.
5721 The hevc extension setting only supported after libva release 2.2.0
5724 2019-05-01 12:56:55 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5726 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5727 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5728 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5729 libs: encoder: add target-percentage property
5730 Allow users to set the target-percentage for
5731 variable rate controls. The default value is
5732 70 (as hard-coded prior).
5733 v2: minimum allowed value changed from 0 to 1
5734 v3: target-percentage unchanged if CBR used
5737 2019-05-09 00:09:21 +0800 He Junyan <junyan.he@hotmail.com>
5739 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5740 libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
5742 2019-05-08 23:39:20 +0800 He Junyan <junyan.he@hotmail.com>
5744 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5745 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5746 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5747 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
5748 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5749 libs: encoder: Enable trellis quantization method.
5750 The advanced trellis algorithm is supported in VA driver. We add
5751 its support as a property named "trellis" of encoder.
5752 It only works for H264 now, should be more in future.
5754 2019-05-07 11:03:51 +0800 Wangfei <fei.w.wang@intel.com>
5756 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5757 libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
5758 According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
5759 type, so we need to add subsampling_x&subsampling_y to fix it.
5760 Here is the relationship between chroma type and profile and
5761 subsampling_x&subsampling_y according to vp9 spec:
5762 ------------------------------------------
5763 Profile | Bit depth | Chroma subsampling |
5764 ------------------------------------------
5766 ------------------------------------------
5767 1 | 8 | 422,440,444 |
5768 ------------------------------------------
5770 ------------------------------------------
5771 3 | 10, 12 | 422,440,444 |
5772 ------------------------------------------
5773 -----------------------------------------------
5774 Subsampling_x | Subsampling_y | Chroma format |
5775 -----------------------------------------------
5777 -----------------------------------------------
5779 -----------------------------------------------
5781 -----------------------------------------------
5783 -----------------------------------------------
5785 2019-04-16 18:33:54 +0800 He Junyan <junyan.he@hotmail.com>
5787 * gst-libs/gst/vaapi/gstvaapiimage.c:
5788 * gst-libs/gst/vaapi/video-format.c:
5789 libs: Add packed 24 RGB format support.
5790 Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
5791 packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
5792 type. This kind of surface will just be created by new API with fourcc
5793 and no old style chrome based creation is available.
5796 2019-03-15 14:29:41 +0800 Wangfei <fei.w.wang@intel.com>
5798 * gst/vaapi/gstvaapiencode.c:
5799 * gst/vaapi/gstvaapiencode_h264.c:
5800 * gst/vaapi/gstvaapiencode_h264_fei.c:
5801 * gst/vaapi/gstvaapiencode_h265.c:
5802 * gst/vaapi/gstvaapiencode_jpeg.c:
5803 * gst/vaapi/gstvaapiencode_mpeg2.c:
5804 * gst/vaapi/gstvaapiencode_vp8.c:
5805 * gst/vaapi/gstvaapiencode_vp9.c:
5806 vaapiencode: handle DMABuf caps feature in sink pad
5807 Add DMABuff caps features in all encoders' sink pad.
5809 2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5811 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5812 libs: encoder: continue if roi meta is NULL
5814 If the function actually returns a null value, a null pointer
5815 dereference will occur.
5816 In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
5817 function which returns null is dereferenced without checking
5819 2019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com>
5821 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5822 lib: decoder: vp9: Set chroma_type by VP9 bit_depth
5823 The decoder's surface chroma type should depend on the bit depth
5824 of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
5825 10 bits surface as the decoder result.
5828 2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5830 * gst/vaapi/gstvaapipostprocutil.c:
5831 vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
5832 https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
5833 with commit 3e992d8a
5834 Since gst_vaapi_find_preferred_caps_feature() returns a color format
5835 from caps negotiation, different from the default one (NV12), the
5836 postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
5837 feature is negotiated, no color transformation shall be done.
5838 Nonetheless, with commit 3e992d8a the requested format changes
5839 firstly, because there's no video sink yet, so ANY caps are
5840 negotiated; but later, when there's a video sink and a caps
5841 renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
5842 format conversion still ongoing. It is required to reset that
5844 This patch force default color format when GL_TEXTURE_UPLOAD is
5845 selected as preferred, thus avoiding the color conversion.
5848 2019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com>
5850 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5851 libs: surface: fix double free when dmabuf export fails
5852 Happens if vaAcquireBufferHandle fails.
5854 2019-04-29 20:10:39 +0800 He Junyan <junyan.he@hotmail.com>
5856 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5857 libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
5859 2019-04-19 10:43:35 +0100 Tim-Philipp Müller <tim@centricular.com>
5863 * docs/plugins/inspect/plugin-vaapi.xml:
5867 === release 1.16.0 ===
5869 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5875 * gstreamer-vaapi.doap:
5879 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5881 * docs/plugins/inspect/plugin-vaapi.xml:
5884 2019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5886 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5887 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5888 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5889 libs: encoder: h264,h265: guard VA version for max_qp property
5890 This patch fixes a regression from commit 5b1fe9c6.
5891 max_qp, in rate control configuration, appeared in libva release
5892 2.1 (API 1.1), thus it is required to guard the VA API version.
5895 2019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com>
5897 * gst-libs/gst/vaapi/gstvaapiimage.c:
5898 * gst-libs/gst/vaapi/video-format.c:
5899 libs: Add RGB565 image format support.
5901 2019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5904 build: configure: delay USE_GTK conditional until check libva-x11
5905 libva-x11 is used for X11 applications, so it is required to build
5906 any GTK application.
5907 Later, when Wayland test is added, we should change this.
5909 2019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5912 build: configure: disable GLX if libva-x11 is not found
5914 2019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com>
5916 * gst-libs/gst/vaapi/gstvaapiutils.c:
5917 libs: utils: avoid macro evaluation when stringify
5918 string_of_va_chroma_format() gets a wrong string format description.
5919 For example, the YUV420_10BPP get a string of 0x00000100 as output.
5920 It's because VA_RT_FORMAT_xxx values are macro definitions. And
5921 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
5923 To avoid the macro evaluation, it is changed to show only the color
5924 format without VA_RT_FORMAT_ prefix.
5926 2019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5928 * gst-libs/gst/vaapi/gstvaapiutils.c:
5929 libs: utils: use glib's macros
5930 Don't reinvent the wheel.
5932 2019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com>
5934 * gst/vaapi/gstvaapipluginutil.c:
5935 plugins: find the preferred format from right caps.
5936 When the downstream has any caps, then raw video feature will
5937 be used. At this situation, the preferred format should be chose
5938 from caps which contains "vide/x-raw" feature instead of from
5939 the fist allowed caps.
5942 2019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5944 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5945 libs: encoder: h265: fill tier in va seq param buf
5946 Now that tier is calculated in commit 58e74f9440fe (!68),
5947 ensure we fill in the general_tier_flag in the
5948 VAEncSequenceParameterBufferHEVC.
5950 === release 1.15.90 ===
5952 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5958 * gstreamer-vaapi.doap:
5962 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5964 * docs/plugins/inspect/plugin-vaapi.xml:
5967 2019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com>
5969 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5970 libs: encoder: h265: Recognize the correct level and tier.
5971 The current manner can not recognize the correct level and always
5972 set the tier to main. Need to add frame rate check to recognize
5973 levels such as 4.1, 6.2, etc. We also add a logic to check main
5974 and high tier based on bitrate.
5977 2019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com>
5979 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5980 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5981 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5982 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
5983 media-driver currently fails to set a correct value of max_qp when
5984 min_qp is different to zero, in CBR and VBR mode, generating full
5985 quality frames, thus unexpected huge output.
5986 This patch sets max_qp to an arbitrary value to avoid this output
5990 2019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5992 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5993 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5994 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5995 libs: encoder: h264,h265: initial and minimal QP can be zero
5996 Currently the minimal value for either min_qp and init_qp are 1,
5997 but VA documentation specifiy that zero is also valid and means
5998 to ignore the quantiser.
5999 The default value is not changed though to avoid behaivor changes
6002 2019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
6004 * tests/elements/meson.build:
6005 meson: build test-vaapicontext when using X11
6006 x11_dep and libva_x11_dep are optional and meson ignores these
6007 dependencies even if they are added into the dependency list.
6008 This fixes the error below when libva-x11 is not avaiblabe:
6009 cc -Itests/elements/tests@elements@@test-vaapicontext@exe
6010 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
6011 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
6012 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
6013 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
6014 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
6015 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
6016 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
6017 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
6018 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
6019 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
6020 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
6021 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
6022 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
6023 -DHAVE_CONFIG_H -MD -MQ
6024 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
6026 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
6028 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
6029 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
6030 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
6031 error: va/va_x11.h: No such file or directory
6032 #include <va/va_x11.h>
6034 2019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com>
6036 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6037 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6038 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
6039 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
6040 GValueArray is deprecated. Use GstValueArray instead.
6042 2019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com>
6044 * gst/vaapi/gstvaapipluginutil.c:
6045 vaapipluginutil: Fix #endif for USE_X11
6047 2019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6049 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6050 libs: encoder: h264: simplify the view-ids setting
6052 2019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com>
6054 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6055 libs: encoder: h264: Use gst_param_spec_array for view-ids
6056 GValueArray is deprecated. Use GstValueArray instead.
6057 gst_param_spec_array can be deserialized from command line using:
6058 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
6059 While the g_param_spec_value_array() can not, and always get
6060 error: "gst_value_deserialize_g_value_array: unimplemented"
6061 Also fixed an out-of-range bug.
6063 2019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com>
6065 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
6066 libs: Change the parameter setting order when encode picture.
6067 The order in gst_vaapi_enc_picture_encode when encoding one
6068 picture is not very correct. The misc parameters are set before
6069 the picture parameters. Some of the misc parameters such as
6070 ROI may change the current picture parameters. But the later
6071 setting of picture parameter will re-init all picture related
6072 parameters and clear the previous setting. The right order
6073 should be picture parameter first and then misc parameters.
6074 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6076 2019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com>
6078 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6079 libs: decoder: jpeg: support dynamic resolution change decode.
6080 Add size_changed flag to watch out resolution. if change, reset
6081 jpeg decoder's context.
6083 2019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com>
6085 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6086 libs: encoder: h265: add low power mode encode.
6087 By now, this feature only support by media-driver on Ice Lake
6088 platform, more information you can reference:
6089 https://github.com/intel/media-driver
6091 2019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com>
6093 * gst/vaapi/gstvaapiencode.c:
6094 vaapiencode: gobject's prop_id differ from vaapi encoder
6095 The vaapi internal encoder's property id are negative, thus they are
6096 different from GObject's property ids.
6097 gst_vaapi_encoder_set_property() should map to the internal encoder
6098 property id, assigned in gst_vaapiencode_default_set_property().
6100 2019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com>
6103 meson: disable compiler warnings for unused vars and args if gst debug system is disabled
6105 2019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com>
6108 meson: use new 'python' module instead of deprecated 'python3' one
6110 2019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com>
6113 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
6114 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
6116 2019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
6121 * docs/plugins/inspect/plugin-vaapi.xml:
6125 2019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com>
6127 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
6128 libs: Fix a typo in comments.
6129 Fix a typo in function description of
6130 gst_vaapi_surface_pool_new_with_chroma_type.
6131 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6133 2019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6135 * gst/vaapi/gstvaapipluginutil.c:
6136 plugin: if any caps in downstream, negotiate raw video
6137 When downstream has any caps, vaapi should not shovel vaapi featured
6138 buffers, but rather plain raw video, assuming always the worst case
6139 scenario (downstream cannot handle featured video memory but raw
6140 system memory buffers).
6141 This patch query the peer caps without any filter, to know if
6142 donwstream just ask for any caps, if so jump to the color space
6143 checking, otherwise do the caps intersection and continue with the
6144 feature selection algorithm.
6147 === release 1.15.2 ===
6149 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6155 * gstreamer-vaapi.doap:
6159 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6161 * docs/plugins/inspect/plugin-vaapi.xml:
6164 2019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com>
6166 * gst/vaapi/gstvaapivideomemory.c:
6167 vaapivideomemory: Prefer same format for surface and image
6168 We prefer to use the same format between image and surface for gst
6169 vaapi allocator. The old way may choose different formats between
6170 image and surface. For example, the RGBA image may have a NV12 surface.
6171 So we need to do format conversion when we put/get image to surface.
6172 Some drivers such as iHD can not support such conversion and always
6173 cause a data flow error. There may also have some performance cost
6174 for format conversion when put/get images.
6175 So we prefer to use the same format for image and surface in the
6176 allocator. If the surface can not support that format, we then
6177 fallback to find a best one as the surface format.
6178 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
6180 2019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com>
6182 * gst-libs/gst/vaapi/video-format.c:
6183 libs: Delete the duplicated ARGB video format.
6184 Two ARGB formats with the same format information.
6185 Should be verbose and delete one.
6186 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6188 2019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com>
6191 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6192 glx: Stop specifying GLX_DEPTH_SIZE
6193 This code is just confused. It's asking for at least as many bits of
6194 (z-axis) depth as the root window has bits of (color) depth. For rgb565
6195 or rgb888 this is harmless, but at 10 bits per channel this demands a
6196 30-bit or deeper Z buffer. While some hardware could in principle do a
6197 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
6199 We're not actually using the Z buffer, so just stop asking for one.
6201 2019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com>
6204 * gst-libs/gst/vaapi/Makefile.am:
6205 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6206 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
6207 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6208 * gst-libs/gst/vaapi/meson.build:
6209 * gst/vaapi/gstvaapisink.c:
6211 libs: wayland: add support for XDG-shell protocol
6212 [wl_shell] is officially [deprecated], so provide support for the
6213 XDG-shell protocol should be provided by all desktop-like compositors.
6214 (In case they don't, we can of course fall back to wl_shell).
6215 Note that the XML file is directly provided by the `wayland-protocols`
6216 dependency and generates the protocol marshalling code.
6217 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
6218 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
6220 2019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com>
6222 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6223 libs: window: wayland: Prefix wl_shell_surface field with `wl_`
6224 It will help us to distinguish from other Wayland shell surface
6225 (such as XDG-shell) later on.
6227 2019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com>
6229 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6230 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
6231 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6232 libs: wayland: Prefix wl_shell field with `wl_`
6233 It will help us to distinguish from other Wayland shells (such as
6234 XDG-shell) later on.
6236 2019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com>
6238 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6239 libs: display: lock ensure_profile()
6240 Thread safety patch for ensure_profile() function
6243 2019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6246 meson: bump the minimum wayland version requirement to 1.11.0
6247 This was missed on commit 77bb3424
6249 2019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6251 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6252 * gst/vaapi/gstvaapisink.c:
6253 vaapisink: x11: trap WM_DELETE_WINDOW message
6254 Register the WM_DELETE_WINDOW message from window manager and
6255 trap it to stop the pipeline cleanly.
6256 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
6258 2019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6260 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6261 libs: window: remove native-id property
6262 native-id property is problematic since the variable that stores it is
6263 gsize, which is platform specific, and in some is bigger than unsigned
6264 long, and there are not way to handle gsize properties.
6265 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
6266 like to keep using it for this scope.
6267 This patch removes the native-id property and set it manually in
6268 gst_vaapi_window_new_internal().
6270 2019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6272 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6273 libs: window: use G_GSIZE_MODIFIER for window id
6274 gsize type is not equal in all platforms, then the 'l' print modifier
6275 shall not be used always.
6276 This issue was found in Debian builds.
6278 2019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com>
6280 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6281 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6282 encoder: h264/h265: set SPS cbr_flag with correct value.
6283 The flag only set as 1 when the rate-control mode is CBR.
6285 === release 1.15.1 ===
6287 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
6293 * gstreamer-vaapi.doap:
6297 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
6299 * docs/plugins/inspect/plugin-vaapi.xml:
6302 2019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6304 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6305 libs: encoder: refactor to avoid code duplication
6306 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
6307 the same code segment where the coded buffer is created, the picture
6308 encoded on it and pushed to the async queue.
6309 The function gst_vaapi_encoder_encode_and_queue() refactor this.
6311 2019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6313 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6314 * gst-libs/gst/vaapi/gstvaapiencoder.h:
6315 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6316 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6317 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
6318 libs: encoder: h264/h265: flush pending ordered pictures
6319 In order to flush the pending pictures, a new internal encoder vmethod
6320 is used: get_pending_reordered()
6321 This method follows an iterator pattern which will return the next
6322 picture to encode and push.
6323 The base encoder will call this function in a loop when flush() is called.
6324 For now, only H.264 and H.265 encoders implement this flushing mechanism.
6326 2018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.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 libs: encoder: h264/h265: fix encode lose frame issue.
6333 Instead of dropping all remain frames in reorder_frame_list during
6334 flush, keep encoding.
6335 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
6337 2019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com>
6339 * gst/vaapi/gstvaapipostproc.c:
6340 vaapipostproc: before set surface proxy, check if it already been created and exist.
6341 Fix the deinterlace black frame when playing with glimagesink:
6342 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
6343 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
6345 2019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com>
6347 * gst-libs/gst/vaapi/gstvaapiutils.c:
6348 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
6350 2018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
6352 * gst-libs/gst/vaapi/meson.build:
6353 * gst/vaapi/meson.build:
6355 * tests/meson.build:
6356 meson: build h264 fei encoder if possible
6358 2018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
6361 configure: bump the minimum wayland version requirement to 1.11.0
6363 2018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com>
6366 * gst-libs/gst/vaapi/Makefile.am:
6367 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6368 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6369 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6370 * gst-libs/gst/vaapi/gstvaapicompat.h:
6371 * gst-libs/gst/vaapi/gstvaapicontext.c:
6372 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6373 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
6374 * gst-libs/gst/vaapi/gstvaapifilter.c:
6375 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6376 * gst-libs/gst/vaapi/gstvaapisurface.c:
6377 * gst-libs/gst/vaapi/gstvaapiutils.c:
6378 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
6379 * gst-libs/gst/vaapi/meson.build:
6380 * gst/vaapi/Makefile.am:
6381 * gst/vaapi/gstvaapi.c:
6382 * gst/vaapi/gstvaapidecode.c:
6383 * gst/vaapi/gstvaapidecodebin.c:
6384 * gst/vaapi/gstvaapipluginbase.c:
6385 * gst/vaapi/meson.build:
6388 * tests/simple-decoder.c:
6389 vaapi: bump the minimum vaapi version requirement to 0.39.0
6390 And reduce unnecessary API version and structures check as well.
6391 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
6393 2018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6395 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6396 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6397 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6398 * tests/test-decode.c:
6399 * tests/test-filter.c:
6400 * tests/test-subpicture.c:
6401 * tests/test-textures.c:
6402 * tests/test-windows.c:
6403 libs: window: remove custom ref() and unref()
6404 Use gst_object_ref() and gst_object_unref() instead.
6406 2018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6408 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6409 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6410 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6411 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6412 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6413 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6414 libs: window: use its own debug category
6416 2018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6418 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6419 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6420 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6421 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
6422 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6423 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
6424 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6425 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
6426 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6427 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6428 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
6429 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6430 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
6431 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6432 libs: window: refactor as gobject
6433 This is another step in the gobjectification of the internal library
6434 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
6436 The idea is to minimize the changeset keeping the same design as
6438 GstVaapiWindow is defined as an abstract class with two properties:
6439 the GstVaapiDisplay and the native ID. Thus, many of the
6440 GstVaapiObject macros were copied as GstVaapiWindow macros.
6441 The function gst_vaapi_window_new_internal() is kept as a decorator
6442 of for calling gst_vaapi_window_create() and the possibility of
6444 The descendant classes, such as glx, still use the private
6445 structures, but through the gobject mechanism.
6447 2018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6449 * gst-libs/gst/vaapi/gstvaapifilter.c:
6450 libs: filter: use its own debug category
6452 2018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com>
6454 * gst/vaapi/gstvaapidecode.c:
6455 * gst/vaapi/gstvaapipluginbase.c:
6456 * gst/vaapi/gstvaapipluginbase.h:
6457 * gst/vaapi/gstvaapipostproc.c:
6458 * gst/vaapi/gstvaapisink.c:
6459 plugins: Add more check for allowed raw caps.
6460 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
6461 pad and src pad, which cause some bugs. For sink pad, we need to verify
6462 vaPutImage() while for the src pad we need to verify vaGetImage().
6463 For vaapidecoderXXX kind of plugins, the case is more complex. We need
6464 to verify whether the decoded result(in some surface, NV12 format most
6465 of the time) can be vaGetImage to some raw image format. Add more check
6466 to fix all these problems.
6467 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
6468 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6470 2018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com>
6472 * gst/vaapi/gstvaapipostproc.c:
6473 vaapipostproc: fix csc fail when only change width or height.
6475 2018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com>
6477 * tests/elements/meson.build:
6478 meson: Add gtk guard
6480 2018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com>
6482 * gst/vaapi/gstvaapiencode_h264.c:
6483 libs: enc: h264: set max profile idc with correct profile.
6484 Use the highest rank of available profile as the max profile to
6486 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
6488 2018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com>
6490 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6491 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6492 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6493 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
6494 This gets rid of the strange `do_init` macro and makes the intent a bit
6497 2018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com>
6500 Automatic update of common submodule
6501 From ed78bee to 59cb678
6503 2018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com>
6505 * gst-libs/gst/vaapi/gstvaapiimage.c:
6506 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6507 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6508 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6509 * gst-libs/gst/vaapi/video-format.c:
6510 * gst/vaapi/gstvaapidecode.c:
6511 * gst/vaapi/gstvaapipluginutil.h:
6512 libs: dec: h265: support decode for main-444 10bit streams.
6513 Add 444 10bit yuv format Y410, which can be used to decode
6514 main-444 10bit streams. Currently, this feature is only
6515 supported by media-driver in Icelake.
6517 2018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com>
6519 * gst/vaapi/gstvaapidecode.c:
6520 * gst/vaapi/gstvaapisink.c:
6521 Run gst-indent through the files
6522 This is required before we enabled an indent test in the CI.
6523 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
6525 2018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com>
6527 * gst/vaapi/gstvaapipluginbase.c:
6528 plugins: modify image check of extract_allowed_surface_formats.
6529 The extract_allowed_surface_formats function just check whether
6530 we can support some kind of surface/image format pair. We just
6531 need to create a surface, create an image with the same video-format
6532 and putImage from image to surface. All these operations success,
6533 that kind of video-format is supported.
6534 The old manner do not work for some kind of video-format. For example,
6535 the RGBA kind of format will create a NV12 surface and RGBA image,
6536 and the putImage will fail because the format is not same. And so
6537 the RGBA format is not supported but actually it is supported.
6539 2018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6541 * gst/vaapi/gstvaapipostproc.c:
6542 vaapipostproc: add some missing locking
6543 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
6544 in gst_vaapipostproc_transform_caps(). The usage is already protected by
6546 This is needed when the pipeline is stopped during startup.
6548 2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com>
6550 * gst/vaapi/gstvaapivideomemory.c:
6552 Otherwise it will result in resource leak when failed to create
6555 2018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6557 * gst/vaapi/gstvaapiencode.c:
6558 vaapiencode: don't start src pad task in set_format
6559 Otherwise the task may be restarted during shutdown. Start the task in
6560 gst_vaapiencode_handle_frame() instead.
6562 2018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com>
6564 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6565 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6566 * gst-libs/gst/vaapi/gstvaapiutils.c:
6567 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6568 * gst/vaapi/gstvaapidecode.c:
6569 * gst/vaapi/gstvaapipluginutil.h:
6570 libs: dec: h265: support decode for main-444 8bit streams.
6571 Add 444 8bit yuv format AYUV, which can be used to decode
6572 main-444 8bit streams. Currently, this feature is only
6573 supported by media-driver in Icelake.
6574 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
6576 2018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6579 Add Gitlab CI configuration
6580 This commit adds a .gitlab-ci.yml file, which uses a feature
6581 to fetch the config from a centralized repository. The intent is
6582 to have all the gstreamer modules use the same configuration.
6583 The configuration is currently hosted at the gst-ci repository
6584 under the gitlab/ci_template.yml path.
6585 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
6587 2018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com>
6589 * gst-libs/gst/vaapi/gstvaapisurface.h:
6590 * gst-libs/gst/vaapi/gstvaapiutils.c:
6591 libs: Sync the GstVaapiChromaType to VA header file.
6592 Add more kinds of chrometype which will be used to describe
6593 new video formats. Sync it with 1.4.0 version header file.
6594 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
6595 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6597 2018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com>
6599 * gst-libs/gst/vaapi/meson.build:
6600 meson: link with -lm
6601 Fixes #117 hopefully.
6603 2018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6606 meson: bump meson required to 0.47 for feature options
6608 2018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com>
6610 * gst-libs/gst/vaapi/video-format.c:
6611 libs: Modify the video format of endianness.
6612 We lack some video format because endianness declare.
6613 The video format should not directly relate to endianness. For example,
6614 ARGB on big endian should not be simplely seen as BGRA on little endian
6615 machine. We should provide endianess convert or format convert help
6616 functions if endianness does not match.
6617 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
6618 Signed-off-by: Junyan He <junyan.he@intel.com>
6620 2018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com>
6622 * gst/vaapi/gstvaapipluginutil.c:
6623 plugins: Fix build error when GL is enabled while EGL is disabled.
6624 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
6625 unused-variable warning and may block build when Werror enabled.
6626 Several functions like gst_vaapi_display_egl_new_with_native_display
6627 have no prototype warning and link error when GL is enabled but EGL
6628 is disabled. Fix all these warning and link error.
6629 https://bugzilla.gnome.org/show_bug.cgi?id=797358
6630 Signed-off-by: Junyan He <junyan.he@intel.com>
6632 2018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com>
6634 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6635 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6636 libs: encoder: h264/h264fei: remove unuseless code.
6637 The variable are set twice, remove previous one.
6638 https://bugzilla.gnome.org/show_bug.cgi?id=797365
6640 2018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com>
6642 * tests/simple-encoder.c:
6643 * tests/test-fei-enc-in.c:
6644 tests: check return value when using gst_buffer_map.
6645 https://bugzilla.gnome.org/show_bug.cgi?id=797366
6647 2018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6650 * meson_options.txt:
6651 * tests/elements/meson.build:
6652 * tests/meson.build:
6653 build: meson: build examples
6655 2018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6657 * gst-libs/gst/vaapi/meson.build:
6658 build: meson: declare headers for libgstvaapi
6659 Thus handling its recompilation if needed.
6661 2018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com>
6664 Update common submodule location
6665 Remove the git directory
6667 2018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
6670 * gstreamer-vaapi.doap:
6671 Clone the code from gitlab
6672 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
6674 2018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com>
6676 * gst-libs/gst/vaapi/gstvaapiimage.c:
6677 * gst-libs/gst/vaapi/gstvaapisurface.h:
6678 * gst-libs/gst/vaapi/gstvaapiutils.c:
6679 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6680 * gst-libs/gst/vaapi/video-format.c:
6681 * gst/vaapi/gstvaapidecode.c:
6682 * gst/vaapi/gstvaapipluginutil.h:
6683 libs: dec: h265: support decode for main-10-422 10bit streams.
6684 Add 422 10bit yuv format Y210, which can be used to decode
6685 main-10-422 10bit streams. Currently, this feature is only
6686 supported by media-driver in Icelake.
6687 https://bugzilla.gnome.org/show_bug.cgi?id=797264
6689 2018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com>
6691 * gst-libs/gst/vaapi/gstvaapicontext.c:
6692 libs: context: roi_rc_qp_delta_support should not be checked when CQP.
6693 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
6694 rate control mode is set as CQP. In CQP mode, it shouldn't check
6695 roi_rc_qp_delta_support return value from driver backend.
6696 https://bugzilla.gnome.org/show_bug.cgi?id=797087
6698 2018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6700 * gst/vaapi/gstvaapipostproc.c:
6701 vaapipostproc: fix classification string
6702 The classification string is splitted by '/' and then looks for the
6704 This patch removes the ';' by unifying all the components.
6706 2018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com>
6708 * gst/vaapi/gstvaapipostproc.c:
6709 vaapipostproc: Add Hardware classifier to metadata
6711 2018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com>
6713 * gst-libs/gst/vaapi/gstvaapicontext.c:
6714 libs: context: create context first before using it to create surface.
6715 In gst_vaapi_context_reset(), if the context has to be destroyed, make
6716 sure to create it first before allocating its associated surfaces.
6717 This patch fixes a regression introduced in commit 82872f4 because
6718 the formats available in the current context now are ensured before
6719 creating the context's surfaces.
6720 https://bugzilla.gnome.org/show_bug.cgi?id=797277
6722 2018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com>
6724 * docs/plugins/inspect/plugin-vaapi.xml:
6725 * gst/vaapi/gstvaapidecode.c:
6726 * gst/vaapi/gstvaapiencode_h264.c:
6727 * gst/vaapi/gstvaapiencode_h264_fei.c:
6728 * gst/vaapi/gstvaapiencode_h265.c:
6729 * gst/vaapi/gstvaapiencode_jpeg.c:
6730 * gst/vaapi/gstvaapiencode_mpeg2.c:
6731 * gst/vaapi/gstvaapiencode_vp8.c:
6732 * gst/vaapi/gstvaapiencode_vp9.c:
6733 gst: Advertise elements interacting with hardware devices
6735 2018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com>
6737 * gst-libs/gst/vaapi/gstvaapicontext.c:
6738 * gst-libs/gst/vaapi/gstvaapisurface.c:
6739 * gst-libs/gst/vaapi/gstvaapisurface.h:
6740 libs: context: query surface format before context to create surface.
6741 Before using context to create surface, the supported surface format
6742 should be checked first.
6743 https://bugzilla.gnome.org/show_bug.cgi?id=797222
6745 2018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6747 * gst-libs/gst/vaapi/gstvaapiimage.c:
6748 * gst-libs/gst/vaapi/gstvaapivalue.c:
6749 libs: replace g_error with GST_ERROR
6750 And handle those errors rather than halting.
6752 2018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6754 * gst-libs/gst/vaapi/gstvaapiimage.c:
6755 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6756 * gst-libs/gst/vaapi/gstvaapisurface.c:
6757 libs: replace g_warning with GST_WARNING
6759 2018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6761 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6762 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6763 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6764 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
6765 libs: Move from g_debug to GST_DEBUG.
6766 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6768 2018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com>
6770 * gst/vaapi/gstvaapipostproc.c:
6771 vaapipostproc: change the way of handling deinterlace
6772 The current vaapipostproc calls driver's video processing
6773 pipeline for deinterlacing only if it is Advance deinterlacing.
6774 Modify in the way that it always tries with driver's video
6775 processing pipeline for deinterlacing, and falls back to software
6776 method of appending picture structure meta data only if it fails
6777 with driver's method.
6778 https://bugzilla.gnome.org/show_bug.cgi?id=797095
6780 2018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6782 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6783 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
6784 libs: h264: Update level table to "Recommendation H.264 (04/17)".
6785 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
6786 from T-REC-H.264-201704.
6787 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6789 2018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com>
6791 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6792 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6793 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6794 * gst-libs/gst/vaapi/gstvaapisurface.c:
6795 * gst-libs/gst/vaapi/gstvaapiutils.c:
6796 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6797 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
6798 * gst-libs/gst/vaapi/video-format.c:
6799 * gst-libs/gst/vaapi/video-format.h:
6800 * gst/vaapi/gstvaapidecode.c:
6801 * gst/vaapi/gstvaapipluginbase.c:
6802 * gst/vaapi/gstvaapipluginutil.h:
6803 libs: dec: h265: add 422 chroma format support.
6804 Add main-422-10 profile which support 422 chroma format stream.
6805 Currently, this feature is only supported by media-driver in Icelake.
6806 https://bugzilla.gnome.org/show_bug.cgi?id=797143
6808 2018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com>
6810 * tests/y4mreader.c:
6811 tests: include sysdeps.h in compilation unit
6812 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
6813 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6815 2018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6817 * tests/y4mreader.c:
6818 * tests/y4mreader.h:
6819 tests: fix compilation
6820 https://bugzilla.gnome.org/show_bug.cgi?id=797204
6822 2018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6824 * tests/y4mreader.h:
6825 tests: don's use sysdeps.h in header
6827 2018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6829 * gst-libs/gst/vaapi/gstvaapiutils.h:
6830 libs: utils: no need of include config.h
6832 2018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6836 * tests/test-decode.c:
6837 * tests/test-subpicture.c:
6838 tests: remove already include string.h
6839 Since sysdeps.h includes string.h there's no need to include it again.
6841 2018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6843 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6844 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6845 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6846 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6847 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6848 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6849 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6850 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6851 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6852 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6853 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6854 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6855 * gst-libs/gst/vaapi/gstvaapiimage.c:
6856 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6857 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6858 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6859 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6860 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6861 libs: remove already include string.h
6862 Since sysdeps.h includes string.h there's no need to include it again.
6864 2018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6866 * gst-libs/gst/vaapi/gstvaapiobject.h:
6867 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6868 * gst/vaapi/gstvaapivideometa_texture.c:
6869 libs: object: separation of internal API and plugins
6870 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
6871 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
6873 The purpose is readability.
6874 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6876 2018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6878 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
6879 libs: parser_frame: change macros for inlined functions
6880 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6882 2018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6884 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6885 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6886 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6887 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
6888 libs: videopool: remove unneeded code
6889 The removed code comes frome the bad practice of copy&paste. Better
6890 move it as internal function.
6891 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6893 2018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6895 * gst-libs/gst/vaapi/Makefile.am:
6896 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6897 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6898 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
6899 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
6900 * gst-libs/gst/vaapi/gstvaapiobject.c:
6901 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6902 * gst-libs/gst/vaapi/gstvaapipixmap.c:
6903 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
6904 * gst-libs/gst/vaapi/gstvaapitexture.c:
6905 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
6906 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6907 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6908 * gst-libs/gst/vaapi/meson.build:
6909 libs: remove dependency on IN_LIBGSTVAAPI_CORE
6910 This conditional code was when libgstvaapi was intended to be library
6911 used outside GStreamer. This not the case anymore, thus removing it.
6912 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6914 2018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com>
6916 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6917 libs: dec: h265: fix the macros used for IDC profile
6918 profile_idc flag in SPS only indicate the IDC profile, which may
6919 need some other flags together to get the real profile.
6920 https://bugzilla.gnome.org/show_bug.cgi?id=797160
6922 2018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com>
6924 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6925 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6926 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6927 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6928 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6929 libs: use g_clear_pointer() when possible
6930 https://bugzilla.gnome.org/show_bug.cgi?id=797131
6932 2018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6934 * gst-libs/gst/vaapi/gstvaapifilter.h:
6935 libs: filter: add gobject's cleanup function
6937 2018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6939 * gst-libs/gst/vaapi/gstvaapifilter.c:
6940 * gst-libs/gst/vaapi/gstvaapifilter.h:
6941 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6942 * tests/test-filter.c:
6943 libs: filter: remove custom ref() and unref()
6944 Replacing them by gst_object_ref() and gst_object_unref()
6945 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6947 2018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6949 * gst-libs/gst/vaapi/gstvaapifilter.c:
6950 * gst-libs/gst/vaapi/gstvaapifilter.h:
6951 libs: filter: refactor filter as gobject
6952 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6954 2018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6956 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6957 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6958 libs: decoder: remove destoy() and create() callbacks
6959 They were all replaced by reset()
6960 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6962 2018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6964 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6965 libs: decoder: vp9: implement reset() callback
6966 remove destroy() and create() callback
6967 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6969 2018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6971 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6972 libs: decoder: vp8: implement reset() callback
6973 remove create() and destroy() callbacks
6974 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6976 2018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6978 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6979 libs: decoder: vc1: implement reset() callback
6980 remove destroy() and create() callbacks
6981 use g_clear_pointer for rbdu_buffer
6983 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6985 2018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6987 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6988 libs: decoder: mpeg4: implement reset() callback
6989 remove destroy() and create() callback
6990 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6992 2018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6994 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6995 libs: decoder: mpeg2: implement reset() callback
6996 remove create() and destroy() callbacks
6997 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6999 2018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7001 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
7002 libs: decoder: jpeg: implement reset() callback
7003 and remove create() and destroy() callbacks.
7004 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7006 2018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7008 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7009 libs: decoder: h265: implement reset() callback
7010 and remove create() and destroy()
7011 and use g_clear_pointer for dpb structure
7012 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7014 2018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7016 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7017 libs: decoder: h264: remove create() and destroy() callbacks
7018 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7020 2018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7022 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7023 * gst-libs/gst/vaapi/gstvaapidecoder.h:
7024 * tests/test-decode.c:
7025 * tests/test-subpicture.c:
7026 libs: decoder: remove gst_vaapi_decoder_unref()
7027 Replaced by gst_object_unref() in tests
7028 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7030 2018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7032 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7033 * gst-libs/gst/vaapi/gstvaapidecoder.h:
7034 libs: decoder: remove gst_vaapi_decoder_ref()
7035 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7037 2018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7039 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7040 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7041 libs: decoder: remove gst_vaapi_decoder_new()
7042 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7044 2018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7046 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7047 * gst-libs/gst/vaapi/gstvaapidecoder.h:
7048 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7049 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
7050 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7051 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
7052 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
7053 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
7054 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
7055 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
7056 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
7057 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7058 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7059 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
7060 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7061 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
7062 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
7063 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7064 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
7065 libs: decoder: refactor decoders as gobject
7066 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7068 2018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
7070 * gst/vaapi/gstvaapidecode.c:
7071 vaapidecode: Requests upstream a key unit at parse or decode error.
7072 This is done to resume decoding after a parse error or decode error.
7073 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
7075 2018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
7077 * gst/vaapi/gstvaapidecode.c:
7078 vaapidecode: sets return value in failure case.
7079 In gst_vaapidecode_handle_frame, when there is a decode error
7080 there is a code path the returns an uninitialized value.
7081 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
7083 2018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7085 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7086 libs: display: lock at extracting available image formates
7087 When running several vaapi elements at the concurrently, at
7088 initialization, there is a race condition when extractin the avaible
7089 formats for images and subpictures.
7090 This patch add a lock when the those arrays are filled.
7091 https://bugzilla.gnome.org/show_bug.cgi?id=797039
7093 2018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
7096 meson: Sync libversion and osxversion code from other repos
7097 gstreamer-vaapi does not build any libraries, only plugins, so this is
7098 not used, but sync it just in case someone does add it in the future.
7100 2018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7102 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
7103 libs: encoder: h265: trivial documentation fix
7105 2018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com>
7107 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7108 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
7109 libs: encoder: h265: add low delay B frame support.
7110 Low delay B frame provide the function of transforming
7111 P frame into low delay B frame which frame type is B, but
7112 only reference predictive frames. This can be used when P
7113 frame unsupported. Especially for P and B both unsupported,
7114 in this case, I and low delay B frame can be encoded in a
7116 https://bugzilla.gnome.org/show_bug.cgi?id=796984
7118 2018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7120 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7121 libs: decoder: h264: Avoid using picture after it has been free
7122 In some cases, the found_picture ended up being evicted and freed, which
7123 would lead to a use after free when accessing picture->base.poc. In this
7124 fix, we take a ref on the picture before calling dpb_evict.
7125 https://bugzilla.gnome.org/show_bug.cgi?id=787124
7127 2018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7129 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7130 h264decoder: Fail decoding slice with missing inter-view reference
7131 Similarly to previous patch, we have no error concealment. As a side
7132 effect, it's better to skip slices with missing references then passing
7133 NULL pointers to the accelerator. Passing NULL pointer would lead to
7134 major visual artifact, a behaviour that is likely undefined.
7135 https://bugzilla.gnome.org/show_bug.cgi?id=787124
7137 2017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com>
7139 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7140 libs: decoder: h264: reset context when the number of view is increased
7141 Usually in case of MVC decoding, dpb size is increasedi if subset sps.
7142 That's why it resets context without this patch.
7143 But for some media it doesn't increase dpb size. Even in this case we
7144 should reset context to deal with MVC decoding.
7145 Otherwise, it leads to assert.
7146 https://bugzilla.gnome.org/show_bug.cgi?id=787124
7148 2018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7150 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7151 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7152 * gst/vaapi/gstvaapidecode.c:
7153 vaapidecode: Skip unparsable units from adapter
7154 If the unit could not be parsed, just skip this nal and keep parsing
7155 what is left in the adapter. We need to flush the broken unit in the
7156 decoder specific parser because the generic code does not know about
7157 units boundary. This increases error resilliance.
7158 Before this, the broken unit would stay in the adapter and EOS would be
7159 returned. Which stopped the streaming. Just removing the EOS would have
7160 lead to the adapter size growing indefinitely.
7161 https://bugzilla.gnome.org/show_bug.cgi?id=796863
7163 2018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7165 * gst/vaapi/gstvaapidecode.c:
7166 vaapidecoder: Don't error out on decode errors
7167 This is problematic on live pipeline where loosing network can
7168 cause an important amount of errors.
7169 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7171 2018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7173 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7174 h265decoder: Don't scan empty buffer
7175 Same as what we did for H264 decoder, this is to avoid an assertion
7177 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7179 2018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7181 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7182 libs: h264: renable the vaapi category for logging
7183 h264 log messages were logged in default category because a regression
7184 in code. This patch renable the usage of vaapi logging category.
7185 This regression was introduced in commit 7c365bdd.
7187 2018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7189 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7190 h264decoder: Fail decoding slice if modification process failed
7191 This patch chains up failure to executing the modification process. The
7192 end result is that we now fail decoding the slice if this process fails.
7193 This avoid sending a corrupted state to the accelerator. In some special
7194 cases, this could lead to unrecoverable errors.
7195 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7197 2018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7199 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7200 h264decoder: Don't scan empty buffer
7201 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
7202 try and scan in that case. This fixes assertion that would some times
7203 happen when the stream is corrupted.
7204 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7206 2018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com>
7208 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7209 libs: encoder: jpeg: set component id and Tqi
7210 This change is due a problem encoding JPEGs with Intel's
7211 media-driver: green/black image when playback jpeg
7212 This patch sets component identifier and quantization table
7213 destination selector in frame header to support packing headers
7214 by Intel's media-driver that does not accept packed header
7216 https://bugzilla.gnome.org/show_bug.cgi?id=796705
7218 2018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com>
7220 * gst/vaapi/gstvaapipluginutil.c:
7221 pluginutil: downgrade unsupported driver logging
7222 On systems with an Nvidia card, this error is output each time
7223 the registry is rebuilt, which happens pretty often when
7224 using gst-build as a development environment.
7225 https://bugzilla.gnome.org/show_bug.cgi?id=796663
7227 2018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com>
7229 * gst/vaapi/gstvaapivideobufferpool.c:
7230 Update for g_type_class_add_private() deprecation in recent GLib
7232 2018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7234 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7235 h264dec: Remove false assumption about parity order
7236 The decoder was trying to detect earlier that a field was lost base
7237 on guessing the parity order. This breaks in streams were the parity
7239 This patch reverts the field order prediction code added by commit
7241 https://bugzilla.gnome.org/show_bug.cgi?id=796169
7243 2018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7245 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7246 h264dec: Properly set sentinel in ref frame list
7247 This ensure that we always have sentinels set in the reference
7248 pictures arrays. The code wasn't unsafe, this simply improve the
7249 tracing, so instead of printing 32 lines of zeros, va tracer
7250 prints proper empty lists.
7251 https://bugzilla.gnome.org/show_bug.cgi?id=796169
7253 2018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7255 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7256 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7257 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7258 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7259 * gst-libs/gst/vaapi/gstvaapifilter.c:
7260 * gst-libs/gst/vaapi/gstvaapiobject.c:
7261 * gst-libs/gst/vaapi/gstvaapivideopool.c:
7262 * gst/vaapi/gstvaapipluginbase.c:
7263 * gst/vaapi/gstvaapivideometa.c:
7264 * tests/test-decode.c:
7265 libs: display: remove gst_vaapi_display_ref()
7266 Replace it with gst_object_ref()
7267 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7269 2018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7271 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7272 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7273 * gst/vaapi/gstvaapi.c:
7274 * gst/vaapi/gstvaapidecode.c:
7275 * gst/vaapi/gstvaapiencode.c:
7276 * gst/vaapi/gstvaapipluginbase.c:
7277 * gst/vaapi/gstvaapipluginutil.c:
7279 * tests/simple-encoder.c:
7280 * tests/test-decode.c:
7281 * tests/test-display.c:
7282 * tests/test-fei-enc-in.c:
7283 * tests/test-filter.c:
7284 * tests/test-subpicture.c:
7285 * tests/test-surfaces.c:
7286 * tests/test-textures.c:
7287 * tests/test-windows.c:
7288 libs: display: remove gst_vaapi_display_unref()
7289 Use gst_object_unref() instead.
7290 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7292 2018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7294 * gst/vaapi/gstvaapivideobufferpool.c:
7295 vaapibufferpool: declare parameter display as object
7296 We have neglected to update this code since GstVaapiDisplay turned
7297 into a GstObject descendant.
7298 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7300 2018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
7302 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7303 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7304 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7305 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
7306 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7307 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7308 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7309 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
7310 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
7311 But still something breaking GObject code convention remains, which is
7312 calling gst_vaapi_display_new() in each decendants.
7313 This patch replaces it with gst_vaapi_display_config(), defined in private
7315 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7317 2018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7319 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7320 libs: display: redefine gst_vaapi_display_create()
7321 The function name was gst_vaapi_display_create_unlocked(), nonetheless
7322 it wasn't called unlocked. In order to keep the semantics this patch
7323 renames the gst_vaapi_display_create_unlocked() as
7324 gst_vaapi_display_create(), removing the previous function
7325 gst_vaapi_display_create().
7326 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7328 2018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7331 Revert "build: meson: libva gst-uninstall friendly"
7332 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
7334 2018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7336 * gst/vaapi/gstvaapipluginutil.c:
7337 plugins: fix compilation
7338 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
7340 2018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7343 build: meson: libva gst-uninstall friendly
7344 Make gstreamer-vaapi to use libva uninstalled.
7346 2018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7348 * gst/vaapi/gstvaapipluginutil.c:
7349 plugins: refactor gst_vaapi_create_display_from_gl_context()
7350 gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
7351 This path refactors it, in order to make the code readable and
7353 https://bugzilla.gnome.org/show_bug.cgi?id=796564
7355 2018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7357 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7358 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7359 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7360 libs: display: resurrect parent private member
7361 This is, practically, a revert of commit dcf135e2.
7362 The parent logic is useful for the EGL display, which is a decorator
7363 of the real windowing subsystem (X11 or Wayland). Thus it is avoided
7364 calling vaInitialize() and vaTerminate() twice.
7365 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7367 2018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7369 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7370 libs: display: egl: initialize params structure
7371 Statically initialise the internal params structure.
7372 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7374 2018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7376 * gst/vaapi/gstvaapipluginutil.c:
7377 plugins: handle EGL when creating VAAPI display from gl
7378 If GstGL reports a EGL platform force to create a EGL display using
7379 the native EGL display.
7380 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7382 2018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com>
7384 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7385 * gst/vaapi/gstvaapipluginutil.c:
7386 display: egl: create VaapiDisplayEGL with native EGL display
7387 gst_vaapi_display_egl_new_with_native_display() has been broken since
7389 Currently it's needed to call this API to create a display providing
7390 the EGL display, so it could avoid duplicated calls to the native
7391 display (eg. eglTerminate).
7392 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
7393 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7395 2018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com>
7397 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
7398 libs: decoder: release VA buffers after vaEndPicture
7399 This change is due a problem decoding JPEGs with Intel's media-driver:
7400 no image was generated.
7401 This patch relases the VA buffers after vaEndPicture() is called,
7402 and not before (after vaRenderPicture()).
7403 https://bugzilla.gnome.org/show_bug.cgi?id=796505
7405 2018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com>
7407 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7408 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
7409 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
7410 meson: fix build when xrender or xrandr are not available
7411 HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
7413 2018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7415 * gst/vaapi/gstvaapipostproc.c:
7416 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
7417 Otherwise a reference to a DMABuf input buffer is kept until the output
7419 https://bugzilla.gnome.org/show_bug.cgi?id=796399
7421 2018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7423 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7424 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7425 libs: display: remove unnecessary legacy code since gobjectification
7426 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7428 2018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com>
7430 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7431 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7432 libs: display: remove unused code
7433 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7435 2018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7437 * gst/vaapi/gstvaapiencode_h264.c:
7438 vaapiencode: h264: log output caps
7440 2018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7442 * gst/vaapi/gstvaapiencode_h264.c:
7443 vaapiencode: h264: find profile in available and allowed caps
7444 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
7445 find best profile in those available") changed the code to pick a profile
7446 that is actually supported by the hardware. Unfortunately it dropped the
7447 downstream constraints. This can cause negotiation failures under certain
7449 The fix is split in two cases:
7450 1\ the available VA-API caps doesn't intersect with pipeline's allowed
7452 * The best allowed profile (pipeline's caps) is set as the encoding
7453 target profile (it will be adjusted later by the available profiles
7455 2\ the available VA-API caps does intersect with pipeline's allowed
7457 * The intersected caps are fixed, and its profile is set as the
7458 encoding target profile. In this case the is not the best profile,
7459 but the minimal one (if VA-API reports the profiles in order).
7460 Setting the minimal profile of the intersected caps is better for
7462 This patch fixes other tests related with caps negotiation, for
7463 example, it handles baseline profile, even when VA only supports
7464 constrained-baseline.
7465 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
7466 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7468 2018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com>
7470 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7471 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
7472 The specification says,
7473 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
7474 This patch changes the upper limit from 6 to 12.
7475 https://bugzilla.gnome.org/show_bug.cgi?id=796179
7477 2018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7479 * gst/vaapi/gstvaapipluginutil.c:
7480 plugins: guard GstGL code
7482 2018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7484 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7485 libs: decoder: h264: use g_clear_pointer()
7487 2018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7489 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7490 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7491 libs: decoder: mpeg4, vc1: remove unused header
7493 2018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7495 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7496 libs: decoder: remove unused forward declaration
7498 2018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
7501 fix configure.ac regression
7502 Fixes regression introduced by 77527d67abe
7503 https://bugzilla.gnome.org/show_bug.cgi?id=795885
7505 2018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7507 * gst-libs/gst/Makefile.am:
7508 * gst-libs/gst/base/Makefile.am:
7509 * gst-libs/gst/base/gstbitwriter.c:
7510 * gst-libs/gst/base/gstbitwriter.h:
7511 * gst-libs/gst/base/meson.build:
7512 * gst-libs/gst/meson.build:
7513 * gst-libs/gst/vaapi/Makefile.am:
7514 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7515 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7516 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7517 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7518 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7519 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7520 * gst-libs/gst/vaapi/meson.build:
7521 libs: remove gstbitwriter
7522 Since it is deployed in gstreamer-core, there is no need to use
7524 https://bugzilla.gnome.org/show_bug.cgi?id=795848
7526 2018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com>
7528 * gst/vaapi/gstvaapidecode.c:
7529 vaapih264dec: add constrained and progressive profiles
7530 Those profiles have been added in the version 2012-01
7531 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
7532 Both are supported by VAProfileH264High
7533 https://bugzilla.gnome.org/show_bug.cgi?id=795624
7535 2018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7537 * gst/vaapi/gstvaapipluginbase.c:
7538 * gst/vaapi/gstvaapipluginutil.c:
7539 * gst/vaapi/gstvaapivideocontext.c:
7540 * gst/vaapi/gstvaapivideocontext.h:
7541 plugin: remove custom GstGL context handling
7542 Instead of using our own context handling for looking for GstGL
7543 parameters (display, context and other context), this patch changes
7544 the logic to use the utility function offered by GstGL.
7545 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7547 2018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7549 * gst/vaapi/gstvaapipluginbase.c:
7550 plugins: GstGL API must use the member variables
7551 This commit basically is a revert of commits 8092537 and fc1c415
7552 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7554 2018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com>
7556 * gst/vaapi/gstvaapipluginbase.c:
7557 plugins: pass members as parameters of gst_gl_ensure_element_data()
7558 The parameters of gst_gl_ensure_element_data() have to be not
7559 local variable since they are going to be used to see if they're
7560 set in gst_element_set_context() inside the API.
7561 This is basically a revert of commit 3d56306c
7562 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7564 2018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7567 meson: fix USE_GLES_VERSION_MASK
7568 1. The macro in the code is USE_GLES_VERSION_MASK
7569 2. glesv3 is provided by glesv2 pkg-config, then it's required to
7571 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7573 2018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com>
7575 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7576 libs: egl: utils: mark context as wrapped when it is
7577 The returning egl context may be null, so we should check the
7579 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7581 2018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7583 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7584 libs: egl: utils: fix usage of GstGL macros
7585 Include gl.h for the required GstGL symbols.
7586 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7588 2018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com>
7591 meson: use -Wl,-Bsymbolic-functions where supported
7592 Just like the autotools build.
7594 2018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7597 meson: use get_pkgconfig_variable()
7598 Use get_pkgconfig_variable() method, of dependency class, rather
7599 than using run_command().
7601 2018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com>
7603 * gst-libs/gst/base/meson.build:
7604 * gst-libs/gst/vaapi/meson.build:
7606 meson: fix miscellaneous meson warnings
7607 WARNING: Passed invalid keyword argument "rqeuired".
7608 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
7609 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
7610 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
7611 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
7613 2018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7615 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7616 display: drm: Allow finding DRM paths out of the PCI subsystem
7617 This removes hard-coded checks on the parent subsystem of potential DRM
7618 devices. These checks were set to exlude devices that do not originate
7619 from the PCI bus, which is only a valid approach on x86 devices.
7620 Other devices may have a DRM device originating from the platform
7621 subsystem, so the checks that were previously restricted to PCI are
7622 extended to cover platform devices as well.
7623 https://bugzilla.gnome.org/show_bug.cgi?id=794840
7624 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7626 2017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com>
7628 * gst/vaapi/gstvaapivideocontext.c:
7629 videocontext: support wl-display in "gst.vaapi.app.Display"
7630 Through "gst.vaapi.app.Display" context, users can set their own
7631 VADisplay and native display of their backend.
7632 So far we support only X11 display, from now we also support Wayland
7635 - wl-display : pointer of struct wl_display .
7636 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7638 2017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com>
7640 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7641 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
7642 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
7643 Implements new API function so that users could create GstVaapiDisplay
7644 with their own VADisplay within a native display as backend.
7645 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7647 2018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7649 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7650 wayland: don't poll if there are no pending frames
7651 Otherwise the following poll may not return for an arbitrary amount of
7652 time. This can happen if another wayland event queue has flushed and read
7654 https://bugzilla.gnome.org/show_bug.cgi?id=795224
7656 2017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7658 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7659 libs: encoder: h265: 16 bit rounding of picture width and height
7660 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
7662 In addition, codedbuf_size must be calculated according to this change.
7663 https://bugzilla.gnome.org/show_bug.cgi?id=753229
7665 2018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com>
7668 Automatic update of common submodule
7669 From 3fa2c9e to ed78bee
7671 2018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7673 * gst/vaapi/gstvaapiencode_h264.c:
7674 vaapiencode: h264: find best profile in those available
7675 Instead to look for the best profile in the allowed profiles by
7676 downstream, the encoder should look for the base profile in the
7677 available profile in VA-API.
7678 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7680 2018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7685 * docs/plugins/inspect/plugin-vaapi.xml:
7689 === release 1.14.0 ===
7691 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
7696 * gstreamer-vaapi.doap:
7700 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
7702 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7703 libs: decoder: h264: ensure num_ref_frames is greater than 0
7704 Even if it is the h264parse fault or bad video file, vaapih264dec
7705 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
7706 as the driver might use it.
7707 Also see "info.ref_frames = dpb_size;" in
7708 gstvaapidecoder_h264.c::ensure_context
7709 https://bugzilla.gnome.org/show_bug.cgi?id=793836
7711 === release 1.13.91 ===
7713 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
7718 * gstreamer-vaapi.doap:
7722 === release 1.13.90 ===
7724 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
7729 * gstreamer-vaapi.doap:
7733 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7735 * gst/vaapi/gstvaapipostproc.c:
7736 vaapipostproc: change how the metadata is copied
7737 Instead of copying the metada in prepare_output_buffer() vmethod,
7738 it is done in append_output_buffer_metadata() thus deinterlaced
7739 buffers could also have the proper metas.
7740 GstVideoCropMeta now it is copied internally and it is decided via
7741 transform_meta() vmethod.
7742 A new internal method, copy_metadata() was added to handle VPP
7743 transformation where non-GstVideoVaapiMeta metas were lost.
7745 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7747 * gst/vaapi/gstvaapipostproc.c:
7748 postproc: Copy meta data from input to output
7749 This will ensure that meta data without memory tags will be copied. This
7750 was noticed when testing ROI.
7751 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7753 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7755 * tests/elements/test-roi.c:
7756 tests: element: rewrite ROI test
7757 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
7758 than injecting GstEvents. These meta are added as a pad probe in
7761 * Use of navigation messages to control de test
7762 * Use signal watch for processing messages
7763 * Change to H265 rather than H264 since current intel-vaapi-driver
7764 only supports ROI on kabylake.
7765 TODO: add a parameter to change the encoder/decoder to test.
7766 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7768 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7770 * gst-libs/gst/vaapi/gstvaapicontext.c:
7771 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7772 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7773 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7774 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7775 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7776 libs: encoder: reimplement ROI using meta
7777 Check input buffers for ROI metas and pass them to VA. Also added a
7778 new "default-roi-delta-qp" property in order to tell the encoder what
7779 delta QP should be applied to ROI by default.
7780 Enabled it for H264 and H265 encoders.
7781 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7783 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7785 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7786 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7787 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7788 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
7789 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
7790 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7792 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7794 * tests/simple-encoder.c:
7795 Revert "tests: simple-encoder: add an option to set ROI"
7796 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
7797 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7799 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7801 * gst/vaapi/gstvaapiencode.c:
7802 * gst/vaapi/gstvaapiencode_h264.c:
7803 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
7804 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
7805 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7807 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7809 * gst/vaapi/gstvaapipluginbase.c:
7810 plugins: copy input buffer metas
7811 When importing buffers to a VA-base buffer, it is required to copy
7812 the metas in the original buffer, otherwise information will be
7813 lost, such as GstVideoRegionOfInterestMeta.
7814 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7816 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7818 * gst-libs/gst/vaapi/gstvaapisurface.c:
7819 libs: surface: cast to uintptr_t pointer
7820 According to Debian package auto-building, uintptr_t is not an
7821 unsigned long in i386 arch, raising an "incompatible pointer type"
7823 This patch adds a casting for compiler's satisfaction in i386.
7825 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7827 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7828 libs: encoder: add zero as valid value for periodic keyframe.
7829 Enabled zero as valid value for keyframe-period property.
7830 https://bugzilla.gnome.org/show_bug.cgi?id=793829
7832 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7834 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7835 libs: encoder: code-style fix
7837 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7839 * gst/vaapi/gstvaapidecode.c:
7840 vaapidecode: generate system allocated buffers
7841 Generate system allocated output buffers when downstream doesn't
7842 support GstVideoMeta.
7843 The VA buffer content is copied to the new output buffer, and it
7844 replaces the VA buffer.
7845 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7847 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7849 * gst/vaapi/gstvaapipostproc.c:
7850 vaapipostproc: handle system allocated buffers when required
7851 When downstream can't handle GstVideoMeta it is required to send
7852 system allocated buffers.
7853 The system allocated buffers are produced in prepare_output_buffer()
7854 vmethod if downstream can't handl GstVideoMeta.
7855 At transform() vmethod if the buffer is a system allocated buffer,
7856 a VA buffer is instanciated and replaces the out buffer. Later
7857 the VA buffer is copied to the system allocate buffer and it
7858 replaces the output buffer.
7859 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7861 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7863 * gst/vaapi/gstvaapipluginbase.c:
7864 * gst/vaapi/gstvaapipluginbase.h:
7865 plugins: add gst_vaapi_copy_va_buffer()
7866 This helper function aims to copy buffers with VA memory to dumb
7867 buffers, when GstVideoMeta is not available dowstream.
7868 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7870 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7872 * gst/vaapi/gstvaapipluginbase.c:
7873 * gst/vaapi/gstvaapipluginbase.h:
7874 plugins: add COPY_OUTPUT_FRAME flag
7875 This patch add the member copy_output_frame and set it TRUE when
7876 when downstream didn't request GstVideoMeta API, the caps are raw
7877 and the internal allocator is the VA-API one.
7878 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7880 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7882 * gst/vaapi/gstvaapipluginbase.c:
7883 * gst/vaapi/gstvaapipluginbase.h:
7884 plugins: store the first downstream allocator if available
7885 The allocator will be required if we need to allocate a buffer
7886 to store the frame with the expected strides.
7887 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7889 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7891 * gst/vaapi/gstvaapivideobufferpool.c:
7892 * gst/vaapi/gstvaapivideobufferpool.h:
7893 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
7894 This function will inform the element if it shall copy the generated
7895 buffer by the pool to a system allocated buffer before pushing it
7897 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7899 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7901 * gst/vaapi/gstvaapivideobufferpool.c:
7902 vaapibufferpool: don't change config when forcing video meta
7903 VA-API based buffer might need a video meta because of different
7904 strides. But when donwstream doesn't support video meta we need to
7905 force the usage of video meta.
7906 Before we changed the buffer pool configuration, but actually this
7907 is a hack and we cannot rely on that for downstream.
7908 This patch add a check fo raw video caps and allocator is VA-API,
7909 then the option is enabled without changing the pool configuration.
7910 In this case the element is responsible to copy the frame to a
7911 simple buffer with the expected strides.
7912 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7914 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7916 * gst/vaapi/gstvaapipostproc.c:
7917 vaapipostproc: set discont flag at vpp deinterlacing
7918 When deinterlacing with VPP the discont flag was not forwarded to
7919 the new created buffer. This patch sets the discont flag if input
7922 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7924 * gst/vaapi/gstvaapivideobufferpool.h:
7925 vaapibufferpool: remove wrong gcc annotation
7927 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7929 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7930 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7931 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7932 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7933 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7934 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7935 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
7936 libs: encoder: h264,h265: extend max periodic keyframe.
7937 Increased max values of periodic key frame for h26x codecs.
7938 This allow more fine tunning of encoder that in certian scenario
7939 want higher periodic key frame.
7940 For example: it doesn't want a key frame each 10 seconds but
7942 https://bugzilla.gnome.org/show_bug.cgi?id=786320
7944 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
7950 === release 1.13.1 ===
7952 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
7957 * gstreamer-vaapi.doap:
7961 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
7963 * gst/vaapi/Makefile.am:
7964 vaapi: dist new header
7966 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7968 * gst/vaapi/gstvaapi.c:
7969 vaapi: register vaapisink as marginal on wayland
7970 vaapsink, when used with the Intel VA-API driver, tries to display
7971 surfaces with format NV12, which are handled correctly by
7972 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
7973 pipelines on mutter.
7974 This shall be solved either by COGL or by making the driver to paint
7975 RGB surfaces. In the meanwhile, let's just demote vaapisink as
7976 marginal when the Wayland environment is detected, no matter if it is
7978 https://bugzilla.gnome.org/show_bug.cgi?id=775698
7980 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7982 * gst/vaapi/gstvaapipluginutil.c:
7983 plugins: update mesa's vendor string in whitelist
7984 Mesa has updated its VA-API Gallium driver vendor string:
7985 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
7986 This patch tries to cover both, the old and the new one.
7987 https://bugzilla.gnome.org/show_bug.cgi?id=793386
7989 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
7992 meson: make version numbers ints and fix int/string comparison
7993 WARNING: Trying to compare values of different types (str, int).
7994 The result of this is undefined and will become a hard error
7995 in a future Meson release.
7997 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7999 * gst/vaapi/gstvaapipluginbase.c:
8000 plugins: handle vaapi allocator in allocation query
8001 In propose_allocation() if the numer of allocation params is zero, the
8002 system's allocator is added first, and lastly the native VA-API
8004 In decide_allocation(), the allocations params in query are travered,
8005 looking for a native VA-API allocator. If it is found, it is reused as
8006 src pad allocator. Otherwise, a new allocator is instantiated and
8007 appended in the query.
8008 https://bugzilla.gnome.org/show_bug.cgi?id=789476
8010 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8012 * gst/vaapi/gstvaapivideomemory.h:
8013 vaapivideomemory: remove unused macro
8014 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
8015 was never used, since the native VA-API allocator name has been
8016 GST_VAAPI_VIDEO_MEMORY_NAME.
8017 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
8018 https://bugzilla.gnome.org/show_bug.cgi?id=789476
8020 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
8022 * gst/vaapi/gstvaapisink.c:
8023 vaapisink: don't mask button events for foreign windows
8024 Don't subscribe to button press events when using a foreing window,
8025 because the user created window would trap those events, preveting the
8027 https://bugzilla.gnome.org/show_bug.cgi?id=791615
8029 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
8032 autotools: use -fno-strict-aliasing where supported
8033 https://bugzilla.gnome.org/show_bug.cgi?id=769183
8035 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
8038 meson: use -fno-strict-aliasing where supported
8039 https://bugzilla.gnome.org/show_bug.cgi?id=769183
8041 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
8043 * gst/vaapi/gstvaapi.c:
8044 vaapi: add NULL-sentinel to kernel_names
8045 The array needs to be NULL-terminated according to the
8046 gst_plugin_add_dependency() documentation.
8048 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8050 * gst/vaapi/gstvaapipostprocutil.c:
8051 vaapipostproc: remove spurious code
8052 This assignation is dead code, since gst_video_info_from_caps() set
8054 https://bugzilla.gnome.org/show_bug.cgi?id=790149
8056 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8058 * gst/vaapi/gstvaapipostprocutil.c:
8059 vaapipostproc: if no p-a-r in out caps define a range
8060 Instead of copying the pixel-aspect-ratio from the sink caps, define
8061 an open range for the src caps pixel-aspect-ratio. Later it will be
8063 https://bugzilla.gnome.org/show_bug.cgi?id=790149
8065 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8067 * gst/vaapi/gstvaapisink.c:
8068 vaapisink: check for display's color-balance properties
8069 Check for display's color-balance properties, available by the VA-API
8070 driver, before setting them.
8071 Also logs an info message of those unavailable properties.
8072 https://bugzilla.gnome.org/show_bug.cgi?id=792638
8074 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8076 * gst/vaapi/gstvaapipluginbase.c:
8077 plugins: re-using buffer pool breaks renegotiation
8078 at propose_allocation() we should not reuse the proposed buffer,
8079 because it could break renegotiation.
8080 https://bugzilla.gnome.org/show_bug.cgi?id=792620
8082 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8084 * gst/vaapi/gstvaapipluginbase.c:
8085 plugins: use g_clear_object() to unref sinkpad_buffer_pool
8086 https://bugzilla.gnome.org/show_bug.cgi?id=792620
8088 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8090 * gst-libs/gst/vaapi/meson.build:
8091 build: meson: add missing GstGL dependency
8093 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8095 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
8096 libs: utils: egl: add missing guards for GstGL
8098 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8100 * gst/vaapi/gstvaapipluginbase.c:
8101 plugins: remove dmabuf-import hack
8102 Remove the hack to check if an upstream element has enabled the
8103 property io-mode enabled as dmabuf-import.
8104 https://bugzilla.gnome.org/show_bug.cgi?id=792034
8106 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8108 * gst-libs/gst/vaapi/Makefile.am:
8109 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8110 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
8111 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
8112 libs: egl: utils: use eglGetPlatformDisplay()
8113 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
8114 eglGetDisplay() is rather fragile, and it is recommended to use
8115 eglGetPlatformDisplay() when possible.
8116 In order to do that, this patch uses the helper in GstGL. If
8117 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
8119 https://bugzilla.gnome.org/show_bug.cgi?id=790493
8121 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
8123 * gst/vaapi/gstvaapipostproc.c:
8124 vaapipostproc: lock ensure_filter with postproc_lock
8125 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
8126 and allowed_sinkpad_caps. This can race with copying these caps in
8127 gst_vaapipostproc_transform_caps and lead to segfaults.
8128 The gst_vaapipostproc_transform_caps function already locks
8129 postproc_lock before copying the caps. Make sure that calls to
8130 gst_vaapipostproc_ensure_filter also acquire this lock.
8131 https://bugzilla.gnome.org/show_bug.cgi?id=791404
8133 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8135 * tests/test-filter.c:
8136 tests: test-filter: fix dereference before null check
8137 Null-checking op_info suggests that it may be null, but it has already
8138 been dereferenced on all paths leading to the check.
8139 There may be a null pointer dereference, or else the comparison
8140 against null is unnecessary.
8142 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8144 * tests/y4mreader.c:
8145 tests: y4mreader: fix string state checkup
8146 str cannot be null in that moment, but it may be the end of string.
8148 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8150 * tests/y4mreader.c:
8151 tests: y4mreader: use int for fgetc
8152 Assigning the return value of fgetc to char truncates its value.
8153 It will not be possible to distinguish between EOF and a valid
8156 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8158 * tests/y4mreader.c:
8159 tests: y4mreader: fix incompatible cast
8160 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
8161 they are dereferenced as a wider long (64 bits, signed). This may lead
8162 to memory corruption.
8164 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
8167 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
8169 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
8172 Automatic update of common submodule
8173 From e8c7a71 to 3fa2c9e
8175 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8177 * gst/vaapi/gstvaapivideocontext.c:
8178 videoconvert: gst_element_post_message() is transfer full on msg
8179 For this reson we need not to unref the message, even if it failed.
8181 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8183 * gst/vaapi/gstvaapivideocontext.c:
8184 Revert "vaapivideocontext: possible memleak when no bus attached"
8185 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
8187 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8189 * tests/elements/test-vaapicontext.c:
8190 test: vaapicontext: process have-context bus message
8192 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8194 * tests/elements/test-vaapicontext.c:
8195 test: vaapicontext: app context is not persistent
8197 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8199 * gst/vaapi/gstvaapipluginbase.c:
8200 * gst/vaapi/gstvaapivideocontext.c:
8201 * gst/vaapi/gstvaapivideocontext.h:
8202 vaapivideocontext: only vaapisink process app context
8203 gst.vaapi.app.Display context is made for applications that will
8204 provide the VA display and the native display to used by the
8205 pipeline, when are using vaapisink as overlay. There are no use
8206 case for encoders, decoders, neither for the postprocessor.
8207 In the case of the vaapisink, it shall query for gst.vaapi.Display
8208 upstream first, and then, if there is no reply,
8209 gst.vaapi.app.Display context will be posted in the bus for the
8210 application. If the application replies, a GstVaapiDisplay object
8211 is instantiated given the context info, otherwise a
8212 GstVaapiDisplay is created with the normal algorithm to guess the
8213 graphics platform. Either way, the instantiated GstVaapiDisplay
8214 is propagated among the pipeline and the have-message bus message.
8215 Also only vaapisink will process the gst.vaapi.app.Display, if
8216 and only if, it doesn't have a display already set. This is
8217 caused because if vaapisink is in a bin (playsink, for example)
8218 the need-context is posted twice, leading to an error state.
8219 https://bugzilla.gnome.org/show_bug.cgi?id=790999
8221 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8223 * gst/vaapi/gstvaapivideocontext.c:
8224 vaapivideocontext: log the name of GstVaapiDisplay
8225 https://bugzilla.gnome.org/show_bug.cgi?id=790999
8227 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8229 * gst/vaapi/gstvaapivideocontext.c:
8230 vaapivideocontext: possible memleak when no bus attached
8231 https://bugzilla.gnome.org/show_bug.cgi?id=790999
8233 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8235 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
8236 libs: window: wayland: remove unused header include
8237 Remove wayland-client.h include since there is no exposed symbols from
8240 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8242 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8243 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8244 libs: encoder: h264,h265: guard rate control's macroblock
8245 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
8247 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
8250 Automatic update of common submodule
8251 From 3f4aa96 to e8c7a71
8253 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8255 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8256 libs: encoder: h264: Add Hierarchical-B encode
8257 Frames are encoded as different layers. Frame in a particular
8258 layer will use pictures in lower or same layer as references.
8259 Which means decoder can drop the frames in upper layer but still
8260 decode lower layer frames.
8261 B-frames, except the one in top most layer, are reference frames.
8262 All the base layer frames are I or P.
8263 eg: with 3 temporal layers
8267 T1, T2, T3: Temporal Layers
8270 T1: I0->P4 , P4->P8 etc..
8272 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
8273 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8274 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8276 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8278 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8279 libs: encoder: h264: Add Hierarchical-P encode
8280 Frames are encoded as different layers. A frame in a particular
8281 layer will use pictures in lower or same layer as references.
8282 Which means decoder can drop the frames in upper layer but still
8283 decode lower layer frames.
8284 eg: with 3 temporal layers
8288 T1, T2, T3: Temporal Layers
8290 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
8291 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8292 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8294 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8296 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8297 libs: encoder: h264: Fix frame_num generation
8298 The frame_num generation was not correctly implemented.
8299 According to h264 spec, frame_num should get incremented
8300 for each frame if previous frame is a referece frame.
8301 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
8302 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8303 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8305 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8307 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8308 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8309 libs: encoder: h264: Add new property "prediction-type"
8310 Adds new property "prediction-type" to select different reference
8311 picture selection modes like hierarchical-p, hierarchical-b etc.
8312 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8313 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8315 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
8317 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8318 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8319 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
8320 Adds some basic building blocks to ease the implementation
8321 of hierarchical prediction modes.
8322 -- add an utility method to find temporal level of each frame
8323 -- define max_ref_frame count based on temporal level count
8324 -- add temporal_level_div[] for finding temporal level each frame
8326 -- find ip_period based on temporal level count
8327 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8328 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8330 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
8332 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8333 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8334 libs: encoder: h264: Add property "temporal-levels"
8335 Adds new property "temporal-levels" to select the number of
8336 temporal levels to be included in the encoded stream.
8337 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8338 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8340 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
8342 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8343 libs: encoder: objects: Add a reference flag
8344 We can have p-frame as non-ref and also b-frame as ref
8345 which are not supported yet. Reference flag
8346 is the first machinery needed for more advanced
8347 reference picture selection modes.
8348 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8349 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8351 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
8353 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8354 libs: surface: egl: add comment
8355 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
8356 where the creation of surfaces from GEM fd may fail.
8357 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8359 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8361 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8362 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
8363 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8364 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
8365 Adds a new function that changes the internal EGL display to the
8366 current one (eglGetCurrentDisplay()) and sets the current context
8367 too (eglGetCurrentContext()).
8368 This new function is called by gst_vaapi_texture_egl_create() updating
8369 the GstVaapiDisplayEGL with the current EGL display.
8370 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8372 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8374 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8375 libs: texture: egl: update EGL display and context
8376 It is required to use the context of the calling thread when wrapping
8377 a foreign texture. According the documentation of
8378 GstVideoGLTextureUploadMeta:
8379 "The caller of gst_video_gl_texture_upload_meta_upload() must
8380 have OpenGL set up and call this from a thread where it is valid
8381 to upload something to an OpenGL texture."
8382 This patch updates the EGL display and context in GstVaapiDisplay
8383 instance to the one used by te renderer that uploads the texture.
8384 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
8385 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8387 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8389 * gst/vaapi/gstvaapipluginbase.c:
8390 plugins: centralize assignation of GL objects
8391 Add plugin_set_gst_gl() where the GstGL objects are assigned.
8392 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8394 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8396 * gst/vaapi/gstvaapipluginbase.c:
8397 plugins: set GL objects if ensured
8398 Only set the GL display and GL other context if they are ensured.
8399 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8401 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8403 * gst/vaapi/gstvaapipluginbase.c:
8404 plugins: set GL objects if context is handled
8405 Only set the GL display and GL other context if they are extracted
8406 correctly from the gstreamer's context.
8407 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8409 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8411 * gst/vaapi/gstvaapipluginbase.c:
8412 plugins: fix memory leak when GL context is created
8413 When the GL display and context are created inside an VAAPI element
8414 the created GL context is leaked.
8415 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8417 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8419 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8420 libs: display: egl: free leaked memory
8421 The EGL VAAPI display forgot to release the egl display, context and
8422 proxied VAAPI display.
8423 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8425 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8427 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8428 libs: texture: egl: code style
8429 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8431 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8433 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8434 libs: surface: egl: error message if no extension
8435 Instead of silently fail to export the image if there is not available
8436 the EGL_MESA_drm_image, log an error message. Also a code refactoring
8438 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8440 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8442 * gst/vaapi/gstvaapipluginbase.c:
8443 plugins: direct rendering on memory:VASurface
8444 As buffers negotiated with memory:VASurface caps feature can also be
8445 mapped, they can also be configured to use VA derived images, in other
8446 words "direct rendering".
8447 Also, because of the changes in dmabuf allocator as default allocator,
8448 the code for configuring the direct rendering was not clear.
8449 This patch cleans up the code and enables direct rendering when the
8450 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
8451 even then the memory:VASurface cap feature is negotiated.
8452 https://bugzilla.gnome.org/show_bug.cgi?id=786054
8454 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8456 * gst/vaapi/gstvaapipluginbase.c:
8457 * gst/vaapi/gstvaapipluginutil.c:
8458 plugins: only dmabuf on srcpad if downstream
8459 Set if source pad can handle dmabuf only if the GstGL context comes
8461 It is possible to know that at two moments:
8462 1\ In the case of GstGLTextureUpload caps feature is negotiated and
8463 downstream pool reports back gst.gl.GstGLContext.
8464 2\ When GstGLContext is found as GstContext from dowstream.
8465 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8467 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8469 * gst/vaapi/gstvaapivideocontext.c:
8470 vaapivideocontext: add inline documentation
8471 Document function gst_vaapi_find_gl_local_context().
8472 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8474 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8476 * gst/vaapi/gstvaapipluginutil.c:
8477 * gst/vaapi/gstvaapivideocontext.c:
8478 * gst/vaapi/gstvaapivideocontext.h:
8479 vaapivideocontext: return the direction of gl context
8480 In function gst_vaapi_find_gl_context() add a direction parameter to
8481 return back the direction where the GstGL context was found.
8482 This is going to be useful when checking if downstream can import
8483 dmabuf-based buffers.
8484 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8486 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8488 * gst/vaapi/gstvaapipluginbase.c:
8489 * gst/vaapi/gstvaapipluginbase.h:
8490 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
8491 This patch refactors the code by adding the function
8492 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
8493 GstGLContext can handle dmabuf-based buffers.
8494 The function is exposed publicly since it is intended to be used later
8495 at GstVaapiDisplay instantiation.
8496 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8498 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
8500 * gst/vaapi/gstvaapiencode.c:
8501 vaapiencode: allow to set property on runtime
8502 Tis patch, allows some properties that we want to be set on
8503 runtime. (eg. bitrate)
8504 Note that all properties are under control by num_codedbuf_queued.
8505 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8507 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
8509 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8510 libs: encoder: allow to set bitrate on runtime
8511 In case of streaming, controlling bitrate dynamically for encoder might be
8512 important to manage quality of the streaming.
8513 This patch is to support such a scenario.
8514 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8516 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
8518 * gst/vaapi/gstvaapi.c:
8519 * gst/vaapi/gstvaapi.h:
8520 * gst/vaapi/gstvaapidecodebin.c:
8521 vaapidecodebin: Register element if no VPP support is available too
8522 VPP support is only needed for advanced deinterlacing, which is not
8523 enabled by default either. Error out if it is selected but VPP is not
8524 supported, and otherwise just work without VPP support.
8525 https://bugzilla.gnome.org/show_bug.cgi?id=788758
8527 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
8529 * gst/vaapi/gstvaapipluginutil.c:
8530 Avoid infinite loop when vaapi_create_display fails
8531 Which might be the case when using, for example, xvfb.
8533 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8535 * gst-libs/gst/vaapi/gstvaapiutils.c:
8536 libs: utils: log warn if display fail
8537 gstreamer-vaapi initializes the display by trial-and-error, thus
8538 logging an error message if the display initialisation fails the user
8539 may be weary of the error message in the screen, if using VA-API 1.0
8540 This commit set the VA error log handler to GStreamer warning level
8541 while calling vaInitialize() and set it to error after that.
8542 https://bugzilla.gnome.org/show_bug.cgi?id=783169
8544 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8546 * gst/vaapi/gstvaapipluginutil.c:
8547 plugins: try to create test display in order
8548 When creating the test display for querying capabilites, it try in
8549 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
8550 since they are either composited with X11 or Wayland.
8551 The reason for this is to reduce the posibility of failure that could
8552 blacklist the plugin.
8553 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8555 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8557 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8558 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8559 libs: display: delay getting screen resolution
8560 Instead of extracting the screen resolution at GstVaapiDisplay
8561 creation, this patch delay it until the screen size is requested for
8563 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8565 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8567 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8568 libs: display: egl: avoid two vaDisplay instantiates
8569 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
8570 or Wayland. Nonetheless it created another vaDisplay for it, instead
8571 of using the wrapped one.
8572 This patch enables the reuse of the wrapped vaDisplay avoiding
8574 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8576 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8578 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8579 * gst-libs/gst/vaapi/gstvaapidisplay.h:
8580 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
8581 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
8582 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
8583 libs: display: remove display_type from display info
8584 Since it's no required to pass the display type in the display info,
8585 the structure member is removed.
8586 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8588 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8590 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8591 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8592 libs: display: remove display_type member
8593 It is not used any more since GstVaapiDisplay was ported as a
8594 GstObject-based. This information is part of the class information.
8595 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8597 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8599 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8600 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8601 libs: display: remove parent member
8602 Parent was a crumb left from display cache.
8603 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8605 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
8607 * gst/vaapi/gstvaapi.c:
8608 vaapi: Also register vaapipostproc without VPP support
8609 It can still do simple deinterlacing then.
8611 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
8613 * gst/vaapi/gstvaapipostproc.c:
8614 vaapipostproc: Allow running without VPP support
8615 We returned FALSE from ::start() if VPP support is not available, but it
8616 is only really needed for complex filters and during transform we check
8617 for that. For simple deinterlacing it is not needed.
8619 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8621 * gst/vaapi/gstvaapipostproc.c:
8622 vaapipostproc: use scoped variable for return value
8623 Instead of reusing a parameter variable for the return value of
8624 gst_vaapipostproc_transform_caps(), this patch uses the function
8625 scoped pointer. Thus, the code is cleaner.
8626 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8628 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8630 * gst/vaapi/gstvaapipostproc.c:
8631 vaapipostproc: removed unused parameter
8632 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
8633 helper function since the it is not used.
8634 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8636 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8638 * gst/vaapi/gstvaapipostproc.c:
8639 vaapipostproc: use scoped variable for return value
8640 Instead of reusing a parameter variable for the return value of
8641 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
8642 pointer. Thus, the code is cleaner.
8643 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8645 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8647 * gst/vaapi/gstvaapipluginutil.h:
8648 plugins: memory:DMABuf only handles planar formats
8649 When glimagesink negotiates the caps feature memory:DMABuf the
8650 exported dmabufs buffers with NV12 format are not well rendered, thus
8651 setting only planar.
8652 https://bugzilla.gnome.org/show_bug.cgi?id=788229
8654 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8656 * gst/vaapi/gstvaapiencode.c:
8657 vaapiencode: flush pending frames before set format
8658 Flush pending frames, if any, in the internal encorder, before setting
8659 the new negotiated format.
8660 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8662 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8664 * gst/vaapi/gstvaapidecode.c:
8665 vaapidecode: drain pending frames before set format
8666 Drain pending frames, if any, in the internal decoder before setting
8667 the new negotiated format.
8668 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8670 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8672 * tests/test-display.c:
8673 tests: display: use GObject getter
8674 Instead of using the gst_vaapi_display_get_property(), this patch
8675 replaces it with g_object_get_property() to dump the available VA
8677 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8679 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8681 * gst/vaapi/gstvaapisink.c:
8682 vaapisink: use GObject setter and getter
8683 Instead of using gst_vaapi_display_set_property() or
8684 gst_vaapi_display_get_property(), this patch set replace it usage
8685 with g_object_set() or g_object_get().
8686 Also the internal helper cb_set_value() is removed since it is not
8688 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8690 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8692 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8693 libs: display: initialize value if they are not yet
8694 This is a difference between the GObject API and the GstVaapi one: the
8695 GValue passed to get a property value, in GObject has to be
8696 initialized with g_value_init(), but in GstVaapi is has not.
8697 In order to overcome this mismatch, this patch call g_value_init()
8698 internally only in the passed one is not already initialized.
8699 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8701 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8703 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8704 libs: display: optimize properties setters and getters
8705 Shuffled some code to avoid to find the properties descriptor in the
8706 array twice, adding the internal functions _set_property() and
8708 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8710 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8712 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8713 libs: display: install properties in class
8714 Install the properties in the class as a normal GObject. Implement
8715 set_property() and get_property() vmethods.
8716 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8718 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8720 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8721 libs: display: remove gst_vaapi_display_properties_init()
8722 Remove gst_vaapi_display_properties_init() since it can be unrolled in
8723 gst_vaapi_display_class_init()
8724 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8726 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8728 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8729 libs: display: remove libgstvaapi_init_once()
8730 It is not required since it can be unrolled in
8731 gst_vaapi_display_class_init()
8732 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8734 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8736 * tests/test-display.c:
8737 tests: test-display: remove display cache tests
8738 Since commit ec3e10f6, display cache was removed. This patch removes
8739 this leftovers in the display test.
8741 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
8743 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8744 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8745 libs: decoder: h264/h265: decode codec data only if opened
8746 Fixes regression introduced by commit 2eb2b26a.
8747 There is a use case when the decoder set the src caps and immediatly
8748 tries to process the media codec_data, this happens before decoder is
8749 even opened, thus priv->parser is not instantiated yet.
8750 https://bugzilla.gnome.org/show_bug.cgi?id=787818
8752 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8754 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8755 * gst-libs/gst/vaapi/gstvaapiencoder.h:
8756 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8757 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8758 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8759 libs: encoder: change mbbrc from uint to enum
8760 Instead of handling the macroblock bitrate control as a integer, this
8761 patch changes it as a enum, which is more self documented in the
8763 https://bugzilla.gnome.org/show_bug.cgi?id=787855
8765 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
8767 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8768 Fix a typo in the prop string for compliance-mode
8770 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8772 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8773 libs: encoder: don't unref properties
8774 This patch fixes a regression introduced in commit 148f867c, since the
8775 props variable is set to object's member variable
8776 encoder->properties. And it is set in the instance initialization,
8777 thus it will not be leaked.
8778 https://bugzilla.gnome.org/show_bug.cgi?id=787733
8780 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
8782 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8783 * gst/vaapi/gstvaapiencode.c:
8784 vaapiencode/libs: encoder: fix leaks of properties
8785 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8787 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8789 * gst-libs/gst/vaapi/gstvaapidecoder.c:
8790 libs: decoder: at update_caps() decode codec_data
8791 When updating the caps in decoder, if the caps has codec_data (avC
8792 format), it has to be parsed to update the state of the decoder.
8793 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8795 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
8797 * gst-libs/gst/vaapi/gstvaapicontext.c:
8798 libs: context: fix wrong counter of the array of attributes
8799 The counter value passed to vaCreateConfig is always +1.
8800 This is a regression caused by commit e42ec3ad.
8801 The present patch fixes wrong counting of the array of attributes.
8802 https://bugzilla.gnome.org/show_bug.cgi?id=787613
8804 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
8806 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8807 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8808 libs: encoder: h265: support I/P/B QP setting seperatedly
8809 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8811 and set slice_qp_delta for each frame according to the value provided.
8812 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8814 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
8816 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8817 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8818 libs: encoder: h264: support I/P/B QP setting seperatedly
8819 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8821 and set slice_qp_delta for each frame according to the value provided.
8822 In addition, remove the limitation of (<= 4) when setting
8824 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8826 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
8828 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8829 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8830 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
8831 Creates new variable for QP for I frame and keep it at configuration and
8832 use this for pic_init_qp and slice_qp_delta setting.
8833 Since changing min qp doesn't make sense, keep min qp as is.
8834 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8836 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
8838 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8839 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8840 libs: encoder: h265: Add mbbrc property
8841 This property supports Macroblock level Bitrate Control as the
8842 following (same as h264 encoder):
8846 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8848 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
8850 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8851 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8852 libs: encoder: h264: Add mbbrc property
8853 This property supports Macroblock level Bitrate Control as the
8858 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8860 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
8862 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8863 libs: encoder: h265: add multi reference support
8864 This is doing the same as h264 encoder as the following:
8865 Using num_ref_frames provided and the result of the Query
8866 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
8867 and perform encoding with multi reference frames as the following:
8868 1\ The num_ref_frames is being considered as the number of
8869 reference picture list0
8870 2\ Encoder adds 1 reference frame more to the reference picture list1
8871 internally if b-frame encoding.
8872 3\ If num_ref_frames is bigger than the number of refrence frames
8873 supported in the driver, it will be lowered.
8874 Also this patch includes:
8875 - Set num_negative_pics and num_positive_pics according to the number of
8877 - Set delta_poc according to the number of refs.
8878 - Increase max_dec_pic_buffering according to the number of refs
8879 - Change max_num_reorder_pics according to num of bframes
8880 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8882 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
8884 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8885 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8886 libs: encoder: h265: add refs property
8887 Users can provide the number of reference frame by this property,
8888 which is exaclty same as h264.
8889 The value of the property will be considered as the number of
8890 reference picture list0 and will add 1 reference frame more to the
8891 reference picture list1 internally if b-frame encoding.
8892 If the value provided is bigger than the number of refrence frames
8893 supported in the driver, it will be lowered.
8894 The maximum value is aligned to the value of the driver supported now.
8895 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8897 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8899 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8900 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8901 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
8902 Follows the specification as below:
8903 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
8904 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
8905 element num_ref_idx_l0_active_minus1 is present for P and B slices and
8906 that the syntax element num_ref_idx_l1_active_minus1 is present for B
8908 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
8909 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
8911 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8913 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
8915 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8916 libs: encoder: h265: keep idr_period equal to keyframe period
8917 Remove FIXME code, which makes previous assignation spurious.
8918 This also means to make idr_period equal to keyframe period,
8919 which is same as h264 encoder.
8920 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8922 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8924 * gst/vaapi/gstvaapipluginbase.c:
8925 Request minimum buffer even if need_pool is FALSE
8926 When tee is used, it will not request a pool, but still it wants to
8927 know how many buffers are required.
8928 https://bugzilla.gnome.org/show_bug.cgi?id=730758
8930 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
8932 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8933 libs: encoder: h264_fei: VA-API 1.0 compat
8934 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
8936 https://bugzilla.gnome.org/show_bug.cgi?id=787322
8937 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
8939 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8941 * gst/vaapi/gstvaapisink.c:
8942 vaapisink: Fix rendering in drm display
8943 Make sure vaapisink create a va surface backed buffer pool and all
8944 required attributes get assigned correctly for drm display type.
8945 This is needed to make the below pipeline working:
8946 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
8947 width=320 height=240 framerate=30/1 ! vaapisink display=drm
8948 https://bugzilla.gnome.org/show_bug.cgi?id=786954
8950 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8952 * tests/Makefile.am:
8953 * tests/test-fei-enc-in.c:
8954 * tests/test-fei-enc-out.c:
8955 FEI: Add test applications to showcase fei use case
8956 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
8958 ./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
8959 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
8961 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
8962 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
8963 from saved files is still not working
8965 Wang, Yi <yi.a.wang@intel.com>
8966 Leilei <leilei.shang@intel.com>
8967 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8968 xiaominc <xiaomin.chen@intel.com>
8969 Li, Jing B <jing.b.li@intel.com>
8970 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8971 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8973 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8975 * gst/vaapi/Makefile.am:
8976 * gst/vaapi/gstvaapi.c:
8977 * gst/vaapi/gstvaapiencode_h264_fei.c:
8978 * gst/vaapi/gstvaapiencode_h264_fei.h:
8979 FEI: plugin: Add vaapih264feienc element
8980 A new FEI based encoder element for h264 is added: vaapih264feienc
8981 FEI is a an extension to VA-API which is providing low level
8982 advanced control over different stages of encoding.
8983 Extending vaapih264enc with fei support is possible, but it will
8984 make the code too much complicated and will be difficult
8985 to debug. So adding the new encoder element, but keeping
8986 the rank as 0 , vaapih264enc will stay as the primary
8987 encoder for normal use cases.
8988 The vaaih264feienc is mainly useful for customers who want to play
8989 with MotionVectors and Macroblock Predictions. Also user can
8990 do one stage of encoding(eg: only the Motion Vector Calculation)
8991 in software and offload trasformation/entroy-coding etc to
8992 Hardware (which is what PAK module is doing) using FEI element.
8993 vaapih264feienc can work in different modes using fei-mode properoty
8994 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
8995 Important Note: ENC only mode won't produce any encoded data which is expected.
8996 But ENC alwys requires the output of PAK in order to do the inter-prediction
8997 over reconstructed frames.
8998 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
8999 upstream element providing those buffers, PAK only won't work as expected.
9000 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
9001 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
9002 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
9003 separately in vaapih264feienc.
9005 Wang, Yi <yi.a.wang@intel.com>
9006 Leilei <leilei.shang@intel.com>
9007 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
9008 xiaominc <xiaomin.chen@intel.com>
9009 Li, Jing B <jing.b.li@intel.com>
9010 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9011 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9012 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9014 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
9016 * gst/vaapi/gstvaapiencode.c:
9017 * gst/vaapi/gstvaapiencode.h:
9018 FEI: plugin: Add virtual methods to base encode
9019 Two new virtual methods are added to gstvaapiencode.
9020 load_control_data(): load the FEI input buffers set by the upstream elements
9021 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
9022 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9023 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9024 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9026 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
9028 * gst/vaapi/Makefile.am:
9029 * gst/vaapi/gstvaapifeivideometa.c:
9030 * gst/vaapi/gstvaapifeivideometa.h:
9031 FEI: plugin: Add fei specific video meta
9032 GstVaapiFeiVideoMeta holds the below fei codec objects:
9033 GstVaapiEncFeiMbCode
9035 GstVaapiEncFeiMvPredictor
9036 GstVaapiEncFeiMbControl
9038 GstVaapiEncFeiDistortion
9039 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9040 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9041 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9043 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9045 * gst-libs/gst/vaapi/Makefile.am:
9046 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
9047 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
9048 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
9049 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
9050 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
9051 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
9052 FEI: libs: Add FEI encoder
9053 Adding FEI encoder to core lib.
9054 The code is splitted into three session:
9055 1: gstvaapiencoder_h264_fei.{h,c}
9056 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
9057 All the modes ENC, PAK and ENC_PAK are running based
9058 the code in these files.
9059 2: gstvaapifeienc_h264.{h,c}
9060 Abstract implementation intended for ENC (only VME) operation.
9061 3: gstvaapifeipak_h264.{h,c}
9062 Abstrct implementation intended for PAK (only the PAK module)
9063 Right now ENC_PAK, ENC and PAK are running based on code
9064 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
9065 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
9066 needed if user request for ENC+PAK mode operation.
9067 ENC+PAK: Here we need to invoke two sequence of
9068 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
9069 first for the ENC only and the second for PAK only.
9070 Each mode associated with separate context ,but same pool of surfaces are
9071 shared between the modes.
9072 This is more useful once we have custom BRC algorithms.
9074 Wang, Yi <yi.a.wang@intel.com>
9075 Leilei <leilei.shang@intel.com>
9076 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
9077 xiaominc <xiaomin.chen@intel.com>
9078 Li, Jing B <jing.b.li@intel.com>
9079 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9080 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9082 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9084 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
9085 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
9086 FEI: libs: Add fei codec objects to GstVaapiEncPicture
9087 All the codec objects(vaapi buffers) supposed to be
9088 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
9089 for each frame, follow the same design for FEI too.
9090 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9091 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9093 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9095 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
9096 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
9097 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
9098 FEI: libs: Add fei codec objects in codedbufferproxy
9099 MbCode, MV and Distortion buffers (fei codec objects)
9100 can be treated as output of different fei modes based user request.
9101 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
9102 can be dumped as output in ENC_PAK mode for analysis purpose.
9103 So treating them as a part of CodedBufferProxy too.
9104 Here we avoided Qp, MbControl and MvPredictor codec objects since
9105 there is no practical use case of treating them as "output buffers".
9107 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
9108 xiaominc <xiaomin.chen@intel.com>
9109 Leilei <leilei.shang@intel.com>
9110 Li, Jing B <jing.b.li@intel.com>
9111 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9112 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9114 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9116 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
9117 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
9118 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
9119 FEI: libs: Add fei codec objects to surface proxy
9120 Add fei codec objects to surface proxy since handling the
9121 fei buffers(codec objects here) external to gstvaapisurfaceproxy
9122 will make the code complicated. Especially considering the behavior
9123 of encoder where the input frame order from upstream and output
9124 frame order to the downstream are not sequential.
9126 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
9127 xiaominc <xiaomin.chen@intel.com>
9128 Leilei <leilei.shang@intel.com>
9129 Li, Jing B <jing.b.li@intel.com>
9130 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9131 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9133 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9135 * gst-libs/gst/vaapi/Makefile.am:
9136 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
9137 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
9138 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
9139 FEI: Add codec objects for fei usecase
9140 There are 6 new va buffer types, each defined as a specific codec object.
9141 Borrowed the code from gstvaapicodecobject , but made a clear separation
9142 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
9143 feicodecobjects can be shared between elements and also can be accessed
9144 from different thread.
9145 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
9146 object is not shared between elements.So we utilize the already
9147 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
9148 in gstvaapfei_objects_priv.h in order to have a better
9151 -- Probably we need _locked_map() and _unlocked_map()
9152 -- Context can be associated with PreEnc(not just Enoder)
9153 once we have the proper support inplace, but for now we don't have
9154 PreEnc support, so should be safe enough to use GstVaapiEncoder.
9155 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9156 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9158 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9160 * gst-libs/gst/vaapi/Makefile.am:
9161 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
9162 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
9163 FEI: libs: add H264 fei specific utility functions
9164 Added enum/flag type definitions for a number of FEI
9165 input and output parameters.
9166 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
9167 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9168 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9169 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
9170 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9172 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9174 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9175 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9176 FEI: libs: Add virtual method for secondary context creation.
9177 Add a new vitrual method ensure_secondary_context to the
9178 base encoder which is only required for the FEI entrypoint, that too
9179 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
9180 supported directly by libva or driver, but this can be enabled
9181 from the middleware.
9182 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
9183 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
9184 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
9185 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9186 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9187 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9189 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9191 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9192 FEI: libs: make sure the default context creation works as expected.
9193 Current code always guess the entrypoint during init phase in case
9194 if there is no entrypoint already configured in GstVaapiContextInfo.
9195 Make sure FEI Entrypoint is not messing up with this logic.
9196 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9197 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9199 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9201 * gst-libs/gst/vaapi/gstvaapicontext.c:
9202 * gst-libs/gst/vaapi/gstvaapicontext.h:
9203 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9204 FEI: libs: Add FEI functional mode configuration
9205 FEI Entrypoint can work in either one of the 3 different modes:
9206 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
9207 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
9208 functioal mode configuration.
9209 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9210 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9212 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9214 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9215 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9216 * gst-libs/gst/vaapi/gstvaapiprofile.h:
9217 FEI: libs: Add FEI Entrypoint mapping
9218 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
9219 for VAEntrypointFEI.
9220 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9221 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9223 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9226 FEI: Add support for FEI conditional build
9227 FEI(Flexible Encoding Infrastructure) is an extension
9228 to VA API. Define USE_H264_FEI_ENCODER based on
9229 fei header file and required structures availability.
9230 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9231 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9233 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
9235 * gst/vaapi/gstvaapidecode.c:
9236 vaapidecode: force add h264 SVC profiles in caps
9237 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
9239 https://bugzilla.gnome.org/show_bug.cgi?id=732266
9240 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9242 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
9244 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9245 libs: decoder: h264: decode SVC base layer only
9246 Drops non-base NALs when the base-only property is set to TRUE.
9247 This modifies the behavior for MVC streams with base-only too: All the
9248 non-base units are dropped before they are decoded instead of dropping
9249 the non-base frames.
9250 The relevant part from the H264 spec is:
9251 > Decoders that conform to one or more of the profiles specified in
9252 Annex A rather than the profiles specified in Annexes G or H shall
9253 ignore (remove from the bitstream and discard) the contents of all NAL
9254 units with nal_unit_type equal to 14, 15, or 20.
9255 To eliminate side effects from the offending units:
9256 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
9258 - The NAL parsing is skipped and their flags are set to
9259 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
9260 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
9261 use them even if they are flagged to be skipped. Subset SPS's and slice
9262 extension units are not stored there either.
9263 https://bugzilla.gnome.org/show_bug.cgi?id=732266
9264 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9266 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
9268 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9269 libs: decoder: h264: check nalu validity in parser info finalize
9270 https://bugzilla.gnome.org/show_bug.cgi?id=732266
9271 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9273 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9275 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9276 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9277 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9278 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9279 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9280 libs: encoder: remove unused cast macro
9281 Remove internal macro to cast structure that are already declared
9284 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9286 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9287 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
9288 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
9289 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
9290 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
9291 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9292 Revert "libs: encoders: remove unused cast macros"
9293 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
9295 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9297 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9298 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
9299 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
9300 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
9301 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
9302 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9303 libs: encoders: remove unused cast macros
9304 They are only used inside the code, where another macro is defined.
9305 Thus these exported macros have no use.
9307 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9309 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9310 libs: decoder: h264: improve code-style
9311 https://bugzilla.gnome.org/show_bug.cgi?id=786173
9313 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9315 * gst-libs/gst/vaapi/gstvaapicompat.h:
9316 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9317 libs: encoder: h264: handle deprecated enum
9318 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
9319 instead VAEncPackedHeaderRawData should be used.
9320 This patch creates a compatibility symbol,
9321 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
9323 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9325 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9327 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9328 * gst-libs/gst/vaapi/gstvaapiutils.c:
9329 libs: guard deprecated symbols
9330 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
9331 guards the H.264 baseline usage. Consider this commit as a
9332 continuation of commit e0e0a474
9333 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9335 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9339 * meson_options.txt:
9340 Revert "build: check for libva-2.0"
9341 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
9342 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9344 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9346 * gst-libs/gst/vaapi/gstvaapicompat.h:
9347 * gst-libs/gst/vaapi/gstvaapicontext.c:
9348 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9349 libs: macro to get a renamed value in VA-API 1.0
9350 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
9351 renamed one member from roi_value_is_qp_delat to
9352 roi_value_is_qp_delta, which is the correct name.
9353 In order to keep back compatibility a macro has added to access this
9355 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9357 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9359 * gst/vaapi/gstvaapipluginbase.h:
9360 * gst/vaapi/gstvaapipluginutil.c:
9361 plugins: include main gstgl header
9362 Instead including particular gstgl header files in a header file
9363 that doesn't export a gstgl symbol, the main gstgl header file is
9364 included in gstvaapipluginutil.c where the symbols are used.
9365 https://bugzilla.gnome.org/show_bug.cgi?id=786597
9367 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9369 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9370 libs: encoder: h264: fix enum namespace
9372 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
9375 Automatic update of common submodule
9376 From 48a5d85 to 3f4aa96
9378 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9380 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9381 libs: encoder: h264: remove spurious assignation
9383 An assigned value that is never used may represent unnecessary
9384 computation, an incorrect algorithm, or possibly the need for cleanup
9386 ip_period is assigned first to be rewritter inmediatly after. The
9387 first assignation is spurious.
9389 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
9391 * gst/vaapi/gstvaapidecode.c:
9392 vaapidecode: fix mismatch of the return type
9393 https://bugzilla.gnome.org/show_bug.cgi?id=786307
9395 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9397 * gst-libs/gst/vaapi/Makefile.am:
9398 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
9399 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
9400 * gst-libs/gst/vaapi/gstvaapiutils.h:
9401 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
9402 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9403 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9404 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9405 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
9406 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
9407 * gst-libs/gst/vaapi/meson.build:
9408 libs: remove unused header
9409 Since libgstvaapi is not distributed, there is no need to check for
9410 private header inclusion. Thus removing it.
9411 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9413 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9415 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9416 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9417 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9418 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9419 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9420 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9421 libs: utils: move gstvaapisurface.h to private headers
9422 Since the utils don't expose API defined in gstvaapisource.h, it is
9423 moved to their private headers where they are used.
9424 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9426 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9428 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9429 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9430 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9431 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9432 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
9433 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9434 libs: utils: remove va.h include in header
9435 And include gstvaapicompat.h in the C files, since the VA-API is not
9436 exposed in the headers.
9437 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9439 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9441 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9442 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9443 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9444 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9445 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9446 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9447 libs: encoder: remove va.h include
9448 Since it is already managed by gstvaapicompat.h
9449 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9451 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9453 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
9454 * gst-libs/gst/vaapi/gstvaapicompat.h:
9455 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9456 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9457 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9458 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9459 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9460 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9461 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9462 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9463 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9464 * gst-libs/gst/vaapi/gstvaapifilter.c:
9465 * gst-libs/gst/vaapi/gstvaapiutils.c:
9467 build: consolidate the VA sub API includes
9468 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
9469 since they are all already included in va.h after VA-API 0.38.
9470 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9472 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9476 build: check for va_vpp.h
9477 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
9478 allow us to handle the inclusion of the header better.
9479 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9481 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
9484 meson: don't export symbols by default
9485 Only plugin entry points should be exported.
9487 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9489 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9490 libs: decoder: h265: remove spurious code
9492 Logically dead code: The indicated dead code may have performed some
9493 action; that action will never occur.
9494 By using pointer arithmetic is impossible to get NULL.
9496 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9498 * gst-libs/gst/vaapi/gstvaapicontext.c:
9499 libs: context: use attribs index instead pointers
9501 Out-of-bounds write. This could cause an immediate crash or incorrect
9503 Coverity basically found that it is possible to assign more than 4
9504 attribs in the array.
9505 In my opinion this was produced because code pattern used pointer
9506 arithmetic, which is not readable nor maintainable.
9507 This patch refactors config_create() to use an array index rather than
9508 pointer arithmetic. Also a run-time check for index size was added.
9510 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9512 * gst/vaapi/gstvaapiencode_h264.c:
9513 vaapiencode: h264: remove spurious code
9515 An unsigned value can never be negative, so this test will always
9516 evaluate the same way.
9517 As len is guint32, there is no need to check it if it is equal or
9520 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9522 * gst/vaapi/gstvaapidecode.c:
9523 vaapidecode: initialize variable
9525 The variable will contain an arbitrary value left from earlier
9527 Variable base_only is fetched from base-only property, and it may be
9528 not assigned. It needs to be initialized.
9530 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9532 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9533 libs: windows: wayland: fail if cannot remove last frame
9535 If the function returns an error value, the error value may be
9536 mistaken for a normal value.
9537 If g_atomic_pointer_compare_and_exchange() fails because the frame is
9538 not the last one, the function fails. Thus, logging an info message.
9540 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9542 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9543 libs: utils: glx: check return value
9545 If the function returns an error value, the error value may be
9546 mistaken for a normal value.
9547 Function sscanf returns the number of assignations done. Validate this
9548 return value with the number of expected variables to match.
9550 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9552 * gst-libs/gst/vaapi/gstvaapiobject.c:
9553 libs: vaapi: object: remove unrequired NULL check
9555 Dereference after null check: Either the check against null is
9556 unnecessary, or there may be a null pointer dereference.
9557 Variable klass has been validated as non-NULL several time before in
9558 gst_vaapi_object_new() function, so there is no need to check it
9561 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9563 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9564 libs: encoder: h265: remove spurious assignation
9566 An assigned value that is never used may represent unnecessary
9567 computation, an incorrect algorithm, or possibly the need for cleanup
9569 ip_period is assigned first to be rewritter inmediatly after. The
9570 first assignation is spurious.
9572 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9574 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9575 libs: encoder: h264: fix copy & paste error
9577 The copied code will not have its intended effect.
9578 This is a bug from commit cdaf15b2, where the intention is to
9579 initialize RefPicList1 while setting RefPicList0.
9581 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9583 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9584 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9585 libs: encoder: h265: fix possible integer overflow
9587 Unintentional integer overflow. The expression's value may not be what
9588 the programmer intended, because the expression is evaluated using a
9589 narrow (i.e. few bits) integer type.
9590 Cast operator to guint64 before computation to avoid narrowing.
9593 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9595 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9596 libs: decoder: mpeg4: fail if return value is not OK
9598 An assigned value that is never used may represent unnecessary
9599 computation, an incorrect algorithm, or possibly the need for cleanup
9601 In the return value of decode_slice() or
9602 gst_mpeg4_parse_video_packet_header() are not success, thus fail
9603 decode_packet() function.
9605 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9607 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9608 libs: decoder: h265: check for null
9610 Dereference after null check: Either the check against null is
9611 unnecessary, or there may be a null pointer dereference.
9612 While looking for hte lowest poc, according to rest of the code, the
9613 picture in the dbp (decoded picture buffer) might be NULL, thus we
9614 could check for a NULL picture before assigned as found.
9615 Also, split a comma operator because it is considered as a bad
9616 practice because it possible side effects.
9618 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9620 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9621 libs: decoder: h265: untaint loop control variable
9623 Scalars (for example, integers) are not properly
9624 bounds-checked (sanitized) before being used as array or pointer
9625 indexes, loop boundaries, or function arguments are considered as
9627 In this case, num_nals were not checked before used as loop control.
9629 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9631 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9632 libs: decoder: h264: remove unrequired NULL check
9634 Dereference after null check: Either the check against null is
9635 unnecessary, or there may be a null pointer dereference.
9636 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
9637 prev_picture could be NULL, that's why the code did a null check. But,
9638 since commit 52adebe7, the previous reference frames are tracked, thus
9639 there is no need to check null anymore.
9641 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
9643 * gst/vaapi/gstvaapidecode.c:
9644 vaapidecode: fix gst_caps_new_simple call
9645 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9647 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
9649 * gst/vaapi/gstvaapidecode.c:
9650 vaapidecode: force add h264 MVC profiles in caps
9651 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
9653 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9655 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
9657 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9658 libs: decoder: h264: decode MVC base view only
9659 If processed SPS has mvc profile and the configuration is set to
9660 base-only, the frame is drop.
9661 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9663 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
9665 * gst/vaapi/gstvaapidecode.c:
9666 * gst/vaapi/gstvaapidecode_props.c:
9667 vaapidecode: set h264 base-only to decoder
9668 Set the base-only value when property is set and the internal
9669 decoder is already instantiated or when the internal decoder
9671 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9673 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
9675 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9676 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9677 libs: decoder: h264: add setter for base-only mode
9678 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9680 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
9682 * gst/vaapi/gstvaapidecode_props.c:
9683 * gst/vaapi/gstvaapidecode_props.h:
9684 vaapidecode_props: h264: add base-only property
9685 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9687 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9689 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9690 libs: encoder: h264: missing property enum documentation
9692 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
9694 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9695 libs: encoder: h264: add multi reference support
9696 Using num_ref_frames provided and the result of the Query
9697 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
9698 and perform encoding with multi reference frames as the following:
9699 1\ The num_ref_frames is being considered as the number of
9700 reference picture list0
9701 2\ Encoder adds 1 reference frame more to the reference picture list1
9702 internally if b-frame encoding.
9703 3\ If num_ref_frames is bigger than the number of refrence frames
9704 supported in the driver, it will be lowered.
9705 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9707 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
9709 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9710 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9711 libs: encoder: h264: add refs property
9712 Users can provide the number of reference frame by this property.
9713 The value of the property will be considered as the number of
9714 reference picture list0 and will add 1 reference frame more to the
9715 reference picture list1 internally if b-frame encoding.
9716 If the value provided is bigger than the number of refrence frames
9717 supported in the driver, it will be lowered.
9718 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9720 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
9722 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9723 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9724 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
9725 This function will query VAConfigAttribEncMaxRefFrames to get the
9726 maximum number of reference frames supported in the driver.
9727 This will be used for h264/h265 encoding.
9728 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9730 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9732 * gst/vaapi/gstvaapiencode_h265.c:
9733 vaapiencode: h265: compare an unsigned int if not zero
9734 An unsigned value can never be negative, so this test (greater than
9735 zero) will always evaluate the same way. Thus change it to just if
9738 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9740 * gst/vaapi/gstvaapipluginbase.c:
9741 plugins: check gst_gl_ensure_element_data() return value
9742 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
9743 the return value of gst_gl_ensure_element_data(). The result is a code
9746 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9748 * gst/vaapi/gstvaapipluginutil.c:
9749 plugins: avoid dead code detection
9750 By using #elif macro, the static code analysis would stop to detect
9751 these lines as dead code. Also it is inforced the mutually exclusive
9754 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9756 * gst/vaapi/gstvaapivideobufferpool.c:
9757 vaapivideobufferpool: don't shift by negative since it's undefined
9758 The function g_bit_nth_lsf() may return -1 if the request bit position
9759 is not avaible. Thus, this patch check if the return value is not -1
9760 in order to continue.
9762 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9764 * gst/vaapi/gstvaapisink.c:
9765 vaapisink: fix memory leak
9767 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9769 * gst/vaapi/gstvaapipostprocutil.c:
9770 vaapipostproc: fix memory leaks
9772 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
9774 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9775 libs: display: when appending formats change pointers to indexes
9776 Thus, it fixes an invalid read when YV12 or I420 are not supported by
9778 https://bugzilla.gnome.org/show_bug.cgi?id=785085
9780 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9782 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9783 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9784 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
9785 Added a new property "compliance-mode", which default is the normal
9786 strict compliant mode.
9787 The second mode, "restrict-buf-alloc", is to limit the coded buffer
9788 allocation size to improve performance in some specific Intel
9789 platforms (there is asignificant performance improvement in parallel
9790 encodings). Under this new mode, we use the MinCR field in A.3.1 for
9791 pre-calculating the coded-buffer size.
9792 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9794 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9796 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9797 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9798 libs: utils_h264: Extend LevelLimit table with MinCR field
9799 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
9801 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9803 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9805 * gst-libs/gst/vaapi/gstvaapiutils.c:
9806 libs: utils: libva 1.0 changed the logging
9807 The logging mechanism in libva has changed it's functions
9808 signatures. This patch updates that for libva versions >= 1.0
9809 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9811 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9813 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9814 libs: decoder: h264: libva 1.0 deprecated baseline
9815 libva 1.0 deprecated H.264 baseline profile and FMO support
9817 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9819 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9823 * meson_options.txt:
9824 build: check for libva-2.0
9825 Check for libva-2.0 since libva's developers decided to increase the
9826 library's version number.
9827 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9829 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9833 build: blacklist only libva 0.99.0
9834 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
9835 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
9837 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9839 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9841 * gst-libs/gst/vaapi/meson.build:
9842 build: meson: remove gstvaapidisplaycache.c
9843 This is a missing bit of commit ec3e10f6
9845 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
9848 configure: do not break configure if gtk+-3.0 devel missing
9849 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
9850 set USE_GTK=0 if gtk+-3.0 is not available.
9851 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
9852 Author: Hyunjun Ko <zzoon@igalia.com>
9853 Date: Wed Jul 5 15:59:43 2017 +0900
9854 tests: elements: add testsuite of vaapi context
9855 ...configure fails if gtk+-3.0 development files are missing.
9856 The "with_gtk" option defaults to "check" in configure.ac
9857 which implies that if it is not explicitly requested then
9858 configure will only enable it if it's available on the system.
9859 However, the PKG_CHECK_MODULES rule that get's activated on
9860 "check" condition did not provide default when gtk+-3.0 devel
9861 packages are not found on the system. Thus, it resulted in
9863 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
9864 https://bugzilla.gnome.org/show_bug.cgi?id=785452
9866 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9869 * tests/elements/Makefile.am:
9870 * tests/elements/test-vaapicontext.c:
9871 tests: elements: add testsuite of vaapi context
9872 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9873 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9875 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9877 * gst/vaapi/gstvaapisink.c:
9878 vaapisink: fail if surface display is different
9879 Replacing GstVaapiDisplay during rendering might be hiding problems
9880 at some cases, even though it's safe currently since we use cache
9882 Play safe by failing if this happens.
9883 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9885 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
9887 * gst/vaapi/gstvaapivideocontext.c:
9888 * gst/vaapi/gstvaapivideocontext.h:
9889 videocontext: support "gst.vaapi.app.Display" context
9890 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
9891 and native display of their backend.
9893 - display : pointer of VADisplay
9894 - x11-display : pointer of X11 display (Display *), if they're using.
9895 This patch creates GstVaapidisplayX11 if information provided through
9896 "gst.vaapi.app.Display"
9897 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9899 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
9901 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9902 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
9903 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
9904 Implements new API function so that users could create GstVaapiDisplay
9905 with their own VADisplay within a native display as backend.
9906 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9908 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
9910 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9911 libs: display: pass display info when foreign display
9912 When creating a GstVaapiDisplay using a foreign VADisplay, and render
9913 with that display, it also requires native display of the backend.
9914 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9916 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9918 * gst-libs/gst/vaapi/Makefile.am:
9919 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9920 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9921 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
9922 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9923 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9924 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
9925 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
9926 libs: display: remove cache
9927 Remove a bunch of code that handles the VADisplay cache, since the
9928 context sharing should be doing this correctly.
9929 https://bugzilla.gnome.org/show_bug.cgi?id=747946
9931 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
9933 * tests/elements/Makefile.am:
9934 * tests/elements/test-vaapipostproc.c:
9935 tests: elements: add test for vaapipostproc
9936 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9938 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
9940 * gst/vaapi/gstvaapipostproc.c:
9941 postproc: reconfigure when width or height changes
9942 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9944 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9946 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9947 libs: encoder: vp9: array terminated in zeros
9948 There is a crash when setting ref-pic-mode since the #GEnumValue
9949 array is not terminated with a structured with all memvers being
9951 https://bugzilla.gnome.org/show_bug.cgi?id=785032
9953 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9955 * gst/vaapi/gstvaapiencode_h264.c:
9956 vaapiencode: h264: add plugin documentation
9957 Comment how the profile is set and other parameters.
9959 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
9961 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9962 libs: decoder: h264: push frames as soon as possible
9963 Push frames downstream as soon as possible instead of waiting until
9964 they are ejected from the DPB.
9965 This patch makes the decoder not comply with the H.264 specification,
9966 but it is required for some video cameras.
9967 https://bugzilla.gnome.org/show_bug.cgi?id=762509
9968 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9970 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9972 * gst/vaapi/gstvaapidecode_props.c:
9973 vaapidecode_props: h264: set low-latency in decoder
9974 Set the low-latency property if the H264 decoder is already
9975 instantiated, thus you could change the behavior in run-time.
9976 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9978 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9980 * gst/vaapi/gstvaapidecode.c:
9981 vaapidecode: set h264 low latency to decoder
9982 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9984 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9986 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9987 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9988 libs: decoder: h264: add getter/setter for low latency mode
9989 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9991 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9993 * gst/vaapi/gstvaapidecode_props.c:
9994 * gst/vaapi/gstvaapidecode_props.h:
9995 vaapidecode_props: h264: add low latency property
9996 Adding support for private data.
9997 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9999 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10001 * gst/vaapi/Makefile.am:
10002 * gst/vaapi/gstvaapidecode.c:
10003 * gst/vaapi/gstvaapidecode_props.c:
10004 * gst/vaapi/gstvaapidecode_props.h:
10005 * gst/vaapi/meson.build:
10006 vaapidecode_props: add skeleton for h264 decoder properties
10007 https://bugzilla.gnome.org/show_bug.cgi?id=783588
10009 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10011 * gst/vaapi/gstvaapidecode.c:
10012 vaapidecode: properties callback in decoders map
10013 https://bugzilla.gnome.org/show_bug.cgi?id=783588
10015 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
10018 meson: find python3 via python3 module
10019 https://bugzilla.gnome.org/show_bug.cgi?id=783198
10021 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
10023 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10024 libs: encoder: h264: submit sps in case of IDR picture
10025 If the picture is IDR, also submit a SPS header.
10026 This means when frame number reaches to keyframe-period or an force
10027 key unit event arrives, we insert SPS/PPS again.
10028 https://bugzilla.gnome.org/show_bug.cgi?id=776712
10030 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
10032 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10033 libs: encoder: h264: set the frame as IDR if forced key unit
10034 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
10035 the `frame-lost` event in the case of streaming, such as RTP.
10036 In case of this event, it is needed to start new GOP rather than just
10037 produce an I-frame.
10038 https://bugzilla.gnome.org/show_bug.cgi?id=776712
10040 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10042 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10043 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
10044 libs: encoder: h264: insert AU delimiter
10045 Insert an AUD as the first NAL of each encoded frame.
10046 Some applications require Access Unit Delimiter for decoding the
10048 The AU delimeter insertion is done only when the aud parameter is
10049 TRUE (by default is disabled). The reason of this it is because this
10050 header is only available from Intel Gen9 and the VA intel driver
10051 should be 1.8 or superior. Otherwise, the output will be corrupted.
10052 https://bugzilla.gnome.org/show_bug.cgi?id=776712
10053 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
10055 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10057 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10058 libs: encoder: h264: initialize all elements of view_ids
10059 Currently when num_views is changed by multiview-mode on sink caps, it produces
10060 wrong MVC encoded stream since the array view_ids is not set properly according
10061 to changed num_views.
10062 So this patch initializes all of the array sequentially to handle this case.
10063 Side effect is not going to happen by this patch since this array is being
10064 handled by num_views.
10065 https://bugzilla.gnome.org/show_bug.cgi?id=784321
10067 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
10069 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10070 Revert "encoder: h264: Use high profile by default"
10071 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
10072 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10074 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10076 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10077 libs: encoder: h264: set profile via capsfilter
10078 Until now, the encoder ignored the profile in src caps and chose one
10079 according with the given parameters. But the encoder must honor the
10080 profile specifed in src caps.
10081 This patch do that, and if the encoder needs to choose the profile,
10082 it will do it by following these rules:
10083 1\ If given parameters are not compatible with given profile, the
10084 encoder will bail out with an error.
10085 2\ The encoder will choose the higher profile indicated in the
10087 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10089 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
10091 * gst/vaapi/gstvaapiencode_h264.c:
10092 vaapiencode: h264: set profile to src caps
10093 So far vaapi encoder does not set profile to src caps. This patch makes it
10094 setting profile to src caps, which is determined by itself.
10095 In addition, if encoder chose different profile, which is not negotiated with
10096 downstream, we should set compatible profile to make negotiation working.
10097 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10099 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10101 * gst/vaapi/gstvaapiencode_h264.c:
10102 * gst/vaapi/gstvaapiencode_h264.h:
10103 vaapiencode: h264: verify if requested profile is supported
10104 Check if the requested profile in source caps, is supported by the
10105 VA driver. If it is not, an info log message is send saying that
10106 another (compatible?) profile will be used.
10107 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10109 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10111 * gst/vaapi/gstvaapiencode_h264.c:
10112 vaapiencode: h264: improve set_config() vmethod
10113 First check if downstream requests ANY caps. If so, byte-stream is
10114 used and the profile will be choose by the encoder. If dowstream
10115 requests EMPTY caps, the negotiation will fail.
10116 Lately, byte-stream and profile are looked in the allowed caps.
10117 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10119 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10121 * gst/vaapi/gstvaapiencode_h264.c:
10122 vaapiencode: h264: check for avc in set_config()
10123 The check for avc stream format was done in the vaapi encoder's
10124 vmethod get_caps(), but that is wrong since it has to be check
10125 when encoder set_format().
10126 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10128 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10130 * gst/vaapi/gstvaapipostprocutil.c:
10131 vaapipostproc: set multivew-mode flags to src caps
10132 vaapipostproc didn't negotiate the proper multiview caps losing
10133 downstream information.
10134 This patch enables the playing of MVC encoded stream by setting
10135 the proper multiview mode/flags and views to src caps, according
10137 https://bugzilla.gnome.org/show_bug.cgi?id=784320
10139 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
10141 * gst/vaapi/gstvaapipostproc.c:
10142 vaapipostproc: add support for DMABuf caps feature
10143 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10144 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
10146 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10148 * gst/vaapi/gstvaapidecode.c:
10149 vaapidecode: add support for DMABuf caps feature
10150 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10151 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
10153 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10155 * gst/vaapi/gstvaapipluginbase.c:
10156 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
10157 Instantiate all dmabuf allocator for src pad buffer pool if the
10158 src caps ask for memory:DMABuf feature.
10159 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10161 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
10163 * gst/vaapi/gstvaapipluginutil.c:
10164 * gst/vaapi/gstvaapipluginutil.h:
10165 vaapipluginutil: add support for DMABuf caps feature
10166 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10167 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
10168 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
10169 vaapipluginutil: add support for DMABuf caps feature
10171 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10173 * gst/vaapi/gstvaapipluginbase.c:
10174 vaapipluginbase: dmabuf memory map trial for raw caps
10175 Only push dmabuf-based buffers with raw caps if gst_memory_map()
10176 succeeds. Otherwise, use the the vaapi surfaces allocator.
10177 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10178 https://bugzilla.gnome.org/show_bug.cgi?id=774649
10179 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
10181 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10183 * gst/vaapi/gstvaapivideomemory.c:
10184 * gst/vaapi/gstvaapivideomemory.h:
10185 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
10186 This new method checks the specified allocator can create GstMemory that can
10188 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10190 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10192 * gst/vaapi/gstvaapivideobufferpool.c:
10193 vaapivideobufferpool: fix regression with video metas
10194 There is another regression with 7a206923 when setting the video
10195 info for the video meta, it should be the one from the image's
10196 allocator rather from the allocation caps.
10198 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
10199 ! tee ! videoconvert ! videoscale \
10200 ! video/x-raw, width=1920, height=1080 ! xvimagesink
10202 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10204 * gst/vaapi/gstvaapipluginbase.c:
10205 * gst/vaapi/gstvaapivideobufferpool.c:
10206 plugins: update buffer size with the one reported by allocator
10207 There is a regression in 7a206923, since the buffer pool ditches all
10208 the buffers generated by them because the pool config size is
10209 different of the buffer's size.
10211 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
10212 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
10213 --gst-debug=GST_PERFORMANCE:5
10214 The allocator may update the buffer size according to the VA surface
10215 properties. In order to do this, the video info is modified when the
10216 allocator is created, which reports through the allocation info the
10217 updated size, and set it to the pool config.
10219 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
10221 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10222 libs: decoder: h264: initialize active_sps/pps in reset
10223 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
10224 they introduced regression in seek.
10225 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
10226 But since the commits landed, it doesn't drop P-frame and does try to
10227 decode it continuously because active_sps is still alive. See ensure_sps function.
10228 But there are prev_frames and prev_ref_frames reset already, then it
10230 So it's necessary to reset active_sps/pps also in reset method.
10231 https://bugzilla.gnome.org/show_bug.cgi?id=783726
10233 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10235 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10236 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10237 libs: encoder: fix compilation with old versions of libva
10238 There are some symbols that are not used when compiling with old
10239 version of libva and those generates a compilation error.
10240 Original-patch-by: Matt Staples <staples255@gmail.com>
10242 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10244 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10245 libs: encoder: Fix the quality level clamping
10246 Change the hard-coded range of quality-level from {1-8} to {1-7},
10247 since it is the range Intel Open source driver supports.
10248 Also perform the range clamping only if the user provided
10249 quality-level is greater than the max-range suppored by the driver,
10250 because there could be non-intel drivers giving lower value than
10251 the hard-coded max value 7.
10252 https://bugzilla.gnome.org/show_bug.cgi?id=783567
10254 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10256 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10257 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10258 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
10259 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10260 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10261 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10262 libs: encoder: log out the name of the profile
10263 Instead of printing a number, it is more readable to log out, in
10264 case of error, the name of the failing profile.
10266 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
10268 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10269 libs: encoder: h264: changes raw number of profile to macro name of its
10270 Changes raw number of profile to macro name of its to improve readability.
10271 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10273 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10275 * gst/vaapi/gstvaapivideobufferpool.c:
10276 vaapivideobufferpool: remove allocation_vinfo private attribute
10277 There is no need to keep this attribute internally since it is
10278 already managed by the allocator.
10279 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10281 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10283 * gst/vaapi/gstvaapivideobufferpool.c:
10284 vaapivideobufferpool: refactor set_config()
10285 Refactor the set_config() virtual method considering a cleaner
10286 approach to allocator instanciation, if it it not set or if it is
10287 not valid for the pool.
10288 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10290 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10292 * gst/vaapi/gstvaapipluginbase.c:
10293 * gst/vaapi/gstvaapivideobufferpool.c:
10294 * gst/vaapi/gstvaapivideomemory.c:
10295 * gst/vaapi/gstvaapivideomemory.h:
10296 plugins: distinguish allocation and negotiation caps
10297 The vaapi video decoders might have different allocation caps from
10298 the negotiation caps, thus the GstVideoMeta shall use the negotiation
10299 caps, not the allocation caps.
10300 This was done before reusing gst_allocator_get_vaapi_video_info(),
10301 storing there the negotiation caps if they differ from the allocation
10302 ones, but this strategy felt short when the allocator had to be reset
10303 in the vaapi buffer pool, since we need both.
10304 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
10305 gst_allocator_get_vaapi_negotiated_video_info() to store the
10306 negotiated video info in the allocator, and distinguish it from
10307 the allocation video info.
10308 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10310 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10312 * gst/vaapi/gstvaapivideomemory.c:
10313 * gst/vaapi/gstvaapivideomemory.h:
10314 vaapivideomemory: rename qdata quarks and ids
10315 Also the parameter names were renamed to reflect their origin
10317 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10319 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10321 * gst/vaapi/gstvaapivideobufferpool.c:
10322 vaapivideobufferpool: rename local variables
10323 Renamed local video info structure names in set_config() vitual
10324 method. The purpose of their renaming is to clarify the origin
10325 of those structures, whether come from passed caps parameter
10326 (new_allocation_vinfo) or from the configured allocator
10328 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10330 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10332 * gst/vaapi/gstvaapivideobufferpool.c:
10333 vaapivideobufferpool: rename video info structures
10334 Renamed private GstVideoInfo structure video_info to allocation_vinfo
10335 and alloc_info to negotiated_vinfo.
10336 The purpose of these renaming is to clarify the origin and purpose of
10337 these private variables:
10338 video_info (now allocation_vinfo) comes from the bufferpool
10339 configuration. It describes the physical video resolution to be
10340 allocated by the allocator, which may be different from the
10342 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
10343 the pipeline. It represents how the frame is going to be mapped
10344 using the video meta.
10345 In Intel's VA-API backend, the allocation_vinfo resolution is
10346 bigger than the negotiated_info.
10347 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10349 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10351 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10352 libs: encoder: set framerate if bigger than 0/1
10353 Just set the framerate parameter if the framerate numerator and
10354 denominator are bigger than zero.
10355 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
10357 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10358 https://bugzilla.gnome.org/show_bug.cgi?id=783532
10360 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10362 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10363 libs: encoder: bitrate target percentage calculation
10364 If the rate control is set to Constant Bit Rate (CBR) the target
10365 percentage is 100%, otherwise is 70%
10367 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10369 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10370 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10371 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10372 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10373 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10374 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10375 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
10376 Centralize the common configuration for the Rate Control parameter,
10377 thus can be overloaded per each specific encoder.
10379 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10381 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10382 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10383 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10384 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10385 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10386 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10387 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
10388 Since the framerate VA parameter is calculated equally among all the
10389 encoders, it is better to handle it in the base encoder class.
10391 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10393 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10394 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
10395 libs: encoder: vp9: Adds CBR and VBR Encoding support
10396 https://bugzilla.gnome.org/show_bug.cgi?id=766832
10397 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10398 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10400 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10402 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10403 libs: encoder: vp8: Adds VBR Encoding support
10404 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10406 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
10408 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10409 libs: encoder: h265: Adds VBR Encoding support
10410 Enables Variable BitRate mode, which does set FrameRate and RateControl
10412 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10414 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
10416 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10417 libs: encoder: Describes more detail about the bitrate property
10418 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10420 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10422 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10423 libs: encoder: h265: add rate control parameter
10424 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10426 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10428 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10429 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10430 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10431 libs: encoder: h264,h265,mpeg2: add framerate parameter
10432 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10434 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10436 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10437 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10438 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10439 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10440 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
10441 Instead of recalculating the miscellaneous buffer parameters for
10442 every buffer, it is only done once, when the encoder is configured.
10443 And for every buffer, the same structures are just copied.
10444 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10446 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10448 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10449 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10450 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10451 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10452 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10453 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10454 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
10455 This is patch pretends to decouple the assignation of the values
10456 in the parameter structures and the VA buffer's parameters setting.
10457 It may lead to some issues since HRD, framerate or controlrate may
10458 not be handled by the specific encoder, but they are set in
10459 the VA buffer's parameters.
10460 I leave as it because this patch is just a transitional patch.
10461 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10463 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10465 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10466 libs: encoder: vp8: fix frame rate calculation
10467 According to the VA documentation:
10468 The framerate is specified as a number of frames per second,
10469 as a fraction. The denominator of the fraction is given in
10470 the top half (the high two bytes) of the framerate field, and
10471 the numerator is given in the bottom half (the low two bytes).
10472 For example, if framerate is set to (100 << 16 | 750), this is
10473 750 / 100, hence 7.5fps.
10474 If the denominator is zero (the high two bytes are both zero)
10475 then it takes the value one instead, so the framerate is just
10476 the integer in the low 2 bytes.
10477 This patch fixes the the framerate calculation in vp8 encoder
10479 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10481 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10483 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10484 libs: encoder: vp8: refactor FrameRate parameter
10485 Move frame-rate parameter from ensure_misc_params() to
10486 ensure_contro_rate_param() since it only has meaning when the
10487 control rate is either VBR or CBR.
10488 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10490 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10492 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10493 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10494 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10495 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10496 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
10497 Move the Hypothetical Reference Decoder (HRD) parameter, from
10498 ensure_misc_params() to ensure_control_rate_params(), since it
10499 only shall be defined when the control rate is either VBR or CBR.
10500 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10502 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10504 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10505 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10506 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10507 libs: encoder: h264,vp8,mpeg2: refactor control rate
10508 Instead of filling the control rate param in ensure_misc_params(),
10509 this patch refactor it out, as a first step to merge the same code
10510 for all the encoders.
10511 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10513 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10515 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10516 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10517 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10518 libs: encoder: h264, h265, mpeg2: remove assert
10519 Remove spurious asserts for misc parameters. If they cannot be
10520 allocated, FALSE is already returned.
10522 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10524 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10525 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10526 libs: encoder: use VA quality level structure
10527 Instead of using a proxy to story the buffer quality level, the
10528 encoder now uses the native VA structure, which is copied to the
10529 dynamically allocated VAEncMiscParameterBuffer.
10530 This approach is computationally less expensive.
10532 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10534 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10535 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10536 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10537 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10538 libs: standardize the FIXME comment
10539 This is a trivial patch that makes homogeneous the FIXME tag in
10541 For more info about these comment style:
10542 http://wiki.c2.com/?FixmeComment
10544 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
10546 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10547 libs: encoder: vp8: set quality level regardless of rate control mode
10548 https://bugzilla.gnome.org/show_bug.cgi?id=782957
10550 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10552 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10553 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10554 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10555 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10556 libs: encoder: check for maximum number of slices
10557 Right now, H264 and HEVC can set as a property the number of slices to
10558 process. But each driver can set a maximum number of slices, depending
10559 on the supported profile & entry point.
10560 This patch verifies the current num_slices to process against the maximum
10561 permitted by the driver and the media size.
10562 https://bugzilla.gnome.org/show_bug.cgi?id=780955
10564 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10566 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10567 libs: utils: mark functions as internals
10568 The functions in this header are internal to the library.
10570 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10572 * gst-libs/gst/vaapi/gstvaapicontext.h:
10573 libs: context: add missing documentation
10574 Document the region-of-interest configuration variables.
10576 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10578 * tests/elements/test-vaapisink.c:
10579 tests: elements: vaapisink: handle nav events
10580 The test app can now handle navigation events to rotate the
10583 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10585 * tests/elements/test-vaapisink.c:
10586 tests: elements: clean up vaapisink test
10587 - Use gst_element_send_event() instead of gst_pad_push_event()
10588 - don't zero App structure
10589 - check for pipeline parsing error
10590 - only get vaapisink for property set
10592 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
10594 * gst/vaapi/gstvaapisink.c:
10595 vaapisink: keep handle_events flag except that if user want to set
10596 When state of vaapisink is changed from PLAYING to NULL, the handle_events
10597 flag is set to FALSE, and never recovered, and then event thread is never
10599 So we should allow to set the flag only when users try it.
10600 https://bugzilla.gnome.org/show_bug.cgi?id=782543
10602 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10604 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10605 libs: window: x11: fix src rect info when using vpp
10606 Since we started using VPP in VaapiWindowX11, we need to care about
10607 the case that src rect and window's size are different.
10608 So, once VPP has converted to other format, we should honor the
10609 size of the VPP's surface as source rect. Otherwise, it is cropped
10610 according the previous size of the source rect.
10611 https://bugzilla.gnome.org/show_bug.cgi?id=782542
10613 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10615 * gst/vaapi/gstvaapipluginutil.c:
10616 plugins: remove par from caps negotiation
10617 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10619 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
10621 * tests/elements/Makefile.am:
10622 * tests/elements/test-roi.c:
10623 tests: elements: add an example for ROI
10624 This implements a pipleint to recognize difference between ROI and non-ROI.
10625 See comments in this code in detail.
10626 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10627 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10629 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
10631 * gst/vaapi/gstvaapiencode.c:
10632 * gst/vaapi/gstvaapiencode_h264.c:
10633 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
10634 Handles new custom event GstVaapiEncoderRegionOfInterest
10635 to enable/disable a ROI region.
10636 Writes a way to use new event to document.
10637 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10638 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10640 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
10642 * tests/simple-encoder.c:
10643 tests: simple-encoder: add an option to set ROI
10644 $ simple-encoder -r inputfile.y4m
10645 And you'll got an output file in H264 with two regions of interest.
10646 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10647 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10649 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10651 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10652 libs: encoder: h264: set ROI params during encoding
10653 Set ROI params during encoding each frame, which are set via
10654 gst_vaapi_encoder_add_roi ()
10655 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10656 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10658 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10660 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10661 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10662 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10663 libs: encoder: add api gst_vaapi_encoder_add/del_roi
10664 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
10665 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10667 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
10669 * gst-libs/gst/vaapi/gstvaapicontext.c:
10670 * gst-libs/gst/vaapi/gstvaapicontext.h:
10671 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10672 libs: encoder/context: query region of interest support
10673 Queries if the driver supports "Region of Interest" (ROI) during the config
10675 This attribute conveys whether the driver supports region-of-interest (ROI)
10676 encoding, based on user provided ROI rectangles. The attribute value is
10677 partitioned into fields as defined in the VAConfigAttribValEncROI union.
10678 If ROI encoding is supported, the ROI information is passed to the driver
10679 using VAEncMiscParameterTypeROI.
10680 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10681 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10683 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10685 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10686 libs: encoder: fix a comment
10688 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10690 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10691 libs: encoder: guard quality level configuration
10692 The quality level appeared in VA-API 0.36. So let's guard its
10695 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10697 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10698 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10699 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10700 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10701 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10702 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10703 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10704 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10705 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10706 encoders: add quality level tuning
10707 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
10708 in gstreamer-vaapi encoders:
10709 The encoding quality could be set through this structure, if the
10710 implementation supports multiple quality levels. The quality level set
10711 through this structure is persistent over the entire coded sequence, or
10712 until a new structure is being sent. The quality level range can be queried
10713 through the VAConfigAttribEncQualityRange attribute. A lower value means
10714 higher quality, and a value of 1 represents the highest quality. The quality
10715 level setting is used as a trade-off between quality and speed/power
10716 consumption, with higher quality corresponds to lower speed and higher power
10718 The quality level is set by the element's parameter "quality-level" with a
10719 hard-coded range of 1 to 8.
10720 Later, when the encoder is configured in run time, just before start
10721 processing, the quality level is scaled to the codec range. If
10722 VAConfigAttribEncQualityRange is not available in the used VA backend, then
10723 the quality level is set to zero, which means "disabled".
10724 All the available codecs now process this parameter if it is available.
10725 https://bugzilla.gnome.org/show_bug.cgi?id=778733
10726 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10728 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
10732 Back to development
10734 === release 1.12.0 ===
10736 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
10741 * gstreamer-vaapi.doap:
10745 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10747 * gst/vaapi/gstvaapidecodebin.c:
10748 Revert "vaapidecodebin: fix element's classification"
10749 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
10751 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10755 build: Require libva < 0.99.0
10756 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
10757 fail to configure instead of failing late in the build.
10758 This libva is bundled in msdk[1] and it is ahead in time with
10759 respect the official and open source libva[2]. GStreamer-VAAPI
10760 only supports the latter for now.
10761 1. https://software.intel.com/en-us/media-sdk/download
10762 2. https://github.com/01org/libva/
10763 https://bugzilla.gnome.org/show_bug.cgi?id=781866
10765 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
10767 * gst/vaapi/gstvaapidecodebin.c:
10768 vaapidecodebin: fix element's classification
10769 This bin should have similar classification as decodebin which is
10770 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
10772 Signed-off-by: Victor Toso <victortoso@redhat.com>
10773 https://bugzilla.gnome.org/show_bug.cgi?id=782063
10775 === release 1.11.91 ===
10777 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
10782 * gstreamer-vaapi.doap:
10786 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10788 * gst/vaapi/gstvaapipluginutil.c:
10789 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
10790 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
10792 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10794 * gst/vaapi/gstvaapipluginutil.c:
10795 plugins: reject pixel-aspect-ratio with value 0/1
10796 Do not negotiate a pixel-aspect-ratio of 0/1.
10797 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10799 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10801 * gst/vaapi/gstvaapipostprocutil.c:
10802 * gst/vaapi/gstvaapisink.c:
10803 plugins: handle pixel-aspect-ratio with value 0/1
10804 When downstream negotiates a pixel-aspect-ratio of 0/1, the
10805 calculations for resizing and formatting in vaapipostproc and
10806 vaapisink, respectively, failed, and thus the pipeline.
10807 This patch handles this situation by converting p-a-r of 0/1 to
10808 1/1. This is how other sinks, such as glimagesink, work.
10809 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10811 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
10813 * gst/vaapi/gstvaapivideobufferpool.c:
10814 vaapivideobufferpool: fix leak of created allocator
10815 Since it's created by itself, it should be unref-counted
10816 after gst_buffer_pool_config_set_allocator call. Afterwards,
10817 this allocator will be ref-counted again when assigning to priv->allocator.
10818 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10820 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10822 * gst/vaapi/gstvaapivideobufferpool.c:
10823 vaapivideobufferpool: create or reconfig allocator
10824 Sometimes a video decoder could set different buffer pool
10825 configurations, because their frame size changes. In this case we
10826 did not reconfigure the allocator.
10827 This patch enables this use case, creating a new allocator inside
10828 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
10829 If so, it is just reconfigured, since it doesn't have a surface pool.
10830 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10832 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10834 * tests/elements/Makefile.am:
10835 test: elements: fix compilation flags
10836 This issue was spotten on bug #766704
10837 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10839 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
10841 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10842 libs: windows: wayland: fix leak if failure of sync
10843 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
10844 during destruction.
10845 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
10846 This surface is not attached to anything at this moment, so we should release
10848 https://bugzilla.gnome.org/show_bug.cgi?id=781695
10850 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
10853 Automatic update of common submodule
10854 From 60aeef6 to 48a5d85
10856 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
10858 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10859 libs: window: wayland: mark frames as done
10860 When the frame listener callbacks 'done', the number of pending
10861 frames are decreased. Nonetheless, there might be occasions where
10862 the buffer listener callbacks 'release', without calling previously
10863 frame's 'done'. This leads to problem with
10864 gst_vaapi_window_wayland_sync() operation.
10865 This patch marks as done those frames which were callbacked, but if
10866 the buffer callbacks 'release' and associated frame is not marked
10867 as 'done' it is so, thus the number of pending frames keeps correct.
10868 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10869 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10871 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10873 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10874 libs: window: wayland: don't sync at destroy()
10875 Don't call gst_vaapi_window_wayland_sync() when destroying the
10876 wayland window instance, since it might lead to a lock at
10877 gst_poll_wait() when more than one instances of vaapisink are
10878 rendering in the same pipeline, this is because they share the
10880 Since now all the frames are freed we don't need to freed the
10881 private last_frame, since its address is invalid now.
10882 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10883 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10885 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
10887 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10888 libs: window: wayland: null buffer at destroy()
10889 Fix leakage of the last wl buffer.
10890 VAAPI wayland sink needs to send a null buffer while destruction,
10891 it assures that all the wl buffers are released. Otherwise, the last
10892 buffer's callback might be not called, which leads to leak of
10894 This was inspired by gstwaylandsink.
10895 https://bugzilla.gnome.org/show_bug.cgi?id=774029
10896 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10898 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
10900 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10901 libs: window: wayland: rt event queue at destroy()
10902 The proxy object of wl_buffer for the last frame remains in the
10903 wl_map. Even though we call wl_buffer_destroy() in
10904 frame_release_callback(), the proxy object remains without being
10905 removed, since proxy object is deleted when wayland server sees the
10906 delete request and sends 'delete_id' event.
10907 We need to call roundtrip before destroying event_queue so that the
10908 proxy object is removed. Otherwise, it would be mess up as receiving
10909 'delete_id' event from previous play, when playing in the next
10910 va/wayland window with the same wl_display connection.
10911 https://bugzilla.gnome.org/show_bug.cgi?id=773689
10912 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10914 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10916 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10917 libs: window: wayland: cancel read at poll message
10918 Always call wl_display_cancel_read() when an errno is set, but
10919 different to EAGAIN or EINTR.
10920 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10922 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10924 * gst/vaapi/gstvaapidecodebin.c:
10925 * gst/vaapi/gstvaapidecodebin.h:
10926 vaapidecodebin: skips configuration once it's done
10927 Skips configuration of creation of vpp/capsfilter and link them once it's done.
10928 Otherwise, it always fails when it's trying to re-start playback.
10929 https://bugzilla.gnome.org/show_bug.cgi?id=781573
10931 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10933 * gst/vaapi/gstvaapipostprocutil.c:
10934 vaapipostproc: fixes for memory leaks
10935 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
10936 requires to clear the used GValue to avoid a memory leak.
10938 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10940 * gst/vaapi/gstvaapipluginbase.c:
10941 * gst/vaapi/gstvaapipluginbase.h:
10942 plugins: enable direct rendering with envvar
10943 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
10944 performance in some Intel platforms (Haswell, for example) but in others
10945 (Skylake) is the opposite.
10946 In order to have some control, the patch enables the direct rendering
10947 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
10948 Also it seems to generating some problems with gallium/radeon backend.
10950 https://bugzilla.gnome.org/show_bug.cgi?id=775848
10952 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
10954 * gst/vaapi/gstvaapidecode.c:
10955 vaapidecode: Don't renegotiate on every flush
10956 If caps don't actually change, don't update the
10957 decoder and don't set the do_renego flag forcing
10958 downstream renegotiation
10959 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10961 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
10963 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10964 h264 decoder: Implement reset() for faster flush
10965 Implement a custom reset() function for faster flushes
10966 that just clear the reference pictures but don't reallocate
10967 the DPB or clear out SPS/PPS
10968 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10970 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
10972 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10973 * gst-libs/gst/vaapi/gstvaapidecoder.h:
10974 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10975 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10976 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10977 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10978 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10979 * gst/vaapi/gstvaapidecode.c:
10980 Implement decoder reset on flush, rather than recreating
10981 Clear decoders out on a flush but keep the same instance,
10982 rather than completely recreating them. That avoids
10983 unecessarily freeing and recreating surface pools
10984 and contexts, which can be quite expensive
10985 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10987 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10989 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10990 libs: window: don't add an unused function
10991 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
10992 a function that is never used, thus when compiling we might see
10993 this warning (clang):
10994 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
10995 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
10997 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10999 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11001 * gst-libs/gst/vaapi/gstvaapiwindow.c:
11002 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
11003 libs: window: remove surface_format member
11004 Since we always convert to NV12, there is no need to keep a
11005 variable for that. Let us hard code it.
11006 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11008 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
11010 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11011 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
11012 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
11013 libs: window: x11/wayland: use new api for conversion
11014 Since gst_vaapi_window_vpp_convert_internal is created,
11015 GstVaapiWindowX11/Wayland can use it for conversion.
11016 Note that once it chooses to use vpp, it's going to use vpp
11017 until the session is finished.
11018 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11020 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
11022 * gst-libs/gst/vaapi/gstvaapiwindow.c:
11023 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
11024 libs: window: add gst_vaapi_window_vpp_convert_internal()
11025 If a backend doesn't support specific format, we can use vpp for conversion
11026 and make it playing.
11027 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
11028 so that GstVaapiWindowX11 could use it.
11029 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11031 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
11033 * gst-libs/gst/vaapi/gstvaapiwindow.c:
11034 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
11035 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11036 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
11037 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
11038 libs: window: x11/wayland: chaining up to GstVaapiWindow
11039 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
11040 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
11041 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11043 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11045 * gst/vaapi/gstvaapipluginutil.c:
11046 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
11047 When these definitions are false, they are undef in the
11048 preprocessor, not a defined value of 0. When they are unset the
11049 compile fails with:
11050 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
11051 https://bugzilla.gnome.org/show_bug.cgi?id=780948
11053 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
11056 Automatic update of common submodule
11057 From 39ac2f5 to 60aeef6
11059 === release 1.11.90 ===
11061 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
11066 * gstreamer-vaapi.doap:
11070 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11072 * gst/vaapi/gstvaapiencode_h265.c:
11073 vaapiencode: h265: add main-10 in caps template
11074 This patch adds h265's main-10 profile in encoder src caps template.
11075 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11077 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11079 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11080 libs: encoder: h265: chroma and luma with format
11081 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
11082 parameter buffer, shall be the color format bit depth minus 8, 10-8
11083 which is 2. Also for bit_depth_chroma_minus8.
11084 This patch gets the negotiated sink caps format and queries its
11085 luma's depth and uses that value to fill the mentioned parameters.
11086 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11088 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11090 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11091 libs: encoder: admit YUV420_10BPP as valid chroma
11092 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
11094 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11096 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11098 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11099 libs: encoder: h265: ensures profile given format
11100 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
11101 configured color format is P010_10LE.
11102 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
11103 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11105 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11107 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11108 libs: encode: merge all possible surface formats
11109 When the function gst_vaapi_encoder_get_surface_formats() was added
11110 it was under the assumption that any VA profile of the specific codec
11111 supported the same format colors. But it is not, for example the
11112 profiles that support 10bit formats.
11113 In other words, different VA profiles of a same codec may support
11114 different color formats in their upload surfaces.
11115 In order to expose all the possible color formats, if no profile is
11116 specified via source caps, or if the encoder doesn't have yet a
11117 context, all the possible VA profiles for the specific codec are
11118 iterated and their color formats are merged.
11119 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11121 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11123 * gst/vaapi/gstvaapiencode.c:
11124 * gst/vaapi/gstvaapiencode.h:
11125 * gst/vaapi/gstvaapiencode_h264.c:
11126 * gst/vaapi/gstvaapiencode_h265.c:
11127 vaapiencode: add get_profile() vmethod
11128 This new virtual method, get_profile(), if implemented by specific
11129 encoders, will return the VA profile potentially determined by the
11131 Also it is implemented by h264 and h265 encoders, which are the main
11132 users of this vmethod.
11133 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11135 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11137 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11138 * gst-libs/gst/vaapi/gstvaapiencoder.h:
11139 * gst/vaapi/gstvaapiencode.c:
11140 libs: encoder: pass profile to get_surface_formats()
11141 In order to get the supported surface formats within a specific
11142 profile this patch adds the GstVaapiProfile as property to
11143 gst_vaapi_encoder_get_surface_formats().
11144 Currently the extracted formats are only those related with the
11145 default profile of the element's codec.
11146 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11148 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11150 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11151 libs: encoder: dummy context for get_surface_formats()
11152 Instead of creating (if it doesn't exist, yet) the encoder's context
11153 the method gst_vaapi_encoder_get_surface_formats() now it creates
11154 dummy contexts, unless the encoder has it already created.
11155 The purpose of this is to avoid setting a encoder's context with a
11157 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11159 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11161 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11162 libs: encoder: refactor init_context_info()
11163 In order to generate vaapi contexts iterative, the function
11164 init_context_info() is refactored to pass, as parameters the
11165 GstVaapiContextInfo and the GstVaapiProfile.
11166 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11168 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11170 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11171 * gst-libs/gst/vaapi/gstvaapiutils.c:
11172 * gst-libs/gst/vaapi/gstvaapiutils.h:
11173 libs: encoder: initialize chroma_type
11174 Instead of initialize the chroma_type with a undefined value, which
11175 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
11176 this patch queries the VA config, given the received
11177 GstVaapiContextInfo's parameters, and gets the first response.
11178 In order to get the GstVaapiChromaType value, also it was needed to
11179 add a new utility function: to_GstVaapiChromaType(), which, given a
11180 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
11181 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11183 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11185 * gst/vaapi/gstvaapiencode.c:
11186 vaapiencode: enhance logs of negotiated caps
11187 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11189 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11191 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
11192 libs: encoder: vp9: Fix initialization of ref_list
11193 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
11194 'memset' used with length equal to number of elements without
11195 multiplication by element size [-Werror=memset-elt-size]
11196 https://bugzilla.gnome.org/show_bug.cgi?id=780947
11198 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11200 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11201 encoder: h264: Fix Backward ReferencePicture flag setting
11202 This is a regression introduced by e829b62 which
11203 override the reference flags and caused issues with
11204 latest intel-vaapi-driver.
11206 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11208 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11209 libs: encoder: h265: fix code style
11210 Trivial patch to remove a double ';' as end of instruction.
11212 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11214 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11215 encoder: h264: Fix B frame encoding artifacts
11216 The current implementation is updating the POC values only
11217 in Slice parameter Buffer.But we are not filling the
11218 picture order count and reference flags in VAPictureH264
11219 while populating VA Picture/Slice structures.The latest
11220 intel-vaapi-driver is directly accessing the above fields
11221 from VAPicutreH264 provided as RefPicLists, which resulted
11222 some wrong maths and prediction errors in driver.
11223 https://bugzilla.gnome.org/show_bug.cgi?id=780620
11225 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11227 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11228 libs: encoder: h265: remove unused macro definition
11229 Since the h265 encoder doesn't use GValueArray, there is no need to
11230 disable the Glib deprecation warnings, thus removing the macro
11233 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11235 * gst/vaapi/gstvaapidecode.c:
11236 * gst/vaapi/gstvaapiencode.c:
11237 * gst/vaapi/gstvaapipostproc.c:
11238 * gst/vaapi/gstvaapisink.c:
11239 plugins: when debug disabled, default category is NULL
11240 As in gstreamer-vaapi a common base class is used, the specific
11241 default category is passed to the base-plugin initializator, thus
11242 the log messages are categorized with the used plugin.
11243 Nonetheless, when the gst-debug is disabled in compilation time,
11244 it is needed to pass NULL to the base-plugin initializator. This
11246 https://bugzilla.gnome.org/show_bug.cgi?id=780302
11248 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
11250 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11251 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11252 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
11253 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
11254 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
11255 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
11256 unit length and data to a bitwriter.
11257 Note that this helper function applies EPB (Emulation Prevention
11258 Bytes), since otherwise produced codec_data might be broken when
11259 decoder/parser considering EPB, starts parsing.
11260 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
11261 describes the emulation_prevention_three_byte.
11262 https://bugzilla.gnome.org/show_bug.cgi?id=778750
11263 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11265 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11267 * gst-libs/gst/vaapi/Makefile.am:
11268 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11269 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11270 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
11271 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
11272 * gst-libs/gst/vaapi/meson.build:
11273 libs: utils: h26x: create vaapiutils_h26x
11274 Since there is duplicated code in h264/265 encoder, we could
11275 refactor it to avoid duplicated code.
11276 https://bugzilla.gnome.org/show_bug.cgi?id=778750
11277 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11279 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
11281 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11282 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11283 libs: encoder: h264/5: fix wrong return value
11284 https://bugzilla.gnome.org/show_bug.cgi?id=778750
11286 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11288 * gst/vaapi/gstvaapiencode_h264.c:
11289 * gst/vaapi/gstvaapiencode_h265.c:
11290 docs: h264/h265: put parser to the example pipeline
11291 https://bugzilla.gnome.org/show_bug.cgi?id=778749
11293 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11295 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11296 libs: encoder: h265: fix reserved length of bits
11297 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
11298 https://bugzilla.gnome.org/show_bug.cgi?id=778749
11300 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11302 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11303 * tests/test-display.c:
11304 O_CLOEXEC needs _GNU_SOURCE defined
11306 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
11307 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
11308 2.12, one can obtain their definitions by defining either
11309 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
11310 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
11311 2.11 and earlier, one obtains the definitions by defining
11313 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
11314 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
11315 gstreamer-vaapi with the uClibc C library.
11316 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11317 https://bugzilla.gnome.org/show_bug.cgi?id=779953
11319 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11322 README: fix "Sources" section
11323 Update the URL where the release source tarballs can be downloaded.
11325 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11328 README: fix "Reporting bugs" section
11329 The "Reporting bugs" section gives
11330 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
11331 link to report a bug, but this link says "Sorry, entering a bug into the
11332 product gstreamer-vaapi has been disabled.".
11333 This commit fixes the URL to point to the proper location, and also
11334 removes the following paragraph that is no longer correct.
11335 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11336 https://bugzilla.gnome.org/show_bug.cgi?id=779954
11338 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11340 * gst/vaapi/gstvaapipluginutil.c:
11341 plugins: retry to create the VA display
11342 Particularly in GNOME Wayland, the negotiated or created GL context
11343 defines a GLX environment, but VAAPI fails to create a GLX VA
11344 display because there is no a DRI2 connection.
11345 This patch retries to create the VA display if VA cannot create one
11346 with the GL context parameters. Now using the old list of display
11348 This should also work in the case of systems with two GPU, when the
11349 non-VAAPI has the graphics environment, and the VAAPI-enabled one
11350 shall work headless.
11351 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11353 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11355 * gst/vaapi/gstvaapipostproc.c:
11356 vaapipostproc: texture upload if driver supports GL
11357 Removes GstVideoGLTextureUploadMeta caps feature if the driver
11358 doesn't support opengl.
11359 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11360 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11362 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11364 * gst/vaapi/gstvaapidecode.c:
11365 vaapidecode: texture upload if driver supports GL
11366 When the allowed source pad caps are generated, the GLTextureUpload caps are
11367 only inserted if the driver support OpenGL.
11368 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11370 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11373 configure: Add missing compiler flags
11374 The AC_CHECK_HEADERS macro was failing to locate some headers, in
11375 particular the va_enc_* headers due to missing compiler flags.
11376 https://bugzilla.gnome.org/show_bug.cgi?id=779101
11377 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11379 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
11381 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11382 libs: window: wayland: handle more VAStatus to use vpp
11383 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
11384 we should consider more returned VAStatus to use vpp.
11385 https://bugzilla.gnome.org/show_bug.cgi?id=779400
11387 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11389 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11390 libs: encoder: ensure profile when context initialization
11391 We can't be sure that encoder's profile is assgined already or not
11392 at context initialization.
11393 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11395 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11397 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11398 libs: encoder: set rate control info only when query succeed
11399 Currently, it set rate control information even when query fails.
11400 In addition, it doesn't update any more since the flag
11401 got_rate_control_mask is set to TRUE.
11402 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11404 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
11407 meson: Update version
11409 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
11412 Back to development
11414 === release 1.11.2 ===
11416 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
11421 * gstreamer-vaapi.doap:
11424 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11426 * gst/vaapi/gstvaapiencode.c:
11427 vaapiencode: merge tags for downstream's info
11428 Add encoder and codec name and the bitrate into the output for
11429 informational purposes. Some muxers or application use it as
11431 https://bugzilla.gnome.org/show_bug.cgi?id=778781
11433 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11435 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11436 libs: encoder: caps can change at any time
11437 The encoder should be able to change its caps even it is already
11438 processing a stream.
11439 This is suppose to happen after a flush so the codedbuf_queue should
11441 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11443 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11445 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11446 libs: encoder: h265: bail if nal unit type fails
11447 Bail out if the NAL unit type is not recognized.
11448 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11450 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11452 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11453 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11454 libs: decoder: h264,h265 avoid uninitialized variable
11455 Configuring GCC to verify possible usage of uninitialized variables,
11456 shows that found_index might be used without previous assignation.
11457 This patch assigns a initial value to found_index, also avoid a
11458 branching when returning the result value.
11459 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11461 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11464 * gst-libs/gst/vaapi/Makefile.am:
11465 * gst/vaapi/gstvaapidecode.c:
11466 * gst/vaapi/gstvaapidecodebin.c:
11467 build: rename USE_HEVC_DECODER to USE_H265_DECODER
11468 Rename to be consistent with H.264 and also H.265 encoder. The
11469 meson build assumed this was already consistently named, and so
11470 previously was not able to actually build the H.265 decoder.
11471 https://bugzilla.gnome.org/show_bug.cgi?id=778576
11473 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
11476 meson: gstreamer-codecparsers is a required dep
11477 Just like in configure.ac.
11479 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
11482 meson: dist meson build files
11483 Ship meson build files in tarballs, so people who use tarballs
11484 in their builds can start playing with meson already.
11486 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
11488 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11489 libs: encoder: vp8: add CBR encoding mode
11490 This patch enables the Constant BitRate encoding mode in VP8 encoder.
11491 Basically it adds the configuration parameters required by libva to
11493 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11494 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11496 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
11498 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11499 libs: encoder: vp8: fix bitrate calculation
11500 Base encoder's unit of bitrate is in Kbps. We should honor it so
11501 we use the value of bitrate in VA, in which is expressed in bps.
11502 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11504 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11506 * gst/vaapi/gstvaapipluginbase.c:
11507 plugins: fix build when gcc
11508 In commit a8e482f9 we added a function without parameters, but gcc
11511 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11513 * gst-libs/gst/base/meson.build:
11514 * gst-libs/gst/meson.build:
11515 * gst-libs/gst/vaapi/meson.build:
11516 * gst-libs/meson.build:
11518 * gst/vaapi/meson.build:
11520 * meson_options.txt:
11521 vaapi: add meson build
11522 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11524 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11527 * gst-libs/gst/vaapi/Makefile.am:
11528 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11529 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
11530 make: remove gstvaapiversion.h generation
11531 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11533 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
11535 * gst/vaapi/gstvaapipluginbase.c:
11536 plugins: use linear storage if not the same device
11537 When dmabuf is negotiated downstream and decoding and rendering are
11538 not done on the same device, the layout has to be linear in order for
11539 the memory to be shared accross devices, since each device has its
11540 own way to do tiling.
11541 Right now this code is rather just a to-do comment, since we are not
11542 fetching the device ids.
11543 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11545 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
11547 * gst-libs/gst/vaapi/gstvaapiutils.c:
11548 libs: utils: add HEVC profiles representation
11549 https://bugzilla.gnome.org/show_bug.cgi?id=778318
11551 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
11553 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11554 libs: decoder: h264: reduce frame number of gaps
11555 Reduce frame num gaps so that we don't have to create unnecessary
11556 dummy pictures, just throw them away.
11557 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11558 https://bugzilla.gnome.org/show_bug.cgi?id=777506
11560 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11562 * gst/vaapi/gstvaapidecode.c:
11563 vaapidecode: don't GLTextureUpload if dmabuf
11564 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11565 element can handle dmabuf-based buffers, avoiding its negotiation.
11567 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
11569 * gst/vaapi/gstvaapidecode.c:
11570 vaapidecode: make pool to export decoder's surface
11571 Use new -base API gst_video_decoder_allocate_output_frame_full() to
11572 pass the current proxy/surface to the pool.
11573 The pool will will export thins given surface instead of exporting a
11574 brand new surface that will never be filled in with meaningfull data.
11575 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11577 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11579 * gst/vaapi/gstvaapipluginbase.c:
11580 plugins: decoder can negotiate dmabuf downstream
11582 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
11584 * gst/vaapi/gstvaapivideobufferpool.c:
11585 vaapivideobufferpool: override acquire_buffer()
11586 Overriding the vmethod acquire_buffer() it is possible to attach the
11587 right GstMemory to the current acquired buffer.
11588 As a matter of fact, this acquired buffer may contain any instantiated
11589 GstFdmemory, since this buffer have been popped out from the buffer
11590 pool, which is a FIFO queue. So there is no garantee that this buffer
11591 matches with the current processed surface. Evenmore, the VA driver
11592 might not use a FIFO queue. Therefore, it is no way to guess on the
11594 In short, acquire_buffer on the VA driver and on the buffer pool return
11595 none matching data, we have to manually attach the right GstFdMemory to
11596 the acquired GstBuffer. The right GstMemory is the one associated with
11597 the current surface.
11598 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11600 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
11602 * gst/vaapi/gstvaapivideobufferpool.c:
11603 * gst/vaapi/gstvaapivideomemory.c:
11604 vaapivideomemory: export surface if it is provided
11605 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
11606 had to create that surface. Now it can also export an already provided
11607 surface. It is useful to export decoder's surfaces (from VA context).
11608 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11610 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
11612 * gst/vaapi/gstvaapivideobufferpool.h:
11613 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
11614 Useful to let the pool know the current surface proxy when calling
11615 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
11616 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11618 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
11620 * gst-libs/gst/vaapi/gstvaapisurface.c:
11621 * gst-libs/gst/vaapi/gstvaapisurface.h:
11622 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
11623 These functions are useful when a dmabuf-based memory is instantiated in
11624 order to relate the generated buffer @proxy with the processed @surface.
11625 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11627 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
11629 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11630 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11631 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11632 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
11633 This patch adds a GstMemory as a variable member of the buffer proxy,
11634 because we will need to associate the buffer proxy with the memory
11635 which exposes it. Later, we will know which memory, in the video buffer
11636 pool, is attached to the processed surface.
11637 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11639 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11641 * gst/vaapi/gstvaapipostproc.c:
11642 vaapipostproc: don't GLTextureUpload if dmabuf
11643 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11644 element can handle dmabuf-based buffers, avoiding its negotiation.
11645 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
11646 feature if can dmabuf"
11647 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11649 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11651 * gst/vaapi/gstvaapipluginbase.c:
11652 plugins: enable DMAbuf allocator to downstream
11653 If the negotiated caps are raw caps and downstream supports the
11654 EGL_EXT_image_dma_buf_import extension, then the created allocator
11655 is the DMAbuf, configured to downstream.
11656 At this moment, the only element which can push dmabuf-based buffers
11657 to downstream, is vaapipostproc.
11659 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11661 * gst/vaapi/gstvaapipluginbase.c:
11662 * gst/vaapi/gstvaapipluginbase.h:
11663 plugins: check if negotiate dmabuf with downstream
11664 In order to enable, in the future, dmabuf-based buffers, the vaapi base
11665 plugin needs to check if downstream can import dmabuf buffers.
11666 This patch checks if downstream can handle dmabuf, by introspecting the
11667 shared GL context. If the GL context is EGL/GLES2 and have the extension
11668 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
11669 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
11671 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
11673 * gst/vaapi/gstvaapivideomemory.c:
11674 vaapivideomemory: release proxy's data if downstream
11675 The surface created for downstream is going to be filled by VAAPI
11676 elements. So, the driver needs write access on that surface.
11677 This patch releases the derived image held by the proxy, thus the
11678 surface is unmarked as busy.
11679 This is how it has to be done as discussed on libva mailing list.
11680 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11682 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
11684 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11685 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11686 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
11687 Adds an API to request the user's data release in the buffer proxy.
11688 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11690 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11692 * gst/vaapi/gstvaapipluginbase.c:
11693 * gst/vaapi/gstvaapivideomemory.c:
11694 * gst/vaapi/gstvaapivideomemory.h:
11695 vaapivideomemory: add direction to dmabuf allocator
11696 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
11697 we later could do different thing when the allocated memory is for
11698 upstream or dowstream, as required by VA-API.
11699 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11701 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
11703 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
11704 libs: utils: return NULL if failed to get surface formats
11705 Thus, when generating the allowed caps, the element will throw a
11706 warning and it will use its caps template.
11707 This behavior might be a bug in the VA driver.
11708 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11710 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11712 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11713 Revert "vaapidisplay: mark X11 display as compatible with EGL"
11714 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
11716 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
11718 * gst/vaapi/gstvaapipostproc.c:
11719 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
11720 A value of width/height property should be set to out caps,
11721 if negotiation had been going properly.
11722 So we can use srcpad_info when making decision of scaling.
11723 https://bugzilla.gnome.org/show_bug.cgi?id=778010
11725 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11727 * gst/vaapi/gstvaapidecode.c:
11728 * gst/vaapi/gstvaapiencode.c:
11729 * gst/vaapi/gstvaapipluginutil.c:
11730 * gst/vaapi/gstvaapipluginutil.h:
11731 * gst/vaapi/gstvaapipostproc.c:
11732 * gst/vaapi/gstvaapisink.c:
11733 plugins: handle GL params through context query
11734 If the element instantiated the GL display and context, they should
11735 handle them too through the context query.
11736 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11738 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11740 * gst/vaapi/gstvaapipluginbase.c:
11741 * gst/vaapi/gstvaapipluginbase.h:
11742 * gst/vaapi/gstvaapipluginutil.c:
11743 plugins: create a GL context on certain conditions
11744 If a GstVaapiDisplay is not found in the GStreamer context sharing,
11745 then VAAPI elements look for a local GstGLContext in gst context
11746 sharing mechanism ('gst.gl.local.context').
11747 If this GstGLContext not found either then, only the VAAPI decoders
11748 and the VAAPI post-processor, will try to instantiate a new
11750 If a valid GstGLContext is received, then a new GstVaapiDisplay will
11751 be instantiated with the platform, API and windowing specified by the
11752 instantiated GstGLContext.
11753 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
11754 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11756 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11758 * gst/vaapi/gstvaapivideocontext.c:
11759 vaapivideocontext: context type can be rejected
11760 Instead of calling g_return_val_if_fail() to check the context type, we
11761 should use a normal conditional, since it is possible that other context types
11762 can arrive and try to be assigned. Otherwise a critical log message is
11764 This happens when we use playbin3 with vaapipostproc as video-filter.
11765 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11767 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11769 * gst/vaapi/gstvaapipostprocutil.c:
11770 vaapipostproc: use sink caps par if not requested
11771 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
11772 is not already set.
11773 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11775 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11777 * gst/vaapi/gstvaapipostproc.c:
11778 * gst/vaapi/gstvaapipostprocutil.c:
11779 vaapipostproc: set interlace mode
11780 if the vaapipostproc is configured to not do deinterlacing, the
11781 interlace-mode in the src caps should be the same as the input caps.
11782 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11784 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11786 * gst/vaapi/gstvaapisink.c:
11787 vaapisink: fix gcc compiler warning
11788 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
11790 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11792 * gst/vaapi/gstvaapisink.c:
11793 vaapisink: don't use member variable outside lock
11794 Thus a race condition segfault is avoided.
11795 Original-patch-by: Matt Staples <staples255@gmail.com>
11796 https://bugzilla.gnome.org/show_bug.cgi?id=777146
11798 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11800 * gst/vaapi/gstvaapipluginbase.c:
11801 * gst/vaapi/gstvaapipostproc.c:
11802 plugins: avoid log flood when activating pool
11803 Every time a new buffer is allocated, the pool is activated. This
11804 doesn't impact in performance since gst_buffer_pool_set_active()
11805 checks the current state of the pool. Nonetheless it logs out a
11806 message if the state is the same, and it floods the logging subsystem
11808 To avoid this log flooding first the pool state is checked before
11811 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11813 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11814 * gst-libs/gst/vaapi/gstvaapidecoder.h:
11815 * gst/vaapi/gstvaapidecode.c:
11816 * gst/vaapi/gstvaapidecode.h:
11817 vaapidecode: update internal decoder sink caps
11818 When a new sink caps arrive the internal decoder state is updated
11819 and, if it is, request a downstream renegotiation.
11820 Previously, when new caps arrived the whole decoder where destroyed
11821 and recreated. Now, if the caps are compatible or has the same codec,
11822 the internal decoder is kept, but a downstream renegotiation is
11824 https://bugzilla.gnome.org/show_bug.cgi?id=776979
11826 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
11829 Back to development
11831 === release 1.11.1 ===
11833 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
11838 * gstreamer-vaapi.doap:
11841 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11843 * gst-libs/gst/vaapi/gstvaapiutils.c:
11844 vaapi: bump ifdef to API 0.40.0 for log redirect
11845 vaSetInfoCallback() is not released yet. It is going to appear in
11848 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
11850 * gst-libs/gst/vaapi/gstvaapiutils.c:
11851 vaapiutils: Fix compilation with latest and previous libva releases
11852 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
11855 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11857 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11858 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11859 * gst-libs/gst/vaapi/gstvaapiutils.c:
11860 * gst-libs/gst/vaapi/gstvaapiutils.h:
11861 libs: display: redirect logging at initialize
11862 Redirect libva's logs to GStreamer logging mechanism. This is
11863 particularly useful when VA is initialized, because it always logs
11864 out the drivers details.
11865 In order to achieve this a new helper function was added as a wrapper
11866 for the vaInitialize() function.
11867 https://bugzilla.gnome.org/show_bug.cgi?id=777115
11869 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
11871 * gst/vaapi/gstvaapipluginbase.c:
11872 plugins: provide at least two buffers in sink pool
11873 Adds two buffers as the default value of minimum buffer.
11874 This would be used when creating and proposing vaapi bufferpool for
11875 sink pad, hence the upstream element will keep, at least, these two
11877 https://bugzilla.gnome.org/show_bug.cgi?id=775203
11878 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11880 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
11882 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11883 libs: decoder: h264: don't update cloned attributes
11884 If the frame is a cloned picture, its PTS comes from its parent
11885 picture. In addition, the base decoder doesn't set a valid PTS to
11886 the frame corresponding to the cloned picture.
11887 https://bugzilla.gnome.org/show_bug.cgi?id=774254
11889 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11891 * gst/vaapi/gstvaapivideomemory.c:
11892 vaapivideomemory: check for display
11893 This patch fixes the check of display, rather than check for the
11894 meta, which it is known it exists.
11896 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11898 * gst/vaapi/gstvaapivideomemory.c:
11899 * gst/vaapi/gstvaapivideomemory.h:
11900 vaapivideomemory: rename dmabuf allocator parameters
11901 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
11902 'surface_alloc_flags' respectively. The purpose of this change is
11903 to auto-document those parameters.
11904 Also, aligned to this patch, the local 'alloc_info' variable was
11905 renamed as 'surface_info', because it stores the possible surface's
11906 video info, not the allocate one.
11908 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11910 * gst/vaapi/gstvaapivideomemory.c:
11911 * gst/vaapi/gstvaapivideomemory.h:
11912 vaapivideomemory: rename vip to alloc_info parameter
11913 In order to auto-document the code, this patch renames the 'vip'
11914 parameter in the functions related to gst_vaapi_video_allocator_new ()
11915 to 'alloc_info', since it declares the allocation video info from
11916 the vaapi buffer pool.
11918 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11920 * gst/vaapi/gstvaapivideomemory.c:
11921 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
11922 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
11923 the video format string.
11925 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11927 * gst/vaapi/gstvaapivideomemory.c:
11928 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
11929 gst_vaapi_surface_new_with_format() is a wrapper for
11930 gst_vaapi_surface_new_full (). In this case, the former is simpler
11931 than the first. This patch changes that.
11933 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11935 * gst/vaapi/gstvaapipostproc.c:
11936 vaapipostproc: notify if src pad caps changed
11937 If src pad caps have changed, it needs to notify it downstream. In
11938 addition, do not set passthrough if they have changed.
11939 Otherwise, transform sometimes starts processing before caps change.
11940 The passthrough value will be set in fixate later in this case.
11941 https://bugzilla.gnome.org/show_bug.cgi?id=775204
11943 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11945 * gst/vaapi/gstvaapidecodebin.c:
11946 vaapidecodebin: capsfilter to optimize negotiation
11947 Add a capsfilter forcing the caps
11948 "video/x-raw(memory:VASurface), format=(string)NV12" between the
11949 queue and the vaapipostproc so no renegotiation is required.
11950 https://bugzilla.gnome.org/show_bug.cgi?id=776175
11952 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11954 * gst/vaapi/gstvaapivideomemory.c:
11955 vaapivideomemory: fail surface/image configuration
11956 To detect and handle errors during allocator_configure_surface_info()
11957 and allocator_conigure_image_info().
11958 https://bugzilla.gnome.org/show_bug.cgi?id=776084
11959 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11961 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11963 * gst/vaapi/gstvaapisink.c:
11964 vaapisink: ensures raw caps at start()
11965 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
11966 race conditions at get_caps(), especially with multiple src elements.
11967 https://bugzilla.gnome.org/show_bug.cgi?id=776303
11969 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11971 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11972 libs: surface: fix error handling code style
11974 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11976 * gst/vaapi/gstvaapivideomemory.c:
11977 vaapivideomemory: add gst_video_info_update_from_surface()
11978 With this function is possible to refactor and remove duplicated code
11979 between dmabuf configuration and direct rendering/uploading
11982 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11984 * gst/vaapi/gstvaapivideomemory.c:
11985 vaapivideomemory: no log object at initialization
11986 When an instance of GstVaapiVideoAllocator fails at initializing, the
11987 log message should not include the allocator's object, because it is
11988 going to be unrefed.
11990 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11992 * gst/vaapi/gstvaapidecode.c:
11993 vaapidecode: lock stream when setting caps
11995 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11997 * gst/vaapi/gstvaapidecode.c:
11998 Revert "vaapidecode: implement negotiate() vmethod"
11999 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
12000 videodecode's negotiate() vmethod is also called when events arrive,
12001 but this would mean that the proper configuration of sink pad might
12002 not be complete, thus we should not update the src pad.
12003 Let's keep the old non-vmethod negotitate().
12005 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12007 * gst/vaapi/gstvaapi.c:
12008 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
12009 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
12011 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
12013 * gst/vaapi/gstvaapiencode.c:
12014 * gst/vaapi/gstvaapiencode.h:
12015 vaapiencode: get surface formats in get_caps()
12016 Query for the supported surface formats in config at get_caps() vmethod.
12017 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12018 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12020 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
12022 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12023 * gst-libs/gst/vaapi/gstvaapiencoder.h:
12024 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
12025 This method will return the valid surface formats in the current
12026 config. If the are no VAConfig it is created with the information
12028 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12029 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12031 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
12033 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12034 libs: encoder: split set_context_info()
12035 Split set_context_info() adding init_context_info() which only
12036 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
12037 required for VAConfig.
12038 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12039 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12041 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
12043 * gst-libs/gst/vaapi/gstvaapicontext.c:
12044 libs: context: skip VAContext if no frame size
12045 If GstVaapiContextInfo has just initial information, without frame's
12046 width and height, skip the creation of the VAContext, just keep the
12048 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12049 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12051 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
12053 * gst-libs/gst/vaapi/gstvaapicontext.c:
12054 libs: context: split context_create()
12055 Split the funcion context_create() into context_create() and
12057 Decoupling VAConfig and VAContext during context creation, we could
12058 query the VAConfig for the supported surface's formats without creating
12060 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12062 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12064 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12065 libs: drm: find render node in hybrid system
12066 Originally the drm backend only tried to open the first render node
12067 found. But in hybrid system this first render node might not support
12068 VA-API (propietary Nvidia driver, for example).
12069 This patch tries all the available nodes until a finding one with a
12070 VA-API supported driver.
12071 https://bugzilla.gnome.org/show_bug.cgi?id=774811
12072 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
12073 Reza Razavi <reza@userful.com>
12075 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12077 * gst/vaapi/gstvaapivideomemory.c:
12078 vaapivideomemory: refactor code for readability
12079 Added the inlined function allocator_configure_pools() moving out code
12080 from gst_vaapi_video_allocator_new() to make clear that it is a
12081 post-initalization of the object.
12083 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12085 * gst/vaapi/gstvaapivideomemory.c:
12086 vaapivideomemory: log error if not VA image
12087 Log an error message if the test image for surface downloading
12088 cannot be allocated or mapped.
12090 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12092 * gst/vaapi/gstvaapivideomemory.c:
12093 vaapivideomemory: remove unused macros
12094 These macros are not used. Let us remove them.
12096 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12098 * gst/vaapi/gstvaapivideomemory.c:
12099 * gst/vaapi/gstvaapivideomemory.h:
12100 vaapivideomemory: rename video for allocation_info
12101 Since video_info stores the GstVideoInfo of the allocation caps,
12102 it is clear if we rename it as allocation_info, to distinguish it
12103 later from negotiation_info.
12105 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
12107 * gst/vaapi/gstvaapivideomemory.c:
12108 * gst/vaapi/gstvaapivideomemory.h:
12109 vaapivideomemory: add real GstVaapiDmaBufAllocator
12110 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
12111 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
12112 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
12113 from GstDmaBufAllocator.
12114 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12115 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12117 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
12119 * gst/vaapi/gstvaapivideomemory.c:
12120 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
12121 Add a helper function to initialize the gst_debug_vaapivideomemory,
12122 to use it either by the GstVaapiVideoAllocatorClass or
12123 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
12124 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
12125 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12127 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
12129 * gst/vaapi/gstvaapiencode.c:
12130 vaapiencode: release internal encoder at stop()
12131 As the internal encoder is created at start(), let's release it at
12132 stop() vmethod, to be consistent.
12133 gst_vaapiencode_destroy() is called since it also resets the input and
12134 output states, which is something that the base class does internally
12135 after calling stop() vmethod.
12136 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12137 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12139 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
12142 Automatic update of common submodule
12143 From f49c55e to 39ac2f5
12145 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
12147 * gst/vaapi/gstvaapiencode.c:
12148 vaapiencode: call ensure_encoder() at start()
12149 Currently, specific encoder is created during set_format(). This might
12150 lead to race condition when creating profiles with multiple encoders.
12151 This patch moves ensure_encoder() call to start() vmethod to ensure
12152 avoiding the race condition.
12153 https://bugzilla.gnome.org/show_bug.cgi?id=773546
12155 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12157 * gst/vaapi/gstvaapidecodebin.c:
12158 vaapidecodebin: bring back dynamic configuration
12159 In commit ca0c3fd6 we remove the dynamic configuration if the bin
12160 because we assumed that the bin will be always static as it is
12162 Nonetheless we were wrong, because it is possible to request, with a
12163 property, to avoid the use of the post-processor.
12164 Since we want to add a way to disable the post-processor through
12165 environment variables, this remove feature is required again.
12166 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
12167 postprocessor inside of the vaapidecodebin is disabled, then
12168 vaapidecodebin is an alias of the old vaapidecode.
12169 https://bugzilla.gnome.org/show_bug.cgi?id=775041
12171 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12173 * gst/vaapi/gstvaapidecode.c:
12174 vaapidecode: implement negotiate() vmethod
12175 Instead of decorating the negotiate() method, let us override it,
12176 so the stream is locked while called.
12177 https://bugzilla.gnome.org/show_bug.cgi?id=775040
12179 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
12182 common: use https protocol for common submodule
12183 https://bugzilla.gnome.org/show_bug.cgi?id=775110
12185 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
12187 * gst-libs/gst/vaapi/Makefile.am:
12188 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
12189 In case libva-wayland has its headers not installed in default
12190 locations (like /usr/include), the build fails to include "wayland-client.h":
12191 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
12192 In file included from gstvaapidisplay_wayland.h:27:0,
12193 from gstvaapidisplay_egl.c:35:
12194 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
12195 #include <wayland-client.h>
12196 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
12197 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
12198 for libva-wayland.pc in configure and use this in other places as well. It is thus only
12199 correct and consequent, to do it also at this spot.
12200 https://bugzilla.gnome.org/show_bug.cgi?id=773946
12202 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12204 * gst/vaapi/gstvaapivideocontext.c:
12205 vaapivideocontext: log a message if no bus
12206 Raise a warning if there is no bus when the element tries to post a
12209 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12211 * gst/vaapi/gstvaapisink.c:
12212 vaapisink: create display at open()
12213 Instead of creating the VA display before setting the bus to the
12214 element, it is created when the element is opened.
12215 Basically, this commit is a revert of
12216 5e5d62cac79754ba60057fc2516135aad8d7de35
12217 That was done when the GStreamer's context sharing was not mature
12218 enough as now. There is no reason to keep this hack.
12220 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12222 * gst/vaapi/gstvaapidecode.c:
12223 vaapidecode: don't add video crop meta
12224 Since the differentiation of negotiation caps and allocation caps,
12225 there is no need to add a video crop meta with the negotiation caps.
12226 Hence, removing it.
12227 https://bugzilla.gnome.org/show_bug.cgi?id=773948
12229 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12231 * gst/vaapi/gstvaapivideobuffer.c:
12232 * gst/vaapi/gstvaapivideometa.c:
12233 * gst/vaapi/gstvaapivideometa.h:
12234 remove the video converter from vaapi buffer meta
12235 Since all the video converter were deprecated in gstreamer-1.2, we don't need
12236 to handle them anymore in the vaapi's buffer meta.
12237 This patch removes its usage and the buffer meta's API for that.
12238 https://bugzilla.gnome.org/show_bug.cgi?id=745728
12240 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12242 * gst/vaapi/gstvaapipluginbase.c:
12243 plugins: destroy source pad allocator and pool
12244 First, deactivate source pad pool when the out caps change, and if so,
12245 destroy texture map, the source pad allocator and pool only if the
12246 new caps are different from the ones already set.
12248 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12250 * gst/vaapi/gstvaapipluginbase.c:
12251 plugins: don't destroy sink pad allocator
12252 Don't destroy sink pad allocator at _set_caps() because it will be done at
12253 ensure_sinkpad_buffer_pool() if it is required.
12255 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12257 * gst/vaapi/gstvaapipluginbase.c:
12258 plugins: first validate the out caps
12259 When calling _set_caps() first validate the out caps before doing
12262 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12264 * gst/vaapi/gstvaapidecode.c:
12265 vaapidecode: negotiate after destroying allocator
12266 This is related with bug 758907 when no vaapipostproc is used (no
12267 vaapidecodebin). In order to negotiate downstream we need to destroy
12268 the source pad allocator, otherwise the same allocated buffers are
12269 used, failing the mapping.
12271 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12273 * gst/vaapi/gstvaapivideomemory.c:
12274 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
12275 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
12276 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
12278 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12280 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12282 * gst/vaapi/gstvaapipluginbase.c:
12283 plugins: update the src pad allocator video info
12284 Update the size, stride and offset of the source pad allocator video
12285 info, so the pool could set the correct GstVideoMeta
12286 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12288 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12290 * gst/vaapi/gstvaapivideomemory.c:
12291 vaapivideomemory: add missing documentation
12292 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12294 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12296 * gst/vaapi/gstvaapipluginbase.c:
12297 plugins: use early return without goto
12298 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12300 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12302 * gst/vaapi/gstvaapipluginbase.c:
12303 * gst/vaapi/gstvaapivideomemory.c:
12304 * gst/vaapi/gstvaapivideomemory.h:
12305 plugins: add allocator to allocation query
12306 This patch adds the created allocator to the allocation query either
12307 in decide_allocation() and propose_allocation() vmehtods.
12308 With it, there's no need to set the modified allocator's size in the
12309 pool configuration.
12310 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12312 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
12314 * gst/vaapi/gstvaapivideobufferpool.c:
12315 vaapivideobufferpool: set correct buffer size
12316 We should set the correct buffer size when we are configuring the pool,
12317 otherwise the buffer will be discarded when it returns to the pool.
12318 Indeed when the ref-count of a buffer reaches zero, its pool will queue
12319 it back (and ref it) if, and only if, the buffer size matches the
12320 configured buffer size on the pool.
12321 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
12322 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12324 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12326 * gst/vaapi/gstvaapivideomemory.c:
12327 vaapivideomemory: check for memory allocator
12328 When calling gst_vaapi_video_memory_copy() the allocator of the memory
12329 to copy should be allocated by the vaapi allocator.
12330 This patch does this verification.
12332 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12334 * gst/vaapi/gstvaapivideomemory.c:
12335 vaapivideomemory: code style fixes
12336 A cosmetic commit for enhance readability of the casts and method
12339 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12341 * gst/vaapi/gstvaapivideomemory.c:
12342 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
12343 Instead of having a gst_vaapi_video_memory_free() that is only going to
12344 be called by gst_vaapi_video_allocator_free(), let's just remove the first
12345 and merged into the second.
12347 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12349 * gst/vaapi/gstvaapivideomemory.c:
12350 vaapivideomemory: avoid virtual methods casting
12351 Use the expected virtual method signatures for readability.
12353 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12355 * gst/vaapi/gstvaapivideomemory.c:
12356 vaapivideomemory: remove unimplemented methods
12357 Remove unimplemented method for allocator mem_share() and mem_is_span().
12359 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12361 * gst/vaapi/gstvaapivideomemory.c:
12362 vaapivideomemory: fail if frame map can't get plane
12363 If map() vmethod in GstVideMeta cannot get the plane data, return false,
12364 thus the caller will not try to read invalid memory.
12365 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12367 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12369 * gst/vaapi/gstvaapivideomemory.c:
12370 * gst/vaapi/gstvaapivideomemory.h:
12371 vaapivideomemory: lock map and unmap operations
12372 In order to avoid race condition when two threads call map/unmap the same
12373 VA surface, this patch mutex these operations.
12374 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12376 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12378 * gst/vaapi/gstvaapivideomemory.c:
12379 vaapivideomemory: refactor vaapi memory unmapping
12380 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
12381 gst_vaapi_video_memory_unmap() when unmapping.
12382 This patch refactors both methods adding the common function
12383 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
12384 is correctly reset.
12385 Additionally, only when mapping flag has the WRITE bit, it set the image as
12386 current, which was done in gst_video_meta_map_vaapi_memory() but no in
12387 gst_vaapi_video_memory_map().
12388 In order to make this, the mapping flags were required, so instead of
12389 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
12390 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12392 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12394 * gst/vaapi/gstvaapivideomemory.c:
12395 vaapivideomemory: refactor vaapi memory mapping
12396 There were duplicated code in gst_video_meta_map_vaapi_memory() and
12397 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
12398 This patch refactors both methods adding the common function
12399 map_vaapi_memory().
12400 Additionally, only when flag has the READ bit it calls
12401 ensure_images_is_current(), which was done in
12402 gst_video_meta_map_vaapi_memory() but no in
12403 gst_vaapi_video_memory_map().
12404 https://bugzilla.gnome.org/show_bug.cgi?id=772151
12406 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12408 * gst/vaapi/gstvaapidecode.c:
12409 vaapidecode: unref allowed_sinkpad_caps at close()
12410 The variable member allowed_sinkpad_caps is constructed querying the
12411 current VA display. Bearing that in mind, the variable shall be freed
12412 when the VA display changes or is removed.
12413 This patch moves the freeing of allowed_sinkpad_caps to close(), when
12414 the VA display is freed.
12416 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12418 * gst/vaapi/gstvaapisink.c:
12419 vaapisink: finish event thread at stop()
12420 The thread that handles window's events should be finished during
12421 pipeline's shutdown, otherwise it will remain alive during pipeline
12422 re-activation, leading to unexpected problems.
12423 This patch fixes failures of intensive_state_change scenario of
12425 https://bugzilla.gnome.org/show_bug.cgi?id=774241
12427 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12429 * gst/vaapi/gstvaapipostproc.c:
12430 vaapipostproc: enhance debug message
12431 "gst_pad_push" is not a good description of the event.
12433 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
12435 * gst/vaapi/gstvaapipostproc.c:
12436 postproc: honor gst_pad_push() return value
12437 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
12438 deadlock during seek.
12439 This patch returns the same error of gst_pad_push() and log out the
12441 https://bugzilla.gnome.org/show_bug.cgi?id=774030
12443 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12445 * gst/vaapi/gstvaapidecode.c:
12446 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
12447 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
12448 compiled with out EGL/GLX support: it shall not support
12449 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
12450 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
12451 allowed src caps for vaapedecode if EGL/GLX.
12453 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12455 * gst/vaapi/gstvaapivideomemory.c:
12456 vaapivideomemory: increment map counter only if succeeded
12457 Previously the frame map counter increased independently if the map succeeded
12458 or not. This leaded to critical messages and crashes if the frame was unable
12459 to be mapped, but the counter increased.
12460 This patch increases the map counter only if the map operation occurred.
12461 https://bugzilla.gnome.org/show_bug.cgi?id=773939
12463 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12465 * gst/vaapi/gstvaapipluginbase.c:
12466 plugins: set negotiation caps in src allocator
12467 When the allocator is created, it stores the allocation caps. But sometimes
12468 the "allocation caps" may be different from the "negotiation caps".
12469 In this case, the allocator should store the negotiation caps since they
12470 are the ones used for frame mapping with GstVideoMeta.
12471 When vaapispostproc is used, this is not a problem since the element is assume
12472 to resize. But when using a vaapi decoder only, with a software renderer, it
12473 fails in this case.
12474 https://bugzilla.gnome.org/show_bug.cgi?id=773323
12476 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12478 * gst/vaapi/gstvaapidecode.c:
12479 * gst/vaapi/gstvaapidecode.h:
12480 vaapidecode: generate source pad caps
12481 Just as vaapipostproc, VA decoder's context can be queried to get the possible
12482 raw formats, so, the src caps can negotiate the exact caps that the context
12485 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12487 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12488 * gst-libs/gst/vaapi/gstvaapidecoder.h:
12489 libs: decoder: add _get_surface_formats()
12490 This function exposes the available formats of the surfaces in the the current
12491 context to the plugins.
12493 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12495 * gst-libs/gst/vaapi/gstvaapicontext.c:
12496 * gst-libs/gst/vaapi/gstvaapicontext.h:
12497 libs: context: ensure context formats
12498 This patch ensures to get the formats, as filter does, available in the
12499 decoder / encoder context.
12500 The context fills up the array as soon it is created, otherwise the pipeline
12501 could get stalled (perhaps this is a bug in my HSW backend).
12502 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12504 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12506 * gst-libs/gst/vaapi/gstvaapifilter.c:
12507 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
12508 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
12509 libs: move get_surface_formats to utils_core
12510 The query of all the supported formats for a VA config were only used by the
12511 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
12512 negotiate a suitable raw format with downstream, we need to query these
12513 formats against the decoder's config.
12514 This patch is the first step: moves the code in filter's ensure_image() to a
12515 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
12516 shared later by the decoder.
12517 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12519 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12521 * gst/vaapi/gstvaapipluginbase.c:
12522 plugins: remove set_sinkpad_dmabuf_allocator()
12523 Since when the sink pad allocator is created, it is decided if the required
12524 one is vaapi allocator or dmabuf allocator, there is no need to force its set
12527 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12529 * gst/vaapi/gstvaapipluginbase.c:
12530 plugins: ensure display when getting raw caps
12531 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
12532 meanwhile it is transforming caps. The problem is that stop() calls
12533 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
12534 the va display is used in tranform_caps() when it is extracting the possible
12535 format conversions. This display disappearing generates warning messages.
12536 This patch holds a local reference of va display at ensure_allowed_raw_caps()
12537 hence it doesn't go away meanwhile it is used, even if the
12538 gst_vaapi_plugin_base_close() is called in other thread.
12539 https://bugzilla.gnome.org/show_bug.cgi?id=773593
12541 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12543 * gst/vaapi/gstvaapiencode_h264.c:
12544 * gst/vaapi/gstvaapiencode_h265.c:
12545 plugins: fix code style for errors
12547 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12549 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12550 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
12551 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
12552 * gst-libs/gst/vaapi/gstvaapicontext.c:
12553 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12554 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12555 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
12556 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12557 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12558 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12559 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12560 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12561 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
12562 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12563 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12564 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12565 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12566 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12567 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12568 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
12569 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12570 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12571 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12572 * gst-libs/gst/vaapi/gstvaapifilter.c:
12573 * gst-libs/gst/vaapi/gstvaapiimage.c:
12574 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12575 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
12576 * gst-libs/gst/vaapi/gstvaapipixmap.c:
12577 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12578 * gst-libs/gst/vaapi/gstvaapisurface.c:
12579 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12580 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12581 * gst-libs/gst/vaapi/gstvaapitexture.c:
12582 * gst-libs/gst/vaapi/gstvaapiutils.c:
12583 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12584 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
12585 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12586 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12587 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12588 libs: fix code style for errors
12590 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12592 * gst/vaapi/gstvaapipluginbase.c:
12593 * gst/vaapi/gstvaapivideocontext.c:
12594 plugins: update GstGL deprecated symbol
12595 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
12597 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12599 * gst/vaapi/gstvaapipluginbase.c:
12600 plugins: direct render when raw video
12601 Enable the direct rendering with linear surfaces if the negotiated src caps
12602 are video/x-raw without features.
12603 Pass also the caps, since they are needed to know the requested caps features.
12605 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12607 * gst/vaapi/gstvaapipluginbase.c:
12608 plugins: move src allocator error to instantiator
12609 Just as we did in ensure_sinkpad_allocator(), let's move the error message
12610 into the ensure_srcpad_allocator() from the caller,
12611 gst_vaapi_plugin_base_decide_allocation()
12613 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12615 * gst/vaapi/gstvaapipluginbase.c:
12616 plugins: enable direct upload if raw video
12617 Enable the direct upload with linear surfaces if the negotiated sink caps are
12618 video/x-raw without features.
12620 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12622 * gst/vaapi/gstvaapipluginutil.c:
12623 * gst/vaapi/gstvaapipluginutil.h:
12624 pluginutil: add gst_caps_is_video_raw()
12626 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12628 * gst/vaapi/gstvaapipluginbase.c:
12629 plugins: receive caps in ensure_sinkpad_allocator()
12630 Instead of receiving the GstVideoInfo structure as parameter, get the original
12631 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
12632 which allocator instantiate.
12634 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12636 * gst/vaapi/gstvaapivideomemory.c:
12637 vaapivideomemory: destroy derived image at unmap
12638 If the allocator was configured to use direct upload or rendering, the
12639 generated derived image created at mapping needs to be destroyed after
12640 unmapping, because, in order to process the surface, it should not be marked
12641 as "busy" by the driver.
12643 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12645 * gst/vaapi/gstvaapivideomemory.c:
12646 vaapivideomemory: enhance logs for direct modes
12647 Print, conditionally, only the enabled direct mode.
12649 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12651 * gst/vaapi/gstvaapivideomemory.c:
12652 * gst/vaapi/gstvaapivideomemory.h:
12653 vaapivideomemory: add direct upload flag
12654 Adds the direct-upload flag in the GstVaapiVideoAllocator and
12655 GstVaapiVideoMemory.
12656 It still doesn't apply any functional change.
12658 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12660 * gst/vaapi/gstvaapipluginbase.c:
12661 * gst/vaapi/gstvaapivideomemory.c:
12662 * gst/vaapi/gstvaapivideomemory.h:
12663 vaapivideomemory: set direct rendering at run-time
12664 The way to experiment with the direct rendering is through and internal
12665 compiler pre-processor flag.
12666 The current change set enables a way to specified at run-time, as a flag
12667 passed to the allocator at instanciation time.
12669 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12671 * gst/vaapi/gstvaapivideomemory.c:
12672 vaapivideomemory: log in perf category when copy
12673 Log in performance category when the derive image handling fails, falling back
12676 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12678 * gst/vaapi/gstvaapivideomemory.c:
12679 vaapivideomemory: error log is derive image fails
12680 Instead of a silently failure of the derive image, this patch log an error
12681 message according to the failure.
12683 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12685 * gst/vaapi/gstvaapivideomemory.c:
12686 vaapivideomemory: store surface alloc flags in qdata
12687 For sake of consistency, we should add the requested surface allocation flags
12688 to the object's qdata structure.
12690 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12692 * gst/vaapi/gstvaapivideomemory.c:
12693 vaapivideomemory: category init when object define
12694 Move the Gstreamer debug category initialize to the GObject definition.
12696 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12698 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12699 libs: vaapitexturemap: trivial code-style fix
12701 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12703 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12704 libs: display: egl: avoid recreate native display
12705 Instead of passing the native descriptor of the display, just pass the received
12706 GstVaapiDisplay and reuse it.
12708 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12710 * gst/vaapi/gstvaapipluginbase.c:
12711 plugins: log the GstVaapiDisplay name
12712 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
12713 name. Log it instead of the memory address.
12715 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
12717 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
12718 libs: window: egl: pass native va display
12719 When creating a GstVaapiWindowEGL, it also creates native window by its own
12720 native display. It should pass the native display, either X11 or Wayland.
12721 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12723 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
12725 * gst-libs/gst/vaapi/gstvaapidebug.h:
12726 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12727 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12728 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12729 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
12730 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12731 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12732 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
12733 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12734 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12735 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
12736 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12737 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12738 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12739 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
12740 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12741 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12742 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
12743 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12744 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
12745 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12746 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
12747 * gst/vaapi/gstvaapivideocontext.c:
12748 libs: display: GstVaapiDisplay as GstObject descendant
12749 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
12750 instead of GstVaapiMiniObject. In this way we can use all the available
12751 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
12752 In addition, a new debug category for GstVaapiDisplay is created to make it
12753 easier to trace debug messages. It is named "vaapidisplay" and it transverse
12754 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
12755 This patch is a step forward to expose GstVaapiDisplay for users in a future
12757 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12758 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12760 === release 1.11.0 ===
12762 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
12765 Back to development
12767 === release 1.10.0 ===
12769 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
12774 * gstreamer-vaapi.doap:
12777 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12779 * gst/vaapi/gstvaapidecodebin.c:
12780 vaapidecodebin: resurrect disable-vpp property
12781 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12783 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12785 * gst/vaapi/gstvaapidecodebin.c:
12786 vaapidecodebin: name the internal queue
12787 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12789 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12791 * gst/vaapi/gstvaapidecodebin.c:
12792 * gst/vaapi/gstvaapidecodebin.h:
12793 vaapidecodebin: remove unused variables
12794 Since vaapipostproc is only registered if the driver supports it, all the
12795 support for dynamic loading were removed. Though some leftovers remained.
12796 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12798 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12800 * docs/plugins/Makefile.am:
12801 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12802 * docs/plugins/running.xml:
12803 docs: document environment variables
12804 https://bugzilla.gnome.org/show_bug.cgi?id=773544
12806 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12808 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12809 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12810 * gst/vaapi/Makefile.am:
12811 * gst/vaapi/gstvaapidecode.c:
12812 * gst/vaapi/gstvaapidecodebin.c:
12813 * gst/vaapi/gstvaapidecodedoc.c:
12814 docs: replace vaapidecode with each codec
12815 In the spirit of the codec split, this patch removes the documentation of
12816 vaapidecode and adds a page per each possible decoder.
12817 Nonetheless, only those available in the compilation system are going to be
12818 instrospected, because the rest are not registered.
12820 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12822 * gst/vaapi/gstvaapipluginutil.c:
12823 * gst/vaapi/gstvaapivideobuffer.c:
12824 * gst/vaapi/gstvaapivideometa.c:
12825 docs: add missing long descriptions
12827 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12829 * gst/vaapi/gstvaapipostproc.c:
12830 vaapipostproc: use GST_*_OBJECT when possible
12831 Since we can have several vaapipostproc operating in a pipeline, it is useful
12832 to know which one is generating the logging message.
12833 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12835 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12837 * gst/vaapi/gstvaapidecode.c:
12838 * gst/vaapi/gstvaapidecode.h:
12839 vaapidecode: rename member to allowed_sinkpad_caps
12840 vaapidecode has a member named allowed_caps, but this name is not enough
12841 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
12842 No functional changes were included.
12843 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12845 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12847 * gst/vaapi/gstvaapiencode_h264.c:
12848 * gst/vaapi/gstvaapiencode_h265.c:
12849 * gst/vaapi/gstvaapisink.c:
12850 * gst/vaapi/gstvaapivideomemory.c:
12851 * gst/vaapi/gstvaapivideometa.c:
12852 * gst/vaapi/gstvaapivideometa_texture.c:
12853 plugins: fix code style for errors
12854 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12856 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12858 * gst/vaapi/gstvaapivideomemory.c:
12859 vaapivideomemory: comment style
12860 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12862 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12864 * gst/vaapi/gstvaapivideomemory.c:
12865 * gst/vaapi/gstvaapivideomemory.h:
12866 vaapivideomemory: rename input parameter
12867 In order to clarify the use of flag as input parameter, it is renamed to
12868 surface_alloc_flag, since it is used when creating a VA surface with certain
12870 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12872 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12874 * gst/vaapi/gstvaapidecode.c:
12875 vaapidecode: rename element description
12876 So encoders and decoders have similar descriptions.
12877 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12879 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12881 * gst/vaapi/gstvaapiencode_h264.c:
12882 * gst/vaapi/gstvaapiencode_h265.c:
12883 vaapiencode: h264, h265: rename codec name
12884 So encoder and decoders have the same codec name.
12885 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12887 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12889 * gst/vaapi/gstvaapipluginbase.c:
12890 plugins: simplify code
12891 Merge two lines of variable declarations.
12892 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12894 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
12896 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12897 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
12898 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12899 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12900 libs: minor correction for logical consistency
12901 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
12902 use its methods, even though it doesn't change functionality.
12903 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
12904 GstVaapiObject, hence its methods shall be used.
12905 https://bugzilla.gnome.org/show_bug.cgi?id=772554
12907 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
12909 * gst/vaapi/gstvaapivideomemory.c:
12910 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
12911 In short GstFdMemory is configured to call close when using
12913 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12915 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12918 * gst-libs/gst/vaapi/Makefile.am:
12919 build: clean up the dlopen usage
12921 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12923 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12924 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12925 encoder: h264,h265: fix regression in offset count
12926 In commit dc35dafa a bug was introduced because I assumed that
12927 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
12928 https://bugzilla.gnome.org/show_bug.cgi?id=772259
12930 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12933 docs: update README
12935 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12937 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12938 libs: display: egl: remove unused header include
12939 The header gmodule.h is not used since the library dynamic loading for EGL
12940 display was removed.
12941 https://bugzilla.gnome.org/show_bug.cgi?id=772599
12943 === release 1.9.90 ===
12945 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
12951 * gstreamer-vaapi.doap:
12954 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
12956 * gst/vaapi/gstvaapidecode.c:
12957 * gst/vaapi/gstvaapidecodebin.c:
12958 * gst/vaapi/gstvaapiencode_h264.c:
12959 * gst/vaapi/gstvaapiencode_h265.c:
12960 * gst/vaapi/gstvaapiencode_jpeg.c:
12961 * gst/vaapi/gstvaapiencode_mpeg2.c:
12962 * gst/vaapi/gstvaapiencode_vp8.c:
12963 * gst/vaapi/gstvaapipostproc.c:
12964 * gst/vaapi/gstvaapisink.c:
12965 vaapi: use new gst_element_class_add_static_pad_template()
12966 https://bugzilla.gnome.org/show_bug.cgi?id=763083
12967 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12969 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
12971 * gst/vaapi/gstvaapipluginbase.c:
12972 plugins: reset textures at negotiation/shutdown
12973 When caps reconfiguration is called, the new downstream frame size might be
12974 different. Thus, if the downstream caps change,the display's texture map is
12976 In addition, during pipeline shutdown, textures in texture map have to be
12977 released, since each one have a reference to the GstVaapiDisplay object, which
12978 is a dangerous circular reference.
12979 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12980 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12982 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
12984 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12985 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12986 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12987 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12988 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12989 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12990 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12991 * gst/vaapi/gstvaapivideometa_texture.c:
12992 libs: display{egl,glx}: cache GstVaapiTextures
12993 instances when created and reuse
12994 This patch improves performance when glimagesink uploads a GL texture.
12995 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
12996 instance of GstVaapiTextureMap, so our internal texture structure can be found
12997 by matching the GL texture id for each frame upload process, avoiding the
12998 internal texture structure creation and its following destruction.
12999 https://bugzilla.gnome.org/show_bug.cgi?id=769293
13000 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13002 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
13004 * gst-libs/gst/vaapi/Makefile.am:
13005 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
13006 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
13007 libs: vaapitexturemap: implement GstVaapiTextureMap
13008 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
13009 reused. Internally it is a hash table.
13010 Note that it is GstObject based rather than GstVaapiObject, as part of the future
13011 converstion to GstObject of most of the code.
13012 https://bugzilla.gnome.org/show_bug.cgi?id=769293
13013 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13015 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13017 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
13018 encoder: vp8: Increase the allocation size for coded buffer
13019 We are not getting enough compression for some streams and
13020 encoded frame end up with more size than allocated.
13021 Assuming a compression ratio of 4, which should be good enough
13022 for holding the frames.
13023 https://bugzilla.gnome.org/show_bug.cgi?id=771528
13025 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13027 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13028 encoder: vp9: Fix refresh frame flag setting
13029 While doing the mode-1 referece picture selection,
13030 the circular buffer logic was not correctly setting the
13031 refresh frame flags as per VP9 spec.
13032 Make sure refresh_flag[0] get updated correclty after
13033 each cycle of GST_VP9_REF_FRAMES.
13034 https://bugzilla.gnome.org/show_bug.cgi?id=771507
13036 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13038 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13039 vaapidecode: codec_data minimal size is 7
13040 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
13041 stream, not in the codec_data, so the size of codec_data might be 7.
13042 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
13043 https://bugzilla.gnome.org/show_bug.cgi?id=771441
13045 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13047 * gst/vaapi/gstvaapidecode.c:
13048 vaapidecode: reset decoder hard when set_format()
13049 set_format() is called by upstream when the stream capabilites has changed.
13050 Before, if the new stream is compatible with the old one the VA decoder was
13051 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
13052 when the upstreamer parsers gets more details of the stream, such as the
13053 framerate. Hence, when the src caps are negotiates, the further sink caps
13054 updates are ignored.
13055 This patch forces the VA decoder destroying and recreation when set_format()
13057 https://bugzilla.gnome.org/show_bug.cgi?id=770921
13059 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
13062 configure: Depend on gstreamer 1.9.2.1
13064 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13066 * gst/vaapi/gstvaapivideomemory.c:
13067 Revert "vaapivideomemory: load VA Image when mapping to write"
13068 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
13070 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
13073 Automatic update of common submodule
13074 From b18d820 to f980fd9
13076 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
13079 Automatic update of common submodule
13080 From f49c55e to b18d820
13082 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
13084 * gst/vaapi/gstvaapipluginbase.c:
13085 plugins: set allocator's image size to sinkpad bufferpool
13086 Otherwise the buffer is always ditched by the bufferpool, losing performance.
13087 https://bugzilla.gnome.org/show_bug.cgi?id=771035
13089 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13091 * gst-libs/gst/vaapi/gstvaapisurface.c:
13092 libs: surface: ensure composite overlay is not bigger
13093 Ensure the composition overlay rectangle (subtitles) is not bigger than
13094 the surface where it is going to be composited and rendered.
13095 https://bugzilla.gnome.org/show_bug.cgi?id=766978
13097 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13099 * gst/vaapi/gstvaapivideomemory.c:
13100 vaapivideomemory: load VA Image when mapping to write
13101 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
13102 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
13104 https://bugzilla.gnome.org/show_bug.cgi?id=766978
13106 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13108 * gst/vaapi/gstvaapidecode.c:
13109 vaapidecode: merge vc1 and wmv3 elements
13110 This patch merges vaapivc1dec and vaapiwmv3dec into a single
13111 vaapivc1dec. Also, removed the WMVA format, since it is not
13112 supported by libva.
13113 https://bugzilla.gnome.org/show_bug.cgi?id=734093
13115 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13117 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13118 decoder: vc1: fails only on advanced profile
13119 In commit 2eb4394 the frame coding mode was verified for progressive
13120 regardless the profile. But the FCM is only valid in the advanced
13121 profile. This patch checks for the advanced profile before verifying FCM for
13123 https://bugzilla.gnome.org/show_bug.cgi?id=769250
13125 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13127 * gst/vaapi/gstvaapi.c:
13128 vaapi: DISPLAY envvar as dependency
13129 In a multiple video cards system, a X11 environment may have different VA
13130 capabilities. This patch tracks the DISPLAY environment variable to
13131 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
13132 https://bugzilla.gnome.org/show_bug.cgi?id=770357
13134 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13136 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13137 decoder: vc1: Fail only on actual interlaced frames
13138 In the earlier patch:
13139 f31d9f3 decoder: vc1: Print error on interlaced content
13140 Decoding would error out if the interlace flag was set in the
13141 sequence bdu. This isn't quite right because a video can have this
13142 flag set and yet not have any interlaced pictures.
13143 Here instead we error out when either parsing a field bdu or
13144 decoding a frame bdu which has fcm set to anything other than
13146 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13147 https://bugzilla.gnome.org/show_bug.cgi?id=769250
13149 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
13152 Back to development
13154 === release 1.9.2 ===
13156 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
13161 * gstreamer-vaapi.doap:
13164 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
13166 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13167 decoder: vc1: Print error on interlaced content
13168 Interlaced video is as yet unsupported in the vc1 element. Print
13169 an error to make that more obvious.
13170 https://bugzilla.gnome.org/show_bug.cgi?id=769250
13172 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13174 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13175 encoder: h264: fix C90 mixed declarations and code
13176 Commit 4259d1a introduced this compilation error. This patch fixes it.
13178 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13180 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13181 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13182 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
13183 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
13184 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
13185 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
13186 to avoid overflows, underflows and loss of precision.
13187 https://bugzilla.gnome.org/show_bug.cgi?id=768458
13189 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13191 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13192 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13193 vaapiencode: h264,h265: validate fps numerator
13194 Validate that fps numerator is non-zero so it can be used to calculate
13195 the duration of the B frame.
13196 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
13197 order to aviod overflows, underflows and loss of precision.
13198 https://bugzilla.gnome.org/show_bug.cgi?id=768458
13200 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
13202 * gst/vaapi/gstvaapi.c:
13203 encoders: demote to RANK_NONE since not fit for autoplugging yet
13204 Encoders claim to support a whole bunch of input formats but then
13205 just error out if the format is not actually supported, even if
13206 there's a converter in front. This means they're not fit for
13207 autoplugging in encodebin or camerabin yet and therefore should
13208 not have a rank. People can still use them in custom pipelines.
13209 https://bugzilla.gnome.org/show_bug.cgi?id=769266
13211 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13213 * gst/vaapi/gstvaapipluginbase.c:
13214 plugins: check dmabuf-import for sink pad allocator
13215 Check earlier if upstream video source has activated the dmabuf-import
13216 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
13219 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13221 * gst/vaapi/gstvaapipluginbase.c:
13222 plugins: reset allocators if video info changed
13223 If the frame size or format, change, the allocators are reset, so a new ones
13224 can be created with the new video info.
13226 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13228 * gst/vaapi/gstvaapipluginbase.c:
13229 plugins: remove sink pad allocator if caps change
13230 If the negotiated sinkpad caps change, destroy the assignated allocator,
13231 because it is not valid anymore.
13233 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13235 * gst/vaapi/gstvaapipluginutil.c:
13236 * gst/vaapi/gstvaapipluginutil.h:
13237 pluginutil: const params to gst_video_info_changed()
13238 Since they are not modified, we should mark them as const.
13240 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13242 * gst/vaapi/gstvaapipluginbase.c:
13243 * gst/vaapi/gstvaapivideomemory.c:
13244 * gst/vaapi/gstvaapivideomemory.h:
13245 gstvaapivideomemory: allocator's image size getter
13246 Add the method gst_allocator_get_vaapi_image_size() for the
13247 GstVaapiVideoAllocator, which gets the size of the allocated images with the
13248 current video info.
13249 This method replaces the direct call to the allocator's image info when the
13250 pool is configured.
13252 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
13254 * gst/vaapi/gstvaapipluginbase.c:
13255 plugins: update buffer pool size with new allocator's image size
13256 Depends on media, video size is sometimes updated with new allocator.
13257 It leads to dismatch between bufferpool's set size and real allocated buffer size.
13258 In this case, it causes every buffer is freed during release in bufferpool,
13259 which should be reused. This affects performance.
13260 https://bugzilla.gnome.org/show_bug.cgi?id=769248
13262 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13265 configure: remove gmodule-2.0 EGL dependency
13266 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
13267 thus the dependency to gmodule-2.0 is not mandatory anymore.
13269 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13272 configure: Fix non-fatal PKG_CHECK_MODULES invocations
13273 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
13274 the package is missing, but action-if-not-found was given as an empty
13275 string which still causes the default action to run, which halts
13277 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13278 https://bugzilla.gnome.org/show_bug.cgi?id=769237
13280 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13282 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
13283 libs: egl: remove dynamic library loading code
13284 Since the upstream of gstreamer-vaapi, the library is not a public shared
13285 object anymore. But the EGL support depended on this dynamic library, so the
13286 EGL support was broken.
13287 This patch removes the dynamic library loading code and instantiates the
13288 EGL display using either X11 or Wayland if available.
13289 https://bugzilla.gnome.org/show_bug.cgi?id=767203
13291 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13293 * gst/vaapi/gstvaapi.c:
13294 * gst/vaapi/gstvaapidecode.c:
13295 * gst/vaapi/gstvaapidecode.h:
13296 vaapidecode: register only the available decoders
13297 In order to register only the available decoders, this patch queries the
13298 created test VA display, which uses the currently used back-end (X11, Wayland,
13299 DRM, …) on the used display device.
13300 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13302 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13304 * gst/vaapi/gstvaapi.c:
13305 * gst/vaapi/gstvaapipluginutil.c:
13306 * gst/vaapi/gstvaapipluginutil.h:
13307 vaapi: register only the available encoders
13308 In order to register only the available encoders, this patch queries the
13309 created test VA display, which uses the currently used back-end (X11,
13310 Wayland, DRM, …) on the used display device.
13311 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13313 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13315 * gst/vaapi/gstvaapidecode.c:
13316 * gst/vaapi/gstvaapidecodebin.c:
13317 vaapidecode: split all the codecs
13318 Split the vaapidecode to all the supported codecs with the format
13320 vaapidecode is stil registered as a GObject type, but not as a
13321 GStreamer feature, so it can be used internally by vaapidecodebin without
13322 changing its code too much.
13323 https://bugzilla.gnome.org/show_bug.cgi?id=734093
13325 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13327 * gst/vaapi/gstvaapidecodebin.c:
13328 vaapidecodebin: simplify the code
13329 Since the elements dependant of the VA video processor are now only registered
13330 if it is available, vaapidecodebin code can be simplified a lot, removing all
13331 the code required to check if the VA video processor was available.
13332 https://bugzilla.gnome.org/show_bug.cgi?id=768899
13334 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13336 * gst/vaapi/gstvaapidecode.c:
13337 vaapidecode: delay the GstVaapiDisplay instantiating
13338 Delay the GstVaapiDisplay instantiating until when changing the state from
13339 READY to PAUSE. In this way the element has more chances to find an already
13340 created GstVaapiDisplay, or a GL context, in the pipeline.
13341 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13343 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13345 * gst/vaapi/gstvaapipluginutil.c:
13346 pluginutil: set GLX display type
13347 The function gst_vaapi_create_display_from_gl_context() cretes a
13348 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
13349 when the GL platform was GLX, but a plain X11 VA display.
13350 This patch fixes that, by querying the GL platform earlier.
13351 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13353 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13355 * gst/vaapi/gstvaapipluginbase.c:
13356 * gst/vaapi/gstvaapivideocontext.c:
13357 * gst/vaapi/gstvaapivideocontext.h:
13358 plugins: add gst_vaapi_plugin_base_find_gl_context()
13359 Using the GstContext mechanism, it is possible to find if the pipeline
13360 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
13361 meta. This is interesting because we could negotiate system memory caps
13362 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
13363 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13365 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13367 * gst/vaapi/gstvaapipluginbase.c:
13368 * gst/vaapi/gstvaapipluginbase.h:
13369 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
13370 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
13373 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13375 * gst/vaapi/gstvaapipluginbase.h:
13376 plugins: remove common change_state() vmethod
13377 Remove the common change_state() vmethod for all the plugins, since no one is
13380 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13382 * gst/vaapi/gstvaapidecode.c:
13383 vaapidecode: remove change_state() vmethod
13384 Since the driver checkup is done at registering, there is no need to do it
13385 when changing the element state from NULL to READY. This patch remove this
13386 vmethod from vaapidecode.
13388 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13390 * gst/vaapi/gstvaapi.c:
13391 vaapi: register vaapipostproc only if supported
13392 Query the GstVaapiDisplay to know if the driver supports video
13393 postprocessing. If does, then register vaapipostproc and vaapidecodebin
13395 This patch will simplify the design of vaapidecodebin.
13396 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13398 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13400 * gst/vaapi/gstvaapi.c:
13401 vaapi: don't register if VA driver is unsupported
13402 Using the test VA display, the driver name is queried, and if it is not
13403 white-listed, the plugin rejects to register any element.
13404 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13406 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13408 * gst/vaapi/gstvaapipluginbase.c:
13409 * gst/vaapi/gstvaapipluginutil.c:
13410 * gst/vaapi/gstvaapipluginutil.h:
13411 plugins: add gst_vaapi_driver_is_whitelisted()
13412 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
13413 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
13414 when registering the plugin's feature set with the test VA display.
13415 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13417 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13419 * gst/vaapi/gstvaapi.c:
13420 vaapi: instantiate a VA display when registering
13421 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
13422 features, if it fails, no gstreamer-vaapi element is registering.
13423 The purpose of this patch is to avoid a situation where the user has
13424 gstreamer-vaapi installed but their VA-API setup is not functional, which may
13425 lead to unexpected behavior.
13426 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13428 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13431 * gst/vaapi/gstvaapi.c:
13432 vaapi: declare external dependencies
13433 There are two main external dependencies that define the feature set of this
13434 plugin: a) the kernel and b) the VA driver
13435 This patch tracks both dependencies, if any of them change, GStreamer will
13436 re-inspect the plugin.
13437 The kernel is tracked through the device files /dev/dri/card*
13438 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
13439 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
13440 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
13441 since they modify the driver lookup.
13442 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
13443 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13445 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13447 * gst/vaapi/gstvaapidecode.c:
13448 vaapidecode: remove unneeded initializations
13449 GObject's memory is set to zero, so there is no need to initialize to zero or
13450 NULL it's class variables.
13452 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13454 * gst/vaapi/gstvaapipluginbase.h:
13455 plugins: remove undefined macros
13457 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13459 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13460 Revert "gstvaapisurface_drm: release image when done"
13461 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
13462 372a03a9e38acbf435eb80bf31d9a9844069e504.
13463 While the dmabuf handle is exported, the derive image must exist, otherwise
13464 the image's VA buffer is invalid, thus the dmabuf handle is never released,
13465 leading into a file descriptors leak.
13467 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13469 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13470 encoder: h265: fix code-style
13472 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13474 * gst/vaapi/gstvaapipostproc.c:
13475 vaapipostproc: update filters at color balance
13476 This is a fix for a regression of previous commit, which updates the filters
13477 only when the property is set, because it is also required to update the
13478 filter when the color balance interface change its values.
13480 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13482 * gst/vaapi/gstvaapipostproc.c:
13483 * gst/vaapi/gstvaapipostproc.h:
13484 vaapipostproc: make it enable/disable pass-through mode
13485 In case that sink caps and src caps are same, and no filtering parameter set,
13486 pass-through mode is enabled.
13487 If new filtering parameter is set during playback, it makes it reconfiguring,
13488 so that pass-through mode is changed
13489 In addition, updating filter is performed during reconfiguration, if needed.
13490 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13492 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13494 * gst-libs/gst/vaapi/gstvaapifilter.c:
13495 * gst-libs/gst/vaapi/gstvaapifilter.h:
13496 * gst/vaapi/gstvaapipostproc.c:
13497 vaapipostproc: checking and updating filter parameter only when it's set
13498 This patch is to avoid checking filter value at every frame.
13499 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13501 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
13503 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13504 decoder: h265: handle the SEI NAL units included in codec_data
13505 The prefix/suffix SEI nal units can appear in codec_data too
13506 which weren't handled before. Parse these SEI headers to
13508 https://bugzilla.gnome.org/show_bug.cgi?id=768544
13510 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13512 * docs/plugins/Makefile.am:
13513 build: doc: do not redefine MAINTAINERCLEANFILES
13514 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
13515 overload it, the files should be added.
13517 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13519 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13520 encoder: h264: Fix MVC encode while enabling dct8x8
13521 Pack the transform_8x8_mode_flag and other necessary rbsp data
13522 in packed_pps header for MVC encode.
13523 https://bugzilla.gnome.org/show_bug.cgi?id=768647
13525 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13527 * gst/vaapi/gstvaapisink.c:
13528 vaapisink: demote a debug message to trace
13529 Reduces noise when debugging.
13531 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
13533 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13534 wayland: Error check before using cached wl_display
13535 A planar(or some other) buffer allocation may fail on the driver, then
13536 the wayland connection becomes invalid, not able to send request or
13537 receive any event. So we need to set up a new wayland connection if
13538 there's an error detected on the cached wl_display.
13539 https://bugzilla.gnome.org/show_bug.cgi?id=768761
13540 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13542 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
13545 Automatic update of common submodule
13546 From ac2f647 to f49c55e
13548 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13550 * gst/vaapi/gstvaapiencode.c:
13551 vaapiencode: demote a log to trace level
13552 Removes noise when debugging.
13554 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13556 * gst/vaapi/gstvaapiencode.c:
13557 vaapiencode: implement flush() vmethod
13558 In order to handle correctly seek and other operations, vaapiencode should
13559 flush all the remaining data from the encoder without pushing it downstream.
13560 This patch implements the flush() vmethod, only after of pausing the
13561 source pad task, and restarting it again after the flush stop.
13562 https://bugzilla.gnome.org/show_bug.cgi?id=767176
13563 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13565 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13567 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13568 decoder: vc1: flush dpb only if opened
13569 Flush the decode picture buffer, if and only if, the decoder is
13570 started. Otherwise the dpb structure might be NULL.
13571 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13573 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
13575 * gst/vaapi/gstvaapidecode.c:
13576 * gst/vaapi/gstvaapidecode.h:
13577 vaapidecode: drop non-keyframe in reverse playback
13578 To avoid surface-exhausted situation during reverse playback,
13579 drop frames except for key frame.
13580 Also, to avoid the corruption of the parser state, flush() vmethod
13581 doesn't destroy the VA decoder when playing in reverse.
13582 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13583 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13585 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13587 * gst/vaapi/gstvaapidecode.c:
13588 vaapidecode: unref output frame earlier
13589 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
13590 unref that extra reference earlier making the code simpler to follow.
13591 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13593 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13595 * gst/vaapi/gstvaapidecode.c:
13596 vaapidecode: remove gst_vaapidecode_internal_flush()
13597 As gst_vaapidecode_finish() is the only callee of
13598 gst_vaapidecode_internal_flush(), it is better to inline it.
13599 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13601 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13603 * gst/vaapi/gstvaapidecode.c:
13604 vaapidecode: flush output adapter at drain()
13605 Calling drain() vmethod means "decode any data it can at this point, but that
13606 more data may arrive after". Hence, vaapidecode should check if there is data
13607 in the output adapter and process them, without destroying the decoded picture
13609 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
13610 was refactored into a new function gst_vaapidecode_flush_output_adapter().
13611 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13613 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13615 * gst/vaapi/gstvaapidecode.c:
13616 vaapidecode: call purge at flush()
13617 Calling flush() vmethod means "to flush all remaining data from the decoder
13618 without pushing it downstream".
13619 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
13620 gst_video_decoder_have_frame() if there is still something in the input
13621 adapter, which may push buffers to downstream by calling handle_frame().
13622 This patch changes this behavior by calling gst_vaapidecode_purge() rather
13623 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
13624 decoder and releases all the rest of decoded frames.
13625 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13627 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13629 * tests/elements/Makefile.am:
13630 * tests/elements/test-vaapisink.c:
13631 test: elements: remove spurious linkage
13632 Element tests only need to link against gstreamer libraries.
13634 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13637 configure: Require GLib >= 2.40 like everywhere else
13639 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13642 Back to development
13644 === release 1.9.1 ===
13646 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
13652 * gstreamer-vaapi.doap:
13655 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13657 * tests/elements/test-vaapisink.c:
13658 tests: elements: rotate orientation event
13660 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
13663 * tests/Makefile.am:
13664 * tests/elements/Makefile.am:
13665 * tests/elements/test-vaapisink.c:
13666 tests: elements: Add testsuite for vaapisink
13667 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13669 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13671 * gst-libs/gst/vaapi/gstvaapitypes.h:
13672 * gst-libs/gst/vaapi/gstvaapivalue.c:
13673 * gst/vaapi/gstvaapisink.c:
13674 * gst/vaapi/gstvaapisink.h:
13675 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
13676 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13678 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13680 * gst/vaapi/gstvaapipostproc.c:
13681 vaapipostproc: return caps template if no display
13682 This patch is a fix for my bad review of commit 6d73ca8d. The element should
13683 be able to return the available raw caps handled by the VA display, but that
13684 only should happen when there a VA display. If there's none, the element
13685 should use the caps template.
13686 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13688 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
13690 * gst/vaapi/gstvaapipostproc.c:
13691 vaapipostproc: don't require a vaapi display for all caps queries
13692 This delays the requirement of having a GstVaapiDisplay until later
13693 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13695 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13697 * gst-libs/gst/vaapi/gstvaapiutils.c:
13698 utils: report VP9 profiles
13699 Add VP9Profile0-3 name mapping.
13701 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13703 * gst/vaapi/gstvaapi.c:
13704 vaapi: nest includes under USE_ENCODER macro
13705 This is a missed changeset from commit 1c05c53, since also header includes
13708 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13710 * gst/vaapi/gstvaapi.c:
13711 vaapi: nest encoders under USE_ENCODER macro
13712 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
13713 macro, it is clearer to nest them, showing explicitly the dependency relation.
13715 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13717 * gst/vaapi/gstvaapivideocontext.c:
13718 vaapivideocontext: check if query context is NULL
13719 Under certain conditions the element might receive a positive context query
13720 but without a context instance. This situation will lead to a segmentation
13721 fault when traversing the context list in the pipeline.
13722 https://bugzilla.gnome.org/show_bug.cgi?id=767946
13724 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13726 * gst-libs/gst/vaapi/Makefile.am:
13727 * gst-libs/gst/vaapi/glibcompat.h:
13728 * gst-libs/gst/vaapi/sysdeps.h:
13729 remove unused glibcompat.h
13730 glibcompat.h is no longer doing anything. Remove it.
13731 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13732 https://bugzilla.gnome.org/show_bug.cgi?id=767886
13734 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13736 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13737 encoder: h264: Use high profile by default
13738 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
13739 by default. This will cause the default profile to be high instead
13740 of baseline. In most situations this is the right decision, and
13741 the profile can still be lowered in the case of caps restrictions.
13742 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13743 https://bugzilla.gnome.org/show_bug.cgi?id=757941
13745 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13747 * gst/vaapi/gstvaapidecodebin.c:
13748 vaapidecodebin: element warning if missing element
13749 Raise an element warning if a required element is not available, thus the
13750 pipeline will post a warning message and the application will be informed.
13752 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
13754 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13755 decoder: h265: fix to release all dpb pictures
13756 Without this, all dpb pictures are not released during flush,
13757 because we used the global dpb_count variable for checking the
13758 dpb fullness which get decremented in dpb_remove_index()
13759 routine during each loop iteration.
13760 https://bugzilla.gnome.org/show_bug.cgi?id=767934
13762 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
13765 Automatic update of common submodule
13766 From ac2f647 to f363b32
13768 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13770 * gst/vaapi/gstvaapidecode.c:
13771 * gst/vaapi/gstvaapipostproc.c:
13772 vaapi: fix minor leaks
13773 https://bugzilla.gnome.org/show_bug.cgi?id=767868
13775 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13777 * gst/vaapi/gstvaapi.c:
13778 vaapi: remove an already included header
13779 gst/gst.h is already included in gstcompat.h
13781 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13783 * gst/vaapi/gstvaapidecodebin.c:
13784 vaapidecodebin: add vp9 in sink pad template
13786 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13788 * gst/vaapi/gstvaapisink.c:
13789 vaapisink: return caps template if no display
13790 If vaapisink received a caps query before getting a VA display, it returned
13791 only the surfaces related caps. This behavior broke the autovideosink
13793 This patch returns the pad's template caps if no VA display, otherwise the
13794 caps are crafted as before.
13795 https://bugzilla.gnome.org/show_bug.cgi?id=767699
13797 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13799 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13800 decoder: vp9: Update comment about context resets
13801 Clarify that vaapi context resets are never needed for vp9, but
13802 that ensure_context() needs called when the size increases so that
13803 new surfaces can be allocated.
13804 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13805 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13807 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13809 * gst-libs/gst/vaapi/gstvaapicontext.c:
13810 * gst-libs/gst/vaapi/gstvaapicontext.h:
13811 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13812 gstvaapicontext: control reset_on_resize with option
13813 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13814 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13816 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13818 * gst/vaapi/gstvaapivideobufferpool.c:
13819 vaapivideobufferpool: add video meta to config when needed
13820 In cases where we know the video meta must be present, add it to
13821 the pool configuration.
13822 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13823 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13825 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13827 * gst/vaapi/gstvaapipluginbase.c:
13828 plugins: retry pool config
13829 if gst_buffer_pool_set_config returns FALSE, check the modified
13830 config and retry set_config if the config is still acceptable.
13831 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13832 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13834 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13836 * gst/vaapi/gstvaapivideomemory.h:
13837 vaapivideomemory: internal attributes to methods
13838 Mark as internal the functions used by VA-API dmabuf allocator.
13840 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13842 * gst/vaapi/gstvaapipluginbase.c:
13843 plugins: remove precondition for decide_allocation()
13844 There's no need to check for the display in the plugin object when
13845 decide_allocation() vmethod is called, because the display will created or
13846 re-created along the method execution.
13848 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13850 * gst/vaapi/gstvaapipluginbase.c:
13851 plugins: avoid possible memory leaks
13852 Get the pool config just before use it, to avoid a memory leak if the
13853 allocator cannot be instantiated. Similarly, return FALSE if the configuration
13854 cannot be set, avoid keep a not used allocator in the pool.
13856 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13858 * gst/vaapi/gstvaapipluginbase.c:
13859 plugins: use GstParentBufferMeta
13860 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
13861 use the GStreamer's GstParentBufferMeta.
13862 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13864 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13866 * gst/vaapi/gstvaapipluginbase.c:
13867 plugins: cache VASurfaces from dmabufs
13868 This patch avoids the creation of a VASurface each time a new input buffer is
13869 processed, caching them in the input buffer itself.
13870 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13872 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13874 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13875 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13876 * gst/vaapi/gstvaapipluginbase.c:
13877 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
13878 Instead of passing the data already in GstVideoInfo, let's just pass the
13879 GstVideoInfo structure.
13880 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13882 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13884 * gst/vaapi/gstvaapipluginbase.c:
13885 * gst/vaapi/gstvaapipluginbase.h:
13886 plugins: use an unique allocator per pad
13887 Instead of instantiating an allocator per vaapivideobufferpool, only one
13888 allocator is instantiated per element's pad and shared among future pools.
13889 If the pad's caps changes, the allocator is reset.
13890 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13892 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13894 * gst/vaapi/gstvaapipluginbase.c:
13895 * gst/vaapi/gstvaapivideobufferpool.c:
13896 * gst/vaapi/gstvaapivideobufferpool.h:
13897 vaapivideobufferpool: share options flag with pluginbase
13898 Originally, vaapivideobufferpool has a set of boolean variables for the
13899 buffer configuration options.
13900 This pach changes these boolean variables for a single bitwise, just as
13901 it is used in pluginbase. Hence, the internal enum was moved to
13902 vaapivideobufferpool header.
13903 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13905 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13907 * gst/vaapi/gstvaapipluginbase.c:
13908 plugins: add gst_vaapi_plugin_base_create_pool()
13909 This patch refactors the code in pluginbase in order to centralize the buffer
13910 pool instantiation. As the buffer pool config may have different options, these
13911 are gathered using a bitwise flag.
13912 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13914 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13916 pluginbase negotiates allocator with bufferpool
13917 Originally vaapivideobufferpool instantiates its own allocator regardless the
13918 received configuration, and it relies in custom configuration options to
13919 choose which kind of allocator instantiate.
13920 This patch transfers the responsibility of the allocator instantiate to
13921 vaapipluginbase and pass it to the vaapivideobufferpool through its
13923 * gst/vaapi/gstvaapipluginbase.c
13924 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
13925 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
13926 bufferpool configuration
13927 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
13929 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
13930 allocator in bufferpool configuration
13931 * gst/vaapi/gstvaapivideobufferpool.c
13932 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
13933 allocator, process the received one through its configuration.
13934 * gst/vaapi/gstvaapivideobufferpool.h: removed
13935 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
13936 * gst/vaapi/gstvaapivideomemory.c
13937 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
13938 allocator with the vaapi qdata.
13939 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13941 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13943 * gst/vaapi/gstvaapivideobufferpool.c:
13944 vaapivideobufferpool: keep only current video info
13945 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
13946 the current one, the negotiated. The old one is not needed at all.
13947 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13949 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13951 * gst/vaapi/gstvaapipluginbase.c:
13952 * gst/vaapi/gstvaapipluginutil.c:
13953 * gst/vaapi/gstvaapipluginutil.h:
13954 * gst/vaapi/gstvaapivideomemory.c:
13955 pluginutil: add gst_video_info_force_nv12_if_encoded()
13956 This lines repeat a couple times in the code, so it would be better to put it
13958 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13960 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13962 * gst/vaapi/gstvaapipluginutil.c:
13963 * gst/vaapi/gstvaapipluginutil.h:
13964 * gst/vaapi/gstvaapipostproc.c:
13965 * gst/vaapi/gstvaapivideobufferpool.c:
13966 pluginutil: add gst_video_info_changed() helper
13967 This function is shared among different elements, so let factorized it.
13968 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13970 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
13972 * gst/vaapi/gstvaapipostprocutil.c:
13973 vaapipostproc: Add colorimetry attributes to src caps
13974 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13976 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13978 * gst/vaapi/gstvaapidecode.c:
13979 vaapidecode: remove chroma-site and colorimetry from src caps
13980 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13982 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13984 * gst/vaapi/gstvaapipostproc.c:
13985 * gst/vaapi/gstvaapipostproc.h:
13986 vaapipostproc: add postproc_lock to protect data members
13987 Add a mutex to postproc to protect concurrent access to data members.
13988 Previously set_caps() could release the allowed_srcpad_caps while
13989 transform_caps was in the middle of using it.
13990 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13991 https://bugzilla.gnome.org/show_bug.cgi?id=766940
13993 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13995 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13996 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13997 encoder: vp9: Add simple algorithms for reference picture selection
13998 Added two modes(as properties) for reference picture selection:
13999 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
14000 and LastRef is pointing to the previous frame.
14001 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
14002 and n-2 th frame as AltRef
14003 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14005 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14007 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
14008 encoder: vp9: Define Max frame width and height
14009 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14011 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14013 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
14014 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
14015 encoder: vp9: Add more propertis for tuning encode quality
14016 Added three tuning properties:
14019 3: luma ac quant-table index
14020 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14022 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14024 * gst/vaapi/Makefile.am:
14025 * gst/vaapi/gstvaapi.c:
14026 * gst/vaapi/gstvaapiencode_vp9.c:
14027 * gst/vaapi/gstvaapiencode_vp9.h:
14028 Add vp9 encode element to "vaapi" plugin
14029 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14031 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14033 * gst-libs/gst/vaapi/Makefile.am:
14034 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
14035 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
14036 Add vp9 encoder support in libgstvaapi
14037 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14039 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14042 build: Add check for VP9 encode API support in libva
14043 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14045 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14047 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14048 gstvaapisurface_drm: fix internal documentation
14050 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14052 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14053 gstvaapisurface_drm: fix code-style
14055 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14057 * gst/vaapi/gstvaapipluginbase.c:
14058 plugins: remove unused header
14059 Remove the include of gst/allocators/allocators.h since it is not used.
14061 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14063 * gst/vaapi/gstvaapivideobufferpool.h:
14064 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
14065 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
14066 keep compatibility definition.
14067 This patch removes the definition of
14068 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
14069 gst-plugins-base version 1.2.2
14071 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14073 * gst/vaapi/gstvaapipluginbase.c:
14074 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
14075 This is a helper function to improve the readability of
14076 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
14079 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14081 * gst/vaapi/gstvaapipluginbase.c:
14082 plugins: deactivate buffer pool before unref
14083 This buffer pool may still be processing buffers when a caps renegotiation is
14084 done. This one-liner patch deactivates the pool to drain it before it
14087 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14089 * gst/vaapi/gstvaapipluginbase.c:
14090 plugins: no sinkpad bufferpool when decoder
14091 Right now, the decoders create a buffer pool for their sink pad which is not
14092 used at all, because the decoders have never proposed it to upstream.
14093 This patch avoids the buffer pool instantiating when the element inherits from
14094 the GstVideoDecoder class.
14096 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14098 * gst/vaapi/gstvaapipluginbase.c:
14099 plugins: avoid to get/set pool config twice
14100 This patch is a bit of optimization, since the bufferpool configuration is get
14101 when the pool is created. Hence, we only need to request it when the pool from
14102 the allocation query is reused.
14104 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14106 * gst/vaapi/gstvaapipluginbase.c:
14107 plugins: destroy pool earlier if non-vaapi
14108 If the offered pool in decide_allocation() vmethod doesn't have the
14109 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
14110 so it could be created later.
14112 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14114 * gst/vaapi/gstvaapivideobufferpool.c:
14115 vaapivideobufferpool: split caps validation
14116 When validating the caps from bufferpool config, this patch distinguishes the
14117 error from no caps received (NULL) from the invalid caps (cannot be converted
14118 into GstVideoInfo structure).
14120 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14122 * gst/vaapi/gstvaapidecode.c:
14123 * gst/vaapi/gstvaapipluginbase.c:
14124 plugins: check for caps in query earlier
14125 Check for caps as soon gst_query_parse_allocation() returns.
14127 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14129 * gst/vaapi/gstvaapipluginbase.c:
14130 * gst/vaapi/gstvaapipluginbase.h:
14131 plugins: remove unused variables
14132 This variables stopped to be used since commit 001a5c63, which removed the
14135 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14137 * gst/vaapi/gstvaapipluginbase.c:
14138 plugins: fix potential memleak from commit 9159328
14139 If gst_video_info_from_caps() fails it is required to unref the instantiated
14142 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14144 * gst/vaapi/gstvaapipostproc.c:
14145 vaapipostproc: handle if gst_video_info_from_caps() fails
14146 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
14149 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14151 * gst/vaapi/gstvaapipluginbase.c:
14152 plugins: handle if gst_video_info_from_caps() fails
14153 Let's play safe and return error if, somehow, the received caps are wrong.
14155 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14157 * gst/vaapi/gstvaapipluginbase.c:
14158 plugins: relate errors to instance
14159 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
14160 will show the name of the vaapipluginbase instance that failed.
14161 Also, the code-style is fixed, where some error labels need to be surrounded
14164 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14166 * gst/vaapi/gstvaapipluginbase.c:
14167 * gst/vaapi/gstvaapipluginutil.c:
14168 * gst/vaapi/gstvaapisink.c:
14169 plugins: use GstVideoInfo accessors
14170 Instead of access to GstVideInfo members directly, use their accessors
14171 macros. This patch makes more resistance to future changes in GStreamer core.
14173 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14175 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14176 * gst/vaapi/gstvaapipluginbase.c:
14177 * gst/vaapi/gstvaapipostproc.c:
14178 * tests/simple-encoder.c:
14179 remove spurious gst_video_info_init()
14180 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
14181 gst_video_info_init(), hence it is not required to call it before them. This
14182 patch removes these spurious calls.
14184 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14186 * gst/vaapi/gstvaapipluginbase.c:
14187 vaapipluginbase: code-style: rename goto label
14188 The error labels have error_ prefix, but this one.
14190 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14192 * gst/vaapi/gstvaapivideomemory.c:
14193 vaapivideomemory: use allocator custom alloc flag
14194 Instead of a dummy alloc() vmethod, the allocator instance set the flag
14195 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
14196 gst_allocator_alloc() on the allocator.
14198 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14200 * gst/vaapi/gstvaapivideobufferpool.c:
14201 vaapivideobufferpool: relate errors to instance
14202 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
14203 the vaapivideobufferpool instance that failed.
14205 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14207 * gst/vaapi/gstvaapipluginbase.c:
14208 plugins: remove gst_vaapi_plugin_base_set_pool_config()
14209 This function helper make sense for GStreamer 1.2, but it is not helpful for
14210 greater version since the validation is already done in the API implementation.
14211 Thus, it is removed.
14213 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14215 * gst/vaapi/gstvaapipluginbase.c:
14216 gstvaapipluginbase: Fix typo in doc
14218 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14220 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14221 encoder : h264: Disable b-frame encode in low-power mode
14222 This is a workaround since vaapi-intel-driver doesn't have
14223 support for B-frame encode when utilizing low-power-enc
14225 Fixme :We should query the VAConfigAttribEncMaxRefFrames
14226 instead of blindly disabling b-frame support and set b/p frame count,
14227 buffer pool size etc based on the query result.
14228 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14230 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14232 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14233 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
14234 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
14235 Remove the duplicate property "low-power-enc" and use the
14236 tune property for enabling low power encoding mode.
14237 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14239 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14241 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14242 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
14243 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14245 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14247 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14248 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14249 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
14250 encoder: h264: Add support of low power/high performance encoding mode
14251 Added a new property "low-power-enc" for enabling low power
14252 encoding mode. Certain encoding tools may not be available
14253 with the VAEntrypointEncSliceLP.
14254 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14256 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14258 * gst-libs/gst/vaapi/gstvaapitypes.h:
14259 * gst-libs/gst/vaapi/gstvaapiutils.c:
14260 * gst-libs/gst/vaapi/gstvaapivalue.c:
14261 Add mapping for Macroblock level rate control (VA_RC_MB)
14263 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14265 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14266 gstvaapidisplay: Add VAEntrypointEncSliceLP support
14267 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14269 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14271 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14272 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14273 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
14274 This is for implementations that supports low_power/high_performance
14275 variant for slice level encode.
14276 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14278 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14280 * gst/vaapi/gstvaapipostprocutil.c:
14281 vaapipostproc: negotiate frame size fixation
14282 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
14283 using the sink caps, also it use the next capsfilter.
14284 This code is a shameless copy of gst_video_scale_fixate_caps() from
14285 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
14286 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14288 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14290 * gst/vaapi/gstvaapipostprocutil.c:
14291 vaapipostproc: don't use GstVideoInfo for src caps
14292 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
14293 this patch enables the first step for caps negotiation with a possible
14294 following caps filter.
14295 _get_preferred_caps() will traverse the possible src caps looking for the one
14296 wit the preferred feature and the preferred color format. Then the color
14297 format, the frame size and the frame rate are fixated.
14298 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14300 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14302 * gst/vaapi/gstvaapipostproc.c:
14303 * gst/vaapi/gstvaapipostprocutil.c:
14304 * gst/vaapi/gstvaapipostprocutil.h:
14305 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
14306 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
14307 No functional changes.
14308 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14310 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14312 * gst/vaapi/gstvaapipostproc.c:
14313 vaapipostproc: simplify code
14314 Change a convoluted snippet to find the preferred color format in the peer
14316 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14318 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14320 * gst/vaapi/gstvaapipostproc.c:
14321 vaapipostproc: use othercaps for preferred caps
14322 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
14323 from fixate_caps() vmethod to find the preferred caps feature and color
14325 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14327 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14329 * gst/vaapi/gstvaapipostproc.c:
14330 vaapipostproc: add fixate_caps() vmethod
14331 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
14332 implements the fixate_caps() vmethod and moves code around.
14333 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14335 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14337 * gst/vaapi/Makefile.am:
14338 * gst/vaapi/gstvaapipostproc.c:
14339 * gst/vaapi/gstvaapipostprocutil.c:
14340 * gst/vaapi/gstvaapipostprocutil.h:
14341 vaapipostproc: set early properties restrictions
14342 When running transform_caps() vmethod, returning the srcpad caps, the caps are
14343 early restricted to the element properties set: width, height, format and
14345 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
14347 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14349 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14351 * gst/vaapi/gstvaapipostproc.c:
14352 vaapipostproc: log the caps transformation
14353 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14355 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14357 * gst/vaapi/gstvaapipostproc.c:
14358 vaapipostproc: no GLTextureUpload in sinkpad
14359 As the vaapipostproc does not process frames with the VideoGLTextureUpload
14360 meta, the feature is removed from the sink pad template.
14361 https://bugzilla.gnome.org/show_bug.cgi?id=765931
14363 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
14365 * gst/vaapi/gstvaapivideobufferpool.c:
14366 vaapibufferpool: do not create texture upload meta if dmabuf
14367 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14369 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14372 build: update git.mk
14374 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14376 * gst/vaapi/gstvaapipluginbase.h:
14377 plugin: fix macro processor check
14378 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
14379 defined in config.h, but it would be 0 or 1 depending on the configure output.
14380 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14382 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14384 * tests/test-display.c:
14385 tests: display: guard possible unused variables
14386 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14388 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14394 * tests/simple-decoder.c:
14395 * tests/test-decode.c:
14396 * tests/test-display.c:
14397 * tests/test-filter.c:
14398 * tests/test-h264.c:
14399 * tests/test-jpeg.c:
14400 * tests/test-mpeg2.c:
14401 * tests/test-mpeg4.c:
14402 * tests/test-subpicture-data.c:
14403 * tests/test-subpicture.c:
14404 * tests/test-surfaces.c:
14405 * tests/test-textures.c:
14406 * tests/test-vc1.c:
14407 * tests/test-windows.c:
14408 tests: inforce gstreamer code-style
14410 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14412 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14413 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
14414 It seems driver requires enablement of cu_qp_delta_enabled_flag
14415 for modifying QP values to controll the CBR mode bitrate.
14416 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14418 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14420 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14421 encoder: h265: Add CBR Encoding support
14422 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14424 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
14426 * gst-libs/gst/vaapi/gstvaapisurface.c:
14427 gstvaapisurface: explicitely clear TILING flag if dmabuf
14428 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14430 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
14432 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14433 gstvaapisurface_drm: release image when done
14434 Otherwise intel-vaapi-driver will fail to process the exported surface because
14435 it will find it is currently derived, so considered as busy.
14436 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14438 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
14440 * gst/vaapi/gstvaapipostproc.c:
14441 vaapipostproc: already have a surface proxy if dmabuf
14442 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14444 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
14446 * gst/vaapi/gstvaapipostproc.c:
14449 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14451 * gst/vaapi/gstvaapidecode.c:
14452 * gst/vaapi/gstvaapipluginbase.c:
14453 * gst/vaapi/gstvaapipluginbase.h:
14454 vaapidecode: search driver in whitelist
14455 If the backend driver vendor string is not in a white-list, and the
14456 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
14457 change it state from NULL to READY, hence the auto-plug mechanism will look
14458 for another decoder.
14459 This patch assumes the GstContext has already being shared along the pipeline
14460 and the element has a valid GstVaapiDisplay instance.
14461 https://bugzilla.gnome.org/show_bug.cgi?id=764673
14463 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14465 * gst/vaapi/gstvaapidecode.c:
14466 * gst/vaapi/gstvaapiencode.c:
14467 * gst/vaapi/gstvaapipluginbase.c:
14468 * gst/vaapi/gstvaapipluginbase.h:
14469 * gst/vaapi/gstvaapipostproc.c:
14470 * gst/vaapi/gstvaapisink.c:
14471 plugins: rework set_context() vmethod definition
14472 In bug 757598 was added the set_context() vmethod chain up in
14473 GstVaapiPluginBase. But it is buggy, since the parent_class address is
14474 assigned to the last element which called gst_vaapi_plugin_base_class_init().
14475 No error has shown up since none of the element's base classes redefined
14476 set_context() vmethod from GstElement, so always the correct function was
14477 called. Still this code is wrong and this patch make it right.
14478 Since set_context() is the same code, a macro is used to implement that code
14479 in all the gst-vaapi elements.
14480 https://bugzilla.gnome.org/show_bug.cgi?id=765368
14482 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14484 * gst/vaapi/gstvaapipostproc.c:
14485 vaapipostproc: resize if negotiated and allocation caps are different
14486 Since commit 859a2b2, in vaapidecode, allocation query can be different from
14487 the negotiated caps.
14488 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
14489 resize the frame to the negotiated, if and only if, some other parameter is
14490 activated to avoid the passthrough. If it is not, the surface won't be mapped
14491 into a image. If not, the image won't be resized and the output buffer would be
14493 This patch will break the passthrough if the allocation query is different
14494 from the negotiation caps, forcing the resizing.
14495 https://bugzilla.gnome.org/show_bug.cgi?id=765095
14497 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14499 * gst/vaapi/gstvaapidecode.c:
14500 vaapidecode: improve code readability
14501 No functional changes.
14503 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14505 * gst/vaapi/gstvaapidecode.c:
14506 vaapidecode: move GstCapsFeatures near to its use
14507 Move the handling of the GstCapsFeatures just after it is used, in order to
14508 avoid handling its memory.
14510 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14512 * gst/vaapi/gstvaapidecode.c:
14513 vaapidecode: caps negotiation checks
14514 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
14515 compiled with GL support.
14517 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14519 * gst/vaapi/gstvaapidecode.c:
14520 * gst/vaapi/gstvaapipluginbase.c:
14521 * gst/vaapi/gstvaapipluginbase.h:
14522 * gst/vaapi/gstvaapipostproc.c:
14523 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
14525 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14527 * gst/vaapi/gstvaapidecode.c:
14528 vaapidecode: bail early if not caps in decide_allocation()
14530 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14532 * gst/vaapi/gstvaapidecode.c:
14533 * gst/vaapi/gstvaapipluginbase.c:
14534 * gst/vaapi/gstvaapipluginutil.c:
14535 * gst/vaapi/gstvaapipluginutil.h:
14536 * gst/vaapi/gstvaapipostproc.c:
14537 plugin: use allowed caps filter from element
14538 Instead of using the srcpad template caps for filtering the peer caps, the
14539 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
14540 for the element's allowed caps.
14541 With this modification, the vaapipostproc element simplifies a bit its code.
14542 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14544 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14546 * gst/vaapi/gstvaapidecode.c:
14547 * gst/vaapi/gstvaapipluginbase.c:
14548 * gst/vaapi/gstvaapipluginutil.c:
14549 * gst/vaapi/gstvaapipluginutil.h:
14550 * gst/vaapi/gstvaapipostproc.c:
14551 plugin: remove function parameter
14552 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
14553 saved if the out format is used for both: in and out. Thus the code is more
14555 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14557 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14559 * gst/vaapi/gstvaapidecode.c:
14560 vaapidecode: warns if driver will do color conversions
14561 If the downstream feature is system memory, the surface has to be mapped,
14562 hence a warning message is logged saying that the driver has to do color
14563 conversions. This might be troublesome because not all the color conversion
14564 combinations are supported by the VA-API drivers, and there is not a reliable
14565 way to know them before hand.
14566 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14568 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14570 * gst/vaapi/gstvaapipluginutil.c:
14571 plugin: honour negotiated format
14572 Instead of setting the requested format by the caller, the function
14573 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
14574 the negotiated format.
14575 A new helper function was added: gst_vaapi_find_preferred_format(), which,
14576 given the format list from the negotiated caps, will choose the best one, if
14577 possible, given the native format.
14578 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14580 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14582 * gst/vaapi/gstvaapipluginutil.c:
14583 plugin: simplify caps feature selection
14584 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
14585 Instead of intersecting custom caps to find the preferred feature, the peer
14586 caps are traversed in order to find the preferred feature, according to an
14587 ordered feature priority list.
14588 In the case of GLTextureUploadMeta, the colour format is computed using
14589 GstVideoInfo of the selected fixed caps.
14590 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14592 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14594 * gst/vaapi/gstvaapidecode.c:
14595 vaapidecode: use macros for GstVideoInfo
14596 Instead of accessing directly to the members of the structure, use the macros.
14598 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14600 * gst/vaapi/gstvaapidecode.c:
14601 vaapidecode: refactor is_display_resolution_changed()
14602 Make the comparisons more readable and simple.
14603 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14605 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14607 * gst/vaapi/gstvaapidecode.c:
14608 * gst/vaapi/gstvaapidecode.h:
14609 vaapidecode: keep only display_{width,height}
14610 Instead of keeping the structure GstVideoInfo when we are using its width and
14611 height, we only keep these two guints.
14612 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14614 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14616 * gst/vaapi/gstvaapidecode.c:
14617 vaapidecode: decoded_info is valid at src caps update
14618 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
14619 is called, then we don't need to verify or replace it with the sinkpad info
14621 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14623 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14625 * gst/vaapi/gstvaapidecode.c:
14626 vaapidecode: always a valid format in decoded_info
14627 Always set a valid format in decoded_info class variable.
14628 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14630 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14632 * gst/vaapi/gstvaapidecode.c:
14633 vaapidecode: code style fixes
14634 No functional changes.
14635 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14637 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14639 * gst/vaapi/gstvaapidecode.c:
14640 vaapidecode: init {decoded,display}_info at open()
14641 It is required to initialize {decoded,display}_info variables when the decoder
14642 is open, not only at instance initialization.
14643 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14645 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14647 * gst/vaapi/gstvaapidecode.c:
14648 * gst/vaapi/gstvaapidecode.h:
14649 vaapidecode: remove spurious class variables
14650 active, do_pool_renego and do_outstate_renego class variables were used to
14651 indicate when negotiate downstream once, but now that each time a new surface
14652 resolution is pop out a renegotation verified, these variable are not required
14654 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14656 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14658 * gst/vaapi/gstvaapidecode.c:
14659 * gst/vaapi/gstvaapipluginbase.c:
14660 * gst/vaapi/gstvaapipluginbase.h:
14661 * gst/vaapi/gstvaapipostproc.c:
14662 remove custom allocation query
14663 When resolving bug 753914, a custom allocation query was added, overlapping
14664 the responsibilities of GstVideoDecoder.
14665 But with the merge of the patches from bug 764421 this overlapping was not
14666 required anymore. This patch restores this situation setting the
14667 allocation_caps in the GstVideoCodecState when needed.
14668 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14670 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
14673 Automatic update of common submodule
14674 From 6f2d209 to ac2f647
14676 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14678 * gst/vaapi/gstvaapidecode.c:
14679 * gst/vaapi/gstvaapidecodebin.c:
14680 * gst/vaapi/gstvaapipostproc.c:
14681 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
14682 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
14683 their caps templates if they were not compiled either with GLX or EGL support.
14685 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14687 * gst/vaapi/gstvaapipluginutil.c:
14688 plugins: fix compilation when EGL/GLX is disabled
14689 The compiler might complain of gst_vaapi_create_display_from_handle() being
14690 unused if both EGL and GLX are disabled. This patch avoid that compilation
14693 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
14695 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14696 libs: fix deleting a GstVaapiCodedBufferPool object
14697 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
14698 Otherwise it is not called when the pool is destroyed and all objects
14699 referenced by the GstVaapiVideoPool are never released.
14700 https://bugzilla.gnome.org/show_bug.cgi?id=764993
14702 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14704 * gst-libs/gst/vaapi/gstvaapisurface.c:
14705 surface: destroy derived image
14706 If gst_vaapi_image_new_with_image() fails, the created derived image should be
14707 destroyed, otherwise the surface cannot be processed because is being used.
14708 https://bugzilla.gnome.org/show_bug.cgi?id=764607
14710 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14712 * gst/vaapi/gstvaapidecode.c:
14713 vaapidecode: add stop function
14714 Clear any status on the current stream:
14715 stored frames, caps and decoder configuration
14716 https://bugzilla.gnome.org/show_bug.cgi?id=763460
14718 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14720 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14721 decoder: vp9: Align with the ABI changes in vp9 codecparser
14722 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
14723 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
14724 These fields are only present in keyframe or intra-only frame, no need to
14725 duplicate them for inter-frames.
14726 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14728 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14730 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14731 decoder: vp9 : Add 10bit decoding support (Profile2)
14732 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14734 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14736 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14737 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14738 gstvaapiporfile: Add more VP9 profile definitions
14739 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14741 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14745 build: possibility to disable tests
14746 The configuration option --disable-examples will disable the compilation of
14747 the sample apps in tests/ directory.
14749 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14751 * gst/vaapi/gstvaapiencode_h264.c:
14752 * gst/vaapi/gstvaapiencode_h265.c:
14753 * gst/vaapi/gstvaapiencode_jpeg.c:
14754 * gst/vaapi/gstvaapiencode_mpeg2.c:
14755 * gst/vaapi/gstvaapiencode_vp8.c:
14756 * gst/vaapi/gstvaapipluginutil.h:
14757 * gst/vaapi/gstvaapisink.c:
14758 unify caps template for VAAPI encoders and decoders
14759 There is no difference in VAAPI surface caps between encoders and decoders.
14760 Thus, the patch makes a simplification by removing encoders specific caps and
14761 shares the same definition of VAAPI surfaces caps for all the elements.
14763 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14765 * gst/vaapi/gstvaapidecode.c:
14766 vaapidecode: move gst_vaapidecode_negotiate() code
14767 With it we can remove a function declaration, making the code a bit
14769 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14771 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14773 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14774 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14775 * gst/vaapi/gstvaapidecode.c:
14776 docs: generate vaapijpegdec documentation
14777 https://bugzilla.gnome.org/show_bug.cgi?id=764314
14779 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14781 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14782 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
14783 The array_completeness, reserved bit and num_nal_units fields
14784 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
14785 but not for each occurance of similar headers.
14786 https://bugzilla.gnome.org/show_bug.cgi?id=764274
14788 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14790 * gst-libs/gst/vaapi/video-format.c:
14791 video-format: Keep the HW order preference while mapping to GstVideoFormats
14793 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14795 * gst/vaapi/gstvaapidecode.c:
14796 * gst/vaapi/gstvaapipluginbase.c:
14797 * gst/vaapi/gstvaapipluginutil.c:
14798 * gst/vaapi/gstvaapipluginutil.h:
14799 * gst/vaapi/gstvaapivideomemory.c:
14800 gst/vaapi: keep precedence for NV12 over I420
14801 Use NV12 as default "assumption" format all over.
14802 NV12 is the default high priority format used my most of the
14805 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14807 * gst/vaapi/gstvaapidecode.c:
14808 vaapidecode: Use video format derived from decoded surface as default src pad format
14809 Use the surface format derived from first decoded surface
14810 to negotiate the downstream video format capabilities.
14811 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14813 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
14815 * gst-libs/gst/vaapi/gstvaapiimage.c:
14816 * gst-libs/gst/vaapi/video-format.c:
14817 * gst/vaapi/gstvaapidecode.c:
14818 * gst/vaapi/gstvaapipluginutil.h:
14819 * gst/vaapi/gstvaapisink.c:
14820 Add P010 video format support
14821 The P010 video format is the native format used by the vaapi intel driver
14822 for HEVCMain10 decode . Add support for planes and images of this video format.
14823 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14825 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
14827 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14828 libs: x11: allows 30-bit colour depth
14829 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
14830 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
14831 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
14833 https://bugzilla.gnome.org/show_bug.cgi?id=764256
14835 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14837 * gst/vaapi/gstvaapivideometa_texture.c:
14838 gltextureupload: use an array for texture type
14839 Instead of using a single value for the texture type, use an array with 4
14840 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
14842 https://bugzilla.gnome.org/show_bug.cgi?id=764231
14844 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14846 * gst/vaapi/gstvaapidecode.c:
14847 * gst/vaapi/gstvaapipluginbase.c:
14848 vaapidecode: Fix decide_allocation handling
14849 Set the already configured pool in decide_allocation query
14850 in cases where pool renegotiation is not required.
14851 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14853 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14855 * gst/vaapi/gstvaapidecode.c:
14856 vaapidecode: Derive and save the decoded surface format
14857 After the decoding of first frame, try to extract the exact
14858 decoded surface format using vaDeriveImage and keep this
14859 as the format in decoded_info.
14860 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14862 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14864 * gst/vaapi/gstvaapidecode.c:
14865 * gst/vaapi/gstvaapidecode.h:
14866 * gst/vaapi/gstvaapipluginbase.c:
14867 * gst/vaapi/gstvaapipluginbase.h:
14868 * gst/vaapi/gstvaapipostproc.c:
14869 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
14870 -- Maintaing decoded surface resoluton and actual display resoultion separately
14871 -- Before pushing every frames downstream, check for the requirement of pool negoation and
14872 output_state negotiation: This is needed to avoid multiple issuses with cropping,
14873 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
14874 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
14875 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
14876 This is slight overhead, but safe enough. Optimization could be possible though.
14877 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14879 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14881 * gst/vaapi/gstvaapidecode.c:
14882 vaapidecode: Delay the output format setting until we have a decoded surface
14883 This will help to consoidate the out caps negotiation to a single place,
14884 which will make the code simpler, allows to get the exact decoded format
14885 if needed and the selected chroma type too.
14886 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14888 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14890 * gst/vaapi/gstvaapidecode.h:
14891 vaapidecode: GST_VAAPIDECODE macro is a cast
14892 This patch is the continuation of commit 1e1d3b1d because the function
14893 gst_vaapidecode_get_type() got undefined since then.
14894 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
14895 structure. The rest of the GObject handling macros were deleted too.
14897 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
14900 Back to development
14902 === release 1.8.0 ===
14904 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
14909 * gstreamer-vaapi.doap:
14912 === release 1.7.91 ===
14914 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
14919 * gstreamer-vaapi.doap:
14922 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14924 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14925 decoder: h265: Fix offset calculation in codec_data parsing
14926 https://bugzilla.gnome.org/show_bug.cgi?id=762922
14928 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14930 * gst/vaapi/gstvaapidecodebin.c:
14931 vaapidecodebin: don't handle jpeg decoding
14932 As JPEG decoder has been split and demoted, it cannot be handled by
14934 Added a fixme comment regarding the future removal of vaapidecode.
14935 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14937 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14939 * gst/vaapi/gstvaapidecode.c:
14940 vaapidecode: split out jpeg decoder
14941 Split, as a different element, the JPEG decoder.
14942 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14944 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14946 * gst/vaapi/gstvaapi.c:
14947 * gst/vaapi/gstvaapidecode.c:
14948 * gst/vaapi/gstvaapidecode.h:
14949 vaapidecode: register decoder with internal GType
14950 Don't expose the the vaapidecode GType, instead expose a function
14951 which will register element.
14952 This is the first step to split the decoder by codecs.
14953 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14955 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14957 * gst/vaapi/gstvaapidecode.c:
14958 vaapidecode: remove unused function declaration
14959 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
14960 code-style of the other pre-declared functions.
14962 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14964 * docs/plugins/Makefile.am:
14965 build: git ignore gtkdoc generated files
14967 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14970 build: handle git ignore in m4 directory
14972 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14974 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14975 vaapidecoder_h265: plug leak of h265 parsing info
14976 If something goes wrong while parsing, the info object is
14978 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14980 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14982 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14983 vaapidecoder_h264: plug leak of h264 parsing info
14984 If something goes wrong while parsing, the info object is
14986 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14988 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14990 * gst/vaapi/gstvaapipluginutil.c:
14991 plugins: fix gstgl and vaapi memory leaks
14992 1\ Unref gl_display and gl_window as soon they are not needed.
14993 2\ Remove an unneeded display type check, since is handled by
14994 gst_vaapi_created_display_from_handle()
14995 3\ Unref vaapi's display if the display cannot be bind to a GL API.
14996 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14997 https://bugzilla.gnome.org/show_bug.cgi?id=763354
14999 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
15001 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15002 vaapidisplay: Fix uninitialized value error for VA attribute
15003 https://bugzilla.gnome.org/show_bug.cgi?id=763362
15005 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15007 * gst/vaapi/gstvaapidecode.c:
15008 * gst/vaapi/gstvaapiencode.c:
15009 plugins: proxy information from downstream caps
15010 Propagate to upstream the downstream information, such as fps, par, etc.
15011 This will fix several "getcaps" critical warnings in gst-validate.
15012 https://bugzilla.gnome.org/show_bug.cgi?id=763300
15014 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15016 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15017 decoder: vp9: Assign values for profile and bit_depth from frame header
15018 bit_depth field has added only in VA-API 0.39.0, added version check.
15020 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
15023 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
15024 https://bugzilla.gnome.org/show_bug.cgi?id=763067
15026 === release 1.7.90 ===
15028 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
15033 * gstreamer-vaapi.doap:
15036 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
15039 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
15041 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15043 * gst/vaapi/gstvaapidecode.c:
15044 vaapidecode: intersect with filter in getcaps()
15045 In commit 6034734d I forgot to add the caps filter intersection in the
15046 getcaps() vmethod generating a regression when a capsfilter is set in the
15048 This commit adds the caps filter intersection.
15050 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
15052 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
15053 Add memset to initialize value for VAEncSliceParameterBufferJPEG
15054 https://bugzilla.gnome.org/show_bug.cgi?id=762850
15056 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
15059 Automatic update of common submodule
15060 From b64f03f to 6f2d209
15062 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15067 build: add m4 directory
15068 Instead of rely on the automatic creation of m4 directory by aclocal, we
15069 already control it. Later we could create our own m4 scripts in order to
15070 unclutter configure.ac
15071 https://bugzilla.gnome.org/show_bug.cgi?id=762528
15073 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
15075 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15076 decoder: hevc: Fill dependent slice segment headers while parsing
15077 Copy the data into the dependent slice segment header from the
15078 corresponding independent slice segment header during parsing.
15079 Previously the reference to the "previous" independent header was
15080 held through the parsing phase and then dereferenced during the
15081 decoding phase. This caused all dependent headers to be populated
15082 with the data of the AU's last independent header instead of the
15083 proper corresponding header.
15084 https://bugzilla.gnome.org/show_bug.cgi?id=762352
15086 - Reworded commit message
15088 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15090 * gst/vaapi/gstvaapidecode.c:
15091 vaapidecode: use video decoder getcaps()
15092 The usage of getcaps() vmethod is preferred than to handle manually the sink's
15094 In order to avoid function declarations, this patch moves the class_init()
15095 method to the end of the file.
15097 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15099 * gst/vaapi/gstvaapipluginbase.c:
15100 plugins: remove deprecated code
15101 Since we are only supporting current GStreamer version, since 1.3
15102 gst_buffer_pool_config_add_option() checks if the option to add is
15103 already set. There is no need to do it ourselves.
15105 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
15107 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15108 vaapidecoder_h265: fix parsing of NALU aligned data
15109 Don't assume the whole buffer is a single NAL, instead look for the
15110 next start code in case there are multiple NALs per buffer.
15111 https://bugzilla.gnome.org/show_bug.cgi?id=762328
15113 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
15115 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15116 vaapidecoder_h264: fix parsing of NALU aligned data
15117 Don't assume the whole buffer is a single NAL, instead look for the
15118 next start code in case there are multiple NALs per buffer.
15119 https://bugzilla.gnome.org/show_bug.cgi?id=762328
15121 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
15123 * gst/vaapi/gstvaapisink.c:
15124 vaapisink: Fix event,pad,structure memory leaks
15125 https://bugzilla.gnome.org/show_bug.cgi?id=762229
15127 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
15129 * gst/vaapi/gstvaapipluginbase.c:
15130 Add icamerasrc as dmabuf capable peer element
15131 icamerasrc is another gstreamer plugin using to capture RAW
15132 frames from camera device. It is based on libcamhal library.
15133 There are some properties available to control icamera behavior.
15134 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
15135 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
15136 https://bugzilla.gnome.org/show_bug.cgi?id=759481
15137 Fixme: This is the similar workaround we done for v4l2src.
15138 The workaround will be removed once we fix #755072
15140 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
15142 * gst/vaapi/gstvaapipluginbase.c:
15143 vaapipluginbase: Fix structure memory leak
15144 config structure is not being freed in all cases
15145 https://bugzilla.gnome.org/show_bug.cgi?id=762172
15147 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
15149 * gst/vaapi/gstvaapidecode.c:
15150 vaapidecode: Fix videocodec state memory leak
15151 When state is not NULL and either width/height of video info is 0, then state leaks
15152 https://bugzilla.gnome.org/show_bug.cgi?id=762173
15154 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
15156 * gst/vaapi/gstvaapisink.c:
15157 vaapisink: post message for application for unhandled keyboard/mouse events
15158 Makes (most) keyboard shortcuts work in gst-play-1.0 when
15159 the video window has focus.
15161 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
15163 * gst/vaapi/gstvaapidecode.c:
15164 vaapidecode: Fix capsfeature memory leak
15165 https://bugzilla.gnome.org/show_bug.cgi?id=762116
15167 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
15169 * gst/vaapi/gstvaapisink.c:
15170 vaapisink: Fix capsfeature memory leak
15171 caps feature allocated is not being freeing in some cases
15172 https://bugzilla.gnome.org/show_bug.cgi?id=762111
15174 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
15177 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15178 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15179 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15180 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15181 * gst-libs/gst/vaapi/gstvaapifilter.c:
15182 * gst/vaapi/gstvaapidecodebin.c:
15183 * gst/vaapi/gstvaapipluginutil.c:
15184 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
15186 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
15189 configure: Fix setting of extra compiler warning flags
15191 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15193 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
15194 libs: fix build error
15195 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
15196 functions are used only when libva's API version is greater than 0.36.0
15197 This patch guards those functions completely rather than just their
15198 content. The patch is a continuation of commit 38f8fea4
15199 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
15200 https://bugzilla.gnome.org/show_bug.cgi?id=762055
15202 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
15204 * tests/simple-encoder.c:
15205 tests: simple-encoder: fix build error
15206 argument mismatch of gsize with 'long unsigned int'
15207 https://bugzilla.gnome.org/show_bug.cgi?id=762055
15209 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15211 * gst/vaapi/gstvaapisink.c:
15212 vaapisink: Fix wrong caps advertising
15213 The get_caps() should only report the supported formats.
15214 https://bugzilla.gnome.org/show_bug.cgi?id=761147
15216 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
15219 Automatic update of common submodule
15220 From e97c9bb to b64f03f
15222 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15224 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15225 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
15226 * gst/vaapi/gstvaapi.c:
15227 * gst/vaapi/gstvaapiencode_h264.c:
15228 * gst/vaapi/gstvaapiencode_h265.c:
15229 * gst/vaapi/gstvaapiencode_jpeg.c:
15230 * gst/vaapi/gstvaapiencode_mpeg2.c:
15231 * gst/vaapi/gstvaapiencode_vp8.c:
15232 rename encoders to vaapi{codec}enc
15233 Trying to comply with GStreamer's element names, this patch renames the
15234 encoders using the name format vaapi{codec}enc.
15235 In this way, the plugin documentation is linked correctly.
15236 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15238 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15241 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
15242 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15244 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15247 build: remove vp9 parser check
15248 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
15249 the check of the parser, as we did for the others.
15250 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15252 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15256 Back to development
15257 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15259 === release 1.6.0 ===
15261 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15266 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15268 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
15269 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15270 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15271 libs: fix compiler warnings
15272 After setting the release flags, the compiler warns about a couple
15273 initialized variables.
15274 Also marked a couple of set variables as unused, because they are only
15275 used for assertion.
15276 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15278 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15280 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15281 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
15282 * gst/vaapi/gstvaapidecode.c:
15283 * gst/vaapi/gstvaapidecodebin.c:
15284 * gst/vaapi/gstvaapiencode_h264.c:
15285 * gst/vaapi/gstvaapiencode_h265.c:
15286 * gst/vaapi/gstvaapiencode_jpeg.c:
15287 * gst/vaapi/gstvaapiencode_mpeg2.c:
15288 * gst/vaapi/gstvaapiencode_vp8.c:
15289 * gst/vaapi/gstvaapipostproc.c:
15290 * gst/vaapi/gstvaapisink.c:
15291 docs: update plugin documentation
15292 Update all the documentation of elements of the vaapi plugin.
15293 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15295 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15299 * docs/Makefile.am:
15300 * docs/plugins/Makefile.am:
15301 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15302 * docs/plugins/gstreamer-vaapi-plugins.types:
15303 * docs/reference/Makefile.am:
15304 * docs/reference/plugins/Makefile.am:
15305 * docs/reference/plugins/plugins-sections.txt:
15306 * docs/reference/plugins/plugins.types:
15307 * docs/version.entities.in:
15308 resurrect gtk-doc machinery
15309 Our auto-generated documentation has been a bit neglected. This patch replaces
15310 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
15311 plugins, elements and libraries.
15312 This patch also re-enables documentation generation.
15313 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15315 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15321 use gst-common submodule
15322 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
15323 GStreamer common submodule.
15324 The documentation generation has been disable temporarily since it needs a
15325 major rework, which will be done in the following commit.
15326 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15328 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15332 add gst-common submodule
15333 Pointing to branch 1.6
15334 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15336 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15338 * gstreamer-vaapi.doap:
15339 add doap descriptor
15340 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
15341 describe software projects, in particular free and open source software.
15342 The description is used in GStreamer as in many other open source projects.
15343 This patch adds the doap description of this project.
15344 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15346 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15348 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
15349 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15350 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
15351 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15352 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15353 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
15354 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
15355 * gst-libs/gst/vaapi/gstvaapiimage.c:
15356 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
15357 * gst-libs/gst/vaapi/gstvaapipixmap.c:
15358 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
15359 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15360 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
15361 libs: humongous code style fix
15362 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
15363 umbrella, we need to comply with the project's code style. This meant to
15364 change a lot of code.
15365 It was decided to use a single massive patch to update the code style.
15366 I would like to apologize with the original developers of this code because of
15367 the history breakage.
15368 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15370 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15372 * gst-libs/gst/vaapi/gstvaapicontext.c:
15373 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15374 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
15375 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
15376 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15377 * gst/vaapi/gstvaapivideomemory.c:
15378 libs: small refactors to enhance the code style
15379 As gst-indent generated ugly code in these cases, this patch changes the used
15380 idiomatic into other one.
15381 No functional changes were introduced.
15382 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15384 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15386 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
15387 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15388 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
15389 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15390 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15391 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15392 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15393 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15394 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15395 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15396 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15397 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15398 * gst-libs/gst/vaapi/gstvaapifilter.c:
15399 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15400 * gst-libs/gst/vaapi/gstvaapisurface.c:
15401 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15402 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
15403 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15404 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15405 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
15406 * gst-libs/gst/vaapi/gstvaapiwindow.c:
15407 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15408 libs: small code style fixes
15409 This a set of small code style fixes detected as-is by gst-indent.
15410 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15412 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15414 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15415 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15416 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15417 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15418 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
15419 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15420 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
15421 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15422 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15423 libs: trivial comment style fixes
15424 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15426 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15428 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
15429 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15430 libs: avoid gst-indent mess up
15431 Guard pieces of code to avoid gst-ident to mess up the following code.
15432 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15434 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15436 * gst/vaapi/gstvaapidecode.c:
15437 * gst/vaapi/gstvaapidecodebin.c:
15438 * gst/vaapi/gstvaapipluginutil.c:
15439 * gst/vaapi/gstvaapisink.c:
15440 * gst/vaapi/gstvaapivideomemory.c:
15441 plugins: fix code style
15442 Minor code style changes by executing gst-indent in gst/vaapi directory.
15443 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15445 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
15447 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15448 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15449 Fix some more compiler warning
15450 Two (false) compiler warnings about variables potentially
15451 being used uninitialized, and one about a variable being
15453 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15455 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
15457 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15458 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15459 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15460 * gst-libs/gst/vaapi/gstvaapifilter.c:
15461 * gst/vaapi/gstvaapidecode.c:
15462 * gst/vaapi/gstvaapipluginbase.c:
15463 * gst/vaapi/gstvaapipluginutil.c:
15464 * gst/vaapi/gstvaapipostproc.c:
15465 * tests/simple-encoder.c:
15466 * tests/test-filter.c:
15467 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
15468 Declare variables at the beginning of a code block, which
15469 is how it's done in GStreamer.
15470 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15472 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15474 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15475 decoder: vp9: Fix crop rectangle setting
15476 Align with software vp9dec behaviour: Add crop rectangle
15477 only if display_width/display_height is less than the
15478 frame_hdr->width/frame_hdr->height
15480 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15482 * gst/vaapi/gstvaapidecode.c:
15483 vaapidecode: Fix renegotiation for resolution change
15484 Always renegotiate the pool if the immediate frame which going
15485 to be pushed has a different un-cropped resolution than the already
15488 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15490 * gst/vaapi/gstvaapipluginbase.h:
15491 plugins: use the same pre-processor macro
15492 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
15493 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
15494 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
15495 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
15496 in the header file.
15497 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15499 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15501 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15502 decoder: update a deprecated function
15503 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
15504 deprecated since GStreamer 1.0.
15505 This patch replace it with gst_adapter_prev_pts()
15506 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15508 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15511 build: honor configure's cache
15512 The user might enable --config-cache when calling configure script. If so, our
15513 configuration variables will not be correctly calculated.
15514 This patch extracts the value of our variables either from the cache or from
15515 the operation result.
15516 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15518 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15521 build: use common version variables
15522 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15524 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15527 build: hard-code an unneeded macro
15528 That macro is required for EGL's dynamic module loading, but since
15529 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
15530 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
15531 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15533 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15536 build: refactorization of dependency tracking
15537 This patch tries to avoid branching in configure.ac using a more functional
15538 approach in macros usage.
15539 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15541 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15544 build: check for OpenGL either GLX or EGL are requested
15545 Refactor some code in configure.ac to centralize $enable_opengl definition.
15546 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15548 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15551 build: indent and add square braces
15552 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15554 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15557 build: upgrade autotools version dependency
15558 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15560 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15563 build: enhance string comparisons
15564 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
15565 the string is empty or undefined.
15566 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15568 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15571 build: remove unused variables
15572 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15574 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15577 build: remove check for old version of gstreamer
15578 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15580 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15583 build: remove GStreamer's parsers checks
15584 This patch removes almost all the parsers check since they are already in place,
15585 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
15586 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15588 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15591 * gst/vaapi/Makefile.am:
15592 build: add gstreamer-pbutils dependency
15593 This dependency was added in gstvaapidecodebin with the call
15594 gst_missing_element_message_new().
15595 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15597 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15600 build: fix variable declaration
15601 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15603 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15605 * gst-libs/gst/vaapi/Makefile.am:
15606 build: fix when HEVC decoder is disabled
15607 This a very pathological situation: when we have a HEVC encoder but not a HEVC
15609 The encoder needs functions that are only available when the decoder is
15611 This patch moves the utils functions into the generic sources, such as the
15613 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15615 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15617 * gst/vaapi/Makefile.am:
15618 build: remove unused EGL specific sources
15619 These Makefile variables are not used at all.
15620 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15622 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15624 * gst/vaapi/Makefile.am:
15625 build: remove check for GStreamer 1.2
15626 Since we are working for current stable GStreamer 1.6
15627 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15629 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15631 * gst/vaapi/gstvaapiparse.h:
15632 Remove more video parser crufts
15633 This header is not used anymore since it declares parsers that are
15634 already in GStreamer 1.6
15635 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15637 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
15640 * docs/reference/Makefile.am:
15641 * docs/reference/libs/Makefile.am:
15642 * docs/reference/libs/libs-docs.xml.in:
15643 * docs/reference/libs/libs-overrides.txt:
15644 * docs/reference/libs/libs-sections.txt:
15645 docs: remove library documentation which is non-public now
15646 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15648 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
15652 * debian.upstream/Makefile.am:
15653 * debian.upstream/changelog.in:
15654 * debian.upstream/compat:
15655 * debian.upstream/control.in:
15656 * debian.upstream/copyright:
15657 * debian.upstream/gstreamer-vaapi-doc.install.in:
15658 * debian.upstream/gstreamer-vaapi.install.in:
15659 * debian.upstream/rules:
15660 Remove debian.upstream packaging
15661 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15663 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15665 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15666 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15667 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15668 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15669 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15670 * gst/vaapi/gstcompat.h:
15671 * gst/vaapi/gstvaapi.c:
15672 * gst/vaapi/gstvaapidecode.c:
15673 * gst/vaapi/gstvaapiencode.c:
15674 * gst/vaapi/gstvaapipluginbase.c:
15675 * gst/vaapi/gstvaapipluginbase.h:
15676 * gst/vaapi/gstvaapipluginutil.c:
15677 * gst/vaapi/gstvaapisink.c:
15678 Remove old gst version guards
15679 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
15680 all the old GStreamer version guards.
15681 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15683 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15685 * gst/vaapi/gstvaapiparse.c:
15686 Remove video parser crufts
15687 We forgot to remove gstvaapiparse.c when we removed all the videoparser
15689 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15691 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15693 * docs/reference/libs/Makefile.am:
15694 * docs/reference/plugins/Makefile.am:
15695 * gst-libs/gst/vaapi/Makefile.am:
15696 * gst/vaapi/Makefile.am:
15697 * tests/Makefile.am:
15698 libs: remove versioning
15699 Since we don't install libraries anymore, it makes no sense to keep
15700 versioning them according to the gstreamer's version.
15701 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15703 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15706 * debian.upstream/Makefile.am:
15707 * debian.upstream/control.in:
15708 * debian.upstream/libgstvaapi-dev.install.in:
15709 * debian.upstream/libgstvaapi-drm.install.in:
15710 * debian.upstream/libgstvaapi-glx.install.in:
15711 * debian.upstream/libgstvaapi-wayland.install.in:
15712 * debian.upstream/libgstvaapi-x11.install.in:
15713 * debian.upstream/libgstvaapi.install.in:
15714 * gst-libs/gst/vaapi/Makefile.am:
15715 * tests/Makefile.am:
15716 libs: make libraries no installables
15717 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15719 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15721 * debian.upstream/libgstvaapi-dev.install.in:
15722 * gst-libs/gst/vaapi/Makefile.am:
15723 Do not install libgstvaapi headers
15724 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15726 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15730 * patches/Makefile.am:
15731 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15732 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15733 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15734 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
15735 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15736 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15737 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15738 * patches/videoparsers/Makefile.am:
15739 * patches/videoparsers/series.frag:
15740 Remove videoparser patches
15742 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15746 * debian.upstream/libgstvaapi-dev.install.in:
15747 * pkgconfig/Makefile.am:
15748 * pkgconfig/gstreamer-vaapi-drm.pc.in:
15749 * pkgconfig/gstreamer-vaapi-glx.pc.in:
15750 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15751 * pkgconfig/gstreamer-vaapi-x11.pc.in:
15752 * pkgconfig/gstreamer-vaapi.pc.in:
15753 Remove pkg-config files
15754 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15756 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15762 * ext/codecparsers:
15763 * gst-libs/gst/Makefile.am:
15764 * gst-libs/gst/codecparsers/Makefile.am:
15765 * gst-libs/gst/vaapi/Makefile.am:
15766 * gst/vaapi/Makefile.am:
15767 Remove codecparsers submodule
15768 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15770 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15775 * debian.upstream/libgstvaapi.install.in:
15777 * ext/libvpx/Makefile.am:
15778 * ext/libvpx/gstlibvpx.c:
15779 * ext/libvpx/gstlibvpx.h:
15780 * ext/libvpx/libgstcodecparsers_vpx.vers:
15781 * ext/libvpx/sources.frag:
15782 * ext/libvpx/upstream:
15783 * gst-libs/gst/codecparsers/Makefile.am:
15784 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
15785 Remove libvpx submodule
15786 We will be using upstream codecparsers always.
15787 No more internal libvpx !
15789 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15792 build: fix check for GstJpegParser
15793 Right now the local JPEG parser is always compiled because the check for the
15794 upstreamed version is broken: it looks for an non existent symbol:
15796 This patch changes that check for< GstJpegFrameHdr.
15797 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15799 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
15801 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15802 wayland: free the frame in frame_release_callback()
15803 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
15804 decouple wl_buffer from frame).
15805 Otherwise the frame may be overwritten while it is still used by the
15807 The frame done callback (frame_done_callback()) is called, when the
15808 compositor is done processing the frame and hands it to the hardware.
15809 The buffer release callback (frame_release_callback()) is called when the
15810 buffer memory is no longer used.
15811 This can be quite some time later: E.g. if weston (with the DRM backend)
15812 puts the buffer on a hardware plane, then then buffer release callback is
15813 called when the kernel is done with the buffer. This is usually when the
15814 next frame is shown, so most likely after the frame done callback for the
15816 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
15817 destroy()" the mentioned possible leak should no longer be a problem, so
15818 reverting this change should cause no leaking buffers.
15819 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15820 https://bugzilla.gnome.org/show_bug.cgi?id=758848
15821 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15823 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15825 * gst/vaapi/gstvaapipostproc.c:
15826 vaapipostproc: check ANY caps at transform_caps()
15827 When transforming downstream caps we should check for ANY caps from peer pad,
15828 otherwise we get a segmentation fault.
15829 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15830 https://bugzilla.gnome.org/show_bug.cgi?id=759893
15832 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15834 * gst/vaapi/gstvaapisink.c:
15835 vaapisink: ignore frame if its upload failed
15836 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
15837 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
15838 ignored by the vaapisink, leading to a segmentation fault.
15839 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
15840 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
15841 segmentation fault, but doing and effort to continue rendering. This is
15842 the same behavior of ximagesink.
15843 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15844 https://bugzilla.gnome.org/show_bug.cgi?id=759332
15846 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
15849 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
15850 https://bugzilla.gnome.org/show_bug.cgi?id=759184
15852 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15854 * gst-libs/gst/vaapi/gstvaapicontext.c:
15855 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15856 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15857 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
15858 Add 10 HEVC 10 bit decoding support
15859 Only supporting vaapidecode ! vaapisink combination for now.
15860 Missing dependencies:
15861 1: No support for P010 video format in GStreamer
15862 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
15863 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
15864 through GstVideoMeta.
15865 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
15866 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
15867 of the surfaces is implementation (driver) defined, which is P010.
15869 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15871 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15872 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
15873 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
15874 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
15875 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
15876 chroam type and dimensions. The underlying format of the surfaces is
15877 implementation (driver) defined.
15879 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15881 * gst-libs/gst/vaapi/gstvaapisurface.h:
15882 * gst-libs/gst/vaapi/gstvaapiutils.c:
15883 Add definitions for YUV420 with more than 8 bits per channel
15885 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15887 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15888 gstvaapiporfile: Fix string representation of HEVCMain10 profile
15890 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15893 Bump version for development
15895 === release 0.7.0 ===
15897 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15902 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15907 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15912 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15917 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15919 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15920 texture: detect GL version and use the proper API
15921 When receiving the texture from the application or the video sink, we must
15922 know it size and border. To query the texture the API has changed according to
15923 the OpenGL version used in the GL context of the application/vsink.
15924 This patch checks the current context API type and queries the texture
15925 according to this detected API.
15926 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15927 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15929 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15931 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15932 texture: check for expected target and format
15933 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
15934 formats GL_RGBA or GL_BGRA.
15935 This patch adds a debugging verification of those values.
15936 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15937 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15939 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15941 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15942 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15943 libs: add gl3_bind_texture_2d()
15944 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
15945 needed. In particular, the Intel's Mesa implementation complains if it is
15947 This patch add a new binding function for 2D textures, without enabling
15948 gl3_bind_texture_2d()[2].
15949 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
15950 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
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:14:45 +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 gl_get_current_api()
15959 In order to know which OpenGL API use, we must detect the API type of current
15960 context. This patch adds the function gl_get_current_api() which returns the
15962 This function is an adaptation of gst_gl_context_get_current_gl_api() from
15964 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15965 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15967 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15970 * gst-libs/gst/vaapi/Makefile.am:
15971 build: Add gmodule dependency for libgstvaapi_egl
15972 https://bugzilla.gnome.org/show_bug.cgi?id=756259
15974 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15976 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15977 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15978 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15979 * patches/videoparsers/series.frag:
15980 patches/videoparsers: h264: Disable passthorugh mode enabling
15981 This is a quick fix for regression introduced by the upstream
15982 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
15983 The patch is disabling the passthrough mode, otherwise it will
15984 break multi-layer mvc stream parsing.
15985 https://bugzilla.gnome.org/show_bug.cgi?id=758656
15987 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15989 * gst/vaapi/Makefile.am:
15990 * patches/videoparsers/Makefile.am:
15991 * patches/videoparsers/series.frag:
15992 build: add gsth265parse patches conditionally
15993 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
15994 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
15996 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15997 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15999 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16001 * gst/vaapi/Makefile.am:
16002 build: declare correctly parse lib built files
16003 This is a continuation of commit fc8a0d12
16004 When declaring BUILT_SOURCES, those files should not be distributed. This
16005 patch avoids the distribution of the generated source code.
16006 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16007 https://bugzilla.gnome.org/show_bug.cgi?id=755525
16009 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16011 * ext/libvpx/sources.frag:
16012 build: libvpx: Add missing source file
16014 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16016 * gst/vaapi/gstvaapipostproc.c:
16017 vaapipostproc: Correctly detect the caps change
16018 This is a quick fix for regression introuduced by the
16019 commit 757833230bc73b8e3b4e31649e4618ba802bea51
16020 With out this, the gst_vaapipostproc_create() will
16022 https://bugzilla.gnome.org/show_bug.cgi?id=758543
16024 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16026 * ext/libvpx/Makefile.am:
16027 * ext/libvpx/sources.frag:
16028 build: libvpx: update the sources lists
16029 `make dist` broke since commit f06798 (libvpx: Update the submodule to
16030 libvpx-1.4.0) because the sources.frag does not contain all the module
16032 This patch updates thoroughly the sources.
16033 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16034 https://bugzilla.gnome.org/show_bug.cgi?id=755525
16036 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16038 * gst/vaapi/gstvaapipostproc.c:
16039 vaapipostproc: don't set caps change at first set
16040 When the source caps change, the filter is destroyed and recreated.
16041 Nonetheless, this happens every time the vaapipostproc starts, since the caps
16042 change detection algorithm does not take in consideration when the caps are
16044 This patch intents to be an optimization, to avoid a useless filter
16045 destroy-creation cycle when the sources caps are set for first time.
16046 The new helper function video_info_update() is a refactorization to avoid
16048 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16049 https://bugzilla.gnome.org/show_bug.cgi?id=758007
16051 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16053 * gst/vaapi/gstvaapipostproc.c:
16054 vaapipostproc: params video_info_changed() callers
16055 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
16056 swapped the the order. This didn't raise problems since the comparison of both
16057 structures were not affected by its semantics.
16058 But still it would be better to fix this to keep the coherence of the code.
16059 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16060 https://bugzilla.gnome.org/show_bug.cgi?id=758007
16062 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16064 * gst/vaapi/Makefile.am:
16065 build: declare real built files
16066 When runnig the `make dist` target from a clean tree, it fails because
16067 if could not find the copied files from codecparsers submodule.
16068 They weren't copied because they weren't declared as built sources.
16069 This patch removes the stamp mechanism and use the actual file list to copy
16070 as the built sources. Also it fixes the duplication of the parser files.
16071 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16072 https://bugzilla.gnome.org/show_bug.cgi?id=755525
16074 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16076 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16077 decoder: vp9: Fix last/golden/altref frame index setting
16078 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
16079 based on what ever reference frame indices encoded in frame header.
16081 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16083 * debian.upstream/rules:
16084 debian: remove custom parallel compilation
16085 In order to build a debian package with upstream source, the user should
16088 cp -a debian.upstream debian
16089 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
16090 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
16091 way to make a parallel build (-j8 in this case).
16092 This commit removes the script in debian/rules that detects the number of
16093 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
16094 official in debian.
16095 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16096 https://bugzilla.gnome.org/show_bug.cgi?id=754087
16098 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16100 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16101 decoder: vp9: Fix PTS calculation of cloned frames
16103 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16105 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16106 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
16107 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
16108 gstvaapidecoder base calss is reponsible for handling those frames later on.
16109 No need for explicit verification of frame header's show_frame in order to
16110 do picture outputing.
16112 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16114 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16115 decoder: vp9: Fix ref picture update while doing repeat frame
16116 Don't try to do frame decoding and reference picture update
16117 while receiving a vp9 frame having show_existing_frame flag
16120 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16122 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16123 decoder: vp9: Add repeat-frame display handling
16124 If vp9 frame header come up with show_existing_frame flag set,
16125 we should duplicate the existing decoded frame as current frame to
16128 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16130 * gst/vaapi/gstvaapidecodebin.c:
16131 vaapidecodebin: add me as element co-author
16132 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16133 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16135 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16137 * gst/vaapi/gstvaapidecodebin.c:
16138 vaapidecodebin: try to get display from decoder
16139 Rather than create a dummy display, if none has propagated as a context, we
16140 should try to get the one from vaapidecode.
16141 As the bin is already in READY state, the vaapidecode should be also in that
16142 state. That means that the contexts have been negotiated, and it should have
16144 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16145 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16147 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16149 * gst/vaapi/gstvaapidecodebin.c:
16150 * gst/vaapi/gstvaapidecodebin.h:
16151 vaapidecodebin: add postprocessor dynamically
16152 The former approach to left the bin unfinished has some problems: the context
16153 cannot be shared because the vaapidecode is unlinked in many cases, leading to
16154 creating a VADisplay twice.
16155 Initially the bin is fully functional, constructed as
16156 (-----------------------------------)
16158 | (-------------) (-------) |
16159 |<--| vaapidecode |--->| queue |--->|
16160 | (-------------) (-------) |
16161 (-----------------------------------)
16162 When the context is shared and the VADisplay has VPP capabilities, before
16163 changing to READY state, the bin is reconfigured dynamically, adding the
16164 vaapipostproc element afeter the queue:
16165 (--------------------------------------------------------)
16167 | (-------------) (-------) (---------------) |
16168 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
16169 | (-------------) (-------) (---------------) |
16170 (--------------------------------------------------------)
16171 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16172 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16174 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16176 * gst/vaapi/gstvaapidecodebin.c:
16177 vaapidecodebin: delay the bin configuration
16178 Delay the bin configuration until changing to READY state. This is because we
16179 should add the vaapipostproc element until the vaapidecode has emitted the
16180 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
16182 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16183 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16185 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16187 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16188 decoder: vp9: Add crop rectangle support.
16189 Set crop rectange if:
16190 There is display_width and display_height which is different from actual width/height
16192 The changed resolution is less than the actual configured dimension of surfaces
16194 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16196 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16197 decoder: vp9: Fix the context and surface pool reset for multi resolution video
16198 Unlike other decoders, vp9 decoder doesn't need to reset the
16199 whole context and surfaces for each resolution change. Context
16200 reset only needed if resolution of any frame is greater than
16201 what actullay configured. There are streams where a bigger
16202 resolution set in ivf header or webm header but actual resolution
16203 of all frames are less. Also it is possible to have inter-prediction
16204 between these multi resolution frames.
16206 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16208 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16209 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
16210 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
16211 Preliminary fix for supproting multi resolution video decode.
16213 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16215 * gst/vaapi/gstvaapidecode.c:
16216 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
16218 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16220 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16221 decoder: vp9: Set lossless flag from frame header
16223 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16225 * ext/codecparsers:
16226 codecparsers: Update to gst-vaapi-branch d9f25
16227 d9f2527: codecparsers: vp9: Set lossless flag in frame header
16229 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16231 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16232 libs: vp9: remove unused symbols
16233 clang complains about a couple variables and one label which were not
16234 used. This patch removes them.
16235 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16236 https://bugzilla.gnome.org/show_bug.cgi?id=757958
16238 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16240 * ext/codecparsers:
16241 codecparsers: Update to gst-vaapi-branch da251bb
16242 da251bb: codecparsers: vp9: Optimize the memory allocation
16243 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
16245 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16247 * gst/vaapi/gstvaapipluginbase.c:
16248 * gst/vaapi/gstvaapipluginbase.h:
16249 plugin: guard pointers to pad query functions
16250 Since gstreamer 1.4 is not required to have pad query functions if the query
16252 This patch guards out the pad query functions for gstreamer < 1.4
16253 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16254 https://bugzilla.gnome.org/show_bug.cgi?id=757629
16256 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16258 * gst/vaapi/gstvaapiencode.c:
16259 vaapiencode: use pad query vmethods
16260 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
16261 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
16262 while keeps support for previous versions of gstreamer.
16263 This patch is relevant since GstVideoEncoder takes care of other queries that
16264 we are currently ignoring.
16265 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16266 https://bugzilla.gnome.org/show_bug.cgi?id=757629
16268 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16270 * gst/vaapi/gstvaapidecode.c:
16271 vaapidecode: return pad's template caps if no display
16272 A caps query can occur before the element has a display. In that case, the
16273 element can return its pad's template. But when the element already has a
16274 display, and the caps probe fails, the element shall return an empty caps, so
16275 the auto-plug could try with another decoder.
16276 If the element has a display and the caps probe works, then the computed caps
16277 should be returned.
16278 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16279 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16281 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16283 * gst/vaapi/gstvaapidecode.c:
16284 * gst/vaapi/gstvaapisink.c:
16285 plugins: don't create display at caps query
16286 Caps query can happen before the element has a bus. The display creation should
16287 be should occur on the context negotiation, when the bus is already configured.
16288 Then at caps query no display should be created.
16289 Instead of force the display creation, we graciously fail the allowed_caps()
16291 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
16292 basetransform descendant, seems to be not affected by this, nor the encoders.
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-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16298 * gst/vaapi/gstvaapidecode.c:
16299 * gst/vaapi/gstvaapiencode.c:
16300 * gst/vaapi/gstvaapipluginutil.c:
16301 * gst/vaapi/gstvaapipluginutil.h:
16302 * gst/vaapi/gstvaapipostproc.c:
16303 * gst/vaapi/gstvaapisink.c:
16304 plugins: fix context query handling
16305 The current context query handling design is flawed: the function
16306 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
16307 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
16308 pad query function should handle differently each case.
16309 This patch changes the gst_vaapi_reply_to_query() for
16310 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
16311 to match the correct context query handling.
16312 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16313 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16315 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16317 * gst/vaapi/gstvaapipluginutil.c:
16318 plugin: don't lose previous context at query
16319 When processing the GST_CONTEXT_QUERY we should not lose the previous
16320 context in the query, we should only add our display structure.
16321 This patch copies the old context, if it is there, and stamp our display on
16322 it. Otherwise, a new context is created.
16323 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16324 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16326 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16328 * gst/vaapi/gstvaapivideocontext.c:
16329 * gst/vaapi/gstvaapivideocontext.h:
16330 vaapivideocontext: add gst_vaapi_video_context_set_display()
16331 This function set the display to an already created context. This function is
16332 going to be used later.
16333 Also, gst_vaapi_video_context_new_with_display() now uses this function.
16334 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16335 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16337 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16339 * gst/vaapi/gstvaapipluginutil.c:
16340 * gst/vaapi/gstvaapivideocontext.c:
16341 * gst/vaapi/gstvaapivideocontext.h:
16342 plugins: check if display is set in sync
16343 Since the context messages are sync'ed, the display assignation happens in the
16344 same thread, hence we can know if the display was found or not as soon we call
16346 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
16347 as a new parameter, the address of the plugin's display, and reports back if
16348 the display was found and set.
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:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16354 * gst/vaapi/gstvaapipluginutil.c:
16355 * gst/vaapi/gstvaapivideocontext.c:
16356 plugins: set display through context
16357 Instead of setting the display to the plugin directly after its creation, do
16358 it through the gstreamer's context mechanism, avoiding double assignations.
16359 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16360 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16362 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16364 * gst/vaapi/gstvaapivideocontext.c:
16365 vaapivideocontext: rename context structure
16366 The context structure is named "display" which is too generic. The contrary
16367 happens, for example, with GstGL, what uses the same name as the context, and
16368 its logs make more sense.
16369 This patch renames the context structure with the same name as the
16370 context, thus GST_PTR_FORMAT can pretty print it.
16371 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16373 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16375 * gst/vaapi/gstvaapivideocontext.c:
16376 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
16377 First, refactorized run_context_query() into _gst_context_run_query(), adding
16378 a new parameter: the pad direction, in order to simplify the code.
16379 Second, added a new helper function: _gst_context_query(), which is a generic
16380 context query function. It isolates the operation of running the query and
16381 sets the context if found, also it enhances the logs.
16382 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
16383 future this helper function will be merged into the core libraries of
16385 Finally, gst_vaapi_video_context_prepare() was rewritten to use
16386 _gst_context_query().
16387 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16388 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16390 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16392 * gst/vaapi/gstvaapivideocontext.c:
16393 vaapivideocontext: refactor context category debug
16394 Refactor the extraction GST_CAT_CONTEXT logging using a only once
16395 initializator, so we could get the debug category from different code
16397 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16398 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16400 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16402 * gst/vaapi/gstvaapivideocontext.c:
16403 gstvaapivideocontext: fix indentation
16404 gst-indent does not handle correctly some expression like function
16405 declaration with attributes, breaking the following expressions.
16406 This patch makes gst-indent to ignore the attributed function
16407 declartion so the followed function definition is not mangled, such
16408 as happened in commit b4154a
16409 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16410 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16412 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16414 * gst/vaapi/gstvaapipluginbase.c:
16415 plugin: chain up set_context() vmethod
16416 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
16417 the parent class in order to broadcast all its contexts when the element
16418 is added into a bin:
16419 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
16420 There is no need to guard the call, because before GStreamer 1.7, the
16421 set_context() vmethod was NULL in the element class, hence the conditional
16423 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16424 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16426 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16428 * tests/simple-encoder.c:
16429 tests: simple-encoder: remove dead code
16430 The caps creation for codec state configuration is not used. Let's remove it.
16431 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16433 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16435 * gst/vaapi/gstvaapidecodebin.c:
16436 vaapidecodebin: fix a leaked display instance
16437 The display returned by gst_vaapi_video_context_get_display() increments the
16438 references. Thus, we have to unref the returned display.
16439 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16440 https://bugzilla.gnome.org/show_bug.cgi?id=757595
16442 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16444 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16445 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16446 libs: remove unneeded headers
16447 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
16448 required to include them in the header. It is not also required to include
16449 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
16450 exposes their structures (e.g. GLXPixmap).
16451 Nonetheless, glext.h neither glxext.h are required to include, they are
16452 already included conditionally by gl.h and glx.h, respectively.
16453 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16454 https://bugzilla.gnome.org/show_bug.cgi?id=757577
16456 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16458 * ext/codecparsers:
16459 codecparsers: Update to gst-vaapi-branch 0ea6792
16460 0ea6792: codecparsers: vp9: Add header comments
16461 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
16463 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16465 * gst/vaapi/gstvaapidecode.c:
16466 VP9: plugins: Add VP9 decoder
16468 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16470 * gst-libs/gst/vaapi/Makefile.am:
16471 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16472 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
16473 VP9: libgstvaapi: Add VP9 decoder
16475 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16477 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16478 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16479 VP9: gstvaapiprofile: Add profile definitions
16481 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16484 VP9: build: Check availability of vp9 decoder APIs
16486 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16490 * gst-libs/gst/codecparsers/Makefile.am:
16491 VP9: Allow building vp9 codecparser internally
16493 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16495 * ext/codecparsers:
16496 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
16497 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
16498 e7d9217: codecparser: h264: initialize parsing structures
16499 403d400: codecparser: h265: initialize parsing structures
16501 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16504 configure.ac: don't use an undefined variable
16505 If the environment lacks of gstreamer development packages, this error will
16506 be reported to the user: "gstreamer- was not found"
16507 This is because we are using an undefined variable in the printed message. The
16508 fix simple changes the variable for the hard-coded string "1.0".
16509 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16510 https://bugzilla.gnome.org/show_bug.cgi?id=757283
16512 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16514 * gst/vaapi/gstvaapidecode.c:
16515 vaapidecode: relax guards for memory:VASurface capsfeature
16516 Though caps features are supported since GStreamer 1.2, there are some
16517 issues with the features caps negotiation in that version. Nonetheless,
16518 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
16519 feature negotiation is relaxed for GStreamer 1.4.
16520 The guard is the same as in vaapisink's caps template.
16521 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16522 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16524 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16526 * gst/vaapi/gstvaapidecode.c:
16527 vaapidecode: decide allocation doesn't update srccaps
16528 The received caps query will bring the already negotiated caps, so they are
16529 not expected to change.
16530 This patch removes this verification which is dead code path.
16531 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16532 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16534 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16536 * gst/vaapi/gstvaapidecode.c:
16537 * gst/vaapi/gstvaapipluginutil.c:
16538 * gst/vaapi/gstvaapipluginutil.h:
16539 vaapidecode: use caps to check the features
16540 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
16541 expensive, we check the caps from the allocation query, to check the
16542 negotiated feature.
16543 In order to do this verification a new utility function has been implemented:
16544 gst_vaapi_caps_feature_contains().
16545 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
16546 have been refactorized.
16547 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16548 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16550 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16552 * gst/vaapi/gstvaapidecode.c:
16553 vaapidecode: set format before decide allocation
16554 There is a regression from commit 3d8e5e. It was expected the buffer pool
16555 allocation occur before the caps negotiation, but it is not.
16556 This patch fixes this regression: the caps negotiation is done regardless the
16557 allocation query from downstream.
16558 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16559 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16561 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16564 build: check for patch and fix yasm check
16565 Add configure checking for GNU patch tools and fixed configure
16566 checking YASM to correct sequence.
16567 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16568 https://bugzilla.gnome.org/show_bug.cgi?id=756690
16570 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16572 * ext/libvpx/Makefile.am:
16573 build: Remove disable-md5 option for libvpx build
16574 The configure option --disable-md5 was provided in libvpx-1.3.0 which
16575 has been removed in 1.4.0.
16577 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16579 * ext/libvpx/upstream:
16580 libvpx: Update the submodule to libvpx-1.4.0
16581 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
16583 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16586 configure: mark support for GStreamer 1.2 as obsolete.
16587 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
16588 Our goal is to support the last two stable versions of GStreamer which
16589 are 1.4 and 1.6 at the moment.
16590 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
16591 release and will get rid of those in 0.8.
16593 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16595 * gst/vaapi/gstvaapidecode.c:
16596 vaapidecode: Fix buffer copy assertion
16597 Don't try to copy the NULL buffer-codec_data.
16599 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16602 build: allow builds against GStreamer 1.7.x
16603 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16605 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16607 * gst/vaapi/gstcompat.h:
16608 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
16609 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
16610 add an implementation if gstreamer-vaapi is linked to previous versions.
16611 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16613 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16615 * gst/vaapi/gstvaapidecode.c:
16616 vaapidecode: simplify copy of GstVideoCodecState
16617 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16619 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16621 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
16622 * patches/videoparsers/series.frag:
16623 patches/videoparsers: h265parser: more API fences
16624 Add more API fences according with its version and refresh the patch.
16625 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16626 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16628 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16630 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
16631 * patches/videoparsers/series.frag:
16632 patches/videoparsers: h265parser: rename patch keeping number
16633 Refresh the patch and rename it in order to keep the patch number.
16634 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16635 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16637 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16639 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16640 patches/videoparsers: h264parser: more API fences and refresh
16641 Add more API fences according with its version and refresh the patch.
16642 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16643 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16645 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16647 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
16648 * patches/videoparsers/series.frag:
16649 patches/videoparsers: h264parser: fix description and refresh
16650 Fix a typo in the patch description and refresh it in order to avoid the
16651 creation of .orig files and break the distcheck target.
16652 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16653 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16655 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16657 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16658 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16659 patches/videoparsers: h264parser: refresh patches
16660 In order to avoid the creation of .orig files and break the distcheck target.
16661 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16662 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16664 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16666 * gst/vaapi/Makefile.am:
16667 build: link libgstvaapi_parse against codec parser
16668 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
16669 when running configure.
16670 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
16671 need it if builtin codec parsers are disabled.
16672 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
16673 compilation. If builtin codec parsers are enable, this variable is null, so it
16674 should work using libgstvaapi, as normal.
16675 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16676 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16678 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16681 build: verify for H264 MVC and H265 SPS
16682 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
16683 the required symbols for those were added in GStreamer 1.5
16684 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
16685 parsers, the compilation fails, because the lack of those symbols.
16686 This patch verifies if the installed H264 and H265 parsers have those symbols. If
16687 they do not, the specific built in codec parsers are enabled and used.
16688 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16689 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16691 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16693 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16694 decoder: h264: initialize PPS's slice_group_id
16695 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
16696 so it contains random data.
16697 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
16698 pointer uninitialized, leading to a segmentation fault when the memory is
16700 This patch prevents this by initializing the slice_group_id before the PPS
16702 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16703 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16705 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
16707 * gst/vaapi/gstvaapidecode.c:
16708 vaapidecode: proper numerator and denominator for forced latency framerate
16709 https://bugzilla.gnome.org/show_bug.cgi?id=755040
16711 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16713 * ext/codecparsers:
16714 codecparsers: Update to gst-vaapi-branch commit f9e284b
16715 dae1a84: h264parse/h265parse: Fix negotiation crash
16716 45a9f8a: codecparsers: h265 : Fix default scaling list values
16717 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
16718 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16720 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16722 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16723 decoder: hevc: Don't flush dpb for EOS/EOB nal
16724 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
16725 the dpb_add() itself will handle the flusing(if needed) of dpb
16726 for end of sequence and end of bitstream.
16727 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16729 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16731 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16732 decoder: hevc: Fix the dpb_add() based on C.5.2.3
16733 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
16734 just after the PicLatencyCnt setting of existing dpb frames.
16735 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16737 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16739 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16740 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
16741 This fix is based on the V3 vesion of spec which was missing in older versions.
16742 When the current picture has PicOutputFlag equal to 1, for each picture in the
16743 DPB that is marked as "needed for output" and follows the current picture in output order,
16744 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
16745 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16747 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16749 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16750 decoder: h265: Fix indentation
16752 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
16754 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16755 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16756 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16757 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16758 * gst/vaapi/gstvaapidecode.c:
16759 * gst/vaapi/gstvaapipluginutil.c:
16760 multiview: initial attempt at stereo/multiview support
16761 Add support for marking caps and buffers for multiview or
16762 stereoscopic output.
16763 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16765 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16767 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16768 decoder: hevc: remove unused functions
16769 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16770 https://bugzilla.gnome.org/show_bug.cgi?id=754250
16772 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16774 * gst/vaapi/gstvaapidecode.c:
16775 vaapidecode: remove (another) unused variable
16776 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16778 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16780 * gst/vaapi/gstvaapidecode.c:
16781 vaapidecode: remove unused variable
16782 Thus silence the compilation warnings.
16784 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16786 * gst/vaapi/gstvaapidecode.c:
16787 vaapidecode: compilation fix
16788 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
16789 compilation where the toolchain uses restrictive flags as clang.
16790 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16792 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16794 * gst/vaapi/gstvaapidecode.c:
16795 vaapidecode: renegotiate if caps are not equal
16796 The use of gst_caps_is_always_compatible() for this optimization may lead to
16797 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
16798 if it is required a re-negotiation.
16799 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16800 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16802 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16804 * gst/vaapi/gstvaapidecode.c:
16805 * gst/vaapi/gstvaapidecode.h:
16806 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
16807 Delaying the pool re-negotiation untill we push all decoded (and queued)
16808 frames downstream. Otherwise for the multi-resolution videos, the
16809 GstVideoVideoMemory will be having wrong resolution and which leads
16810 to nasty behaviours, especially when using software renderers.
16811 sample media file: RAP_B_Bossen_1.bin
16813 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
16814 get the final resoultion 416x240.
16815 Starting from 25 th frame, the resolution will change to 416x240. But parser
16816 elements won't report this since the effective croped resolution is same in
16817 both cases. Here the core libgstvaapi will detect this through it's internal
16818 parsing and do all context/pool destory/reset stuffs. Also it will notify this
16819 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
16820 immediately, this will not sync with the resolution of already decoded and queued
16821 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
16822 software renderer). So we have to delay the pool renegotiation in vaapidecode,
16823 untill we push all decoded frames downstream.
16824 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16826 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16828 * gst/vaapi/gstvaapidecode.c:
16829 vaapidecode: Always keep a copy of input codec state
16830 Currently we are sharing the input GstVideoCodecState with
16831 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
16832 each caps change. This is troublesome in many cases, for eg: if
16833 resoultion changes with in a singe stream. Because, when ever there
16834 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
16835 fields with new resolution, but since we are using the same codecstate (ref)
16836 in gstvaapidecode.c, the caps check for input caps change will always fail.
16837 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16839 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16841 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16842 decoder: hevc: Fix the scaling list scan order
16843 The default scan order of scaling lists are up-right-diagonal
16844 as per hevc specification. Use the newly implemented
16845 uprightdiagonal_to_raster conversion codecparser APIs to
16846 get the the scaling_list values in raster order, which is
16847 what the VA intel driver requires.
16849 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16851 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16852 decoder: hevc: sync with the codecparser changes
16853 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
16854 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
16856 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16858 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16859 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16861 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16863 * ext/codecparsers:
16864 codecparsers: Update to gst-vaapi-branch commit 69550f1
16865 c207c6d: codecparsers: h265: Fix tile row and column parsing
16866 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
16867 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16868 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
16869 2f0932b: h264parse: Clear SPS info after processing
16870 f57d6b0: videoparsers: enable accept-template flag
16872 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16874 * debian.upstream/control.in:
16875 debian: add yasm as build dependency
16876 As the compilation of libvpx (for vp8 parser) is enabled by default,
16877 yasm is required by default too.
16878 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16880 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16882 * debian.upstream/rules:
16883 debian: remove --with-gstreamer-api option
16884 It is no longer valid in gstreamer-vaapi.
16885 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16886 [removed unused GST_API_VERSION variable]
16887 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16888 https://bugzilla.gnome.org/show_bug.cgi?id=753618
16890 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16892 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16893 wayland: rename is_cancelled to sync_failed
16894 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
16895 sense. This commit renames this variable to sync_failed.
16897 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
16899 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16900 wayland: Don't return GST_FLOW_ERROR on flushing
16901 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
16902 return FALSE which makes gst_vaapi_window_wayland_render() return
16903 FALSE which ends up posting an ERROR message in
16904 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
16906 https://bugzilla.gnome.org/show_bug.cgi?id=753598
16908 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16910 * gst/vaapi/gstvaapi.c:
16911 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
16912 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
16914 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16916 * gst/vaapi/gstvaapidecodebin.c:
16917 vaapidecodebin: check for postproc instance
16918 If the VPP's deinterlace-method is set, first we should check if the postproc
16919 is already instanced to set it. Otherwise we just store it until the VPP is
16920 added into the bin.
16921 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16922 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16924 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16926 * gst/vaapi/gstvaapidecodebin.c:
16927 * gst/vaapi/gstvaapipluginutil.c:
16928 * gst/vaapi/gstvaapipluginutil.h:
16929 vaapidecodebin: ensure VPP before going to READY
16930 There are sometimes that the VA-API display context is not shared among the
16931 pipeline, but it is important to know it before going to READY state (when the
16932 pipeline is already linked).
16933 One instance of this case is this:
16934 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
16935 This patch adds a new function in gstvaapipluginutil called
16936 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
16937 display, which only will be used for verify if the VAEntrypointVideoProc is
16938 available by the hardware. Afterwards, it should be unrefed.
16939 If the vaapidecodebin is going to READY state, and the element still doesn't
16940 know if VPP is available, the last resort is to create a new instance of the
16941 VA-API display and test for it.
16942 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16944 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16946 * gst/vaapi/gstvaapidecodebin.c:
16947 vaapidecodebin: post an error message if fails
16948 If the construction of the bin fails, post an error message in the bus.
16949 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16950 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16952 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16954 * gst/vaapi/gstvaapidecodebin.c:
16955 * gst/vaapi/gstvaapidecodebin.h:
16956 vaapidecodebin: has_vpp as a tri-state variable
16957 has_vpp can be UNKNOWN while the context message hasn't being received.
16958 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16959 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16961 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16963 * gst/vaapi/gstvaapivideomemory.c:
16964 gstvaapivideomemory: native format with no derived image
16965 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
16966 info based on the derived image configuration.
16967 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16968 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16970 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16972 * gst-libs/gst/vaapi/video-format.c:
16973 * gst-libs/gst/vaapi/video-format.h:
16974 * gst/vaapi/gstvaapivideomemory.c:
16975 surface pool config based on video info
16976 First added the function gst_vaapi_video_format_get_best_native(), which
16977 returns the best native format that matches a particular chroma type:
16978 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
16979 RGB32 chroma and encoded format map to NV12 too.
16980 That format is used to configure, initially, the surface's pool for the
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 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16987 * gst/vaapi/gstvaapivideomemory.c:
16988 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
16989 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16990 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16992 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
16994 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16995 gstvaapiencoder: validate chroma according to the VA's RT format
16996 Before, only YUV420 color space where supported. With this patch, the
16997 encoder is queried to know the supported formats and admits YUV422
16998 color space if its available.
16999 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17000 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17002 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17004 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17005 decoder: hevc: Add calculation of WpOffsetHalfRangeC
17006 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
17007 prediction weight table values with out using any hard coding.
17008 Fixme: We don't have parser API for sps_range_extension, so
17009 assumed zero value for high_precision_offsets_enabled_flag.
17010 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17012 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17014 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17015 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
17016 Based on ITU-T rec H265(4/2015): 7-56
17017 This was a wrong equation in rec H265 (4/2013): 7-44...
17018 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17020 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17022 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17023 decoder: hevc: Fix default value assignment of pred_weight_table
17025 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17027 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17028 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
17029 Assign only if ChromaArrayType != 0..
17030 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17032 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17034 * ext/codecparsers:
17035 codecparsers: Update to gst-vaapi-branch commit 1c70432
17036 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
17037 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
17038 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17040 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17042 * ext/codecparsers:
17043 codecparsers: Update to gst-vaapi-branch commit c18b8ad
17044 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
17045 a033083: videoparsers: h265: Fix the frame start detection code
17046 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17048 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17050 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17051 decoder: hevc: Add SEI parsing
17052 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17054 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17056 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17057 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
17058 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
17059 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
17060 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
17061 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
17062 is TRUE. Assuming them as MAIN profile for now.
17063 https://bugzilla.gnome.org/show_bug.cgi?id=753226
17064 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17066 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17068 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17069 patches/videoparsers: Fix the wrong source file path
17070 This is something wrongly typed in commit 6d7b631
17072 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17074 * ext/codecparsers:
17075 codecparsers: Update to gst-vaapi-branch commit b8d8be4
17076 ee7e81b: h264parse: Don't discard first AU delimiter
17077 3690fb9: h264parse: Add more NAL types for debugging output
17078 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
17079 ace61048: h265parse: expose compatible profiles to downstream
17080 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17082 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17084 * gst/vaapi/gstvaapipluginutil.c:
17085 * gst/vaapi/gstvaapivideocontext.c:
17086 * gst/vaapi/gstvaapivideocontext.h:
17087 gstvaapivideocontext: remove unused parameter
17088 gst_vaapi_video_context_prepare() received an unused parameter. This patch
17089 removes it and the structure passed by the caller.
17090 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
17091 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17093 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17095 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17096 decoder: hevc: Fix decoding of stream when it has temporal sublayers
17097 We are calculating the dpb size based on max_dec_pic_buffering.
17098 But if there are more than one temporal sublayers, we are supposed
17099 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
17100 size calculation (Assuming HighestTid as max_sub_layers_minus).
17101 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
17102 https://bugzilla.gnome.org/show_bug.cgi?id=753226
17103 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17105 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17107 * gst/vaapi/gstvaapidecode.c:
17108 * gst/vaapi/gstvaapidecodebin.c:
17109 * gst/vaapi/gstvaapiencode_h264.c:
17110 * gst/vaapi/gstvaapiencode_h265.c:
17111 * gst/vaapi/gstvaapiencode_jpeg.c:
17112 * gst/vaapi/gstvaapiencode_mpeg2.c:
17113 * gst/vaapi/gstvaapiencode_vp8.c:
17114 * gst/vaapi/gstvaapipluginutil.h:
17115 * gst/vaapi/gstvaapipostproc.c:
17116 * gst/vaapi/gstvaapisink.c:
17117 refactor vaapi caps strings for pad templates
17118 Refactor the main vaapi caps strings into three macros:
17119 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
17120 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
17121 Those are in gstvaapipluginutil.h so all the elements could use them, instead
17122 of re-declaring them every time.
17123 No functional changes.
17124 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17126 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17128 * gst/vaapi/gstvaapipostproc.c:
17129 gstvaapipostproc: fix code style
17130 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17132 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17134 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17135 decoder: hevc: Fix the decoding of dependent slice segment
17136 Decoding process for reference picture list construction needs to be
17137 invoked only for P and B slice and the value for slice_type of dependent slice
17138 segment should be taken from the previous independent slice segment header
17140 https://bugzilla.gnome.org/show_bug.cgi?id=753226
17141 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17143 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
17145 * gst/vaapi/gstvaapipluginbase.c:
17146 plugins: reduce the noise of warnings
17147 Those messagse should be attached to the object, also the lack of
17148 caps is not an error, in particular in the case of JPEG encoding.
17149 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17150 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17152 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17154 * gst-libs/gst/vaapi/gstvaapicontext.c:
17155 gstvaapicontext: fix the JPEG encoder attribs value
17156 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
17157 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
17158 assigns the returned value to the attribute.
17159 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17160 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17162 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
17164 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17165 gstvaapiencoder: framerate 0/1 is valid too
17166 Framerate 0/1 is valid, and it is particularly useful for picture
17167 encoding, such as jpeg. This patch makes the encoder to admit that
17169 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17170 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17172 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17174 * gst/vaapi/gstvaapipostproc.c:
17175 vaapipostroc: GLTextureUploadMeta in sink template
17176 Advertise GLTextureUploadMeta in sink caps template.
17177 https://bugzilla.gnome.org/show_bug.cgi?id=752130
17179 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17181 * gst/vaapi/Makefile.am:
17182 * gst/vaapi/gstvaapiencode.c:
17183 * gst/vaapi/gstvaapipluginbase.c:
17184 * gst/vaapi/gstvaapipluginbase.h:
17185 * gst/vaapi/gstvaapipostproc.c:
17186 * gst/vaapi/gstvaapisink.c:
17187 * gst/vaapi/gstvaapiuploader.c:
17188 * gst/vaapi/gstvaapiuploader.h:
17189 remove gstvaapiuploader
17190 Working on bug #744042 I realized that the gstvaapiuploader is practically not
17192 This patch removes the gstvaapiuploader and add the method
17193 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
17194 the system can handle, which is used by vaapisink and vaapipostproc.
17195 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17196 https://bugzilla.gnome.org/show_bug.cgi?id=752777
17198 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17200 * gst/vaapi/gstvaapidecode.c:
17201 vaapidecode: don't lost GLTextureUpload on seek
17202 When seeking, the decoder is reset, but the buffer pool is not
17203 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
17204 pool has the GLTextureUpload meta.
17205 The decoder knows that GLTextureUpload meta was negotiated in
17206 decide_allocation(), but this method is not called when seeking.
17207 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17208 https://bugzilla.gnome.org/show_bug.cgi?id=752929
17210 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17212 * gst/vaapi/gstvaapipluginutil.c:
17213 plugins: don't use gst_pad_get_allowed_caps()
17214 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
17215 decoders, that is OK, but in the case of the postproc might lead loops,
17216 since the gst_base_transform_query_caps() forwards the query upstream
17218 Instead of gst_pad_get_allowed_caps() we only query the peer with
17219 gst_pad_peer_query_caps() using the pad's template as filter.
17220 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17221 https://bugzilla.gnome.org/show_bug.cgi?id=752558
17223 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17228 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17230 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
17231 * patches/videoparsers/series.frag:
17232 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
17233 All API/ABI changes for S3D/MVC are added in 1.5, backporting
17234 them to older verison is not recommended.
17235 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17237 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17239 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17240 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
17242 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17244 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17245 decoder: jpeg: Align with new API/ABI changes in codecparser
17246 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17248 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17250 * ext/codecparsers:
17251 codecparsers: Update to gst-vaapi-branch commit 800bdb2
17252 ed13220: mpegvideometa: add meta transform function
17253 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
17254 7a51722: codecparsers: jpeg: fix docs for table parsing functions
17255 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
17256 387a39d: codecparsers: jpeg: fix up API
17257 db9d6a9: codecparsers: jpeg: tweak API a little
17258 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
17259 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
17260 4658c30: codecparsers: jpeg: fix calculation of segment size
17261 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
17262 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
17263 9422464: h264parse: fix typo in log message
17264 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
17265 77704ce: nalutils: trivial patch to check if
17266 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
17267 7862f95: Revert "codecparsers: remove ignored increment of return"
17268 54017b1: h264parse: Add support for passing stereoscopic/multiview info
17269 8667ee4: h264parse: Don't switch to passthrough on set_caps()
17270 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17272 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17274 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17275 decoder: h264: track previous reference frames.
17276 Improve closure of gaps in frame_num by strictly following and trying
17277 to fill them with previous reference frames. So, they are now tracked
17278 thus avoiding insertion of dummy ("greenish") frames.
17280 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17282 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17283 decoder: h264: fix integration of second field into the DPB.
17284 If the new picture to be added to the DPB is not a first field, then
17285 it shall be the second field of the previous picture that was added
17287 This removes the need for dpb_find_picture() now that we track the
17288 immediately preceding decoded picture, in decode order.
17290 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17292 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17293 decoder: h264: fix closure of "other-field" gap.
17294 When a dummy "other-field" is inserted, it is assumed to inherit the
17295 reference flags from the first field, and the sliding window decoded
17296 reference picture marking process is also executed so that corrupted
17297 frames are moved out as early as possible.
17298 While doing so, we also try to output frames that now contain a single
17299 valid field picture, prior to inserting any other picture into the DPB.
17300 Note: this may be superfluous currently based on the fact that dpb_add()
17301 combines the two most recent pairable fields, but this process would be
17302 further simplified later on.
17304 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17306 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17307 decoder: h264: track corrupted frames.
17308 Mark the picture as "corrupted" if it is reconstructed from corrupted
17309 references or if those references are fake, e.g. resulting from lost
17311 This is useful for notifying the upper layer, or downstream elements,
17312 that the decoded frame may contain artefacts.
17313 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17315 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17317 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17318 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17319 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
17320 * gst/vaapi/gstvaapidecode.c:
17321 decoder: add initial infrastructure for marking corrupted output.
17322 Add initial infrastructure in core codec library and vaapidecode to mark
17323 corrupted frames as such. A corrupted frame is such a frame that was
17324 reconstructed from invalid references for instance.
17325 https://bugzilla.gnome.org/show_bug.cgi?id=751434
17326 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17328 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17331 Bump version for development
17333 === release 0.6.0 ===
17335 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17340 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17345 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17347 * gst-libs/gst/vaapi/gstvaapiprofile.c:
17348 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
17349 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
17350 Right now there is not a primary ranked parser for vc1 and the demuxers
17351 delivers caps without specifying the profile. This situation is not an issue
17352 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
17353 explicit profile defined in the negotiated caps.
17354 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
17355 negotiation admits caps subsets try outs.
17356 This patch solves the issue ignoring the profile negotiation in the caps. For
17357 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
17358 done without the vc1 parser, such as happens in gstreamer 1.5.
17359 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17361 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17363 * gst/vaapi/gstvaapi.c:
17364 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
17365 Unfortunately vaapidecodebin element is not seems to be stable
17366 enough for autoplugging ahead of vaapidecode.
17367 Lowering the rank for now (cosidering the immediate 0.6 release).
17368 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
17369 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17371 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17373 * gst-libs/gst/vaapi/Makefile.am:
17374 build: Add missing CFLAGS to Makefile.am
17376 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17378 * gst-libs/gst/vaapi/gstvaapifilter.c:
17379 gstvaapifilter: Only register STE property if it supported by corresponding VA library
17380 Fix the regression introduced in commit eb465fb.
17381 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17382 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17384 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17386 * gst/vaapi/gstvaapipostproc.c:
17387 vaapipostproc: no format convert on GL tex upload meta
17388 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
17389 color format of the buffer.
17390 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17392 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17394 * gst-libs/gst/vaapi/gstvaapifilter.c:
17395 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
17396 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17397 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17399 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17401 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17402 encoder:h265: Fix the check for packed-header support
17403 Use VA_ENC_PACKED_HEADER_* definition for checking.
17404 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17406 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17408 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17409 encoder:h264: Fix the check for packed-header support
17410 Use VA_ENC_PACKED_HEADER_* definition for checking.
17411 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17413 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17415 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17416 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
17417 One buffering_period() SEI message shall be present in every IDR access unit
17418 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
17419 use a non-CQP mode, e.g. CBR. In other words, when
17420 nal_hrd_parameters_present_flag is set to 1.
17421 One picture_timing() SEI messages shall be present in every access unit
17422 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
17423 https://bugzilla.gnome.org/show_bug.cgi?id=722734
17424 https://bugzilla.gnome.org/show_bug.cgi?id=751831
17425 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17427 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17429 * gst/vaapi/gstvaapidecodebin.c:
17430 vaapidecodebin: notify if vpp is disabled
17431 When the system is aware that VPP is not available by the VA driver,
17432 it would be useful to notify to the user that the disable-vpp property
17434 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17436 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17438 * gst/vaapi/gstvaapidecodebin.c:
17439 * gst/vaapi/gstvaapidecodebin.h:
17440 vaapidecodebin: enable vpp if it is available
17441 Instead of creating and adding VPP into the bin at setup, we wait until
17442 we are sure the VA driver supports it. We know that when the VA video
17443 context is received by the bin. Afterwards, it is decided to instanciate
17444 and link the VPP or not.
17445 This is more efficient and safer than waiting the VPP to fail and then
17447 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17449 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17451 * tests/test-display.c:
17452 * tests/test-windows.c:
17453 tests: Fix compilation while enabling egl as the only renderer in build
17454 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
17456 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17459 configure: fix the build while enabling egl as the only renderer
17461 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17464 libs: Bump library major version
17466 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17468 * gst/vaapi/gstvaapi.c:
17469 * gst/vaapi/gstvaapidecodebin.c:
17470 * gst/vaapi/gstvaapiencode.c:
17471 * gst/vaapi/gstvaapiencode_jpeg.c:
17472 * gst/vaapi/gstvaapipluginbase.c:
17473 * gst/vaapi/gstvaapipluginutil.c:
17474 * gst/vaapi/gstvaapipostproc.c:
17475 * gst/vaapi/gstvaapivideobufferpool.c:
17476 * gst/vaapi/gstvaapivideocontext.c:
17477 * gst/vaapi/gstvaapivideomemory.c:
17478 * gst/vaapi/gstvaapivideometa.c:
17479 gst/vaapi: Switch to upstreram like indentation.
17480 gst-indent for all gst/vaapi/*.c source files
17482 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17484 * gst/vaapi/gstvaapidecodebin.c:
17485 * gst/vaapi/gstvaapidecodebin.h:
17486 vaapidecodebin: Add property to disable VPP
17487 Adding a new propery "disable-vpp", enabling it will prevent
17488 the insertion of vaapipostproc child element.
17489 This is helpful in debugging, specifically to narrow-down the
17490 vaapidecodebin/vaapipostproc related negotiation issues.
17491 No support for run-time disabling for now.
17492 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17494 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17496 * gst/vaapi/gstvaapipostproc.c:
17497 vaapipostproc: Fix wrong selection of passthrough mode.
17498 The Current code path is falling back to passthorugh mode if there is no
17499 vpp property set by the user explictily. But we should not use the
17500 passthrough mode if the negotiated src pad caps have a differnt color space
17501 format than sink pad caps (Even though the user didn't set the format property
17503 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17504 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17506 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17508 * gst/vaapi/gstvaapipostproc.c:
17509 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
17510 This is a workaround to deal with the va-intel-driver for non-native
17511 formats while doing advanced deinterlacing. The format of reference surfaces must
17512 be same as the format used by the driver internally for motion adaptive
17513 deinterlacing and motion compensated deinterlacing.
17514 A permanent solution could be to do the color space conversion internally
17515 for reference surfaces.
17516 https://bugzilla.gnome.org/show_bug.cgi?id=730925
17517 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17519 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17521 * gst/vaapi/gstvaapisink.c:
17522 Work around ABBA deadlock between vaapisink and vaapipostproc
17523 vaapisink takes the display lock, then does a gst_buffer_replace which can
17524 take the lock on the gst_vaapi_video_pool.
17525 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
17526 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
17527 surfaces, which means that gst_vaapi_surface_create is
17528 called. gst_vaapi_surface_create takes the display lock.
17529 If vaapisink and vaapipostproc are in different threads, and this happens,
17530 you get a deadlock. vaapisink holds the display lock, and wants the
17531 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
17532 and wants the display lock.
17533 Work around this by releasing the display lock in vaapisink around the
17534 gst_buffer_replace.
17535 https://bugzilla.gnome.org/show_bug.cgi?id=738249
17536 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17537 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17539 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
17541 * gst/vaapi/gstvaapidecodebin.c:
17542 * gst/vaapi/gstvaapidecodebin.h:
17543 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
17544 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17546 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17548 * gst/vaapi/gstvaapipostproc.c:
17549 vaapipostproc: log negotiated caps
17551 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17553 * gst/vaapi/gstvaapipostproc.c:
17554 vaapipostproc: remove useless debug message
17556 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17558 * gst/vaapi/gstvaapidecode.c:
17559 vaapidecode: log negotiated src/sink caps
17561 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17563 * gst/vaapi/gstvaapisink.c:
17564 vaapisink: error handling if rendering fails
17565 This patch enhance the code path when an error is found when rendering a
17567 If the video meta doesn't contain a surface proxy or a surface, a warning
17568 message is printed.
17569 If the rendering backend fails, a error message is posted in the bus.
17570 https://bugzilla.gnome.org/show_bug.cgi?id=749382
17572 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17574 * gst/vaapi/gstvaapisink.c:
17575 vaapisink: Fix the conditional pad template creation.
17577 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17579 * tests/Makefile.am:
17580 build: Don't build simple-encoder test program if there is no VA Encoding support
17581 This will fix the build error against older VA-APIs <= 0.32
17583 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17585 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17586 * gst-libs/gst/vaapi/gstvaapicompat.h:
17587 Fix build error for older VA-API versions
17588 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
17589 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
17592 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17594 * gst/vaapi/gstvaapisink.c:
17595 vaapisink: Fix the capsfeature advertisement in padtemplate
17596 This fixes the regression introduced in 64acc74.
17597 If a pad supports multiple set of capsfeatures, it needs to add
17598 multiple equal structures with different feature sets to the caps.
17599 Because caps structures with the same name but with a non-equal
17600 set of caps features are not compatible.
17601 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
17602 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17604 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
17606 * gst/vaapi/gstvaapisink.c:
17607 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
17608 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17609 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17610 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17612 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
17614 * gst/vaapi/gstvaapipluginbase.c:
17615 vaapipluginbase: Override downstream allocation reply if no pool
17616 If the downstream replied without a pool, then override it.
17617 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17619 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17621 * gst/vaapi/gstvaapipostproc.c:
17622 * gst/vaapi/gstvaapipostproc.h:
17623 vaapipostproc: add color balance interface
17624 https://bugzilla.gnome.org/show_bug.cgi?id=720376
17626 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17628 * gst-libs/gst/vaapi/gstvaapifilter.c:
17629 * gst-libs/gst/vaapi/gstvaapifilter.h:
17630 * gst/vaapi/gstvaapipostproc.c:
17631 * gst/vaapi/gstvaapipostproc.h:
17632 vaapipostproc: add skin tone enhancement
17633 Added the 'skin-tone-enhancement' property to vaapostproc.
17634 https://bugzilla.gnome.org/show_bug.cgi?id=744088
17636 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17638 * docs/reference/libs/libs-docs.xml.in:
17639 doc: add VA-API reference in freedesktop
17641 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17643 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17644 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17645 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17646 patches/videoparsers: rebase all the h264parse patches
17647 In order to avoid the creation of .orig files and break the distcheck target
17649 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17651 * ext/libvpx/Makefile.am:
17652 build: don't build in parallel libvpx
17653 This fixes the distcheck -j XX target.
17655 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17657 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17658 encoder: jpeg: Fix the packed header generation
17659 This is a work-around to satisfy the va-intel-driver.
17660 Normalize the quality factor and scale QM values (only for packed header
17661 generation) similar to what VA-Intel driver is doing . Otherwise the
17662 generated packed headers will be wrong, since the driver itself is
17663 scaling the QM values using the normalized quality factor.
17664 https://bugzilla.gnome.org/show_bug.cgi?id=748335
17665 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17667 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17669 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17670 decoder: h264: fix uninitialized variables in avcC mode.
17671 Fix uninitialized variables when decoding SPS and PPS NAL units from
17672 "codec-data" buffers. This is particularly important when seeking ops
17673 are involved, and the new persistent states are used more often.
17674 https://bugzilla.gnome.org/show_bug.cgi?id=750094
17676 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17678 * gst/vaapi/gstvaapidecode.c:
17679 vaapidecode: remove unneeded casting
17680 And a code-style fix
17682 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17684 * gst/vaapi/gstvaapidecode.c:
17685 vaapidecode: calculate decoding latency
17686 This is a naïve approach to the calculation of the VA-API decoding latency. It
17687 takes into consideration when the frame-rate has some insane value.
17688 https://bugzilla.gnome.org/show_bug.cgi?id=740419
17690 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
17693 configure: Compiling against libgstgl requires libgstvideo
17694 Fix detection of the GstGL helper headers in uninstalled
17697 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17699 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17700 encoder: hevc: Fix the size over-flow for encoded buffer.
17701 The approximation of 6 times compression ratio migh not
17702 work in all cases. Especially when enabling I frames.
17703 Provide large enough size for coded-buffer creation.
17705 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17707 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17708 encoder: vp8: Fix the size over-flow for encoded buffer.
17709 The approximation of 4 times compression ratio will not
17710 work in all cases. Especially when enabling I frames.
17711 Provide large enough size for coded-buffer creation.
17713 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17715 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17716 encoder: hevc: fix bug in multi slice encoding.
17717 This is a work-around for satisfying the VA-Intel driver.
17718 The driver only support slices begin from CTU row start address.
17719 Multi-Slice encoding also requires a fix in va-intel-driver:
17720 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
17721 https://bugzilla.gnome.org/show_bug.cgi?id=749854
17722 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17724 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17726 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17727 decoder: h264: add initial support for loss of pictures.
17728 Implement decoding process for gaps in frame_num (8.5.2). This
17729 also somewhat supports unintentional loss of pictures.
17730 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17731 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17732 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
17733 [fixed derivation of POC, ensured clone is valid for reference,
17734 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
17735 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17737 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17739 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17740 decoder: h264: add support for missing first field.
17741 Try to identify missing first fields too, thus disregarding any
17742 intermediate gaps in frames. We also assume that we keep the same
17743 field sequence, i.e. if previous frames were in top-field-first
17744 (TFF) order, then so are subsequent frames.
17745 Note that insertion of dummy first fields need to operate in two
17746 steps: (i) create the original first field that the current field
17747 will inherit from, and (ii) submit that field into the DPB prior
17748 to initializing the current (other) field POC values but after any
17749 reference flag was set. i.e. copy reference flags from the child
17750 (other field) to the parent (first field).
17751 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17753 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17755 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17756 decoder: h264: add support for missing second field.
17757 Interlaced H.264 video frames always have two fields to decode and
17758 display. However, in some cases, e.g. packet loss, one of the field
17759 can be missing. This perturbs the reference picture marking process,
17760 whereby the number of references available in DPB no longer matches
17761 the expected value.
17762 This patch adds initial support for missing field within a decoded
17763 frame. The current strategy taken is to find out the nearest field,
17764 by POC value, and with the same parity.
17765 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17767 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17769 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17770 decoder: h264: improve tracking of "top-field-first" flag.
17771 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
17772 does not mandate it. This will be useful for tracking missing fields, and
17773 also for more correct _split_fields() implementation for frames in the DPB.
17775 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17777 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17778 decoder: h264: skip all pictures prior the first I-frame.
17779 Don't try to decode pictures until the first I-frame is received within
17780 the currently active sequence. There is no point is decoding and then
17781 displaying frames with artifacts.
17783 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17785 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17786 decoder: h264: fix processing of EOSEQ NAL.
17787 Fix decoding of end_of_seq() NAL unit so that to not submit the current
17788 picture for decoding again. This is pretty vintage code that dates back
17789 before the existing of the whole decoder units machinery.
17790 One issue that could be arising if that code was kept is that we could
17791 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
17792 Once without the decode_only flag set, and once with that flag set. The
17793 end result is that the GstVideoDecoder would release the codec frame
17794 twice, thus releasing stale data.
17795 In short, the piece of code that is removed by this patch is for once
17796 completely obsolete for a while, and secondly error-prone in corner
17799 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
17801 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17802 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17803 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17804 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17805 decoder: add utility function to clone picture objects.
17806 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17807 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
17808 [added cosmetic changes, fixed propagation of "one-field" flag to
17809 children, fixed per-codec clone modes (h264)]
17810 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17812 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
17814 * gst/vaapi/Makefile.am:
17815 build: don't compile HEVC encoder if not supported
17817 (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
17818 https://bugzilla.gnome.org/show_bug.cgi?id=749954
17819 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17820 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17822 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
17824 * gst-libs/gst/vaapi/gstvaapicompat.h:
17825 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17826 HEVC: decode: add missing va_dec_hevc header
17827 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17828 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17829 https://bugzilla.gnome.org/show_bug.cgi?id=749953
17831 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17833 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17834 mpeg2: fix PTS cache for GOP start.
17835 If the GOP temporal sequence number (TSN) is interpolated from a valid
17836 PTS, then we need to compensate that PTS corresponding to the start of
17837 GOP with the next picture to be decoded, which shall be an I-frame,
17838 based on its sequence number.
17839 https://bugzilla.gnome.org/show_bug.cgi?id=748676
17841 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17843 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17844 mpeg2: avoid crash when seeking with debug logs
17845 Move down the debug message when the state of the decoder is verified
17846 so the slice header is not NULL.
17848 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
17850 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17851 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
17852 Reset state and add some checks for safe state to avoid a crash and
17853 a warning after the decoder is destroyed/recreated during a seek.
17855 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17857 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17858 * patches/videoparsers/series.frag:
17859 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
17860 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17862 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17864 * ext/codecparsers:
17865 codecparsers: Update to gst-vaapi-branch commit 20ee952
17866 b7dded3: h264parse: don't consider unknown stream-format as avc
17867 5110ad9: h264parse: fix up handling of input caps corner cases
17868 e51db3e: h264parse: Remove dead code
17869 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
17870 8482957: h265parse: Fix profile, tier and level setting in caps
17871 4649acb: h265parse: Fix the memory freeing of stored VPS nals
17872 f2beeb7: h265parse: Fix source caps to report cropped dimensions
17873 6886a31: h264parse: Fix profile and level setting in caps
17874 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
17875 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
17876 53074fc: build: Upgrade GStreamer dependency to 1.0
17877 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17879 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17881 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17882 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
17883 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17885 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17887 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17888 HEVC: decode: Update Cropping Rectangle
17889 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17891 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17893 * gst/vaapi/Makefile.am:
17894 * gst/vaapi/gstvaapi.c:
17895 * gst/vaapi/gstvaapiencode_h265.c:
17896 * gst/vaapi/gstvaapiencode_h265.h:
17897 HEVC_Encode: Add HEVC(h265) Encoder plugin
17898 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17899 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17901 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17903 * gst-libs/gst/vaapi/Makefile.am:
17904 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17905 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
17906 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
17907 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17908 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17910 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17913 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
17914 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17915 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17917 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17919 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
17920 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
17921 gstvaapiutils_h265: Add H265 Tier specific utility functions
17922 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
17923 -- New API: gst_vaapi_utils_h265_get_tier_string()
17924 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17925 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17927 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17929 * docs/reference/plugins/Makefile.am:
17930 doc: conditional linking for scanner
17931 Add x11 library only if it is enabled.
17932 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17934 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17936 * docs/reference/plugins/plugins.types:
17937 doc: fix scanner compilation warning
17938 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17940 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17942 * docs/reference/libs/libs-docs.xml.in:
17943 * docs/reference/libs/libs-sections.txt:
17944 doc: update sections and symbols
17945 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17947 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17951 * debian.upstream/Makefile.am:
17952 * docs/Makefile.am:
17953 * docs/reference/Makefile.am:
17954 * docs/reference/libs/Makefile.am:
17955 * docs/reference/plugins/Makefile.am:
17957 * ext/libvpx/Makefile.am:
17959 * gst-libs/Makefile.am:
17960 * gst-libs/gst/Makefile.am:
17961 * gst-libs/gst/base/Makefile.am:
17962 * gst-libs/gst/codecparsers/Makefile.am:
17963 * gst-libs/gst/vaapi/Makefile.am:
17965 * gst/vaapi/Makefile.am:
17966 * patches/Makefile.am:
17967 * patches/videoparsers/Makefile.am:
17968 * pkgconfig/Makefile.am:
17969 * tests/Makefile.am:
17971 This patch handles dinamically the gitignore files with git.mk[1].
17972 Removed the automake variable MAINTAINERCLANFILES in most of the
17973 Makefile.am files since now it is handled by the top one.
17974 1. https://github.com/behdad/git.mk/blob/master/git.mk
17975 https://bugzilla.gnome.org/show_bug.cgi?id=749321
17977 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17979 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17980 wayland: sync() when destroy()
17981 Before pushing a the new frame, the render() method calls sync() to flush the
17982 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
17983 to a memory leak too.
17984 This patch calls sync() in the destroy() to flush the pending frames before
17985 destroying the window.
17986 Also a is_cancelled flag is added. This flag tells to not flush the event
17987 queue again since the method failed previously or were cancelled by the user.
17988 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17990 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
17992 * gst-libs/gst/vaapi/gstvaapiwindow.c:
17993 * gst-libs/gst/vaapi/gstvaapiwindow.h:
17994 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17995 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17996 * gst/vaapi/gstvaapisink.c:
17997 vaapisink: implement unlock/unlock_stop for wayland
17998 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
17999 shutting down. This can happen e.g. if the wayland compositor exits while
18000 the pipeline is running.
18002 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
18003 * splitted the patch removing wl_display_dispatch_queue()
18004 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18005 https://bugzilla.gnome.org/show_bug.cgi?id=747492
18006 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18008 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18011 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18012 wayland: wl_display_dispatch_queue() can block forever.
18013 wl_display_dispatch_queue() might prevent the pipeline from shutting
18014 down. This can happen e.g. if the wayland compositor exits while the
18015 pipeline is running.
18016 This patch replaces it with these steps:
18017 - With wl_display_prepare_read() all threads announce their intention
18019 - wl_display_read_events() is thread save. On threads reads, the other
18020 wait for it to finish.
18021 - With wl_display_dispatch_queue_pending() each thread dispatches its
18023 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
18024 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
18025 * stripped out the unlock() unlock_stop() logic
18026 * stripped out the poll handling
18027 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18028 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18029 https://bugzilla.gnome.org/show_bug.cgi?id=747492
18031 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18033 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18034 wayland: rename frame for last_frame
18035 Since frame in the private data means the last frame sent, it would
18036 semantically better use last_frame.
18037 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
18039 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18041 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18043 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18044 wayland: use a counter as sync flag
18045 Wayland window has a pointer to the last pushed frame and use it to set the
18046 flag for stopping the queue dispatch loop. This may lead to memory leaks,
18047 since we are not keeping track of all the queued frames structures.
18048 This patch removes the last pushed frame pointer and change the binary flag
18049 for an atomic counter, keeping track of number of queued frames and use it for
18050 the queue dispatch loop.
18051 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18053 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18055 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18056 wayland: decouple wl_buffer from frame
18057 This patch takes out the wayland's buffer from the the frame structure. The
18058 buffer is queued to wayland and destroyed in the "release" callback. The
18059 frame is freed in the surface's "done" callback.
18060 In this way a buffer may be leaked but not the whole frame structure.
18061 - surface 'done' callback is used to throttle the rendering operation and to
18062 unallocate the frame, but not the buffer.
18063 - buffer 'release' callback is used to destroy wl_buffer.
18064 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
18066 * kept the the event_queue for buffer's proxy
18067 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18068 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18070 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18072 * gst/vaapi/gstvaapisink.c:
18073 vaapisink: fix indentation
18075 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18077 * debian.upstream/Makefile.am:
18078 * ext/libvpx/Makefile.am:
18079 * gst-libs/gst/vaapi/Makefile.am:
18080 * gst/vaapi/Makefile.am:
18081 * tests/Makefile.am:
18082 build: fix make distcheck
18083 This patch fixes several issues found when running the `make distcheck`
18085 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
18087 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
18089 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
18090 - The make target distcleancheck failed because some autogenerated files
18091 were not handled with the DISTCLEANFILES variable.
18092 Note: `make distcheck -jXX` is not currently supported.
18094 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18096 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
18097 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
18098 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
18099 h264parse: update patches with upstream
18100 These patches didn't applied cleanly, breaking the `make distcleancheck`
18101 target. Re-sync'ed the patches against the current git's submodule.
18103 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18105 * tests/simple-encoder.c:
18106 tests: simple-encoder: fix build warnings on 64-bit platforms.
18107 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
18108 importantly fix warnings spitted out during build on 64-bit platforms.
18109 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
18110 g_warning ("Invalid VAAPI buffer size (%d)", size);
18112 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
18113 g_warning ("Failed to create output buffer of size %d", size);
18116 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18118 * gst/vaapi/gstvaapipluginbase.c:
18119 * gst/vaapi/gstvaapipluginutil.c:
18120 * gst/vaapi/gstvaapipluginutil.h:
18121 * gst/vaapi/gstvaapivideocontext.h:
18122 plugins: remove gstreamer-0.10 crumbs
18123 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
18124 Still, its definition was still in the code. This patch removes it.
18125 https://bugzilla.gnome.org/show_bug.cgi?id=749113
18127 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18129 * tests/Makefile.am:
18130 * tests/simple-encoder.c:
18131 * tests/y4mreader.c:
18132 * tests/y4mreader.h:
18133 tests: add simple-encoder program
18134 This patch adds a simple-encoder test program that uses libgstvaapi for video
18135 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
18136 format. That can be from a regular file or standard input when the input
18138 Usage: simple-encoder [options]* <source>
18140 --output|-o output file name
18141 --codec|-c codec to use for video encoding
18142 --bitrate|-b desired bitrate (kbps)
18143 By default, and as an initial patch, the encoded stream shall conform to the
18144 minimally supported profile. That is "Constrained Baseline Profile" for H.264
18145 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
18146 generated by libgstvaapi.
18147 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
18148 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
18149 * general code clean-up
18150 * removed the yuv reader thread
18151 * re-wrote the y4m file parser
18152 * updated used API fixed some wrong usage
18153 * fixed a lot of memory leaks
18154 * added the bitrate setting
18155 * keep fps' numerator and denominator
18156 * simplified the thread control
18157 * removed custom logging and use glib
18158 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18159 https://bugzilla.gnome.org/show_bug.cgi?id=719528
18161 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18163 * gst-libs/gst/vaapi/gstvaapiencoder.h:
18164 libs: trivial documentation fix
18165 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
18166 are not errors, so they do not have the ERROR namespace.
18167 This patch fixes this typo in documentation.
18169 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
18171 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
18172 window: Correct prototype to match implementation
18173 On s390x, guintptr and GstVaapiID are not compatible types. The
18174 implementation of gst_vaapi_window_new_internal() and all its callers
18175 seem to assume that its third argument is a GstVaapiID, while the
18176 header gives it guintptr type.
18177 https://bugzilla.gnome.org/show_bug.cgi?id=744559
18179 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18181 * gst/vaapi/gstvaapidecode.c:
18182 * gst/vaapi/gstvaapidecodebin.c:
18183 vaapidecode: add guards for disabled codecs.
18184 Fix link when building plugin elements without HEVC support. e.g. don't
18185 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
18186 support HEVC enabled in libgstvaapi.
18187 Also, drop disabled codecs from static template caps. Add the missing
18188 HEVC static template caps into vaapidecodebin too.
18190 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18193 * gst-libs/gst/vaapi/glibcompat.h:
18194 build: upgrade glib dependency to 2.32
18195 Since bug #745728 was fixed the oldest supported version of GStreamer is
18196 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
18198 This patch changes the required version of glib in configure.ac and removes
18199 the hacks in glibcompat.h
18200 https://bugzilla.gnome.org/show_bug.cgi?id=748698
18202 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18204 * gst/vaapi/gstvaapipluginbase.c:
18205 plugins: check if the pool config is already set
18206 In commit 97b768, a regression for GStreamer 1.2 was introduced:
18207 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
18208 config option is already set. This patch adds an inline function to
18209 first verify if the option is not in the pool config berfore add it.
18211 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18213 * gst/vaapi/gstvaapipostproc.c:
18214 vaapipostproc: tune up a couple of log messages
18215 In order to reduce the noise, the query type log was downgrade from INFO to
18216 DEBUG, and the shared display address log message is assigned to the object.
18218 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18220 * gst/vaapi/gstvaapipluginbase.c:
18221 plugins: check gst_buffer_pool_set_config()
18222 Check the return value of gst_buffer_pool_set_config(). If it fails an error
18223 message is posted in the bus.
18225 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18227 * gst/vaapi/gstvaapipluginbase.c:
18228 plugins: more specific log message
18229 Be more specific in the log message about the reason of creating a new pool.
18231 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18233 * gst/vaapi/gstvaapipluginbase.c:
18234 plugins: delete unused variable
18235 need_pool is a boolean variable extracted from the allocation query, but it is
18236 not used afterwards.
18238 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
18240 * gst/vaapi/gstvaapipluginbase.c:
18241 vaapipluginbase: Update the pool if there was no pool in the downstream reply
18242 Fix regression introduced by bd866479, the query after decide_allocation()
18243 always needs a pool in the first slot.
18244 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18245 https://bugzilla.gnome.org/show_bug.cgi?id=748559
18247 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
18249 * gst/vaapi/gstvaapivideobufferpool.c:
18250 videopool: Free members before chaining up finalize
18251 The finalize function in GObject frees the object memory, so
18252 everything else needs to have been freed before.
18253 https://bugzilla.gnome.org/show_bug.cgi?id=748563
18255 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
18257 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
18258 wayland: don't leak the registry proxy
18259 Release the registry proxy when closing the display.
18260 https://bugzilla.gnome.org/show_bug.cgi?id=748564
18262 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18264 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18265 wayland: refactor _sync() method and rename callback
18266 This patch only intends to improve readability: in the method
18267 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
18269 Also renames the frame_redraw_callback() callback into frame_done_callback(),
18270 which is a bit more aligned to Wayland API.
18272 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18274 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18275 wayland: free frame in buffer release callback
18276 The Wayland compositor may still use the buffer when the frame done
18277 callback is called.
18278 This patch destroys the frame (which contains the buffer) until the
18279 release callback is called. The draw termination callback only controls
18280 the display queue dispatching.
18281 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18282 https://bugzilla.gnome.org/show_bug.cgi?id=747492
18284 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18286 * gst/vaapi/gstvaapidecode.c:
18287 vaapidecode: refactor gst_vaapidecode_internal_flush()
18288 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
18289 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
18290 shares the same error message of gst_vaapidecode_internal_flush() when flush
18293 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18295 * gst/vaapi/gstvaapidecode.c:
18296 vaapidecode: refactor gst_vaapidecode_destroy()
18297 Add the method gst_vaapidecode_purge(). This method releases the
18298 flushed frames from the decoder.
18299 This new method add more readablity to gst_vaapidecode_destroy()
18301 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
18303 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18304 * gst/vaapi/gstvaapidecode.c:
18305 vaapidecode: Tell the base class about released frames on close
18306 The base class needs to be informed about frames that were still queued
18307 in the decoder on release, otherwise they are leaked.
18308 https://bugzilla.gnome.org/show_bug.cgi?id=747999
18310 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18312 * gst/vaapi/gstvaapidecode.c:
18313 vaapidecode: reduce logging noise
18314 When a frame is rejected by downstream, the message is logged twice. This
18315 patch removes one of those logging messages.
18316 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
18317 the log message from error to info.
18319 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
18321 * gst/vaapi/gstvaapidecode.c:
18322 vaapidecode: Use the GstVideoDecoder error reporting function
18323 This way, the decoder won't stop on the first decoding error,
18324 in most cases it can recover after some glitchiness.
18325 https://bugzilla.gnome.org/show_bug.cgi?id=744620
18327 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
18329 * gst/vaapi/gstvaapipluginbase.c:
18330 vaapipluginbase: The allocation query can return without a pool
18331 It is possible to return the min/max/size without actually providing
18332 a pool. This way the source knows how many buffers downstream needs.
18333 https://bugzilla.gnome.org/show_bug.cgi?id=748076
18335 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18338 * gst/vaapi/Makefile.am:
18339 * gst/vaapi/gstvaapiparse.c:
18340 * gst/vaapi/gstvaapiparse.h:
18341 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
18342 * patches/videoparsers/series.frag:
18343 plugins: Add h265 videoparser element "vaapiparse_h265"
18344 This is a mirror of h265parse element in upstream gst-plugins-bad.
18345 There could be additional patches but all should go to upstream.
18346 This is for making development faster.
18347 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
18349 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18351 * ext/codecparsers:
18352 codecparsers: Update to gst-vaapi-branch commit 43a0368
18353 45f1c28: codecparser: h265: Fix nal unit size checking
18354 f25987b: codecparser: h265: Calculate crop rectangle dimensions
18355 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
18356 4c8ec41: Add h265 videoparser plugin source files
18358 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18361 autogen: drop videoutils submodule.
18363 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18365 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18366 decoder: hevc: cosmetics.
18367 Mostly coding style updates. Avoid integer signess inconsistencies.
18368 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
18370 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18372 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18373 decoder: hevc: Add Support for tiled video decoding
18374 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
18375 the tile column width and tile row height should be calculated.
18376 Equations: 6-1, 6-2
18377 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
18379 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18381 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18382 decoder: hevc: Fix decoding when there are RASL pictures present.
18383 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
18384 -- Fix PicOutputFlag setting for RASL picture
18385 -- Fix prev_poc_lsb/prev_poc_msb calculation
18386 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
18387 -- Fixed couple of crashes and added cosmetics
18389 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
18391 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
18392 display: drm: fix race condition setting device type
18393 There is a race condition where g_drm_device_type can be left set to
18394 DRM_DEVICE_RENDERNODES when it shouldn't.
18395 If thread 1 comes in and falls into the last else statement setting up both
18396 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
18397 it sets g_drm_device_type = RENDERNODES.
18398 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
18399 up that type to be tried but then encounters the lock and has to wait until the
18400 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
18401 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
18402 attempts will only try RENDERNODES.
18403 So to avoid this situation I have simply moved the acquisition of the lock higher
18404 up in the attached patch.
18405 https://bugzilla.gnome.org/show_bug.cgi?id=747914
18407 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
18409 * gst/vaapi/gstvaapipostproc.c:
18410 vaapipostproc: Don't create filter on caps query
18411 The problem with this is that creating the filter causes the display to
18412 be selected, and the caps query happens while linking the element. So,
18413 if the downstream or upstream element is using a specific display
18414 object, it won't be propagated correctly to the postproc as it already
18415 has a display at this point.
18416 https://bugzilla.gnome.org/show_bug.cgi?id=747945
18418 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
18420 * gst-libs/gst/vaapi/gstvaapivideopool.c:
18421 videopool: Release lock while allocating new object
18422 The video pool can be accessed with the display lock held, for example,
18423 when releasing a buffer from inside vaapisink_render, but allocating
18424 a new object can may also take the display lock. Which means a possible
18426 https://bugzilla.gnome.org/show_bug.cgi?id=747944
18428 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18430 * gst/vaapi/gstvaapisink.c:
18431 vaapisink: use GstVideoSink vmethod show_frame()
18432 vaapisink inherits from GstVideoSink, in order to use its functionality (such
18433 as ::show-preroll-frame property), we should use its vmethod show_frame(),
18434 rather than call ourselves render() and preroll().
18436 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18438 * gst/vaapi/gstvaapisink.c:
18439 * gst/vaapi/gstvaapisink.h:
18440 vaapisink: add 'handoff' signal
18441 This patch adds the signal ::handoff and the property signal-handoffs. If the
18442 property is set TRUE, the signal ::handoff is emitted just after the buffer is
18444 Based on Zhao Halley <halley.zhao@intel.com>
18445 https://bugzilla.gnome.org/show_bug.cgi?id=747905
18447 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18449 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18450 HEVC: silence the compiler
18451 Fixed a couple of clang complains.
18453 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18455 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18456 wayland: destroy vpp buffer pool on resize
18457 Otherwise the old buffers with the old size are used.
18458 https://bugzilla.gnome.org/show_bug.cgi?id=747491
18460 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18463 * gst-libs/gst/vaapi/Makefile.am:
18464 build: don't compile HEVC if not supported
18465 HEVC decoding was added recently libva-1.5.
18466 This patch avoids HEVC decoding support in libgstvaapi if it is not available
18467 in the installed libva.
18468 https://bugzilla.gnome.org/show_bug.cgi?id=747831
18470 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18472 * gst/vaapi/gstvaapidecode.c:
18473 vaapidecode: Update Author name in plugin metadata
18475 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18477 * gst/vaapi/gstvaapidecode.c:
18478 plugins: Add HEVC decoder
18479 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18481 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18483 * gst-libs/gst/vaapi/Makefile.am:
18484 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18485 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
18486 HEVC: Add HEVC(h265) decoder to core libgstvaapi
18487 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18489 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18491 * gst-libs/gst/vaapi/Makefile.am:
18492 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
18493 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
18494 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
18495 HEVC: Add codec utility methods to core libgstvaapi
18496 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18498 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18500 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18501 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18502 HEVC: gstvaapiprofile: Add profile definitions
18503 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18505 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18508 HEVC: build: Check availability of h265 decoder APIs
18509 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18511 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18515 * gst-libs/gst/codecparsers/Makefile.am:
18516 HEVC: Allow to build h265 codecparser internally
18517 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18519 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18521 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18522 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
18523 * gst-libs/gst/vaapi/gstvaapisurface.c:
18524 guard buffer export API if not available
18525 The support for buffer exports in VA-API was added in version 0.36. These
18526 interfaces are for interop with EGL, OpenCL, etc.
18527 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
18528 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
18529 This patch guards all the buffer exports handling (and dmabuf allocator) if
18530 the detected VA-API version is below 0.36.
18531 https://bugzilla.gnome.org/show_bug.cgi?id=746405
18533 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18535 * ext/codecparsers:
18536 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
18537 767bf22: codecparsers: h265: add helpers to convert quantization matrices
18538 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
18539 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
18540 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
18541 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
18543 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18545 * gst/vaapi/gstvaapidecode.c:
18546 vaapidecode: unref video codec frame twice
18547 We get one reference when the frame is passed to decode_handle_frame()
18548 and create another one in gst_vaapi_decoder_push_frame().
18549 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
18550 Here the frame is always released twice:
18551 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
18552 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
18553 In gst_vaapidecode_reset_full() both references to the frame must be
18555 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18556 https://bugzilla.gnome.org/show_bug.cgi?id=743226
18558 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18560 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18561 libs: remove unused variables
18562 clang reports these unused variables. Let's get rid of them.
18563 This patch is a missing part of commit c82e5173
18564 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18566 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18568 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18569 decoder: mpeg4: remove an spurious comparison
18570 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
18571 less than zero. Hence this pre-condition test is a no-op. This patch removes
18573 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18575 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18577 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18578 encoder: h264: casts slice_param->slice_type
18579 slice_type in slice_param is defined as (char *), but it is compared against a
18580 signed integer. clang complains about this comparison.
18581 This patch casts the variable.
18582 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18584 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18586 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18587 encoder: avoid GstVaapiCodedBuffer redefinition
18588 The symbol GstVaapiCodedBuffer is already defined in
18589 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
18590 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
18591 This patch removes that redefinition.
18592 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18594 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18596 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18597 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18598 libs: remove unused variables
18599 clang reports these unused variables. Let's get rid of them.
18600 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18602 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18604 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18605 encoder: mpeg2: use fabsf() instead of abs()
18606 The member value in frame_rate_tab is float, the result of the abs() function
18607 should be float too. But abs() only manages integers.
18608 This patch replaces abs() with fabsf() to handle correctly the possible floats
18610 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18612 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18614 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18615 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18616 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18617 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18618 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18619 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
18620 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
18621 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
18622 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18624 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18629 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18633 Changing source code download links from https://gitorious to https://github
18634 -- gitmodules: Change gstreamer-codecparsers submodule source download link
18635 -- README: Change the gstreamer-vaapi webpage link
18637 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18639 * ext/codecparsers:
18640 codecparsers: update to gst-vaapi-branch commit 1f792e4
18641 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
18642 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
18643 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
18644 2b92a67: h264parse: reset the parser information when caps changes
18645 05eee86: codecparsers: Indent file
18646 e27a38b: codecparsers: Add READ_UE_MAX macro
18647 2036471: Constify some static arrays everywhere
18649 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18651 * gst/vaapi/gstvaapivideoconverter_glx.c:
18652 * gst/vaapi/gstvaapivideoconverter_x11.c:
18653 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
18655 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18657 * gst/vaapi/gstvaapidecode.c:
18658 * gst/vaapi/gstvaapidecodebin.c:
18659 * gst/vaapi/gstvaapiencode_h264.c:
18660 * gst/vaapi/gstvaapiencode_jpeg.c:
18661 * gst/vaapi/gstvaapiencode_mpeg2.c:
18662 * gst/vaapi/gstvaapiencode_vp8.c:
18663 * gst/vaapi/gstvaapipluginbase.c:
18664 * gst/vaapi/gstvaapipluginutil.c:
18665 * gst/vaapi/gstvaapipluginutil.h:
18666 * gst/vaapi/gstvaapipostproc.c:
18667 * gst/vaapi/gstvaapisink.c:
18668 * gst/vaapi/gstvaapivideobuffer.c:
18669 * gst/vaapi/gstvaapivideobufferpool.c:
18670 * gst/vaapi/gstvaapivideocontext.c:
18671 * gst/vaapi/gstvaapivideocontext.h:
18672 * gst/vaapi/gstvaapivideoconverter_glx.h:
18673 * gst/vaapi/gstvaapivideoconverter_x11.h:
18674 * gst/vaapi/gstvaapivideomemory.h:
18675 * gst/vaapi/gstvaapivideometa_texture.c:
18676 Removal of gstreamer-1.0 support
18677 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
18678 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
18679 This patch removes all the pre-processor conditional code compilation guarded
18681 Thus, all the video converters were removed too.
18682 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18683 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18684 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18686 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18688 * gst-libs/gst/vaapi/gstcompat.h:
18689 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18690 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18691 * gst-libs/gst/vaapi/sysdeps.h:
18692 * gst/vaapi/gstcompat.h:
18693 * gst/vaapi/gstvaapi.c:
18694 * gst/vaapi/gstvaapidecode.c:
18695 * gst/vaapi/gstvaapidecodebin.c:
18696 * gst/vaapi/gstvaapiencode.c:
18697 * gst/vaapi/gstvaapiencode_h264.c:
18698 * gst/vaapi/gstvaapiencode_jpeg.c:
18699 * gst/vaapi/gstvaapiencode_mpeg2.c:
18700 * gst/vaapi/gstvaapiencode_vp8.c:
18701 * gst/vaapi/gstvaapiparse.c:
18702 * gst/vaapi/gstvaapipluginbase.c:
18703 * gst/vaapi/gstvaapipluginutil.c:
18704 * gst/vaapi/gstvaapipostproc.c:
18705 * gst/vaapi/gstvaapisink.c:
18706 * gst/vaapi/gstvaapiuploader.c:
18707 * gst/vaapi/gstvaapivideobuffer.c:
18708 * gst/vaapi/gstvaapivideobufferpool.c:
18709 * gst/vaapi/gstvaapivideocontext.c:
18710 * gst/vaapi/gstvaapivideoconverter_glx.c:
18711 * gst/vaapi/gstvaapivideoconverter_x11.c:
18712 * gst/vaapi/gstvaapivideomemory.c:
18713 * gst/vaapi/gstvaapivideometa.c:
18714 * gst/vaapi/gstvaapivideometa_texture.c:
18716 update and move gstcompat.h
18717 The purpose of gstcompat.h is to couple the API differences among
18718 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
18719 in this compatibility layer shall be removed.
18720 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
18721 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
18722 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
18723 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
18724 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
18725 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18726 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18727 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18729 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18732 * gst/vaapi/Makefile.am:
18733 autotools: remove gstreamer-1.0 support
18734 This patch only removes the support of gstreamer-1.0 in the autotools
18735 scripts. No other files are touched.
18736 In the automake file all the converters were deprecated.
18737 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18738 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18739 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18741 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18746 Remove the gstreamer-videoutils submodule
18748 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18751 * gst-libs/gst/Makefile.am:
18752 * gst-libs/gst/vaapi/Makefile.am:
18753 * gst-libs/gst/video/Makefile.am:
18754 * gst/vaapi/Makefile.am:
18755 * tests/Makefile.am:
18756 Remove libgstvaapi-videoutils.so
18757 This library was intended to add the base classes for video decoders which
18758 where not included in gstreamer-0.10.
18759 Since the support of gstreamer-0.10 is deprecated those classes are not
18760 required, thus the whole library is removed.
18761 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18762 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18763 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18765 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18768 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18769 * gst-libs/gst/vaapi/gstvaapiutils.c:
18770 * tests/test-subpicture.c:
18771 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
18772 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
18773 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
18774 deprecated these guards are not required.
18775 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18776 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18777 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18779 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18781 * gst-libs/gst/vaapi/gstcompat.h:
18782 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18783 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18784 * gst-libs/gst/vaapi/gstvaapiimage.c:
18785 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18786 * gst-libs/gst/vaapi/video-format.c:
18787 * gst-libs/gst/vaapi/video-format.h:
18788 * gst/vaapi/gstvaapi.c:
18789 * gst/vaapi/gstvaapidecode.c:
18790 * gst/vaapi/gstvaapidecodebin.c:
18791 * gst/vaapi/gstvaapidownload.c:
18792 * gst/vaapi/gstvaapidownload.h:
18793 * gst/vaapi/gstvaapiencode.c:
18794 * gst/vaapi/gstvaapiencode_h264.c:
18795 * gst/vaapi/gstvaapiencode_jpeg.c:
18796 * gst/vaapi/gstvaapiencode_mpeg2.c:
18797 * gst/vaapi/gstvaapiencode_vp8.c:
18798 * gst/vaapi/gstvaapiparse.c:
18799 * gst/vaapi/gstvaapipluginbase.c:
18800 * gst/vaapi/gstvaapipluginbase.h:
18801 * gst/vaapi/gstvaapipluginutil.c:
18802 * gst/vaapi/gstvaapipluginutil.h:
18803 * gst/vaapi/gstvaapipostproc.c:
18804 * gst/vaapi/gstvaapisink.c:
18805 * gst/vaapi/gstvaapiupload.c:
18806 * gst/vaapi/gstvaapiupload.h:
18807 * gst/vaapi/gstvaapiuploader.c:
18808 * gst/vaapi/gstvaapivideobuffer.c:
18809 * gst/vaapi/gstvaapivideoconverter_glx.c:
18810 * gst/vaapi/gstvaapivideoconverter_x11.c:
18811 * gst/vaapi/gstvaapivideometa.c:
18812 * gst/vaapi/gstvaapivideometa.h:
18813 * tests/test-filter.c:
18814 * tests/test-subpicture.c:
18815 Removal of gstreamer-0.10 support
18816 This patch removes all the pre-processor conditional code compilation guarded
18817 for gstreamer-0.10.
18818 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18819 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18820 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18822 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18825 * debian.upstream/control.in:
18826 * gst-libs/gst/video/Makefile.am:
18827 * gst/vaapi/Makefile.am:
18828 autotools: remove gstreamer-0.10 support
18829 This patch only removes the support of gstreamer-0.10 in the autotools
18830 scripts. No other files are touched.
18831 The configuration parameter --gstreamer-api was deleted since now it is always
18833 The verification of vmethod query in GstBaseSinkClass was removed since it was
18834 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
18836 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
18838 The automake files were changed accordingly.
18839 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
18840 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18841 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18842 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18844 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18846 * gst/vaapi/gstvaapidecode.c:
18847 vaapidecode: add drain() vmethod
18848 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
18849 class. This patch implements this new method.
18850 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18851 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18852 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18854 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18856 * gst/vaapi/gstvaapidecode.c:
18857 vaapidecode: remove vmethod reset()
18858 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
18859 this patch removes the method reset() which was deprecated in GStreamer 1.2.
18860 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18861 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18862 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18864 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18866 * gst/vaapi/gstvaapidecode.c:
18867 vaapidecode: handle flush() vmethod
18868 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
18869 and flush() was added.
18870 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
18871 superior. Otherwise, reset() is set.
18872 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
18873 was renamed to gst_vaapidecode_internal_flush().
18874 2) The new vmethod flush() always do a hard full reset.
18875 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
18876 gather all collected data with gst_video_decoder_have_frame()
18877 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18878 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18879 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18881 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18883 * gst/vaapi/gstvaapidecode.c:
18884 vaapidecode: call the correct query function
18885 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
18886 a bug was introduced: when calling the parent's query function of the
18887 src pad, the one of the sink pad is called instead. This patch fixes
18889 https://bugzilla.gnome.org/show_bug.cgi?id=746248
18891 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18894 gitmodules: Use https:// url instead of git:// for submodules.
18895 Gitorious is failing to clone repositories over git:// url.
18897 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
18899 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18900 vaapidisplay: mark X11 display as compatible with EGL
18901 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
18902 gst-launch-1.0 ... ! vaapidecode ! glimagesink
18903 https://bugzilla.gnome.org/show_bug.cgi?id=745902
18904 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18906 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
18908 * gst/vaapi/gstvaapidecode.c:
18909 vaapidecode: Don't crash if a buffer outlives the decoder
18910 Sometimes, for example, when switching video streams but keeping
18911 the same sink, the surface will be released after the decoder is
18912 stopped and replaced. This caused a crash because the release
18913 callback was called on an invalid pointer.
18914 The patch adding an additional reference to the decoder object in the buffer.
18915 https://bugzilla.gnome.org/show_bug.cgi?id=745189
18916 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
18917 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18919 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18921 * gst/vaapi/gstvaapidecode.c:
18922 vaapidecode: clean-ups (indentation, drop unused variables)
18924 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18926 * gst/vaapi/gstvaapidecode.c:
18927 vaapidecode: use the query virtual methods in 1.4
18928 GstVideoDecoder, the base class of vaapidecode, added support for
18929 pad queries as virtual methods. This patch enables the use of that
18930 support, while keeping support for lower versions of gstreamer.
18931 This patch is important because GstVideoDecoder takes care of other
18932 queries that might be important in the pipeline managing.
18933 v2: 1) rebase to current master
18934 2) fix indentation with gst-indent
18935 3) simplify the patch layout
18936 4) fix the context query
18937 5) initialise the filter to NULL
18938 6) improve the query log message for gst-1.2
18939 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18941 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18943 * gst/vaapi/gstvaapipostproc.c:
18944 * gst/vaapi/gstvaapipostproc.h:
18945 vaapipostproc: always activate buffer pool
18946 The vaapipostproc has a proxy flag to know if the the buffer pool is
18947 already active. But this fails in some situations where it is needed
18948 to renegotiate the buffer pool.
18949 This patch removes that flag so the renegotiation is done whenever is
18951 https://bugzilla.gnome.org/show_bug.cgi?id=745535
18953 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18955 * gst/vaapi/gstvaapisink.c:
18956 vaapisink: fix minor memory leak in debug mode.
18957 The gst_video_colorimetry_to_string() function returns a newly created
18958 string that represents the GstVideoColorimetry value. So, that needs
18959 to be released after usage, in e.g. GST_DEBUG().
18961 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18963 * gst/vaapi/gstvaapidecodebin.h:
18964 vaapidecodebin: Avoid usage of "__" prefix in macro names
18965 Avoiding "__" prefix usage in Header File Guards as per
18966 C standard recommendation.
18968 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18970 * gst/vaapi/gstvaapi.c:
18971 plugins: Disable vaapidecodebin for GStreamer < 1.4
18972 There are autoplugging issues in GStreamer-1.2.
18973 Lets disable vaapidecodebin untill we get some workarounds for this.
18975 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18977 * gst/vaapi/Makefile.am:
18978 * gst/vaapi/gstvaapi.c:
18979 * gst/vaapi/gstvaapidecodebin.c:
18980 * gst/vaapi/gstvaapidecodebin.h:
18981 plugins: Add a vaapidecodebin element
18982 Add a "vaapidecodebin" element to vaapi plugins.
18983 Child Elements: "vaapidecode ! queue ! vaapipostproc"
18984 The Reasons for implementing a new bin element:
18985 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
18986 with out any dependency to upstream gstreamer.
18987 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
18988 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
18989 Also customers using older gstreamer versions (1.2 and 1.4) will get the
18990 benefit of autoplugging, hardware accelerated deinterlacing support etc.
18991 -- Help to maintain a single thread implementation in vaapidecode.
18992 This will result a dead-lock free vaapidecode in most of the cases.
18993 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
18994 https://bugzilla.gnome.org/show_bug.cgi?id=745216
18996 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18998 * gst/vaapi/gstvaapidecode.c:
18999 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
19001 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19003 * gst/vaapi/gstvaapidecode.c:
19004 * gst/vaapi/gstvaapidecode.h:
19005 vaapidecode: Switch back to Single thread implementation
19006 Because the decoder uses the thread from handle_frame() to decode a frame,
19007 the src pad task creates an unsolveable AB-BA deadlock between
19008 handle_frame() waiting for a free surface and decode_loop() pushing
19009 decoded frames out.
19010 Instead, have handle_frame() take responsibility for pushing surfaces,
19011 and remove the deadlock completely. If you need a separate thread
19012 downstream, you can insert a queue between vaapidecode and its downstream
19014 Another justification for the single thread implementation is,
19015 there are two many point of locking in gstreamer-vaapi's current
19016 implementation which can lead to deadlocks.
19017 https://bugzilla.gnome.org/show_bug.cgi?id=742605
19018 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19019 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19020 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19022 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19024 * gst/vaapi/gstvaapipluginbase.c:
19025 plugins: fix detection of upstream v4l2src element.
19026 Improve check for upstream element that requires DMABUF buffer pool,
19027 e.g. v4l2src element. In particular, make sure to traverse through
19028 any additional capsfilter for instance.
19029 Note: the traversal to the top-most upstream element could be made
19030 more generic, but we are insofar only interested in supporting pipes
19031 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
19032 specification for a desired video camera format, or resolution.
19034 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19036 * gst/vaapi/gstvaapivideomemory.c:
19037 plugins: fix allocation of DMABUF memory.
19038 The dmabuf allocator would close the DMABUF handle passed in the init
19039 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
19040 to avoid a double close, ultimately in the underlying driver that owns
19043 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19045 * gst/vaapi/gstvaapidecode.c:
19046 vaapidecode: keep src caps and output state in sync
19047 vaapidecode keeps an output state that use the format
19048 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
19049 for a correct negotiation.
19050 I don't see the rational behind this decoupling, it looks like
19051 unnecessary complexity. This patch simplify this logic keeping
19052 in sync the output state and the src caps.
19053 This patch improves the readability of the function
19054 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
19055 the patch validates if the buffer pool has the configuration for
19056 the GL texture upload meta, in order to set the caps feature
19057 meta:GLTextureUpload. Otherwise, the I420 format is set back.
19058 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19059 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19060 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19062 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19064 * gst/vaapi/gstvaapidecode.c:
19065 vaapidecode: upload meta only if feature and allocation
19066 When vaapidecode finishes the decoding of a frame and pushes it,
19067 if, in the decide_allocation() method, it is determined if the
19068 next element supports the GL texture upload meta feature, the
19069 decoder adds the buffer's meta.
19070 Nonetheless, in the same spirit of the commit 71d3ce4d, the
19071 determination if the next element supports the GL texture upload
19072 meta needs to check both the preferred caps feature *and* if the
19073 allocation query request the API type.
19074 This patch, first removes the unused variable need_pool, and
19075 determines the attribute has_texture_upload_meta using the
19076 preferred caps feature *and* the allocation query.
19077 Also, the feature passed to GstVaapPluginBase is not longer
19078 determined by has_texture_upload_meta, but by the computed
19080 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19081 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19082 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19084 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19086 * gst/vaapi/gstvaapidecode.c:
19087 * gst/vaapi/gstvaapidecode.h:
19088 * gst/vaapi/gstvaapipluginutil.c:
19089 * gst/vaapi/gstvaapipluginutil.h:
19090 vaapidecode: delayed src caps negotiation
19091 Currently the src caps are set immediately after the sink caps are set, but in
19092 that moment the pipeline might not fully constructed and the video sink has
19093 not negotiated its supported caps and features. As a consequence, in many cases
19094 of playback, the least optimized caps feature is forced. This is partially the
19095 responsible of bug #744039.
19096 Also, vaapidecode doesn't attend the reconfigure events from downstream,
19097 which is a problem too, since the video sink can be changed with different
19099 This patch delays the src caps, setting them until the first frame arrives to
19100 the decoder, assuming until that very moment the whole pipeline is already
19101 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
19102 as a consequence of a reconfiguration event from downstream.
19103 A key part of this patch is the new GstVaapiCapsFeature
19104 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
19105 doesn't have a peer yet. Also, for a better report of the caps allowed
19106 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
19107 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
19108 v3: move the input_state unref to close(), since videodecoder resets at
19109 some events such as navigation.
19110 v4: a) the state_changed() callback replaces the input_state if the media
19111 changed, so this case is also handled.
19112 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
19113 always the input_state, the parameter were removed.
19114 c) there were a lot of repeated code handling the input_state, so I
19115 refactored it with the function gst_vaapi_decode_input_state_replace().
19116 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19117 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19118 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19120 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19122 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19123 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
19124 encoder: h264: add support for more than 2 views
19125 Add support for H.264 MVC Multiview High profile encoding with
19126 more than 2 views. All views within the same accesss unit are
19127 provided in increasing order of view order index (VOIdx).
19128 Upto 10 view are supported for now.
19129 A new property "view-ids" has been provided for the plugins to
19130 set the view ids (which is an array of guint values) to be used
19132 https://bugzilla.gnome.org/show_bug.cgi?id=732453
19134 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19136 * gst/vaapi/gstvaapipluginbase.c:
19137 plugins: upload meta only if feature and allocation
19138 Working on bug #743687, I realized that vaapidecode always adds to its buffer
19139 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
19140 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
19141 Nevertheless, there are occasions where the query has the API type, but the
19142 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
19143 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
19144 buffer pool configuration, and adds its buffer's meta to each output buffer,
19145 even if the negotiated caps feature is memory:SystemMemory with I420 color
19147 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
19148 that relates caps <-> GL upload method. If it receives a buffer with color
19149 format I420, it assumes that it doesn't have a texture upload meta, because
19150 only those with RGB color format has it. Our buffers, with I420 format, say
19151 that they have the upload meta too. In that case the mapped method is a dummy
19152 one which does nothing. I reported this issue in bug #744039 (the patch,
19153 obviously, was rejected).
19154 This patch workarounds the problem: the buffer pool's configuration option
19155 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
19156 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
19157 caps feature is meta:GstVideoGLTextureUploadMeta.
19158 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
19159 in all they seem to work correctly.
19160 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19161 [adapted to fit current EGL changes]
19162 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19164 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19166 * gst-libs/gst/vaapi/gstvaapitexture.c:
19167 * gst-libs/gst/vaapi/gstvaapitexture.h:
19168 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19169 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19170 * gst/vaapi/gstvaapivideometa_texture.c:
19171 plugins: add support for GstVideoGLTextureOrientation.
19172 Add support for GstVideoGLTextureOrientation modes. In particular,
19173 add orientation flags to the GstVaapiTexture wrapper and the GLX
19174 implementations. Default mode is that texture memory is laid out
19175 with top lines first, left row first. Flags indicate whether the
19176 X or Y axis need to be inverted.
19178 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19180 * gst/vaapi/gstvaapidecode.c:
19181 * gst/vaapi/gstvaapipluginbase.c:
19182 * gst/vaapi/gstvaapipluginutil.c:
19183 * gst/vaapi/gstvaapipluginutil.h:
19184 * gst/vaapi/gstvaapipostproc.c:
19185 * gst/vaapi/gstvaapivideometa_texture.c:
19186 plugins: add support for BGRA textures.
19187 Some frameworks (EFL) expect BGRA textures for storage. However,
19188 adding support for that broadly into GStreamer framework implies
19189 two kinds of hacks: (i) libgstgl helpers currently do not support
19190 BGRA textures correctly, (ii) we need to better parse downstream
19191 suggested caps and intersect them with what the VA plugin elements
19192 can offer to them for GL texturing.
19194 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19196 * gst/vaapi/gstvaapipluginutil.c:
19197 plugins: fix support for Wayland/EGL running alongside X11.
19198 When multiple display servers are available, the glimagesink element
19199 (from GStreamer 1.4) may not be able to derive a global display in
19200 Wayland. Rather, a "window"-specific display is created. In this case,
19201 the GstGLDisplay handle available through GstGLContext is invalid.
19202 So, try to improve heuristics for display server characterisation in
19203 those particular situations.
19205 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19208 * gst/vaapi/Makefile.am:
19209 * gst/vaapi/gstvaapidecode.c:
19210 * gst/vaapi/gstvaapipluginbase.c:
19211 * gst/vaapi/gstvaapipluginutil.c:
19212 * gst/vaapi/gstvaapivideobufferpool.c:
19213 * gst/vaapi/gstvaapivideometa_texture.c:
19214 plugins: add initial support for EGL.
19215 Add initial support for EGL through GstVideoGLTextureUploadMeta.
19216 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
19217 downstream supplied GstGLContext configuration, i.e. use its native
19218 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
19219 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
19221 https://bugzilla.gnome.org/show_bug.cgi?id=741079
19223 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19225 * gst/vaapi/gstvaapivideometa_texture.c:
19226 plugins: track video texture size changes.
19227 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
19228 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
19229 now update the texture size from the GstVideoMeta, if any, or reset
19230 to some defaults otherwise.
19232 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19234 * gst/vaapi/gstvaapipluginbase.c:
19235 * gst/vaapi/gstvaapipluginbase.h:
19236 * gst/vaapi/gstvaapipluginutil.c:
19237 plugins: ensure VA display matches GL context expectations.
19238 If a GstGLContext is supplied by the downstream element, then make
19239 sure that the VA plugin element gets a compatible display to what
19240 is requested by the GL context. e.g. re-allocate a VA/GLX display
19241 when a GLX context is provided by the downstream element.
19243 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19246 * gst/vaapi/Makefile.am:
19247 * gst/vaapi/gstvaapipluginbase.c:
19248 * gst/vaapi/gstvaapipluginbase.h:
19249 plugins: record downstream GstGLContext.
19250 Record GL context supplied by downstream elements. This can be useful,
19251 and further needed, to enforce run-time check that the GL context is
19252 compatible for use by libgstvaapi. e.g. check that we don't create a
19253 VA/GLX display for EGL/X11 contexts.
19254 https://bugzilla.gnome.org/show_bug.cgi?id=725643
19255 Original-path-by: Matthew Waters <ystreet00@gmail.com>
19257 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19259 * tests/Makefile.am:
19262 Add initial support for EGL to tests. The new EGL backend can be selected
19263 through the --egl command line option. The OpenGL|ES version can further
19264 be selected with the --gles-version command line option, where the default
19265 of 0 means "desktop" OpenGL.
19267 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19269 * gst-libs/gst/vaapi/Makefile.am:
19270 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19271 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
19272 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
19273 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
19274 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
19275 egl: add windowing support.
19276 This provides for some basic EGL window abstraction.
19278 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19280 * gst-libs/gst/vaapi/Makefile.am:
19281 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19282 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
19283 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
19284 egl: add texture abstraction.
19285 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
19286 or import a foreign allocated one, while still allowing updates from a
19289 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19291 * gst-libs/gst/vaapi/Makefile.am:
19292 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
19293 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
19294 egl: allow for EGLImage imports into VA Surfaces.
19295 Add helpers to import EGLImage objects into VA surfaces. There are
19296 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
19297 which allows for implicit conversion from EGLImage to a VA surface
19298 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
19299 which exactly wraps the source EGLImage, typically in RGBA format
19300 with linear storage.
19301 Note: in case of (i), the EGLImage can be disposed right after the
19302 VA surface creation call, unlike in (ii) where the user shall ensure
19303 that the EGLImage is live until the associated VA surface is no longer
19305 https://bugzilla.gnome.org/show_bug.cgi?id=743847
19307 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19310 * gst-libs/gst/vaapi/Makefile.am:
19311 * gst-libs/gst/vaapi/egl_compat.h:
19312 * gst-libs/gst/vaapi/egl_vtable.h:
19313 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19314 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19315 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19316 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
19317 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
19318 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
19319 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
19320 * gst-libs/gst/vaapi/ogl_compat.h:
19321 Add initial support for EGL.
19322 Add initial support for EGL to libgstvaapi core library. The target
19323 display server and the desired OpenGL API can be programmatically
19324 selected at run-time.
19325 A comprehensive set of EGL utilities are provided to support those
19326 dynamic selection needs, but also most importantly to ensure that
19327 the GL command stream is executed from within a single thread.
19328 https://bugzilla.gnome.org/show_bug.cgi?id=743846
19330 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19332 * gst-libs/gst/vaapi/gstvaapivalue.c:
19333 libs: initialize GValues in a thread-safe manner.
19335 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19337 * gst-libs/gst/vaapi/gstvaapivalue.c:
19338 libs: re-indent all GValue related source code.
19340 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19342 * gst/vaapi/gstvaapidecode.c:
19343 vaapidecode: partially revert 0777f35.
19344 Reset the VA decoder after updating the base plugin caps, and most
19345 importantly, after GstVideoDecoder negotiation. The reason behind
19346 this is that the negotiation could trigger a last decide_allocation()
19347 where we could actually derive a new GstVaapiDisplay to use from the
19348 downstream element. e.g. GLX backend.
19350 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19352 * gst/vaapi/gstvaapidecode.c:
19353 vaapidecode: Caps query should return the list of all supported caps.
19354 Query caps filtering should be always done on top of allowed caps instead
19355 of existing fixed caps on a particular pad.
19356 This fixes the mvc stream decoding when there is a base view(high profile)
19357 and non-base view(stereo-high profile).
19359 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19361 * gst/vaapi/gstvaapidecode.c:
19362 vaapidecode: intersect filter from query caps
19363 According to documentation[1] when receiving a GST_QUERY_CAPS
19364 the return value should be all formats that this elements supports,
19365 taking into account limitations of peer elements further downstream
19366 or upstream, sorted by order of preference, highest preference first.
19367 This patch add those limitations intersecting with the received
19368 filter in the query. Also takes into account the already negotiated
19369 caps. Also adds the processing of the query on the SRC pad.
19370 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
19371 https://bugzilla.gnome.org/show_bug.cgi?id=744406
19373 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19375 * gst-libs/gst/vaapi/Makefile.am:
19376 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19377 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19378 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19379 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19380 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19381 * gst/vaapi/gstvaapivideomemory.c:
19382 Fix compiler warnings
19383 This patch fixes some warnings that gcc 4.9 reports.
19384 https://bugzilla.gnome.org/show_bug.cgi?id=744411
19386 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19388 * gst/vaapi/gstvaapidecode.c:
19389 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
19390 Hence the function name is shown in the gst-inspect-1.0 information
19391 rather than the memory address.
19392 https://bugzilla.gnome.org/show_bug.cgi?id=744330
19394 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19396 * gst/vaapi/gstvaapidecode.c:
19397 vaapidecode: log flow error name
19398 https://bugzilla.gnome.org/show_bug.cgi?id=744387
19400 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19402 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19403 VC1: decoder: Ignore VC1 user BDU's
19404 Don't return error if the processed BDU is a user one, just ignore them.
19405 https://bugzilla.gnome.org/show_bug.cgi?id=741237
19406 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19408 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
19410 * gst/vaapi/gstvaapidecode.c:
19411 * gst/vaapi/gstvaapipluginbase.c:
19412 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
19413 This is required in GStreamer, elements should never return
19414 GST_FLOW_ERROR without posting an ERROR message on the bus.
19415 https://bugzilla.gnome.org/show_bug.cgi?id=744620
19417 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19419 * gst/vaapi/Makefile.am:
19420 * gst/vaapi/gstvaapi.c:
19421 * gst/vaapi/gstvaapiencode_vp8.c:
19422 * gst/vaapi/gstvaapiencode_vp8.h:
19423 plugins: Add VP8 Encoder
19425 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19427 * gst-libs/gst/vaapi/Makefile.am:
19428 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
19429 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
19430 Add VP8 Encoder to core libgstvaapi.
19432 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19435 configure: Add Check for VP8 Encoding API
19437 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
19439 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19440 decoder: vc1: Rounding control handling for VC1 simple and Main profile
19441 Added rounding control handling for VC1 simple and Main profile
19442 based on VC1 standard spec: section 8.3.7
19443 https://bugzilla.gnome.org/show_bug.cgi?id=743958
19444 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
19445 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19447 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19449 * gst/vaapi/Makefile.am:
19450 build: fix make dist when certain conditionals not met.
19451 Fix typo which was preventing the inclusion of jpeg encoder
19452 source files from make dist (when there is no jpeg encoder
19453 API support in libva).
19455 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19457 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19458 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
19459 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
19460 use native YUV420 format (which is i420) as default.
19462 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19464 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19465 encoder: Only support YUV420 native format as input for now
19466 Practically we should be able to support more formats, for eg:
19467 JPEG Encoder can support YUV422, RGBA and all.
19468 But this is causing more issues which need proper fix here and there.
19470 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
19472 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19473 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19474 * gst/vaapi/gstvaapidecode.c:
19475 vaapidecode: Check the condition after taking the lock
19476 Otherwise the condition could become true before the lock
19477 is taken and the g_cond_signal() could be called
19478 before the g_cond_wait(), so the g_cond_wait() is never
19480 https://bugzilla.gnome.org/show_bug.cgi?id=740645
19482 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19484 * gst/vaapi/Makefile.am:
19485 * gst/vaapi/gstvaapi.c:
19486 * gst/vaapi/gstvaapiencode_jpeg.c:
19487 * gst/vaapi/gstvaapiencode_jpeg.h:
19488 plugins: Add JPEG encoder element
19490 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19492 * gst-libs/gst/vaapi/gstvaapicontext.c:
19493 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
19495 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19497 * gst-libs/gst/vaapi/gstvaapicontext.c:
19498 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
19499 Don't add the VAConfigAttribRateControl to the attribute list using
19500 for the vaCreateConfig if it is not supported by the driver.
19502 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19504 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19505 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
19507 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19509 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19510 gstvaapiencoder: Fix crash when handling rate control mask
19511 Having a ratecontrol_mask equal to zero is not a bug, but the driver
19512 might not be supporting any kind of rate control mechanisms.
19515 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19517 * gst-libs/gst/vaapi/Makefile.am:
19518 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19519 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
19520 encoder: Add JPEG Encoder
19522 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19524 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19525 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19526 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
19528 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19530 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19531 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19532 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19533 * gst-libs/gst/vaapi/gstvaapiprofile.h:
19534 Encode: Add support for Picture level Entrypoint
19535 This is useful for JPEG encoding which is utilizing picture level
19536 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
19538 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19541 configure: Add Check for JPEG encoding API
19543 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19548 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19551 Bump version for development.
19553 === release 0.5.10 ===
19555 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19560 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19565 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19567 * gst/vaapi/gstvaapivideometa_texture.c:
19568 Fix compilation error if there is no GL/gl.h header file installed
19570 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19572 * gst/vaapi/gstvaapivideomemory.h:
19573 plugins: drop leftover declaration.
19574 GstVaapiVideoMemory quark is not needed any more, and the actual
19575 implementation was already removed bfore the merge. i.e. this is
19576 an oversight for a hunk that was not meant to be pushed.
19578 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19580 * gst/vaapi/gstvaapipluginbase.c:
19581 * gst/vaapi/gstvaapivideobufferpool.c:
19582 * gst/vaapi/gstvaapivideobufferpool.h:
19583 * gst/vaapi/gstvaapivideomemory.c:
19584 * gst/vaapi/gstvaapivideomemory.h:
19585 plugins: add support for dma_buf exports (v4l2src).
19586 Allow v4l2src element to connected to vaapipostproc or vaapisink when
19587 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
19588 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
19589 to "dmabuf" could work, but with more demanding driver or kernel reqs.
19590 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
19591 with --without-libv4l2.
19592 https://bugzilla.gnome.org/show_bug.cgi?id=743635
19594 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
19597 * gst/vaapi/Makefile.am:
19598 * gst/vaapi/gstvaapipluginbase.c:
19599 plugins: add support for dma_buf imports.
19600 Allow imports of v4l2 buffers into VA surfaces for further operation
19601 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
19602 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19603 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
19604 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19606 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19608 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19609 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19610 surface: add support for GEM buffer imports.
19611 Add support for GEM buffer imports. This is useful for VA/EGL interop
19612 with legacy Mesa implementations, or when it is desired or required to
19613 support outbound textures for instance.
19614 https://bugzilla.gnome.org/show_bug.cgi?id=736718
19616 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19618 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19619 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19620 surface: add support for dma_buf imports.
19621 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
19622 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
19623 resulting VA surface owns the supplied buffer handle.
19624 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19626 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19628 * gst-libs/gst/vaapi/gstvaapisurface.c:
19629 * gst-libs/gst/vaapi/gstvaapisurface.h:
19630 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19631 surface: add initial support for foreign buffer imports.
19632 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
19633 create a VA surface from an external buffer provided throug the
19634 new GstVaapiBufferProxy object.
19636 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19638 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19639 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19640 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19641 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19642 surface: add support for GEM buffer exports.
19643 Add support for GEM buffer exports. This will only work with VA drivers
19644 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
19645 to support interop with EGL and the "Desktop" GL specification. Indeed,
19646 the EXT_image_dma_buf_import extension is not going to be supported in
19647 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
19649 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
19650 in Desktop OpenGL context.
19651 https://bugzilla.gnome.org/show_bug.cgi?id=736717
19653 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19655 * gst-libs/gst/vaapi/Makefile.am:
19656 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19657 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19658 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19659 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19660 surface: add support for dma_buf exports.
19661 Use the new VA buffer export APIs to allow for a VA surface to be
19662 exposed as a plain PRIME fd. This is in view to simplifying interop
19663 with EGL or OpenCL for instance.
19664 https://bugzilla.gnome.org/show_bug.cgi?id=735364
19666 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19668 * gst-libs/gst/vaapi/Makefile.am:
19669 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19670 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19671 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
19672 Add abstraction for exported VA buffers.
19673 The VA buffer export APIs work for a particular lifetime starting from
19674 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
19675 it could be much more convenient to support implicit releases by simply
19676 having a refcount reaching zero.
19677 https://bugzilla.gnome.org/show_bug.cgi?id=736721
19679 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19681 * gst-libs/gst/vaapi/Makefile.am:
19682 Add missing header file to Makefile
19683 Add gstvaapitexture_glx.h to Makefile.am
19685 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19687 * gst-libs/gst/vaapi/gstvaapicontext.c:
19688 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19689 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19690 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19691 * gst/vaapi/gstvaapipostproc.c:
19692 * gst/vaapi/gstvaapiuploader.c:
19693 * gst/vaapi/gstvaapivideobufferpool.c:
19694 * gst/vaapi/gstvaapivideomemory.c:
19695 * gst/vaapi/gstvaapivideomemory.h:
19696 * tests/test-surfaces.c:
19697 videopool: add optional flags for surface pool allocation.
19698 Reword surface pool allocation helpers so that to allow for a simple
19699 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
19700 somewhat more elaborated/flexible form with optional allocation flags
19701 and precise GstVideoInfo specification.
19702 This is an API/ABI change, and SONAME version needs to be bumped.
19704 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19706 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19707 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19708 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19709 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19710 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19711 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19712 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19713 videopool: re-indent all GstVaapiVideoPool related source code.
19715 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19717 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19718 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19719 window: add toplevel display indirection for visualid and colormap.
19720 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
19721 the best suitable window visual id and colormap. This is an indirection in
19722 view to supporting EGL and custom/generic replacements.
19724 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19726 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19727 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19728 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19729 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19730 window: add toplevel API to determine the colormap.
19731 Add GstVaapiWindowClass::get_colormap() hook to help determine the
19732 currently active colormap bound to the supplied window, or actually
19733 create it if it does not already exist yet.
19735 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19737 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
19738 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
19739 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19740 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19741 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19742 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19743 window: add toplevel API to determine a visual id.
19744 Add GstVaapiWindowClass::get_visual_id() function hook to help find
19745 the best suitable visual id for the supplied window. While doing so,
19746 also simplify the process by which an X11 window is created with a
19747 desired Visual, i.e. now use a visual id instead of a Visual object.
19749 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19751 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19752 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19753 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19754 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19755 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19756 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19757 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19758 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19759 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19760 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19761 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19762 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19763 window: add generic helper to create windows.
19764 Add a new generic helper function gst_vaapi_window_new() to create
19765 a window without having the caller to check for the display type
19766 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
19767 to create windows, and the actual backend implementation fills it in.
19768 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19769 This is a simplification in view to supporting EGL.
19771 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19773 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19774 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19775 * gst-libs/gst/vaapi/gstvaapitexture.c:
19776 * gst/vaapi/gstvaapivideometa_texture.c:
19777 display: add utility function to check for OpenGL rendering.
19778 Add gst_vaapi_display_has_opengl() helper function to help determining
19779 whether the display can support OpenGL context to be bound to it, i.e.
19780 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
19782 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19784 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19785 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19786 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19787 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19788 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19789 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19790 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19791 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19792 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19793 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19794 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19795 * gst/vaapi/gstvaapipluginutil.c:
19796 * gst/vaapi/gstvaapivideobuffer.c:
19797 * gst/vaapi/gstvaapivideometa_texture.c:
19798 display: refine the meaning of display type.
19799 Make gst_vaapi_display_get_display_type() return the actual VA display
19800 type. Conversely, add a gst_vaapi_display_get_class_type() function to
19801 return the type of the GstVaapiDisplay instance. The former is used to
19802 identify the display server onto which the application is running, and
19803 the latter to identify the original object class.
19805 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19807 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19808 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19809 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19810 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19811 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19812 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19813 display: cosmetics (helper macros, new internal API names).
19814 Add more helper macros to the top-level GstVaapiDisplay interfaces.
19815 Rename a few others used internally for improved consistency.
19817 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19819 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19820 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19821 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19822 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
19823 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19824 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19825 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19826 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19827 display: record native display object.
19828 Record the underlying native display instance into the toplevel
19829 GstVaapiDisplay object. This is useful for fast lookups to the
19830 underlying native display, e.g. for creating an EGL display.
19832 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19834 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19835 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19836 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19837 display: use a recursive mutex for the display cache.
19838 Use a recursive mutex for the display cache so that a 3rdparty display
19839 object could be initialized during the initialization of the parent
19842 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19844 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19845 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19846 * gst-libs/gst/vaapi/gstvaapitexture.c:
19847 * gst-libs/gst/vaapi/gstvaapitexture.h:
19848 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19849 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19850 texture: add generic helper to create textures.
19851 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19852 and gst_vaapi_texture_new() to create a texture without having
19853 the caller to uselessly check for the display type himself. i.e.
19854 internally, there is now a GstVaapiDisplayClass hook to create
19855 textures, and the actual backend implementation fills it in.
19856 This is a simplification in view to supporting EGL.
19858 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19860 * gst-libs/gst/vaapi/Makefile.am:
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_glx.h:
19865 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19866 * gst/vaapi/gstvaapivideoconverter_glx.c:
19867 * gst/vaapi/gstvaapivideometa_texture.c:
19868 * tests/test-textures.c:
19869 texture: move to core libgstvaapi base library.
19870 GstVaapiTexture is a generic abstraction that could be moved to the
19871 core libgstvaapi library. While doing this, no extra dependency needs
19872 to be added. This means that a GstVaapitextureClass is now available
19873 for any specific code that needs to be added, e.g. creation of the
19874 underlying GL texture objects, or backend dependent ways to upload
19875 a surface to the texture object.
19876 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
19878 https://bugzilla.gnome.org/show_bug.cgi?id=736715
19880 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19883 * gst-libs/gst/vaapi/Makefile.am:
19884 * gst-libs/gst/vaapi/gstvaapicompat.h:
19885 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19886 * gst-libs/gst/vaapi/gstvaapitexture.c:
19887 texture: drop support for VA/GLX interfaces.
19888 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
19889 ease of use, but they had other caveats to deal with. It's now better
19890 to move on to legacy mode, whereby VA/GLX interop is two be provided
19891 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
19892 https://bugzilla.gnome.org/show_bug.cgi?id=736711
19894 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19896 * gst-libs/gst/vaapi/gstvaapitexture.c:
19897 * gst-libs/gst/vaapi/gstvaapitexture.h:
19898 * gst/vaapi/gstvaapivideoconverter_glx.c:
19899 * gst/vaapi/gstvaapivideometa_texture.c:
19900 * tests/test-textures.c:
19901 texture: add support for cropping rectangle during transfer.
19902 The gst_vaapi_texture_put_surface() function is missing a crop_rect
19903 argument that would be used during transfer for cropping the source
19904 surface to the desired dimensions.
19905 Note: from a user point-of-view, he should create the GstVaapiTexture
19906 object with the cropped size. That's the default behaviour in software
19907 decoding pipelines that we need to cope with.
19908 This is an API/ABI change, and SONAME version needs to be bumped.
19909 https://bugzilla.gnome.org/show_bug.cgi?id=736712
19911 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19913 * gst-libs/gst/vaapi/gstvaapitexture.c:
19914 * gst-libs/gst/vaapi/gstvaapitexture.h:
19915 texture: re-indent all GstVaapiTexture related source code.
19917 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19919 * gst-libs/gst/vaapi/gstvaapisurface.c:
19920 * gst-libs/gst/vaapi/gstvaapisurface.h:
19921 surface: add more fine-grained allocation helper.
19922 Add new gst_vaapi_surface_new_full() helper function that allocates
19923 VA surface from a GstVideoInfo template in argument. Additional flags
19924 may include ways to
19925 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
19926 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
19927 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
19929 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19931 * gst-libs/gst/vaapi/gstvaapisurface.c:
19932 * gst-libs/gst/vaapi/gstvaapisurface.h:
19933 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19934 surface: re-indent all GstVaapiSurface related source code.
19936 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19938 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19939 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19940 surfaceproxy: add helper to create a wrapped surface object.
19941 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
19942 a proxy. The main use case for that is to convey additional information
19943 at the proxy level that would not be suitable to the plain surface.
19945 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19947 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19948 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19949 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19950 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
19952 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19955 libs: bump library major version.
19957 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19959 * gst-libs/gst/vaapi/gstvaapitypes.h:
19960 libs: re-introduce a GST_VAAPI_ID_INVALID value.
19961 Re-introduce a GST_VAAPI_ID_INVALID value that represents
19962 a non-zero and invalid id. This is useful to have a value
19963 that is still invalid for cases where zero could actually
19966 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19968 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19969 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19970 libs: expose GstVaapiMiniObject APIs to all backends.
19971 Make it possible to have all libgstvaapi backends (libs) access to a
19972 common GstVaapiMiniObject API and implementation. This is a minor step
19973 towards full exposure when needed, but restrict it to libgstvaapi at
19976 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19978 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19979 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19980 * gst-libs/gst/vaapi/gstvaapiobject.c:
19981 * gst-libs/gst/vaapi/gstvaapiobject.h:
19982 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19983 libs: re-indent all GstVaapiObject related source code.
19984 Re-indent and provide additional minor cosmetical changes to the
19985 GstVaapiMiniObject and GstVaapiObject source files.
19987 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19989 * gst/vaapi/gstvaapipluginutil.c:
19990 pluginutil: Fix clearing of subtitle overlay
19991 dvbsuboverlay signals no subtitles present by not setting
19992 GstVideoOverlayCompositionMeta on a buffer.
19993 Detect this, and remove subtitles whenever we have no overlay composition to
19995 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19997 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19999 * gst/vaapi/gstvaapipostproc.c:
20000 vaapipostproc: clear state on stop
20001 Otherwise restarting may fail because the state of vaapipluginbase and
20002 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
20003 initailization and not call gst_vaapi_plugin_base_set_caps()
20005 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
20007 * gst/vaapi/gstvaapidecode.c:
20008 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
20010 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20012 * gst-libs/gst/vaapi/gstvaapiencoder.c:
20013 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
20014 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
20015 since the vaaapi context creation (gstvaapicontext.c) can still use the
20016 default chroma type which is YUV420.
20017 https://bugzilla.gnome.org/show_bug.cgi?id=743567
20018 https://bugzilla.gnome.org/show_bug.cgi?id=743035
20020 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20022 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
20023 * patches/videoparsers/series.frag:
20024 h264parse: drop patches merged upstream.
20025 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
20027 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20029 * ext/codecparsers:
20030 codecparsers: update to gst-vaapi-branch commit d3b5c1b
20031 8194cac: h264parse: parse SPS subset
20032 64b7f52: h264parse: expose stereo-high profile
20033 774360a: h264parse: add initial support for MVC NAL units
20034 258478f: h264parser: fix stack smashing
20036 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20038 * gst/vaapi/gstvaapivideometa_texture.c:
20039 Fix compilation error if there is no GL/gl.h header file installed
20041 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20043 * gst/vaapi/gstvaapidecode.c:
20044 vaapidecode: commit updated srcpad caps to base plugin.
20045 Make sure that the GstVaapiPluginBase instance receives the new src
20046 pad caps whenever they get updated from within the GstVaapiDecoder
20048 This also ensures that downstream elements receive correctly sized
20049 SW decoded buffers if needed.
20050 https://bugs.tizen.org/jira/browse/TC-114
20052 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20054 * gst/vaapi/gstvaapidecode.c:
20055 vaapidecode: always reset decoder on ::set_format().
20056 Split GstVideoDecoder::set_format() handler to first update the sink
20057 pad caps and reset the active VA decoder instance based on those, and
20058 then update the src pad caps whenever possible, e.g. when the caps
20059 specify a valid video resolution.
20061 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20063 * gst/vaapi/gstvaapivideomemory.c:
20064 vaapivideomemory: don't crash when trying to allocate 0x0 images.
20065 In some occasions, a buffer pool is created for pre-initialization
20066 purposes regardless of whether a valid image size is available or
20067 not. However, during actual decode stage, the vaapidecode element
20068 is expected to update the srcpad caps with the new dimensions, thus
20069 also triggering a reset of the underlying bufferpool.
20071 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20073 * ext/codecparsers:
20074 codecparsers: update to gst-vaapi-branch commit 191cb2f
20075 347605a: h264parse: expose compatible profiles to downstream
20076 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
20077 24a3126: Revert "h264parse: expose compatible profiles to downstream"
20078 8661740: h264parse: expose compatible profiles to downstream
20079 8b7ef3f: codecparsers: fix some compiler warnings
20081 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20083 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20084 encoder: h264: Fix the period between I/P frames
20085 If the key-frame period is set as one, then ip_period shuld be zero
20086 https://bugzilla.gnome.org/show_bug.cgi?id=734992
20088 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20090 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20091 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
20092 https://bugzilla.gnome.org/show_bug.cgi?id=734993
20094 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20096 * gst/vaapi/gstvaapisink.c:
20097 vaapisink: Protect the X11 API invokations with proper locking
20098 https://bugzilla.gnome.org/show_bug.cgi?id=739808
20100 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20102 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20103 encoder: h264: fix pixel-aspect-ratio in encoded stream.
20104 Really report sample aspect ratio (SAR) as present, and make it match
20105 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
20106 really make sure VUI parameter aspect_ratio_info_present_flag is set
20107 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
20108 This is a leftover from git commit a12662f.
20109 https://bugzilla.gnome.org/show_bug.cgi?id=740360
20111 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20113 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20114 decoder: mpeg4: fix uninitialized variables.
20115 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
20116 GST_MPEG4_USER_DATA so that a parse error would result in skipping
20117 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
20118 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
20120 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20122 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20123 encoder: h264: fix profile limits.
20124 Fix ensure_profile_limits() to lower profile to the desired limits,
20125 only if the latter are actually known and the profile needed to be
20128 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20130 * gst/vaapi/gstvaapipostproc.c:
20131 vaapipostproc: fix out caps for GLMemory.
20132 If the best downstream capsfeature turns out to be GLMemory, then make
20133 sure to propagate RGBA video format in caps to that element. This fixes
20134 the following pipeline: ... ! vaapipostproc ! glimagesink.
20136 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20138 * gst/vaapi/gstvaapipostproc.c:
20139 vaapipostproc: fix check for compatible src pad capsfilters.
20140 When an explicit output video format is selected, from an src pad
20141 capsfilter, make sure that the downstream element actually supports
20142 that format. In particular, fix crash with the following pipelines:
20143 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
20144 XXX is a format not supported by xvimagesink.
20145 While doing so, also reduce the set of src pad filter caps to the
20146 actual set of allowed src pad caps.
20148 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20150 * gst/vaapi/gstvaapipostproc.c:
20151 * gst/vaapi/gstvaapipostproc.h:
20152 * gst/vaapi/gstvaapiuploader.c:
20153 * gst/vaapi/gstvaapiuploader.h:
20154 plugins: re-indent all video processing related source code.
20156 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20158 * gst/vaapi/gstvaapivideomemory.c:
20159 plugins: further fixes to the new "current" storage tracker.
20160 The ensure_surface() and ensure_image() functions shall only relate
20161 to the underlying backing store. The actual current flags are to be
20162 updated only through ensure_{surface,image}_is_current() or very other
20163 particular cases in GstMemory hooks.
20165 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20167 * gst/vaapi/gstvaapivideomemory.c:
20168 plugins: fix "current" video memory flags.
20169 If the surface proxy is updated into the GstVaapiVideoMemory, then
20170 it is assumed it is the most current representation of the current
20171 video frame. Likewise, make a few more arrangements to have the
20172 "current " flags set more consistently.
20174 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20176 * gst/vaapi/gstvaapivideomemory.c:
20177 * gst/vaapi/gstvaapivideomemory.h:
20178 * gst/vaapi/gstvaapivideometa.c:
20179 plugins: ensure VA surface is current prior to using it.
20180 When interacting with SW elements, the buffers and underlying video
20181 memory could be mapped as read/write. However, we need to use those
20182 buffers again as plain VA surfaces, we have to make sure the VA image
20183 is thus committed back to VA surface memory.
20184 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
20186 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
20188 * gst/vaapi/gstvaapivideomemory.c:
20189 plugins: enable memory maps for read & write.
20190 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
20191 buffers can be further processed in-place, e.g. with a textoverlay.
20192 https://bugzilla.gnome.org/show_bug.cgi?id=704078
20193 [ported to current git master branch, amended commit message]
20194 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20196 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20198 * gst/vaapi/gstvaapidecode.c:
20199 * gst/vaapi/gstvaapipluginutil.c:
20200 * gst/vaapi/gstvaapipluginutil.h:
20201 * gst/vaapi/gstvaapipostproc.c:
20202 plugins: preserve framerate when updating src caps video format.
20203 In the current implementation, gst_video_info_set_format() would reset
20204 the whole GstVideoInfo structure first, prior to setting video format
20205 and size. So, coleteral information like framerate or pixel-aspect-
20207 Provide and use a unique gst_video_info_change_format() for overcome
20208 this issue, i.e. only have it change the format and video size, and
20209 copy over the rest of the fields.
20210 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20212 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20214 * gst/vaapi/gstvaapi.c:
20215 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
20216 This is for helping decodebin to autoplug the vaapidecode element.
20217 Decodebin is selecting decoder elements only based on rank and caps.
20218 Without overriding the autoplug-* signals there is no way to autoplug
20219 HW decoders inside decodebin. An easier soulution is to raise the
20220 rank of vaapidecode, so that it gets selected first.
20221 https://bugzilla.gnome.org/show_bug.cgi?id=739332
20223 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20225 * gst-libs/gst/vaapi/gstvaapiprofile.c:
20226 * gst/vaapi/gstvaapidecode.c:
20227 vaapidecode: only expose supported profiles when needed.
20228 JPEG and VP8 codecs do not really support the concept of "profile". So,
20229 don't try to expose any set that wouldn't be supported by jpegparse, or
20230 ivfparse for instance.
20231 https://bugzilla.gnome.org/show_bug.cgi?id=739713
20232 https://bugzilla.gnome.org/show_bug.cgi?id=739714
20234 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20236 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20237 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20238 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20239 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20240 decoder: h264: add initial support for repeat-first-field (RFF) flag.
20241 Use the SEI pic_timing() message to track and propagate down the repeat
20242 first field (RFF) flag. This is only initial support as there is one
20243 other condition that could induce the RFF flag, which is not handled
20246 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20248 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20249 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
20250 Fix the decoding process for picture order count type 0 when the previous
20251 picture had a memory_management_control_operation = 5. In particular, fix
20252 the actual variable type for prev_pic_structure to hold the full bits of
20253 the picture structure.
20254 In practice, this used to work though, due to the underlying type used to
20255 express a gboolean.
20257 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20259 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20260 decoder: h264: fix detection of top-field-first (TFF) flag.
20261 Use the SEI pic_timing() message to track the pic_struct variable when
20262 present, or infer it from the regular slice header flags field_pic_flag
20263 and bottom_field_flag. This fixes temporal sequence ordering when the
20264 output pictures are to be displayed.
20265 https://bugzilla.gnome.org/show_bug.cgi?id=739291
20267 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20269 * ext/codecparsers:
20270 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
20271 1241840 h264: fix derivation of MaxPicNum variable
20272 3bd718e h264: fix GstH264ParserResult documentation typo
20273 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
20274 b08e4be h264parse: don't unnecesarily set src_caps
20276 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20278 * gst/vaapi/gstvaapipostproc.c:
20279 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
20280 Added the same Klass specifications used in other upstream
20281 video postprocessing elements like videoconvert, videoscale,
20282 videobalance and deinterlace.
20283 An example use case is for this is to help the playsink
20284 to autoplug the hardware accelerated deinterlacer.
20286 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20288 * gst/vaapi/gstvaapipostproc.c:
20289 vaapipostproc: Tweak the output video format setting to enable the autoplugging
20290 This is a workaround until auto-plugging is fixed when
20291 format=ENCODED + memory:VASurface caps feature are provided.
20292 Use the downstream negotiated video format as the output video format
20293 if the user didn't ask for the colorspace conversion explicitly.
20294 Usecase: This will help to connect elements like videoscale, videorate etc
20296 https://bugzilla.gnome.org/show_bug.cgi?id=739443
20298 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20300 * gst/vaapi/gstvaapipostproc.c:
20301 * gst/vaapi/gstvaapipostproc.h:
20302 vaapipostproc: allow user defined scaling mode.
20303 Add new "scale-method" property to expose the scaling mode to use during
20304 video processing. Note that this is only a hint, and the actual behaviour
20305 may differ from implementation (VA driver) to implementation.
20307 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20309 * gst-libs/gst/vaapi/gstvaapifilter.c:
20310 * gst-libs/gst/vaapi/gstvaapifilter.h:
20311 * gst-libs/gst/vaapi/gstvaapiutils.c:
20312 * gst-libs/gst/vaapi/gstvaapiutils.h:
20313 filter: add initial support for high quality scaling.
20314 Add support for video scaling options in VPP pipelines. Only the
20315 DEFAULT mode is bound to exist. Others might be folded into that
20318 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20320 * gst-libs/gst/vaapi/gstvaapifilter.c:
20321 * gst-libs/gst/vaapi/gstvaapifilter.h:
20322 filter: re-indent all GstVaapiFilter related source code.
20324 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20326 * ext/codecparsers:
20327 codecparsers: update to gst-vaapi-branch commit f9d3bde.
20328 2218b02 h264parse: expose parsed profile and level to downstream
20329 3dbfab4 h264parse: return flushing if we get chained while being set to READY
20330 d40fa8b h264: fix frame packing SEI parsing
20331 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
20332 b3e022e h264: initialize some fields of pic_timing structure
20333 a70661d vc1: fix expected level in sequence-layer parsing unit test
20334 6cee88d vc1: fix level values for simple/main profile
20335 356c189 vc1: add unit test for sequence-layer parsing
20336 ab9f641 vc1: take care of endianness when parsing sequence-layer
20337 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
20339 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20341 * gst/vaapi/gstvaapidecode.c:
20342 vaapidecode: Expose the supported profiles as caps to upstream
20343 This will allows the playbin to fallback to Software Decoder
20344 if the Hardware Decoder does not support a particular profile.
20345 https://bugzilla.gnome.org/show_bug.cgi?id=730997
20347 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20349 * gst/vaapi/gstvaapiencode.c:
20350 * gst/vaapi/gstvaapiencode.h:
20351 * gst/vaapi/gstvaapiencode_h264.c:
20352 encode: Attach the codec-data to out caps only based on negotiated caps
20353 Attach the codec_data to out_caps only if downstream needed.
20354 For eg: h264 encoder doesn't need to stuff codec_data to the
20355 src caps if the negotiated caps has a stream format of byte-stream.
20356 https://bugzilla.gnome.org/show_bug.cgi?id=734902
20358 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20361 configure: echoing installation prefix path
20363 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20365 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20366 display: add support for DRM Render-Nodes.
20367 Add support for DRM Render-Nodes. This is a new feature that appeared
20368 in kernel 3.12 for experimentation purposes, but was later declared
20369 stable enough in kernel 3.15 for getting enabled by default.
20370 This allows headless usages without authentication at all, i.e. usages
20371 through plain ssh connections is possible.
20373 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20375 * gst/vaapi/gstvaapisink.c:
20376 vaapisink: clean-ups (indentation, drop unused variables).
20378 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20381 * gst/vaapi/gstvaapisink.c:
20382 vaapisink: fix GstNavigation "key-press" / "key-release" events.
20383 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
20384 to a KeySym. In particular, there is no such Window argument. Also
20385 make sure to check for, and use, the correct <X11/XKBlib.h> header
20386 where that new function is defined. Otherwise, default to the older
20387 XKeycodeToKeysym() function.
20389 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20391 * gst/vaapi/gstvaapisink.c:
20392 vaapisink: fix GstNavigation "mouse-move" event.
20393 Really use the motion event coordinates to propagate the "mouse-move"
20394 event to upper layer, instead of those from a button event. Those are
20395 technically the same though.
20397 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20399 * gst/vaapi/gstvaapisink.c:
20400 vaapisink: implement the GstNavigation interface
20401 This is useful for things like DVD menus, where key/mouse events
20402 would need to be forwarded from the upstream sink element.
20403 https://bugzilla.gnome.org/show_bug.cgi?id=711479
20405 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20407 * gst/vaapi/gstvaapipluginbase.c:
20408 vaapipostproc: fix deinterlacing from non VA memory buffers.
20409 When we copy a buffer because we're moving it into VA-API memory, we
20410 need to copy flags. Otherwise, interlaced YUV buffers from a capture
20411 source (e.g. V4L2) don't get flagged as interlaced.
20412 https://bugzilla.gnome.org/show_bug.cgi?id=726270
20413 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20414 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
20415 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20417 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20419 * gst/vaapi/gstvaapipostproc.c:
20420 vaapipostproc: add support for GLTextureUploadMeta output.
20421 This allows for vaapipostproc to be chained to the glimagesink element
20423 https://bugzilla.gnome.org/show_bug.cgi?id=735231
20425 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20427 * gst/vaapi/gstvaapipluginutil.c:
20428 * gst/vaapi/gstvaapipluginutil.h:
20429 * gst/vaapi/gstvaapipostproc.c:
20430 vaapipostproc: add support for "download" capability.
20431 Allow implicit conversions to raw video formats, while still keeping
20432 VA surfaces underneath. This allows for chaining the vaapipostproc
20433 element to a software-only element that takes care of maps/unmaps.
20435 https://bugzilla.gnome.org/show_bug.cgi?id=720174
20437 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20439 * gst/vaapi/gstvaapipostproc.c:
20440 * gst/vaapi/gstvaapipostproc.h:
20441 vaapipostproc: use pooled vaapi video meta.
20442 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
20443 video buffer allocation. Also optimize copy of additional metadata info
20444 into the resulting video buffer: only copy the video cropping info and
20445 the source surface proxy.
20446 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20447 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20448 [fixed proxy leak, fixed double free on error, optimized meta copy]
20449 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20451 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20453 * gst/vaapi/gstvaapipostproc.c:
20454 vaapipostproc: fix passthrough mode.
20455 If no explicit output surface format is supplied try to keep the one
20456 supplied through the sink pad caps. This avoids a useless copy, even
20457 if things are kept in GPU memory.
20458 This is a performance regression from git commit dfa70b9.
20460 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20462 * gst/vaapi/gstvaapipostproc.c:
20463 * gst/vaapi/gstvaapipostproc.h:
20464 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
20465 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20466 [used new infrastructure through base decide_allocation() impl]
20467 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20469 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20471 * gst/vaapi/gstvaapipostproc.c:
20472 vaapipostproc: enable advanced deinterlacing with same format.
20473 If only advanced deinterlacing is requested, i.e. deinterlacing is
20474 the only active algorithm to apply with source and output surface
20475 formats being the same, then make sure to enable VPP processing.
20476 Otherwise, allow fallback to bob-deinterlacing with simple rendering
20479 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20481 * gst/vaapi/gstvaapivideomemory.c:
20482 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
20483 https://bugzilla.gnome.org/show_bug.cgi?id=735156
20485 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20487 * gst/vaapi/gstvaapipluginbase.c:
20488 * gst/vaapi/gstvaapipluginutil.c:
20489 plugins: fix memory leaks.
20491 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20493 * gst/vaapi/gstvaapidecode.c:
20494 * gst/vaapi/gstvaapipluginbase.c:
20495 * gst/vaapi/gstvaapipluginbase.h:
20496 plugins: factor out decide_allocation() hook.
20497 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
20498 feature argument can be used to force a bufferpool with a specific kind
20501 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20503 * gst/vaapi/gstvaapivideobufferpool.c:
20504 * gst/vaapi/gstvaapivideobufferpool.h:
20505 * gst/vaapi/gstvaapivideomemory.c:
20506 plugins: allow bufferpool to not allocate vaapi video meta.
20507 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
20508 can be used to disable early allocations of vaapi video metas on buffers,
20509 thus delagating that to the bufferpool user.
20511 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20513 * gst/vaapi/gstvaapivideobuffer.c:
20514 * gst/vaapi/gstvaapivideobuffer.h:
20515 * gst/vaapi/gstvaapivideobufferpool.c:
20516 * gst/vaapi/gstvaapivideobufferpool.h:
20517 * gst/vaapi/gstvaapivideocontext.c:
20518 * gst/vaapi/gstvaapivideocontext.h:
20519 * gst/vaapi/gstvaapivideoconverter_glx.c:
20520 * gst/vaapi/gstvaapivideoconverter_glx.h:
20521 * gst/vaapi/gstvaapivideoconverter_x11.c:
20522 * gst/vaapi/gstvaapivideoconverter_x11.h:
20523 * gst/vaapi/gstvaapivideomemory.c:
20524 * gst/vaapi/gstvaapivideomemory.h:
20525 * gst/vaapi/gstvaapivideometa.c:
20526 * gst/vaapi/gstvaapivideometa.h:
20527 * gst/vaapi/gstvaapivideometa_texture.c:
20528 * gst/vaapi/gstvaapivideometa_texture.h:
20529 plugins: re-indent all GstVaapiVideo* related source code.
20531 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20533 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20534 surfaceproxy: fix copy to propagate view_id.
20535 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
20536 fixing random frames skipped when vaapipostproc element is used in
20537 passthrough mode. In that mode, GstMemory is copied, thus including
20538 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
20540 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20542 * gst/vaapi/gstvaapipostproc.c:
20543 vaapipostproc: fix detection of output surface format changes.
20544 Default to I420 format for output surfaces so that to match the usual
20545 GStreamer pipelines. Though, internally, we could still opt for NV12
20546 surface formats, i.e. default format=ENCODED is a hint for that, thus
20547 delegating the decision to the VA driver.
20549 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20551 * gst/vaapi/gstvaapipostproc.c:
20552 vaapipostproc: fix construction of allowed sink pad caps.
20553 Fix construction of the set of caps allowed on the sink pad to filter
20554 out unsupported raw video caps with GStreamer >= 1.2.
20556 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20558 * gst/vaapi/gstvaapipostproc.c:
20559 * gst/vaapi/gstvaapipostproc.h:
20560 vaapipostproc: improve heuristics for detecting native VA surfaces.
20561 Use the new gst_caps_has_vaapi_surface() helper function to detect
20562 whether the sink pad caps contain native VA surfaces, or not, i.e.
20564 Also rename is_raw_yuv to get_va_surfaces to make the variable more
20565 explicit as we just want a way to differentiate raw video caps from
20566 VA surfaces actually.
20568 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20570 * gst/vaapi/gstvaapipostproc.c:
20571 vaapipostproc: disable discontinuity detection code.
20572 The "discontinuity" tracking code, whereby lost frames are tentatively
20573 detected, is inoperant if the sink pad buffer timestamps are not right
20575 This is a temporary workaround until the following bug is fixed:
20576 https://bugzilla.gnome.org/show_bug.cgi?id=734386
20578 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20580 * gst/vaapi/gstvaapipostproc.c:
20581 vaapipostproc: fix heuristic for detecting discontinuity.
20582 In order to make the discontinuity detection code useful, we need to
20583 detect the lost frames in the history as early as the previous frame.
20584 This is because some VA implementations only support one reference
20585 frame for advanced deinterlacing.
20586 In practice, turn the condition for detecting new frame that is beyond
20587 the previous frame from field_duration*2 to field_duration*3, i.e.
20588 nothing received for the past frame and a half because of possible
20589 rounding errors when calculating the field-duration either in this
20590 element (vaapipostproc), or from the upstream element (parser element).
20591 This is a regression introduced with commit faefd62.
20592 https://bugzilla.gnome.org/show_bug.cgi?id=734135
20594 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20596 * gst/vaapi/gstvaapipluginbase.c:
20597 * gst/vaapi/gstvaapipluginbase.h:
20598 plugins: fix detection of raw video caps.
20599 Use the new gst_caps_has_vaapi_surface() helper function to better
20600 detect raw video caps, and in particular those from RGB colorspace.
20601 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20603 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20605 * gst/vaapi/gstvaapipluginutil.c:
20606 * gst/vaapi/gstvaapipluginutil.h:
20607 plugins: add helper for detecting VA surfaces in caps.
20608 Introduce new gst_caps_has_vaapi_surface() helper function to detect
20609 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
20610 implies a check for memory:VASurface caps features, and format=ENCODED
20611 for earlier versions of GStreamer.
20613 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
20615 * gst/vaapi/gstvaapidecode.c:
20616 vaapidecode: start the decoder task again after finishing
20617 This allows the element to accept data again after draining without
20618 a hard reset or caps change happening in between.
20619 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20621 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
20623 * gst/vaapi/gstvaapidecode.c:
20624 vaapidecode: unlock condition variables before shutting down the element
20625 Otherwise threads might wait for them, causing the shutdown of the element
20626 to deadlock on the streaming thread.
20627 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20629 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
20631 * gst/vaapi/gstvaapidecode.c:
20632 vaapidecode: reset decoder_finish variable after stopping the decoder thread
20633 Otherwise the element is not usable again after draining/EOS.
20634 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20636 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
20638 * gst/vaapi/gstvaapidecode.c:
20639 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
20640 This otherwise results in unnecessary error messages.
20641 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20643 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20645 * gst-libs/gst/vaapi/Makefile.am:
20646 * gst/vaapi/Makefile.am:
20647 build: fix with --no-undefined linker flags.
20648 https://bugzilla.gnome.org/show_bug.cgi?id=729352
20650 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
20652 * gst/vaapi/gstvaapisink.c:
20653 * gst/vaapi/gstvaapisink.h:
20654 vaapisink: add support for GstColorBalance interface.
20655 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20656 [fixed channel names, simplified range factor, fixed memory leak]
20657 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20659 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
20661 * gst/vaapi/gstvaapisink.c:
20662 * gst/vaapi/gstvaapisink.h:
20663 vaapisink: add support for colorbalance adjustment.
20664 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20665 [fixed and simplified tracking of colorbalance value changes]
20666 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20668 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20670 * gst/vaapi/gstvaapisink.c:
20671 vaapisink: improve installation of properties.
20672 Simplify the creation and installation process of properties, by first
20673 accumulating them into a g_properties[] array, and next calling into
20674 g_object_class_install_properties().
20675 Also add missing docs and flags to some properties.
20677 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20679 * gst/vaapi/gstvaapisink.c:
20680 * gst/vaapi/gstvaapisink.h:
20681 vaapisink: code clean-ups.
20682 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
20683 helper macro and use it wherever we know the object is a GstBaseSink or
20684 any base class. Drop explicit initializers for values that have defaults
20687 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20689 * gst/vaapi/gstvaapisink.c:
20690 * gst/vaapi/gstvaapisink.h:
20691 vaapisink: re-indent all GstVaapiSink related source code.
20693 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20695 * gst/vaapi/gstvaapisink.c:
20696 * gst/vaapi/gstvaapisink.h:
20697 vaapisink: introduce separate backends.
20698 Introduce new backends vtable so that to have clean separation between
20699 display dependent code and common base code. That's a "soft" separation,
20700 we don't really need dedicated objects.
20701 https://bugzilla.gnome.org/show_bug.cgi?id=722248
20703 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20705 * gst/vaapi/gstvaapisink.c:
20706 * gst/vaapi/gstvaapisink.h:
20707 vaapisink: drop unused "synchronous" mode.
20708 Support for X11 "synchronous" mode was never implemented, and was only
20709 to be useful for debugging. Drop that altogether, that's not going to
20710 be useful in practice.
20711 https://bugzilla.gnome.org/show_bug.cgi?id=733985
20713 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20715 * gst/vaapi/gstvaapisink.c:
20716 * gst/vaapi/gstvaapisink.h:
20717 vaapisink: drop unused variables.
20718 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
20719 variables. They got merged into the GstVaapiPluginBase object.
20721 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20723 * gst/vaapi/gstvaapisink.c:
20724 * gst/vaapi/gstvaapisink.h:
20725 vaapisink: drop GLX rendering and fancy effects.
20726 Rendering with GLX in vaapisink is kind of useless nowadays, including
20727 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
20728 deprecated in favor of EGL, or more direct buffer sharing with actual
20730 Should testing of interop with GLX be needed, one could still be using
20731 the modern cluttersink or glimagesink elements.
20732 https://bugzilla.gnome.org/show_bug.cgi?id=733984
20734 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
20736 * gst/vaapi/gstvaapisink.c:
20737 * gst/vaapi/gstvaapisink.h:
20738 vaapisink: listen to window size changes on X11.
20739 Allow dynamic changes to the window, e.g. performed by the user, and
20740 make sure to refresh its contents, while preserving aspect ratio.
20741 In practice, Expose and ConfigureNotify events are tracked in X11
20742 display mode by default. This occurs in a separte event thread, and
20743 this is similar to what xvimagesink does. Any of those events will
20744 trigger a reconfiguration of the window "soft" size, subsequently
20745 the render-rect when necessary, and finally _expose() the result.
20746 The default of handle_events=true can be changed programatically via
20747 gst_x_overlay_handle_events().
20748 Thanks to Fabrice Bellet for rebasing the patch.
20749 https://bugzilla.gnome.org/show_bug.cgi?id=711478
20750 [dropped XInitThreads(), cleaned up the code a little]
20751 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20753 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20755 * gst/vaapi/gstvaapidecode.c:
20756 vaapidecode: decode and output all pending frames on normal EOS.
20757 The gst_vaapidecode_decode_loop() function is called within a separate
20758 task to fetch and output all frames that were decoded so far. So, if
20759 the decoder_loop_status is forcibly set to EOS when _finish() is called,
20760 then we are bound to exist the task without submitting the pending
20762 If the downstream element error'ed out, then the gst_pad_push() would
20763 propagate up an error and so we will get it right for cutting off
20764 _finish() early in that case.
20765 This is a regression from 6003596.
20766 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20768 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20771 Bump version for development.
20773 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20778 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20783 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
20785 * gst/vaapi/gstvaapidecode.c:
20786 vaapidecode: properly return from decode loop on downstream errors.
20787 Fixes a hang/race on shutdown where _decode_loop() had already completed
20788 its execution and _finish() was waiting on a GCond for decode_loop()
20789 to complete. Also fixes the possible race where _finish() is called
20790 but _decode_loop() endlessly returns before signalling completion
20791 iff the decoder instance returns GST_FLOW_OK.
20792 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
20793 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20794 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
20795 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20797 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20803 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20805 * gst/vaapi/gstvaapisink.c:
20806 vaapisink: fix GstVideoOverlay::expose() implementation.
20807 Now that we always track the currently active video buffer, it is
20808 not necessary to automatically increase its reference since this is
20809 implicitly performed in ::show_frame() through the get_input_buffer()
20810 helper from GstVaapiPluginBase class.
20811 This is a regression from a26df80.
20813 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20815 * gst/vaapi/gstvaapidecode.c:
20816 * gst/vaapi/gstvaapipluginutil.c:
20817 vaapidecode: simplify bufferpool configuration.
20818 Rework the logics behind the configuration of an adequate bufferpool,
20819 especially when OpenGL meta or additional capsfeatures are needed.
20820 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
20821 and that is not system memory, is now selected by default.
20823 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20825 * gst/vaapi/gstvaapidecode.c:
20826 vaapidecode: fix auto-plugging of vaapisink element.
20827 Make sure to propagate memory:VASurface capsfeature to srcpad caps
20828 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
20829 core currently miss additional patches available in 1.5-git (1.6).
20830 This is a temporary workaround.
20832 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20835 configure: allow builds against GStreamer git (1.5.x).
20836 https://bugzilla.gnome.org/show_bug.cgi?id=733688
20838 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20841 configure: fix build with GStreamer 1.4.0 release.
20843 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20846 * debian.upstream/Makefile.am:
20847 * debian.upstream/control.in:
20848 debian: fix packaging for new naming scheme.
20850 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20855 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20858 configure: mark support for GStreamer < 1.2 as deprecated.
20859 Supporting anything thing below GStreamer 1.2 is asking for trouble
20860 for keeping up with the required facilities to make efficient pipelines.
20861 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
20864 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20867 configure: mark support for GStreamer 0.10 as obsolete.
20868 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
20869 and may actually be removed altogether for a future release. There is
20870 no real point to maintain a build for such an ancient GStreamer version
20871 that is not even supported upstream.
20873 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20875 * gst/vaapi/gstvaapisink.c:
20876 * gst/vaapi/gstvaapisink.h:
20877 vaapisink: allow a specific view component to be displayed.
20878 If a multiview stream is decoded, multiple view components are submitted
20879 as is downstream. It is the responsibility of the sink element to display
20880 the required view components. By default, always select the frame buffer
20881 that matches the view-id of the very first frame to be displayed.
20882 However, introduce a "view-id" property to allow the selection of a
20883 specific view component of interest to display.
20885 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20887 * gst/vaapi/gstvaapisink.c:
20888 vaapisink: always keep the last displayed buffer around.
20889 Always record the VA surface that is currently being rendered, no matter
20890 the fact we are using texturedblit or overlay. That's because in some
20891 occasions, we need to refresh or resize the displayed contents based on
20892 new events. e.g. user-resized window.
20893 Besides, it's simpler to track the last video buffer in GstVaapiSink than
20894 through the base sink "last-sample".
20896 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20898 * gst/vaapi/gstvaapipluginbase.c:
20899 * gst/vaapi/gstvaapipluginbase.h:
20900 * gst/vaapi/gstvaapipluginutil.c:
20901 * gst/vaapi/gstvaapisink.c:
20902 vaapisink: add support for "display-name" property.
20903 Add a "display-name" property to vaapisink so that the end user could
20904 select the desired output. Keep "display-name" in-line with the existing
20905 "display" (GstVaapiDisplayXXX type).
20906 So, for X11 or GLX, the "display-name" is the usual display name as we
20907 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
20908 for wl_display_connect(); and for DRM, the "display-name" is actually the
20910 https://bugzilla.gnome.org/show_bug.cgi?id=722247
20912 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20914 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20915 window: make gst_vaapi_window_reconfigure() thread-safe.
20916 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
20917 thread-safe by default, so that upper layer users don't need to handle
20920 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
20922 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20923 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20924 window: allow for updating size from current geometry.
20925 Add gst_vaapi_window_reconfigure() interface to force an update of
20926 the GstVaapiWindow "soft" size, based on the current geometry of the
20927 underlying native window.
20928 This can be useful for instance to synchronize the window size when
20929 the user changed it.
20930 Thanks to Fabrice Bellet for rebasing the patch.
20931 [changed interface to gst_vaapi_window_reconfigure()]
20932 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20934 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20936 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20937 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20938 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20939 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20940 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20941 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20942 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20943 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20944 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
20945 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20946 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20947 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20948 window: re-indent all GstVaapiWindow related source code.
20950 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20952 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20953 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20954 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20955 display: add interface to retrieve the display name.
20956 Add gst_vaapi_display_get_display_name() helper function to determine
20957 the name associated with the underlying native display. Note that for
20958 raw DRM backends, the display name is actually the device path.
20960 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20962 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20963 display: fix comparison of X11 display names.
20964 Make sure to not only compare display host names, but also the actual
20965 display number. The screen number does not need to be checked at this
20968 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20970 * gst/vaapi/gstvaapidecode.c:
20971 * gst/vaapi/gstvaapivideobufferpool.c:
20972 vaapidecode: add support for VideoAlignment bufferpool option.
20973 Always add VideoAlignment bufferpool option if the downstream element
20974 expects its own pool to be used but does not offer it through a proper
20975 propose_allocation() implementation for instance, and that the ALLOCATION
20976 query does not expose the availability of the Video Meta API.
20977 This fixes propagation of video buffer stride information to Firefox.
20979 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20981 * gst/vaapi/gstvaapivideomemory.c:
20982 vaapivideomemory: always prefer native VA surface formats.
20983 Make sure to always prefer native internal formats for the VA surfaces
20984 that get allocated. Also disable "direct-rendering" mode in this case.
20985 This is needed so that to make sure that anything that gets out of the
20986 decoder, or anything that gets into the encoder, is in native format
20987 for the hardware, and thus the driver doesn't need to perform implicit
20988 conversions in there. Interop with SW elements is still available with
20989 fast implementations of VA imaging APIs.
20991 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20993 * gst/vaapi/gstvaapivideomemory.c:
20994 vaapivideomemory: disallow memory shares across buffers, use a copy.
20995 Forbid shares of GstMemory instances, and rather make copy of it. This
20996 effectively copies the GstMemory structure and enclosed metadata, but
20997 this does not copy the VA surface contents itself. It should though.
20998 This fixes preroll and makes sure to not download garbage for the first
20999 frame when a SW rendering sink is used.
21001 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21003 * gst/vaapi/gstvaapivideomemory.c:
21004 * gst/vaapi/gstvaapivideomemory.h:
21005 vaapivideomemory: use an image pool to cache objects.
21006 Use an image pool to hold VA images to be used for downloads/uploads
21007 of contents for the associated surface.
21008 This is an optmization for size. So, instead of creating as many VA
21009 images as there are buffers (then VA surfaces) allocated, we only
21010 maintain a minimal set of live VA images, thus preserving memory
21013 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21015 * gst/vaapi/gstvaapivideomemory.c:
21016 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
21017 Disable read-write mappings if "direct-rendering" is not supported.
21018 Since the ordering of read and write operations is not specified,
21019 this would require to always download the VA surface on _map(), then
21020 commit the temporary VA image back to the VA surface on _unmap().
21021 Some SW decoding plug-in elements still use R/W mappings though.
21022 https://bugzilla.gnome.org/show_bug.cgi?id=733242
21024 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21026 * gst/vaapi/gstvaapivideomemory.c:
21027 vaapivideomemory: minor code clean-ups.
21028 Fix error messages introduced in the previous commit for the _map()
21029 imaplementation. Also use the new get_image_data() helper function
21030 to determine the base pixels data buffer from a GstVaapiImage when
21031 updating the video info structure from it.
21033 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21035 * gst/vaapi/gstvaapivideomemory.c:
21036 * gst/vaapi/gstvaapivideomemory.h:
21037 vaapivideomemory: add support for raw pixels mappings.
21038 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
21039 cases where the buffer pool is allocated without VideoMeta API, thus
21040 individual planes cannot be mapped.
21041 This is initial support for Firefox >= 30.
21042 https://bugzilla.gnome.org/show_bug.cgi?id=731886
21044 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21046 * gst/vaapi/gstvaapivideomemory.c:
21047 vaapivideomemory: fix determination of the surface pool format.
21048 While creating the vaapi video allocator, make sure the associated
21049 surface pool has correct format instead of defaulting to NV12 video
21050 format even though there is no direct rendering support.
21051 https://bugzilla.gnome.org/show_bug.cgi?id=732691
21053 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21055 * gst/vaapi/gstvaapivideomemory.c:
21056 vaapivideomemory: fix association of surface to proxy.
21057 Make sure to always update the VA surface pointer whenever the proxy
21058 changes. This used to only work when the VA surface is written to, in
21059 interop with SW element ("upload" feature), and this now fixes cases
21060 when the VA surface is needed for reading, in interop with SW element
21061 ("download" feature).
21063 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21065 * gst/vaapi/gstvaapidecode.c:
21066 * gst/vaapi/gstvaapipluginutil.c:
21067 * gst/vaapi/gstvaapivideomemory.c:
21068 plugins: expose I420 format for interop with SW elements.
21069 Always expose I420 format by default when the VA surface could be
21070 mapped for interoperability with non harware accelerated elements.
21071 However, the default behaviour remains the auto-plugging of vaapi
21072 elements, down to the sink.
21073 Side effect: "direct-rendering" mode is also disabled most of the
21074 times as plain memcpy() from uncached speculative write combining
21075 memory is not going to be efficient enough.
21077 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21079 * gst/vaapi/gstvaapidecode.c:
21080 * gst/vaapi/gstvaapivideomemory.c:
21081 plugins: allow download capability to vaapidecode element.
21082 Fix support for VA surface download capability in vaapidecode element
21083 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
21084 but also the libva-intel-driver while performing hardware accelerated
21085 conversions from the native VA surface format (NV12) to the desired
21086 output VA image format.
21087 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
21088 https://bugzilla.gnome.org/show_bug.cgi?id=733243
21090 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
21092 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21093 decoder: mpeg4: fix picture decoder return value for skipped frames.
21094 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
21095 when a frame should be skipped, so the stream processing is not stalled.
21096 https://bugzilla.gnome.org/show_bug.cgi?id=733324
21098 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
21100 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21101 decoder: mpeg2: respect any input PTS provided for a frame.
21102 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
21103 frame timestamps within a GOP, even when it's been fed input PTS for
21105 That leads to incorrect output timestamps in some situations - for example
21106 live playback where input timestamps have been scaled based on arrival time
21107 from the network and don't exactly match the framerate.
21108 https://bugzilla.gnome.org/show_bug.cgi?id=732719
21110 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21112 * gst-libs/gst/vaapi/gstvaapiobject.c:
21113 GstVaapiObject: make gst_vaapi_object_new() more robust.
21114 Forbid GstVaapiObject to be created without an associated klass spec.
21115 It is mandatory that the subclass implements an adequate .finalize()
21116 hook, so it shall provide a valid GstVaapiObjectClass.
21117 https://bugzilla.gnome.org/show_bug.cgi?id=722757
21118 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
21119 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21121 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21123 * gst-libs/gst/vaapi/gstvaapiobject.c:
21124 GstVaapiObject: initialize the derived object data with init() hook.
21125 Call the subclass .init() function in gst_vaapi_object_new(), if
21126 needed. The default behaviour is to zero initialize the subclass
21127 object data, then the .init() function can be used to initialize
21128 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
21129 Also fix the gst_vaapi_object_new() description, which was merely
21130 copied from GstVaapiMiniObject.
21131 https://bugzilla.gnome.org/show_bug.cgi?id=722757
21132 [changed to always zero initialize the subclass]
21133 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21135 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
21137 * gst/vaapi/gstvaapidecode.c:
21138 vaapidecode: make decoder work with playbin
21139 When playbin/decodebin builds the pipeline, it puts decoders and sinks
21140 into different bins and forwards the queries from bins to bins. So in
21141 the initials steps the pipeline is built iteratively by playbin and
21144 [filesrc] -> [typefind]
21145 [filesrc] -> [typefind] -> [demuxer]
21146 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
21147 At this point the decoder is asked for its SRC caps and it will make a
21148 choice based on what gst_pad_peer_query_caps() returns. The problem is
21149 that the caps returns at that point includes caps features like ANY,
21150 essentially because playbin can plug in additional elements like
21151 videoscale, videoconv or deinterlace.
21152 This patch adds a another call to
21153 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
21154 allocation, to make sure we asks the downstream elements when the
21155 entire pipeline has been built.
21156 https://bugzilla.gnome.org/show_bug.cgi?id=731645
21158 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21160 * gst/vaapi/gstvaapipostproc.c:
21161 vaapipostproc: don't let tmp_rect go out of scope.
21162 A compiler change showed me that tmp_rect went out of scope before
21163 it was used. Move it to the beginning of the function instead.
21164 https://bugzilla.gnome.org/show_bug.cgi?id=726363
21165 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21166 [added guards for GStreamer 0.10 builds]
21167 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21169 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21174 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21178 Drop references to deprecated plugins (vaapiupload, vaapidownload),
21179 mention that support for GStreamer 0.10 is deprecated, make overview
21180 more descriptive in certain aspects.
21182 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21187 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21191 build: mention that support for GStreamer 0.10 is deprecated.
21193 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21196 * gst/vaapi/gstvaapidecode.c:
21197 build: fix for GStreamer 0.10.
21199 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21201 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21202 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
21203 * patches/videoparsers/series.frag:
21204 build: fix for GStreamer 1.0.x.
21206 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21208 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21209 decoder: h264: detect incorrectly paired fields in frames.
21210 When a DPB flush is required, e.g. at a natural and of stream or issued
21211 explicitly through an IDR, try to detect any frame left in the DPB that
21212 is interlaced but does not contain two decoded fields. In that case, mark
21213 the picture as having a single field only.
21214 This avoids a hang while decoding tv_cut.mkv.
21216 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21218 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21219 decoder: h264: simplify the DPB output process.
21220 Simplify the dpb_output() function to exclusively rely on the frame store
21221 buffer to output, since this is now always provided. Besides, also fix
21222 cases where split fields would not be displayed.
21223 This is a regression from f48b1e0.
21225 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21227 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21228 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21229 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21230 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
21231 * patches/videoparsers/series.frag:
21232 h264parse: drop patches merged upstream.
21233 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
21234 0005-h264parse-introduce-new-state-tracking-variables.patch
21235 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
21236 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
21238 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21240 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21241 decoder: h264: fix memory leak in PPS.
21242 Cope with latest changes from codecparsers/h264. It is now required
21243 to explicitly clear the GstH264PPS structure as it could contain
21244 additional allocations (slice_group_ids).
21246 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21248 * ext/codecparsers:
21249 codecparsers: update to gst-vaapi-branch commit 2d53b69.
21250 c4ace00 h264parse: fix collection of access units to preserve config headers
21251 0f9f7c9 h264parse: improve conditions for skipping NAL units
21252 9ffb25c h264parse: introduce new state tracking variables
21253 64955d3 h264parse: fix and optimize NAL collection function
21254 13cd2a3 h264: clarifications and documentation fixes
21255 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
21256 18f0de0 h264: fix memory leak in GstH264PPS
21257 fdcb54c h264: fix typo in GstH264VUIParams description
21258 fd4dae9 vp8: move up built-in range decoder private data
21260 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21262 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21263 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21264 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
21265 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
21266 decoder: propagate MVC metadata ("view-id", head of multiview set).
21267 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
21268 bundle", and really expresses the first view component of a multi
21269 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
21271 Likewise, new API is exposed to retrieve the associated "view-id".
21273 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21275 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21276 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21277 decoder: propagate "one-field" flags.
21278 Allow decoders to set the "one-field" attribute when the decoded frame
21279 genuinely has a single field, or if the second field was mis-decoded but
21280 we still want to display the first field.
21282 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21284 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21285 decoder: output decoded frames only once.
21286 Make sure to output the decoded picture, and push the associated
21287 GstVideoCodecFrame, only once. The frame fully represents what needs
21288 to be output, included for interlaced streams. Otherwise, the base
21289 GstVideoDecoder class would release the frame twice.
21290 Anyway, the general process is to output decoded frames only when
21291 they are complete. By complete, we mean a full frame was decoded or
21292 both fields of a frame were decoded.
21294 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21296 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21297 decoder: h264: decode current picture earlier.
21298 Slightly optimize decoding process by submitting the current VA surface
21299 for decoding earlier to the hardware, and perform the reference picture
21300 marking process and DPB update process afterwards.
21301 This is a minor optimization to let the video decode engine kick in work
21302 earlier, thus improving parallel resources utilization.
21304 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21306 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21307 decoder: h264: fix output of second field when first field is not in DPB.
21308 Fix decoding of interlaced streams where a first field (e.g. B-slice)
21309 was immediately output and the current decoded field is to be paired
21310 with that former frame, which is no longer in DPB.
21311 https://bugzilla.gnome.org/show_bug.cgi?id=701340
21313 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21315 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21316 decoder: h264: slightly optimize the process to detect new pictures.
21317 Optimize the process to detect new pictures or start of new access
21318 units by checking if the previous NAL unit was the end of a picture,
21319 or the end of the previous access unit.
21321 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21323 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21324 decoder: h264: handle access unit ("au") optimization.
21325 Optimize parsing when buffers are supplied with access unit alignment.
21326 This helps determining faster when the end of an access unit is reached.
21328 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21330 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21331 decoder: h264: fix tracking of DPB size changes.
21332 Add support for MVC streams with multiple SPS and subset SPS headers
21333 emitted regularly, e.g. at around every I-frame. Track the maximum
21334 number of views in ensure_context() and really reset the DPB size to
21335 the expected value, always. i.e. even if it decreased. dpb_reset()
21336 only cares of ensuring the DPB allocation.
21338 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21340 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21341 decoder: h264: fix the DPB compaction process.
21342 Fix the compaction process when the DPB is cleared for a specific
21343 view, i.e. fix the process of filling in the holes resulting from
21344 removing frame buffers matching the current picture.
21346 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21348 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21349 encoder: h264: generate new SPS only when codec config changed.
21350 It is not necessary to periodically send SPS or subset SPS headers.
21351 This is up to the upper layer (e.g. transport layer) to decide on
21352 if/how to periodically submit those. For now, only generate new SPS
21353 or subset SPS headers when the codec config changed.
21354 Note: the upper layer could readily determine the config headers
21355 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
21356 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21357 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21359 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21361 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21362 encoder: h264: track encoder config changes.
21363 Track and report when encoder configuration changed. For now, this covers
21364 resolution, profile/level and bitrate changes.
21366 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21368 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21369 encoder: h264: add pixel-aspect-ratio to VUI parameters.
21370 Report sample aspect ratio (SAR) as present, and make it match what
21371 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
21372 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
21374 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21376 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21377 encoder: h264: fix number of anchor and non-anchor reference pictures.
21378 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
21379 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
21382 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21384 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21385 encoder: h264: fix timing_info_present_flag value in subset SPS.
21386 When the seq_parameter_set_data() syntax structure is present in a subset
21387 sequence parameter set and vui_parameters_present_flag is equal to 1, then
21388 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
21390 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21392 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21393 encoder: h264: add cpbBrNalFactor values for MVC profiles.
21395 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21397 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21398 h264parse: fix detection of access unit boundaries for MVC.
21399 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
21400 this function is used to determine access unit boundaries, i.e. that
21401 is the key function for alignment=au output format generation.
21403 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21405 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
21406 * patches/videoparsers/series.frag:
21407 h264parse: fix collection of access units to preserve config headers.
21408 Always use a GstAdapter when collecting access units (alignment="au")
21409 in either byte-stream or avcC format. This is required to properly
21410 preserve config headers like SPS and PPS when invalid or broken NAL
21411 units are subsequently parsed.
21412 More precisely, this fixes scenario like:
21413 <SPS> <PPS> <invalid-NAL> <slice>
21414 where we used to reset the output frame buffer when an invalid or
21415 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
21416 preventing the next slice unit to be decoded, should this also
21417 represent any valid data.
21418 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21420 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21422 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21423 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21424 * patches/videoparsers/series.frag:
21425 h264parse: improve conditions for skipping NAL units.
21426 Carefully track cases when skipping broken or invalid NAL units is
21427 necessary. In particular, always allow NAL units to be processed
21428 and let that gst_h264_parse_process_nal() function decide on whether
21429 the current NAL needs to be dropped or not.
21430 This fixes parsing of streams with SEI NAL buffering_period() message
21431 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
21432 SPS NAL unit, among other cases too.
21433 Practical examples from the H.264 AVC conformance suite include
21434 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
21435 when parsing in stream-format=byte-stream,alignment=au mode.
21436 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21438 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21440 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21441 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21442 * patches/videoparsers/series.frag:
21443 h264parse: introduce new state tracking variables.
21444 Improve parser state tracking by introducing new flags reflecting
21445 it: "got-sps", "got-pps" and "got-slice". This is an addition for
21446 robustness purposes.
21447 Older have_sps and have_pps variables are kept because they have
21448 a different meaning. i.e. they are used for deciding on when to
21449 submit updated caps or not, and rather mean "have new SPS/PPS to
21452 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21454 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
21455 * patches/videoparsers/series.frag:
21456 h264parse: default to byte-stream/nalu format (Annex B).
21457 Always default to stream-format=byte-stream,alignment=nalu if avcC
21458 format was not detected. This is the natural stream format specified
21459 in the standard (Annex.B): a series of NAL units prefixed with the
21461 https://bugzilla.gnome.org/show_bug.cgi?id=732167
21463 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21465 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21466 * patches/videoparsers/series.frag:
21467 h264parse: fix and optimize NAL collection function.
21468 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
21469 NAL unit. We don't want to parse the full NAL unit, but only the
21470 header bytes and possibly the first RBSP byte for identifying the
21471 first_mb_in_slice syntax element.
21472 Also fix check for failure when returning from that function. The
21473 only success condition for that is GST_H264_PARSER_OK, so use it.
21474 https://bugzilla.gnome.org/show_bug.cgi?id=732154
21476 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21478 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21479 encoder: h264: fix NAL unit types in packed headers.
21480 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
21481 slice header (nal_unit_type = 1 or 5) only for the base view. In non
21482 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
21483 is required, with an appropriate nal_unit_header_mvc_extension() in
21484 the NAL header bytes.
21485 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21487 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21489 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21490 encoder: h264: add missing field in packed Subset SPS header.
21491 Write the missing num_level_values_signalled_minus1 syntax element
21492 into the packed header for subset sequence parameter set.
21493 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21495 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21497 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21498 decoder: h264: fix marking of non-reference picture into DPB.
21499 Fix search for a picture in the DPB that has a lower POC value than
21500 the current picture. The dpb_find_lowest_poc() function will return
21501 a picture with the lowest POC in DPB and that is marked as "needed
21502 for output", but an additional check against the actual POC value
21503 of the current picture is needed.
21504 This is a regression from 1c46990.
21505 https://bugzilla.gnome.org/show_bug.cgi?id=732130
21507 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21509 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21510 decoder: h264: fix DPB clear when no decoding actually started.
21511 Fix dpb_clear() to clear previous frame buffers only if they actually
21512 exist to begin with. If the decoder bailed out early, e.g. when it
21513 does not support a specific profile, that array of previous frames
21514 might not be allocated beforehand.
21516 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21518 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21519 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21520 * gst/vaapi/gstvaapidecode.c:
21521 decoder: h264: add support for NALU "alignment" optimization.
21522 We can avoid scanning for start codes again if the bitstream is fed
21523 in NALU chunks. Currently, we always scan for start codes, and keep
21524 track of remaining bits in a GstAdapter, even if, in practice, we
21525 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
21527 https://bugzilla.gnome.org/show_bug.cgi?id=723284
21528 [use gst_adapter_available_fast() to determine the top buffer size]
21529 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21531 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21533 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21534 decoder: h264: fix caps to report interlace-mode accordingly.
21535 The `vaapipostproc' element could never determine if the H.264 stream
21536 was interlaced, and thus always assumed it to be progressive. Fix the
21537 H.264 decoder to report interlace-mode accordingly, thus allowing the
21538 vaapipostproc element to automatically enable deinterlacing.
21540 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21542 * gst/vaapi/gstvaapipostproc.c:
21543 vaapipostproc: don't crash with dynamic framerate (0/1).
21544 Avoid reaching an assert if dynamic framerates (0/1) are used. One
21545 way to solve this problem is to just stick field_duration to zero.
21546 However, this means that, in presence of interlaced streams, the
21547 very first field will never be displayed if precise presentation
21548 timestamps are honoured.
21549 https://bugzilla.gnome.org/show_bug.cgi?id=729604
21551 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21553 * gst/vaapi/gstvaapipostproc.c:
21554 vaapipostproc: create filter surface pool if it does not exist yet.
21555 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
21556 recreating filter_pool. Unfortunately, this also meant it didn't create
21557 it if it did not exist.
21558 Fix it to always create the buffer pool if it does not exist.
21559 https://bugzilla.gnome.org/show_bug.cgi?id=723834
21560 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21562 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
21564 * gst/vaapi/gstvaapipostproc.c:
21565 vaapipostproc: reset deinterlacer state when there is a discontinuity.
21566 Reset deinterlacer state, i.e. past reference frames used for advanced
21567 deinterlacing, when there is some discontinuity detected in the course
21568 of processing source buffers.
21569 This fixes support for advanced deinterlacing when a seek occurred.
21570 https://bugzilla.gnome.org/show_bug.cgi?id=720375
21571 [fixed type of pts_diff variable, fetch previous buffer PTS from the
21572 history buffer, reduce heuristic for detecting discontinuity]
21573 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21575 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21577 * gst/vaapi/gstvaapipostproc.c:
21578 vaapipostproc: add support for crop regions in VPP mode.
21579 Apply video cropping regions stored in GstVideoCropMeta, or in older
21580 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
21581 the crop meta are already propagated to the output buffers.
21582 https://bugzilla.gnome.org/show_bug.cgi?id=720730
21584 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21586 * gst/vaapi/gstvaapipostproc.c:
21587 vaapipostproc: make deinterlace-mode behave as expected.
21588 deinterlace-mode didn't behave in the way you'd expect if you have
21589 past experience of the deinterlace element. There were two bugs:
21590 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
21591 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
21592 Fix these up, and add assertions and error messages to detect cases that
21594 https://bugzilla.gnome.org/show_bug.cgi?id=726361
21595 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21596 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21598 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21600 * gst/vaapi/gstvaapidecode.c:
21601 vaapidecode: do not discard video info props when the format changed.
21602 gst_video_info_set_format() does not preserve video info properties. In
21603 order to keep important information in the caps such as interlace mode,
21604 framerate, pixel aspect ratio, ... we need to manually copy back those
21605 properties after setting the new video format.
21606 https://bugzilla.gnome.org/show_bug.cgi?id=722276
21608 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
21610 * gst/vaapi/gstvaapidecode.c:
21611 vaapidecode: plug a memory leak.
21612 It can happen that there is a pool provided that does not advertise
21613 the vappivideometa. We should unref that pool before using our own.
21614 Discovered with vaapidecode ! {glimagesink,cluttersink}
21615 https://bugzilla.gnome.org/show_bug.cgi?id=724957
21616 [fixed compilation by adding the missing semi-colon]
21617 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21619 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21621 * gst/vaapi/gstvaapidecode.c:
21622 vaapidecode: parse source data until a frame is obtained.
21623 Parse any pending data until a complete frame is obtained. This is a
21624 memory optimization to avoid expansion of video packets stuffed into
21625 the GstAdapter, and a fix to EOS condition to detect there is actually
21626 pending data that needs to be decoded, and subsequently output.
21627 https://bugzilla.gnome.org/show_bug.cgi?id=731831
21629 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21631 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21632 encoder: h264: fix multiple slices support in packed headers mode.
21633 Handle packedi slice headers and packed raw data on a per-slice basis,
21634 which is necessary for multi slice encoding.
21636 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21638 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21639 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21640 encoder: add infrastructure for per-slice handling of packed headers.
21641 The packed slice header and packed raw data need to be paired with
21642 the submission of VAEncSliceHeaderParameterBuffer. So handle them
21643 on a per-slice basis insted of a per-picture basis.
21644 [removed useless initializer]
21645 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21647 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21649 * gst/vaapi/gstvaapisink.c:
21650 vaapisink: fix initialization with "drm" display type.
21651 Force early initializatin of the GstVaapiDisplay so that to make sure
21652 that the sink element display object is presented first to upstream
21653 elements, as it will be correctly featuring the requested display type
21655 Otherwise, we might end up in situations where a VA/X11 display is
21656 initialized in vaapidecode, then we try VA/DRM display in vaapisink
21657 (as requested by the "display" property), but this would cause a failure
21658 because we cannot acquire a DRM display that was previously acquired
21659 through another backend (e.g. VA/X11).
21661 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21663 * gst/vaapi/gstvaapipluginbase.c:
21664 plugins: fix initialization with foreign context.
21665 When a new display is settled through GstElement::set_context() (>= 1.2),
21666 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
21667 associated display type.
21669 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21674 * gst/vaapi/Makefile.am:
21675 * gst/vaapi/gstvaapiparse.c:
21676 * gst/vaapi/gstvaapiparse.h:
21677 * patches/Makefile.am:
21678 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
21679 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21680 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21681 * patches/videoparsers/Makefile.am:
21682 * patches/videoparsers/series.frag:
21683 plugins: add built-in video parsers as "vaapiparse" element.
21684 The built-in video parsers elements are built into a single DSO named
21685 libgstvaapi_parse.so. The various video parsers could be accessed as
21687 For now, this only includes a modified version of h264parse so that to
21688 support H.264 MVC encoded streams.
21690 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21692 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21693 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
21694 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
21695 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
21697 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21699 * ext/codecparsers:
21700 codecparsers: update to gst-vaapi-branch commit d6325ac.
21701 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
21702 d2f965a h264parse: set field_pic_flag when parsing a slice header
21703 24c15b8 Import h264parse
21704 a9283e5 bytereader: Use concistant derefence method
21705 a8252c6 bytereader: Use pointer instead of index access
21706 b1bebfc Import GstBitReader and GstByteReader
21707 2f58788 h264: recognize SVC NAL units
21708 4335da5 h264: fix SPS copy code for MVC
21709 cf9b6dc h264: fix quantization matrix conversion routine names
21710 b11ce2a h264: add gst_h264_video_calculate_framerate()
21711 126dc6f add C++ guards for MPEG-4 and VP8 parsers
21713 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21715 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21716 decoder: h264: factor out DPB pruning for MVC.
21717 Factor out the removal process of unused inter-view only reference
21718 pictures from the DPB, prior to the possible insertion of the current
21720 Ideally, the compiler could still opt for generating two loops. But
21721 at least, the code is now clearer for maintenance.
21723 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21725 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21726 decoder: h264: clean-ups.
21727 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
21728 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
21730 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21732 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21733 decoder: h264: improve pruning of unused MVC inter-view frames.
21734 Improve process for the removal of pictures from DPB before possible
21735 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
21736 reference components. In particular, handle cases where picture to be
21737 inserted is not the last one of the access unit and if it was already
21738 output and is no longer marked as used for reference, including for
21739 decoding next view components within the same access unit.
21741 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21743 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21744 decoder: h264: improve DPB bumping process for MVC.
21745 While invoking the DPB bumping process in presence of many views,
21746 it could be necessary to output previous pictures that are ready,
21747 in a whole. i.e. emitting all view components from the very first
21748 view order index zero to the very last one in its original access
21749 unit; and not starting from the view order index of the picture
21750 that caused the DPB bumping process to be invoked.
21751 As a reminder, the maximum number of frames in DPB for MultiView
21752 High profile with more than 2 views is not necessarily a multiple
21753 of the number of views.
21754 This fixes decoding of MVCNV-4.264.
21756 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21758 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21759 decoder: h264: fix inter-view references array growth.
21760 Let the utility layer handle dynamic growth of the inter-view pictures
21761 array. By definition, setting a new size to the array will effectively
21762 grow the array, but would also fill in the newly created elements with
21763 empty entries (NULL), thus also increasing the reported length, which
21766 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21768 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21769 decoder: h264: reduce ReferenceFrames entries to the essential set.
21770 When decoding Multiview High profile streams with a large number of
21771 views, it is not possible to make the VAPictureParameterBufferH264.
21772 ReferenceFrames[] array hold the complete DPB, with all possibly
21773 active pictures to be used for inter-view prediction in the current
21775 So reduce the scope of the ReferenceFrames[] array to only include
21776 the set of reference pictures that are going to be used for decoding
21777 the current picture. Basically, this is a union of all RefPicListX[]
21778 array, for all slices constituting the decoded picture.
21780 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21782 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21783 decoder: h264: fix MVC inter-view prediction process.
21784 The inter-view reference components and inter-view only reference
21785 components that are included in the reference picture lists shall
21786 be considered as not being marked as "used for short-term reference"
21787 or "used for long-term reference". This means that reference flags
21788 should all be removed from VAPictureH264.flags.
21789 This fixes decoding of MVCNV-2.264.
21791 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21793 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21794 decoder: h264: fix detection of profile changes for MVC.
21795 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
21796 be careful to detect profiles changes and not reset the underlying
21797 VA context erroneously. In MVC situations, we could indeed get a
21798 profile_idc change for every SPS that gets activated, alternatively
21799 (base-view -> non-base view -> base-view, etc.).
21800 An improved fix would be to characterize the exact profile to use
21801 once and for all when SPS NAL units are parsed. This would also
21802 allow for fallbacks to a base-view decoding only mode.
21804 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21806 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21807 encoder: h264: drop extraneous definitions.
21808 Re-use definitions from the codecparser headers instead of duplicating
21809 them here again. That covers NALU definitions and slice types.
21811 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21813 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21814 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
21815 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21817 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21819 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21820 encoder: h264: don't allow CABAC with Extended profile.
21821 The H.264 specification does not support CABAC entropy coding for the
21823 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21825 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21827 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21828 encoder: h264: use packed headers mode for MVC encoding.
21829 Exclusively use VA drivers that support raw packed headers for encoding.
21830 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
21831 provides for better compatibility accross the various VA drivers and HW
21832 generations since no particular API is needed beyond what readily exists.
21834 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21836 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21837 encoder: h264: add support for packed slice headers.
21838 https://bugzilla.gnome.org/show_bug.cgi?id=722905
21840 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21842 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21843 encoder: h264: store subset sps to generate the codec-data
21844 Store the SubsetSPS nal unit which we need for MVC specific
21845 codec_data generation.
21847 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21849 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21850 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
21851 Since we are encoding each view independently from each other, we
21852 need a higher number of pre-allocated surfaces to be used as the
21853 reconstructed frames. For Stereo High profile encoding, this means
21854 to effectively double the number of frames to be stored in the DPB.
21856 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21858 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21859 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21860 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21861 * gst/vaapi/gstvaapiencode_h264.c:
21862 encoder: h264: add initial support for H.264 Stereo High profile.
21863 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
21864 for non-base-view streams encoding, and the usual SPS, PPS and Slice
21865 NALs for base-view encoding.
21866 The H.264 Stereo High profile encoding mode will be turned on when the
21867 "num-views" parameter is set to 2. The source (raw) YUV frames will be
21868 considered as Left/Right view, alternatively.
21869 Each of the two views has its own frames reordering pool and reference
21870 frames list management system. Inter-view references are not supported
21871 yet, so the views are encoded independently from each other.
21872 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21873 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
21874 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21876 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21878 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21879 encoder: h264: wrap pools for refs and frames reordering.
21880 Create structures to maintain the reference frames list (RefPool) and
21881 frames reordering (ReorderPool) logic.
21882 This is a prerequisite for H.264 MVC support.
21883 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21885 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21887 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21888 encoder: h264: add provisional support for subset SPS headers.
21889 Add provisions to write subset SPS headers to the bitstream in view
21890 to supporting the H.264 MVC specification.
21891 This assumes the libva "staging" branch is in use.
21892 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21894 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21896 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21897 * gst-libs/gst/vaapi/gstvaapiutils.c:
21898 utils: add H.264 MVC profiles.
21899 Add "MultiView High" and "Stereo High" definitions.
21900 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21901 [require VA-API >= 0.35.2 for MVC profiles]
21902 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21904 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21906 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21907 * gst-libs/gst/vaapi/gstvaapiutils.c:
21908 utils: only enable VP8 profiles for newer VA-API versions.
21909 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
21910 involving VP8 codec on earlier versions of the API.
21912 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21914 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21915 decoder: h264: compute view ids only once per slice.
21916 Optimize lookups of view ids / view order indices by caching the result
21917 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
21918 terribly simplifies is_new_access_unit() and find_first_field() functions.
21920 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21922 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21923 decoder: h264: add support for MVC interlaced streams.
21924 Fix support for MVC Stereo High profile streams with interlaced frames.
21925 Also improve the detection logic of the first field.
21927 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21929 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21930 decoder: h264: add MVC profiles compatibility logic.
21931 Add safe fallbacks for MVC profiles:
21932 - all MultiView High profile streams with 2 views at most can be decoded
21933 with a Stereo High profile compliant decoder ;
21934 - all Stereo High profile streams with only progressive views can be
21935 decoded with a MultiView High profile compliant decoder ;
21936 - all drivers that support slice-level decoding could normally support
21937 MVC profiles when the DPB holds at most 16 frames.
21939 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21941 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21942 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21943 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21944 decoder: h264: add initial support for MVC.
21945 https://bugzilla.gnome.org/show_bug.cgi?id=721772
21947 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21949 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21950 decoder: h264: dynamically allocate the DPB.
21951 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
21952 for supporting the MVC allocation requirements.
21954 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21956 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21957 decoder: h264: fix detection of access unit boundaries.
21958 In order to have a stricter conforming implementation, we need to carefully
21959 detect access unit boundaries. Additional operations could be necessary to
21960 perform at those boundaries.
21962 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21964 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21965 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
21966 Detect the first VCL NAL unit of a picture for MVC, based on the
21967 view_id as per H.7.4.1.2.4. Note that we only need to detect new
21969 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21971 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21973 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21974 decoder: h264: properly handle Prefix NAL units.
21975 Always cache the previous NAL unit so that we could check whether
21976 there is a Prefix NAL unit immediately preceding the current slice
21977 or IDR NAL unit. In that case, the NAL unit metadata is copied into
21978 the current NAL unit. Otherwise, some default values are inferred,
21979 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
21980 [infer default values for slice if previous NAL was not a Prefix]
21981 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21983 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
21985 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21986 decoder: h264: add support for MVC base views.
21987 Allow decoding for base views of MVC encoded streams. For now, just skip
21988 the slice extension and prefix NAL units, and skip non-base view frames.
21989 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
21990 [fixed memory leak, improved check for MVC NAL units]
21991 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21993 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21995 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21996 decoder: h264: simplify storage of decoded picture into DPB.
21997 Factor out process by which the decoded picture with the lowest POC
21998 is found, and possibly output. Likewise, the storage and marking of
21999 a reference decoded, or non-reference decoded picture, into the DPB
22000 could also be simplified as they mostly share the same operations.
22002 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22004 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22005 decoder: h264: minor clean-ups.
22006 Make init_picture_ref_lists() more consistent with other functions
22007 related to the reference marking process by supplying the current
22008 picture as argument.
22010 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22012 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22013 * gst-libs/gst/vaapi/gstvaapidisplay.h:
22014 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22015 display: add utility function to query VA driver name.
22016 Add gst_vaapi_display_get_vendor_string() helper function to query
22017 the underlying VA driver name. The display object owns the resulting
22018 string, so it shall not be deallocated.
22019 That function is thread-safe. It could be used for debugging purposes,
22022 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22024 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22025 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
22026 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22027 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
22028 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
22029 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
22030 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22031 display: make cache maintenance really MT-safe.
22032 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
22033 environments. This makes sure the display cache is also consistent
22034 during the whole display creation process. In the former implementation,
22035 there were risks that display cache got updated in another thread.
22037 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22039 * gst-libs/gst/vaapi/gstvaapicontext.c:
22040 context: allow dynamic growth of VA surfaces pool.
22041 Add support for dynamic growth of the VA surfaces pool. For decoding,
22042 this implies the recreation of the underlying VA context, as per the
22043 requirement from VA-API. Besides, only increases are supported, not
22046 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22048 * gst-libs/gst/vaapi/gstvaapicontext.c:
22049 context: reset VA context if VA surfaces set changed.
22050 It is a requirement from VA-API specification that the VA context got
22051 from vaCreateContext(), for decoding purposes, binds the supplied set
22052 of VA surfaces. This means that if the set of VA surfaces is to be
22053 changed for the current decode session, then the VA context needs to
22054 be recreated with the new set of VA surfaces.
22056 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22058 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22059 decoder: h264: fix assignment of LongTermFrameIdx.
22060 Complement fix committed as e95a42e.
22061 The H.264 AVC standard has to say: if the field is part of a reference
22062 frame or a complementary reference field pair, and the other field of
22063 the same reference frame or complementary reference field pair is also
22064 marked as "used for long-term reference", the reference frame or
22065 complementary reference field pair is also marked as "used for long-term
22066 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
22067 This fixes decoding of MR9_BT_B in strict mode.
22068 https://bugs.freedesktop.org/show_bug.cgi?id=64624
22069 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22071 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22073 * gst-libs/gst/vaapi/gstvaapicontext.c:
22074 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22075 * gst-libs/gst/vaapi/gstvaapiutils.c:
22076 * gst-libs/gst/vaapi/gstvaapiutils.h:
22077 decoder: h264: properly support grayscale formats.
22078 Request the correct chroma format for decoding grayscale streams.
22079 i.e. make lookups of the VA chroma format more generic, thus possibly
22080 supporting more formats in the future.
22081 This means that, if a VA driver doesn't support grayscale formats,
22082 it is now going to fail. We cannot safely assume that maybe grayscale
22083 was implemented on top of some YUV 4:2:0 with the chroma components
22086 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22088 * gst-libs/gst/vaapi/gstvaapifilter.c:
22089 * gst-libs/gst/vaapi/gstvaapifilter.h:
22090 * tests/test-filter.c:
22091 build: fix source file modes.
22092 A few source files are marked executable in error - fix them
22093 https://bugzilla.gnome.org/show_bug.cgi?id=723748
22094 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22096 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22099 * gst-libs/gst/vaapi/Makefile.am:
22100 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22101 * gst/vaapi/gstvaapidecode.c:
22102 build: fix conditional compilation of VP8 decoder.
22103 https://bugzilla.gnome.org/show_bug.cgi?id=729170
22104 [added check for VASliceParameterBufferBase fields]
22105 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22107 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22109 * gst-libs/gst/codecparsers/Makefile.am:
22110 build: fix make dist for codecparsers.
22112 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22114 * ext/codecparsers:
22115 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
22116 h264: fix parsing of slice groups for map type = 2
22118 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22120 * ext/codecparsers:
22121 codecparsers: update to gst-vaapi branch commit f44edfc.
22122 h264: fix derivation of default scaling lists
22124 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
22126 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22127 decoder: h264: fix long-term reference picture marking process.
22128 Fix reference picture marking process with memory_management_control_op
22129 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
22130 picture, or the current picture.
22131 This fixes decoding of FRExt_MMCO4_Sony_B.
22132 https://bugs.freedesktop.org/show_bug.cgi?id=64624
22133 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22134 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
22135 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22137 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22139 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22140 decoder: h264: fix initialization of RefPicLists for multiple slices.
22141 The initialization of reference picture lists (8.2.4.2) applies to all
22142 slices. So, the RefPicList0/1 lists need to be constructed prior to
22143 each slice submission to the HW decoder.
22144 This fixes decoding of video sequences where frames are encoded with
22145 multiple slices of different types, e.g. 4 slices in this order I, P,
22146 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
22147 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22149 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
22151 * ext/codecparsers:
22152 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22153 decoder: h264: skip SPS extension and auxiliary slice NALs.
22154 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
22155 are present in a video, decoders shall perform the (optional) decoding
22156 process specified for these NAL units or shall ignore them (7.4.1).
22157 Implement option 2 (skip) for now, as alpha composition is not
22158 supported yet during the decoding process.
22159 This fixes decoding of the primary coded video in alphaconformanceG.
22160 https://bugzilla.gnome.org/show_bug.cgi?id=703928
22161 https://bugzilla.gnome.org/show_bug.cgi?id=728869
22162 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22163 [skip NAL units earlier, i.e. at parsing time]
22164 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22166 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
22168 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22169 decoder: h264: fix slice data bit offset with MVC NAL units.
22170 When MVC slice NAL units (coded slice extension and prefix NAL) are
22171 present, the number of NAL header bytes is 3, not 1 as usual.
22172 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
22173 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22175 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22177 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22178 decoder: h264: fix activation of picture and sequence parameters.
22179 At the time the first VCL NAL unit of a primary coded picture is found,
22180 and if that NAL unit was parsed to be an SPS or PPS, then the entries
22181 in the parser may have been overriden. This means that, when the picture
22182 is to be decoded, slice_hdr->pps could point to an invalid (the next)
22184 So, one way to solve this problem is to not use the parser PPS and
22185 SPS info but rather maintain our own activation chain in the decoder.
22186 https://bugzilla.gnome.org/show_bug.cgi?id=724519
22187 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22189 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22191 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22192 decoder: h264: retain SEI messages until the end of frame.
22193 Retain the SEI messages that were parsed from the access unit until we
22194 have completely decoded the current frame. This is done so that we can
22195 peek at that data whenever necessary during decoding. e.g. for exposing
22196 3D stereoscopic information at a later stage.
22198 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22200 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22201 decoder: h264: add support for grayscale encoded clips.
22202 Fix support for grayscale encoded video clips, and possibly others if
22203 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
22204 the decision that a surface with the desired chroma format is not
22205 supported to the actual VA driver implementation.
22206 https://bugzilla.gnome.org/show_bug.cgi?id=728144
22208 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22210 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22211 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
22212 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22213 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22214 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22215 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22216 decoder: default to YUV 4:2:0 VA surfaces.
22217 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
22218 make sure all codecs use YUV 4:2:0 output format for now, by default.
22220 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22222 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22223 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22224 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22225 decoder: re-indent GstVaapiDecoder base object.
22227 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22229 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22230 encoder: derive chroma type from video format.
22231 Cope with previous VA context change to derive the correct surface chroma
22232 type from the input video format.
22234 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22236 * gst-libs/gst/vaapi/gstvaapicontext.c:
22237 * gst-libs/gst/vaapi/gstvaapicontext.h:
22238 context: add support for non-YUV 4:2:0 formats.
22239 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
22240 for the upper layer to specify the desired chroma type. If the chroma
22241 type field is not set (or yields zero), then YUV 4:2:0 format is used
22244 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22246 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22247 vp8: fix per-segment deblocking filter level in relative mode.
22248 Fix possible bug when a per-segment deblocking filter level value
22249 needs to be set in non-absolute mode, i.e. when the loop filter update
22250 value is negative in delta mode.
22251 Also clamp the resulting filter level value to 0..63 range.
22253 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22255 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22256 vp8: fix check for disabling the loop filter (again).
22257 Improve condition to disable the loop filter. The previous heuristic
22258 used to check all filter levels, for all segments. It turns out that
22259 only the base filter_level value defined in the frame header needs
22261 This fixes 00-comprehensive-013.
22263 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22265 * gst-libs/gst/codecparsers/Makefile.am:
22266 * gst/vaapi/Makefile.am:
22267 build: fix make dist with certain conditionals not met.
22268 Fix generation of source tarballs when certain conditionals are not
22269 met. e.g. always include all buildable codecparsers sources in the
22270 distribution tarball, fix plug-in element sources set to include X11
22273 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22276 build: add missing files for GStreamer 0.10.
22277 Add missing GstVideoEncoder implementation files to fix build with ancient
22278 GStreamer 0.10 stack.
22279 https://bugzilla.gnome.org/show_bug.cgi?id=723964
22281 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22284 build: add missing files for VP8 bitstream parser.
22285 Fix make dist for building the VP8 bitstream parser.
22287 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22290 * ext/libvpx/Makefile.am:
22291 * gst-libs/gst/codecparsers/Makefile.am:
22292 vp8: allow compilation without the built-in libvpx.
22293 The built-in libvpx serves multiple purposes, among which the most
22294 important ones could be: track the most up-to-date, and optimized,
22295 range decoder; allow for future hybrid implementations (non-VLD);
22296 and have a completely independent range decoder implementation.
22298 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22300 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22301 vp8: propagate PTS from demux frame.
22302 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
22303 or parser would already have determined the PTS from a previous stage.
22305 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22308 * debian.upstream/libgstvaapi.install.in:
22309 * ext/libvpx/Makefile.am:
22310 * ext/libvpx/sources.frag:
22311 * gst-libs/gst/codecparsers/Makefile.am:
22312 vp8: fix compilation with built-in libvpx.
22313 Apply correct patch from fd.o #722760 to fix several issues: update the
22314 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
22317 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22323 * ext/libvpx/Makefile.am:
22324 * ext/libvpx/gstlibvpx.c:
22325 * ext/libvpx/gstlibvpx.h:
22326 * ext/libvpx/libgstcodecparsers_vpx.vers:
22327 * ext/libvpx/sources.frag:
22328 * ext/libvpx/upstream:
22329 * gst-libs/gst/codecparsers/Makefile.am:
22330 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
22331 vp8: use range decoder from libvpx.
22332 Add libvpx submodule that tracks the upstream version 1.3.0. This is
22333 needed to build a libgstcodecparsers_vpx.so library with all symbols
22334 placed into the GSTREAMER namespace.
22336 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22338 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22339 vp8: fix check for disabling the loop filter.
22341 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
22345 * gst-libs/gst/codecparsers/Makefile.am:
22346 * gst-libs/gst/vaapi/Makefile.am:
22347 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22348 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22349 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22350 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22351 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22352 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
22353 * gst-libs/gst/vaapi/gstvaapiprofile.c:
22354 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22355 * gst/vaapi/gstvaapidecode.c:
22356 Add initial VP8 decoder.
22357 https://bugzilla.gnome.org/show_bug.cgi?id=722761
22358 [complete overhaul, fixed support for resolution changes]
22359 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22361 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22363 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22364 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
22365 The gst_h264_parse_parse_sei() function now returns an array of SEI
22366 messages, instead of a single SEI message. Reason: it is allowed to
22367 have several SEI messages packed into a single SEI NAL unit, instead
22368 of multiple NAL units.
22370 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22372 * ext/codecparsers:
22373 codecparsers: update to gst-vaapi-branch commit a454f86.
22374 b2eb5f6 vp8: rename dboolhuff symbols
22375 b74a881 vp8: add GStreamer native utilities
22376 2940ac6 add VP8 bitstream parser
22378 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22380 * ext/codecparsers:
22381 codecparsers: update to gst-vaapi-branch commit d459bc5.
22382 d459bc5 h264: set framerate even for interlaced videos
22383 c78b82c h264: add support for Recovery Point SEI message
22384 7693bac h264: add support for Frame Packing Arrangement SEI message
22385 31fafa7 h264: add support for Stereo Video Information SEI message
22386 8b113a6 h264: parse seq_parameter_set_mvc_extension()
22387 040f9b8 h264: parse MVC syntax elements
22388 cc18ef3 h264: add nal_reader_skip_long() helper
22389 7e76a48 h264: fix slice_header() parsing for MVC
22390 caf46d8 h264: add gst_h264_parse_nalu_header() helper
22391 f75074e h264: add gst_h264_parse_sps_data() helper
22392 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
22393 4e36737 h264: fix skipping of unsupported SEI messages
22394 5300766 h264: fix SEI buffering_period() parsing
22396 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22398 * ext/codecparsers:
22399 * gst-libs/gst/codecparsers/Makefile.am:
22400 codecparsers: update to gst-vaapi-branch commit 8fadf40.
22401 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
22402 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
22403 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
22404 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
22405 8ec5816 h265: Fix segfault when parsing HRD parameter
22406 5b1730f h265: Fix segfault when parsing VPS
22407 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
22408 7ba641d h265: Fix debug output
22409 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
22411 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22413 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22414 decoder: h264: fix robustness patch for bytestream format.
22415 Fix parser and decoder state to sync at the right locations. This is
22416 because we could reset the parser state, while the decoder state was
22417 not copied yet, e.g. when parsing several NAL units from multiple frames
22418 whereas the current frame was not decoded yet.
22419 This is a regression brought in by commit 6fe5496.
22421 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22424 * pkgconfig/Makefile.am:
22425 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22426 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22427 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22428 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22429 build: fix pkgconfig file names (again).
22430 It turns out it is more convenient to have only pkgconfig files named
22431 after the installed GStreamer API version (1.0) instead of using all
22432 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
22433 altogether anyway, so align pkgconfig file names to that.
22435 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22437 * debian.upstream/libgstvaapi-dev.install.in:
22438 * gst-libs/gst/vaapi/Makefile.am:
22439 * pkgconfig/gstreamer-vaapi.pc.in:
22440 build: fix packaging for GStreamer 1.2.
22441 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
22442 the pkgconfig version (1.0) instead of the intended API version (1.2).
22443 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
22444 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
22446 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22449 Bump version for development.
22451 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22453 * debian.upstream/control.in:
22454 debian: fix trailing whitespace in description.
22456 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22458 * debian.upstream/control.in:
22459 * debian.upstream/copyright:
22460 debian: fix package description.
22461 Try to improve package description for the compiled plug-in elements
22462 available in there. e.g. only display vaapidownload and vaapiupload
22463 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
22464 encoding is enabled, etc.
22465 Also increase the copyright notice date.
22467 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22469 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22470 build: fix warnings on 64-bit platforms.
22472 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22474 * gst-libs/gst/vaapi/gstvaapicontext.c:
22475 * gst-libs/gst/vaapi/gstvaapiutils.c:
22476 build: fix for older versions of VA-API (< 0.34.0).
22477 Fix build with older versions of VA-API (< 0.34.0), or versions without
22478 good enough headers for encoding support for instance.
22480 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22486 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22490 VA-API up to 0.34.0 is actually supported. Mention new video encoding
22491 support. Update copyright years, list of supported Intel HD Graphics
22494 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22499 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22501 * tests/test-filter.c:
22502 tests: test-filter: fix "deinterlace" option parse.
22503 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
22504 string was provided, i.e. if it remained set to NULL.
22506 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22508 * gst-libs/gst/vaapi/Makefile.am:
22509 * gst-libs/gst/vaapi/gstvaapicontext.c:
22510 * gst-libs/gst/vaapi/gstvaapicontext.h:
22511 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22512 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
22513 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
22514 libs: factor out usages of vaGetConfigAttributes().
22515 Add gst_vaapi_get_config_attribute() helper function that takes a
22516 GstVaapiDisplay and the rest of the arguments with VA types. The aim
22517 is to have thread-safe VA helpers by default.
22519 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22521 * gst-libs/gst/vaapi/gstvaapiutils.c:
22522 * gst-libs/gst/vaapi/gstvaapiutils.h:
22523 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22524 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22525 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22526 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22527 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22528 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22529 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22530 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22531 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22532 libs: re-indent all source code related to VA utilities.
22534 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22536 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
22537 libs: add missing file (libgstvaapi_priv_check.h).
22539 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22541 * gst-libs/gst/vaapi/gstvaapicontext.c:
22542 * gst-libs/gst/vaapi/gstvaapicontext.h:
22543 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22544 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22545 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22546 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22547 encoder: notify the encoder of the submitted packed headers.
22548 Make sure to configure the encoder with the set of packed headers we
22549 intend to generate and submit. i.e. make selection of packed headers
22550 to submit more robust.
22552 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22554 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22555 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22556 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22557 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22558 encoder: fix and factor out check for supported rate-control modes.
22559 Cache the first compatible GstVaapiProfile found if the encoder is not
22560 configured yet. Next, factor out the code to check for the supported
22561 rate-control modes by moving out vaGetConfigAttributes() to a separate
22562 function, while also making sure that the attribute type is actually
22563 supported by the encoder.
22564 Also fix the default set of supported rate control modes to not the
22565 "none" variant. It's totally useless to expose it at this point.
22567 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22569 * gst-libs/gst/vaapi/gstvaapicontext.c:
22570 * gst-libs/gst/vaapi/gstvaapicontext.h:
22571 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22572 context: move rate-control mode to encoder specific config.
22573 Move usage-specific config out of the common GstVaapiContextInfo.
22574 Create a specialized config for encoding and move rate-control mode
22577 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22579 * gst-libs/gst/vaapi/gstvaapicontext.c:
22580 * gst-libs/gst/vaapi/gstvaapicontext.h:
22581 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22582 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22583 context: introduce concept of usage.
22584 Introduce GstVaapiContextUsage so that to explicitly determine the
22585 usage of a VA context. This is useful in view to simplifying the
22586 creation of VA context for VPP too.
22588 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22590 * gst-libs/gst/vaapi/gstvaapicontext.c:
22591 context: fix get_attribute() value result.
22592 Unknown attributes, or attributes that are not supported for the given
22593 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
22594 So, return failure in this case.
22596 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22598 * gst-libs/gst/vaapi/Makefile.am:
22599 * gst-libs/gst/vaapi/gstvaapicontext.c:
22600 * gst-libs/gst/vaapi/gstvaapicontext.h:
22601 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
22602 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
22603 * gst-libs/gst/vaapi/gstvaapisurface.c:
22604 context: move overlay composition to separate files.
22605 Move GstVideoOverlayComposition handling to separate source files.
22606 This helps keeing GstVaapiContext core implementation to the bare
22607 minimal, i.e. simpy helpers to create a VA context and handle pool
22608 of associated VA surfaces.
22610 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22612 * gst-libs/gst/vaapi/gstvaapicontext.c:
22613 * gst-libs/gst/vaapi/gstvaapicontext.h:
22614 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22615 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22616 context: clean-ups. Strip down APIs.
22617 Improve documentation and debug messages. Clean-up APIs, i.e. strip
22618 them down to the minimal set of interfaces. They are private, so no
22619 need expose getters for instance.
22621 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22623 * gst-libs/gst/vaapi/gstvaapicontext.c:
22624 * gst-libs/gst/vaapi/gstvaapicontext.h:
22625 context: re-indent all GstVaapiContext related source code.
22627 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22629 * gst-libs/gst/vaapi/Makefile.am:
22630 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22631 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22632 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22633 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22634 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22635 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22636 * gst-libs/gst/vaapi/gstvaapiutils.h:
22637 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22638 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22639 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22640 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22641 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22642 libs: check that private headers remain private.
22643 Make sure that libgstvaapi private headers remain internally used to
22644 build libgstvaapi libraries only. All header dependencies were reviewed
22645 and checks for IN_LIBGSTVAAPI definition were added accordingly.
22646 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
22649 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22652 Bump library major version.
22653 Bump the library major version due to API/ABI changes that occurred in
22654 the imaging API. In particular, GstVaapiDisplay interfaces no longer
22655 expose any GstCaps but provide GArray based ones e.g. to determine the
22656 set of supported decode/encode profiles.
22658 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22660 * gst-libs/gst/vaapi/glibcompat.h:
22661 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22662 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22663 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22664 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22665 * gst-libs/gst/vaapi/gstvaapicontext.c:
22666 * gst-libs/gst/vaapi/gstvaapicontext.h:
22667 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22668 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22669 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22670 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22671 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22672 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22673 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22674 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22675 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22676 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22677 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22678 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22679 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22680 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22681 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22682 * gst-libs/gst/vaapi/gstvaapifilter.c:
22683 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22684 * gst-libs/gst/vaapi/gstvaapisurface.c:
22685 * gst-libs/gst/vaapi/gstvaapisurface.h:
22686 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22687 * gst-libs/gst/vaapi/gstvaapitypes.h:
22688 * gst-libs/gst/vaapi/gstvaapiutils.c:
22689 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22690 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22691 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22692 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22693 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22694 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22695 * gst-libs/gst/vaapi/gstvaapivalue.c:
22696 * gst-libs/gst/vaapi/gstvaapivalue.h:
22697 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22698 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22699 * gst/vaapi/gstvaapidecode.c:
22700 * gst/vaapi/gstvaapiencode.c:
22701 * gst/vaapi/gstvaapiencode.h:
22702 * gst/vaapi/gstvaapiencode_h264.c:
22703 * gst/vaapi/gstvaapiencode_h264.h:
22704 * gst/vaapi/gstvaapiencode_mpeg2.c:
22705 * gst/vaapi/gstvaapiencode_mpeg2.h:
22706 * gst/vaapi/gstvaapipluginbase.c:
22707 * gst/vaapi/gstvaapipluginutil.c:
22708 * gst/vaapi/gstvaapipluginutil.h:
22709 * gst/vaapi/gstvaapipostproc.c:
22710 * gst/vaapi/gstvaapipostproc.h:
22711 * gst/vaapi/gstvaapisink.c:
22712 * gst/vaapi/gstvaapisink.h:
22713 * gst/vaapi/gstvaapivideometa_texture.c:
22714 * tests/simple-decoder.c:
22715 legal: update copyright notice dates.
22717 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22719 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22720 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22721 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22722 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22723 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22724 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22725 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22726 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22727 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22728 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22729 * gst/vaapi/gstvaapiencode.c:
22730 * gst/vaapi/gstvaapiencode.h:
22731 * gst/vaapi/gstvaapiencode_h264.c:
22732 * gst/vaapi/gstvaapiencode_h264.h:
22733 * gst/vaapi/gstvaapiencode_mpeg2.c:
22734 * gst/vaapi/gstvaapiencode_mpeg2.h:
22735 legal: add per-file authorship information.
22737 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22739 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22740 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22741 decoder: fix video codec frame number in standalone mode.
22742 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
22743 stream in standalone mode. While we are at it, improve the debugging
22744 messages to also include that frame number.
22746 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
22748 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22749 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22750 decoder: fix crash on invalid pointer for GST_DEBUG().
22751 When decoding failed, or that the frame was dropped, the associated
22752 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
22753 message needs to check whether the proxy is actually present or not.
22754 https://bugzilla.gnome.org/show_bug.cgi?id=722403
22755 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
22756 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22758 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22760 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22761 encoder: h264: disable NAL HRD parameters for now.
22762 Don't emit NAL HRD parameters for now in the SPS headers because the
22763 SEI buffering_period() and picture_timing() messages are not handled
22764 yet. Some additional changes are necessary to get it right.
22765 https://bugzilla.gnome.org/show_bug.cgi?id=722734
22767 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22769 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22770 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22771 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22772 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22773 encoder: h264: fix default CPB buffer size.
22774 Fix default CPB buffer size to something more reasonable (1500 ms)
22775 and that still fits the level limits. This is a non configurable
22776 property for now. The initial CPB removal delay is also fixed to
22778 https://bugzilla.gnome.org/show_bug.cgi?id=722087
22780 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22782 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22783 encoder: h264: fix bitrate encoding for HRD conformance.
22784 Round down the calculated, or supplied, bitrate (kbps) into a multiple
22785 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
22786 that to have less losses in precision. Likewise, don't round up because
22787 that could be a strict constraint imposed by the user.
22789 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22791 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22792 encoder: h264: fix level lookup constraints wrt. bitrate.
22793 Fix the level calculation involving bitrate limits. Since we are
22794 targetting NAL HRD conformance, the check against MaxBR from the
22795 Table A-1 limits shall involve cpbBrNalFactor depending on the
22798 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22800 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22801 encoder: h264: submit sequence parameter only once.
22802 Submit sequence parameter buffers only once, or when the bitstream
22803 was reconfigured in a way that requires such. Always submit packed
22804 sequence parameter buffers at I-frame period, if the VA driver needs
22806 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22808 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22810 * gst-libs/gst/vaapi/gstvaapicontext.c:
22811 * gst-libs/gst/vaapi/gstvaapicontext.h:
22812 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22813 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22814 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22815 encoder: h264: only submit packed headers when required.
22816 Make sure to submit the packed headers only if the underlying VA driver
22817 requires those. Currently, only handle packed sequence and picture
22819 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22821 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22823 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22824 encoder: h264: fix ip_period value in sequence parameter.
22825 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
22826 between the I-frame and the next P-frame. So, this also accounts for
22827 any additional B-frame in the middle of it.
22828 This fixes rate control heuristics for certain VA drivers.
22829 https://bugzilla.gnome.org/show_bug.cgi?id=722735
22831 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22833 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22834 encoder: h264: fix level when bitrate is automatically computed.
22835 Fix level characterisation when the bitrate is automatically computed
22836 from the active coding tools. i.e. ensure the bitrate once the profile
22837 is completely characterized but before the level calculation process.
22839 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22841 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22842 encoder: h264: clean-ups.
22843 Document and rename a few functions here and there. Drop code that
22844 caps num_bframes variable in reset_properties() since they shall
22845 have been checked beforehand, during properties initialization.
22847 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22849 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22850 encoder: h264: clean-up bitwriter related utilities.
22851 Clean-up GstBitWriter related utility functions and simplify notations.
22852 While we are at it, also make bitstream writing more robust should an
22853 overflow occur. We could later optimize for writing headers capped to
22854 their maximum possible size by using the _unchecked() helper variants.
22856 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22858 * gst-libs/gst/vaapi/Makefile.am:
22859 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22860 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22861 encoder: h264: completely remove private headers.
22862 Drop private header since it was originally used to expose internals
22863 to the plugin element. The proper interface is now the properties API,
22864 thus rendering private headers totally obsolete.
22866 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22868 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22869 encoder: h264: fix PPS header packing with profile < high.
22870 Fix PPS header packing when profile is below High since 8x8 transform
22871 mode and scaling lists are High Profile features.
22873 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22875 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22876 encoder: h264: always emit VUI parameters for framerate.
22877 Always emit VUI parameters for timing_info, which includes framerate
22880 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22882 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22883 encoder: h264: really fix frame cropping rectangle calculation.
22884 Make frame cropping rectangle calculation future proof, i.e. exactly
22885 follow the specification (7-18) to (7-21), and subsampling definitions
22887 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22888 https://bugzilla.gnome.org/show_bug.cgi?id=722238
22890 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
22892 * gst/vaapi/gstvaapisink.c:
22893 * gst/vaapi/gstvaapisink.h:
22894 vaapisink: set csc render flags from sinkpad caps.
22895 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
22896 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
22898 https://bugzilla.gnome.org/show_bug.cgi?id=722255
22899 [factored out code, added SMPTE240M, handle per-buffer flags]
22900 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22902 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22904 * gst-libs/gst/vaapi/gstvaapisurface.h:
22905 * gst-libs/gst/vaapi/gstvaapiutils.c:
22906 * gst/vaapi/gstvaapipostproc.c:
22907 surface: rework render flags.
22908 Pack render flags per category and provide more flags into the color
22909 standard category. In particular, cover for SMPTE-240M.
22911 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
22913 * gst-libs/gst/vaapi/gstvaapifilter.c:
22914 * gst/vaapi/gstvaapipostproc.c:
22915 * gst/vaapi/gstvaapipostproc.h:
22916 vaapipostproc: add support for colorbalance filters.
22917 Add support for hue, saturation, brightness and constrat adjustments.
22918 Also fix cap info local copy to match the really expected cap subtype
22920 https://bugzilla.gnome.org/show_bug.cgi?id=720376
22921 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22923 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
22925 * gst/vaapi/gstvaapipostproc.c:
22926 vaapipostproc: fix support for "sharpen" filter.
22927 Fix copy/paste error when submitting the "sharpen" value to the
22928 GstVaapiFilter instance.
22929 https://bugzilla.gnome.org/show_bug.cgi?id=720375
22930 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22932 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
22935 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22936 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22937 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22938 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22939 * pkgconfig/gstreamer-vaapi.pc.in:
22940 pkgconfig: plugin dir should use PKG version not API version.
22941 Fix the pluginsdir and includedir variables in the generated pkgconfig
22942 (.pc) files. The location needs to be built with the PKG version in
22943 mind instead of the API version.
22944 While we are at it, also fix the PKG version for GStreamer >= 1.3.
22945 https://bugzilla.gnome.org/show_bug.cgi?id=720820
22946 [additional fixes for includedir and pkg requirements]
22947 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22949 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
22951 * gst/vaapi/gstvaapisink.c:
22952 vaapisink: fix display initialization in GstVideoOverlay implementation.
22953 When gst_vaapisink_video_overlay_set_window_handle() is called early,
22954 before the pipeline has been set to PLAYING, the display has not yet
22955 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
22956 up-to-date. For this reason the foreign XID is not attached.
22957 Now _ensure_display() is called earlier.
22958 https://bugzilla.gnome.org/show_bug.cgi?id=722244
22959 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22961 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22963 * gst/vaapi/gstvaapisink.c:
22964 vaapisink: expose the raw video formats in static caps template.
22965 Expose all raw video formats in the static caps template since the
22966 vaapisink is supporting raw data. We will get the exact set of formats
22967 supported by the driver dynamically through the _get_caps() routine.
22968 https://bugzilla.gnome.org/show_bug.cgi?id=703271
22969 https://bugzilla.gnome.org/show_bug.cgi?id=720737
22970 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22972 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22974 * gst/vaapi/gstvaapidecode.c:
22975 vaapidecode: query downstream caps features like GLTextureUploadMeta.
22976 Fix vaapidecode to correctly report caps features downstream, when
22977 a custom pipeline is built manually.
22978 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22979 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22981 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22983 * gst/vaapi/gstvaapidecode.c:
22984 vaapidecode: add system memory caps to template caps.
22985 Since vaapidecode provides buffer that can be mapped as regular memory,
22986 those caps should be added to the template caps. That only applies to
22988 https://bugzilla.gnome.org/show_bug.cgi?id=720608
22989 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22991 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
22993 * gst/vaapi/gstvaapidecode.c:
22994 vaapidecode: fix hang on SIGINT.
22995 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
22996 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
22997 locked. This fixes a deadlock on state change from PAUSED to READY.
22998 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22999 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23001 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
23003 * gst/vaapi/gstvaapiencode.c:
23004 vaapiencode: fix possible hang on SIGINT.
23005 vaapiencode might hang when the pipeline is stopped without any EOS,
23006 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
23007 running and locked. This fixes a possible deadlock on state change
23008 from PAUSED to READY.
23009 https://bugzilla.gnome.org/show_bug.cgi?id=720584
23010 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23012 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23014 * gst/vaapi/gstvaapiencode.c:
23015 vaapiencode: fix typo in error message.
23016 Fix incomplete error message in gst_vaapiencode_push_frame().
23018 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23020 * gst/vaapi/gstvaapipluginutil.c:
23021 * gst/vaapi/gstvaapipluginutil.h:
23022 plugins: add helpers to create video caps with features.
23023 Add gst_vaapi_video_format_new_template_caps_with_features() helper
23024 function to add the supplied caps feature string on GStreamer >= 1.2.
23025 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
23026 the "best" caps feature to use for the supplied pad. In practice, we
23027 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
23028 and finally the system memory caps.
23029 https://bugzilla.gnome.org/show_bug.cgi?id=719372
23031 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23033 * gst/vaapi/gstvaapivideometa_texture.c:
23034 plugins: don't apply overlay composition in GLTextureUpload function.
23035 The GLTextureUpload function is not in charge of doing the overlay
23036 composition if any.
23037 https://bugzilla.gnome.org/show_bug.cgi?id=721859
23038 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23040 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23042 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23043 encoder: re-order submission of VA objects.
23044 Change the submission order of VA objects so that to make that process
23045 more logical. i.e. submit sequence parameter first, if any; next the
23046 packed headers associated to sequece, picture or slices; and finally
23047 the actual picture and associated slices.
23049 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23051 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23052 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23053 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23054 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23055 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23056 encoder: clean-up objects.
23057 Various clean-ups to improve consistency and readability: rename some
23058 variables, drop unused macro definitions, drop initialization of vars
23059 that are zero-initialized from the base class, drop un-necessary casts,
23060 allocate GPtrArrays with a destroy function.
23062 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23064 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23065 encoder: h264: fix frame cropping rectangle calculation.
23066 Fix frame cropping rectangle calculation to handle horizontal resolutions
23067 that don't match a multiple of 16 pixels, but also the vertical resolution
23068 that was incorrectly computed for progressive sequences too.
23069 https://bugzilla.gnome.org/show_bug.cgi?id=722089
23071 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23073 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23074 encoder: h264: improve automatic bitrate calculation.
23075 For non "Constant-QP" modes, we could provide more reasonable heuristics
23076 for the target bitrate. In general, 48 bits per macroblock with all the
23077 useful coding tools enable looks safe enough. Then, this rate is raised
23078 by +10% to +15% for each coding tool that is disabled.
23079 https://bugzilla.gnome.org/show_bug.cgi?id=719699
23081 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23083 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23084 encoder: h264: support "high-compression" tuning option.
23085 Add support for "high-compression" tuning option. First, determine the
23086 largest supported profile by the hardware. Next, check any target limit
23087 set by the user. Then, enable each individual coding tool based on the
23088 resulting profile_idc value to use.
23089 https://bugzilla.gnome.org/show_bug.cgi?id=719696
23091 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23093 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23094 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23095 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23096 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23097 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23098 * gst/vaapi/gstvaapiencode_h264.c:
23099 encoder: h264: allow target decoder constraints.
23100 Allow user to precise the largest profile to use for encoding due
23101 to target decoder constraints. For instance, if CABAC entropy coding
23102 mode is requested by "constrained-baseline" profile only is desired,
23103 then an error is returned during codec configuration.
23104 Also make sure that the suitable profile we derived actually matches
23105 what the HW can cope with.
23106 https://bugzilla.gnome.org/show_bug.cgi?id=719694
23108 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23110 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23111 encoder: h264: refine size of coded buffer.
23112 Refine the heuristic to determine the maximum size of a coded buffer
23113 to account for the exact number of slices. set_context_info() is the
23114 last step during codec reconfiguration, no additional change is done
23115 afterwards, so re-using the num_slices field here is fine.
23116 https://bugzilla.gnome.org/show_bug.cgi?id=719953
23118 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
23120 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23121 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23122 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23123 encoder: h264: expose more coding tools.
23124 Add new H.264 coding tools to improve compression:
23125 - "cabac": enable CABAC entropy coding (default: FALSE);
23126 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
23127 https://bugzilla.gnome.org/show_bug.cgi?id=719693
23128 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23130 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23132 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23133 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23134 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23135 encoder: h264: derive profile and level from active coding tools.
23136 Automatically derive the minimum profile and level to be used for
23137 encoding, based on the activated coding tools. The encoder will
23138 be trying to generate a bitstream that has the best chances to be
23139 decoded on most platforms by default.
23140 Also change the default profile to "constrained-baseline" so that
23141 to ensure maximum compatibility when the stream is decoded.
23142 https://bugzilla.gnome.org/show_bug.cgi?id=719691
23144 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23146 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23147 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23148 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23149 encoder: h264: fix hardware profile lookup.
23150 Fix lookup for a suitable HW profile, as to be used by the underlying
23151 hardware, based on heuristics that lead to characterize the SW profile,
23152 i.e. the one used by the SW level encoding logic.
23153 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
23154 as they should respectively match the baseline and main profile.
23155 https://bugzilla.gnome.org/show_bug.cgi?id=719827
23157 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23159 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23160 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23161 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23162 encoder: h264: support only the byte-stream format.
23163 The libgstvaapi core encoders are meant to support raw bitstreams only.
23164 Henceforth, we are always producing a stream in "byte-stream" format.
23165 However, the "codec-data" buffer which holds SPS and PPS headers is
23166 always available. The "lengthSizeMinusOne" field is always set to 3
23167 so that in-place "byte-stream" format to "avc" format conversion could
23170 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23172 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23173 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23174 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23175 * gst/vaapi/gstvaapiencode_h264.c:
23176 encoder: h264: clean-ups.
23177 Various clean-ups to improve consistency and readability: rename some
23178 variables, drop unused macro definitions, drop initialization of vars
23179 that are zero-initialized from the base class, drop un-necessary casts.
23181 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23183 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23184 encoder: mpeg2: fix hardware profile lookup.
23185 Fix lookup for a suitable HW profile, as to be used by the underlying
23186 hardware, based on heuristics that lead to characterize the SW profile,
23187 i.e. the one used by the SW level encoding logic.
23189 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23191 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23192 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23193 encoder: mpeg2: derive profile and level from active coding tools.
23194 Automatically derive the minimum profile and level to be used for
23195 encoding, based on the activated coding tools. Improve lookup for
23196 the best suitable level with the new MPEG-2 helper functions.
23197 Also change the default profile to "simple" so that to ensure maximum
23198 compatibility when the stream is decoded.
23199 https://bugzilla.gnome.org/show_bug.cgi?id=719703
23201 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23203 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23204 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23205 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23206 encoder: mpeg2: clean-ups.
23207 Various clean-ups to improve consistency and readability: drop unused
23208 macro definitions, drop initialization of vars that are zero-initialized
23209 from the base class, drop un-necessary casts.
23211 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23213 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23214 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23215 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23216 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23217 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23218 encoder: add tuning options API.
23219 Add encoder "tune" option to override the default behaviour that is to
23220 favor maximum decoder compatibility at the expense of lower compression
23222 Expected tuning options to be developed are:
23223 - "high-compression": improve compression, target best-in-class decoders;
23224 - "low-latency": tune for low-latency decoding;
23225 - "low-power": tune for encoding in low power / resources conditions.
23227 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23229 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23230 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23231 encoder: fix bitrate units to match kbps.
23232 Bitrate is expressed in kilobits per second (kbps). So, this exactly
23233 means in multiple of 1000 bits, not 1024 bits.
23234 https://bugzilla.gnome.org/show_bug.cgi?id=722086
23236 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23238 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23239 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23240 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23241 encoder: clean-ups.
23242 Drop obsolete and unused macros. Add a few doc comments. Slightly
23243 improve indentation of a few leftovers.
23245 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23247 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23248 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23249 * gst-libs/gst/vaapi/gstvaapivalue.c:
23250 * gst-libs/gst/vaapi/gstvaapivalue.h:
23251 encoder: filter out the supported set of rate-control properties.
23252 Only expose the exact static set of supported rate-control properties
23253 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
23254 only support CQP rate control, then only add it the the exposed enum
23256 Add helper macros and functions to build a GType for an enum subset.
23258 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23260 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23261 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23262 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23263 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23264 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23265 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23266 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23267 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23268 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23269 encoder: add keyframe period API.
23270 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
23271 user control the maximum distance between two keyframes. This new
23272 property can only be set prior to gst_vaapi_encoder_set_codec_state().
23273 A value of zero for "keyframe-period" gets it re-evaluated to the
23274 actual framerate during encoder reconfiguration.
23276 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23278 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23279 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23280 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23281 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23282 encoder: improve codec reconfiguration.
23283 Improve codec reconfiguration to be performed only through a single
23284 function. That is, remove the _set_context_info() hook as subclass
23285 should not alter the parent GstVaapiContextInfo itself. Besides, the
23286 VA context is constructed only at the final stages of reconfigure().
23288 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23290 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
23291 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
23292 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23293 encoder: fix possible memory leak of coded buffer pools.
23294 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
23295 buffer pool only if the coded buffer size actually changed.
23297 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23299 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23300 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23301 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23302 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23303 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23304 * gst/vaapi/gstvaapiencode.c:
23305 * gst/vaapi/gstvaapiencode.h:
23306 encoder: add video codec-state API.
23307 Add interface to communicate the encoder resolution and related info
23308 like framerate, interlaced vs. progressive, etc. This new interface
23309 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
23310 but rather use GstVideoCodecState.
23311 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
23312 point for codec config. This means that the encoder is reconfigured
23313 there to match the latest properties.
23315 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23317 * gst/vaapi/gstvaapiencode.c:
23318 vaapiencode: don't crash on NULL encoder on _finish().
23319 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
23320 if it was not created in the first place. Return "not-negotiated" error
23321 since this means we did not even reach GstVideoEncoder::set_format(),
23322 where the encoder could have been created.
23323 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
23324 and that we failed to negotiate either pad.
23325 https://bugzilla.gnome.org/show_bug.cgi?id=719704
23327 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23329 * gst/vaapi/gstvaapiencode.c:
23330 * gst/vaapi/gstvaapiencode.h:
23331 * gst/vaapi/gstvaapiencode_h264.c:
23332 vaapiencode: use more GstVaapiPluginBase facilities.
23333 Avoid duplication of pad references or query functions since they are
23334 provided through the GstVaapiPluginBase object.
23336 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23338 * gst/vaapi/gstvaapiencode.c:
23339 * gst/vaapi/gstvaapiencode.h:
23340 * gst/vaapi/gstvaapiencode_h264.c:
23341 * gst/vaapi/gstvaapiencode_h264.h:
23342 * gst/vaapi/gstvaapiencode_mpeg2.c:
23343 vaapiencode: fix negotiation process of output caps.
23344 The specified caps in gst_video_encoder_set_output_state() function
23345 arguments should not contain any resolution, pixel-aspect-ratio,
23346 framerate, codec-data et al. Those rather should be set through the
23347 returned GstVideoCodecState. This means that output caps creation
23348 could be delayed until before gst_video_encoder_finish_frame() is
23350 This greatly simplifies the GstVideoEncoder::set_format() callback
23353 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23355 * gst/vaapi/gstvaapiencode.c:
23356 vaapiencode: make GstVaapiEncode an abstract type.
23357 Make base GstVaapiEncode class an abstract type so that we cannot
23358 create an instance from it without going through any of the codec
23359 specific derived class.
23361 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23363 * gst/vaapi/gstvaapiencode.c:
23364 * gst/vaapi/gstvaapiencode.h:
23365 * gst/vaapi/gstvaapiencode_h264.c:
23366 * gst/vaapi/gstvaapiencode_mpeg2.c:
23367 vaapiencode: rename a few member functions.
23368 Rename a few member functions to make them more consistent:
23369 - alloc_encoder(): now reduced to allocate the encoder object only;
23370 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
23372 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23374 * gst/vaapi/gstvaapiencode.c:
23375 * gst/vaapi/gstvaapiencode.h:
23376 * gst/vaapi/gstvaapiencode_h264.c:
23377 * gst/vaapi/gstvaapiencode_h264.h:
23378 * gst/vaapi/gstvaapiencode_mpeg2.c:
23379 vaapiencode: update for new properties API.
23380 Update MPEG-2 and H.264 encode elements to cope with the new core
23381 libgstvaapi properties API. i.e. all configurable properties are now
23382 directly handled at the GstVaapiEncoder level.
23383 Besides, this also makes sure to not use or modify the GstVaapiEncoder
23384 private definitions directly. Private data need to remain private.
23385 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23387 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23389 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23390 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23391 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23392 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23393 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23394 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23395 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23396 encoder: add properties API.
23397 Add interface to communicate configurable properties to the encoder.
23398 This covers both the common ones (rate-control, bitrate), and the
23399 codec specific properties.
23400 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23402 2014-01-06 18:01:33 +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_priv.h:
23408 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23409 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23410 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23411 * gst/vaapi/gstvaapiencode.c:
23412 * gst/vaapi/gstvaapiencode_h264.c:
23413 * gst/vaapi/gstvaapiencode_mpeg2.c:
23414 encoder: add bitrate API.
23415 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
23416 the bitrate for encoding. Currently, changing this parameter is only
23417 valid before the first frame is encoded. Should the value be modified
23418 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
23420 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23422 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23424 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23425 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23426 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23427 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23428 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23429 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23430 * gst-libs/gst/vaapi/gstvaapitypes.h:
23431 * gst/vaapi/gstvaapiencode.c:
23432 * gst/vaapi/gstvaapiencode.h:
23433 * gst/vaapi/gstvaapiencode_h264.c:
23434 * gst/vaapi/gstvaapiencode_mpeg2.c:
23435 encoder: add rate control API.
23436 Add gst_vaapi_encoder_set_rate_control() interface to request a new
23437 rate control mode for encoding. Changing the rate control mode is
23438 only valid prior to encoding the very first frame. Afterwards, an
23439 error ("operation-failed") is issued.
23440 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23442 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23444 * gst/vaapi/gstvaapiencode.c:
23445 * gst/vaapi/gstvaapiencode_h264.c:
23446 * gst/vaapi/gstvaapiencode_mpeg2.c:
23447 vaapiencode: fix indentation.
23449 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23451 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23452 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23453 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23454 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23455 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23456 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23457 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23458 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23459 * gst/vaapi/gstvaapiencode.h:
23460 encoder: fix indentation.
23462 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23464 * gst-libs/gst/vaapi/Makefile.am:
23465 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
23466 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
23467 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
23468 utils: add new MPEG-2 helper functions.
23469 Add various helper functions to convert profile, level, chroma formats
23470 from gstreamer-vaapi world and the MPEG-2 specification world.
23472 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23474 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23475 utils: h264: don't use fatal asserts.
23476 Replace g_assert() with a g_debug() so that to not make the program
23477 abort when an unsupported value is supplied.
23479 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23481 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23482 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23483 utils: h264: add helpers for profile and level string mappings.
23484 Add profile and level helper functions to convert to/from strings.
23486 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23488 * gst-libs/gst/vaapi/Makefile.am:
23489 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23490 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23491 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23492 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
23493 utils: h264: expose levels in public header.
23494 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
23495 H.264 levels in there. The additional helper functions are meant
23496 to be private for now.
23498 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23500 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23501 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23502 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23503 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23504 codec: add helper macros to maintain object refcount.
23505 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
23506 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
23508 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23510 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23511 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23512 codec: re-indent decoder objects.
23514 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23516 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23517 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23518 codec: re-indent base codec objects.
23520 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23522 * gst/vaapi/gstvaapipluginbase.c:
23523 plugins: do not free debug category in finalize method.
23524 Fixes a crash when multiple vaapidecode elements are finalized since
23525 the debug category is created once in the class init method.
23526 This is a regression from git commit 7e58d60.
23527 https://bugzilla.gnome.org/show_bug.cgi?id=721390
23528 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23530 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23532 * gst-libs/gst/vaapi/glibcompat.h:
23533 * tests/simple-decoder.c:
23534 tests: simple-decoder: don't use deprecated g_thread_create().
23535 Use g_thread_try_new() instead of the deprecated g_thread_create()
23536 function. Provide compatibility glue for any GLib version < 2.31.2.
23538 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23540 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23541 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23542 * gst-libs/gst/vaapi/gstvaapisurface.c:
23543 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
23544 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23545 * gst/vaapi/gstvaapiencode.c:
23546 Fix printf()-like formats.
23547 Fix formts for various GST_DEBUG et al. invocations. More precisely,
23548 make size_t arguments use the %zu format specifier accordingly; force
23549 XID formats to be a 32-bit unsigned integer; and fix the format used
23550 for gst_vaapi_create_surface_with_format() error cases since we have
23551 been using strings nowadays.
23553 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23555 * gst-libs/gst/vaapi/video-format.c:
23556 * gst-libs/gst/vaapi/video-format.h:
23557 utils: format: drop unused helper functions.
23558 The following helper functions are no longer used, thus are removed:
23559 - gst_vaapi_video_format_from_structure()
23560 - gst_vaapi_video_format_from_caps()
23561 - gst_vaapi_video_format_to_caps()
23563 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23565 * gst-libs/gst/vaapi/video-format.c:
23566 * gst-libs/gst/vaapi/video-format.h:
23567 utils: re-indent GstVideoFormat related helpers.
23569 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23571 * gst/vaapi/gstvaapidownload.c:
23572 download: use GstVideoInfo facilities to build output caps.
23573 Use standard GstVideoInfo related functions to build the output caps,
23574 thus directly preserving additional fields as needed, instead of
23575 manually copying them over through gst_vaapi_append_surface_caps().
23576 Also ensure that the input caps are fixated first.
23578 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23580 * gst/vaapi/gstvaapidownload.c:
23581 * gst/vaapi/gstvaapipluginutil.c:
23582 * gst/vaapi/gstvaapipluginutil.h:
23583 * gst/vaapi/gstvaapiuploader.c:
23584 plugins: factor out construction of template caps.
23585 Add new helper functions to build video template caps.
23586 - gst_vaapi_video_format_new_template_caps():
23587 create GstCaps with size, frame rate and PAR to full range
23588 - gst_vaapi_video_format_new_template_caps_from_list():
23589 try to create a "simplified" list from the supplied formats
23591 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23593 * gst/vaapi/gstvaapipluginutil.c:
23594 * gst/vaapi/gstvaapipluginutil.h:
23595 * gst/vaapi/gstvaapipostproc.c:
23596 plugins: factor out construction of GValue from GstVideoFormat.
23597 Add new helper functions to build GValues from GstVideoFormat:
23598 - gst_vaapi_value_set_format():
23599 build a GValue from the supplied video format
23600 - gst_vaapi_value_set_format_list():
23601 build a GValue list from the supplied array of video formats
23603 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23605 * gst/vaapi/gstvaapipluginutil.c:
23606 * gst/vaapi/gstvaapipluginutil.h:
23607 * gst/vaapi/gstvaapivideocontext.c:
23608 * gst/vaapi/gstvaapivideocontext.h:
23609 plugins: re-indent common and video context creation utils.
23611 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23613 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23614 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23615 * gst/vaapi/gstvaapidecode.c:
23616 * tests/test-display.c:
23617 display: don't use GstCaps for decode or encode profiles list.
23618 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
23619 more convenient APIs that return an array of GstVaapiProfile instead
23620 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
23622 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23624 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23625 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23626 * gst/vaapi/gstvaapidownload.c:
23627 * gst/vaapi/gstvaapiuploader.c:
23628 * tests/test-display.c:
23629 display: don't use GstCaps for image or subpicture formats list.
23630 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
23631 returned GstCaps, with more convenient APIs that return an array of
23632 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
23634 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23636 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23637 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23638 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23639 display: allocate queried resources on-demand.
23640 Allocate the set of decoders or encoders on-demand, when they are
23641 queried. Likewise for VA display attributes, image and subpicture
23644 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23646 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23647 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23648 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23649 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23650 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23651 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23652 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23653 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
23654 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23655 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23656 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23657 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23658 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23659 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23660 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23661 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23662 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23663 display: re-indent all GstVaapiDisplay related source code.
23665 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23667 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23668 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23669 utils: add helper functions to get codec or profile name.
23671 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23673 * gst/vaapi/gstvaapipostproc.c:
23674 * gst/vaapi/gstvaapipostproc.h:
23675 * gst/vaapi/gstvaapiuploader.c:
23676 plugins: fix permissions for certain files.
23677 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
23680 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23682 * gst/vaapi/gstvaapivideometa_texture.c:
23683 plugins: implement GLTextureUploadMeta user data copy.
23684 Makes the copies of a buffer reference their own GLTextureUploadMeta
23685 user data and prevent the original buffer accessing already freed
23686 memory if its copies has been released and freed.
23687 https://bugzilla.gnome.org/show_bug.cgi?id=720336
23688 [Propagate the original meta texture to the copy too]
23689 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23691 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23693 * gst/vaapi/gstvaapiencode.c:
23694 * gst/vaapi/gstvaapiencode.h:
23695 * gst/vaapi/gstvaapipluginbase.c:
23696 * gst/vaapi/gstvaapipluginbase.h:
23697 * gst/vaapi/gstvaapipostproc.c:
23698 * gst/vaapi/gstvaapipostproc.h:
23699 * gst/vaapi/gstvaapisink.c:
23700 * gst/vaapi/gstvaapisink.h:
23701 plugins: factor out support for raw YUV buffers on sink pads.
23702 Factor out propose_allocation() hooks, creation of video buffer pool
23703 for the sink pad, conversion from raw YUV buffers to VA surface backed
23704 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
23705 with the new GstVaapiPluginBase abilities.
23707 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23709 * gst-libs/gst/vaapi/gstcompat.h:
23710 * gst/vaapi/gstvaapidecode.c:
23711 * gst/vaapi/gstvaapidecode.h:
23712 * gst/vaapi/gstvaapidownload.c:
23713 * gst/vaapi/gstvaapipluginbase.c:
23714 * gst/vaapi/gstvaapipluginbase.h:
23715 * gst/vaapi/gstvaapipostproc.c:
23716 * gst/vaapi/gstvaapipostproc.h:
23717 * gst/vaapi/gstvaapisink.c:
23718 * gst/vaapi/gstvaapiupload.c:
23719 plugins: factor out pad caps.
23721 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23723 * gst/vaapi/gstvaapidecode.c:
23724 * gst/vaapi/gstvaapidownload.c:
23725 * gst/vaapi/gstvaapiencode.c:
23726 * gst/vaapi/gstvaapipluginbase.c:
23727 * gst/vaapi/gstvaapipostproc.c:
23728 * gst/vaapi/gstvaapisink.c:
23729 * gst/vaapi/gstvaapiupload.c:
23730 plugins: factor out video context sharing code.
23732 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23734 * gst/vaapi/gstvaapidecode.c:
23735 * gst/vaapi/gstvaapidownload.c:
23736 * gst/vaapi/gstvaapiencode.c:
23737 * gst/vaapi/gstvaapipluginbase.c:
23738 * gst/vaapi/gstvaapipluginbase.h:
23739 * gst/vaapi/gstvaapipostproc.c:
23740 * gst/vaapi/gstvaapisink.c:
23741 * gst/vaapi/gstvaapiupload.c:
23742 plugins: factor out GstImplementsInterface.
23744 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23746 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23747 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23748 * gst/vaapi/gstvaapipluginbase.c:
23749 * gst/vaapi/gstvaapipluginutil.c:
23750 plugins: check type of display obtained from neighbours.
23751 Fix display creation code to check that any display obtained from a
23752 neighbour actually has the type we expect. Note: if display type is
23753 set to "any", we can then accept any VA display type.
23755 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23757 * gst/vaapi/gstvaapidecode.c:
23758 * gst/vaapi/gstvaapidownload.c:
23759 * gst/vaapi/gstvaapiencode.c:
23760 * gst/vaapi/gstvaapipluginbase.c:
23761 * gst/vaapi/gstvaapipluginbase.h:
23762 * gst/vaapi/gstvaapipluginutil.c:
23763 * gst/vaapi/gstvaapipluginutil.h:
23764 * gst/vaapi/gstvaapipostproc.c:
23765 * gst/vaapi/gstvaapisink.c:
23766 * gst/vaapi/gstvaapisink.h:
23767 * gst/vaapi/gstvaapiupload.c:
23768 plugins: factor out display creation process.
23769 Move common VA display creation code to GstVaapiPluginBase, with the
23770 default display type remaining "any". Also add a "display-changed"
23771 hook so that subclasses could perform additional tasks when/if the
23772 VA display changed, due to a new display type request for instance.
23773 All plug-ins are updated to cope with the new internal APIs.
23775 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23777 * gst/vaapi/Makefile.am:
23778 * gst/vaapi/gstvaapidecode.c:
23779 * gst/vaapi/gstvaapidecode.h:
23780 * gst/vaapi/gstvaapidownload.c:
23781 * gst/vaapi/gstvaapidownload.h:
23782 * gst/vaapi/gstvaapiencode.c:
23783 * gst/vaapi/gstvaapiencode.h:
23784 * gst/vaapi/gstvaapipluginbase.c:
23785 * gst/vaapi/gstvaapipluginbase.h:
23786 * gst/vaapi/gstvaapipostproc.c:
23787 * gst/vaapi/gstvaapipostproc.h:
23788 * gst/vaapi/gstvaapisink.c:
23789 * gst/vaapi/gstvaapisink.h:
23790 * gst/vaapi/gstvaapiupload.c:
23791 * gst/vaapi/gstvaapiupload.h:
23792 plugins: add new base object, store display in there.
23793 Introduce a new GstVaapiPluginBase object that will contain all common
23794 data structures and perform all common tasks. First step is to have a
23795 single place to hold VA displays.
23796 While we are at it, also make sure to store and subsequently release
23797 the appropriate debug category for the subclasses.
23799 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23801 * gst-libs/gst/vaapi/gstvaapiobject.h:
23802 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23803 * gst/vaapi/gstvaapivideometa_texture.c:
23804 * gst/vaapi/gstvaapivideometa_texture.h:
23805 plugins: fix GLTextureUploadMeta to work with different texture ids.
23806 The GLTextureUploadMeta implementation assumed that for each upload()
23807 sequence, the supplied texture id is always the same as the one that
23808 was previously cached into the underlying GstVaapiTexture. Cope with
23809 any texture id change the expense to recreate the underlying VA/GLX
23811 https://bugzilla.gnome.org/show_bug.cgi?id=719643
23813 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23815 * gst/vaapi/gstvaapidecode.c:
23816 * gst/vaapi/gstvaapivideobufferpool.c:
23817 * gst/vaapi/gstvaapivideometa_texture.c:
23818 plugins: allow builds without GLX enabled for GStreamer 1.2.
23819 Don't try to build GLTextureUploadMeta related code if GLX is not
23820 enabled during GStreamer >= 1.2 builds.
23822 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23824 * gst/vaapi/gstvaapidecode.c:
23825 * gst/vaapi/gstvaapivideobufferpool.c:
23826 * gst/vaapi/gstvaapivideobufferpool.h:
23827 * gst/vaapi/gstvaapivideometa_texture.c:
23828 * gst/vaapi/gstvaapivideometa_texture.h:
23829 plugins: request GLTextureUpload meta on buffers in the buffer pool.
23830 Requesting the GLTextureUpload meta on buffers in the bufferpool
23831 prevents such metas from being de-allocated when buffers are released
23833 This is particulary useful in terms of performance when using the
23834 GLTextureUploadMeta API since the GstVaapiTexture associated with
23835 the target texture is stored in the meta.
23836 https://bugzilla.gnome.org/show_bug.cgi?id=712558
23837 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23839 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23841 * gst/vaapi/gstvaapivideometa_texture.c:
23842 plugins: robustify GstVideoGLTextureUploadMeta implementation.
23843 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
23844 when the GstVaapiTexture associated with the supplied texture id could
23847 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23849 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23850 h264: improve robustness when packets are missing.
23851 Improve robustness when some expected packets where not received yet
23852 or that were not correctly decoded. For example, don't try to decode
23853 a picture if there was no valid frame headers parsed so far.
23854 https://bugs.freedesktop.org/show_bug.cgi?id=57902
23856 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23858 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23859 decoder: h264: fix decoding of BA3_SVA_C.264.
23860 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
23861 extended profile specifications. However, the SPS header has the
23862 constraint_set1_flag syntax element set to 1. This means that, if
23863 a Main profile compliant decoder is available, then it should be
23864 able to decode this stream.
23865 This changes makes it possible to fall-back from Extended profile
23866 to Main profile if constraint_set1_flag is set to 1.
23867 https://bugzilla.gnome.org/show_bug.cgi?id=720190
23869 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23871 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23872 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23873 utils: h264: add more profiles.
23874 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
23875 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
23876 multiview profiles (H.10.1.1, H.10.1.2).
23877 Document "Constrained Baseline" and "High 10" profiles.
23879 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23881 * ext/codecparsers:
23882 codecparsers: update to gst-vaapi-branch commit e7d0e18.
23883 e7d0e18 h264: complete set of NAL unit types
23885 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
23887 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23888 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23889 decoder: h264: add support for constrained baseline profile.
23890 Recognize streams marked as conforming to the "Constrained Baseline
23891 Profile". If VA driver supports that as is, fine. Otherwise, fallback
23892 to baseline, main or high profile.
23893 Constrained Baseline Profile conveys coding tools that are common
23894 to baseline profile and main profile.
23895 https://bugzilla.gnome.org/show_bug.cgi?id=719947
23896 [Added fallbacks to main and high profiles]
23897 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23899 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23901 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23902 decoder: h264: fix decoding of scaling lists.
23903 The GStreamer codecparser layer now parses the scaling lists in zigzag
23904 scan order, as expected, so that to match the original bitstream layout
23905 and specification. However, further convert the scaling lists into
23906 raster scan order to fit the existing practice in most VA drivers.
23907 https://bugzilla.gnome.org/show_bug.cgi?id=706406
23909 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23911 * ext/codecparsers:
23912 codecparsers: update to gst-vaapi-branch commit 177c73b.
23913 a7e3255 add H.265 (HEVC) bitstream parser
23914 177c73b h264: fix picture level scaling lists derivation (rule B)
23915 14733f1 h264: fix parsing of VCL HRD parameters
23916 59a0b47 h264: store quantization matrices in zig-zag order
23917 ffb6e26 h264: add helpers to convert quantization matrices
23918 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
23919 719d1b0 mpeg2: turn internal consistency check into a g_assert()
23920 5241d8e all: remove some unused functions
23921 18eb312 all: fix for GST_DISABLE_GST_DEBUG
23922 963c04a all: make warnings more meaningful
23924 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23926 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23927 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23928 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23929 utils: add helpers for H.264 levels.
23930 - gst_vaapi_utils_h264_get_level():
23931 Returns GstVaapiLevelH264 from H.264 level_idc value
23932 - gst_vaapi_utils_h264_get_level_idc():
23933 Returns H.264 level_idc value from GstVaapiLevelH264
23934 - gst_vaapi_utils_h264_get_level_limits():
23935 Returns level limits as specified in Table A-1 of the H.264 standard
23936 - gst_vaapi_utils_h264_get_level_limits_table():
23937 Returns the Table A-1 specification
23939 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23941 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23942 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23943 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23944 utils: add new H.264 profiles.
23945 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
23946 and helper functiions.
23948 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23950 utils: add new H.264 helper functions.
23952 - gst_vaapi_utils_h264_get_profile():
23953 Returns GstVaapiProfile from H.264 profile_idc value
23954 - gst_vaapi_utils_h264_get_profile_idc():
23955 Returns H.264 profile_idc value from GstVaapiProfile
23957 - gst_vaapi_utils_h264_get_chroma_type():
23958 Returns GstVaapiChromaType from H.264 chroma_format_idc value
23959 - gst_vaapi_utils_h264_get_chroma_format_idc():
23960 Returns H.264 chroma_format_idc value from GstVaapiChromaType
23962 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23964 * gst-libs/gst/base/Makefile.am:
23965 * gst-libs/gst/vaapi/Makefile.am:
23966 Fix missing files in distribution tarball.
23967 https://bugzilla.gnome.org/show_bug.cgi?id=719776
23968 [Additional fixes and clean-ups]
23969 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23971 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23973 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23974 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23975 encoder: fix computation of max coded buffer size (again).
23976 The previous fix was only valid to express the maximum size of the
23977 macroblock layer, i.e. without any headers. Now, also account for
23978 the slice headers and top picture header, but also any other header
23979 we might stuff into the VA coded buffer, e.g. sequence headers.
23981 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23983 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23984 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23985 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23986 encoder: fix computation of max coded buffer size.
23987 Fix coded buffer size for each codec. A generic issue was that the
23988 number of macroblocks was incorrectly computed. The second issue was
23989 specific to MPEG-2 were the max number of bits per macroblock, and
23990 as defined by the standard, was incorrectly mapped to the (lower)
23991 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
23993 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23995 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23996 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23997 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23998 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23999 encoder: simplify VA context initialization process.
24000 Change get_context_info() into a set_context_info() function that
24001 initializes common defaults into the base class, thus allowing the
24002 subclasses to specialize the context info further on.
24003 The set_context_info() hook is also the location where additional
24004 context specific data could be initialized. At this point, we are
24005 guaranteed to have valid video resolution size and framerate. i.e.
24006 gst_vaapi_encoder_set_format() was called beforehand.
24008 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
24010 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24011 encoder: fix mpeg2 compilation error.
24012 https://bugzilla.gnome.org/show_bug.cgi?id=719746
24013 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24015 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24017 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24018 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24019 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24020 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24021 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24022 * gst/vaapi/gstvaapiencode.c:
24023 encoder: clean-ups and document public APIs.
24024 Clean public APIs up so that to better align with the decoder APIs.
24025 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
24026 return the VA coded buffer proxy. Also provide useful documentation
24027 for the public APIs.
24029 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24031 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24032 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24033 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24034 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
24035 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
24036 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
24037 through GstVaapiCodedBufferProxy user-data facility.
24038 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
24040 Partial fix for the following report:
24041 https://bugzilla.gnome.org/show_bug.cgi?id=719530
24043 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24045 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24046 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24047 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24048 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24049 * gst/vaapi/gstvaapiencode.c:
24050 encoder: refactor status codes.
24051 Drop obsolete or unused status codes. Align some status codes with the
24052 decoder counterparts.
24054 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24056 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24057 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24058 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
24059 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24060 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
24061 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24062 encoder: fix subclassing process.
24063 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
24064 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
24065 thus avoiding useless run-time checks. Also simplify the subclass
24066 initialization process to be less error prone.
24068 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24070 encoder: rework GstVaapiCodedBuffer and related proxy.
24071 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
24072 public and private interfaces. Besides, the map/unmap APIs should not
24073 be exposed as is but appropriate accessors should be provided instead.
24074 * GstVaapiCodedBuffer: VA coded buffer abstraction
24075 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
24076 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
24077 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
24078 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
24079 the specified max size, and bound to the supplied encoder
24080 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
24081 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
24082 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
24083 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
24084 Rationale: more optimized transfer functions might be provided in the
24085 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
24086 https://bugzilla.gnome.org/show_bug.cgi?id=719775
24088 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24090 * gst/vaapi/gstvaapidecode.c:
24091 * gst/vaapi/gstvaapiencode.c:
24092 * gst/vaapi/gstvaapipostproc.c:
24093 * gst/vaapi/gstvaapisink.c:
24094 plugins: fix reference leaks of VA display objects.
24095 Fix GstElement::set_context() implementation for all plug-in elements
24096 to avoid leaking an extra reference to the VA display, thus preventing
24097 correct cleanup of VA resources in GStreamer 1.2 builds.
24099 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24101 * gst/vaapi/gstvaapipluginutil.c:
24102 * gst/vaapi/gstvaapivideocontext.c:
24103 plugins: simplify gst_vaapi_ensure_display().
24104 Return earlier if the creation of a VA display failed. Likewise, simplify
24105 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
24108 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24110 * gst/vaapi/gstvaapivideomemory.c:
24111 plugins: fix memory leaks through GstVideoMeta maps.
24112 When GstVideoMeta maps were used, the supporting functions incorrectly
24113 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
24114 always increasing the associated GstMemory reference count and giving
24115 zero chance to actually release that, and subsequently the VA display.
24117 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24119 * gst-libs/gst/vaapi/gstvaapifilter.c:
24120 * gst/vaapi/gstvaapiencode_h264.c:
24121 * gst/vaapi/gstvaapiencode_mpeg2.c:
24122 * gst/vaapi/gstvaapipostproc.c:
24123 * gst/vaapi/gstvaapisink.c:
24124 * gst/vaapi/gstvaapiuploader.c:
24125 plugins: use G_PARAM_STATIC_STRINGS.
24126 This avoids a few string copies during initialization.
24128 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24130 * gst/vaapi/gstvaapivideometa.c:
24131 plugins: simplify VA video meta to only reference surface proxies.
24132 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
24133 now allocated from a surface pool. This also means that the local
24134 reference to the VA surface is also gone, as it could be extracted
24135 from the associated surface proxy.
24137 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24139 * gst/vaapi/gstvaapivideobuffer.c:
24140 * gst/vaapi/gstvaapivideobuffer.h:
24141 * gst/vaapi/gstvaapivideometa.c:
24142 * gst/vaapi/gstvaapivideometa.h:
24143 plugins: drop obsolete functions.
24144 Drop the following functions that are not longer used:
24145 - gst_vaapi_video_buffer_new_with_surface()
24146 - gst_vaapi_video_meta_new_with_surface()
24147 - gst_vaapi_video_meta_set_surface()
24148 - gst_vaapi_video_meta_set_surface_from_pool()
24150 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24152 * gst/vaapi/gstvaapivideometa.c:
24153 plugins: allow VA video meta to be allocated from surface proxy pools.
24154 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
24155 from surface pools instead of plain VA surfaces. This is to simplify
24156 allocations now that surface proxies are created from a surface pool.
24158 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24160 * docs/reference/libs/libs-sections.txt:
24161 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24162 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24163 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24164 surfaceproxy: add copy function.
24165 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
24166 proxy with the same information from the parent proxy, except that the
24167 user-defined destroy notify function is not copied over.
24168 The underlying VA surface is pushed back to the video pool only when
24169 the last reference to the parent surface proxy is released.
24171 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24173 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
24174 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
24175 * gst/vaapi/gstvaapiencode.c:
24176 vaapiencode: optimize _handle_frame() to avoid extra allocation.
24177 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
24178 and in particular the GstVaapiEncObjUserData object. i.e. directly use
24179 the VA surface proxy from the source buffer. This also makes the user
24180 data attached to the GstVideoCodecFrame more consistent between both
24181 the decoder and encoder plug-in elements.
24183 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24185 * gst/vaapi/gstvaapiencode.c:
24186 vaapiencode: fix memory leaks in _push_frame() on error.
24187 Simplify gst_vaapiencode_push_frame(), while also removing the call
24188 to gst_video_encoder_negotiate() since this is implicit in _finish()
24189 if caps changed. Also fixed memory leaks that occured on error.
24191 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24193 * gst/vaapi/gstvaapiencode.c:
24194 * gst/vaapi/gstvaapiencode.h:
24195 * gst/vaapi/gstvaapiencode_h264.c:
24196 * gst/vaapi/gstvaapiencode_h264.h:
24197 * gst/vaapi/gstvaapiencode_mpeg2.c:
24198 vaapiencode: additional clean-ups.
24199 Constify pointers wherever possible. Drop unused variables, and use
24200 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
24201 to correctly report errors, especially when in-place conversion from
24202 bytestream to avcC format failed.
24204 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24206 * gst/vaapi/gstvaapiencode.c:
24207 * gst/vaapi/gstvaapiencode.h:
24208 * gst/vaapi/gstvaapiencode_h264.c:
24209 * gst/vaapi/gstvaapiencode_h264.h:
24210 * gst/vaapi/gstvaapiencode_mpeg2.c:
24211 * gst/vaapi/gstvaapiencode_mpeg2.h:
24212 vaapiencode: move common properties to base class.
24213 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
24214 base class. The actual range of supported rate control modes is currently
24215 implemented as a plug-in element hook. This ought to be determined from
24216 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
24218 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24220 * gst/vaapi/gstvaapiencode_h264.c:
24221 * gst/vaapi/gstvaapiencode_mpeg2.c:
24222 vaapiencode: fix plugin description and debug name.
24223 Align the plug-in debug category to its actual name. i.e. enable debug
24224 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
24225 the plug-in element description to make it more consistent with other
24228 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24231 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24232 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24233 * gst-libs/gst/video/Makefile.am:
24234 * gst/vaapi/gstvaapiencode.c:
24235 * gst/vaapi/gstvaapiencode.h:
24236 * gst/vaapi/gstvaapiencode_h264.c:
24237 * gst/vaapi/gstvaapiencode_mpeg2.c:
24238 vaapiencode: add initial support for GStreamer 0.10.
24240 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24242 * gst-libs/gst/vaapi/gstcompat.h:
24243 libs: add more GstBuffer compat glue for GStreamer 0.10.
24244 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
24245 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
24248 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24251 * gst-libs/gst/video/Makefile.am:
24252 libs: always use built-in videoutils for GStreamer 0.10.
24253 GStreamer 0.10.36 is the latest and ultimate version to be released
24254 from the GStreamer 0.10 branch. i.e. no further releases are to be
24255 made. So, we can safely enable the built-in videoutils replacement
24256 now that they are in sync with the 0.10 branch.
24258 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24261 videoutils: update to master commit d4a15a5.
24262 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
24263 86096cc videodecoder: minor cosmetic changes to align a bit more with master
24264 b4b8b52 videodecoder: allow parse function to not use all data on adapter
24265 2145495 videodecoder: warn if frame list gets long
24266 36c3753 videodecoder: Also use the object lock to protect the output_state
24267 518c93d videodecoder: fix seeking again
24268 185fb63 video: Correct usage of the base class stream lock
24269 170e944 videodecoder: Expose _negotiate function
24271 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
24274 * gst-libs/gst/vaapi/Makefile.am:
24275 * tests/Makefile.am:
24276 Fix build with GStreamer >= 1.3.
24277 http://bugzilla.gnome.org/show_bug.cgi?id=715183
24278 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24280 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24283 configure: disable encoders with GStreamer 0.10.
24284 Don't try to build video encoders for GStreamer 0.10. Support code is
24285 not there yet, and probably will never for such an ancient version.
24287 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24289 * gst/vaapi/gstvaapiencode.c:
24290 vaapiencode: fix error handling while allocating output buffers.
24291 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
24292 unmap the coded buffer prior to returning an error.
24294 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24296 * gst/vaapi/gstvaapiencode.c:
24297 vaapiencode: fix error handling in _finish() hook.
24298 Fix GstVideoEncoder::finish() implementation to really return possible
24299 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
24301 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24303 * gst/vaapi/gstvaapiencode.c:
24304 * gst/vaapi/gstvaapiencode.h:
24305 * gst/vaapi/gstvaapiencode_h264.c:
24306 * gst/vaapi/gstvaapiencode_h264.h:
24307 * gst/vaapi/gstvaapiencode_mpeg2.c:
24308 * gst/vaapi/gstvaapiencode_mpeg2.h:
24309 vaapiencode: minor clean-ups.
24310 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
24311 the GObject type system. We are guaranteed to only deal with the same
24312 plug-in element object.
24314 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24316 * gst/vaapi/gstvaapiencode.c:
24317 * gst/vaapi/gstvaapiencode_h264.c:
24318 * gst/vaapi/gstvaapiencode_mpeg2.c:
24319 vaapiencode: fix support for raw YUV sink buffers.
24320 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
24321 The most efficient way to do so is to let the vaapiencode elements
24322 allocate a buffer pool, and subsequently buffers from it. This means
24323 that upstream elements are expected to honour downstream pools.
24324 If upstream elements insist on providing their own allocated buffers
24325 to the vaapiencode elements, then it possibly would be more efficient
24326 to insert a vaapipostproc element before the vaapiencode element.
24327 This is because vaapipostproc currently has better support than other
24328 elements for "foreign" raw YUV buffers.
24330 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24332 * gst/vaapi/gstvaapiencode.c:
24333 vaapiencode: fix support for GStreamer 1.2.
24335 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
24337 * gst/vaapi/gstvaapiencode.c:
24338 * gst/vaapi/gstvaapiencode_h264.c:
24339 * gst/vaapi/gstvaapiencode_mpeg2.c:
24340 vaapiencode: initial port to GStreamer 1.2.
24341 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24343 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
24345 * gst/vaapi/Makefile.am:
24346 * gst/vaapi/gstvaapi.c:
24347 * gst/vaapi/gstvaapiencode_mpeg2.c:
24348 * gst/vaapi/gstvaapiencode_mpeg2.h:
24349 plugins: add mpeg2 encoder element.
24350 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
24351 is called "vaapiencode_mpeg2".
24353 - rate-control: rate control mode (default: cqp - constant QP)
24354 - bitrate: desired bitrate in kbps (default: auto-calculated)
24355 - key-period: maximal distance between two key frames (default: 30)
24356 - max-bframes: number of B-frames between I and P (default: 2)
24357 - quantizer: constant quantizer (default: 8)
24358 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24360 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
24362 * gst/vaapi/Makefile.am:
24363 * gst/vaapi/gstvaapi.c:
24364 * gst/vaapi/gstvaapiencode_h264.c:
24365 * gst/vaapi/gstvaapiencode_h264.h:
24366 plugins: add h264 encoder element.
24367 Add GstVaapiEncodeH264 element object. The actual plug-in element
24368 is called "vaapiencode_h264".
24370 - rate-control: rate control mode (default: none)
24371 - bitrate: desired bitrate in kbps (default: auto-calculated)
24372 - key-period: maximal distance between two key frames (default: 30)
24373 - num-slices: number of slices per frame (default: 1)
24374 - max-bframes: number of B-frames between I and P (default: 0)
24375 - min-qp: minimal quantizer (default: 1)
24376 - init-qp: initial quantizer (default: 26)
24377 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24379 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
24381 * gst/vaapi/Makefile.am:
24382 * gst/vaapi/gstvaapiencode.c:
24383 * gst/vaapi/gstvaapiencode.h:
24384 plugins: add base encoder element.
24385 vaapiencode element is based on GstVideoEncoder APIs.
24386 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24388 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
24390 * gst-libs/gst/vaapi/Makefile.am:
24391 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24392 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
24393 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
24394 encoder: add mpeg2 encoder.
24395 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
24396 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24398 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
24400 * gst-libs/gst/vaapi/Makefile.am:
24401 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24402 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
24403 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
24404 encoder: add h264 encoder.
24405 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24407 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
24410 * gst-libs/gst/vaapi/Makefile.am:
24411 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24412 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24413 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
24414 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
24415 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24416 Add initial infrastructure for video encoding.
24417 Add initial API for video encoding: only basic interfaces and small
24418 encoder objects are implemented so far.
24419 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24421 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
24424 * gst-libs/gst/Makefile.am:
24425 * gst-libs/gst/base/Makefile.am:
24426 * gst-libs/gst/base/gstbitwriter.c:
24427 * gst-libs/gst/base/gstbitwriter.h:
24428 * gst-libs/gst/vaapi/Makefile.am:
24429 libs: add generic bitstream writer.
24430 GstBitWriter provides a bit writer that can write any number of bits
24431 to a pre-allocated memory buffer. Helper functions are also provided
24432 to write any number of bits from 8, 16, 32 and 64 bit variables.
24433 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24435 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
24437 * gst-libs/gst/vaapi/gstvaapicontext.c:
24438 * gst-libs/gst/vaapi/gstvaapicontext.h:
24439 libs: add support for rate-control to GstVaapiContext.
24440 Extend GstVaapiContextInfo structure to hold the desired rate control
24441 mode for encoding purposes. For decoding purposes, this field is not
24442 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
24443 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24445 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
24447 * gst-libs/gst/vaapi/gstvaapitypes.h:
24448 * gst-libs/gst/vaapi/gstvaapiutils.c:
24449 * gst-libs/gst/vaapi/gstvaapiutils.h:
24450 * gst-libs/gst/vaapi/gstvaapivalue.c:
24451 * gst-libs/gst/vaapi/gstvaapivalue.h:
24452 libs: add rate-control attributes.
24453 Add GstVaapiRateControl types and GType values in view to supporting
24454 rate controls for encoding. This is meant to be used for instance in
24456 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24458 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24461 Bump version for development.
24463 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24465 * gst/vaapi/Makefile.am:
24466 build: fix for Wayland headers not in standard include dirs.
24467 Fix build when Wayland headers don't live in plain system include dirs
24468 like /usr/include but rather in /usr/include/wayland for instance.
24469 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
24470 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24472 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
24474 * gst-libs/gst/vaapi/Makefile.am:
24475 build: link libgstvaapi-wayland against videoutils.
24476 This library is using symbols that don't exist in GStreamer 0.10 so
24477 it needs to link to built-in implementation (libgstvaapi-videoutils).
24478 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24479 Signed-off-by: Ross Burton <ross.burton@intel.com>
24480 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24482 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24484 * gst-libs/gst/vaapi/gstvaapifilter.c:
24485 * gst/vaapi/gstvaapipostproc.c:
24486 vaapostproc: fix memory leaks.
24487 Destroy VPP output surface pool on exit. Also avoid a possible crash
24488 in double-free situation caused by insufficiently reference counted
24489 array of formats returned during initialization.
24491 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24493 * gst/vaapi/gstvaapipostproc.c:
24494 * gst/vaapi/gstvaapipostproc.h:
24495 vaapipostproc: fix and optimize advanced deinterlacing mode.
24496 Fix advanced deinterlacing modes with VPP to track only up to 2 past
24497 reference buffers. This used to be 3 past reference buffers but this
24498 doesn't fit with the existing decode pipeline that only has 4 extra
24500 Also optimize references tracking to be only enabled when needed, i.e.
24501 when advanced deinterlacing mode is used. This means that we don't
24502 need to track past references for basic bob or weave deinterlacing.
24504 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24506 * gst/vaapi/gstvaapipostproc.c:
24507 vaapipostproc: fix "mixed" mode deinterlacing.
24508 In "mixed" interlaced streams, the buffer contains additional flags that
24509 specify whether the frame contained herein is interlaced or not. This means
24510 that we can alternatively get progressive or interlaced frames. Make sure
24511 to disable deinterlacing at the VPP level when the source buffer is no longer
24514 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24516 * gst/vaapi/gstvaapipostproc.c:
24517 vaapipostproc: fix memory leaks with advanced deinterlacing.
24518 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
24519 of past buffers. Completely reset the deinterlace state, thus destroying
24520 any buffer currently held, on _start(), _stop() and _destroy().
24522 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24526 - GStreamer 1.2 APIs are supported ;
24527 - Video Processing (VA/VPP) features.
24529 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24532 README: update for GStreamer >= 1.0.x and VPP features.
24534 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24536 * gst-libs/gst/vaapi/glibcompat.h:
24537 * gst-libs/gst/vaapi/gstvaapicontext.h:
24538 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24539 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24540 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24541 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24542 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24543 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24544 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24545 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24546 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24547 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24548 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24549 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24550 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24551 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24552 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24553 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24554 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24555 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24556 * gst-libs/gst/vaapi/gstvaapiimage.c:
24557 * gst-libs/gst/vaapi/gstvaapiimage.h:
24558 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24559 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24560 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24561 * gst-libs/gst/vaapi/gstvaapiobject.c:
24562 * gst-libs/gst/vaapi/gstvaapiobject.h:
24563 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24564 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24565 * gst-libs/gst/vaapi/gstvaapisurface.h:
24566 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24567 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24568 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24569 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24570 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24571 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24572 * gst-libs/gst/vaapi/gstvaapitexture.c:
24573 * gst-libs/gst/vaapi/gstvaapitexture.h:
24574 * gst-libs/gst/vaapi/gstvaapitypes.h:
24575 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24576 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24577 * gst-libs/gst/vaapi/gstvaapivalue.c:
24578 * gst-libs/gst/vaapi/gstvaapivalue.h:
24579 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24580 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24581 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24582 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24583 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24584 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24585 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24586 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24587 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24588 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24589 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24590 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24591 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24592 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24593 * gst/vaapi/gstvaapi.c:
24594 * gst/vaapi/gstvaapidecode.h:
24595 * gst/vaapi/gstvaapidownload.h:
24596 * gst/vaapi/gstvaapipluginutil.c:
24597 * gst/vaapi/gstvaapipluginutil.h:
24598 * gst/vaapi/gstvaapipostproc.h:
24599 * gst/vaapi/gstvaapisink.h:
24600 * gst/vaapi/gstvaapivideoconverter_glx.h:
24604 * tests/test-display.c:
24605 * tests/test-jpeg.c:
24606 * tests/test-jpeg.h:
24607 * tests/test-mpeg4.c:
24608 * tests/test-mpeg4.h:
24609 * tests/test-surfaces.c:
24610 * tests/test-windows.c:
24611 legal: update copyright notice dates.
24613 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24615 * gst-libs/gst/vaapi/glibcompat.h:
24616 * gst-libs/gst/vaapi/gstcompat.h:
24617 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24618 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24619 * gst-libs/gst/vaapi/gstvaapicompat.h:
24620 * gst-libs/gst/vaapi/gstvaapicontext.c:
24621 * gst-libs/gst/vaapi/gstvaapicontext.h:
24622 * gst-libs/gst/vaapi/gstvaapidebug.h:
24623 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24624 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24625 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24626 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24627 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24628 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24629 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24630 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24631 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24632 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24633 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24634 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24635 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24636 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24637 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24638 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
24639 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
24640 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24641 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24642 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24643 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24644 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24645 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24646 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24647 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24648 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24649 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24650 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24651 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24652 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24653 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24654 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24655 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24656 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24657 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24658 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24659 * gst-libs/gst/vaapi/gstvaapifilter.c:
24660 * gst-libs/gst/vaapi/gstvaapifilter.h:
24661 * gst-libs/gst/vaapi/gstvaapiimage.c:
24662 * gst-libs/gst/vaapi/gstvaapiimage.h:
24663 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
24664 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24665 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24666 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
24667 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24668 * gst-libs/gst/vaapi/gstvaapiobject.c:
24669 * gst-libs/gst/vaapi/gstvaapiobject.h:
24670 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24671 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
24672 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
24673 * gst-libs/gst/vaapi/gstvaapipixmap.c:
24674 * gst-libs/gst/vaapi/gstvaapipixmap.h:
24675 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
24676 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
24677 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
24678 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24679 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24680 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24681 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24682 * gst-libs/gst/vaapi/gstvaapisurface.c:
24683 * gst-libs/gst/vaapi/gstvaapisurface.h:
24684 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24685 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24686 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24687 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24688 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24689 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24690 * gst-libs/gst/vaapi/gstvaapitexture.c:
24691 * gst-libs/gst/vaapi/gstvaapitexture.h:
24692 * gst-libs/gst/vaapi/gstvaapitypes.h:
24693 * gst-libs/gst/vaapi/gstvaapiutils.c:
24694 * gst-libs/gst/vaapi/gstvaapiutils.h:
24695 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24696 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24697 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24698 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24699 * gst-libs/gst/vaapi/gstvaapivalue.c:
24700 * gst-libs/gst/vaapi/gstvaapivalue.h:
24701 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24702 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24703 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24704 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24705 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24706 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24707 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24708 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24709 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24710 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24711 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24712 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24713 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24714 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24715 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24716 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24717 * gst-libs/gst/vaapi/sysdeps.h:
24718 * gst-libs/gst/vaapi/video-format.c:
24719 * gst-libs/gst/vaapi/video-format.h:
24720 * gst/vaapi/gstvaapi.c:
24721 * gst/vaapi/gstvaapidecode.c:
24722 * gst/vaapi/gstvaapidecode.h:
24723 * gst/vaapi/gstvaapidownload.c:
24724 * gst/vaapi/gstvaapidownload.h:
24725 * gst/vaapi/gstvaapipluginutil.c:
24726 * gst/vaapi/gstvaapipluginutil.h:
24727 * gst/vaapi/gstvaapipostproc.c:
24728 * gst/vaapi/gstvaapipostproc.h:
24729 * gst/vaapi/gstvaapisink.c:
24730 * gst/vaapi/gstvaapisink.h:
24731 * gst/vaapi/gstvaapiupload.c:
24732 * gst/vaapi/gstvaapiupload.h:
24733 * gst/vaapi/gstvaapiuploader.c:
24734 * gst/vaapi/gstvaapiuploader.h:
24735 * gst/vaapi/gstvaapivideobuffer.c:
24736 * gst/vaapi/gstvaapivideobuffer.h:
24737 * gst/vaapi/gstvaapivideobufferpool.c:
24738 * gst/vaapi/gstvaapivideobufferpool.h:
24739 * gst/vaapi/gstvaapivideocontext.c:
24740 * gst/vaapi/gstvaapivideocontext.h:
24741 * gst/vaapi/gstvaapivideoconverter_glx.c:
24742 * gst/vaapi/gstvaapivideoconverter_glx.h:
24743 * gst/vaapi/gstvaapivideoconverter_x11.c:
24744 * gst/vaapi/gstvaapivideoconverter_x11.h:
24745 * gst/vaapi/gstvaapivideomemory.c:
24746 * gst/vaapi/gstvaapivideomemory.h:
24747 * gst/vaapi/gstvaapivideometa.c:
24748 * gst/vaapi/gstvaapivideometa.h:
24749 * gst/vaapi/gstvaapivideometa_texture.c:
24750 * gst/vaapi/gstvaapivideometa_texture.h:
24759 * tests/simple-decoder.c:
24760 * tests/test-decode.c:
24761 * tests/test-decode.h:
24762 * tests/test-display.c:
24763 * tests/test-filter.c:
24764 * tests/test-h264.c:
24765 * tests/test-h264.h:
24766 * tests/test-jpeg.c:
24767 * tests/test-jpeg.h:
24768 * tests/test-mpeg2.c:
24769 * tests/test-mpeg2.h:
24770 * tests/test-mpeg4.c:
24771 * tests/test-mpeg4.h:
24772 * tests/test-surfaces.c:
24773 * tests/test-textures.c:
24774 * tests/test-vc1.c:
24775 * tests/test-vc1.h:
24776 * tests/test-windows.c:
24777 legal: add per-file authorship information.
24778 Credit original authors on a per-file basis as we cannot expect people
24779 to know all country-specific rules, or bother browsing through the git
24782 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24788 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24793 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24795 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24796 decoder: don't include obsolete headers.
24797 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
24798 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
24801 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24803 * gst/vaapi/Makefile.am:
24804 * gst/vaapi/gstvaapi.c:
24805 * gst/vaapi/gstvaapipostproc.c:
24806 vaapipostproc: add initial support for GStreamer 1.2.
24807 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
24808 right now so that to cope with auto-plugging issues/regressions. e.g.
24809 this happens when the correct set of expected caps are being exposed.
24810 This means that, currently, the proposed caps are not fully accurate.
24812 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
24814 * gst/vaapi/gstvaapipostproc.c:
24815 * gst/vaapi/gstvaapipostproc.h:
24816 vaapipostproc: add support for denoise and sharpen filters.
24817 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24819 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24821 * gst/vaapi/gstvaapipostproc.c:
24822 * gst/vaapi/gstvaapipostproc.h:
24823 vaapipostproc: add support for advanced deinterlacing.
24824 Add initial support for advanced deinterlacing. The history buffer
24825 size is arbitrarily set to 3 references for now.
24827 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24829 * gst/vaapi/gstvaapipostproc.c:
24830 vaapipostproc: fix deinterlacing with VPP.
24831 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
24832 for the first field. Render flags were supplied instead of the actual
24833 deinterlacing flags (deint_flags).
24835 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24837 * gst/vaapi/gstvaapipostproc.c:
24838 vaapipostproc: fix transform caps.
24839 Fix GstBaseTransform::transform_caps() implementation to always return
24840 the complete set of allowed sink pad caps (unfixated) even if the src
24841 pad caps we are getting are fixated. Rationale: there are just so many
24842 possible combinations, and it was wrong to provide a unique set anyway.
24843 As a side effect, this greatly simplifies the ability to derive src pad
24844 caps from fixated sink pad caps.
24846 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
24848 * docs/reference/libs/libs-sections.txt:
24849 * gst-libs/gst/vaapi/gstvaapifilter.c:
24850 * gst-libs/gst/vaapi/gstvaapifilter.h:
24851 filter: add helper to specify references for deinterlacing.
24852 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
24853 list of surfaces used for forward or backward reference in advanced
24854 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
24855 The list of surfaces used as deinterlacing references shall be live
24856 until the next call to gst_vaapi_filter_process().
24857 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24859 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24861 * gst-libs/gst/vaapi/gstvaapifilter.c:
24862 * gst-libs/gst/vaapi/gstvaapifilter.h:
24863 * gst-libs/gst/vaapi/gstvaapiutils.c:
24864 * gst/vaapi/gstvaapipostproc.c:
24865 * tests/test-filter.c:
24866 filter: fix semantics of deinterlacing flags.
24867 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
24868 flag is meant to specify the organization of reference frames used in
24869 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
24870 to specify that the top-field of the supplied input surface is to be
24871 used for deinterlacing. Conversely, if not set, this means that the
24872 bottom field of the supplied input surface will be used instead.
24874 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24876 * docs/reference/libs/libs-sections.txt:
24877 * gst-libs/gst/vaapi/gstvaapifilter.c:
24878 * gst-libs/gst/vaapi/gstvaapifilter.h:
24879 filter: add helpers to check for supported/active operation.
24880 Add a couple of helper functions:
24881 - gst_vaapi_filter_has_operation(): checks whether the VA driver
24882 advertises support for the supplied operation ;
24883 - gst_vaapi_filter_use_operation(): checks whether the supplied
24884 operation was already enabled to its non-default value.
24886 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24888 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24889 libs: fix GstVaapiSurfaceProxy destroy notify call site.
24890 The user-defined destroy notify function is meant to be called only when
24891 the surface proxy was fully released, i.e. once it actually released the
24892 VA surface back to the underlying pool.
24894 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
24896 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24897 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24898 libs: make GstVaapiVideoPool thread-safe.
24899 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24900 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24902 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
24904 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24905 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24906 libs: robustify decoder objects and surface proxy initialization.
24907 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
24908 sequences to have the expected default values set beforehand in case of an
24909 error raising up further during creation. i.e. make it possible to cleanly
24910 destroy those partially initialized objects.
24911 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24912 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24914 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24916 * gst/vaapi/gstvaapidecode.c:
24917 vaapidecode: fix decoder flush.
24918 There are situations where gst_video_decoder_flush() is called, and
24919 this subsequently produces a gst_video_decoder_reset() that kills the
24920 currently active GstVideoCodecFrame. This means that it no longer
24921 exists by the time we reach GstVideoDecoder::finish() callback, thus
24922 possibly resulting in a crash if we assumed spare data was still
24923 available for decode (current_frame_size > 0).
24924 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
24925 that means a flush, thus performing the actual operations there like
24926 calling gst_video_decoder_have_frame() if pending data is available.
24928 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24930 * gst/vaapi/gstvaapidecode.c:
24931 * gst/vaapi/gstvaapidecode.h:
24932 vaapidecode: fix dead-locks with decoder task.
24933 Review all interactions between the main video decoder stream thread
24934 and the decode task to derive a correct sequence of operations for
24935 decoding. Also avoid extra atomic operations that become implicit under
24936 the GstVideoDecoder stream lock.
24938 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24940 * gst/vaapi/gstvaapidecode.c:
24941 vaapidecode: fix hard reset for seek cases.
24942 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
24943 and completely purge any decoded output frame that may come out from
24944 it. At this stage, the GstVaapiDecoder shall be in a complete clean
24945 state to start decoding over new buffers.
24946 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24948 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24950 * gst/vaapi/gstvaapidecode.c:
24951 * gst/vaapi/gstvaapidecode.h:
24952 vaapidecode: drop decode timeout, always wait for a free surface.
24953 vaapidecode used to wait up to one second past the expected time of
24954 presentation for the last decoded frame. This is not realistic in
24955 practice when it comes to video pause/resume. Changed behaviour to
24956 unconditionnally wait for a free VA surface prior to continuing the
24957 decoding. The decode task will continue pushing the output frames to
24958 the downstream element while also reporting errors at the same time
24959 to the main thread.
24960 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24961 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24963 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24965 * gst/vaapi/gstvaapidecode.c:
24966 vaapidecode: fix srcpad caps for GStreamer 1.2.
24967 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
24968 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
24969 that it relied on possibly un-initialized data. Fix srcpad caps to be
24970 initialized from a sanitized copy of GstVideoDecoder output state caps.
24971 Note: the correct way to expose the srcpad caps triggers an additional
24972 issue in core GStreamer auto-plugging capabilities as the correct caps
24973 to be exposed should be format=ENCODED with memory:VASurface caps feature
24974 at the minimum. In some situations, we could determine the underlying
24975 VA surface format, but this is not always possible. e.g. cases where it
24976 is not allowed to expose the underlying VA surface data, or when the
24977 VA driver implementation cannot actually provide such information.
24979 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24981 * gst/vaapi/gstvaapidecode.c:
24982 * gst/vaapi/gstvaapisink.c:
24983 plugins: streamline VA formats exposed in caps to a realistic set.
24984 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
24985 output formats for GStreamer 1.2 in caps to a realistic subset. This
24986 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
24987 underlying VA surface format, or if it is actually not allowed to get
24988 access to the surface contents.
24990 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24992 * gst/vaapi/gstvaapidecode.c:
24993 * gst/vaapi/gstvaapisink.c:
24994 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
24995 Fix vaapidecode srcpad caps to only expose RGBA video format for the
24996 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
24997 so far. Besides, drop this meta from the vaapisink sinkpad caps since
24998 we really don't support that for rendering.
24999 https://bugzilla.gnome.org/show_bug.cgi?id=711828
25001 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25004 configure: automatically detect GStreamer API version.
25005 Automatically detect GStreamer API version. The --with-gstreamer-api
25006 configure option now defaults to "autodetect" and configure then tries
25007 to derive the GStreamer API version from the highest version based on
25008 what pkg-config --modversion would report.
25009 https://bugzilla.gnome.org/show_bug.cgi?id=711657
25011 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
25013 * gst/vaapi/gstvaapipostproc.c:
25014 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
25015 Fix raw YUV data uploaded as in the following pipeline:
25016 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
25017 The main reason why it failed was that the videoparse element simply
25018 allocates GstBuffer with raw data chunk'ed off the sink pad without
25019 any prior knowledge of the actual frame info. i.e. it basically just
25020 calls gst_adapter_take_buffer().
25021 We could avoid the extra copy performed in vaapipostproc if the videoparse
25022 element was aware of the downstream pool and bothers copying line by
25023 line, for each plane. This means that, for a single frame per buffer,
25024 the optimizatin will be to allocate the video buffer downstream, map
25025 it, and copy each line that is coming through until we need to fills
25026 in the successive planes.
25027 Still, optimized raw YUV uploads already worked with the following:
25028 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
25029 https://bugzilla.gnome.org/show_bug.cgi?id=711250
25030 [clean-ups, fixed error cases to unmap and unref outbuf]
25031 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25033 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25035 * gst/vaapi/gstvaapipostproc.c:
25036 vaapipostproc: try to downgrade deinterlace-method when needed.
25037 If the currently selected deinterlacing method is not supported by the
25038 underlying hardware, then try to downgrade the method to a supported one.
25039 At the minimum, basic bob-deinterlacing shall always be supported.
25041 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25043 * gst/vaapi/gstvaapipostproc.c:
25044 vaapipostproc: add initial support for deinterlacing with VPP.
25045 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
25046 this only covers bob-deinterlacing when the output pixel format is
25049 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25051 * gst/vaapi/gstvaapipostproc.c:
25052 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
25053 The size argument for GstBaseTransform::transform_size() hook is a
25054 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
25056 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25058 * gst/vaapi/gstvaapipostproc.c:
25059 * gst/vaapi/gstvaapipostproc.h:
25060 vaapipostproc: add initial support for scaling.
25061 Add initial support for basic scaling with size specified through the
25062 "width" and "height" properties. If either user-provided dimension is
25063 zero and "force-aspect-ratio" is set to true (the default), then the
25064 other dimension is scaled to preserve the aspect ratio.
25066 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25068 * gst/vaapi/gstvaapipostproc.c:
25069 * gst/vaapi/gstvaapipostproc.h:
25070 vaapipostproc: add initial support for color conversion.
25071 If VPP is available, we always try to implicitly convert the source
25072 buffer to the "native" surface format for the underlying accelerator.
25073 This means that no optimization is performed yet to propagate raw YUV
25074 buffers to the downstream element as is, if VPP is available. i.e. it
25075 will always cause a color conversion.
25077 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25079 * gst/vaapi/gstvaapipostproc.c:
25080 vaapipostproc: fix bug when user disabled deinterlacing.
25081 Fix pipeline error / hang when the user disabled deinterlacing through
25082 the deinterlace-mode=disabled property setting.
25084 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25086 * gst/vaapi/gstvaapipostproc.c:
25087 * gst/vaapi/gstvaapipostproc.h:
25088 vaapipostproc: factor out operations to be applied into flags.
25089 Even if we only support deinterlacing for now, use flags to specify
25090 which filters are to be applied to each frame we receive in transform().
25091 This is preparatory work for integrating new filters.
25093 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25095 * gst/vaapi/gstvaapipostproc.c:
25096 * gst/vaapi/gstvaapipostproc.h:
25097 vaapipostproc: add support for raw YUV video source buffers.
25098 Allow video processing from raw YUV buffers coming from the sink pad,
25099 while still producing a VA surface for the downstream elements.
25101 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25103 * gst/vaapi/gstvaapipluginutil.c:
25104 * gst/vaapi/gstvaapipluginutil.h:
25105 * gst/vaapi/gstvaapipostproc.c:
25106 vaapipostproc: add support for "mixed" interlace mode.
25107 Add support for "mixed" interlace-mode, whereby the video frame buffer
25108 shall be deinterlaced only if its flags mention that's actually an
25109 interlaced frame buffer.
25111 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25113 * gst-libs/gst/vaapi/gstcompat.h:
25114 * gst/vaapi/gstvaapipostproc.c:
25115 * gst/vaapi/gstvaapipostproc.h:
25116 * gst/vaapi/gstvaapivideobuffer.c:
25117 * gst/vaapi/gstvaapivideobuffer.h:
25118 vaapipostproc: rework plug-in element.
25119 Rewrite the vaapipostproc plug-in element so that it derives from
25120 GstBaseTransform, thus simplifying the caps negotiation process.
25122 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25124 * gst/vaapi/gstvaapivideobufferpool.c:
25125 * gst/vaapi/gstvaapivideomemory.c:
25126 * gst/vaapi/gstvaapivideomemory.h:
25127 plugins: fix and optimize check for buffer pool allocator params.
25128 Reset the buffer pool allocator only if the config caps changed in a
25129 sensible way: format or resolution change. i.e. don't bother with
25130 other caps like colorimetry et al. as this doesn't affect the way to
25131 allocate VA surfaces or images.
25133 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25135 * gst/vaapi/gstvaapivideomemory.c:
25136 plugins: enable memory maps for read & write with direct-rendering.
25137 Enable read and write mappings only if direct-rendering is supported.
25138 Otherwise, this means that we may need to download data from the VA
25139 surface first for correctness, even if the VA surface doesn't need to
25140 be read at all. i.e. sometimes, READWRITE mappings are meant for
25141 surfaces that are written to first, and read afterwards for further
25143 https://bugzilla.gnome.org/show_bug.cgi?id=704078
25145 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25147 * gst/vaapi/gstvaapivideomemory.c:
25148 plugins: fix check for direct-rendering support.
25149 Fix check for direct-rendering if the creation of VA surfaces with
25150 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
25151 that we tried to allocate a VA surface based on the corresponding
25152 chroma type. i.e. in that particular case, we have to make sure that
25153 the derived image has actually the expected format.
25155 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25157 * gst/vaapi/gstvaapivideobufferpool.c:
25158 * gst/vaapi/gstvaapivideomemory.c:
25159 * gst/vaapi/gstvaapivideomemory.h:
25160 plugins: fix buffer pool reset_buffer() to reset memory resources.
25161 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
25162 memory resources, and more particularly the VA surface proxy. Most
25163 importantly, the GstVaapiVideoMeta is retained. Cached surface in
25164 memory are released, thus triggering a new allocation the next time
25165 we need to map the buffer.
25167 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25169 * gst/vaapi/gstvaapivideomemory.c:
25170 * gst/vaapi/gstvaapivideomemory.h:
25171 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
25172 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
25173 pool stored in the parent VA memory allocator.
25174 This fixes the following scenario:
25175 - VA video buffer 1 is allocated from a buffer pool
25176 - Another video buffer is created, and inherits info from buffer 1
25177 - Buffer 1 is released, thus pushing it back to the buffer pool
25178 - New buffer alloc request comes it, this yields buffer 1 back
25179 - At this stage, buffers 1 and 2 still share the same underlying VA
25180 surface, but buffer 2 was already submitted downstream for further
25181 processing, thus conflicting with additional processing we were
25182 about to perform on buffer 1.
25183 Maybe the core GstBufferPool implementation should have been fixed
25184 instead to actually make sure that the returned GstBuffer memory we
25185 found from the pool is writable?
25187 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25189 * gst/vaapi/gstvaapiuploader.c:
25190 plugins: create a proxy for GstVaapiUploader allocated buffers.
25191 Always make sure to allocate a VA surface proxy for GstVaapiUploader
25192 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
25194 This fixes cases where we want to retain the underlying surface longer,
25195 instead of releasing it back to the surface pool right away.
25197 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25199 * gst/vaapi/gstvaapidecode.c:
25200 * gst/vaapi/gstvaapipluginutil.c:
25201 * gst/vaapi/gstvaapipluginutil.h:
25202 * gst/vaapi/gstvaapipostproc.c:
25203 plugins: add helper function to disable deinterlacing in caps.
25204 Add gst_caps_set_interlaced() helper function that would reset the
25205 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
25206 interlaced field to "false" for GStreamer 0.10.
25208 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25210 * gst-libs/gst/vaapi/gstvaapifilter.c:
25211 filter: fix memory leak of VPP operations.
25212 Fix ensure_operations() to release the VPP operations array if non
25213 NULL, prior to returning to the caller. The former function was also
25214 renamed to a more meaningful get_operations() since the caller owns
25215 the returned array that needs to be released.
25217 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
25219 * gst-libs/gst/vaapi/gstvaapifilter.c:
25220 filter: fix first-time operation lookup.
25221 Fix first-time operation lookup through find_operation() if the set
25222 of supported operations was not initially determined through the
25223 gst_vaapi_filter_get_operations() helper function.
25224 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25226 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
25228 * gst-libs/gst/vaapi/gstvaapifilter.c:
25229 filter: fix colorbalance related subtypes.
25230 Fix intiialization of GstVaapiFilterOpData for colorbalance related
25231 operations. In particular, fill in the va_subtype field accordingly.
25232 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25234 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25236 * gst-libs/gst/vaapi/gstvaapifilter.c:
25237 filter: fix VA-API 0.34.0 symbol guards.
25238 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
25239 that need to be guarded for libva 0.34 and 0.33, respectively.
25240 https://bugzilla.gnome.org/show_bug.cgi?id=709102
25241 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25243 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25245 * gst/vaapi/gstvaapidecode.c:
25246 * gst/vaapi/gstvaapipluginutil.c:
25247 * gst/vaapi/gstvaapisink.c:
25248 plugins: hanle the context query in any pad.
25249 Also this patch simplifies the code, since now the query is common for the
25250 decoder and the sink.
25251 https://bugzilla.gnome.org/show_bug.cgi?id=709200
25253 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25255 * gst/vaapi/gstvaapivideocontext.c:
25256 plugins: query upstream element for a GstContext.
25257 Fix gst_vaapi_video_context_prepare() to also query upstream elements
25258 for a valid GstContext. Improve comments regarding the steps used to
25259 lookup or build that context, thus conforming to the GstContext API
25261 https://bugzilla.gnome.org/show_bug.cgi?id=709112
25262 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25264 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25267 * debian.upstream/control.in:
25268 Fix detection and packaging of GStreamer 1.2.x builds.
25269 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
25270 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
25271 purposes, update the versioning to -1.2 suffix instead.
25273 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25275 * gst/vaapi/Makefile.am:
25276 * gst/vaapi/gstvaapidecode.c:
25277 * gst/vaapi/gstvaapidecode.h:
25278 * gst/vaapi/gstvaapisink.c:
25279 * gst/vaapi/gstvaapivideometa_texture.c:
25280 * gst/vaapi/gstvaapivideometa_texture.h:
25281 plugins: add support for GstVideoGLTextureUploadMeta.
25282 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
25283 requested, and more specifically under a GLX configuration, then add
25284 the GstVideoGLTextureUploadMeta to the output buffer.
25285 https://bugzilla.gnome.org/show_bug.cgi?id=703236
25286 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25288 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25290 * gst/vaapi/gstvaapidecode.c:
25291 * gst/vaapi/gstvaapisink.c:
25292 * gst/vaapi/gstvaapivideomemory.h:
25293 plugins: add support for GstCaps features.
25294 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
25295 as expressed in caps, to the more standard use of caps features. i.e.
25296 add "memory:VASurface" feature attribute to the associated caps.
25297 https://bugzilla.gnome.org/show_bug.cgi?id=703271
25298 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25300 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25302 * gst/vaapi/gstvaapidecode.c:
25303 * gst/vaapi/gstvaapisink.c:
25304 plugins: improve ::query() debugging messages.
25305 Fix gst_vaapidecode_query() to correctly display the query type name,
25306 instead of randomly displaying that we shared the underlying display.
25307 Also add debug info for the GstVaapiSink::query() handler, i.e. the
25308 supplied query type name actually.
25309 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25311 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25313 * gst/vaapi/gstvaapidecode.c:
25314 * gst/vaapi/gstvaapisink.c:
25315 plugins: add support for GstContext API.
25316 Add support for the new GstContext API from GStreamer 1.2.x.
25317 - implement the GstElement::set_context() hook ;
25318 - reply to the `context' query from downstream elements.
25319 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25320 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25322 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25324 * gst/vaapi/Makefile.am:
25325 * gst/vaapi/gstvaapipluginutil.c:
25326 * gst/vaapi/gstvaapivideocontext.c:
25327 * gst/vaapi/gstvaapivideocontext.h:
25328 plugins: add compat layer for GstVideoContext.
25329 Add thin compatibility layer for the deprecated GstVideoContext API.
25330 For GStreamer API >= 1.2, this involves the following two functions:
25331 - gst_vaapi_video_context_prepare(): queries if a context is already
25332 set in the pipeline ;
25333 - gst_vaapi_video_context_propagate(): propagates the newly-created
25334 context to the rest of the pipeline.
25335 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25336 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25338 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25341 * gst/vaapi/Makefile.am:
25342 * gst/vaapi/gstvaapi.c:
25343 * gst/vaapi/gstvaapidecode.c:
25344 * gst/vaapi/gstvaapipluginutil.c:
25345 * gst/vaapi/gstvaapisink.c:
25346 * gst/vaapi/gstvaapivideobuffer.c:
25347 plugins: initial port to GStreamer 1.2.
25348 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
25349 is rather minimalistic so that to test the basic functionality.
25350 Disable vaapipostproc plugin for now as further polishing is needed.
25351 Also disable GstVideoContext interface support since this API is now
25352 gone in 1.2.x. This is preparatory work for GstContext support.
25353 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25354 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25356 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25358 * tests/simple-decoder.c:
25359 tests: simple-decoder: fix for non-X11 backends.
25360 Don't try to create pixmaps if we have not requested that feature. This
25361 fixes execution for non-X11 backends, and most specifically DRM video
25364 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25366 * ext/codecparsers:
25367 codecparsers: update to gst-vaapi-branch commit b33bd32.
25368 b33bd32 jpeg: fix and optimize scan for next marker code
25370 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25372 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25373 jpeg: fix calculation of MCU count.
25374 Fix calculation of MCU count for image sizes that are not a multiple
25375 of 8 pixels in either dimension, but also for non-common sampling
25376 factors like 4:2:2 in non-interleaved mode.
25378 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25380 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25381 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25382 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25383 jpeg: add support for multiscan images.
25384 Add support for images with multiple scans per frame. The Huffman table
25385 can be updated before SOS, and thus possibly requiring multiple uploads
25386 of Huffman tables to the VA driver. So, the latter must be able to cope
25387 with multiple VA buffers of type 'huffman-table' and with the correct
25390 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25392 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25393 jpeg: improve robustness when packets are missing.
25394 Improve robustness when some expected packets where not received yet
25395 or that were not correctly decoded. For example, don't try to decode
25396 a picture if there was no valid frame headers.
25398 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25400 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25401 jpeg: minor clean-ups.
25402 Improve debugging and error messages. Rename a few variables to fit the
25403 existing naming conventions. Change some fatal asserts to non-fatal
25406 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25408 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25409 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25410 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25411 jpeg: rework and optimize parser.
25412 Split the input buffer data into decoder units that represent a JPEG
25413 segment. Handle scan decoder unit specifically so that it can include
25414 both the scan header (SOS) but also any other ECS or RSTi segment.
25415 That way, we parse the input buffer stream only once at the gst-vaapi
25416 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
25417 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
25418 determine segment boundaries and decode them.
25419 In practice, this is a +15 to +25% performance improvement.
25421 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25423 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25424 jpeg: handle comment segments.
25425 Fix decode_buffer() function to gracefully skip comment (COM) segments.
25426 This fixes decoding of streams generated by certain cameras, e.g. like
25427 the Logitech Pro C920.
25428 https://bugzilla.gnome.org/show_bug.cgi?id=708208
25429 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25431 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25433 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25434 jpeg: fix determination of image bounds.
25435 Look for the exact image bounds characterised by the <SOI> and <EOI>
25436 markers. Use the gst_jpeg_parse() codec parser utility function to
25437 optimize the lookup for the next marker segment.
25438 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25440 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25442 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25443 jpeg: fix calculation of offset to next marker segment.
25444 Fix calculation of the offset to the next marker segment since the
25445 correction of the codecparser part to match the API specification.
25446 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
25447 of the segment minus any marker prefix.
25448 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25449 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25451 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25453 * ext/codecparsers:
25454 codecparsers: update to gst-vaapi-branch commit 23c7dde.
25455 23c7dde jpeg: fix calculation of segment size
25457 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25460 Bump version for development.
25462 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25468 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25473 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
25476 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25477 configure: fix detection of VA/JPEG decoding API.
25478 Fix detection of VA/JPEG decoding API with non-standard libva packages.
25479 More precisely, some packages were shipping with a <va/va.h> header that
25480 did not include <va/va_dec_jpeg.h>.
25481 https://bugzilla.gnome.org/show_bug.cgi?id=706055
25482 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25484 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
25486 * gst/vaapi/gstvaapisink.c:
25487 vaapisink: ensure the uploader is setup for upstream allocated buffers.
25488 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
25489 is setup in case upstream elements allocate buffers themselves without
25490 honouring our GstVaapiSink::bufer_alloc() hook.
25491 In particular, this fixes support for OGG video streams with WebKit.
25492 https://bugzilla.gnome.org/show_bug.cgi?id=703934
25493 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25495 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25497 * gst/vaapi/gstvaapisink.c:
25498 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
25499 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
25502 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25504 * gst/vaapi/gstvaapisink.c:
25505 * gst/vaapi/gstvaapisink.h:
25506 vaapisink: handle raw buffers not created from VA video buffer pool.
25507 Handle raw video buffers that were not created from a VA video buffer
25508 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
25509 builds instead of the GstVaapiUploader.
25510 https://bugs.freedesktop.org/show_bug.cgi?id=55818
25512 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25514 * gst/vaapi/gstvaapidecode.c:
25515 vaapidecode: remove extraneous size information from allowed caps.
25516 Fix _getcaps() implementation to not report codecs with size information
25517 filled in the returned caps. That's totally useless nowadays. Ideally,
25518 this is a hint to insert a video parser element, thus allowing future
25519 optimizations, but this is not a strict requirement for gstreamer-vaapi,
25520 which is able to parse the elementary bitstreams itself.
25521 https://bugzilla.gnome.org/show_bug.cgi?id=704734
25523 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25525 * gst/vaapi/gstvaapidecode.c:
25526 * gst/vaapi/gstvaapidecode.h:
25527 vaapidecode: submit the last frame from output adapter to decoder.
25528 If there is no frame delimiter at the end of the stream, e.g. no
25529 end-of-stream or end-of-sequence marker, and that the current frame
25530 was fully parsed correctly, then assume that last frame is complete
25531 and submit it to the decoder.
25532 https://bugzilla.gnome.org/show_bug.cgi?id=705123
25533 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25534 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25536 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25538 * gst/vaapi/gstvaapidecode.c:
25539 * gst/vaapi/gstvaapidecode.h:
25540 vaapidecode: push all decoded frames from within the task.
25541 Make sure to push all decoded frames from the task so that the unlying
25542 VA surfaces could all be rendered from the same thread.
25544 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25546 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25547 wayland: render the raw surface if VPP failed.
25548 As a last resort, if video processing capabilities (VPP) are not available,
25549 or they did not produce anything conclusive enough, then try to fallback to
25550 the original rendering code path whereby the whole VA surface is rendered
25551 as is, no matter of video cropping or deinterlacing requests.
25552 Note: under those conditions, the visual outcome won't be correct but at
25553 least, something gets displayed instead of bailing out.
25555 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25557 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25558 wayland: add supporting for video processing.
25559 Try to use VA/VPP processing capabilities to handle video cropping and
25560 additional rendering flags that may not be directly supported by the
25561 underlying hardware when exposing a suitable Wayland buffer for the
25562 supplied VA surface. e.g. deinterlacing, different color primaries than
25565 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25567 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25568 wayland: add new frame redraw infrastructure.
25569 Update the frame redraw infrastructure with a new FrameState stucture
25570 holds all the necessary information used to display the next pending
25572 While we are at it, delay the sync operation down to when it is actually
25573 needed. That way, we keep performing additional tasks meanwhile.
25575 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25577 * docs/reference/libs/libs-sections.txt:
25578 * gst-libs/gst/vaapi/gstvaapifilter.c:
25579 * gst-libs/gst/vaapi/gstvaapifilter.h:
25580 filter: allow specification of render target regions.
25581 Add support for rendering the source surface to a particular region within
25582 the supplied target surface. The default background color is black.
25584 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25586 * gst/vaapi/gstvaapivideobuffer.c:
25587 decode: fix creation of GLX video buffers for GStreamer 0.10.
25588 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
25589 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
25591 This fixes support for cluttersink with GStreamer 0.10 builds.
25593 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25595 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25596 mpeg2: disable video cropping as picture_display_extension() is missing.
25597 Disable video cropping in MPEG-2 codec because it is partially implemented
25598 and actually because nobody implements it that way, and the standard spec
25599 does not specify the display process either anyway.
25600 Most notably, there are two possible use cases for sequence_display_extension()
25601 horizontal_display_size & vertical_display_size: (i) guesstimating the
25602 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
25603 in conjunction with picture_display_extension() information.
25604 https://bugzilla.gnome.org/show_bug.cgi?id=704848
25606 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
25608 * gst/vaapi/gstvaapisink.c:
25609 * gst/vaapi/gstvaapisink.h:
25610 vaapisink: allow scaling to ignore aspect ratio.
25611 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
25612 which allows you to say that you don't want the sink to respect aspect
25613 ratio. Add the same property to vaapisink.
25614 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
25615 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
25617 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
25619 * gst/vaapi/gstvaapisink.c:
25620 vaapisink: fix memory leak of GstVaapiUploader instance.
25621 Make sure gst_vaapisink_ensure_uploader() checks for the existence
25622 of a former GstVaapiUploader instance prior to forcibly creating a
25624 https://bugzilla.gnome.org/show_bug.cgi?id=703980
25626 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25628 * gst/vaapi/gstvaapisink.c:
25629 vaapisink: fix get_caps() implementation for GStreamer 1.0.
25630 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
25631 by honouring the filter caps argument. More precisely, this fixes the
25632 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
25633 https://bugzilla.gnome.org/show_bug.cgi?id=705192
25634 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25635 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25637 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25639 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25640 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
25641 This fixes the following issue:
25642 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
25643 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
25644 'GstVaapiDecoderMpeg4Class'
25645 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
25646 'GstVaapiDecoderMpeg4Class' was here
25647 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
25648 make[5]: Leaving directory
25649 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
25650 https://bugzilla.gnome.org/show_bug.cgi?id=705148
25652 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25654 * tests/test-filter.c:
25655 tests: filter: add support for deinterlacing.
25656 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
25657 deinterlacing filter. However, if --deinterlace option is not set but the
25658 --deinterlace-flags option is set with "top-field-first", then the very
25659 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
25661 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25663 * tests/test-filter.c:
25664 tests: filter: add support for denoising and sharpening.
25665 Add --denoise option to enable noise reduction with the level specified
25666 as the option value (float). Likewise, add --sharpen option to enable
25668 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25670 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25672 * tests/test-filter.c:
25673 tests: filter: add support for frame cropping.
25674 Add support for frame cropping through the --crop-rect|-c argument.
25675 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
25676 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
25678 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25680 * tests/test-filter.c:
25681 tests: filter: dump supported operations and formats.
25683 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
25685 * tests/Makefile.am:
25686 * tests/test-filter.c:
25687 tests: add initial test for video processing.
25688 Add minimal test case for video processing: scaling and color format
25690 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25692 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
25694 * docs/reference/libs/libs-sections.txt:
25695 * gst-libs/gst/vaapi/gstvaapifilter.c:
25696 * gst-libs/gst/vaapi/gstvaapifilter.h:
25697 * gst-libs/gst/vaapi/gstvaapiutils.c:
25698 * gst-libs/gst/vaapi/gstvaapiutils.h:
25699 * gst/vaapi/gstvaapipostproc.c:
25700 * gst/vaapi/gstvaapipostproc.h:
25701 filter: add initial support for deinterlacing.
25702 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
25703 the selected field from the input surface is kept for the target surface.
25704 Setting gst_vaapi_filter_set_deinterlacing() method argument to
25705 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
25706 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
25707 to libgstvaapi core library.
25708 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25710 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
25712 * docs/reference/libs/libs-sections.txt:
25713 * gst-libs/gst/vaapi/gstvaapifilter.c:
25714 * gst-libs/gst/vaapi/gstvaapifilter.h:
25715 filter: add support for color balance adjustment.
25716 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
25717 and contrast. The respective range for each filter shall be the same as
25718 for the VA display attributes.
25719 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25721 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
25723 * docs/reference/libs/libs-sections.txt:
25724 * gst-libs/gst/vaapi/gstvaapifilter.c:
25725 * gst-libs/gst/vaapi/gstvaapifilter.h:
25726 filter: add support for sharpening.
25727 Sharpening is configured with a float value. The supported range is
25728 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
25730 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25732 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25734 * docs/reference/libs/libs-sections.txt:
25735 * gst-libs/gst/vaapi/gstvaapifilter.c:
25736 * gst-libs/gst/vaapi/gstvaapifilter.h:
25737 filter: add support for denoising.
25738 Noise reduction is configured with a float value. The supported range
25739 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
25741 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25743 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25745 * docs/reference/libs/libs-sections.txt:
25746 * gst-libs/gst/vaapi/gstvaapifilter.c:
25747 * gst-libs/gst/vaapi/gstvaapifilter.h:
25748 filter: add support for frame cropping.
25749 Frame cropping is defined with a GstVaapiRectangle value. The default
25750 behaviour is to treat the source surface as a whole
25752 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25754 * gst-libs/gst/vaapi/gstvaapifilter.c:
25755 filter: add helper functions.
25756 Add helper functions to ensure an operation VA buffer is allocated to
25757 the right size; that filter caps get parsed and assigned to the right
25758 operation too; and that float parameters are correctly scaled to fit
25759 the reported range from the VA driver.
25761 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25764 * docs/reference/libs/libs-docs.xml.in:
25765 * docs/reference/libs/libs-sections.txt:
25766 * gst-libs/gst/vaapi/Makefile.am:
25767 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25768 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25769 * gst-libs/gst/vaapi/gstvaapifilter.c:
25770 * gst-libs/gst/vaapi/gstvaapifilter.h:
25771 Add initial infrastructure for video processing.
25772 Add initial API for video processing: only scaling and color format
25773 conversion operations are supported.
25775 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25777 * gst-libs/gst/vaapi/video-format.c:
25778 * gst-libs/gst/vaapi/video-format.h:
25779 libs: add gst_vaapi_video_format_from_string() helper.
25780 Add gst_vaapi_video_format_from_string() helper function to convert from
25781 a video format string representation to a suitable GstVideoFormat. This
25782 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
25783 builds, and a proper iteration over all GstVideoFormat string representations
25784 otherwise for earlier GStreamer 0.10.x builds.
25786 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25788 * gst-libs/gst/vaapi/video-format.c:
25789 * gst-libs/gst/vaapi/video-format.h:
25790 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
25791 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
25792 VA fourcc value to a suitable GstVideoFormat.
25794 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25796 * gst-libs/gst/vaapi/gstvaapivalue.c:
25797 * gst-libs/gst/vaapi/gstvaapivalue.h:
25798 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
25799 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
25800 structures as a standard GType. This could be useful to have them
25801 described as a GValue later on.
25803 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25805 * docs/reference/libs/libs-docs.xml.in:
25806 * docs/reference/libs/libs-sections.txt:
25807 * gst-libs/gst/vaapi/Makefile.am:
25808 * gst-libs/gst/vaapi/gstvaapicontext.h:
25809 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25810 libs: drop some public APIs.
25811 Don't expose GstVaapiContext APIs and make them totally private to
25812 libgstvaapi core library. That API would also tend to disappear in
25813 a future revision. Likewise, don't expose GstVaapiDisplayCache API
25814 but keep symbols visible so that the various render backends could
25815 share a common display cache implementation in libgstvaapi.
25816 Try to clean-up the documentation from any stale entry too.
25818 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25822 tests: image: allow creation of images with interleaved patterns.
25823 Add image_generate_full() function to create interleaved color rectangles.
25824 If flags is zero, the whole frame is generated with a unique pattern. If
25825 flags is non-zero, then each field is handled individually.
25827 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25830 tests: image: fix conversion from RGB to YUV.
25831 Fix RGB to YUV conversion to preserve full data range.
25833 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25836 tests: image: try to upload images through vaDeriveImage() too.
25837 On some platforms, vaPutImage() would fail even if it does not involve
25838 color format conversion or scaling, whereas copying raw pixels through
25839 vaDeriveImage() could work instead.
25841 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25844 tests: image: add support for packed YUV formats.
25845 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
25847 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25850 tests: image: fix generation of I420/YV12 images.
25851 U/V planes were reversed, thus producing invalid images.
25853 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25856 tests: image: fix string representation for GstVideoFormat.
25858 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25860 * docs/reference/libs/libs-sections.txt:
25861 * gst-libs/gst/vaapi/Makefile.am:
25862 * gst-libs/gst/vaapi/gstvaapiimage.c:
25863 * gst-libs/gst/vaapi/gstvaapiimage.h:
25864 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
25865 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25866 * gst-libs/gst/vaapi/gstvaapisurface.c:
25867 image: clean image API up.
25868 Don't expose functions that reference a GstVaapiImageRaw, those are
25869 meant to be internal only for implementing subpictures sync. Also add
25870 a few private definitions to avoid functions calls for retrieving
25871 image size and format information.
25873 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25875 * docs/reference/libs/libs-sections.txt:
25876 * gst-libs/gst/vaapi/gstvaapiimage.c:
25877 * gst-libs/gst/vaapi/gstvaapiimage.h:
25878 image: add gst_vaapi_image_copy() helper.
25879 Add gst_vaapi_image_copy() helper function to copy images of same format
25882 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25884 * gst/vaapi/gstvaapivideoconverter_x11.c:
25885 plugins: handle video cropping in X11 pixmap converter.
25886 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
25887 we could decode from the stream.
25889 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25891 * gst/vaapi/Makefile.am:
25892 * gst/vaapi/gstvaapivideobuffer.c:
25893 * gst/vaapi/gstvaapivideoconverter_glx.c:
25894 * gst/vaapi/gstvaapivideoconverter_x11.c:
25895 * gst/vaapi/gstvaapivideoconverter_x11.h:
25896 plugins: add support for "x11-pixmap" video converter type.
25897 Install a new video converter that supports X11 pixmap targets for X11
25898 backends only, or make the GLX converter creation function chain up to
25899 the X11 converter whenever requested.
25901 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25903 * tests/simple-decoder.c:
25904 tests: simple-decoder: add support for pixmap API.
25905 Add support for the new render-to-pixmap API. Avoid flickering on
25906 platforms supporting video overlay by keeping up to 2 intermediate
25909 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25911 * tests/simple-decoder.c:
25912 tests: simple-decoder: add support for video cropping.
25913 Handle video cropping information attached to a VA surface proxy.
25915 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25919 * tests/test-decode.c:
25920 tests: add support for render-to-pixmap.
25921 Add --pixmap option to test-decode so that to allow copies of VA
25922 surface to an intermediate pixmap and rendering from that pixmap.
25923 Only X11 backends are supported for now.
25925 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25928 * gst-libs/gst/vaapi/Makefile.am:
25929 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25930 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25931 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25932 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
25933 x11: implement pixmap rendering with RENDER extension.
25934 Use hardware accelerated XRenderComposite() function, from the RENDER
25935 extension, to blit a pixmap to screen. Besides, this can also support
25936 cropping and scaling.
25938 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25940 * docs/reference/libs/libs-docs.xml.in:
25941 * docs/reference/libs/libs-sections.txt:
25942 * gst-libs/gst/vaapi/Makefile.am:
25943 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25944 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25945 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
25946 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
25947 x11: implement pixmap API.
25948 Implement the new render-to-pixmap API. The only supported pixmap format
25949 that will work is xRGB, with native byte ordering. Others might work but
25950 they were not tested.
25952 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25954 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25955 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25956 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25957 x11: update x11_get_geometry() helper function with depth output.
25958 Allow x11_get_geometry() utility function to also return the depth
25959 assigned to the X drawable.
25961 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25963 * docs/reference/libs/libs-docs.xml.in:
25964 * docs/reference/libs/libs-sections.txt:
25965 * gst-libs/gst/vaapi/Makefile.am:
25966 * gst-libs/gst/vaapi/gstvaapipixmap.c:
25967 * gst-libs/gst/vaapi/gstvaapipixmap.h:
25968 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
25969 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25970 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25971 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
25972 Add initial Pixmap API.
25973 Add API to transfer VA urfaces to native pixmaps. Also add an API to
25974 render a native pixmap, for completeness. In general, rendering to
25975 pixmap would only be useful to certain VA drivers and use cases on
25976 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
25979 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25981 * docs/reference/libs/libs-sections.txt:
25982 * gst-libs/gst/vaapi/gstvaapiimage.c:
25983 * gst-libs/gst/vaapi/gstvaapisurface.c:
25984 * gst-libs/gst/vaapi/video-format.c:
25985 * gst-libs/gst/vaapi/video-format.h:
25986 libs: add and expose gst_vaapi_video_format_to_string() helper.
25987 This is just a wrapper over gst_video_format_to_string() for older
25988 GStreamer 0.10 builds.
25990 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
25992 * gst/vaapi/gstvaapipluginutil.c:
25993 plugins: fix display type comparison in gst_vaapi_create_display().
25994 After the code got moved to create the gst_vaapi_create_display() helper,
25995 this comparison was not updated to dereference the newly-created
25996 pointer, so the code was comparing the pointer itself to the type, and
25997 therefore failing to retrieve the VA display.
25998 This fixes the following error (and gets gst-vaapi decoding again):
25999 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
26000 https://bugzilla.gnome.org/show_bug.cgi?id=704410
26001 Signed-off-by: Emilio López <emilio@elopez.com.ar>
26003 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26006 Bump version for development.
26008 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26010 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26011 mpeg2: don't output dummy pictures.
26012 Mark dummy pictures as output already so that we don't try to submit
26013 them to the upper layer since this is purely internal / temporary
26014 picture for helping the decoder.
26016 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26018 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26019 decoder: dispose GstVideoCodecFrame earlier.
26020 Once the picture was output, it is no longer necessary to keep an extra
26021 reference to the underlying GstVideoCodecFrame. So, we can release it
26022 earlier, and maybe subsequently release the associate surface proxy
26025 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26031 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26033 * docs/reference/libs/libs-sections.txt:
26034 * gst-libs/gst/vaapi/Makefile.am:
26035 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26036 * gst-libs/gst/vaapi/gstvaapiimage.c:
26037 * gst-libs/gst/vaapi/gstvaapisurface.c:
26038 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26039 * gst-libs/gst/vaapi/video-format.c:
26040 * gst-libs/gst/vaapi/video-format.h:
26041 * gst/vaapi/gstvaapidownload.c:
26042 * gst/vaapi/gstvaapiuploader.c:
26044 * tests/test-display.c:
26045 Fix new video format API.
26046 Fix new internal video format API, based on GstVideoFormat, to not
26047 clobber with system symbols. So replace the gst_video_format_* prefix
26048 with gst_vaapi_video_format_ prefix, even if the format type remains
26051 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26054 Bump library major version.
26055 Bump the library major version due to API/ABI changes that occurred in
26056 the imaging API. In particular, GstVaapiImageFormat type was replaced
26057 with the standard GstVideoFormat type. All dependent APIs were updated
26058 to match this change.
26060 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26065 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26067 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26068 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26069 decoder: fix memory leak when processing interlaced pictures.
26070 Fix memory leak when processing interlaced pictures and that occurs
26071 because the first field, represented as a GstVideoCodecFrame, never
26072 gets released. i.e. when the picture is completed, this is generally
26073 the case when the second field is successfully decoded, we need to
26074 propagate the GstVideoCodecFrame of the first field to the original
26075 GstVideoDecoder so that it could reclaim memory.
26076 Otherwise, we keep accumulating the first fields into GstVideoDecoder
26077 private frames list until the end-of-stream is reached. The frames
26078 are eventually released there, but too late, i.e. too much memory
26079 may have been consumed.
26080 https://bugzilla.gnome.org/show_bug.cgi?id=701257
26082 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26084 * gst/vaapi/gstvaapipluginutil.c:
26085 plugins: simlpify gst_vaapi_create_display() helper.
26086 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
26087 performs the necessary validation checks for the underlying VA display
26088 prior to returning to the caller. So, if an error occurred, then NULL is
26089 really returned in that case.
26091 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26093 * gst/vaapi/gstvaapipluginutil.c:
26094 plugins: add gst_vaapi_create_display() helper.
26095 https://bugzilla.gnome.org/show_bug.cgi?id=703235
26096 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26098 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26100 * gst/vaapi/gstvaapivideobufferpool.c:
26101 plugins: don't reallocate pool allocator for the same caps.
26102 If the video buffer pool config doesn't have new caps, then it's not
26103 necessary to reinstantiate the allocator. That could be a costly
26104 operation as we could do some extra heavy checking in there.
26106 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26108 * gst/vaapi/gstvaapivideomemory.c:
26109 plugins: fix ref counting of GstVaapiVideoMemory allocator.
26110 Fix reference counting issue whereby gst_memory_init() does not hold
26111 an extra reference to the GstAllocator. So, there could be situations
26112 where the last instance of GstVaapiVideoAllocator gets released before
26113 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
26115 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26117 * gst/vaapi/gstvaapiuploader.c:
26118 vaapiupload: use implicit color conversion to NV12.
26119 Always perform conversion of sources buffers to NV12 since this is
26120 the way we tested for this capability in ensure_allowed_caps(). This
26121 also saves memory bandwidth for further rendering. However, this may
26122 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
26124 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26126 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26127 pool: fix deallocation of video pools.
26128 The queue of free objects to used was deallocated with g_queue_free_full().
26129 However, this convenience function shall only be used if the original queue
26130 was allocated with g_queue_new(). This caused memory corruption, eventually
26131 leading to a crash.
26132 The correct solution is to pair the g_queue_init() with the corresponding
26133 g_queue_clear(), while iterating over all free objects to deallocate them.
26135 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
26137 * gst/vaapi/gstvaapidownload.c:
26138 vaapidownload: fix src caps format error.
26139 This fixes direct linking of vaapidownload element to xvimagesink with
26140 VA drivers supporting vaGetImage() from the native VA surface format to
26141 a different VA image format. i.e. color conversion during download.
26142 http://bugzilla.gnome.org/show_bug.cgi?id=703937
26143 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26145 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26147 * gst/vaapi/gstvaapidownload.c:
26148 vaapidownload: fix debug string for image formats.
26149 The image is now expressed as a standard GstVideoFormat, which is not
26150 a FOURCC but rather a regular enum value.
26151 This is a regression introduced in commit 09397fa.
26153 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
26155 * gst-libs/gst/vaapi/gstvaapiimage.c:
26156 image: add support for raw YUY2/UYVY image copies.
26157 Implement raw image copies for YUY2 format. Add support for UYVY format
26158 too, with the same copy function as for YUY2. Even though components
26159 ordering differs, copying line strides is essentially the same.
26160 https://bugzilla.gnome.org/show_bug.cgi?id=703939
26161 https://bugzilla.gnome.org/show_bug.cgi?id=703940
26162 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26164 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26166 * gst/vaapi/gstvaapiuploader.c:
26167 plugins: clean-up video uploader helper.
26168 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
26169 were already negotiated beforehand, and they are not used from the
26170 buffer in upstream elements.
26171 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
26172 represented as a GstVideoInfo.
26174 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26176 * gst/vaapi/gstvaapiuploader.c:
26177 plugins: use GstVideoInfo in video uploader helper.
26179 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26181 * gst/vaapi/gstvaapivideomemory.c:
26182 plugins: allow creation of VA surfaces with explicit pixel format.
26183 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
26184 with an explicit pixel format. This allows for direct rendering to
26185 VA surface memory from a software decoder.
26187 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26189 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26190 surface: fix surface pool creation with an explicit pixel format.
26191 Fix creation of surface pool objects to honour explicit pixel format
26192 specification. If this operation is not supported, then fallback to
26193 the older interface with chroma format.
26195 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26197 * gst-libs/gst/vaapi/gstvaapisurface.c:
26198 surface: try to determine the underlying VA surface format.
26199 If a VA surface was allocated with the chroma-format interface, try to
26200 determine the underlying pixel format on gst_vaapi_surface_get_format(),
26201 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
26203 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26205 * docs/reference/libs/libs-sections.txt:
26206 * gst-libs/gst/vaapi/gstvaapisurface.c:
26207 * gst-libs/gst/vaapi/gstvaapisurface.h:
26208 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26209 surface: allow creation with explicit pixel format.
26210 Make it possible to create VA surfaces with a specific pixel format.
26211 This is a new capability brought in by VA-API >= 0.34.0. If that
26212 capability is not built-in (e.g. using VA-API < 0.34.0), then
26213 gst_vaapi_surface_new_with_format() will return NULL.
26215 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26217 * docs/reference/libs/libs-sections.txt:
26218 * gst-libs/gst/vaapi/video-format.c:
26219 * gst-libs/gst/vaapi/video-format.h:
26220 surface: add helper function to get chroma type from GstVideoFormat.
26221 Add gst_video_format_get_chroma_type() helper function to determine
26222 the GstVaapiChromaType from a standard GStreamer video format. It is
26223 possible to reconstruct that from GstVideoFormatInfo but it is much
26224 simpler (and faster?) to use the local GstVideoFormatMap table.
26226 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26228 * gst-libs/gst/vaapi/gstvaapisurface.c:
26229 * gst-libs/gst/vaapi/gstvaapisurface.h:
26230 * gst-libs/gst/vaapi/gstvaapiutils.c:
26231 * gst-libs/gst/vaapi/gstvaapiutils.h:
26232 surface: add new chroma formats.
26233 Add new chroma formats available with VA-API >= 0.34.0. In particular,
26234 this includes "RGB" chroma formats, and more YUV subsampled formats.
26235 Also add a new from_GstVaapiChromaType() helper function to convert
26236 libgstvaapi chroma type to VA chroma format.
26238 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26240 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26241 pool: fix image pool to check for the video format to use.
26242 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
26243 image pool object, only if the underlying VA display does support the
26244 requested VA image format.
26246 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26248 * gst-libs/gst/vaapi/gstvaapicontext.c:
26249 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26250 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26251 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26252 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26253 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26254 * gst/vaapi/gstvaapidownload.c:
26255 * gst/vaapi/gstvaapiuploader.c:
26256 * tests/Makefile.am:
26257 * tests/test-surfaces.c:
26258 Use GstVideoInfo for video pools.
26259 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
26260 structures instead. Those are smaller, and allows for streamlining
26263 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26265 * gst-libs/gst/vaapi/gstvaapiimage.c:
26266 * gst-libs/gst/vaapi/video-format.c:
26267 Add more video formats.
26268 Add new video format mappings to VA image formats:
26269 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
26270 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
26272 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26274 * gst-libs/gst/vaapi/gstvaapiimage.c:
26275 image: fix debug message with video format.
26276 Fix debug message string with image format expressed with GstVideoFormat
26277 instead of the obsolete format that turned out to be a fourcc.
26278 This is a regression from git commit e61c5fc.
26280 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26284 * tests/test-display.c:
26285 * tests/test-textures.c:
26286 * tests/test-windows.c:
26287 tests: port to new video format API.
26289 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26291 * gst/vaapi/gstvaapidownload.c:
26292 * gst/vaapi/gstvaapiuploader.c:
26293 * gst/vaapi/gstvaapivideomemory.c:
26294 plugins: port to new video format API.
26296 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26298 * gst-libs/gst/vaapi/gstvaapiimage.c:
26299 libs: use GstVideoInfo wherever possible.
26300 In particular, use gst_video_info_from_caps() helper function in VA image
26301 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
26302 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
26304 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26306 * docs/reference/libs/libs-docs.xml.in:
26307 * docs/reference/libs/libs-sections.txt:
26308 * gst-libs/gst/vaapi/Makefile.am:
26309 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26310 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
26311 libs: drop GstVaapiImageFormat helpers.
26312 Drop GstVaapiImageFormat helpers since everything was moved to the new
26313 GstVideoFormat based API. Don't bother with backwards compatibility and
26314 just bump the library major version afterwards.
26316 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26318 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26319 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26320 * gst-libs/gst/vaapi/gstvaapiimage.c:
26321 * gst-libs/gst/vaapi/gstvaapiimage.h:
26322 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26323 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26324 libs: port to new video format API.
26326 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26328 * docs/reference/libs/libs-docs.xml.in:
26329 * docs/reference/libs/libs-sections.txt:
26330 * gst-libs/gst/vaapi/Makefile.am:
26331 * gst-libs/gst/vaapi/video-format.c:
26332 * gst-libs/gst/vaapi/video-format.h:
26333 Add new video format API.
26334 Leverage GstVideoFormat utilities from core GStreamer to provide an
26335 adaptation layer to VA image formats.
26337 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26342 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26344 * gst/vaapi/gstvaapisink.c:
26345 vaapisink: fix creation of GLX texture.
26346 Fix creation of GLX texture, to not depend on the GstCaps video size that
26347 could be wrong, especially in presence of frame cropping. So, use the size
26348 from the source VA surfaces.
26349 An optimization could be to reduce the texture size to the actual visible
26350 size on screen. i.e. scale down the texture size to match the screen dimensions,
26351 while preserving the VA surface aspect ratio. However, some VA drivers don't
26354 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26356 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26357 mpeg2: add support for video cropping.
26358 If the stream has a sequence_display_extenion, then attach the
26359 display_horizontal/display_vertical dimension as the cropping
26360 rectangle width/height to the GstVaapiPicture.
26361 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26363 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26365 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26366 vc1: add support for video cropping.
26367 If the Advanced profile has display_extension fields, then set the display
26368 width/height dimension as cropping rectangle to the GstVaapiPicture.
26369 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26371 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26373 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26374 h264: add support for video cropping.
26375 If the encoded stream has the frame_cropping_flag set, then associate
26376 the cropping rectangle to GstVaapiPicture.
26377 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26379 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26383 * tests/test-decode.c:
26384 * tests/test-subpicture.c:
26385 tests: add basic support for video cropping.
26386 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
26387 instead of a plain GstVaapiSurface. This means that we can now retrieve
26388 the frame cropping rectangle from the surface proxy, along with additional
26389 information if ever needed.
26391 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26393 * gst/vaapi/gstvaapidecode.c:
26394 * gst/vaapi/gstvaapisink.c:
26395 * gst/vaapi/gstvaapivideometa.c:
26396 plugins: add support for video cropping.
26397 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
26398 specific meta information to hold video cropping details. Make the sink
26399 support video cropping in X11 and GLX modes.
26401 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26403 * gst/vaapi/gstvaapivideometa.c:
26404 * gst/vaapi/gstvaapivideometa.h:
26405 plugins: add helper functions to set the render rectangle.
26406 Some video clips may have a clipping region that needs to propogate to
26407 the renderer. These helper functions make it possible to attach that
26408 clipping region, as a GstVaapiRectangle, the the video meta associated
26410 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26411 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26413 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26415 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26416 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26417 surfaceproxy: allow for NULL cropping rectangle.
26418 Make it possible associate an empty cropping rectangle to the surface
26419 proxy, thus resetting any cropping rectangle that was previously set.
26420 This allows for returning plain NULL when no cropping rectangle was
26421 initially set up to the surface proxy, or if it was reset to defaults.
26423 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26425 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26426 surfaceproxy: clean-up helper macros.
26427 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
26428 proxy macro argument to a GstVaapiSurfaceProxy pointer.
26430 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26432 * gst-libs/gst/vaapi/gstvaapisurface.c:
26433 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26434 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26435 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26436 surface: add simple surface info accessors as helper macros.
26437 Add helper macros to retrieve the VA surface information like size
26438 (width, height) or chroma type. This is a micro-optimization to avoid
26439 useless function calls and NULL pointer re-checks in internal routines.
26441 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26443 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26444 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26445 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26446 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26447 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26448 decoder: add support for video cropping.
26449 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
26450 cropping information from raw bitstreams to each picture being decoded.
26451 Also add helper function to surface proxy to propagate that information
26452 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
26453 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26454 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26456 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26458 * ext/codecparsers:
26459 codecparsers: update to gst-vaapi-branch commit f90de0a.
26460 f90de0a h264: fix calculation of the frame cropping rectangle
26461 535515c h264: parse the cropping rectangle separately
26463 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26465 * ext/codecparsers:
26466 codecparsers: update to gst-vaapi-branch commit 0f68a71.
26467 0f68a71 mpeg2: fix video packet header size checks
26469 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
26471 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26472 mpeg2: reset quantization matrices on new sequence headers.
26473 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
26474 shall be reset to their default values when a Sequence_Header() is
26476 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26478 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26481 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26482 mpeg2: cope with latest codecparser changes.
26483 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
26484 used in individual header parsers. Also use the new slice parsing API.
26486 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26488 * ext/codecparsers:
26489 codecparsers: update to gst-vaapi-branch commit dddd182.
26490 dddd182 mpeg2: add slice header parsing API
26491 94e6228 mpeg2: add sequence scalable extension parsing API
26492 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
26493 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
26495 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26497 * gst/vaapi/gstvaapisink.c:
26498 vaapisink: expose the raw video formats in static caps template.
26499 Expose all raw video formats in the static caps template since the
26500 vaapisink is supporting raw data. We will get the exact set of formats
26501 supported by the driver dynamically through the _get_caps() routine.
26502 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
26503 https://bugzilla.gnome.org/show_bug.cgi?id=702178
26504 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26506 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26508 * gst/vaapi/gstvaapisink.c:
26509 * gst/vaapi/gstvaapisink.h:
26510 vaapisink: add "use-glx" property for OpenGL rendering.
26511 Now that VA/GLX capable buffers are generated by default on X11, thus
26512 depending on a VA/GLX display, we stil want to use vaPutSurface() for
26513 rendering since it is faster.
26514 Anyway, OpenGL rendering in vaapisink was only meant for testing and
26515 enabling "fancy" effects to play with. This has no real value. So,
26516 disable OpenGL rendering by default.
26518 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26520 * gst/vaapi/gstvaapipluginutil.c:
26521 plugins: try to allocate a GLX display first over an X11 one.
26522 If the gstreamer-vaapi plug-in elements are built with GLX support, then
26523 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
26525 https://bugzilla.gnome.org/show_bug.cgi?id=701742
26527 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
26530 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
26531 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
26532 https://bugzilla.gnome.org/show_bug.cgi?id=698858
26533 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26535 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
26537 * gst-libs/gst/vaapi/gstvaapiimage.c:
26538 image: fix wrong check for rect bounds in copy_image().
26540 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26543 Bump version for development.
26545 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26551 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26556 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26559 * gst-libs/gst/codecparsers/Makefile.am:
26560 configure: always build the MPEG-4 parser.
26561 Always build the MPEG-4 parser for now as there are also core fixes
26562 included in the parser that cannot be tested for with API checks.
26564 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26567 configure: add --enable-builtin-codecparsers [default="yes"] option.
26568 Add flag to have all codecparsers built-in, thus ensuring that the
26569 resulting binaries have all the necessary bug fixes and this is what
26570 the QA has been testing anyway.
26571 Of course, for a completely up-to-date Linux distribution, you could
26572 also opt for --disable-builtin-codecparsers and use the system ones.
26573 Though, some core fixes could be missing, and those cannot be tested
26574 for with API checks.
26576 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26578 * ext/codecparsers:
26579 codecparsers: update to gst-vaapi-branch commit 843ce3e.
26580 843ce3e jpeg: fix default Huffman tables generation.
26581 8655187 mpeg2: fix the pixel-aspect-ratio calculation
26582 21099dc mpeg2: actually store video bitrate values
26583 dd02087 mpeg2: fix picture packet extension size check
26584 25948e9 mpeg2: increase min size for picture coding ext
26585 f1f5a40 ensure the debug category is properly initialized
26587 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26589 * debian.upstream/Makefile.am:
26590 debian: fix list of generated files for .deb packaging.
26592 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26595 * debian.upstream/Makefile.am:
26596 * debian.upstream/control.in:
26597 debian: fix libgstvaapi -dev package name.
26598 Fix libgstvaapi -dev package name so that to allow installation of both
26599 GStreamer 0.10 and 1.0.x based packages.
26601 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26606 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26608 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26609 wayland: fix memory leak of display resources.
26611 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
26613 * gst/vaapi/gstvaapisink.c:
26614 vaapisink: fix build without VA/GLX support.
26616 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26618 * gst/vaapi/gstvaapivideomemory.c:
26619 * gst/vaapi/gstvaapivideomemory.h:
26620 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
26621 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
26622 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
26623 caller. This is the only sensible enough thing to do in this mode as
26624 the underlying surface pixels need to be extracted through an explicit
26625 call to the gst_video_frame_map() function instead.
26626 A possible use-case of this is to implement a "handoff" signal handler
26627 to fakesink or identity element for further processing.
26629 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26631 * gst/vaapi/gstvaapivideomemory.c:
26632 plugins: silence check for direct-rendering mode in video memory.
26633 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
26634 mode support, and not trigger fatal-criticals if either test surface or
26635 image could not be created. Typical case: pixel format mismatch, e.g. NV12
26636 supported by most hardware vs. I420 supported by most software decoders.
26638 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26640 * gst/vaapi/gstvaapivideomemory.c:
26641 plugins: improve video memory flags safety checks.
26642 On map, ensure we have GST_MAP_WRITE flags since this is only what we
26643 support for now. Likewise, on unmap, make sure that the VA image is
26644 unmapped for either read or write, while still committing it to the
26645 VA surface if write was requested.
26647 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26649 * gst-libs/gst/vaapi/gstvaapisurface.c:
26650 surface: fix memory leak through unreleased parent context.
26651 Break the circular references between GstVaapiContext and its children
26652 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
26653 context, which holds a reference to its VA surfaces, then none of those
26655 How does this impact support for subpictures?
26656 The only situation when the parent context needs to disappear is when
26657 it is replaced with another one because of a resolution change in the
26658 video stream for instance, or a normal destroy. In this case, it does
26659 not really matter to apply subpictures to the peer surfaces since they
26660 are either gone, or those that are left in the pipe can probably bear
26661 a reinstantiation of the subpictures for it.
26662 So, parent_context is set to NULL when the parent context is destroyed,
26663 other VA surfaces can still get subpictures attached to them, individually
26664 not as a whole. i.e. subpictures for surface S1 will be created from
26665 active composition buffers and associated to S1, subpictures for S2 will
26666 be created from the next active composition buffers, etc. We don't try
26667 to cache the subpictures in those cases (pending surfaces until EOS
26668 is reached, or pending surfaces until new surfaces matching new VA context
26669 get to be used instead).
26671 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26673 * gst/vaapi/gstvaapisink.c:
26674 vaapisink: fix one-time initialization when display property is set.
26675 Fix gst_vaapisink_ensure_display() to perform one-time initialization
26676 tasks even if the `display' property was explicitly set.
26678 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26680 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26681 window: fix GLX window initialization.
26682 Make sure to create the GLX context once the window object has completed
26683 its creation. Since gl_resize() relies on the newly created window size,
26684 then we cannot simply overload the GstVaapiWindowClass::create() hook.
26685 So, we just call into gst_vaapi_window_glx_ensure_context() once the
26686 window object is created in the gst_vaapi_window_glx_new*() functions.
26688 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26690 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26691 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26692 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26693 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26694 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26695 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26696 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26697 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26698 * gst-libs/gst/vaapi/gstvaapitexture.c:
26699 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26700 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26701 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26702 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26703 display: validate display types.
26705 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26707 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26708 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26709 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26710 display: drop internal NAME_PREFIX, store the real display name.
26711 Always store a valid display name/device path, instead of adding a
26712 particular prefix. i.e. make it simply a strdup(), or "" if it was
26715 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26717 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26718 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26719 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26720 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26721 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26722 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26723 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26724 display: make it possible to lookup the display cache by type.
26725 Make it possible to add extra an extra filter to most of display cache
26726 lookup functions so that the GstVaapiDisplay instance can really match
26727 a compatible and existing display by type, instead of relying on extra
26728 string tags (e.g. "X11:" prefix, etc.).
26730 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26732 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26733 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26734 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26735 display: cope with new display cache API.
26737 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26739 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26740 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26741 display: rework display cache API.
26742 Simplify display cache API, while making it more flexible. We can now create
26743 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
26745 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26747 * tests/test-display.c:
26748 tests: improve check for display cache.
26749 Improve check for display cache infrastructure. In particular, for X11 and
26750 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
26751 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
26752 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
26753 already exists will have to generate different VA displays.
26755 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
26757 * gst/vaapi/gstvaapiuploader.c:
26758 uploader: fix memory leak in GStreamer 0.10 builds.
26759 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
26760 but it exhibited a memory leak because the surface generated for the
26761 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
26762 possible to release that surface back to the parent pool when the meta
26763 gets released, and the memory consumption kept growing.
26764 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26766 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26768 * gst/vaapi/gstvaapivideometa.c:
26769 plugins: fix gst_vaapi_video_meta_new_from_pool().
26770 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
26771 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
26772 was hereby totally broken. Fixed this regression by using the newly
26773 provided gst_vaapi_video_pool_get_object_type() function.
26775 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26777 * gst/vaapi/gstvaapiuploader.c:
26778 * gst/vaapi/gstvaapivideomemory.c:
26779 * gst/vaapi/gstvaapivideometa.c:
26780 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
26782 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26785 tests: cope with GST_VAAPI_IS_xxx() macros removal.
26787 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26789 * docs/reference/libs/libs-sections.txt:
26790 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26791 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26792 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26793 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26794 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26795 libs: add query for GstVaapiVideoPool object types.
26796 Add API to identify the underlying GstVaapiVideoPool object type.
26798 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26800 * docs/reference/libs/libs-sections.txt:
26801 * gst-libs/gst/vaapi/gstvaapicontext.c:
26802 * gst-libs/gst/vaapi/gstvaapicontext.h:
26803 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26804 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26805 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26806 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26807 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26808 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26809 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26810 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26811 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26812 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26813 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26814 * gst-libs/gst/vaapi/gstvaapiimage.c:
26815 * gst-libs/gst/vaapi/gstvaapiimage.h:
26816 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26817 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26818 * gst-libs/gst/vaapi/gstvaapiobject.c:
26819 * gst-libs/gst/vaapi/gstvaapiobject.h:
26820 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26821 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26822 * gst-libs/gst/vaapi/gstvaapisurface.c:
26823 * gst-libs/gst/vaapi/gstvaapisurface.h:
26824 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26825 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26826 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26827 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26828 * gst-libs/gst/vaapi/gstvaapitexture.c:
26829 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26830 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26831 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26832 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26833 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26834 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26835 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26836 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26837 libs: drop GST_VAAPI_IS_xxx() helper macros.
26838 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
26839 deriving from GObject and so those were only checking for whether the
26840 argument was NULL or not. This is now irrelevant, and even confusing
26841 to some extent, because we no longer have type checking.
26842 Note: this incurs more type checking (review) but the libgstvaapi is
26843 rather small, so this is manageable.
26845 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26848 Bump library major version.
26849 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
26850 This is a fundamental change that requires a new SONAME. More changes are
26851 underway to streamline the core libraries.
26852 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
26853 On one particular test (sintel HD trailer), the total number of executed
26854 instruction was reduced by 8%.
26856 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26858 * docs/reference/libs/Makefile.am:
26859 * docs/reference/libs/libs-docs.xml.in:
26860 * docs/reference/libs/libs-sections.txt:
26861 * docs/reference/libs/libs.core.types:
26862 * docs/reference/libs/libs.glx.types:
26863 * docs/reference/libs/libs.x11.types:
26864 docs: cope with removed APIs.
26865 Some APIs are dead because they are no longer based on GObject.
26867 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26869 * gst/vaapi/gstvaapidecode.c:
26870 * gst/vaapi/gstvaapidownload.c:
26871 * gst/vaapi/gstvaapipluginutil.c:
26872 * gst/vaapi/gstvaapipostproc.c:
26873 * gst/vaapi/gstvaapisink.c:
26874 * gst/vaapi/gstvaapiupload.c:
26875 * gst/vaapi/gstvaapiuploader.c:
26876 * gst/vaapi/gstvaapivideobufferpool.c:
26877 * gst/vaapi/gstvaapivideoconverter_glx.c:
26878 * gst/vaapi/gstvaapivideomemory.c:
26879 * gst/vaapi/gstvaapivideometa.c:
26880 plugins: cope with new GstVaapiMiniObject objects.
26882 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26887 * tests/simple-decoder.c:
26888 * tests/test-decode.c:
26889 * tests/test-display.c:
26890 * tests/test-subpicture.c:
26891 * tests/test-surfaces.c:
26892 * tests/test-textures.c:
26893 * tests/test-windows.c:
26894 tests: cope with new GstVaapiMiniObject objects.
26896 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26898 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26899 display: fix set_synchronous() to lock display.
26901 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26903 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26904 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26905 videopool: simplify creation of video objects pool.
26907 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26909 * gst-libs/gst/vaapi/gstvaapiobject.c:
26910 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26911 * gst-libs/gst/vaapi/gstvaapitypes.h:
26912 libs: simplify GstVaapiID definitions.
26913 Make GstVaapiID a gsize instead of guessing an underlying integer large
26914 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
26915 this is plain zero and that it is no longer passed as varargs.
26917 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26919 * gst-libs/gst/vaapi/Makefile.am:
26920 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26921 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26922 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26923 * gst-libs/gst/vaapi/gstvaapivalue.c:
26924 * gst-libs/gst/vaapi/gstvaapivalue.h:
26925 libs: drop obsolete function helpers and objects.
26926 Drop obsolete GstVaapiID related function helpers for passing them as
26929 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26931 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26932 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26933 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26934 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26935 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26936 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26937 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26938 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26939 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26940 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26941 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26942 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26943 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26944 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26945 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26946 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26947 * gst-libs/gst/vaapi/gstvaapiobject.c:
26948 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26949 libs: use GstVaapiMiniObject for display objects.
26951 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26953 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26954 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26955 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26956 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26957 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26958 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26959 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
26960 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26961 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26962 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26963 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26964 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26965 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26966 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26967 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26968 libs: use GstVaapiMiniObject for video decoders.
26969 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
26970 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
26971 helper function to let the user add a callback to a function triggered
26972 whenever the codec state (e.g. caps) changes.
26974 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26976 * docs/reference/libs/libs-sections.txt:
26977 * gst-libs/gst/vaapi/Makefile.am:
26978 * gst-libs/gst/vaapi/gstvaapicontext.c:
26979 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26980 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26981 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26982 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26983 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26984 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26985 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26986 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26987 libs: use GstVaapiMiniObject for video object pools.
26988 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
26989 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
26990 no longer used for a long time. Make object allocators static, i.e.
26991 local to the shared library.
26993 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26995 * gst-libs/gst/vaapi/gstvaapitexture.c:
26996 * gst-libs/gst/vaapi/gstvaapitexture.h:
26997 libs: use GstVaapiObject for texture objects.
26999 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27001 * gst-libs/gst/vaapi/Makefile.am:
27002 * gst-libs/gst/vaapi/gstvaapiwindow.c:
27003 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27004 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
27005 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
27006 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27007 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27008 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
27009 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27010 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
27011 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27012 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27013 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
27014 libs: use GstVaapiObject for window objects.
27016 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27018 * gst-libs/gst/vaapi/gstvaapicontext.c:
27019 * gst-libs/gst/vaapi/gstvaapicontext.h:
27020 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27021 * gst-libs/gst/vaapi/gstvaapiimage.c:
27022 * gst-libs/gst/vaapi/gstvaapiimage.h:
27023 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27024 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27025 * gst-libs/gst/vaapi/gstvaapisurface.c:
27026 * gst-libs/gst/vaapi/gstvaapisurface.h:
27027 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27028 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27029 libs: use GstVaapiObject for VA objects.
27031 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27033 * gst-libs/gst/vaapi/Makefile.am:
27034 * gst-libs/gst/vaapi/gstvaapiobject.c:
27035 * gst-libs/gst/vaapi/gstvaapiobject.h:
27036 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27037 Port GstVaapiObject to GstVaapiMiniObject.
27039 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27041 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27042 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
27043 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27044 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27045 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27046 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
27047 libs: refine GstVaapiMiniObject.
27048 Drop support for user-defined data since this capability was not used
27049 so far and GstVaapiMiniObject represents the smallest reference counted
27050 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
27051 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
27052 is also possible to further simplify the layout of the object. i.e. merge
27053 GstVaapiMiniObjectBase into GstVaapiMiniObject.
27055 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27057 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27058 decoder: update picture size from the bitstream.
27059 Propagate the picture size from the bitstream to the GstVaapiDecoder,
27060 and subsequent user who installed a signal on notify::caps. This fixes
27061 decoding of TS streams when the demuxer failed to extract the required
27064 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27066 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27067 decoder: fix raw decoding mode.
27068 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
27069 surface proxy to the caller.
27071 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27073 * docs/reference/libs/libs-sections.txt:
27074 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27075 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27076 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27077 * gst/vaapi/gstvaapidecode.c:
27078 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
27079 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
27080 wait for a frame to be decoded, until the specified timeout in microseconds,
27081 prior to returning to the caller.
27082 This is a fix to performance regression from 851cc0, whereby the vaapidecode
27083 loop executed on the srcpad task was called to often, thus starving all CPU
27086 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27089 Bump version for development.
27091 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27097 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27102 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27104 * gst/vaapi/gstvaapidecode.c:
27105 vaapidecode: rework heuristics to detect decode timeout.
27106 Rework heuristics to detect when downstream element ran into errors,
27107 and thus failing to release any VA surface in due time for the current
27108 frame to get decoded. In particular, recalibrate the render time base
27109 when the first frame gets submitted downstream, or when there is no
27110 timestamp that could be inferred.
27112 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27114 * gst-libs/gst/vaapi/gstcompat.h:
27115 * gst/vaapi/gstvaapidecode.c:
27116 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
27117 Rework GstVideoDecoder::handle_frame() to decode the current frame,
27118 while possibly waiting for a free surface, and separately submit all
27119 decoded frames from a task. This makes it possible to pop and render
27120 decoded frames as soon as possible.
27122 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27124 * gst/vaapi/gstvaapidecode.c:
27125 * gst/vaapi/gstvaapidownload.c:
27126 * gst/vaapi/gstvaapisink.c:
27127 * gst/vaapi/gstvaapiupload.c:
27128 plugins: use gst_object_unref() wherever applicable.
27129 Use gst_object_unref() wherever applicable, e.g. objects derived from
27130 GstElement, GstVideoPool, etc.
27132 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27134 * docs/reference/plugins/plugins-docs.xml.in:
27135 * docs/reference/plugins/plugins-sections.txt:
27136 * docs/reference/plugins/plugins.types:
27137 docs: drop obsolete plug-ins.
27138 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
27139 i.e. vaapiupload and vaapidownload are no longer the recommended
27142 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27144 * debian.upstream/rules:
27145 debian: fix build of GStreamer 0.10 packages.
27146 Fix build of Debian packages to scan the actual GStreamer API version
27147 from the generated changelog file.
27149 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27151 * gst/vaapi/gstvaapipostproc.c:
27152 vaapipostproc: minor clean-ups.
27153 Use g_clear_object() wherever appropriate and remove dead-code.
27155 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27157 * gst/vaapi/gstvaapipostproc.c:
27158 vaapipostproc: fix reference counting buf for passthrough mode.
27159 Fix reference counting bug for passthrough mode, whereby the input buffer
27160 was propagated as is downstream through gst_pad_push() without increasing
27161 its reference count before. The was a problem when gst_pad_push() returns
27162 an error and we further decrease the reference count of the input buffer.
27164 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27166 * gst-libs/gst/vaapi/gstcompat.h:
27167 * gst/vaapi/Makefile.am:
27168 * gst/vaapi/gstvaapi.c:
27169 * gst/vaapi/gstvaapidecode.c:
27170 * gst/vaapi/gstvaapipluginutil.h:
27171 * gst/vaapi/gstvaapipostproc.c:
27172 vaapipostproc: port to GStreamer 1.0.
27173 Add support for interlaced streams with GStreamer 1.0 too. Basically,
27174 this enables vaapipostproc, though it is not auto-plugged yet. We also
27175 make sure to reply to CAPS queries, and happily handle CAPS events.
27177 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27179 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27180 decoder: fix GstVideoCodecFrame flags for interlaced contents.
27181 Fix support for interlaced contents with GStreamer 0.10. In particular,
27182 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
27184 This is a regression from commit 87e5717.
27186 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27188 * gst-libs/gst/vaapi/Makefile.am:
27189 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27190 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27191 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
27192 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
27193 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
27194 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
27195 structure was only useful to parsing and a proper GstvaapiDecoderFrame
27196 instance will be created instead.
27198 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27200 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27201 decoder: export presentation timestamp for raw decoding mode.
27202 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
27203 held any information about the expected presentation timestamp, frame
27204 duration or additional flags like interlaced or top-field-first.
27206 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27208 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27209 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27210 decoder: use new GstVaapiSurfaceProxy utility functions.
27211 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
27212 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
27213 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
27214 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
27215 than gst_vaapi_picture_output().
27217 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27219 * docs/reference/libs/libs-sections.txt:
27220 * gst-libs/gst/vaapi/Makefile.am:
27221 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27222 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27223 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
27224 surfaceproxy: add more attributes for raw decoding modes.
27225 Add more attributes for raw decoding modes, i.e. directly through the
27226 libgstvaapi helper library. In particular, add presentation timestamp,
27227 duration and a couple of flags (interlaced, TFF, RFF, one-field).
27229 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27231 * docs/reference/libs/libs-sections.txt:
27232 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27233 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27234 * gst/vaapi/gstvaapidecode.c:
27235 * tests/simple-decoder.c:
27236 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
27237 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
27238 to call some user-provided function when the surface proxy is released.
27240 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
27243 * gst-libs/gst/vaapi/Makefile.am:
27244 build: link libgstvaapi-glx-1.0.so against libdl.
27245 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
27246 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
27248 https://bugzilla.gnome.org/show_bug.cgi?id=698046
27249 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27251 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27253 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27254 decoder: fix gst_vaapi_decoder_get_codec_state().
27255 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
27256 supposed to make GstVaapiDecoder own the return GstVideoCodecState
27257 object. Only comment was updated, not the actual code.
27259 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27261 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27262 * gst/vaapi/gstvaapidecode.c:
27263 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
27264 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
27265 i.e. make the GstVaapiDecoder object own the return state so that callers
27266 that want an extra reference to it would just gst_video_codec_state_ref()
27267 it before usage. This aligns the behaviour with what we had before with
27268 gst_vaapi_decoder_get_caps().
27269 This is an ABI incompatible change, library major version was bumped from
27270 previous release (0.5.2).
27272 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27274 * gst/vaapi/gstvaapivideobufferpool.h:
27275 * gst/vaapi/gstvaapivideoconverter_glx.h:
27276 plugins: mark a few more functions as internal.
27277 Mark the following functions are internal, i.e. private to the vaapi plug-in:
27278 - gst_vaapi_video_buffer_pool_get_type()
27279 - gst_vaapi_video_converter_glx_get_type()
27280 - gst_vaapi_video_converter_glx_new()
27282 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27284 * gst/vaapi/gstvaapivideobuffer.c:
27285 plugins: implement GstSurfaceMeta API.
27286 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
27287 an unstable/deprecated API, this makes it possible to support Clutter
27288 sink with minimal changes. Tested against clutter-gst 1.9.92.
27290 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27292 * gst/vaapi/gstvaapisink.c:
27293 vaapisink: optimize GstVideoOverlayInterface::expose().
27294 When render-mode is "overlay", then it is not really useful to peek into
27295 the GstBaseSink::last_buffer, since we have our own video_buffer already
27296 recorded and maintained into GstVaapiSink.
27298 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27300 * gst/vaapi/gstvaapisink.c:
27301 vaapisink: fix memory leak of GstSample objects.
27302 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
27303 This also fixes extra unreferencing of the underlying GstBuffer in the common
27304 path afterwards (for both 0.10 or 1.0).
27306 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27308 * gst-libs/gst/vaapi/gstcompat.h:
27309 * gst/vaapi/gstvaapi.c:
27310 plugins: fix description for gst-inspect.
27311 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
27312 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
27313 incorrectly uses #name for creating the plug-in name, instead of using macro
27314 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
27316 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27320 Update build requirements for GStreamer 1.0.x support. Add section for
27321 ways to report bugs.
27323 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27328 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27330 * gst-libs/gst/vaapi/Makefile.am:
27331 * gst/vaapi/Makefile.am:
27332 Fix make dist to include all source files, in any case.
27333 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
27334 sure to include all source files in either case while generating source
27337 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27340 Bump library major version.
27341 Bump library major version, while preserving a major version of 0 for
27342 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
27343 0.10 based librarieS.
27345 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27347 * gst/vaapi/gstvaapivideomemory.c:
27348 * gst/vaapi/gstvaapivideomemory.h:
27349 plugins: implement direct-rendering mode for raw YUV buffer uploads.
27350 Allow direct-rendering (writes) into target VA surfaces.
27352 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27354 * gst/vaapi/gstvaapivideobufferpool.c:
27355 * gst/vaapi/gstvaapivideomemory.c:
27356 * gst/vaapi/gstvaapivideomemory.h:
27357 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
27358 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
27359 the last component is unmapped. Downloads are not supported yet. The aim
27360 was to first support SW decoding + HW accelerated rendering (vaapisink).
27363 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27365 * gst/vaapi/gstvaapidecode.c:
27366 vaapidecode: submit all decoded frames before decoding a new one.
27367 Make sure to purge all pending frames that were already decoded prior
27368 to decoding a new one. This helps release VA surfaces as early as
27371 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27373 * gst/vaapi/gstvaapidecode.c:
27374 vaapidecode: reply to CAPS queries.
27375 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
27376 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
27377 This fixes fallback to SW decoding if no HW decoder is available.
27379 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27381 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27382 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27383 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27384 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27385 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27386 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27387 decoder: fix unpaired GstBuffer map/unmaps.
27388 This possibly fixes a few memory leaks along the way.
27390 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27393 * gst-libs/gst/vaapi/gstcompat.h:
27394 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27395 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27396 * gst/vaapi/Makefile.am:
27397 * gst/vaapi/gstvaapi.c:
27398 * gst/vaapi/gstvaapidecode.c:
27399 * gst/vaapi/gstvaapisink.c:
27400 * gst/vaapi/gstvaapisink.h:
27401 * gst/vaapi/gstvaapiuploader.c:
27403 Allow build against either GStreamer API (0.10 or 1.0).
27404 Introduce a new configure option --with-gstreamer-api that determines
27405 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
27406 Also integrate more compatibility glue into gstcompat.h and plugins.
27408 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27410 * gst/vaapi/gstvaapidecode.c:
27411 * gst/vaapi/gstvaapisink.c:
27412 * gst/vaapi/gstvaapisink.h:
27413 plugins: use new video buffer pools.
27414 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
27415 GstBaseSink::propose_allocation() to expose that pool to upstream
27416 elements; and also implement GstVideoDecoder::decide_allocation() to
27417 actually use that pool (from downstream), if any, or create one.
27418 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27420 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27422 * gst/vaapi/Makefile.am:
27423 * gst/vaapi/gstvaapivideobufferpool.c:
27424 * gst/vaapi/gstvaapivideobufferpool.h:
27425 * gst/vaapi/gstvaapivideomemory.c:
27426 * gst/vaapi/gstvaapivideomemory.h:
27427 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
27428 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
27429 object currently holds a reference to GstVaapiVideoMeta.
27430 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27432 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27434 * gst/vaapi/gstvaapivideometa.c:
27435 * gst/vaapi/gstvaapivideometa.h:
27436 plugins: allow copies of GstVaapiVideoMeta objects.
27437 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
27438 objects created from GstVaapiVideoPool. This is mostly useful to clone a
27439 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
27442 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27444 * gst/vaapi/gstvaapivideometa.c:
27445 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
27446 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
27447 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
27448 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
27451 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27453 * gst/vaapi/Makefile.am:
27454 * gst/vaapi/gstvaapi.c:
27455 * gst/vaapi/gstvaapidecode.c:
27456 * gst/vaapi/gstvaapidownload.c:
27457 * gst/vaapi/gstvaapipluginutil.c:
27458 * gst/vaapi/gstvaapipostproc.c:
27459 * gst/vaapi/gstvaapisink.c:
27460 * gst/vaapi/gstvaapiupload.c:
27461 * gst/vaapi/gstvaapiuploader.c:
27462 * gst/vaapi/gstvaapivideobuffer.c:
27463 * gst/vaapi/gstvaapivideoconverter_glx.c:
27464 * gst/vaapi/gstvaapivideometa.c:
27465 * gst/vaapi/gstvaapivideometa.h:
27466 plugins: initial port to GStreamer 1.0.
27467 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
27468 is rather minimalistic so that to test the basic functionality.
27469 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
27470 needs polishing wrt. to GStreamer 1.x functionality and the former are
27471 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
27472 which are yet to be implemented.
27473 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27475 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27477 * gst-libs/gst/vaapi/gstcompat.h:
27480 * tests/simple-decoder.c:
27481 * tests/test-subpicture.c:
27482 tests: add support for GStreamer 1.0.
27484 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27487 * gst-libs/gst/vaapi/gstcompat.h:
27488 * gst-libs/gst/vaapi/gstvaapicontext.c:
27489 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27490 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27491 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27492 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27493 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27494 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27495 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27496 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27497 * gst-libs/gst/vaapi/gstvaapiimage.c:
27498 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27499 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27500 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27501 * gst-libs/gst/vaapi/gstvaapisurface.h:
27502 Add initial support for GStreamer 1.0.
27503 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
27504 core decoding library. The changes are kept rather minimal here so that
27505 the library retains as little dependency as possible on core GStreamer
27507 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27509 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27511 * gst/vaapi/gstvaapisink.c:
27512 vaapisink: improve check for raw YUV format mode.
27513 Improve check for raw YUV format modes by avoiding checks against strings
27514 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
27515 GstBaseSink::set_caps() is called first and if VA surface format mode is
27516 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
27517 called before set_caps(), then we just make a full check. This one is
27518 pretty rare though, e.g. it usually happens once for custom pipelines.
27520 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27522 * gst/vaapi/gstvaapipluginutil.c:
27523 plugins: don't fail if there is no overlay composition to apply.
27524 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
27525 was found. i.e. return success (TRUE). This was harmless though extra
27526 debug messages are not nice.
27527 This is a regression introduced by commit 95b8659.
27529 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27531 * gst/vaapi/gstvaapidecode.c:
27532 * gst/vaapi/gstvaapidecode.h:
27533 vaapidecode: expose the exact set of supported HW decoders.
27534 Don't return static caps that don't mean anything for the underlying codecs
27535 that are actually supported for decoding. i.e. always allocate a VA display
27536 and retrieve the exact set of HW decoders available. That VA display may be
27537 re-used later on during negotiation through GstVideoContext "prepare-context".
27538 This fixes fallback to SW decoding if no HW decoder is available.
27540 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27542 * docs/reference/libs/libs-sections.txt:
27543 * gst-libs/gst/vaapi/gstvaapicontext.c:
27544 * gst-libs/gst/vaapi/gstvaapicontext.h:
27545 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27546 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27547 decoder: drop obsolete functions.
27548 Drop the following functions that are now obsolete:
27549 - gst_vaapi_context_get_surface()
27550 - gst_vaapi_context_put_surface()
27551 - gst_vaapi_context_find_surface_by_id()
27552 - gst_vaapi_surface_proxy_new()
27553 - gst_vaapi_surface_proxy_get_context()
27554 - gst_vaapi_surface_proxy_set_context()
27555 - gst_vaapi_surface_proxy_set_surface()
27556 This is an API change.
27558 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27560 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27561 decoder: delegate surface size check to VA context reset.
27562 Now that the surface pool is reference counted in the surface proxy wrapper,
27563 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
27564 Besides, this check is already performed in gst_vaapi_context_reset_full().
27566 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27568 * docs/reference/libs/libs-sections.txt:
27569 * gst-libs/gst/vaapi/gstvaapicontext.c:
27570 * gst-libs/gst/vaapi/gstvaapicontext.h:
27571 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27572 * gst-libs/gst/vaapi/gstvaapisurface.h:
27573 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27574 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27575 decoder: simplify acquisition/release of spare surface.
27576 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
27577 proxy from the context surface pool. This change also makes sure to retain
27578 the parent surface pool in the proxy.
27579 Besides, it was also totally useless to attach/detach parent context to
27580 VA surface each time we acquire/release it. Since the whole context owns
27581 all associated VA surfaces, we can mark this as such only once and for all.
27583 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27586 Bump version for development.
27588 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27594 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27599 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27601 * gst/vaapi/gstvaapipluginutil.c:
27602 * gst/vaapi/gstvaapisink.c:
27603 plugins: fix usage of gst_vaapi_reply_to_query().
27604 Make gst_vaapi_reply_to_query() first check whether the query argument
27605 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
27606 Then, make sure vaapisink propagates the query to the parent class if
27607 it is not a video-context query.
27609 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27611 * gst/vaapi/gstvaapivideobuffer.c:
27612 * gst/vaapi/gstvaapivideobuffer.h:
27613 plugins: streamline video buffers.
27614 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
27615 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
27616 gst_vaapi_video_buffer_get_meta().
27618 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27620 * docs/reference/libs/libs-sections.txt:
27621 * gst-libs/gst/vaapi/Makefile.am:
27622 * gst/vaapi/Makefile.am:
27623 * gst/vaapi/gstvaapidecode.c:
27624 * gst/vaapi/gstvaapidownload.c:
27625 * gst/vaapi/gstvaapipostproc.c:
27626 * gst/vaapi/gstvaapisink.c:
27627 * gst/vaapi/gstvaapiupload.c:
27628 * gst/vaapi/gstvaapiuploader.c:
27629 * gst/vaapi/gstvaapivideobuffer.h:
27630 * gst/vaapi/gstvaapivideoconverter_glx.c:
27631 * gst/vaapi/gstvaapivideometa.c:
27632 * gst/vaapi/gstvaapivideometa.h:
27633 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
27634 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
27635 actual plugin elements. That's only useful there. Also inline reference
27636 counting code from GstVaapiMiniObject.
27638 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27640 * gst/vaapi/Makefile.am:
27641 * gst/vaapi/gstvaapidecode.c:
27642 * gst/vaapi/gstvaapidownload.c:
27643 * gst/vaapi/gstvaapipluginbuffer.c:
27644 * gst/vaapi/gstvaapipluginbuffer.h:
27645 * gst/vaapi/gstvaapipostproc.c:
27646 * gst/vaapi/gstvaapiupload.c:
27647 * gst/vaapi/gstvaapiuploader.c:
27648 * gst/vaapi/gstvaapivideobuffer.c:
27649 * gst/vaapi/gstvaapivideobuffer.h:
27650 plugins: drop gstvaapipluginbuffer.[ch] helper files.
27651 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
27652 to gstvaapivideobuffer.[ch], and drop the obsolete files.
27654 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27656 * docs/reference/libs/libs-sections.txt:
27657 * docs/reference/libs/libs.core.types:
27658 * gst-libs/gst/vaapi/Makefile.am:
27659 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27660 * gst/vaapi/Makefile.am:
27661 * gst/vaapi/gstvaapidownload.h:
27662 * gst/vaapi/gstvaapipluginbuffer.c:
27663 * gst/vaapi/gstvaapipostproc.h:
27664 * gst/vaapi/gstvaapivideobuffer.c:
27665 * gst/vaapi/gstvaapivideobuffer.h:
27666 * gst/vaapi/gstvaapivideoconverter_glx.h:
27667 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
27668 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
27669 actual plugin elements. That's only useful there.
27671 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27673 * gst/vaapi/gstvaapipluginutil.c:
27674 * gst/vaapi/gstvaapipluginutil.h:
27675 * gst/vaapi/gstvaapisink.c:
27676 * gst/vaapi/gstvaapivideoconverter_glx.c:
27677 plugins: use common helper function to apply compositions.
27678 Use common gst_vaapi_apply_composition() helper function to apply compositions
27679 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
27681 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27683 * gst-libs/gst/vaapi/Makefile.am:
27684 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27685 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27686 * gst/vaapi/Makefile.am:
27687 * gst/vaapi/gstvaapipluginbuffer.c:
27688 * gst/vaapi/gstvaapivideoconverter_glx.c:
27689 * gst/vaapi/gstvaapivideoconverter_glx.h:
27690 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
27691 Make sure libgstvaapi core decoding library doesn't include un-needed
27692 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
27693 Besides, even if the vaapisink element is not used, we are bound to have
27694 a correctly populated GstSurfaceBuffer from vaapidecode.
27695 Also clean-up the file along the way.
27697 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27699 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27700 vc1: fix use of possibly uninitialized variable.
27701 In decode_codec_data(), force initialization of format to zero so that
27702 we can catch up cases where codec-data has neither "format" nor "wmvversion"
27703 fields, thus making it possible to gracefully fail in this case.
27705 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27707 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27708 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
27710 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27712 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27713 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27714 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27715 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27716 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27717 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27718 decoder: sanitize codec-data decoding.
27719 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
27720 codec-data in the decoder sub-class. Provide a common shared helper
27721 function to do the actual work and delegating further to the sub-class.
27723 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27725 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27726 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27727 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27728 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27729 decoder: get rid of GstVaapiDecoderUnit::buffer field.
27730 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
27731 useless nowadays as creating sub-buffers doesn't bring any value. It
27732 actually means more memory allocations. We can't do without that in
27733 JPEG and MPEG-4:2 decoders.
27735 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27737 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27738 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27739 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27740 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27741 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27742 decoder: sanitize uses of codec frame input buffer (cosmetics).
27743 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
27746 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27748 * gst/vaapi/gstvaapisink.c:
27749 vaapisink: add helper function to apply a composition buffer.
27750 Simplify application of a composition buffer to a GstVaapiSurface, and
27751 all its peers, until that function is eventually promoted to libgstvaapi.
27753 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27755 * gst/vaapi/gstvaapisink.c:
27756 vaapisink: fix support for raw YUV buffers.
27757 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
27758 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
27759 However, we previously assumed in that case that it was a "native" VA buffer,
27760 thus not calling into GstVaapiUploader::process().
27762 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27764 * gst-libs/gst/vaapi/gstcompat.h:
27765 * gst/vaapi/gstvaapidecode.c:
27766 * gst/vaapi/gstvaapidownload.c:
27767 * gst/vaapi/gstvaapipostproc.c:
27768 * gst/vaapi/gstvaapisink.c:
27769 * gst/vaapi/gstvaapiupload.c:
27770 plugins: use modern GstElement metadata information.
27771 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
27772 basically is the same as gst_element_class_set_details_simple() in
27773 GStreamer 0.10 context.
27775 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27777 * gst/vaapi/gstvaapidecode.c:
27778 * gst/vaapi/gstvaapidownload.c:
27779 * gst/vaapi/gstvaapipostproc.c:
27780 * gst/vaapi/gstvaapisink.c:
27781 * gst/vaapi/gstvaapiupload.c:
27782 plugins: move up interfaces (cosmetics).
27783 Move GstImplementsInterface and GstVideoContext support functions up
27784 so that to keep a clear separation between the plugin element and its
27787 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27789 * gst/vaapi/gstvaapisink.c:
27790 * gst/vaapi/gstvaapiuploader.c:
27791 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
27792 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
27793 Also use the newly added gst_vaapi_image_format_from_structure() helper
27794 in GstVaapiUploader::ensure_allowed_caps().
27796 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27798 * gst/vaapi/gstvaapipluginbuffer.c:
27799 plugins: fix creation of video buffer from another source buffer.
27800 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
27801 buffer video meta since it would be unreference'd from the get_buffer()
27802 helper function. For other cases, we still use (steal) the newly created
27805 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27807 * gst/vaapi/gstvaapipluginbuffer.c:
27808 * gst/vaapi/gstvaapipluginutil.c:
27809 plugins: include "sysdeps.h" header instead of "config.h".
27811 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27813 * gst-libs/gst/vaapi/gstcompat.h:
27815 tests: modernize GstTypeFind functions.
27816 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
27817 exactly correspond to the expected behaviour.
27819 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27823 * tests/test-decode.c:
27824 * tests/test-display.c:
27825 * tests/test-h264.c:
27826 * tests/test-h264.h:
27827 * tests/test-jpeg.c:
27828 * tests/test-jpeg.h:
27829 * tests/test-mpeg2.c:
27830 * tests/test-mpeg2.h:
27831 * tests/test-mpeg4.c:
27832 * tests/test-mpeg4.h:
27833 * tests/test-textures.c:
27834 * tests/test-vc1.c:
27835 * tests/test-vc1.h:
27836 * tests/test-windows.c:
27837 tests: fix license templates.
27839 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27841 * tests/test-display.c:
27842 tests: use gst_vaapi_image_format_from_structure() in test-display.
27843 Use gst_vaapi_image_format_from_structure() helper in test-display and
27844 then extract a VAImageFormat from it instead of relying on GstCaps for
27845 YUV and RGB formats.
27847 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27852 * tests/test-decode.c:
27853 * tests/test-display.c:
27854 * tests/test-subpicture.c:
27855 * tests/test-textures.c:
27856 * tests/test-windows.c:
27857 tests: include "sysdeps.h" header instead of "config.h".
27859 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27861 * gst-libs/gst/vaapi/gstcompat.h:
27862 * gst-libs/gst/vaapi/gstvaapicontext.c:
27863 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27864 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
27865 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
27866 function with GStreamer 0.10 compatible semantics, or that tries to
27867 approach the current meaning. Basically, this is also just about moving
27868 the helper to gstcompat.h.
27870 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27872 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27873 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27874 image: add gst_vaapi_image_format_from_structure() helper.
27875 Add helper function to convert video formats from a GstStructure to a
27876 plain GstVaapiImageFormat.
27878 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27880 * gst-libs/gst/vaapi/Makefile.am:
27881 * gst-libs/gst/vaapi/gstcompat.h:
27882 * gst-libs/gst/vaapi/sysdeps.h:
27883 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
27885 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27887 * gst-libs/gst/vaapi/sysdeps.h:
27888 sysdeps: add more standard includes by default.
27890 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27893 configure: improve GStreamer API version checks.
27895 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27898 * debian.upstream/Makefile.am:
27899 * debian.upstream/changelog.in:
27900 * debian.upstream/control.in:
27901 * debian.upstream/gstreamer-vaapi-doc.install.in:
27902 * debian.upstream/libgstvaapi-dev.install.in:
27903 * debian.upstream/libgstvaapi-drm.install.in:
27904 * debian.upstream/libgstvaapi-glx.install.in:
27905 * debian.upstream/libgstvaapi-wayland.install.in:
27906 * debian.upstream/libgstvaapi-x11.install.in:
27907 * debian.upstream/libgstvaapi.install.in:
27908 * docs/reference/libs/Makefile.am:
27909 * docs/reference/libs/libs-docs.xml.in:
27910 * docs/reference/plugins/Makefile.am:
27911 * docs/reference/plugins/plugins-docs.xml.in:
27912 * gst-libs/gst/vaapi/Makefile.am:
27913 * gst/vaapi/Makefile.am:
27914 * pkgconfig/Makefile.am:
27915 * pkgconfig/gstreamer-vaapi-drm.pc.in:
27916 * pkgconfig/gstreamer-vaapi-glx.pc.in:
27917 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
27918 * pkgconfig/gstreamer-vaapi-x11.pc.in:
27919 * pkgconfig/gstreamer-vaapi.pc.in:
27920 * tests/Makefile.am:
27921 configure: rename GST_MAJORMINOR to GST_API_VERSION.
27923 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27926 configure: improve check for H.264 codecparser.
27928 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
27930 * gst/vaapi/gstvaapiuploader.c:
27931 vaapiupload: fix illegal write in ensure_image().
27932 Fix ensure_image() to only zero-initialize the first line of each plane.
27933 Properly initializing each plane to their full vertical resolution would
27934 require to actually compute it based on the image format.
27935 In particular, for NV12 images, the UV plane has half vertical resolution
27936 vs. the Y plane. So using the full image height to initialize the UV plane
27937 will obviously lead to a buffer overflow. Likewise for other YUV format.
27938 Since ensure_image() is only a helper function to initialize something,
27939 and not necessarily the whole thing, it is fine to initializ the first
27940 line only. Besides, the target surface is not rendered either.
27941 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27943 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
27945 * gst-libs/gst/codecparsers/Makefile.am:
27946 * gst-libs/gst/video/Makefile.am:
27947 build: fix compiling of local GstVideoDecoder and codecparsers.
27948 Generated source files were missing a dependency on the complete set of
27949 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
27950 to build and almost every codec parser source depends on parserutils.h.
27951 https://bugs.freedesktop.org/show_bug.cgi?id=59575
27952 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
27953 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27955 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27957 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27958 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
27959 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
27960 there is no pred_weight_table() that was parsed.
27961 This is a workaround for the VA intel-driver on Ivy Bridge.
27963 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27965 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27966 h264: use new profile definitions from codecparsers.
27968 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27970 * ext/codecparsers:
27971 codecparsers: update to gst-vaapi-branch commit 500bc02.
27972 500bc02 h264: add profile enums
27974 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27979 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27981 * ext/codecparsers:
27982 codecparsers: update to gst-vaapi-branch commit 31b1c57.
27983 8957fb7 mpeg2: add helpers to convert quantization matrices
27984 07c4034 mpeg2: store quantization matrices in zigzag scan order
27986 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27988 * tests/simple-decoder.c:
27989 tests: simple-decoder: fix build on older platforms.
27990 Make simple-decoder build and execute correctly on older platforms,
27991 and more precisely older versions of glib.
27993 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27995 * gst-libs/gst/vaapi/glibcompat.h:
27996 glibcompat: add replacement for g_async_queue_timeout_pop().
27997 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
27998 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
27999 new data to arrive in the queue.
28001 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28003 * gst-libs/gst/vaapi/glibcompat.h:
28004 glibcompat: add replacement for g_cond_wait().
28006 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28008 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28009 mpeg2: fix decoding of 4K videos.
28010 Account for slice_vertical_position_extension when vertical_size > 2800.
28012 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28014 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28015 mpeg2: fix decoding of sequence_end().
28016 There shall be only one place to call decode_current_picture(), and this
28017 is in the end_frame() hook. The EOS unit is processed after end_frame()
28018 so this means we cannot have a valid picture to decode/output at this
28021 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28023 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28024 mpeg2: improve robustness when packets are missing.
28025 Improve robustness when some expected packets where not received yet
28026 or that were not correctly decoded. For example, don't try to decode
28027 a picture if there was no valid sequence or picture headers.
28029 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28031 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28032 decoder: handle decode-only frames in raw API mode.
28033 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
28034 surface proxy, i.e. with a valid VA surface. This means that any frame
28035 marked as decode-only is simply skipped.
28037 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28039 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28040 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28041 decoder: allow frames to be dropped.
28042 If the decoder was not able to decode a frame because insufficient
28043 information was available, e.g. missing sequence or picture header,
28044 then allow the frame to be gracefully dropped without generating
28046 It is also possible that a frame is not meant to be displayed but
28047 only used as a reference, so dropping that frame is also a valid
28048 operation since GstVideoDecoder base class has extra references to
28049 that GstVideoCodecFrame that needs to be released.
28051 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28053 * gst/vaapi/gstvaapidecode.c:
28054 vaapidecode: handle decode-only frames.
28055 Decode-only frames may not have a valid surface proxy. So, simply discard
28056 them gracefully, i.e. don't create meta data information. GstVideoDecoder
28057 base class will properly handle this case and won't try to push any buffer
28058 to downstream elements.
28060 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28062 * gst/vaapi/gstvaapidecode.c:
28063 vaapidecode: add support for post-seek semantics reset.
28064 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
28065 and the creation of a new VA decoder.
28066 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28068 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28071 Bump version for development.
28073 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28079 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28081 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28082 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
28084 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28086 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28087 decoder: fix documentation for GstVaapiDecoderFrame.
28088 Drop superfluous reference to prev_slice member.
28090 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28092 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28093 decoder: assume current frame is complete at end-of-stream.
28094 Assume we got a complete frame when the end-of-stream is reached and that
28095 the current codec frame contains at least one slice data unit.
28097 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28101 * debian.upstream/copyright:
28102 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28103 * gst-libs/gst/vaapi/gstvaapicontext.c:
28104 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28105 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28106 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28107 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28108 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28109 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28110 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28111 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28112 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28113 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28114 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28115 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28116 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28117 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28118 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28119 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28120 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28121 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28122 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
28123 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28124 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28125 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28126 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28127 * gst-libs/gst/vaapi/gstvaapisurface.c:
28128 * gst-libs/gst/vaapi/gstvaapiutils.c:
28129 * gst-libs/gst/vaapi/gstvaapiutils.h:
28130 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28131 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28132 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28133 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28134 * gst-libs/gst/vaapi/sysdeps.h:
28135 * gst/vaapi/gstvaapidecode.c:
28136 * gst/vaapi/gstvaapidownload.c:
28137 * gst/vaapi/gstvaapipluginbuffer.c:
28138 * gst/vaapi/gstvaapipluginbuffer.h:
28139 * gst/vaapi/gstvaapipostproc.c:
28140 * gst/vaapi/gstvaapisink.c:
28141 * gst/vaapi/gstvaapiupload.c:
28142 * gst/vaapi/gstvaapiuploader.c:
28144 * tests/test-decode.c:
28145 * tests/test-subpicture.c:
28146 legal: fix year for some copyright notices (2013).
28148 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28150 * gst-libs/gst/vaapi/gstvaapicontext.h:
28151 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28152 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28153 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
28154 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28155 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
28156 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28157 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
28158 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28159 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28160 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28161 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28162 * gst-libs/gst/vaapi/gstvaapisurface.c:
28163 * gst-libs/gst/vaapi/gstvaapisurface.h:
28164 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
28165 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
28166 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28167 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28168 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28169 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
28170 * gst/vaapi/gstvaapidecode.h:
28171 * gst/vaapi/gstvaapisink.h:
28172 * tests/test-subpicture.c:
28173 legal: fix year for some copyright notices (2012).
28175 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28177 * gst-libs/gst/vaapi/gstvaapicompat.h:
28178 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
28179 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28180 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
28181 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
28182 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
28183 * gst-libs/gst/vaapi/gstvaapiobject.c:
28184 * gst-libs/gst/vaapi/gstvaapiobject.h:
28185 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
28186 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
28187 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
28188 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28189 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28190 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28191 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28192 * gst-libs/gst/vaapi/gstvaapitexture.c:
28193 * gst-libs/gst/vaapi/gstvaapitexture.h:
28194 * gst-libs/gst/vaapi/gstvaapitypes.h:
28195 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
28196 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
28197 * gst-libs/gst/vaapi/gstvaapivalue.c:
28198 * gst-libs/gst/vaapi/gstvaapivalue.h:
28199 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28200 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28201 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28202 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
28203 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
28204 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28205 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
28206 * tests/test-display.c:
28207 * tests/test-surfaces.c:
28208 * tests/test-windows.c:
28209 legal: add Intel copyright on modified files.
28211 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28216 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28218 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28219 wayland: use a local event queue to avoid lock contention.
28220 This improves performance when rendering several surfaces from within
28221 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
28223 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28225 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28226 wayland: fix thread-safe issues.
28227 The Wayland API is not fully thread-safe and client applications shall
28228 perform locking themselves on key functions. Besides, make sure to
28229 release the lock if the _render() function fails.
28231 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28233 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28234 wayland: really wait until the pending redraw completed.
28235 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
28236 the completion of the redraw request. Use it in _render() function to
28237 actually block until the previous draw request is completed.
28239 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28241 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28242 wayland: fix frame_redraw callback.
28243 The redraw callback needs to be attached to the surface prior to the
28244 commit. Otherwise, the callback notifies the next surface repaint,
28245 which is not the desired behaviour. i.e. we want to be notified for
28246 the surface we have just filled.
28247 Another isse was the redraw_pending was reset before the actual completion
28248 of the frame redraw callback function, thus causing concurrency issues.
28249 e.g. the callback could have been called again, but with a NULL buffer.
28251 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28253 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
28254 wayland: fix display sharing.
28255 When the Wayland display is shared, we still have to create our own local
28256 shell and compositor objects, since they are not propagated from the cache.
28257 Likewise, we also need to determine the display size or vaapisink would
28258 fail to account for the display aspect ratio, and will try to create a 0x0
28261 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28263 * ext/codecparsers:
28264 codecparsers: update to gst-vaapi-branch commit 21a098e.
28265 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
28266 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
28268 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28270 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28271 vc1: handle frames with multiple slices.
28273 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28275 * ext/codecparsers:
28276 codecparsers: update to gst-vaapi-branch commit 3fba492.
28277 3fba492 vc1: add API to parse slice headers
28279 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28281 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28282 vc1: handle CLOSED_ENTRY.
28283 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
28284 lack a reference anchor picture, these B pictures shall be discarded.
28285 https://bugs.freedesktop.org/show_bug.cgi?id=59505
28287 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28289 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28290 vc1: cope with latest codecparser changes.
28291 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
28292 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
28293 the actual value of DQPROFILE.
28295 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28297 * ext/codecparsers:
28298 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
28299 3d2c67c vc1: simplify GstVC1VopDquant structure
28301 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28303 * ext/codecparsers:
28304 codecparsers: update to gst-vaapi-branch commit 5d33da8.
28305 5d33da8 vc1: fix bitplanes decoding
28306 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
28307 0b13d2b vc1: fix calculation of ALTPQUANT
28308 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
28310 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28312 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28313 vc1: fix size of encapsulated BDU.
28314 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
28315 the size of the BDU data, starting from offset, i.e. after any start
28317 This fixes a buffer overflow during the unescaping process.
28319 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
28321 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28322 vc1: fix decoding of WMV3 videos in AVI format.
28323 The AVI demuxer (avidemux) does not set a proper "format" attribute
28324 to the generated caps. So, try to recover the video codec format from
28325 the "wmvversion" property instead.
28326 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28328 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28330 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28331 vc1: review and report errors accordingly.
28332 Use GST_ERROR() to report real errors instead of hiding them into
28335 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28337 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28338 vc1: don't create GstBuffers for all decoder units.
28339 Don't create temporary GstBuffers for all decoder units, even if they
28340 are lightweight "sub-buffers", since it is not really necessary to keep
28341 the buffer data around.
28343 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28345 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28346 vc1: implement flush() hook.
28347 Make it a simple DPB flush.
28349 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28351 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28352 vc1: implement {start,end}_frame() hooks.
28353 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28354 that to create new VA context earlier and submit VA pictures to the
28355 HW for decoding as soon as possible. i.e. don't wait for the next
28356 frame to start decoding the previous one.
28358 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28360 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28361 vc1: fix next POC for new sequence layers.
28362 Fix next POC when a new sequence layer is reached. At this point, we
28363 need to reset any previous reference picture, i.e. non B-frame.
28365 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28367 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28368 vc1: port to common GstVaapiDpb interface.
28369 Use GstVaapiDpb interface instead of maintaining our own prev and next
28370 picture pointers. While doing so, try to derive a sensible POC value.
28371 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28373 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28375 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28376 vc1: fix decode_sequence_end() to return success, not EOS.
28378 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28380 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28381 decoder: simplify gst_vaapi_decoder_get_surface().
28382 Avoid extraenous branches, i.e. immediately return with success once we
28383 have a decoded frame available.
28385 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28387 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28388 decoder: optimize and clean decode_step() up.
28389 Avoid usage of goto. Simplify decode_step() process to first accumulate all
28390 pending buffers into the GstAdapter, and then parse and decode units from
28391 that input adapter. Stop the process once a frame is fully decoded or an
28394 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28396 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28397 display: move "vaapi" debug init to libgstvaapi_init_once().
28399 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28402 * gst-libs/gst/vaapi/Makefile.am:
28403 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28404 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
28405 display: dump gstreamer-vaapi version for debugging purposes.
28407 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28409 * tests/Makefile.am:
28410 tests: simple-decoder: fix build with built-in videoutils.
28411 Fix build with built-in videoutils, i.e. when system GStreamer installation
28412 does not know about GstVideoDecoder API.
28414 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28416 * tests/simple-decoder.c:
28417 tests: simple-decoder: flush decoded frames at EOS.
28418 Flush the remaining decoded frames when an end-of-stream is reached.
28420 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28422 * tests/simple-decoder.c:
28423 tests: simple-decoder: drop use of GstVaapiVideoMeta.
28424 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
28425 in libgstvaapi forever. Rather, that'd move to plugin elements at some
28428 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28430 * tests/simple-decoder.c:
28431 tests: simple-decoder: add benchmark mode.
28432 Add --benchmark option to enable benchmark mode where rendering is not
28433 synchronized with presentation timestamps of the decoded surfaces.
28435 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28437 * tests/Makefile.am:
28438 * tests/simple-decoder.c:
28439 tests: simple-decoder: honour framerate from the bitstream.
28440 Try to honour the framerate from the bitstream, or cap the playback to
28443 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28445 * tests/simple-decoder.c:
28446 tests: simple-decoder: set window size to the surface dimensions.
28447 Set the window size to the decoded surface dimensions, if the user has
28448 not requested the application to run in full-screen mode. Besides, no
28449 effort is made to preserve aspect ratio or to center the video within
28452 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28454 * tests/Makefile.am:
28455 * tests/simple-decoder.c:
28456 tests: add simple decoder application.
28457 Add simple decoder application to show off decoding capabilities from
28458 raw bitstreams, for debugging or performance evaluation purposes.
28460 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28462 * tests/Makefile.am:
28465 tests: add codec helper utils.
28466 Add helper functions to determine the codec type from a specific file
28467 or utility functions to convert from codec type to GstCaps or from
28468 codec name to codec type.
28470 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28473 tests: allow fullscreen mode.
28474 Add new --fullscreen|-f option to create new windows in fullscreen mode.
28476 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28478 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28479 h264: implement GstVaapiDecoder::flush() as a DPB flush.
28481 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28483 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28484 h264: handle end-of-stream NALU.
28485 Handle <end-of-stream> NAL unit to actually flush any pending picture
28488 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28490 * gst/vaapi/gstvaapidecode.c:
28491 vaapidecode: handle EOS events.
28492 Flush all decoded frames to downstream when EOS is received. This is
28493 performed by implementing GstVideoDecoder::finish() hook.
28495 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28497 * gst/vaapi/gstvaapidecode.c:
28498 vaapidecode: split gvd_handle_frame() into decode/push frames.
28499 Split GstVideoDecoder::handle_frame() implementation into two functions:
28500 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
28501 for purging all decoded frames and submit them downstream.
28503 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28505 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28506 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28507 decoder: add GstVaapiDecoder::flush() hook.
28509 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28511 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28512 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28513 decoder: fix check for end-of-stream in raw API mode.
28514 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
28515 if the end-of-stream was already reached at the previous iteration.
28517 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28519 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28520 decoder: make decode_step() return once the frame is decoded.
28521 Make sure we always have a free surface left to use for decoding the
28522 current frame. This means that decode_step() has to return once a frame
28523 gets decoded. If the current adapter contains more buffers with valid
28524 frames, they will get parsed and decoded on subsequent iterations.
28526 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28528 * ext/codecparsers:
28529 codecparsers: update to gst-vaapi-branch commit b47983a.
28530 8840c2d h264: zero-initialize SPS VUI parameters
28532 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28535 Bump version for development.
28537 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28543 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28545 * docs/reference/libs/libs-docs.xml.in:
28546 * docs/reference/libs/libs-sections.txt:
28547 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28548 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28549 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28550 docs: expose new interfaces.
28552 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28557 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28559 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28560 dpb: cosmetics (clean-ups).
28562 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28564 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28565 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28566 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28567 dpb: port to GstVaapiMiniObject.
28569 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28571 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28572 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28573 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28574 dpb: drop GstVaapiDpb2 interface, keep only one class.
28575 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
28576 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
28577 around the specified picture POC.
28579 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28581 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28582 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28583 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28584 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
28585 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
28586 useful to other decoders that require 2 reference pictures, e.g. VC-1.
28587 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28589 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28592 Bump version for pre-release.
28594 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28599 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
28602 * gst-libs/gst/vaapi/gstvaapicontext.c:
28603 * gst-libs/gst/vaapi/gstvaapiutils.c:
28604 * gst-libs/gst/vaapi/sysdeps.h:
28605 * tests/test-subpicture.c:
28606 overlay: fix build without advanced GstVideoOverlayFormatFlags.
28607 Check for global-alpha support in GstVideoOverlayComposition API.
28608 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28610 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28612 * tests/test-subpicture.c:
28613 tests: add support for global-alpha subpictures.
28614 Add --global-alpha option to test-subpicture.
28616 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28618 * tests/Makefile.am:
28619 * tests/test-subpicture.c:
28620 tests: use GstVideoOverlayComposition API for subpicture test.
28622 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28624 * tests/Makefile.am:
28625 * tests/test-subpicture.c:
28626 tests: use common decoder helpers for subpicture test.
28627 Use common decoder helpers for subpicture test, thus allowing to decode
28628 sample images in an alternate format.
28630 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28632 * tests/Makefile.am:
28635 * tests/test-decode.c:
28636 tests: add decoder helpers.
28638 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28640 * gst-libs/gst/vaapi/gstvaapicontext.c:
28641 overlay: fix ordering of composition layers.
28642 Make sure to maintain the association order of composition layers when
28643 GstVideoOverlayRectangle objects are kept around (cached).
28645 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28647 * gst-libs/gst/vaapi/gstvaapicontext.c:
28648 overlay: fix support for global-alpha.
28649 Fix support for global-alpha subpictures. The previous changes brought
28650 the ability to check for GstVideoOverlayRectangle changes by comparing
28651 the underlying pixel buffer pointers. If sequence number and pixel data
28652 did not change, then this is an indication that only the global-alpha
28653 value changed. Now, try to update the underlying VA subpicture global-alpha
28655 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28657 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28659 * gst-libs/gst/vaapi/gstvaapicontext.c:
28660 overlay: detect render-rect changes.
28661 Don't re-upload VA subpicture if only the render rectangle changed.
28662 Rather deassociate the subpicture and re-associate it with the new
28665 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28667 * gst-libs/gst/vaapi/gstvaapicontext.c:
28668 overlay: fix check for pixels buffer change.
28669 A GstVideoOverlayRectangle is created whenever the underlying pixels data
28670 change. However, when global-alpha is supported, it is possible to re-use
28671 the same GstVideoOverlayRectangle but with a change to the global-alpha
28672 value. This process causes a change of sequence number, so we can no longer
28674 Still, if sequence numbers did not change, then there was no change in
28675 global-alpha either. So, we need a way to compare the underlying GstBuffer
28676 pointers. There is no API to retrieve the original pixels buffer from
28677 a GstVideoOverlayRectangle. So, we use the following heuristics:
28678 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
28679 format flags from which the GstVideoOverlayRectangle was created. This
28680 will work if there was no prior consumer of the GstVideoOverlayRectangle
28681 with alternate (non-"native") format flags.
28682 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
28683 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
28684 with flags that match the subpicture. This is needed to cope with
28685 platforms that don't support global-alpha in HW, so the gst-video
28686 layer takes care of that and fixes this up with a possibly new
28687 GstBuffer, and hence pixels data (or) in-place by caching the current
28688 global-alpha value applied. So we have to determine the rectangle
28689 was previously used, based on what previous flags were used to
28690 retrieve the ARGB pixels buffer.
28692 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28694 * gst-libs/gst/vaapi/gstvaapicontext.c:
28695 overlay: optimize cache at the GstVideoOverlayRectangle level.
28696 We previously assumed that an overlay composition changed if the number
28697 of overlay rectangles in there actually changed, or that the rectangle
28698 was updated, and thus its seqnum was also updated.
28699 Now, we can cope with cases where the GstVideoOverlayComposition grew
28700 by one or a few more overlay rectangles, and the initial overlay rectangles
28703 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28705 * gst-libs/gst/vaapi/gstvaapicontext.c:
28706 overlay: simplify caching of GstVideoOverlayComposition objects.
28707 Create the GPtrArray once in the _init() function and destroy it only
28708 in the _finalize() function. Then use overlay_clear() to remove all
28709 subpicture associations for intermediate updates, don't recreate the
28711 Make GstVaapiOverlayRectangle a reference counted object. Also make
28712 sure that overlay_rectangle_new() actually creates and associates the
28715 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28717 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28718 * gst-libs/gst/vaapi/gstvaapiutils.c:
28719 * gst-libs/gst/vaapi/gstvaapiutils.h:
28720 overlay: add support for global-alpha.
28721 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
28722 the same code path could also work for premultiplied-alpha but this
28724 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28726 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28728 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28729 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28730 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28731 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28732 * gst-libs/gst/vaapi/gstvaapisurface.c:
28734 * tests/test-subpicture.c:
28735 subpicture: add support for global-alpha.
28736 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
28737 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
28738 to address this feature.
28739 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28741 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28743 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28744 * gst-libs/gst/vaapi/gstvaapiutils.c:
28745 * gst-libs/gst/vaapi/gstvaapiutils.h:
28746 subpicture: add premultiplied-alpha and global-alpha feature flags.
28747 Add premultiplied-alpha and global-alpha feature flags, along with converters
28748 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
28749 also necessary for GstVideoOverlayComposition API.
28751 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28753 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28754 display: allow image/subpicture formats with additional flags.
28755 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
28756 and any additional flags needed. Currently, all flags are set to zero.
28758 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28760 * gst-libs/gst/codecparsers/Makefile.am:
28761 * gst-libs/gst/video/Makefile.am:
28762 * tests/Makefile.am:
28763 libs: fix build of submodule wrappers.
28764 Make sure to build codecparsers/ and videoutils/ sources against the
28765 newly generated headers when out-of-source builds are used.
28767 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28770 configure: fix checks for packages installed in non-standard roots.
28772 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28774 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28775 decoder: fix mini object implementation on 64-bit systems.
28776 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
28777 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
28778 Only a gsize can hold all bits of a pointer.
28779 Thanks to Ouping Zhang for spotting this error.
28781 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28783 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28784 mpeg2: optimize scan for the end of the frame.
28785 Heuristic: if the second start-code is available, check whether that
28786 one marks the start of a new frame because e.g. this is a sequence
28787 or picture header. This doesn't save much, since we already cache the
28790 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28792 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28793 mpeg2: optimize scan for start codes.
28794 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
28795 A start code prefix is defined by the following bytes: 00 00 01. Thus,
28796 for any group of 3 bytes (xx yy zz), we have the following possible cases:
28797 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
28798 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
28799 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
28800 4. xx == 00, yy == 00, zz == 1, we have match!
28801 This algorithm requires to peek bytes from the adapter. This increases the
28802 amount of bytes copied to a temporary buffer, but this process is much faster
28803 than scanning for all the bytes and using shift/masks. So, overall, this is
28806 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28808 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28809 mpeg2: drop useless gst_adapter_peek().
28810 Drop useless gst_adapter_peek() since the returned buffer was not used
28811 and this could incur superfluous memcpy().
28813 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28815 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28816 mpeg2: cosmetics: move parse_slice() down.
28818 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28820 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28821 mpeg2: avoid too many allocations of parser info objects.
28822 Move parsing back to decoding step, but keep functions separate for now.
28823 This is needed for future optimizations that may introduce some meta data
28824 for parsed info attached to codec frames.
28826 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28828 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28829 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28830 decoder: decoder units are no longer dynamically allocated objects.
28832 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28834 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28835 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28836 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28837 decoder: optimize pre-allocation of decoder units.
28838 Optimize pre-allocation of decoder units, thus avoiding un-necessary
28839 memory reallocations. The heuristic used is that we could have around
28840 one slice unit per macroblock line.
28842 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28844 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28845 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28846 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28847 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28848 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28849 decoder: use an array of units instead of a single-linked list.
28850 Use a GArray to hold decoder units in a frame, instead of a single-linked
28851 list. This makes 'append' calls faster, but not that much. At least, this
28852 makes things clearer.
28854 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28856 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28857 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28858 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28859 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28860 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28861 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28862 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28863 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28864 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28865 decoder: refactor decoder unit API.
28866 Allocate decoder unit earlier in the main parse() function and don't
28867 delegate this task to derived classes. The ultimate purpose is to get
28868 rid of dynamic allocation of decoder units.
28870 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28872 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28873 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
28874 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
28875 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
28877 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28879 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28880 h264: introduce parser info instead of H.264 specific decoder unit.
28881 Use a new GstVaapiParserInfoH264 data structure instead of deriving
28882 from GstVaapiDecoderUnit for H.264 specific parser information.
28884 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28886 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28887 h264: set default values for some header fields.
28888 The SPS, PPS and slice headers are not fully zero-initialized in the
28889 codecparsers/ library. Rather, the standard upstream behaviour is to
28890 initialize only certain syntax elements with some inferred values if
28891 they are not present in the bitstream.
28892 At the gstreamer-vaapi decoder level, we need to further initialize
28893 certain syntax elements with some sensible default values so that to
28894 not complicate VA drivers that just pass those verbatim to the HW,
28895 and also avoid an memset() of the whole decoder unit.
28896 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28897 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28899 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28901 * ext/codecparsers:
28902 codecparsers: update to gst-vaapi-rebased commit b47983a.
28903 b47983a h264: add inferred value for slice_beta_offset_div2
28905 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28907 * gst/vaapi/gstvaapidecode.c:
28908 * gst/vaapi/gstvaapidownload.c:
28909 * gst/vaapi/gstvaapipluginbuffer.c:
28910 * gst/vaapi/gstvaapipluginbuffer.h:
28911 * gst/vaapi/gstvaapipostproc.c:
28912 * gst/vaapi/gstvaapisink.c:
28913 * gst/vaapi/gstvaapiupload.c:
28914 * gst/vaapi/gstvaapiuploader.c:
28915 plugins: cope with new GstVaapiVideoMeta API.
28916 Update plugin elements with the new GstVaapiVideoMeta API.
28917 This also fixes support for subpictures/overlay because GstVideoDecoder
28918 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
28919 is marked as read-only. However, when comes in the textoverlay element
28920 for example, it checks whether the input buffer is writable. Since that
28921 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
28922 does not preserve the parent field, the generated buffer in textoverlay
28923 is not exploitable because we lost all VA specific information.
28924 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
28925 all information are preserved through gst_buffer_copy() since the latter
28926 does copy metadata (qdata in this case).
28928 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28930 * gst-libs/gst/vaapi/Makefile.am:
28931 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28932 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28933 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28934 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28935 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28936 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28937 videobuffer: wrap video meta into a surface buffer.
28938 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
28939 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
28940 expecting a GstSurfaceBuffer like Clutter.
28942 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28944 * gst-libs/gst/vaapi/Makefile.am:
28945 * gst-libs/gst/vaapi/gstvaapivideometa.c:
28946 * gst-libs/gst/vaapi/gstvaapivideometa.h:
28947 videobuffer: add video meta information.
28948 Add new GstVaapiVideoMeta object that holds all information needed to
28949 convey gst-vaapi specific data as a GstBuffer.
28951 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28953 * gst/vaapi/gstvaapidecode.c:
28954 vaapidecode: fix calculation of the time-out value.
28955 Fix calculation of the time-out value for cases where no VA surface is
28956 available for decoding. In this case, we need to wait until downstream
28957 sink consumed at least one surface. The time-out was miscalculated as
28958 it was always set to <current-time> + one second, which is not suitable
28959 for streams with larger gaps.
28961 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28963 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28964 decoder: always use the calculated presentation timestamp.
28965 Use PTS value computed by the decoder, which could also be derived from
28966 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
28967 the original one was miscomputed or only represented a DTS instead.
28969 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28971 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28972 h264: don't create sub-buffer for slice data.
28974 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28976 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28977 decoder: create new context when encoded resolution changes.
28978 Create a new VA context if the encoded surface size changes because we
28979 need to keep the underlying surface pool until the last one was released.
28980 Otherwise, either of the following cases could have happened: (i) release
28981 a VA surface to an inexistent pool, or (ii) release VA surface to an
28982 existing surface pool, but with different size.
28984 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28986 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28987 mpeg2: don't create sub-buffer for slice data.
28988 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
28989 frame input buffer data. This is possible because the codec frame is valid
28990 until end_frame() where we submit the VA buffers for decoding. Anyway, the
28991 slice data buffer is copied into the VA buffer when it is created.
28993 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28995 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28996 mpeg2: minor clean-ups.
28997 Drop explicit initialization of most fields that are implicitly set to
28998 zero. Remove some useless checks for NULL pointers.
29000 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29002 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29003 mpeg2: optimize scan for the second start code.
29004 Optimize scan for the second start code, on the next parse() call so that
29005 to avoid scanning again earlier bytes where we didn't find any start code.
29007 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29009 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29010 mpeg2: use sequence_display_extension() to compute PAR.
29011 Also compute pixel-aspect-ratio from sequence_display_extension(),
29012 should it exist in the bitstream.
29014 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29016 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29017 mpeg2: handle sequence_display_extension().
29019 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29021 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29022 mpeg2: implement {start,end}_frame() hooks.
29023 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
29024 that to create new VA context earlier and submit VA pictures to the
29025 HW for decoding as soon as possible. i.e. don't wait for the next
29026 frame to start decoding the previous one.
29028 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29030 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29031 mpeg2: parse slice() header earlier.
29032 Parse slice() header and first macroblock position earlier in _parse()
29033 function instead of waiting for the _decode() stage. This doesn't change
29034 anything but readability.
29036 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29038 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29039 mpeg2: add codec specific decoder unit.
29040 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
29041 GstMpegVideoPacket and additional parsed header info. Besides, we now
29042 parse as early as in the _parse() function so that to avoid un-necessary
29043 creation of sub-buffers in _decode() for video packets that are not slices.
29045 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29047 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29048 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
29049 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
29050 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
29051 decoder: introduce lists of units to decode before/after frame.
29052 Theory of operations: all units marked as "slice" are moved to the "units"
29053 list. Since this list only contains slice data units, the prev_slice pointer
29054 was removed. Besides, we now maintain two extra lists of units to be decoded
29055 before or after slice data units.
29056 In particular, all units in the "pre_units" list will be decoded before
29057 GstVaapiDecoder::start_frame() is called and units in the "post_units"
29058 list will be decoded after GstVaapiDecoder::end_frame() is called.
29060 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29062 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29063 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29064 decoder: drop useless checks for codec objects.
29065 Codec objects are used internally only and they are bound to be created
29066 with a valid GstVaapiDecoder object.
29068 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29070 * gst/vaapi/gstvaapidecode.c:
29071 vaapidecode: use GST_ERROR to print error messages.
29073 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29075 * gst/vaapi/gstvaapidecode.c:
29076 vaapidecode: avoid double release of frame on error.
29077 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
29078 was already called before and it returned an error. In that case, we were
29079 releasing the frame again, thus leading to a "double-free" condition.
29081 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29088 * gst-libs/gst/Makefile.am:
29089 * gst-libs/gst/vaapi/Makefile.am:
29090 * gst-libs/gst/video/Makefile.am:
29091 * gst/vaapi/Makefile.am:
29092 Add videoutils submodule for GstVideoDecoder APIs.
29094 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29097 configure: check for GstVideoDecoder API.
29098 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
29099 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
29100 parties may either use upstream git 0.10 branch or backport the necessary support
29101 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
29103 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29105 * docs/reference/libs/libs.core.types:
29106 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
29107 GstVaapiSurfaceProxy is no longer based on the GType system.
29109 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29111 * docs/reference/libs/libs-sections.txt:
29112 docs: fix entries for GstVaapiSurfaceProxy.
29114 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29119 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29122 * gst-libs/gst/vaapi/Makefile.am:
29123 Bump library major version.
29124 Increase library major so that to cope with API/ABI incompatible changes
29125 since 0.4.x series and avoid user issues.
29127 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29129 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29130 surfaceproxy: minor clean-ups.
29132 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29134 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29135 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29136 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29137 surfaceproxy: drop accessors to obsolete attributes.
29138 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
29139 VA surface. i.e. drop any other attribute like timestamp, duration,
29140 interlaced or top-field-first.
29142 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29144 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29145 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29146 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29147 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29148 * gst/vaapi/gstvaapidecode.c:
29149 decoder: maintain decoded frames as GstVideoCodecFrame objects.
29150 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
29151 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
29152 the strict minimum: a context and a surface.
29154 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29156 * gst/vaapi/gstvaapidecode.c:
29157 vaapidecode: output all decoded frames as soon as possible.
29158 Make sure to push all decoded frames downstream as soon as possible.
29159 This makes sure we don't need to wait for a new frame to be ready to
29160 be decoded before receiving new decoded frames.
29161 This also separates the decode process and the output process. The latter
29162 could be moved to a specific GstTask later on.
29164 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29166 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29167 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29168 decoder: add gst_vaapi_decoder_get_frame() API.
29169 Add new gst_vaapi_decoder_get_frame() function meant to be used with
29170 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
29171 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
29172 as the user-data object.
29174 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29176 * gst/vaapi/gstvaapipostproc.c:
29177 vaapipostproc: use GstBuffer flags for TFF.
29178 Determine whether the buffer represents the top-field only by checking for
29179 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
29180 flag. Also trust "interlaced" caps to determine whether the input frame
29181 is interleaved or not.
29183 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29185 * gst/vaapi/gstvaapipostproc.c:
29186 vaapipostproc: handle video sub-buffers.
29187 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
29188 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
29190 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29192 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29193 h264: optimize initialization process of decoder units.
29194 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
29195 The latter don't require zero-initialization since the codecparsers/ lib
29196 will do so for key variables already. This is not a great value per se but
29197 at least it makes it possible to check whether the default initialization
29198 decisions made in the codecparsers/ lib were right or not.
29199 This can be reverted if this exposes too many issues.
29201 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29203 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29204 h264: minor clean-ups.
29205 Drop explicit initialization of most fields that are implicitly set to
29206 zero. Drop helper macros for casting to GstVaapiPictureH264 or
29207 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
29209 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29211 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29212 h264: drop GstVaapiSliceH264 object.
29213 Use standard GstVaapiSlice object from now on since we already have
29214 parsed and recorded the slice headers (GstH264SliceHdr decode units).
29216 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29218 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29219 h264: detect new pictures from decode-units.
29220 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
29221 of assuming frame boundaries when first_mb_in_slice is zero.
29223 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29225 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29226 h264: implement {start,end}_frame() hooks.
29227 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
29228 that to create new VA context earlier and submit VA pictures to the
29229 HW for decoding as soon as possible. i.e. don't wait for the next
29230 frame to start decoding the previous one.
29232 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29234 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29235 h264: optimize scan for the second start code.
29236 Optimize scan for the second start code, on the next parse() call so that
29237 to avoid scanning again earlier bytes where we didn't find any start code.
29239 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29241 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29242 h264: add codec specific decoder unit.
29243 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
29244 NAL unit header (GstH264NalUnit) and additional parsed header info.
29245 Besides, we now parse headers as early as in the _parse() function so
29246 that to avoid un-necessary creation of sub-buffers in _decode() for
29247 NAL units that are not slices.
29248 This is a performance win by ~+1.1% only.
29250 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29252 * gst/vaapi/gstvaapisink.c:
29253 vaapisink: handle sub video-buffers.
29254 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
29255 for non raw YUV cases. Make sure vaapisink now understands those buffers.
29257 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29259 * gst/vaapi/gstvaapidecode.c:
29260 vaapidecode: use gst_vaapi_decoder_get_codec_state().
29261 Directly use the GstVideoCodecState associated with the VA decoder
29262 instead of parsing caps again.
29263 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29264 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29266 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29268 * gst/vaapi/gstvaapidecode.c:
29269 vaapidecode: use more standard helpers.
29270 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
29273 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29275 * gst/vaapi/gstvaapidecode.c:
29276 * gst/vaapi/gstvaapidecode.h:
29277 vaapidecode: move to GstVideoDecoder base class.
29278 Make vaapidecode derive from the standard GstVideoDecoder base element
29279 class. This simplifies the code to the strict minimum for the decoder
29280 element and makes it easier to port to GStreamer 1.x API.
29281 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29282 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29284 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29286 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29287 jpeg: initial port to new GstVaapiDecoder API
29289 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29291 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29292 vc1: initial port to new GstVaapiDecoder API
29294 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29296 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29297 h264: initial port to new GstVaapiDecoder API
29299 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29301 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29302 mpeg4: initial port to new GstVaapiDecoder API
29304 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29306 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29307 mpeg2: initial port to new GstVaapiDecoder API.
29309 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29311 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29312 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29313 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29314 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29315 * gst-libs/gst/vaapi/gstvaapiprofile.c:
29316 * gst-libs/gst/vaapi/gstvaapiprofile.h:
29317 decoder: use GstVideoCodecState.
29318 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
29319 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
29320 it possible to drop picture size (width, height) information, framerate
29321 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
29322 and interlace mode (is_interlaced field).
29323 This is a new API with backwards compatibility maintained. In particular,
29324 gst_vaapi_decoder_get_caps() is still available.
29325 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29326 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29328 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29330 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29331 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29332 * tests/test-decode.c:
29333 * tests/test-subpicture.c:
29334 decoder: update gst_vaapi_decoder_get_surface() semantics.
29335 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
29336 API. That is, return a GstVaapiDecoderStatus and the decoded surface
29337 as a handle to GstVaapiSurfaceProxy in parameter.
29338 This is an API/ABI change.
29340 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29342 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29343 decoder: use standard helper functions.
29344 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
29345 whenever necessary.
29347 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29349 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29350 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29351 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29352 decoder: expose new parse/decode API.
29353 Introduce new decoding process whereby a GstVideoCodecFrame is created
29354 first. Next, input stream buffers are accumulated into a GstAdapter,
29355 that is then passed to the _parse() function. The GstVaapiDecoder object
29356 accumulates all parsed units and when a complete frame or field is
29357 detected, that GstVideoCodecFrame is passed to the _decode() function.
29358 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
29359 process was successful.
29361 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29363 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29364 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29365 decoder: add {start,end}_frame() hooks.
29366 The start_frame() hook is called prior to traversing all decode-units
29367 for decoding. The unit argument represents the first slice in the frame.
29368 Some codecs (e.g. H.264) need to wait for the first slice in order to
29369 determine the actual VA context parameters.
29371 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29373 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29374 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29375 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29376 decoder: add new GstVaapiDecoder API.
29377 Split decoding process into two steps: (i) parse incoming bitstreams
29378 into simple decoder-units until the frame or field is complete; and
29379 (ii) decode the whole frame or field at once.
29380 This is an ABI change.
29382 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29384 * gst-libs/gst/vaapi/Makefile.am:
29385 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
29386 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
29387 decoder: add new "decoder-frame" object.
29388 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
29389 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
29390 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
29391 as the user-data member element.
29392 This is a libgstvaapi internal object.
29394 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29396 * gst-libs/gst/vaapi/Makefile.am:
29397 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
29398 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
29399 decoder: add new "decoder-unit" object.
29400 Introduce GstVaapiDecoderUnit which represents a fragment of the source
29401 stream to be decoded. For instance, a decode-unit will be a NAL unit for
29402 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
29404 This is a libgstvaapi internal object.
29406 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29408 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29409 Port GstVaapiFrameStore to GstVaapiMiniObject.
29411 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29413 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29414 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
29415 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29416 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29417 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29418 Port codec objects to GstVaapiMiniObject.
29420 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29422 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29423 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29424 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29425 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29426 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29427 * gst/vaapi/gstvaapidecode.c:
29428 * gst/vaapi/gstvaapipluginbuffer.c:
29429 * tests/test-decode.c:
29430 * tests/test-subpicture.c:
29431 surfaceproxy: port to GstVaapiMiniObject.
29432 GstVaapiSurfaceProxy does not use any particular functionality from
29433 GObject. Actually, it only needs a basic object type with reference
29435 This is an API and ABI change.
29437 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29439 * gst-libs/gst/vaapi/Makefile.am:
29440 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
29441 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
29442 Add GstVaapiMiniObject.
29443 Introduce a new reference counted object that is very lightweight and
29444 also provides flags and user-data functionalities. Initialization and
29445 finalization times are reduced by up to a factor 5x vs GstMiniObject
29446 from GStreamer 0.10 stack.
29447 This is a libgstvaapi internal object.
29449 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29451 * tests/Makefile.am:
29452 * tests/test-decode.c:
29453 * tests/test-mpeg4.c:
29454 * tests/test-mpeg4.h:
29455 tests: add test for MPEG-4:2 decoding.
29457 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29459 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29460 h264: initialize VA context before allocating the first slice.
29461 Fix decode_slice() to ensure a VA context exists prior to creating a
29462 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
29463 context ID. i.e. the latter was not initialized, thus causing failures
29464 on Cedar Trail for example.
29466 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
29469 configure: install plugin elements in GST_PLUGIN_PATH, if set.
29470 If GST_PLUGIN_PATH environment variable exists and points to a valid
29471 directory, then use it as the system installation path for gst-vaapi
29473 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29475 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29478 configure: downgrade glib required version to 2.28.
29480 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29482 * gst-libs/gst/vaapi/glibcompat.h:
29483 * gst/vaapi/gstvaapi.c:
29484 libs: fix compatibility with glib 2.28.
29485 Always prefer non deprecated APIs by default and provide compatibility
29486 glue for older glib versions when necessary.
29488 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29490 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29491 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
29492 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29493 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29494 libs: use glib >= 2.32 semantics for mutexes.
29495 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
29496 and termination. Basically, the new mutex objects can be used as static
29497 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
29499 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29501 * gst-libs/gst/vaapi/Makefile.am:
29502 libs: only export gst_vaapi_*() symbols.
29503 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
29504 library and the system-provided one, mainly used by videoparses/. Now,
29505 only symbols with the gst_vaapi_* prefix will be exported, if they are
29506 not marked as "hidden" to libgstvaapi.
29508 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29510 * gst/vaapi/gstvaapiuploader.c:
29511 vaapiupload: reset direct-rendering to zero when changing caps.
29512 Make sure to reset direct-rendering flag to zero when caps are changed,
29513 and only derive it to one when the next checks succeed.
29515 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29517 * gst/vaapi/gstvaapiupload.c:
29518 vaapiupload: fix sink caps to report the supported set of YUV caps.
29519 Try to allocate the GstVaapiUploader helper object prior to listing the
29520 supported image formats. Otherwise, only a single generic caps is output
29521 with no particular pixel format referenced in there.
29523 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
29525 * gst/vaapi/gstvaapiupload.c:
29526 * gst/vaapi/gstvaapiupload.h:
29527 vaapiupload: use new GstVaapiUploader helper.
29528 Use GstVaapiUploader helper that automatically handles direct rendering
29529 mode, thus making the "direct-rendering" property obsolete and hence it
29531 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
29532 really well supported and it could actually trigger degraded performance.
29533 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29535 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29537 * gst/vaapi/gstvaapisink.c:
29538 * gst/vaapi/gstvaapiuploader.c:
29539 * gst/vaapi/gstvaapiuploader.h:
29540 vaapisink: compute and expose the supported set of YUV caps.
29541 Make vaapisink expose only the set of supported caps for raw YUV buffers.
29542 Add gst_vaapi_uploader_get_caps() helper function to determine the set
29543 of supported YUV caps as source (for images). This function actually
29544 tries to zero and upload each image to a 64x64 test surface. Of course,
29545 this relies on VA drivers to not claim success if vaPutImage() is not
29546 correctly supported.
29548 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29551 * gst/vaapi/Makefile.am:
29552 * gst/vaapi/gstvaapisink.c:
29553 * gst/vaapi/gstvaapisink.h:
29554 * gst/vaapi/gstvaapiuploader.c:
29555 * gst/vaapi/gstvaapiuploader.h:
29556 vaapisink: add support for raw YUV buffers.
29557 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
29558 It is up to the caller to negotiate source caps (for images) and output
29559 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
29560 to help decide between the creation of a GstVaapiVideoBuffer or a regular
29561 GstBuffer on sink pads.
29562 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
29563 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29565 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29567 * gst-libs/gst/vaapi/gstvaapiimage.c:
29568 image: fix GstVaapiImage map and unmap.
29569 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
29570 structure correctly filled in if the image was already mapped.
29571 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
29572 was already unmapped.
29574 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
29577 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29578 videobuffer: fix memory leak for surface and image.
29579 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
29580 thus resulting on actual memory leak of GstVaapiImage when using them
29581 for downloads/uploads from VA surfaces and more specifically surfaces
29582 when the pipeline is shutdown. i.e. vaTerminate() was never called
29583 because the resources were not unreferenced, and thus not deallocated
29585 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29587 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29592 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29594 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29595 h264: fix picture size in macroblocks.
29596 The picture size signalled by sps->{width,height} is the actual size with
29597 cropping applied, not the original size derived from pic_width_in_mbs_minus1
29598 and pic_height_in_map_units_minus1. VA driver expects that original size,
29600 There is another issue pending: frame cropping information needs to be
29603 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29605 * gst-libs/gst/codecparsers/Makefile.am:
29606 codecparsers: always build parserutils first.
29607 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
29608 This is needed since that's the common dependency for actual codec
29609 parsers (gstvc1parser.c for instance).
29611 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29613 * gst-libs/gst/codecparsers/Makefile.am:
29614 codecparsers: always build the VC-1 parser library.
29615 ... this is useful to make sure pixel-aspect-ratio and framerate
29616 information are correctly parsed since we have no means to detect
29617 that at configure time.
29619 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29622 * gst-libs/gst/codecparsers/Makefile.am:
29623 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29624 mpeg2: fix PAR calculation from commit bd11bae.
29625 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
29626 correct PAR values. While doing so, require a newer version of the
29627 bitstream parser library.
29628 Note: it may be necessary to also parse the Sequence_Display_Extension()
29630 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29631 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29633 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29635 * gst-libs/gst/vaapi/Makefile.am:
29636 Fix build with the GNU gold linker.
29637 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
29638 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
29640 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
29643 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29644 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29645 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29646 wayland: port to 1.0 version of the protocol.
29647 This patch updates to relect the 1.0 version of the protocol. The main
29648 changes are the switch to wl_registry for global object notifications
29649 and the way that the event queue and file descriptor is processed.
29650 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29652 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29654 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29655 h264: fix incorrect integration of previous commit (4d31e1e).
29656 git am got confused somehow, though the end result doesn't change at
29657 all since we require both SPS and PPS to be parsed prior to decoding
29660 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29662 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29663 h264: start decoding slices after first SPS/PPS activation.
29664 Only start decoding slices when at least one SPS and PPS got activated.
29665 This fixes cases when a source represents a substream of another stream
29666 and no SPS and PPS was inserted before the first slice of the generated
29669 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29671 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29672 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
29673 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
29674 contain up to 32 fields but VA ReferenceFrames[] array expects up to
29675 16 reference frames, thus including both fields.
29677 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29679 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29680 h264: fix interlaced stream decoding with MMCO.
29681 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
29682 is equal to 1, i.e. when memory management control operations are used. In
29683 particular, when field_pic_flag is set to 0, the new reference flags shall
29684 be applied to both fields.
29686 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29688 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29689 h264: add initial support for interlaced streams.
29690 Decoded frames are only output when they are complete, i.e. when both
29691 fields are decoded. This also means that the "interlaced" caps is not
29692 propagated to vaapipostproc or vaapisink elements. Another limitation
29693 is that interlaced bitstreams with MMCO are unlikely to work.
29695 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29697 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29698 h264: split remove_reference_at() into finer units.
29699 Split remove_reference_at() into a function that actually removes the
29700 specified entry from the short-term or long-term reference picture array,
29701 and a function that sets reference flags to the desired value, possibly
29702 zero. The latters marks the picture as "unused for reference".
29704 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29706 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29707 decoder: fix gst_vaapi_picture_new_field() object type.
29708 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
29709 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
29710 shall generate a GstVaapiPictureH264 object.
29712 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29714 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29715 h264: add picture structure for reference picture marking process.
29716 Introduce new `structure' field to the H.264 specific picture structure
29717 so that to simplify the reference picture marking process. That local
29718 picture structure is derived from the original picture structure, as
29719 defined by the syntax elements field_pic_flag and bottom_field_flag.
29721 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29723 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29724 h264: introduce new frame store structure.
29725 The frame store represents a Decoded Picture Buffer entry, which can
29726 hold up to two fields. So far, the frame store is only used to hold
29729 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29731 * ext/codecparsers:
29732 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
29733 73d6aab h264: fix rbsp_more_data() implementation
29734 25d04cf h264: fix error code for invalid size parsed in SPS
29735 84798e5 fix FSF address
29737 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29739 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29740 h264: minor clean-ups.
29741 Move DPB flush up if the current picture to decode is an IDR. Besides,
29742 don't bother to check for IDR pictures in dpb_add() function since an
29743 explicit DPB flush was already performed in this case.
29745 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29747 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29748 h264: simplify reference picture marking process.
29749 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
29750 of maintaining them separately. This avoids refs/unrefs while making it
29751 possible to generate the list based on the actual picture structure.
29752 This also ensures that the list of generated ReferenceFrames[] actually
29753 matches what reference frames are available in the DPB. i.e. short_ref[]
29754 and long_ref[] entries are implied from the DPB, so there is no risk of
29755 having "dangling" references.
29757 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29759 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29760 h264: introduce per-field POC in GstVaapiPictureH264.
29761 Use the POC member available in the GstVaapiPicture base class and
29762 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
29763 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
29764 initialized to INT_MAX, so that to simplify picture POC calculation
29765 for non frame pictures.
29767 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29769 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29770 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
29771 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
29772 reference bits, thus simplifying the reference picture marking process
29773 to only track a single set of reference flags. Also introduce a new
29774 long_term_frame_idx member.
29776 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29778 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29779 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
29781 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29783 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29784 h264: fill in GstVaapiPicture structure.
29785 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
29787 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29789 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29790 h264: add vaapi_fill_picture() helper.
29791 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
29792 to VAPictureH264 structure. This is preparatory work to get rid of the
29793 local VAPictureH264 member in GstVaapiPictureH264.
29795 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29797 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29798 h264: fix activation order of picture and sequence parameters.
29799 Delay ensure_context() until we actually need a VA context for allocating
29800 new VA surfaces, and then GstVaapiPictures, but also when a real activation
29801 of a new picture parameter set occurs, thus also implying an activation
29802 of the related sequence parameter set.
29803 The most important thing was to drop the global pps and sps pointers since
29804 they may not have matched the currently activated picture parameter or
29805 sequence parameter sets at the specified decode point.
29806 Anoter positive side-effect is that this cleans up all occurrences of
29807 decode_current_picture() to only keep those useful in decode_picture(),
29808 before a new picture is allocated, or in decode_sequence_end() when
29809 an end-of-stream or end-of-sequence condition occurred.
29811 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29813 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29814 h264: fix scaling list generation.
29815 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
29816 array was partially copied to the VAIQMatrixBufferH264. While we are
29817 at it, also improve bounds checking and avoid copying 8x8 scaling
29818 lists if transform_8x8_mode_flag is set to 0.
29820 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29822 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29823 h264: fix detection of picture boundaries.
29824 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
29825 unit of a primary coded picture.
29827 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29829 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29830 h264: optimize handling of scaling lists.
29831 Don't copy scaling lists twice to an intermediate state. Rather, directly
29832 use the scaling lists from GstH264PPS since they would match those provided
29833 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
29834 available in the bitstream.
29836 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29838 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29839 h264: simplify code when MMCO is 5.
29840 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
29841 is now updated accordingly to the standard. Besides, MMCO = 5 specific
29842 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
29844 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29846 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29847 h264: fix MMCO-based reference picture marking process.
29848 Fix adaptive memory control decoded reference picture marking process
29849 implementation for operations 2 to 6, thus also fixing support for
29850 long-term reference pictures.
29852 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29854 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29855 h264: move MMCO handlers out of the loop (cosmetics).
29856 This change only splits each individual MMCO handler into several functions
29857 dedicated for each operation. This is needed to perform further work later
29860 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29863 debian: fix make dist for packaging.
29864 bzip2 tarballs are now used, so update the deb.upstream dependencies
29865 to include dist-bzip2 instead of plain old dist, and use the correct
29866 tar extract options to handle that format.
29868 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29871 configure: generate bzip2 tarballs in ustar format by default.
29873 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29876 configure: bump glib required version to 2.31.2.
29877 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
29878 rather than g_mutex_new() and g_cond_new() respectively.
29880 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
29882 * gst/vaapi/gstvaapidecode.c:
29883 * gst/vaapi/gstvaapidecode.h:
29884 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
29885 The use of heap allocated GMutex/GCond is deprecated. Instead place them
29886 inside the structure they are locking.
29887 These changes switch to use g_mutex_init/g_cond_init rather than the heap
29888 allocation functions.
29889 Because we cannot test for a NULL pointer for the GMutex/GCond we must
29890 initialise inside the GObject _init function and clear inside the _finalize
29891 which is guaranteed to only be called once and after the object is no longer
29894 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29896 * gst/vaapi/gstvaapidecode.c:
29897 vaapidecode: fix compiler warnings.
29898 Don't care of the return value for gst_vaapi_decoder_put_buffer()
29899 during destruction of the element. Don't print out (uninitialised)
29900 error code when allocation of video buffer failed.
29902 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29904 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29905 h264: add flag to compile with strict DPB ordering mode.
29906 Allow build with strict DPB ordering mode whereby evicted entries
29907 are replaced by the next entries, in order instead of optimizing
29908 it away with the last entry in the DPB.
29909 This is only useful for debugging purpose, against a reference SW
29910 decoder for example.
29912 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29914 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29915 h264: drop extra code covered by built-in codecparsers.
29916 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
29917 a newer version of codecparsers/ are used if the system provided one is
29918 now recent enough to have those required extensions.
29920 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29922 * gst-libs/gst/codecparsers/Makefile.am:
29923 codecparsers: fix generation of symlinks.
29924 Try to improve dependencies while generating symlinks to externally
29925 maintained copy of codecparsers (derived from upstream git master
29928 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29930 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29931 vc1: use framerate information from bitstream parser.
29933 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29935 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29936 vc1: use pixel-aspect-ratio from bitstream parser.
29937 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29938 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29940 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29942 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29943 mpeg2: use pixel-aspec-ratio information from bitstream parser.
29944 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29945 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29947 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29950 * gst-libs/gst/codecparsers/Makefile.am:
29951 codecparsers: h264: use submodule sources.
29952 Use newer sources from the codecparsers/ submodule for
29953 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
29954 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
29956 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29960 * gst-libs/gst/codecparsers/Makefile.am:
29961 * gst-libs/gst/codecparsers/gstjpegparser.c:
29962 * gst-libs/gst/codecparsers/gstjpegparser.h:
29963 * gst-libs/gst/vaapi/Makefile.am:
29964 codecparsers: jpeg: use submodule sources.
29966 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29973 * ext/codecparsers:
29974 Add codecparsers submodule.
29976 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29979 .gitignore: updates.
29981 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29984 autogen: fix check for gtkdocize and autoreconf.
29985 If gtkdocize or autoreconf programs were not found, then the autogen.sh
29986 script would fail to report that correctly because test -z was not passed
29987 any argument (empty string "" in this case).
29989 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29991 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29992 h264: use pixel-aspect-ratio from SPS header.
29993 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
29994 from the sequence headers.
29995 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29996 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29998 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30000 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30001 h264: add decode_nalu() helper function.
30002 Split decode_buffer() into the core infrastructure that determines
30003 the NAL units contained in the adapter and the actual function that
30004 decodes the NAL unit.
30006 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30008 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30009 h264: fix end-of-stream conditions (flush).
30010 Decode pending data in the adapter prior to processing the actual
30011 code for end-of-stream.
30013 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30015 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30016 mpeg2: add decode_packet() helper function.
30017 Split decode_buffer() into the core infrastructure that determines
30018 the packets contained in the adapter and the actual function that
30019 decodes the packet data.
30021 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30023 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30024 mpeg2: fix end-of-stream conditions (flush).
30025 Decode pending data in the adapter prior to processing the actual
30026 code for end-of-stream. Initial code from Feng Yuan.
30028 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30030 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30031 mpeg2: fix memory leak of empty packets.
30032 Fix memory leakage of empty packets, i.e. packets that only contain
30033 the start code prefix. In particular, free empty user-data packets.
30034 Besides, the codec parser will already fail gracefully if the packet
30035 to parse does not have the minimum required size. So, we can also
30036 completely drop the block of code that used to handle packets of size 4
30037 (including the start code).
30039 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30041 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30042 mpeg2: fix return value for "no-data" conditions.
30043 Fix return value when the second scan for start code fails. This means
30044 there is not enough data to determine the full extents of the current
30045 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
30046 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
30048 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30050 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30051 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
30052 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
30053 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
30054 or with a size equals to zero. In this case, that buffer is simply
30055 skipped and the function returns TRUE. A NULL buffer argument still
30056 marks the end-of-stream.
30058 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30060 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30061 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30062 decoder: drop unused functions.
30064 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
30066 * gst/vaapi/gstvaapidecode.c:
30067 vaapidecode: flush buffers when receiving EOS.
30068 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30070 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30072 * debian.upstream/Makefile.am:
30073 debian: fix make dist for packaging.
30075 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30077 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30078 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30079 wayland: cosmetics (remove tabs).
30081 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
30083 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30084 wayland: add support for windowed mode.
30085 Rather than always making the surface fullscreen instead implement the
30086 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
30087 fullscreen on not depending on that.
30088 Reviewed-by: Joe Konno <joe.konno@intel.com>
30089 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30091 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30094 Bump version for development.
30096 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30100 Fix and document build dependencies better.
30102 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30104 * debian.upstream/control.in:
30105 debian: fix GStreamer build dependencies.
30107 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30110 * debian.upstream/control.in:
30111 debian: fix Wayland build dependencies.
30113 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30115 * debian.upstream/control.in:
30116 debian: fix conditional build of packages.
30117 Make it still possible to build package even if one of the build dependencies
30118 for a specific video backend is not available.
30120 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30122 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30123 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30124 utils: drop unused GLX helpers.
30125 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
30126 extensions since they are not used throughout gstreamer-vaapi.
30128 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30130 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30131 utils: fix build with <GL/glext.h> version >= 85.
30132 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
30133 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
30134 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
30135 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
30136 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
30137 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
30138 newer versions of the <GL/glext.h> header.
30140 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30143 configure: update VA-API version requirements.
30144 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
30146 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30148 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30149 h264: review and report errors accordingly.
30150 Use GST_ERROR() to report real errors instead of hiding them into
30153 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30155 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30156 h264: exclusively use GstAdapter, drop sub-buffer hack.
30157 Maintaining the sub-buffer is rather suboptimal especially since we
30158 were also maintaining a GstAdapter. Now, we only use the GstAdapter
30159 thus requiring minor extra parsing when receiving avcC buffers.
30161 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30166 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30171 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30173 * debian.upstream/gstreamer-vaapi.install.in:
30174 debian: fix packaging on recent Ubuntu platforms.
30175 Use explicit GStreamer plugins path.
30177 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30179 * docs/reference/libs/libs-docs.xml.in:
30180 * docs/reference/libs/libs.core.types:
30181 docs: fix build for make dist.
30183 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
30185 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30186 wayland: set opaque region for YUV surface.
30187 This allows the compositor to optimize redraws and cull away changes
30188 obscured by the video surface.
30189 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30191 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30194 configure: fix check for libva-glx and libva-drm.
30196 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30198 * gst-libs/gst/vaapi/glibcompat.h:
30199 glibcompat: add replacement for g_cond_wait_until().
30201 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30203 * gst/vaapi/gstvaapidecode.c:
30204 * gst/vaapi/gstvaapidownload.c:
30205 * gst/vaapi/gstvaapipostproc.c:
30206 * gst/vaapi/gstvaapisink.c:
30207 * gst/vaapi/gstvaapiupload.c:
30208 plugins: include "sysdeps.h" instead of "config.h".
30210 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30212 * gst-libs/gst/codecparsers/gstjpegparser.c:
30213 codecparsers: jpeg: add missing includes.
30215 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30217 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30218 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30219 * gst/vaapi/gstvaapidecode.c:
30220 vaapidecode: don't reset decoder if codec type is the same.
30221 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
30222 if the underlying codec type actually changed. This makes it possible
30223 to be more tolerant with certain MPEG-2 streams that get parsed to
30224 form caps that are compatible with the previous state but minor changes
30227 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30229 * gst/vaapi/gstvaapidecode.c:
30230 vaapidecode: simplify codec lookup from caps.
30231 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
30232 the specified caps. Don't globally expose this function since this is
30233 really trivial and only used in the vaapidecode element.
30235 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30237 * gst/vaapi/gstvaapidecode.c:
30238 * gst/vaapi/gstvaapidecode.h:
30239 vaapidecode: improve "no free surface" conditions.
30240 Previously, vaapidecode would wait up to one second until a free surface
30241 is available, or it aborts decoding. Now, vaapidecode waits until the
30242 last decoded surface was to be presented, plus one second. Besides, end
30243 times are now expressed relative to the monotonic clock.
30245 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30247 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30248 * gst/vaapi/gstvaapidecode.c:
30249 decoder: propagate buffer duration downstream.
30251 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30253 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30254 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30255 surfaceproxy: add "duration" property.
30257 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30259 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30260 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30261 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30262 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30263 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30264 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30265 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30266 decoder: cope with new GstVaapiContextInfo based API.
30267 Update decoders to report the maximum number of reference frames to use.
30269 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30271 * gst-libs/gst/vaapi/gstvaapicontext.c:
30272 context: JPEG codec does not need any reference frame.
30274 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30276 * gst-libs/gst/vaapi/gstvaapicontext.c:
30277 * gst-libs/gst/vaapi/gstvaapicontext.h:
30278 context: allow number of reference frames to be set.
30279 Make it possible to specify the maximum number of references to use within
30280 a single VA context. This helps reducing GPU memory allocations to the useful
30281 number of references to be used.
30283 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30285 * gst/vaapi/gstvaapipostproc.c:
30286 vaapipostproc: fix deinterlace-{mode,method} types definition.
30288 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30290 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30291 mpeg4: fix debug info for unsupported profile.
30293 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30295 * gst-libs/gst/vaapi/gstvaapicontext.c:
30296 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30297 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30298 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30299 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30300 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30301 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30302 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30303 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30304 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30305 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30306 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30307 * gst-libs/gst/vaapi/gstvaapiimage.c:
30308 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
30309 * gst-libs/gst/vaapi/gstvaapiobject.c:
30310 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30311 * gst-libs/gst/vaapi/gstvaapisurface.c:
30312 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
30313 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30314 * gst-libs/gst/vaapi/gstvaapitexture.c:
30315 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30316 * gst-libs/gst/vaapi/gstvaapivalue.c:
30317 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30318 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30319 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30320 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30321 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30322 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30323 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
30324 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30325 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30326 libs: fix build in strict ISO C mode.
30328 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30330 * gst/vaapi/gstvaapi.c:
30331 * gst/vaapi/gstvaapidecode.c:
30332 * gst/vaapi/gstvaapidownload.c:
30333 * gst/vaapi/gstvaapipostproc.c:
30334 * gst/vaapi/gstvaapisink.c:
30335 * gst/vaapi/gstvaapiupload.c:
30336 plugins: fix build in strict ISO C mode.
30338 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30340 * pkgconfig/gstreamer-vaapi-glx.pc.in:
30341 * pkgconfig/gstreamer-vaapi-x11.pc.in:
30342 * pkgconfig/gstreamer-vaapi.pc.in:
30343 pkgconfig: fix dependencies and slightly improve description.
30344 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
30345 descriptions with clearer renderer names.
30347 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
30349 * gst/vaapi/gstvaapidecode.c:
30350 vaapidecode: acquire lock only if the mutex exists.
30351 When playback stops the GstVaapiDecode object is reset into a clean
30352 state. However, surfaces may still be referenced by library users and
30353 unreferencing them after the reset triggers an access to an unset mutex.
30354 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30356 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30358 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30359 decoder: drop extraneous return for void function.
30361 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30363 * gst-libs/gst/vaapi/gstvaapiimage.c:
30364 image: don't use (void *) pointer arithmetic.
30366 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
30368 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30369 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30370 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30371 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30372 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30373 * gst-libs/gst/vaapi/gstvaapiprofile.h:
30374 * gst-libs/gst/vaapi/gstvaapisurface.h:
30375 * gst-libs/gst/vaapi/gstvaapitypes.h:
30376 * gst/vaapi/gstvaapipostproc.h:
30377 Do not forward declare enums.
30378 Forward declaring enums is not allowed by the C standard and aborts
30379 compilation if the header file is included in a C++ project.
30380 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30382 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30385 configure: fix check for VA/DRM API.
30387 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30389 * gst/vaapi/gstvaapisink.c:
30390 vaapisink: fix calculation of window size.
30391 If either dimension is out-of-bounds, then scale window to fit the
30392 display size, even if the output is to be rotated. Use the standard
30393 gst_video_sink_center_rect() function to center and scale the window
30394 wrt. the outer (display) bounds.
30396 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
30398 * gst/vaapi/gstvaapisink.c:
30399 * gst/vaapi/gstvaapisink.h:
30400 vaapisink: add video rotation support.
30401 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30403 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30405 * gst/vaapi/gstvaapipluginutil.h:
30406 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
30407 This macro helps swapping variables while maintaining the correct underlying
30408 and primitive type.
30410 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30412 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30413 display: fix display aspect ratio when display is rotated.
30415 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30418 * gst-libs/gst/vaapi/Makefile.am:
30419 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30420 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
30421 display: fix physical display size when display is rotated.
30423 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30425 * gst-libs/gst/vaapi/gstvaapivalue.c:
30426 display: fix GstVaapiRotation enumeration of values.
30428 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30430 * docs/reference/libs/libs-docs.xml.in:
30431 * docs/reference/libs/libs-sections.txt:
30432 * gst-libs/gst/vaapi/Makefile.am:
30433 * gst-libs/gst/vaapi/gstvaapivideosink.c:
30434 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30435 * gst/vaapi/gstvaapidecode.c:
30436 * gst/vaapi/gstvaapidownload.c:
30437 * gst/vaapi/gstvaapipostproc.c:
30438 * gst/vaapi/gstvaapisink.c:
30439 * gst/vaapi/gstvaapiupload.c:
30440 vaapisink: drop obsolete GstVaapiVideoSink interface.
30441 This interface was deprecated since 0.3.x series when the GstVideoContext
30442 interface was added to the main GStreamer APIs.
30444 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30446 * gst/vaapi/gstvaapisink.c:
30447 * gst/vaapi/gstvaapisink.h:
30448 vaapisink: automatically detect overlay rendering mode.
30449 Retain the VA surface until another surface is to be displayed only
30450 if VA display rendering mode is determined to be "overlay" mode.
30452 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30454 * gst/vaapi/gstvaapisink.c:
30455 * gst/vaapi/gstvaapisink.h:
30456 vaapisink: retain VA surface until another one is displayed.
30457 Keep VA surface proxy associated with the surface that is currently
30458 being displayed. This makes sure that surface is not released back
30459 to the pool of surfaces free to use for decoding. This is necessary
30460 with VA driver implementations that support rendering to an overlay
30461 pipe. Otherwise, there could be cases where we are decoding into a
30462 surface that is being displayed, hence some flickering.
30464 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30466 * gst/vaapi/gstvaapisink.h:
30467 vaapisink: fix build with older toolchains.
30468 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
30470 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30472 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30473 display: partially revert 8ebe4d6.
30474 Don't try to fix up the initial values, this could make things worse.
30475 Simply assume the driver does not support the capability in this case.
30477 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30479 * tests/test-display.c:
30480 tests: dump VA display properties.
30482 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30484 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30485 display: fix validation process of properties during discovery.
30486 Some VA drivers (e.g. EMGD) can have completely random values for initial
30487 display attributes. So, try to improve the discovery process to check the
30488 initial display attribute values actually fall within valid bounds. If not,
30489 try to reset those to some sensible values like the default value reported
30490 through vaQueryDisplayAttributes().
30492 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30494 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30495 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30496 display: add color balance properties.
30497 Add support for hue, saturation, brightness and contrast attributes.
30499 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30501 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30502 display: initialize default attribute values.
30503 Ensure the display attribute is actually supported by trying to retrieve
30504 its current value during GstVaapiDisplay creation.
30506 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30508 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30509 display: raise "notify" for property changes.
30511 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30513 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30514 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30515 display: expose display attributes as GObject properties.
30516 Expose VA display "render-mode" and "rotation" attributes as standard
30517 GObject properties.
30519 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30521 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30522 display: install properties in batch.
30523 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
30524 It is useful to maintain properties as GParamSpec so that to be able to raise
30525 "notify" signals by id instead of by name in the future.
30527 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30529 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30530 display: fix gst_vaapi_display_has_property().
30531 Append the "render-mode" and "rotation" properties, should they be supported
30532 by the underlying VA driver.
30534 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
30536 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30537 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30538 * gst-libs/gst/vaapi/gstvaapitypes.h:
30539 * gst-libs/gst/vaapi/gstvaapiutils.c:
30540 * gst-libs/gst/vaapi/gstvaapiutils.h:
30541 * gst-libs/gst/vaapi/gstvaapivalue.c:
30542 * gst-libs/gst/vaapi/gstvaapivalue.h:
30543 display: add support for rotation modes.
30544 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30546 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30548 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30549 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30550 * gst-libs/gst/vaapi/gstvaapitypes.h:
30551 * gst-libs/gst/vaapi/gstvaapivalue.c:
30552 * gst-libs/gst/vaapi/gstvaapivalue.h:
30553 display: add support for rendering modes.
30554 A rendering mode can be "overlay" or "texture"'ed blit.
30555 The former mode implies that a VA surface used for rendering can't be
30556 re-used right away for decoding, so the sink shall make provisions to
30557 retain the associated surface proxy until the next surface is to be
30559 The latter mode implies that the VA surface is implicitly copied to an
30560 intermediate backing store, or back buffer of a frame buffer, so the
30561 associated surface proxy can be disposed right away.
30563 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30565 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30566 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30567 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30568 display: add initial support for display attributes.
30569 The VA display attributes are mapped to properties so that to maintain the
30570 GStreamer terminology. Properties are to be identified by name, but internal
30571 functions are available to lookup the property by the actual VA display
30574 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30576 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30577 jpeg: fix end-of-image (EOI) handler.
30578 decode_current_picture() was converted to return a gboolean instead
30579 of a GstVaapiDecoderStatus, so we were not getting out of the decode
30580 loop as expected, or could cause an error instead.
30581 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30583 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30585 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30586 mpeg2: include start code into VA slice data buffer.
30587 Integrate the start code prefix in the slice data buffer that is submitted
30588 to the hardware. VA-API specifies that slice_data_offset is the offset to
30589 the first byte of slice data. And, for MPEG-2, slice() data begins with
30590 the slice_start_code. Some VA driver implementations (EMGD) expect this.
30592 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
30595 autogen: fix configure script generation when srcdir != builddir.
30596 This patch allows for regenerating the configure script from a build
30597 directory that is not the actual source directory.
30598 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30600 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
30603 configure: use new libtool syntax.
30604 This now requires libtool >= 2.2 to regenerate the configure script.
30605 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30607 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
30609 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30610 decoder: use g_object_notify_by_pspec().
30611 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
30612 avoid a property name lookup. i.e. this makes notifications faster to
30613 the `vaapidecode' element.
30614 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30616 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30618 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30619 wayland: handle de-interlacing flags.
30620 VA/Wayland API was updated to allow flags for bob deinterlacing.
30621 More elaborated filters will require a complete VA/VPP pipeline.
30623 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30625 * gst-libs/gst/codecparsers/gstjpegparser.c:
30626 jpeg: fix default quantization tables.
30627 Two elements in the luminance quantization table were wrong. So,
30628 gst_jpeg_get_default_quantization_tables() now reconstructs tables
30629 in zig-zag order from the standard ones (Tables K.1 and K.2).
30631 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30633 * gst-libs/gst/codecparsers/gstjpegparser.c:
30634 jpeg: compute default Huffman tables.
30635 ... instead of having them pre-calculated. This saves around 1.5 KB
30636 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
30637 to do more work. Though, the client application may have to call that
30638 function at most once, only.
30640 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30642 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30643 display: drop VAProfileNone entries from debug messages.
30645 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
30647 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30648 display: query for supported display attributes.
30649 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30651 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
30653 * gst-libs/gst/vaapi/gstvaapiutils.c:
30654 * gst-libs/gst/vaapi/gstvaapiutils.h:
30655 utils: add string_of_VADisplayAttributeType() helper.
30656 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30658 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30660 * gst/vaapi/gstvaapisink.c:
30661 vaapisink: handle VA/DRM API.
30662 This is not useful in practice but for raw performance evaluation when
30663 the sink is invoked with display=drm sync=false. fakesink could also be
30666 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30668 * gst/vaapi/Makefile.am:
30669 * gst/vaapi/gstvaapipluginutil.c:
30670 plugins: add support for headless pipelines.
30672 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30674 * tests/Makefile.am:
30676 * tests/test-display.c:
30677 * tests/test-windows.c:
30678 tests: add support for headless decoding.
30680 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30684 * debian.upstream/Makefile.am:
30685 * debian.upstream/control.in:
30686 * debian.upstream/libgstvaapi-drm.install.in:
30687 * gst-libs/gst/vaapi/Makefile.am:
30688 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30689 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30690 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30691 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
30692 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
30693 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30694 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
30695 * pkgconfig/Makefile.am:
30696 * pkgconfig/gstreamer-vaapi-drm.pc.in:
30697 Add initial support for VA/DRM.
30699 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30702 * gst-libs/gst/vaapi/Makefile.am:
30703 Fix build without X11 (again).
30704 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
30705 files list wrt. x11, glx and wayland backends.
30707 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30710 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30711 * gst-libs/gst/vaapi/gstvaapicompat.h:
30712 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30713 jpeg: update to the latest VA-API changes (0.32.1+).
30715 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30717 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30718 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30719 * gst/vaapi/gstvaapisink.c:
30720 wayland: implement display ::get_size*() hooks.
30722 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30724 * gst/vaapi/gstvaapipluginutil.c:
30725 plugins: prefer X11 rendering over GLX.
30726 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
30727 for rendering instead of texturing.
30729 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
30731 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30732 wayland: use scale fullscreen method.
30733 This makes the compositor scale the surface to fit and preserves aspect
30735 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30737 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
30739 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30740 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
30741 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30743 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30745 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30746 wayland: fix double disconnect of display.
30748 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30750 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30751 wayland: mangle display name for cache lookups.
30753 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30756 * debian.upstream/Makefile.am:
30757 * debian.upstream/control.in:
30758 * debian.upstream/libgstvaapi-wayland.install.in:
30759 * pkgconfig/Makefile.am:
30760 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
30761 wayland: add packaging files.
30763 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30765 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30766 * gst/vaapi/gstvaapipluginutil.c:
30767 * gst/vaapi/gstvaapisink.c:
30768 * pkgconfig/Makefile.am:
30769 Fix build without X11.
30771 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30773 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30774 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30775 * gst/vaapi/Makefile.am:
30776 * gst/vaapi/gstvaapipluginutil.c:
30777 * gst/vaapi/gstvaapisink.c:
30778 plugins: add support for Wayland.
30780 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30782 * tests/Makefile.am:
30784 * tests/test-display.c:
30785 * tests/test-windows.c:
30786 tests: add support for Wayland.
30788 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30792 * gst-libs/gst/vaapi/Makefile.am:
30793 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30794 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
30795 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30796 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30797 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30798 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
30799 Add initial support for VA/Wayland.
30800 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30802 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30804 * gst/vaapi/gstvaapipluginbuffer.c:
30805 plugins: fix creation of video buffer from surface proxy.
30806 Fix a regression introduced with commit 8ef490a.
30808 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30810 * gst/vaapi/gstvaapipluginbuffer.c:
30811 * gst/vaapi/gstvaapipluginutil.c:
30812 plugins: use new display types more.
30813 In particular, simplify gst_vaapi_reply_to_query() with display types.
30814 Likewise for creating new video buffers.
30816 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30818 * gst/vaapi/gstvaapidecode.c:
30819 * gst/vaapi/gstvaapidownload.c:
30820 * gst/vaapi/gstvaapipluginutil.c:
30821 * gst/vaapi/gstvaapipluginutil.h:
30822 * gst/vaapi/gstvaapipostproc.c:
30823 * gst/vaapi/gstvaapisink.c:
30824 * gst/vaapi/gstvaapiupload.c:
30825 plugins: fix display type selection and propagation.
30826 If vaapisink is in the GStreamer pipeline, then we shall allocate a
30827 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
30828 queries from vaapidecode shall get a valid answer from vaapisink.
30830 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30832 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30833 display: fix destruction of mutex.
30835 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30837 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30838 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30839 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30840 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30841 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30842 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30843 * gst/vaapi/gstvaapipluginutil.c:
30844 * gst/vaapi/gstvaapipluginutil.h:
30845 * gst/vaapi/gstvaapisink.c:
30846 display: add display types.
30847 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
30848 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
30849 type to "any", and add a "display-type" attribute.
30851 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30853 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30854 display: use prefixed display names for cache lookups.
30855 This improves display name comparisons by always allocating a valid display
30856 name. This also helps to disambiguate lookups by name in the global display
30857 cache, should a new backend be implemented.
30859 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30861 * gst/vaapi/gstvaapipluginutil.h:
30862 plugins: declare helper functions as internal.
30864 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30866 * docs/reference/libs/libs-sections.txt:
30867 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30868 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30869 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30870 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30871 * gst/vaapi/Makefile.am:
30872 * gst/vaapi/gstvaapidecode.c:
30873 * gst/vaapi/gstvaapidownload.c:
30874 * gst/vaapi/gstvaapipluginbuffer.c:
30875 * gst/vaapi/gstvaapipluginbuffer.h:
30876 * gst/vaapi/gstvaapipostproc.c:
30877 * gst/vaapi/gstvaapiupload.c:
30878 videobuffer: drop deprecated functions.
30879 Move video buffer creation routines to plugin elements. That exclusively
30880 uses *_typed_new*() variants.
30882 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30884 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30885 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30886 videobuffer: mark video buffer creation routines as deprecated.
30887 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
30888 plugin elements. So deprecate any explicit creation routines that are not the
30889 new *_typed_new*() variants.
30891 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30893 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30894 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30895 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
30896 videobuffer: factor out base and GLX implementations.
30897 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
30898 This avoids duplication of code, and makes it possible to further implement
30899 generic video buffer creation routines that automatically map to base or GLX
30902 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30904 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30905 utils: fix gl_create_context() with parent context set.
30906 If GLX window was created from a foreign Display, then that same Display shall
30907 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
30908 will now use the same Display that the parent, if available.
30909 This fixes cluttersink with the Intel GenX VA driver.
30911 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30913 * gst/vaapi/gstvaapidecode.c:
30914 * gst/vaapi/gstvaapidownload.c:
30915 * gst/vaapi/gstvaapipluginutil.c:
30916 * gst/vaapi/gstvaapipluginutil.h:
30917 * gst/vaapi/gstvaapipostproc.c:
30918 * gst/vaapi/gstvaapisink.c:
30919 * gst/vaapi/gstvaapiupload.c:
30920 pluginutils: improve automatic display type selection.
30922 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30924 * gst/vaapi/gstvaapipluginutil.c:
30925 * gst/vaapi/gstvaapipluginutil.h:
30926 pluginutils: cosmetics (indentation fixes).
30928 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30931 configure: simplify video outputs summary.
30933 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30936 * gst/vaapi/gstvaapipluginutil.c:
30937 * gst/vaapi/gstvaapipluginutil.h:
30938 * gst/vaapi/gstvaapisink.c:
30939 * gst/vaapi/gstvaapisink.h:
30940 configure: drop check for --enable-vaapisink-glx.
30941 vaapisink is now built with support for multiple display types, whenever
30942 they are enabled. The new "display" attribute is used to select a particular
30945 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30948 * gst-libs/gst/vaapi/gstvaapicompat.h:
30949 * gst/vaapi/Makefile.am:
30950 * gst/vaapi/gstvaapidecode.c:
30951 * gst/vaapi/gstvaapidownload.c:
30952 * gst/vaapi/gstvaapipluginutil.c:
30953 * gst/vaapi/gstvaapipostproc.c:
30954 * gst/vaapi/gstvaapiupload.c:
30955 * tests/test-display.c:
30956 configure: drop check for --enable-vaapi-glx.
30957 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
30958 support, or fallback to TFP+FBO if this API is not found. Now, we check for
30959 the VA/GLX API by default if --enable-glx is set. If this API is not found,
30960 we now default to use TFP+FBO.
30961 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
30962 will be removed in the future. If GLX rendering is requested, then the VA/GLX
30963 API shall be used as it covers most usages. e.g. AMD driver can't render to
30966 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30969 tests: allow GLX output, if available and selected.
30971 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30973 * tests/Makefile.am:
30976 * tests/test-decode.c:
30977 * tests/test-subpicture.c:
30978 * tests/test-surfaces.c:
30979 tests: use common display and window creation routines.
30980 Add new --output option to select the renderer. Use --list-outputs to
30981 print a list of supported renderers.
30983 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30985 * tests/Makefile.am:
30986 tests: move encoded bitstreams to libutils.la.
30988 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30990 * tests/Makefile.am:
30991 tests: build convenience library for common utilities.
30993 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30995 * tests/Makefile.am:
30996 * tests/test-display.c:
30997 tests: simplify build with various display options.
30999 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31002 configure: improve checks for X11.
31004 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31006 * tests/Makefile.am:
31007 configure: fix previous commit for GLX deps.
31009 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31012 * gst-libs/gst/vaapi/Makefile.am:
31013 configure: improve checks for GLX.
31015 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31018 * gst-libs/gst/vaapi/gstvaapicompat.h:
31019 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31020 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
31021 * gst-libs/gst/vaapi/gstvaapiutils.h:
31022 Drop support for obsolete VA-API versions < 0.30.4.
31024 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31027 * gst-libs/gst/Makefile.am:
31028 * gst-libs/gst/gstutils_version.h.in:
31029 * gst/vaapi/gstvaapisink.c:
31030 vaapisink: drop checks for new APIs used by default.
31031 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
31032 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
31033 are no longer necessary.
31035 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31038 configure: cosmetics and some minor changes.
31039 - Better grouping of feature checks
31040 - Sort list of config files to generate
31042 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31045 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31046 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31047 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31048 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31049 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
31050 * gst-libs/gst/vaapi/gstvaapiutils.h:
31051 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31052 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31053 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
31055 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31057 * gst-libs/gst/vaapi/Makefile.am:
31058 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
31059 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
31060 Drop obsolete GstVaapiTSB.
31061 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
31063 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31065 * docs/reference/libs/libs-sections.txt:
31066 docs: add missing entries for the JPEG decoder.
31068 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31071 * gst-libs/gst/vaapi/Makefile.am:
31072 * gst/vaapi/gstvaapidecode.c:
31073 * tests/test-decode.c:
31074 * tests/test-subpicture.c:
31075 Drop all references to USE_CODEC_PARSERS.
31077 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31081 * docs/reference/libs/libs-sections.txt:
31082 * docs/reference/libs/libs.core.types:
31083 * gst-libs/gst/vaapi/Makefile.am:
31084 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31085 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
31086 * gst/vaapi/gstvaapidecode.c:
31087 * gst/vaapi/gstvaapidecode.h:
31088 * tests/test-decode.c:
31089 * tests/test-subpicture.c:
31090 Drop FFmpeg-based decoders.
31091 GStreamer codecparsers-based decoders are the only supported decoders now.
31092 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
31094 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
31097 * debian.upstream/control.in:
31098 configure: bump glib required version to 2.28.
31099 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31101 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
31103 * gst/vaapi/gstvaapidecode.h:
31104 * gst/vaapi/gstvaapidownload.h:
31105 * gst/vaapi/gstvaapipostproc.h:
31106 * gst/vaapi/gstvaapisink.h:
31107 * gst/vaapi/gstvaapiupload.h:
31108 plugins: declare _get_type() functions as const.
31109 Declaring a function as const enables better optimization of calls to
31111 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31113 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
31115 * gst/vaapi/gstvaapidecode.c:
31116 * gst/vaapi/gstvaapidownload.c:
31117 * gst/vaapi/gstvaapipostproc.c:
31118 * gst/vaapi/gstvaapisink.c:
31119 * gst/vaapi/gstvaapiupload.c:
31120 plugins: use g_clear_object() wherever applicable.
31121 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31123 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
31125 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31126 * gst-libs/gst/vaapi/gstvaapicontext.h:
31127 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31128 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31129 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
31130 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
31131 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31132 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
31133 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
31134 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31135 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
31136 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31137 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
31138 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
31139 * gst-libs/gst/vaapi/gstvaapiimage.h:
31140 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
31141 * gst-libs/gst/vaapi/gstvaapiobject.h:
31142 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
31143 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
31144 * gst-libs/gst/vaapi/gstvaapisurface.h:
31145 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
31146 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31147 * gst-libs/gst/vaapi/gstvaapitexture.h:
31148 * gst-libs/gst/vaapi/gstvaapivalue.h:
31149 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31150 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
31151 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
31152 * gst-libs/gst/vaapi/gstvaapivideopool.h:
31153 * gst-libs/gst/vaapi/gstvaapivideosink.h:
31154 * gst-libs/gst/vaapi/gstvaapiwindow.h:
31155 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
31156 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
31157 libs: declare _get_type() functions as const.
31158 Declaring a function as const enables better optimization of calls
31160 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31162 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
31164 * gst-libs/gst/vaapi/glibcompat.h:
31165 * gst-libs/gst/vaapi/gstvaapicontext.c:
31166 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31167 * gst-libs/gst/vaapi/gstvaapiobject.c:
31168 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31169 * gst-libs/gst/vaapi/gstvaapisurface.c:
31170 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31171 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31172 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31173 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31174 libs: use g_clear_object() wherever applicable.
31175 This is a preferred thread-safe version. Also add an inline version of
31176 g_clear_object() if compiling with glib < 2.28.
31177 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31179 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
31183 * docs/reference/libs/Makefile.am:
31184 * gst-libs/gst/vaapi/Makefile.am:
31185 * gst-libs/gst/vaapi/gstvaapimarshal.list:
31186 * gst-libs/gst/vaapi/gstvaapiobject.c:
31187 libs: use generic g_cclosure_marshal_VOID__VOID().
31188 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31190 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31193 * gst-libs/gst/vaapi/glibcompat.h:
31194 glibcompat: drop explicit check for g_list_free_full().
31196 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31199 Bump version for development.
31201 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31203 * gst-libs/gst/codecparsers/Makefile.am:
31204 jpeg: fix make dist.
31206 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
31210 * docs/Makefile.am:
31211 configure: fix build without gtk-doc support.
31212 Also do not generate tamplate files as all the documentation is inline.
31213 Drop un-needed code in autogen.sh as well.
31214 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31216 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
31221 configure: put m4 macros and autogenerated files into m4/ directory.
31222 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31224 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
31227 configure: drop deprecated autoconf macros.
31228 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
31229 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31231 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
31234 configure: don't use AC_SUBST for some variables.
31235 PKG_CHECK_MODULES already does this for us.
31236 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31238 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31240 * gst/vaapi/gstvaapidecode.c:
31241 * gst/vaapi/gstvaapidownload.c:
31242 * gst/vaapi/gstvaapipostproc.c:
31243 * gst/vaapi/gstvaapiupload.c:
31244 plugins: add support for GstImplementsInterface.
31246 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
31249 * gst/vaapi/gstvaapidecode.c:
31250 * gst/vaapi/gstvaapidownload.c:
31251 * gst/vaapi/gstvaapipostproc.c:
31252 * gst/vaapi/gstvaapisink.c:
31253 * gst/vaapi/gstvaapiupload.c:
31254 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
31255 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31257 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
31260 * gst/vaapi/gstvaapisink.c:
31261 plugins: do not use deprecated GStreamer -base symbols.
31262 Bump GStreamer plugins -base required version to 0.10.31, needed for
31263 gst_x_overlay_got_window_handle().
31264 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31266 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
31269 * gst/vaapi/gstvaapidecode.c:
31270 * gst/vaapi/gstvaapidownload.c:
31271 * gst/vaapi/gstvaapipostproc.c:
31272 * gst/vaapi/gstvaapisink.c:
31273 * gst/vaapi/gstvaapiupload.c:
31274 plugins: do not use deprecated core GStreamer symbols.
31275 Bump GStreamer required version to 0.10.14, needed for
31276 gst_element_class_set_details_simple().
31277 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31279 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31281 * tests/test-decode.c:
31282 tests: fix build without JPEG decoder support.
31284 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31286 * tests/Makefile.am:
31287 * tests/test-decode.c:
31288 * tests/test-jpeg.c:
31289 * tests/test-jpeg.h:
31290 tests: add test for JPEG decoding.
31292 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31294 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31295 jpeg: update to match latest parser API.
31297 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31299 * gst-libs/gst/codecparsers/gstjpegparser.c:
31300 * gst-libs/gst/codecparsers/gstjpegparser.h:
31301 codecparsers: jpeg: tweak parser API.
31302 ... to allow for more consistent parsing API among various codec parsers.
31303 In particular, drop use of GList.
31305 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31308 jpeg: fix configure check for VA/JPEG decoding API.
31310 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31312 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31313 jpeg: fix build with VA-API < 0.32.0.
31315 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31320 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31323 Bump version for development.
31325 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31331 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31336 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
31338 * gst/vaapi/gstvaapipluginutil.c:
31339 vaapiplugin: fix build when compiling without GLX.
31340 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31342 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31345 configure: disable FFmpeg-based decoders.
31346 FFmpeg decoders are still available through the --enable-ffmpeg option
31347 but are no longer maintained.
31349 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31351 * gst-libs/gst/vaapi/Makefile.am:
31352 Fix build with recent GStreamer stack.
31354 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31357 * gst-libs/gst/vaapi/gstvaapicompat.h:
31358 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31359 jpeg: update to current VA/JPEG decoding API.
31361 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31363 * gst-libs/gst/codecparsers/gstjpegparser.c:
31364 * gst-libs/gst/codecparsers/gstjpegparser.h:
31365 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31366 codecparsers: jpeg: track valid quantization and Huffman tables.
31367 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
31368 to determine whether a table actually changed since the last user
31369 synchronization point. That way, this makes it possible for some
31370 hardware accelerated decoding solution to upload only those tables
31373 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
31375 * gst-libs/gst/codecparsers/gstjpegparser.c:
31376 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
31377 Use GstByteReader *_unchecked() variants as much as possible.
31378 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31380 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
31382 * gst-libs/gst/codecparsers/gstjpegparser.c:
31383 * gst-libs/gst/codecparsers/gstjpegparser.h:
31384 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31385 jpeg: add new GstJpegHuffmanTables structure.
31386 Add new GstJpegHuffmanTables helper structure to hold all possible
31387 AC/DC Huffman tables available to all components.
31388 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31390 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
31392 * gst-libs/gst/codecparsers/gstjpegparser.c:
31393 * gst-libs/gst/codecparsers/gstjpegparser.h:
31394 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31395 jpeg: make gst_jpeg_parse() support multiple scans.
31396 gst_jpeg_parse() now gathers all scans available in the supplied
31397 buffer. A scan comprises of the scan header and any entropy-coded
31398 segments or restart marker following it. The size and offset to
31399 the associated data (ECS + RST segments) are append to a new
31400 GstJpegScanOffsetSize structure.
31401 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31403 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
31405 * gst-libs/gst/codecparsers/gstjpegparser.c:
31406 * gst-libs/gst/codecparsers/gstjpegparser.h:
31407 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31408 jpeg: update to match latest parser API.
31409 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31411 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31413 * gst-libs/gst/codecparsers/gstjpegparser.h:
31414 jpeg: simplify and optimize parser API.
31416 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
31418 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31419 mpeg: fix picture used to determine backward_reference_vop_coding_type.
31420 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
31421 but Gwenole did not apply all the bits.
31422 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31424 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
31426 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31427 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
31428 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31430 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
31432 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31433 mpeg4: handle skipped frames (vop_hdr->coded = 0).
31434 Gracefully skip non VOP coded frames.
31435 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31437 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
31439 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31440 mpeg4: fix timestamp issues on too fast playback.
31441 Improve generation of presentation timestamps to be less sensitive
31442 to input stream errors. In practise, GOP is also a synchronization
31443 point for PTS calculation.
31444 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31446 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31448 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31449 Fix build without JPEG decoder.
31451 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
31453 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31454 mpeg4: fix VOP coding type of backward reference pictures.
31455 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31457 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
31459 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31460 mpeg4: fix handling of temporal reference distances.
31461 TRD and TRB fields are not large enough to hold the difference of PTS
31462 expressed with nanosecond resolution. So, compute them from the original
31464 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31466 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31468 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31469 dpb: mpeg2: cosmetics.
31470 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
31472 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31475 * gst-libs/gst/vaapi/Makefile.am:
31476 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31477 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31478 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31479 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31480 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31481 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31482 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31483 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31484 * gst/vaapi/gstvaapidecode.c:
31485 Add initial JPEG decoder.
31486 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31488 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31491 * gst-libs/gst/Makefile.am:
31492 * gst-libs/gst/codecparsers/Makefile.am:
31493 * gst-libs/gst/codecparsers/gstjpegparser.c:
31494 * gst-libs/gst/codecparsers/gstjpegparser.h:
31495 * gst-libs/gst/vaapi/Makefile.am:
31496 codecparsers: add JPEG parser.
31497 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31499 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
31501 * gst/vaapi/gstvaapidecode.c:
31502 vaapidecode: fix VA display type.
31503 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
31505 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31507 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31509 * gst/vaapi/gstvaapidecode.c:
31510 vaapidecode: fix includes when compiling for a single API.
31512 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31515 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31516 mpeg2: fix calculation of macroblock_offset.
31517 Fix decoding of streams with extra slice() information before the first
31518 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
31520 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31522 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31523 mpeg2: fix interpolation of GOP TSN from new PTS.
31524 New GOP TSN base could be mis-calculated. In particular, this fixes
31525 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
31527 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31530 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31531 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31532 mpeg2: fix decoding of high profile streams.
31533 Allow MPEG-2 High profile streams only if the HW supports that profile
31534 or no High profile specific bits are used, and thus Main profile could
31535 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
31536 set to 11 and no sequence_scalable_extension() was parsed.
31538 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31541 * gst/vaapi/gstvaapidecode.c:
31542 vaapidecode: report unsupported codec profiles.
31543 Try to gracefully abort when the HW does not support the requested
31544 profile. There is no fallback unless profiles are correctly parsed
31545 and matched through caps beforehand.
31547 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
31550 * gst/vaapi/gstvaapisink.c:
31551 vaapisink: don't resize a 'foreign' X-window.
31552 Don't forcibly resize foreign X windows. The user is responsible for
31553 their size and vaapisink shall not change this.
31554 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31556 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
31559 * gst/vaapi/gstvaapisink.c:
31560 * gst/vaapi/gstvaapisink.h:
31561 vaapisink: recalculate render rect only if caps are negotiated.
31562 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
31563 caps got negotiated. Besides, when a foreign window is provided by the
31564 user, so should the render rect.
31565 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31567 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31570 Bump version for development.
31572 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31577 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31579 * docs/reference/libs/libs-docs.xml.in:
31580 * docs/reference/libs/libs-sections.txt:
31581 * docs/reference/plugins/plugins-docs.xml.in:
31582 * docs/reference/plugins/plugins-sections.txt:
31583 * docs/reference/plugins/plugins.types:
31584 * gst-libs/gst/vaapi/gstvaapiimage.c:
31585 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31586 * gst/vaapi/gstvaapipostproc.c:
31587 Fix a few documentation issues.
31589 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31593 Update introduction and changelog.
31595 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31597 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31598 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31599 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31600 mpeg2: allocate dummy picture for first field based I-frame.
31601 In P-pictures, prediction shall be made from the two most recently
31602 decoded reference fields. However, when the first I-frame is a field,
31603 the next field of the current picture could be a P-picture but only a
31604 single field was decoded so far. In this case, create a dummy picture
31605 with POC = -1 that will be used as reference.
31606 Some VA drivers would error out if P-pictures don't have a forward
31607 reference picture. This is true in general but not in this very specific
31610 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31612 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31613 mpeg2: fix simple to main profile fallback.
31614 Allow fallback from simple to main profile when the HW decoder does
31615 not support the former profile and that no sequence_header_extension()
31616 is available to point out this.
31618 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
31620 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31621 mpeg4: improve error checking while decoding packets.
31622 decode_picture() could return an error when an MPEG-4 profile is not
31623 supported for example. In this case, the underlying VA context is not
31624 allocated and no other proper action can be taken. Likewise on exit
31625 from decode_slice().
31626 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31628 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31630 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31631 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31632 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31633 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31634 decoder: use POC to maintain the DPB.
31635 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
31636 numbers. A signed 32-bit integer should be enough for 1 year of continuous
31637 video streaming at 60 Hz.
31638 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
31639 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
31641 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31643 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31644 mpeg2: rework generation of presentation timestamps.
31645 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
31646 i.e. demuxer could not determine the PTS or the generated PTS is lower than
31647 max PTS from past pictures, then try to fix it up based on the duration of
31649 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
31650 reconstruct a current time. Also now handle wrapped TSN correctly.
31652 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31654 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31655 mpeg2: ignore empty user-data packets.
31656 Fix tcela-8.bits conformance test.
31658 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31660 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31661 mpeg2: review and report errors accordingly.
31662 Use GST_ERROR() to report real errors instead of hiding them into
31665 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31667 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31668 mpeg2: fix invalid interlaced frame in progressive sequence.
31669 Some streams, badly constructed, could have signaled an interlaced
31670 frame while the sequence was meant to be progressive. Warn and force
31671 frame to be progressive in this case.
31673 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31675 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31676 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31677 mpeg2: add support for interlaced streams.
31678 Pictures are submitted to the HW for rendering only when both fields
31679 are decoded or current picture is a full frame.
31681 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31683 * gst-libs/gst/vaapi/Makefile.am:
31684 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31685 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31686 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31687 mpeg2: add new decoded picture buffer infrastructure.
31688 Decoded pictures are now maintained into DPB, similarly to H.264.
31689 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
31691 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31693 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31694 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31695 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31696 decoder: add first-field flag to picture.
31697 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
31698 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
31699 as the first field. Any subsequent allocated field will become the second field.
31701 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31703 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31704 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31705 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31706 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31707 decoder: allow pictures to be cloned for field decoding.
31708 Add gst_vaapi_picture_new_field() function that clones a picture, while
31709 preserving the parent picture surface. i.e. the surface proxy reference
31710 count is increased and other fields copied as is. Besides, the picture
31711 is reset into a "non-output" mode.
31713 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31715 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31716 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31717 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31718 decoder: rework picture field flags.
31719 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
31720 could be propagated to the surface proxy when it is pushed for rendering.
31721 Besides, top and bottom fields are now expressed with picture structure flags
31722 from GstVaapiSurfaceRenderFlags.
31724 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31726 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31727 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31728 decoder: add OUTPUT flag to pictures.
31729 Allow pictures to be marked as output gst_vaapi_picture_output().
31731 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31733 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31734 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31735 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31736 decoder: fix semantics of SKIPPED pictures.
31737 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
31738 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
31739 has nothing to do with rendering. This only means that the currently decoded
31740 picture is just a copy of its reference picture.
31742 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31744 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31745 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31746 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31747 * gst/vaapi/gstvaapipostproc.c:
31748 vaapipostproc: get "interlaced" attribute from surface proxy.
31749 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
31750 vaapipostproc so that to handles cases where bitstream is interlaced
31751 but almost only frame pictures are generated. In this case, we should
31752 not be alternating between top/bottom fields.
31754 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31757 * debian.upstream/control.in:
31758 * gst/vaapi/Makefile.am:
31759 * gst/vaapi/gstvaapi.c:
31760 * gst/vaapi/gstvaapipostproc.c:
31761 * gst/vaapi/gstvaapipostproc.h:
31762 vaapipostproc: add new element for video postprocessing.
31763 Add vaapipostproc element for video postprocessing. So far, only basic
31764 bob deinterlacing is implemented. Interlaced mode is automatically
31765 detected based on sink caps ("interlaced" field).
31767 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31769 * docs/reference/libs/libs-sections.txt:
31770 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31771 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31772 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31773 * gst/vaapi/gstvaapisink.c:
31774 videobuffer: add surface render flags.
31775 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
31776 to be set to the video buffer. In particular, this is mostly useful for
31777 basic deinterlacing.
31779 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31781 * gst-libs/gst/vaapi/gstvaapicompat.h:
31782 compat: add compatibility glue with VA-API 0.34+ (WIP).
31784 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31786 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31787 h264: skip all Filler Data NALs.
31789 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
31791 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31792 mpeg4: check for decoder status prior to decoding packet.
31793 Make sure there is a VA surface free prior to decoding the current frame.
31794 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31796 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
31798 * gst/vaapi/gstvaapidecode.c:
31799 * gst/vaapi/gstvaapidecode.h:
31800 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
31801 Rationale: playbin2 links all elements at run-time. Once vaapidecode
31802 is created and a NEWSEGMENT event arrives, downstream element may not
31803 be ready yet. So, delay this event until next element is chained in,
31804 otherwise basesink could output "Received buffer without a new-segment.
31805 Assuming timestamps start from 0".
31806 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31808 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
31810 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31811 mpeg2: fix GOP timestamps when incorrect data is received.
31812 Some streams have incorrect GOP timestamps, or nothing set at all.
31813 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
31814 from demuxer timestamps, which are monotonic.
31815 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31817 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
31819 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31820 mpeg2: don't decode anything before the first sequence_header().
31821 Skip all pictures prior to the first sequence_header(). Besides,
31822 skip all picture_data() if there was no prior picture_header().
31823 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31825 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
31827 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31828 ffmpeg: add support for interlaced streams.
31829 Evaluate interlaced stream properties.
31830 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31832 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31834 * gst/vaapi/gstvaapidecode.c:
31835 vaapidecode: propagate interlaced and TFF properties downstream.
31836 Propagate "interlaced" caps downstream and set "tff" buffer flag
31837 appropriately to output buffers for interlaced pictures.
31838 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31840 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31842 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31843 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31844 decoder: maintain caps for interlaced streams.
31845 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
31847 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31849 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31851 * docs/reference/libs/libs-sections.txt:
31852 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31853 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31854 surfaceproxy: add TFF property.
31855 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
31856 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31858 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31861 AUTHORS: update to match current authors.
31863 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31865 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31866 mpeg2: fix is_first_field calculation.
31867 Reset is_first_field for frame pictures. Factor out locations where
31868 the flag is updated.
31870 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31872 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31873 mpeg2: catch incorrect picture_structure from bitstreams.
31874 Assume "frame" picture structure if the syntax element was zero or if
31875 progressive_frame is set.
31877 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31879 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31880 mpeg2: fix slice_vertical_position calculation (again).
31881 VA-API expects slice_vertical_position as the initial position from the
31882 bitstream. i.e. the direct slice() information. VA drivers will be fixed
31885 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31887 * gst/vaapi/gstvaapidecode.c:
31888 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
31889 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
31890 For gst_element_class_get_pad_template(), no unreferencing is necessary
31891 according to the GStreamer documentation.
31893 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31896 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31897 h264: fix slice_data_bit_offset calculation.
31898 Unlike what VA-API documentation defines, the slice_data_bit_offset
31899 represents the offset to the first macroblock in the slice data, minus
31900 any emulation prevention bytes in the slice_header().
31901 This fix copes with binary-only VA drivers that won't be fixed any
31902 time soon. Besides, this aligns with the current FFmpeg behaviour
31903 that was based on those proprietary drivers implementing the API
31906 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
31908 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31909 h264: skip all Access Unit (AU) NALs.
31910 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31912 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
31914 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31915 h264: fix modification process of reference picture lists.
31916 Construction of RefPicList0/1 could be off by one element.
31917 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31919 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31921 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31922 mpeg2: fix size calculation from sequence_extension().
31923 Original values from sequence_header() are 12-bit and the remaining
31924 2 most significant bits are coming from sequence_extension().
31925 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31927 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31929 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31930 mpeg2: fix slice_vertical_position calculation.
31931 Make sure to adjust slice_vertical_position if picture structure
31932 is a top or bottom field.
31934 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31936 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31937 decoder: add picture structure flags.
31939 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31941 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31942 mpeg2: fix decoding at end-of-sequence.
31944 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31946 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31947 mpeg2: fix slice_horizontal_position calculation.
31949 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31951 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31952 mpeg2: drop useless mb_y and mb_height members.
31954 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31956 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31957 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
31958 6.3.15 says that "some slices may have the same slice_vertical_position,
31959 since slices may start and finish anywhere". So, we can't submit the current
31960 picture to the HW right away since subsequent slices would be missing.
31962 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31964 * gst-libs/gst/vaapi/gstvaapiimage.c:
31965 image: fix source stride in picture copy.
31967 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31969 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31970 decoder: fix double buffer free with some VA drivers.
31971 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
31972 push the VA buffer object into a list of free buffers to be re-used. However,
31973 reference pictures (and data) that was kept would explicitly release the VA
31974 buffer object later on, thus possibly destroying a valid (re-used) object.
31975 Besides, some other VA drivers don't support correctly the vaRenderPicture()
31976 semantics for VA buffers disposal and would leak memory if there is no explicit
31977 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
31978 right after vaRenderPicture(). All VA drivers need to be aligned.
31980 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31982 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31983 h264: complete any current picture decoder before SPS / PPS change.
31984 This ensures the VA context is clear when the encoded resolution
31985 changes. i.e. make sure older picture is decoded with the older
31986 VA context before it changes.
31988 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31990 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31991 h264: create VA context earlier when SPS is parsed.
31993 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31995 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31996 h264: don't allocate too big data structures on stack.
31998 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32000 * gst-libs/gst/vaapi/glibcompat.h:
32001 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32002 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32003 glib: map deprecated API to glib >= 2.32 equivalents.
32004 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
32005 GRecMutex, which no longer require any prior call to g_thread_init().
32007 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32009 * gst-libs/gst/vaapi/gstvaapiutils.h:
32010 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32011 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32012 glib: fix includes.
32014 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32016 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32017 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32018 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32019 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32020 cosmetics: fix warnings (drop unused variables).
32022 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32024 * gst/vaapi/gstvaapidecode.c:
32025 vaapidecode: fix another pad template ref leak.
32027 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32029 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32030 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32031 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32032 mpeg2: fix crash when there is no free surface to decode into.
32034 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
32036 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32037 display: skip profiles which have no entrypoints.
32038 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32040 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32042 * gst/vaapi/gstvaapiupload.c:
32043 vaapiupload: use g_object_unref() for GstVaapiImage.
32045 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32047 * gst/vaapi/gstvaapidecode.c:
32048 * gst/vaapi/gstvaapidownload.c:
32049 * gst/vaapi/gstvaapisink.c:
32050 * gst/vaapi/gstvaapiupload.c:
32051 plugins: fix pad template ref leaks.
32053 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32056 Bump version for development.
32058 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32064 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32068 Mention codecparsers-based decoders, FFmpeg is now optional. Update
32069 list of support HW.
32071 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32076 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32078 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32079 decoder: allocate proxy surface earlier.
32080 This simplifies gst_vaapi_picture_output() to only update the presentation
32081 timestamp and submit the proxy to the decoder for output.
32083 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32085 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32086 decoder: fix memory leak of VA objects on exit.
32087 On sequence end, if the last decoded picture is not output for rendering,
32088 then the proxy surface is not created. In this case, the original surface
32089 must be released explicitly to the context.
32091 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32093 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32094 mpeg2: use GstAdapter to track input sequence.
32095 This fixes possible memory leaks and improves performance by removing
32098 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32101 * gst-libs/gst/vaapi/Makefile.am:
32102 * gst-libs/gst/vaapi/glibcompat.h:
32103 * gst-libs/gst/vaapi/sysdeps.h:
32104 Add glib compatibility glue for older versions.
32106 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32108 * gst-libs/gst/vaapi/Makefile.am:
32109 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32110 * gst-libs/gst/vaapi/gstvaapicontext.c:
32111 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32112 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32113 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32114 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32115 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32116 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32117 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32118 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32119 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32120 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32121 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32122 * gst-libs/gst/vaapi/gstvaapiimage.c:
32123 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32124 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32125 * gst-libs/gst/vaapi/gstvaapiobject.c:
32126 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32127 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32128 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32129 * gst-libs/gst/vaapi/gstvaapisurface.c:
32130 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32131 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32132 * gst-libs/gst/vaapi/gstvaapitexture.c:
32133 * gst-libs/gst/vaapi/gstvaapiutils.c:
32134 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32135 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32136 * gst-libs/gst/vaapi/gstvaapivalue.c:
32137 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32138 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
32139 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32140 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32141 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32142 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32143 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32144 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32145 * gst-libs/gst/vaapi/sysdeps.h:
32146 Add header for system-dependent definitions.
32148 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32150 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32151 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32152 * gst-libs/gst/vaapi/gstvaapiutils.c:
32153 * gst-libs/gst/vaapi/gstvaapiutils.h:
32154 decoder: optimize slice data buffers initialization.
32155 VA drivers may have a faster means to transfer user buffers to GPU
32156 buffers than using memcpy(). In particular, on Intel Gen graphics, we
32157 can use pwrite(). This provides for faster upload of bitstream and can
32158 help higher bitrates.
32159 vaapi_create_buffer() helper function was also updated to allow for
32160 un-mapped buffers and pre-initialized data for buffers.
32162 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32164 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32165 h264: simplify RefPicList reconstruction.
32167 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32169 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32170 h264: flush DPB when the end of the sequence is reached.
32172 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32174 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32175 h264: handle Decoded Picture Buffer (DPB).
32177 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32179 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32180 h264: fix pred_weight_table() reconstruction.
32181 Only the explicit pred_weight_table(), possibly with the inferred default
32182 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
32183 is not set for P/SP slices.
32185 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32187 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32188 h264: execute reference picture marking process (MMCO).
32190 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32192 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32193 h264: fix presentation timestamps.
32195 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32197 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32198 h264: execute reference picture marking process (sliding window).
32200 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32202 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32203 h264: handle avcC format for decoding buffers.
32205 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32207 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32208 h264: handle codec-data.
32209 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32211 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32213 * gst-libs/gst/vaapi/Makefile.am:
32214 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32215 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
32216 * gst/vaapi/gstvaapidecode.c:
32217 * tests/test-decode.c:
32218 Add initial H.264 decoder.
32220 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32222 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32223 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
32224 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
32225 Keep a valid reference to the proxy in GstVaapiPicture so that frames
32226 marked as "used for reference" could be kept during the lifetime of the
32227 picture. i.e. don't release them too soon as they could be re-used right
32230 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32232 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32233 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32234 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32235 decoder: properly reference count pictures.
32236 This fixes cases where a GstVaapiPicture would be destroyed whereas
32237 there is still a valid instance of it in either prev, current or
32240 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32242 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32243 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32244 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32245 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32246 decoder: simplify output of decoded frames.
32247 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
32248 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
32249 is already set correctly and reference count increased, if necessary.
32251 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32253 * gst-libs/gst/vaapi/Makefile.am:
32254 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32255 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
32256 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32257 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32258 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32259 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32260 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
32261 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32262 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32263 decoder: rework the internal VA objects API.
32264 The new API simplifies a lot reference counting and makes it more
32265 flexible for future additions/changes. The GstVaapiCodecInfo is
32266 also gone. Rather, new helper macros are provided to allocate
32267 picture, slice and quantization matrix parameter buffers.
32269 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32271 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32272 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32273 decoder: allow slices to be attached to pictures later.
32275 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32277 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32278 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32279 decoder: add ref_count to GstVaapiPicture.
32281 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32283 * gst/vaapi/gstvaapisink.c:
32284 vaapisink: cap window size to the maximum display size.
32286 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
32288 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32289 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32290 profile: match video/x-h263 as H.263 Baseline profile.
32291 HACK: qtdemux does not report profiles for H.263. So, assume plain
32292 "video/x-h263" is H.263 Baseline profile.
32293 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32295 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32297 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32298 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32299 display: report H.263 Baseline profile.
32300 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
32301 profile (VAProfileMPEG4Simple) is supported.
32303 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32305 * gst-libs/gst/vaapi/Makefile.am:
32306 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32307 Add template for workarounds.
32309 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32311 * tests/test-decode.c:
32312 tests: error out if FFmpeg|codecparsers are not supported.
32314 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32316 * docs/reference/libs/libs-sections.txt:
32317 * gst-libs/gst/vaapi/gstvaapisurface.h:
32318 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32319 surface: don't expose gst_vaapi_surface_get_parent_context().
32320 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
32321 It's just an internal helper function. However, it's still possible to get
32322 the parent context through the "parent-context" property.
32324 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32326 * tests/Makefile.am:
32327 * tests/test-subpicture.c:
32328 tests: fix build without FFmpeg.
32330 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32333 Bump version for development.
32335 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32341 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32344 * debian.upstream/copyright:
32345 * gst-libs/gst/vaapi/gstvaapicontext.c:
32346 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32347 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32348 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32349 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32350 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32351 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32352 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32353 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32354 * gst-libs/gst/vaapi/gstvaapiimage.c:
32355 * gst-libs/gst/vaapi/gstvaapiimage.h:
32356 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32357 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32358 * gst-libs/gst/vaapi/gstvaapiutils.c:
32359 * gst-libs/gst/vaapi/gstvaapiutils.h:
32360 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32361 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32362 * gst/vaapi/gstvaapi.c:
32363 * gst/vaapi/gstvaapidecode.c:
32364 * gst/vaapi/gstvaapidownload.c:
32365 * gst/vaapi/gstvaapidownload.h:
32366 * gst/vaapi/gstvaapipluginutil.c:
32367 * gst/vaapi/gstvaapipluginutil.h:
32368 * gst/vaapi/gstvaapisink.c:
32369 * gst/vaapi/gstvaapiupload.c:
32370 * gst/vaapi/gstvaapiupload.h:
32371 * tests/test-decode.c:
32372 legal: fix year for some copyright notices.
32374 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32376 * gst-libs/gst/vaapi/gstvaapicontext.c:
32377 * gst-libs/gst/vaapi/gstvaapicontext.h:
32378 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32379 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32380 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32381 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32382 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32383 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32384 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32385 * gst-libs/gst/vaapi/gstvaapiimage.c:
32386 * gst-libs/gst/vaapi/gstvaapiimage.h:
32387 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32388 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32389 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32390 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32391 * gst-libs/gst/vaapi/gstvaapisurface.c:
32392 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32393 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32394 * gst-libs/gst/vaapi/gstvaapiutils.c:
32395 * gst-libs/gst/vaapi/gstvaapiutils.h:
32396 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32397 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32398 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32399 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32400 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32401 * gst/vaapi/gstvaapidownload.h:
32402 * gst/vaapi/gstvaapisink.h:
32403 * gst/vaapi/gstvaapiupload.h:
32404 * tests/test-decode.c:
32405 legal: add Intel copyright on modified files.
32407 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32409 * gst-libs/gst/vaapi/gstvaapi_priv.h:
32410 * gst-libs/gst/vaapi/gstvaapicompat.h:
32411 * gst-libs/gst/vaapi/gstvaapicontext.c:
32412 * gst-libs/gst/vaapi/gstvaapicontext.h:
32413 * gst-libs/gst/vaapi/gstvaapidebug.h:
32414 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32415 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32416 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32417 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32418 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32419 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32420 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32421 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32422 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
32423 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
32424 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32425 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32426 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
32427 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
32428 * gst-libs/gst/vaapi/gstvaapiimage.c:
32429 * gst-libs/gst/vaapi/gstvaapiimage.h:
32430 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32431 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32432 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32433 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
32434 * gst-libs/gst/vaapi/gstvaapiobject.c:
32435 * gst-libs/gst/vaapi/gstvaapiobject.h:
32436 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32437 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32438 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
32439 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32440 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32441 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32442 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32443 * gst-libs/gst/vaapi/gstvaapisurface.c:
32444 * gst-libs/gst/vaapi/gstvaapisurface.h:
32445 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32446 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
32447 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32448 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32449 * gst-libs/gst/vaapi/gstvaapitexture.c:
32450 * gst-libs/gst/vaapi/gstvaapitexture.h:
32451 * gst-libs/gst/vaapi/gstvaapitypes.h:
32452 * gst-libs/gst/vaapi/gstvaapiutils.c:
32453 * gst-libs/gst/vaapi/gstvaapiutils.h:
32454 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32455 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32456 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32457 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32458 * gst-libs/gst/vaapi/gstvaapivalue.c:
32459 * gst-libs/gst/vaapi/gstvaapivalue.h:
32460 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32461 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32462 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32463 * gst-libs/gst/vaapi/gstvaapivideopool.h:
32464 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32465 * gst-libs/gst/vaapi/gstvaapivideosink.h:
32466 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32467 * gst-libs/gst/vaapi/gstvaapiwindow.h:
32468 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32469 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32470 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32471 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
32472 * gst/vaapi/gstvaapidecode.c:
32473 * gst/vaapi/gstvaapidecode.h:
32474 * gst/vaapi/gstvaapidownload.c:
32475 * gst/vaapi/gstvaapidownload.h:
32476 * gst/vaapi/gstvaapisink.c:
32477 * gst/vaapi/gstvaapisink.h:
32478 * gst/vaapi/gstvaapiupload.c:
32479 * gst/vaapi/gstvaapiupload.h:
32482 * tests/test-decode.c:
32483 * tests/test-decode.h:
32484 * tests/test-display.c:
32485 * tests/test-h264.c:
32486 * tests/test-h264.h:
32487 * tests/test-mpeg2.c:
32488 * tests/test-mpeg2.h:
32489 * tests/test-surfaces.c:
32490 * tests/test-textures.c:
32491 * tests/test-vc1.c:
32492 * tests/test-vc1.h:
32493 * tests/test-windows.c:
32494 legal: fix copyright notices to include "Copyright" term.
32496 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
32498 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32499 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32500 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32501 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32503 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
32505 * gst-libs/gst/vaapi/Makefile.am:
32506 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32507 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32508 * gst/vaapi/gstvaapidecode.c:
32509 Add initial MPEG-4 decoder.
32510 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32512 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32514 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32515 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32516 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32517 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32519 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32521 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32522 vc1: fix codec-data decoding for WMV3 format.
32524 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32526 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32527 vc1: fix presentation timestamps.
32529 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32531 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32532 vc1: fix MV mode packing.
32534 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32536 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32537 vc1: handle codec-data.
32539 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32541 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32542 vc1: handle encapsulated bitstreams.
32544 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32546 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32547 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32548 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32549 vc1: fix bitplanes decoding.
32551 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32553 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32554 vc1: fix BFRACTION reconstruction.
32556 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32558 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32559 vc1: fix framerate calculation.
32561 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32563 * gst-libs/gst/vaapi/Makefile.am:
32564 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32565 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32566 * gst/vaapi/gstvaapidecode.c:
32567 * tests/test-decode.c:
32568 Add initial VC-1 decoder.
32570 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
32572 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32573 mpeg2: fix first field detection.
32574 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32576 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32578 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32579 mpeg2: fix quantisation matrix construction.
32581 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32583 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32584 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32585 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
32586 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32588 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32590 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32591 mpeg2: fix packets spanning over two buffers.
32593 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32595 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32596 mpeg2: ignore system start codes (PES headers).
32598 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32600 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32601 mpeg2: handle closed_gop.
32603 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32605 * gst-libs/gst/vaapi/Makefile.am:
32606 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32607 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32608 * gst/vaapi/gstvaapidecode.c:
32609 * tests/test-decode.c:
32610 Add initial MPEG-2 decoder.
32612 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32615 * gst-libs/gst/vaapi/Makefile.am:
32616 * gst/vaapi/gstvaapidecode.c:
32617 * tests/test-decode.c:
32618 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
32620 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32622 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32623 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32624 Add VA decoder helpers.
32626 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32628 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32629 decoder: add new error codes.
32630 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
32631 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
32633 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32635 * gst-libs/gst/vaapi/Makefile.am:
32636 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
32637 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
32638 Add timestamp buffer store helper utils.
32640 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32642 * gst-libs/gst/vaapi/gstvaapiutils.c:
32643 * gst-libs/gst/vaapi/gstvaapiutils.h:
32644 Add VA buffer helpers.
32646 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32648 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32649 utils: slight improvements to gl_bind_texture().
32651 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32653 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32654 utils: pretty-print output of gl_get_error_string().
32656 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32658 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32659 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
32661 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32663 * gst-libs/gst/vaapi/gstvaapiutils.c:
32664 utils: simplify string of VAProfile/VAEntrypoint.
32666 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32668 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32669 * gst-libs/gst/vaapi/gstvaapiutils.c:
32670 * gst-libs/gst/vaapi/gstvaapiutils.h:
32671 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
32673 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32678 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32680 * tests/test-decode.c:
32681 tests: check for shared VA displays (display cache).
32683 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32685 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32686 display: always free VA display cache if it is empty.
32688 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32690 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32691 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32692 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32693 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32694 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32695 display: use VA display cache for X11 and GLX winsys.
32697 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32699 * gst-libs/gst/vaapi/Makefile.am:
32700 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32701 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32702 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
32703 display: implement a VA display cache.
32705 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32707 * gst/vaapi/gstvaapipluginutil.c:
32708 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
32709 This ensures the display name provided to gst_vaapi_display_*_new()
32710 maps to the system defaults, instead of forcing "" that could be different
32711 from the current DISPLAY name.
32713 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32715 * gst/vaapi/gstvaapiupload.c:
32716 vaapiupload: only set caps on newly created buffers.
32717 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32719 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32721 * gst/vaapi/gstvaapisink.c:
32722 vaapisink: ensure VA display in GstBaseSink::start() hook.
32723 This ensures a VA display is ready by the time upstream elements request
32726 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32728 * gst/vaapi/gstvaapisink.c:
32729 vaapisink: don't leak GL texture.
32730 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32732 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32734 * gst/vaapi/gstvaapisink.c:
32735 vaapisink: fix calculation of render region.
32737 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32739 * gst/vaapi/gstvaapisink.c:
32740 vaapisink: automatically fit video to window.
32742 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32744 * gst/vaapi/gstvaapisink.c:
32745 vaapisink: implement GstXOverlay::set_render_rectangle().
32747 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32749 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32750 window: always check geometry when the window is mapped.
32752 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
32754 * gst-libs/gst/vaapi/gstvaapiutils.c:
32755 Add missing profiles from VA-API 0.32.0.
32756 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32758 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32761 .gitignore: add test-subpicture.
32763 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32766 Bump version for development.
32768 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32774 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32776 * tests/Makefile.am:
32777 tests: fix make dist (ship with test-subpicture-data.h).
32779 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32784 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32786 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32787 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32788 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32789 decoder: fix possible leak of VA surfaces.
32790 Under some circumstances, we could have leaked a surface, thus not
32791 releasing it to the pool of available surfaces in the VA context.
32792 The strategy is now to use a proxy earlier and automatically ref/unref
32793 whenever necessary. In particular, during the lifetime needed for FFmpeg.
32795 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32797 * docs/reference/libs/libs-sections.txt:
32798 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32799 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32800 surfaceproxy: add helper to retrieve the VA surface ID.
32802 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32804 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32805 surfaceproxy: simplify destruction.
32806 Also make sure to always make sure to release the surface back to the
32807 pool of surfaces in the associated VA context, if any.
32809 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32811 * gst/vaapi/gstvaapidecode.c:
32812 vaapidecode: fix deinitialization order.
32814 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32816 * gst-libs/gst/vaapi/gstvaapicontext.c:
32817 context: avoid self reference loops with surfaces.
32819 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32821 * debian.upstream/control.in:
32822 debian: update control.in description for new plugins.
32824 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32826 * gst/vaapi/gstvaapiupload.c:
32827 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
32828 This also fixes extra structures, beyond the one at index 0, to hold
32829 the right additional values.
32831 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32833 * gst/vaapi/gstvaapiupload.c:
32834 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
32836 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32839 * docs/reference/plugins/plugins-docs.xml.in:
32840 * docs/reference/plugins/plugins-sections.txt:
32841 * docs/reference/plugins/plugins.types:
32842 * gst/vaapi/Makefile.am:
32843 * gst/vaapi/gstvaapi.c:
32844 * gst/vaapi/gstvaapidownload.c:
32845 * gst/vaapi/gstvaapidownload.h:
32846 vaapidownload: add new plugin to download pixels from VA surfaces.
32848 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32850 * gst/vaapi/gstvaapipluginutil.c:
32851 * gst/vaapi/gstvaapipluginutil.h:
32852 vaapipluingutils: add helper to append surface caps to YUV caps.
32854 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32856 * docs/reference/libs/libs-sections.txt:
32857 * gst-libs/gst/vaapi/gstvaapiimage.c:
32858 * gst-libs/gst/vaapi/gstvaapiimage.h:
32859 image: add helpers to extract pixels to user buffers.
32861 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32863 * gst-libs/gst/vaapi/gstvaapiimage.c:
32864 image: simplify initialization of raw images from video buffers.
32866 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32868 * gst-libs/gst/vaapi/gstvaapiimage.c:
32869 image: fix update from NV12 buffers.
32871 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32873 * gst/vaapi/gstvaapiupload.c:
32874 vaapiupload: fix memory leak in _init() function.
32876 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32880 * debian.upstream/control.in:
32881 * docs/reference/plugins/plugins-docs.xml.in:
32882 * docs/reference/plugins/plugins-sections.txt:
32883 * docs/reference/plugins/plugins.types:
32884 * gst/vaapi/Makefile.am:
32885 * gst/vaapi/gstvaapi.c:
32886 * gst/vaapi/gstvaapiupload.c:
32887 * gst/vaapi/gstvaapiupload.h:
32888 Rename vaapiconvert element to vaapiupload.
32890 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32893 Bump version for development.
32895 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32901 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32906 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32908 * gst-libs/gst/vaapi/gstvaapisurface.c:
32909 * gst-libs/gst/vaapi/gstvaapisurface.h:
32910 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32911 * gst/vaapi/gstvaapisink.c:
32912 surface: apply composition to the parent context, if requested.
32914 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32916 * docs/reference/libs/libs-sections.txt:
32917 * gst-libs/gst/vaapi/gstvaapicontext.c:
32918 * gst-libs/gst/vaapi/gstvaapicontext.h:
32919 context: make it possible to apply composition globally.
32921 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32923 * gst-libs/gst/vaapi/gstvaapisurface.c:
32924 surface: fix associate subpicture to not report deassociation errors.
32926 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32928 * gst-libs/gst/vaapi/gstvaapisurface.c:
32929 surface: fix typo in debug message.
32931 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32933 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32934 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32935 * gst-libs/gst/vaapi/gstvaapisurface.c:
32936 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
32938 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32940 * docs/reference/libs/libs-sections.txt:
32941 * gst-libs/gst/vaapi/Makefile.am:
32942 * gst-libs/gst/vaapi/gstvaapicontext.c:
32943 * gst-libs/gst/vaapi/gstvaapisurface.c:
32944 * gst-libs/gst/vaapi/gstvaapisurface.h:
32945 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32946 surface: record parent context.
32948 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32950 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32951 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32952 * gst/vaapi/gstvaapidecode.c:
32953 * gst/vaapi/gstvaapisink.c:
32956 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32958 * gst-libs/gst/vaapi/gstvaapisurface.c:
32959 * gst-libs/gst/vaapi/gstvaapisurface.h:
32960 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32961 * gst/vaapi/gstvaapisink.c:
32962 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
32964 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32967 configure: check for GstVideoOverlayComposition.
32969 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32974 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32976 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32977 converter: add support for GstVideoOverlayComposition planes.
32978 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32980 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32982 * gst/vaapi/gstvaapisink.c:
32983 vaapisink: handle GstVideoOverlayComposition planes.
32984 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32986 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32988 * gst-libs/gst/vaapi/gstvaapisurface.c:
32989 surface: use unscaled overlay rectangle for blending.
32991 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32993 * gst-libs/gst/vaapi/gstvaapisurface.c:
32994 surface: fix VA image leak when an error occurred.
32996 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32998 * gst-libs/gst/vaapi/gstvaapisurface.c:
32999 * gst-libs/gst/vaapi/gstvaapisurface.h:
33000 surface: add helper to handle GstVideoOverlayComposition.
33001 This helper resets the subpictures to reflect the current composition
33002 layers provided with the buffers.
33003 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33005 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33007 * docs/reference/libs/libs-sections.txt:
33008 * gst-libs/gst/vaapi/Makefile.am:
33009 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33010 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33011 * gst/vaapi/gstvaapiconvert.c:
33012 image: add gst_vaapi_image_format_from_video() helper.
33014 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33016 * gst-libs/gst/vaapi/gstvaapiimage.c:
33017 * gst-libs/gst/vaapi/gstvaapiimage.h:
33018 image: allow updates from GstVaapiImageRaw.
33020 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33022 * gst-libs/gst/vaapi/gstvaapiimage.c:
33023 * gst-libs/gst/vaapi/gstvaapiimage.h:
33024 * gst/vaapi/gstvaapiconvert.c:
33025 * tests/test-subpicture.c:
33026 image: allow partial updates.
33028 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33030 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33031 subpicture: fix doc for gst_vaapi_subpicture_set_image().
33033 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33035 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33036 display: fix has_image_format() to check against subpicture formats.
33038 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33040 * tests/test-subpicture.c:
33041 tests: fix subpicture test.
33043 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
33045 * tests/Makefile.am:
33046 * tests/test-subpicture-data.c:
33047 * tests/test-subpicture-data.h:
33048 * tests/test-subpicture.c:
33049 tests: add test for subpictures.
33050 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33052 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33054 * gst/vaapi/gstvaapiconvert.c:
33055 * gst/vaapi/gstvaapidecode.c:
33056 Add missing video context queries.
33057 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33059 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33062 Bump version for development.
33064 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33066 * gst-libs/gst/video/Makefile.am:
33067 * gst-libs/gst/video/gstbasevideocodec.c:
33068 * gst-libs/gst/video/gstbasevideocodec.h:
33069 * gst-libs/gst/video/gstbasevideodecoder.c:
33070 * gst-libs/gst/video/gstbasevideodecoder.h:
33071 * gst-libs/gst/video/gstbasevideoutils.c:
33072 * gst-libs/gst/video/gstbasevideoutils.h:
33073 Drop unused copy of GstBaseVideoDecoder.
33075 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33081 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33084 README: update dependencies.
33086 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33091 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33094 configure: check for GstBaseSink 'query' vfunc.
33096 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33098 * gst/vaapi/Makefile.am:
33099 vaapiplugin: include local build dir to CFLAGS for generated files.
33101 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33104 autogen: don't configure if NO_CONFIGURE variable is set.
33106 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
33108 * gst/vaapi/gstvaapidecode.c:
33109 * gst/vaapi/gstvaapidecode.h:
33110 vaapidecode: return sink caps template if decoder is in NULL state.
33111 Otherwise, the decoder would always create its own X display instead
33112 of probing it from the downstream element, which is not reliable.
33113 e.g. DISPLAY is not :0 or when running on Wayland.
33114 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33116 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33118 * gst/vaapi/gstvaapiconvert.c:
33119 * gst/vaapi/gstvaapidecode.c:
33120 vaapiplugin: properly set surface type to "vaapi" in caps.
33122 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33124 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33125 decoder: drop unused headers.
33127 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33129 * gst/vaapi/gstvaapiconvert.c:
33130 * gst/vaapi/gstvaapidecode.c:
33131 vaapiplugin: properly set opengl support in caps.
33132 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33134 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33136 * gst/vaapi/gstvaapiconvert.c:
33137 * gst/vaapi/gstvaapidecode.c:
33138 vaapiplugin: allocate GLX buffers when supported.
33139 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33141 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33143 * gst-libs/gst/vaapi/Makefile.am:
33144 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33145 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
33146 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
33147 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
33148 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
33149 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
33150 videobuffer: add GLX buffer support.
33151 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33153 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33155 * gst-libs/gst/vaapi/Makefile.am:
33156 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33157 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33158 Port to GstSurfaceBuffer interface.
33159 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33161 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33163 * gst/vaapi/gstvaapidecode.c:
33164 * gst/vaapi/gstvaapisink.c:
33165 Don't use downstream buffer allocation.
33166 With the new video/x-surface abstraction, we can't rely on having a VA
33167 specific sink downstream. Also, there was no particular reason to do that.
33168 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33170 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33172 * gst-libs/gst/vaapi/Makefile.am:
33173 * gst-libs/gst/vaapi/gstvaapicontext.c:
33174 * gst-libs/gst/vaapi/gstvaapisurface.h:
33175 * gst/vaapi/gstvaapiconvert.c:
33176 * gst/vaapi/gstvaapisink.c:
33177 * tests/Makefile.am:
33178 * tests/test-surfaces.c:
33179 Change caps to use new video/x-surface generic type.
33180 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33182 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33185 * gst-libs/gst/vaapi/Makefile.am:
33186 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33187 * gst/vaapi/Makefile.am:
33188 * gst/vaapi/gstvaapiconvert.c:
33189 * gst/vaapi/gstvaapidecode.c:
33190 * gst/vaapi/gstvaapipluginutil.c:
33191 * gst/vaapi/gstvaapipluginutil.h:
33192 * gst/vaapi/gstvaapisink.c:
33193 * gst/vaapi/gstvaapisink.h:
33194 Port to GstVideoContext interface.
33195 This new interface allows for upstream and downstream display sharing
33196 that works in both static and dynamic pipelines.
33197 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33199 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33201 * gst/vaapi/gstvaapisink.c:
33202 vaapisink: use GST_ERROR to print error messages.
33204 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33206 * gst/vaapi/Makefile.am:
33207 vaapiplugin: link against VA/GLX when enabled.
33209 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33211 * gst/vaapi/gstvaapiconvert.c:
33212 * gst/vaapi/gstvaapisink.c:
33213 Add Intel copyright information.
33215 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33217 * gst/vaapi/gstvaapisink.c:
33218 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
33220 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33224 * gst-libs/gst/Makefile.am:
33225 * gst-libs/gst/gstutils_version.h.in:
33226 Add new GStreamer version check utilities.
33228 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
33230 * gst/vaapi/gstvaapisink.c:
33231 vaapisink: replace the deprecated xoverlay API with the new one.
33232 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33234 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33237 configure: allow for pre-releases.
33239 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33241 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33242 display: destroy display on creation failure.
33243 This allows element to detect that the display creation has actually
33245 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33247 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33249 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33250 display: don't crash when config is empty.
33251 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33253 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33256 * debian.upstream/copyright:
33257 doc: mention Collabora copyrights.
33259 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33262 .gitignore: refine for generated docs.
33264 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33267 * docs/reference/plugins/Makefile.am:
33269 * gst/vaapi/Makefile.am:
33270 * gst/vaapi/gstvaapi.c:
33271 * gst/vaapi/gstvaapiconvert.c:
33272 * gst/vaapi/gstvaapiconvert.h:
33273 * gst/vaapi/gstvaapidecode.c:
33274 * gst/vaapi/gstvaapidecode.h:
33275 * gst/vaapi/gstvaapisink.c:
33276 * gst/vaapi/gstvaapisink.h:
33277 * gst/vaapiconvert/Makefile.am:
33278 * gst/vaapidecode/Makefile.am:
33279 Group all plugins into the same bundle
33280 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33282 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33285 Bump version for development.
33287 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33290 * debian.upstream/control.in:
33291 debian: build against upstream libva packages.
33293 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33295 * docs/reference/libs/Makefile.am:
33296 * docs/reference/plugins/Makefile.am:
33297 * tests/Makefile.am:
33298 Fix build on Ubuntu 11.10 (Oneric).
33300 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33305 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33309 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33311 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33313 * gst/vaapiconvert/gstvaapiconvert.c:
33314 * gst/vaapidecode/gstvaapidecode.c:
33315 * gst/vaapisink/gstvaapisink.c:
33316 Update license in plugin definition
33317 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33319 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33322 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33323 decoder: fix use of invalid data at the end-of-stream.
33325 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33327 * gst/vaapiconvert/gstvaapiconvert.c:
33328 vaapiconvert: fix some warnings.
33330 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33333 * debian.upstream/changelog.in:
33334 * debian.upstream/control.in:
33335 * debian.upstream/copyright:
33336 * gst/vaapiconvert/gstvaapiconvert.c:
33337 * gst/vaapidecode/gstvaapidecode.c:
33338 * gst/vaapisink/gstvaapisink.c:
33339 Update with my current e-mail address.
33341 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33345 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
33347 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
33351 * tests/test-decode.c:
33352 * tests/test-decode.h:
33353 * tests/test-display.c:
33354 * tests/test-h264.c:
33355 * tests/test-h264.h:
33356 * tests/test-mpeg2.c:
33357 * tests/test-mpeg2.h:
33358 * tests/test-surfaces.c:
33359 * tests/test-textures.c:
33360 * tests/test-vc1.c:
33361 * tests/test-vc1.h:
33362 * tests/test-windows.c:
33363 switch tests licence to LGPL v2.1+
33365 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
33369 * debian.upstream/copyright:
33370 * gst/vaapiconvert/gstvaapiconvert.c:
33371 * gst/vaapiconvert/gstvaapiconvert.h:
33372 * gst/vaapidecode/gstvaapidecode.c:
33373 * gst/vaapidecode/gstvaapidecode.h:
33374 * gst/vaapisink/gstvaapisink.c:
33375 * gst/vaapisink/gstvaapisink.h:
33376 move plugins to LGPL v2.1+
33378 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33380 * gst/vaapidecode/gstvaapidecode.c:
33381 vaapidecode: fix sink caps to not expose size information.
33382 This fixes this particular issue:
33383 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
33384 a real subset of its template caps
33386 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33389 * gst/vaapidecode/gstvaapidecode.c:
33390 vaapidecode: fix decoding of MPEG-2 PS files.
33392 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33394 * gst-libs/gst/vaapi/Makefile.am:
33395 Cosmetics (sort source files).
33397 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33399 * gst/vaapiconvert/gstvaapiconvert.c:
33400 * gst/vaapiconvert/gstvaapiconvert.h:
33401 vaapiconvert: fix direct-rendering caps detection.
33403 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33405 * gst-libs/gst/vaapi/gstvaapiimage.c:
33406 Fix gst_vaapi_image_new_with_image().
33408 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33410 * gst/vaapiconvert/gstvaapiconvert.c:
33411 vaapiconvert: warn when surface failed to be updated with image.
33413 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33415 * gst/vaapiconvert/gstvaapiconvert.c:
33416 vaapiconvert: fix autodetection for vaDeriveImage() support.
33418 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33420 * gst/vaapiconvert/gstvaapiconvert.c:
33421 vaapiconvert: fix memory leak (VA surface image).
33423 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33426 * gst/vaapiconvert/gstvaapiconvert.c:
33427 vaapiconvert: fix direct-rendering mode.
33429 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33431 * docs/reference/libs/libs-sections.txt:
33432 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33433 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33434 Add gst_vaapi_video_buffer_new_from_buffer().
33435 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
33436 Any image, surface or surface proxy will be inherited from the source buffer
33437 if it is a GstVaapiVideoBuffer.
33439 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33441 * gst/vaapiconvert/gstvaapiconvert.c:
33442 vaapiconvert: protect access to direct_rendering.
33444 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33446 * gst/vaapiconvert/gstvaapiconvert.c:
33447 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
33449 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33453 * debian.upstream/copyright:
33454 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33455 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33456 * gst-libs/gst/vaapi/gstvaapisurface.h:
33457 * gst/vaapidecode/gstvaapidecode.c:
33458 * gst/vaapidecode/gstvaapidecode.h:
33459 Add Intel copyright information.
33461 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33466 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33468 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33469 Fix build with newer FFmpeg versions.
33471 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33473 * gst/vaapidecode/gstvaapidecode.c:
33474 * gst/vaapidecode/gstvaapidecode.h:
33475 Fix decoding of MPEG-2 TS files.
33477 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33479 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33480 Report caps update only once per video resolution change.
33482 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33484 * gst-libs/gst/vaapi/gstvaapisurface.h:
33485 Add canonical form (type name) of VA surface caps.
33487 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33490 Bump version for development.
33492 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33495 Use pretty build output with automake >= 1.11.
33497 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33499 * gst/vaapiconvert/Makefile.am:
33500 * gst/vaapidecode/Makefile.am:
33501 * gst/vaapisink/Makefile.am:
33502 * tests/Makefile.am:
33503 Fix build with libva headers not in a standard include dir.
33505 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33510 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33512 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33513 * gst-libs/gst/vaapi/gstvaapicompat.h:
33514 * gst-libs/gst/vaapi/gstvaapicontext.c:
33515 * gst-libs/gst/vaapi/gstvaapicontext.h:
33516 * gst-libs/gst/vaapi/gstvaapidebug.h:
33517 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33518 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33519 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33520 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33521 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33522 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33523 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33524 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33525 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33526 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33527 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33528 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33529 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33530 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33531 * gst-libs/gst/vaapi/gstvaapiimage.c:
33532 * gst-libs/gst/vaapi/gstvaapiimage.h:
33533 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33534 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33535 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33536 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33537 * gst-libs/gst/vaapi/gstvaapiobject.c:
33538 * gst-libs/gst/vaapi/gstvaapiobject.h:
33539 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33540 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33541 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33542 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33543 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33544 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33545 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33546 * gst-libs/gst/vaapi/gstvaapisurface.c:
33547 * gst-libs/gst/vaapi/gstvaapisurface.h:
33548 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33549 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33550 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33551 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33552 * gst-libs/gst/vaapi/gstvaapitexture.c:
33553 * gst-libs/gst/vaapi/gstvaapitexture.h:
33554 * gst-libs/gst/vaapi/gstvaapitypes.h:
33555 * gst-libs/gst/vaapi/gstvaapiutils.c:
33556 * gst-libs/gst/vaapi/gstvaapiutils.h:
33557 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33558 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33559 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33560 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33561 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33562 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33563 * gst-libs/gst/vaapi/gstvaapivalue.c:
33564 * gst-libs/gst/vaapi/gstvaapivalue.h:
33565 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33566 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33567 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33568 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33569 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33570 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33571 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33572 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33573 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33574 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33575 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33576 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33577 * gst/vaapiconvert/gstvaapiconvert.c:
33578 * gst/vaapiconvert/gstvaapiconvert.h:
33579 * gst/vaapidecode/gstvaapidecode.c:
33580 * gst/vaapidecode/gstvaapidecode.h:
33581 * gst/vaapisink/gstvaapisink.c:
33582 * gst/vaapisink/gstvaapisink.h:
33585 * tests/test-decode.c:
33586 * tests/test-decode.h:
33587 * tests/test-display.c:
33588 * tests/test-h264.c:
33589 * tests/test-h264.h:
33590 * tests/test-mpeg2.c:
33591 * tests/test-mpeg2.h:
33592 * tests/test-surfaces.c:
33593 * tests/test-textures.c:
33594 * tests/test-vc1.c:
33595 * tests/test-vc1.h:
33596 * tests/test-windows.c:
33597 Update copyright notice.
33599 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33602 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33603 * gst-libs/gst/vaapi/gstvaapisurface.c:
33604 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33605 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33606 * gst-libs/gst/vaapi/gstvaapitexture.c:
33607 * gst-libs/gst/vaapi/gstvaapiutils.c:
33608 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33609 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33610 * gst-libs/gst/vaapi/gstvaapivalue.c:
33611 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33612 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33613 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33614 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33615 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33616 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33617 Fix licensing terms.
33619 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33624 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33626 * debian.upstream/copyright:
33627 Fix license terms...
33629 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33631 * gst/vaapisink/gstvaapisink.c:
33632 Render pretty background only in use-reflection=true mode.
33634 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33639 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33641 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33642 Drop the GLX 1.3 requirement.
33644 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33646 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33647 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33648 Call the GLX/Pixmap related functions through the vtable.
33650 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33654 * gst-libs/gst/vaapi/Makefile.am:
33655 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33656 Drop dependency on libavformat.
33658 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33660 * gst-libs/gst/video/gstbasevideodecoder.c:
33661 * gst-libs/gst/video/gstbasevideodecoder.h:
33662 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
33664 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33666 * gst-libs/gst/video/gstbasevideodecoder.c:
33667 * gst-libs/gst/video/gstbasevideoutils.c:
33668 * gst-libs/gst/video/gstbasevideoutils.h:
33669 Drop superfluous functions.
33671 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33673 * gst-libs/gst/video/gstbasevideodecoder.c:
33674 Really drop any dependency on libgstvideo. i.e. inline the helpers.
33676 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33678 * gst-libs/gst/video/gstbasevideodecoder.c:
33679 Further drop dependency on libgstvideo.
33681 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33683 * gst-libs/gst/video/Makefile.am:
33684 * gst-libs/gst/video/gstbasevideocodec.c:
33685 * gst-libs/gst/video/gstbasevideocodec.h:
33686 * gst-libs/gst/video/gstbasevideodecoder.c:
33687 * gst-libs/gst/video/gstbasevideodecoder.h:
33688 * gst-libs/gst/video/gstbasevideoutils.c:
33689 * gst-libs/gst/video/gstbasevideoutils.h:
33690 Add GstBaseVideoDecoder from gst-plugins-bad git.
33692 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33694 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33695 Fix GLX version check.
33697 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33701 Bump version for development.
33703 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33706 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33707 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
33709 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33714 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33716 * gst-libs/gst/vaapi/gstvaapicompat.h:
33717 Fix build with older VA-API 0.29-sds.
33719 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33721 * gst/vaapisink/gstvaapisink.c:
33722 * gst/vaapisink/gstvaapisink.h:
33723 Fix upscaling in foreign window (Totem).
33725 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33727 * gst/vaapisink/gstvaapisink.c:
33728 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
33730 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33733 * gst/vaapisink/gstvaapisink.c:
33734 Fix video rendering rect within an embedder window (Totem).
33736 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33739 * gst/vaapisink/gstvaapisink.c:
33740 Disable GLX rendering when vaapisink uses a foreign X window.
33742 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33744 * gst/vaapisink/gstvaapisink.c:
33745 Simplify GLX rendering code.
33747 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33750 Bump version for development.
33752 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33757 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33759 * gst/vaapidecode/gstvaapidecode.c:
33760 Wait for at most one second for a VA surface to become available.
33762 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33766 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
33768 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33772 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33773 Fix decoder caps to report codec aliases.
33775 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33778 * gst/vaapidecode/gstvaapidecode.c:
33779 * gst/vaapidecode/gstvaapidecode.h:
33780 Fix VC-1 decoding through the playbin2 pipeline.
33782 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33784 * docs/reference/libs/libs-sections.txt:
33785 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33786 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33787 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33788 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33789 Regularly update and expose decoder caps.
33791 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33793 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33794 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33795 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33796 Add mechanism to reinsert buffer leftovers into the queue.
33798 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33801 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33802 Fix memory leak of encoded buffers.
33804 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33806 * docs/reference/libs/libs-sections.txt:
33807 * gst-libs/gst/vaapi/gstvaapicontext.c:
33808 * gst-libs/gst/vaapi/gstvaapicontext.h:
33809 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33810 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33811 Check for out-of-free-surfaces condition.
33813 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33815 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33816 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
33818 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33820 * gst/vaapisink/gstvaapisink.c:
33821 Improve debug info for gst_vaapisink_ensure_render_rect().
33823 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33826 Bump version for development.
33828 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33833 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33835 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33836 Improve previous fix.
33838 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33841 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33842 Fix a crash in the FFmpeg decoder on close.
33844 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33847 Sort platforms by name.
33849 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33853 Bump version for development.
33855 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33857 * gst/vaapisink/gstvaapisink.c:
33858 Add debug info for _show_frame().
33860 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33863 Nuke older build dir.
33865 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33867 * debian.upstream/control.in:
33868 Fix packaging deps.
33870 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33875 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33878 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33879 Fix OpenGL texture internal format (Clutter).
33881 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33886 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33888 * gst/vaapisink/gstvaapisink.c:
33889 Debug video & display PARs.
33891 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33893 * gst/vaapisink/gstvaapisink.c:
33894 Use XGetGeometry() to retrieve the window size.
33896 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33898 * gst/vaapisink/gstvaapisink.c:
33901 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33903 * gst/vaapisink/gstvaapisink.c:
33904 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
33906 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33909 Drop obsolete comment.
33911 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33916 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33918 * gst/vaapidecode/gstvaapidecode.c:
33919 Fix GstVaapiDisplay refcounting in vaapidecode.
33921 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33923 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33926 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33928 * gst/vaapisink/gstvaapisink.c:
33929 * gst/vaapisink/gstvaapisink.h:
33930 Fix render rect when the foreign window size changes.
33932 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33936 * gst/vaapisink/Makefile.am:
33937 * gst/vaapisink/gstvaapisink.c:
33938 Add GstXOverlay interface to vaapisink (e.g. for Totem).
33940 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33943 Update deps to match configure.ac versions.
33945 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33947 * gst/vaapiconvert/gstvaapiconvert.c:
33948 * gst/vaapidecode/gstvaapidecode.c:
33949 * gst/vaapisink/gstvaapisink.c:
33952 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33955 * gst/vaapidecode/Makefile.am:
33956 * gst/vaapidecode/gstvaapidecode.c:
33957 * gst/vaapidecode/gstvaapidecode.h:
33958 Fix vaapidecode to expose the HW supported caps only.
33960 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33962 * gst/vaapidecode/gstvaapidecode.c:
33963 Initialize decoder earlier.
33965 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33969 * gst/vaapidecode/gstvaapidecode.c:
33970 Fix integration within the playbin2 pipeline.
33972 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33974 * docs/reference/libs/Makefile.am:
33975 Exclude gstvaapiutils_gst.h from docs for now.
33977 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33979 * gst/vaapiconvert/gstvaapiconvert.c:
33980 * gst/vaapidecode/gstvaapidecode.c:
33981 * gst/vaapisink/gstvaapisink.c:
33982 Raise VA-API plugins ranks.
33984 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33986 * gst-libs/gst/vaapi/Makefile.am:
33987 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33988 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33989 Add gst_vaapi_display_lookup_downstream() helper.
33991 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33993 * gst/vaapidecode/gstvaapidecode.c:
33994 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
33996 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33998 * docs/reference/libs/libs-sections.txt:
33999 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34000 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34001 * gst/vaapisink/gstvaapisink.c:
34002 Expose VA display through GstVaapiVideoBuffer.
34004 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34006 * gst/vaapidecode/gstvaapidecode.c:
34007 Simplify gst_vaapidecode_set_caps() and fix memory leak.
34009 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34011 * docs/reference/libs/libs-sections.txt:
34012 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34013 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34014 Expose video pool display.
34016 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34018 * gst-libs/gst/vaapi/gstvaapivideosink.c:
34019 Stop iteration if there is no more element to examine.
34021 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34023 * gst/vaapiconvert/gstvaapiconvert.c:
34024 * gst/vaapidecode/gstvaapidecode.c:
34025 * gst/vaapisink/gstvaapisink.c:
34026 Improve plugin details.
34028 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34030 * gst-libs/gst/vaapi/gstvaapisurface.h:
34031 * gst/vaapiconvert/gstvaapiconvert.c:
34032 * gst/vaapidecode/gstvaapidecode.c:
34033 * gst/vaapisink/gstvaapisink.c:
34034 Factor out VA surface caps.
34036 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34038 * gst/vaapidecode/gstvaapidecode.c:
34039 Add gst_vaapidecode_ensure_display() helper for set-caps.
34041 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34044 Bump version for development.
34046 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34049 Really make it 0.2.0.
34051 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34056 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34058 * docs/reference/libs/Makefile.am:
34059 Don't exclude GstVaapiParamSpecs.
34061 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34063 * docs/reference/libs/Makefile.am:
34064 * docs/reference/libs/libs-sections.txt:
34065 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34066 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34069 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34071 * gst/vaapiconvert/gstvaapiconvert.c:
34072 * gst/vaapidecode/gstvaapidecode.c:
34073 * gst/vaapisink/gstvaapisink.c:
34074 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.
34076 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34078 * gst-libs/gst/vaapi/Makefile.am:
34079 Really link all helper libraries with libtool -no-undefined.
34081 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34083 * gst-libs/gst/vaapi/Makefile.am:
34084 Link helper libraries with libtool -no-undefined.
34086 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34089 * debian.upstream/gstreamer-vaapi.install.in:
34090 * gst/vaapiconvert/Makefile.am:
34091 * gst/vaapidecode/Makefile.am:
34092 * gst/vaapisink/Makefile.am:
34093 Don't build plugins with SONAME. Make them plain *.so.
34095 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34098 Improve documentation for release.
34100 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34102 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34103 Fix build with older VA-API 0.29.
34105 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34110 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34112 * tests/Makefile.am:
34115 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34117 * docs/reference/libs/Makefile.am:
34118 * docs/reference/libs/libs-docs.xml.in:
34119 * docs/reference/libs/libs-sections.txt:
34120 * docs/reference/libs/libs.core.types:
34121 * docs/reference/plugins/Makefile.am:
34122 * docs/reference/plugins/plugins-docs.xml.in:
34123 * docs/reference/plugins/plugins-sections.txt:
34124 * docs/reference/plugins/plugins.types:
34127 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34129 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34132 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34134 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34135 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34136 * gst/vaapidecode/gstvaapidecode.c:
34137 * tests/test-decode.c:
34138 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
34140 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34142 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34143 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34144 Extract framerate information from caps.
34146 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34148 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34149 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34150 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34151 Move caps initialization to parent class.
34153 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34155 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34158 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34160 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34163 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34165 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34166 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34167 More simplifications.
34169 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34171 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34172 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34173 * tests/test-decode.c:
34174 Simplify GstVaapiDecoder API.
34176 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34178 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34179 Drop obsolete defs.
34181 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34183 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34184 Drop obsolete decls.
34186 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34188 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34189 * gst/vaapidecode/gstvaapidecode.c:
34190 Add more aliases for MPEG-4 decoding.
34192 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34194 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34195 Use avctx->coded_{width,height} info to create the VA context.
34197 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34199 * tests/test-decode.c:
34200 * tests/test-decode.h:
34201 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
34203 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34205 * tests/test-decode.c:
34206 * tests/test-decode.h:
34207 * tests/test-h264.c:
34208 * tests/test-h264.h:
34209 * tests/test-mpeg2.c:
34210 * tests/test-mpeg2.h:
34211 * tests/test-vc1.c:
34212 * tests/test-vc1.h:
34213 Simplify tests info.
34215 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34217 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34218 Try to improve heuristics to use an AVCodecContextParser.
34220 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34222 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34223 Fix VC-1 decoding, it does not require any specific parser.
34225 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34227 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34228 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
34230 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34232 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34233 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34234 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
34236 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34238 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34239 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34240 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34241 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34242 * gst/vaapidecode/gstvaapidecode.c:
34243 * gst/vaapidecode/gstvaapidecode.h:
34244 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
34246 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34248 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34249 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34250 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34251 Improve WMV3 detection yet further.
34253 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34255 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34256 Fix detection of plain old WMV3 contents.
34258 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34260 * tests/test-vc1.c:
34261 Add End-of-Sequence start code.
34263 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34265 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34266 * gst/vaapidecode/gstvaapidecode.c:
34267 Fix VC-1 detection.
34269 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34271 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34272 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
34274 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34276 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34277 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34278 Drop obsolete (and wrong) code.
34280 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34282 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34283 Cosmetics (spelling).
34285 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34287 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34288 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34289 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34290 Try to fix timestamps (step 1). Looks OK on H55.
34292 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34294 * debian.upstream/Makefile.am:
34295 Ship with COPYING.LIB.
34297 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34302 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34303 * gst-libs/gst/vaapi/gstvaapicompat.h:
34304 * gst-libs/gst/vaapi/gstvaapicontext.c:
34305 * gst-libs/gst/vaapi/gstvaapicontext.h:
34306 * gst-libs/gst/vaapi/gstvaapidebug.h:
34307 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34308 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34309 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34310 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34311 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34312 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34313 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34314 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34315 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34316 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34317 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34318 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34319 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34320 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34321 * gst-libs/gst/vaapi/gstvaapiimage.c:
34322 * gst-libs/gst/vaapi/gstvaapiimage.h:
34323 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34324 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34325 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34326 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
34327 * gst-libs/gst/vaapi/gstvaapiobject.c:
34328 * gst-libs/gst/vaapi/gstvaapiobject.h:
34329 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34330 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34331 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
34332 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34333 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34334 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34335 * gst-libs/gst/vaapi/gstvaapisurface.h:
34336 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
34337 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34338 * gst-libs/gst/vaapi/gstvaapitexture.h:
34339 * gst-libs/gst/vaapi/gstvaapitypes.h:
34340 * gst-libs/gst/vaapi/gstvaapiutils.h:
34341 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34342 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34343 * gst-libs/gst/vaapi/gstvaapivalue.h:
34344 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34345 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34346 * gst-libs/gst/vaapi/gstvaapivideosink.h:
34347 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34348 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34349 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34350 Relicense gst-libs/ code to LGPL v2.1+.
34352 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34354 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34355 Drop extraneous comma.
34357 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34359 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34360 Drop variant=itu field to help codec detection.
34362 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34364 * gst/vaapidecode/gstvaapidecode.c:
34365 Decode as many surfaces as possible in gst_vaapidecode_step().
34367 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34369 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34370 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34371 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34372 * gst/vaapidecode/gstvaapidecode.c:
34373 * gst/vaapidecode/gstvaapidecode.h:
34374 * tests/test-decode.c:
34375 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
34377 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34382 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34384 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34385 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
34387 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34389 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34390 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34391 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
34393 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34395 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34396 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34397 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
34399 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34401 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34402 Document H.264 / AVC1 format case better.
34404 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34406 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34407 Fix H.264 decoding with AVC1 format bitstreams.
34409 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34411 * gst/vaapidecode/gstvaapidecode.c:
34412 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
34414 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34416 * gst/vaapisink/gstvaapisink.c:
34417 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
34419 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34421 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34422 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34423 Export gst_vaapi_video_buffer_new().
34425 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34427 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34428 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
34430 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34435 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34440 * gst/vaapidecode/Makefile.am:
34441 * gst/vaapidecode/gstvaapidecode.c:
34442 * gst/vaapidecode/gstvaapidecode.h:
34443 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
34445 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34447 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34448 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34449 Add gst_vaapi_decoder_pause().
34451 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34453 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34454 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34455 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34456 Use a GstTask with start/stop semantics for the decoder thread.
34458 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34460 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34461 Drop extraneous var.
34463 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34465 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34466 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34467 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
34469 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34471 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34472 Fix gst_vaapi_decoder_get_surface() status.
34474 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34476 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34477 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34478 Try to set correct timestamps to the decoded surface proxy.
34480 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34482 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34483 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34484 * tests/test-decode.c:
34485 Add timestamps to GstVaapiSurfaceProxy.
34487 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34489 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34490 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
34492 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34494 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34495 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
34497 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34499 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34500 Prefer profile from codec-data if any was found there.
34502 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34504 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34505 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
34507 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34509 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34510 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
34512 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34514 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34515 Fix VC-1 codec initialization, it really needs an extradata buffer.
34517 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34519 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34520 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34521 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.
34523 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34525 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34526 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
34528 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34530 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34531 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34532 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34533 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34534 * tests/test-decode.c:
34535 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
34537 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34539 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34540 Cosmetics (weird indentation).
34542 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34544 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34545 Cosmetics (extraneous variable, debug message).
34547 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34550 Fix check for VA-API enabled FFmpeg.
34552 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34554 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34555 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34556 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34557 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34558 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
34560 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34562 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34563 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34564 Add more error codes. Fix documentation.
34566 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34568 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34569 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
34571 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34573 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34574 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34575 * tests/test-decode.c:
34576 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
34578 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34580 * tests/test-vc1.c:
34581 Drop useless End-of-Sequence marker.
34583 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34585 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34586 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.
34588 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34590 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34591 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34592 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.
34594 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34596 * tests/test-h264.c:
34597 * tests/test-vc1.c:
34598 Regenerate correct clips.
34600 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34602 * tests/Makefile.am:
34603 * tests/test-decode.c:
34604 * tests/test-h264.c:
34605 * tests/test-h264.h:
34606 * tests/test-mpeg2.c:
34607 * tests/test-mpeg2.h:
34608 * tests/test-vc1.c:
34609 * tests/test-vc1.h:
34610 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
34611 XXX: only VC-1 decoding works at this time because of awful
34612 bugs left in GstVaapiDecoderFfmpeg et al.
34614 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34617 * gst-libs/gst/vaapi/Makefile.am:
34618 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34619 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34620 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34621 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34622 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34623 Add initial (multithreaded) decoder based on FFmpeg.
34624 There are tons of bugs left:
34625 - Decoder API not nice enough with error conditions
34626 - FFmpeg parser is sometimes broken
34627 - Packets queue can be lost
34629 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34631 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34632 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34633 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
34635 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34637 * gst-libs/gst/vaapi/gstvaapicontext.c:
34638 * gst-libs/gst/vaapi/gstvaapicontext.h:
34639 Add VA context abstraction.
34641 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34643 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34644 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
34646 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34648 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34649 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34650 Add a means to cap the number of objects allocated in the pool.
34652 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34654 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34655 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34656 Add VA entrypoint abstraction.
34658 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34660 * docs/reference/libs/libs-docs.xml.in:
34661 * docs/reference/libs/libs-sections.txt:
34662 * gst-libs/gst/vaapi/Makefile.am:
34663 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34664 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34665 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34666 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34667 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34668 * tests/test-display.c:
34669 Add VA profile abstraction.
34671 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34673 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34674 Fix OpenGL rendering on G45 systems.
34676 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34678 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34679 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
34681 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34683 * gst-libs/gst/vaapi/gstvaapitexture.c:
34684 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34685 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34686 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.
34688 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34690 * gst-libs/gst/vaapi/gstvaapitexture.c:
34691 Fix get-out conditions.
34693 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34695 * gst-libs/gst/vaapi/gstvaapitexture.c:
34696 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34697 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.
34699 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34701 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34704 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34706 * docs/reference/libs/libs-sections.txt:
34707 * gst-libs/gst/vaapi/Makefile.am:
34708 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34709 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34710 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34711 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34712 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34713 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34714 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34715 * gst-libs/gst/vaapi/gstvaapitexture.c:
34716 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34717 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34718 * tests/test-windows.c:
34719 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
34721 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34723 * gst-libs/gst/vaapi/Makefile.am:
34724 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34725 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34726 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34727 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34728 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34729 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34730 * gst-libs/gst/vaapi/gstvaapiimage.c:
34731 * gst-libs/gst/vaapi/gstvaapiobject.c:
34732 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34733 * gst-libs/gst/vaapi/gstvaapisurface.c:
34734 * gst-libs/gst/vaapi/gstvaapitexture.c:
34735 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34736 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34737 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34738 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
34740 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34742 * gst-libs/gst/vaapi/gstvaapitexture.c:
34743 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34744 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34745 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34746 Improve handling of GL contexts.
34748 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34753 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34756 Bump version for development.
34758 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34761 * debian.upstream/Makefile.am:
34762 * debian.upstream/control.in:
34763 Rename -dev package to libgstvaapi-dev.
34765 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34771 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34773 * gst-libs/gst/vaapi/gstvaapiutils.c:
34774 Fix build with VA-API < 0.30.
34776 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34779 * gst-libs/gst/vaapi/gstvaapicompat.h:
34780 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34781 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34782 * gst-libs/gst/vaapi/gstvaapitexture.c:
34783 * tests/test-display.c:
34784 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
34786 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34788 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34789 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34790 Add TFP and FBO helpers.
34792 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34794 * gst-libs/gst/vaapi/gstvaapiutils.c:
34795 * gst-libs/gst/vaapi/gstvaapiutils.h:
34796 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
34798 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34800 * gst-libs/gst/vaapi/gstvaapitexture.c:
34801 * gst-libs/gst/vaapi/gstvaapiutils.c:
34802 * gst-libs/gst/vaapi/gstvaapiutils.h:
34803 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34804 Use a shorter function name.
34806 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34808 * docs/reference/libs/libs-sections.txt:
34809 * gst-libs/gst/vaapi/gstvaapisurface.c:
34810 * gst-libs/gst/vaapi/gstvaapisurface.h:
34811 * gst-libs/gst/vaapi/gstvaapiutils.c:
34812 * gst-libs/gst/vaapi/gstvaapiutils.h:
34813 Add gst_vaapi_surface_query_status() wrapper.
34815 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34817 * docs/reference/plugins/Makefile.am:
34818 Fix leftover during migration.
34820 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34824 * docs/reference/plugins/Makefile.am:
34826 * gst/vaapiconvert/Makefile.am:
34827 * gst/vaapiconvert/gstvaapiconvert.c:
34828 * gst/vaapiconvert/gstvaapiconvert.h:
34829 * gst/vaapisink/Makefile.am:
34830 * gst/vaapisink/gstvaapisink.c:
34831 * gst/vaapisink/gstvaapisink.h:
34832 Rename to gst/ as sys/ was too vague.
34834 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34836 * gst-libs/gst/vaapi/gstvaapiimage.c:
34837 * gst-libs/gst/vaapi/gstvaapiimage.h:
34838 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34839 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34840 * gst-libs/gst/vaapi/gstvaapisurface.c:
34841 * gst-libs/gst/vaapi/gstvaapisurface.h:
34842 Try to not reference VA-API types directly.
34844 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34846 * sys/vaapisink/gstvaapisink.c:
34847 Fix reflection code to preserve aspect ratio.
34849 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34851 * sys/vaapisink/gstvaapisink.c:
34852 * sys/vaapisink/gstvaapisink.h:
34853 Fix fullscreen mode.
34855 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34857 * sys/vaapisink/gstvaapisink.c:
34858 * sys/vaapisink/gstvaapisink.h:
34859 Add OpenGL reflection effect ("use-reflection").
34861 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34864 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34865 Use a projection suitable for rotation around the Y axis.
34867 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34870 * sys/vaapisink/Makefile.am:
34871 * sys/vaapisink/gstvaapisink.c:
34872 * sys/vaapisink/gstvaapisink.h:
34873 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
34875 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34878 * debian.upstream/Makefile.am:
34879 * debian.upstream/control.in:
34880 * debian.upstream/libgstvaapi-glx.install.in:
34881 Add libgstvaapi-glx-0 package.
34883 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34885 * pkgconfig/Makefile.am:
34886 Really fix make distclean.
34888 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34890 * docs/reference/libs/Makefile.am:
34893 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34895 * pkgconfig/Makefile.am:
34896 Fix make distclean.
34898 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34900 * tests/Makefile.am:
34903 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34905 * docs/reference/libs/Makefile.am:
34906 * docs/reference/libs/libs.core.types:
34907 * docs/reference/libs/libs.glx.types:
34908 * docs/reference/libs/libs.x11.types:
34911 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34913 * sys/vaapisink/gstvaapisink.h:
34914 Fix build without GLX.
34916 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34921 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34923 * sys/vaapisink/Makefile.am:
34924 * sys/vaapisink/gstvaapisink.c:
34925 * sys/vaapisink/gstvaapisink.h:
34926 Add VA/GLX support to vaapisink.
34928 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34930 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34931 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34932 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34933 Add glXSwapBuffers() workaround for NVIDIA.
34935 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34937 * tests/Makefile.am:
34938 * tests/test-textures.c:
34939 Improve VA/GLX textures test.
34941 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34943 * gst-libs/gst/vaapi/gstvaapitexture.c:
34944 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34945 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34946 Fix texture rendering.
34948 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34950 * docs/reference/libs/libs-docs.xml.in:
34951 * docs/reference/libs/libs-sections.txt:
34952 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34953 * gst-libs/gst/vaapi/gstvaapitexture.c:
34956 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34958 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34959 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34960 Add gst_vaapi_window_glx_put_texture() helper.
34962 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34964 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34967 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34971 * tests/test-windows.c:
34974 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34976 * gst-libs/gst/vaapi/Makefile.am:
34977 * gst-libs/gst/vaapi/gstvaapitexture.c:
34978 * gst-libs/gst/vaapi/gstvaapitexture.h:
34979 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34980 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34981 Add initial VA/GLX texture abstraction though the API is not good enough yet.
34983 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34985 * docs/reference/libs/libs-sections.txt:
34986 * gst-libs/gst/vaapi/gstvaapiobject.c:
34987 * gst-libs/gst/vaapi/gstvaapiobject.h:
34988 Add gst_vaapi_object_{,un}lock_display() helpers.
34990 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34992 * tests/Makefile.am:
34995 * tests/test-windows.c:
34996 Factor out image utilities.
34998 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35000 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35001 MT-Safe: lock display.
35003 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35005 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
35006 Make sure window resize completed prior to resizing the GL viewport.
35008 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35010 * gst-libs/gst/vaapi/Makefile.am:
35011 gstvaapicompat.h is a private header, don't install it.
35013 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35015 * docs/reference/libs/libs-sections.txt:
35016 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35017 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35018 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35019 Add gst_vaapi_display_{sync,flush}() helpers.
35021 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35023 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35024 * sys/vaapisink/gstvaapisink.c:
35025 * sys/vaapisink/gstvaapisink.h:
35026 Add "synchronous" mode.
35028 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35030 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35031 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35032 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
35034 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35036 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
35037 Restore GLX context only if there is one.
35039 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35041 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
35042 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
35043 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
35044 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
35045 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
35047 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35049 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35050 Check GstVaapiWindow::render() is available prior to calling it.
35052 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35054 * tests/Makefile.am:
35055 * tests/test-display.c:
35056 * tests/test-textures.c:
35057 Add VA/GLX display tests.
35059 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35062 * gst-libs/gst/vaapi/Makefile.am:
35065 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35067 * docs/reference/libs/Makefile.am:
35068 * docs/reference/libs/libs-docs.xml.in:
35069 * docs/reference/libs/libs-sections.txt:
35070 * docs/reference/libs/libs.types:
35071 Add missing API documentation.
35073 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35076 * gst-libs/gst/vaapi/Makefile.am:
35077 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
35078 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
35079 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
35080 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
35081 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
35082 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
35083 * pkgconfig/Makefile.am:
35084 * pkgconfig/gstreamer-vaapi-glx.pc.in:
35085 * tests/Makefile.am:
35086 * tests/test-textures.c:
35087 Add initial VA/GLX support.
35089 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35091 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35092 Add missing includes (for vaapi_check_status()).
35094 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35096 * gst-libs/gst/vaapi/gstvaapidebug.h:
35097 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
35099 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35101 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35102 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35103 Add gst_vaapi_window_x11_is_foreign_xid() helper.
35105 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35107 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35108 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35109 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35110 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35111 Allow derived classes to specify custom Visual and Colormap.
35113 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35115 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35116 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35117 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35118 Allow window creation with a specific visual (e.g. for GLX support).
35120 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35122 * gst-libs/gst/vaapi/gstvaapiimage.c:
35123 Fix return value on error (though it's the same in the end).
35125 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35127 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35128 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35129 Simplify initialization of VADisplay.
35131 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35134 Move __attribute__((visibility("hidden"))) check down.
35136 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35138 * docs/reference/libs/libs-sections.txt:
35139 * gst-libs/gst/vaapi/gstvaapiimage.c:
35140 * gst-libs/gst/vaapi/gstvaapiimage.h:
35141 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35142 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35143 * gst-libs/gst/vaapi/gstvaapisurface.c:
35144 * gst-libs/gst/vaapi/gstvaapisurface.h:
35145 * tests/test-surfaces.c:
35146 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
35148 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35150 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35151 Use the parent display object, no need to maintain another one.
35152 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
35154 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35156 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35157 Add more internal helpers.
35159 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35161 * gst-libs/gst/vaapi/gstvaapiimage.c:
35162 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35163 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35164 * gst-libs/gst/vaapi/gstvaapisurface.c:
35165 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35166 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35167 Rename to GST_VAAPI_OBJECT_DISPLAY().
35169 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35171 * docs/reference/libs/libs-sections.txt:
35172 * gst-libs/gst/vaapi/gstvaapiimage.c:
35173 * gst-libs/gst/vaapi/gstvaapiobject.c:
35174 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35175 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35176 * gst-libs/gst/vaapi/gstvaapisurface.c:
35177 * gst-libs/gst/vaapi/gstvaapitypes.h:
35178 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35179 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
35181 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35183 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35184 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35185 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35186 Make GstVaapiWindow* derive from GstVaapiObject.
35188 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35191 Factor out use gstreamer-vaapi (PACKAGE name).
35193 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35196 Improve versioning summary.
35198 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35200 * gst-libs/gst/vaapi/Makefile.am:
35201 gstvaapicompat.h is now a private header (not installed).
35203 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35205 * gst-libs/gst/vaapi/gstvaapiimage.c:
35206 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35207 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35208 * gst-libs/gst/vaapi/gstvaapiobject.c:
35209 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35210 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35211 Include gstvaapicompat.h in source files only, not headers.
35213 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35216 * gst-libs/gst/vaapi/Makefile.am:
35217 * sys/vaapiconvert/Makefile.am:
35218 * sys/vaapisink/Makefile.am:
35219 * tests/Makefile.am:
35220 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
35222 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35226 * gst-libs/gst/vaapi/Makefile.am:
35227 * gst-libs/gst/vaapi/gstvaapicompat.h:
35228 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35229 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35230 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35231 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35232 * gst-libs/gst/vaapi/gstvaapisurface.c:
35233 * gst-libs/gst/vaapi/gstvaapiutils.c:
35234 * gst-libs/gst/vaapi/gstvaapiutils.h:
35235 * pkgconfig/gstreamer-vaapi-x11.pc.in:
35236 * pkgconfig/gstreamer-vaapi.pc.in:
35237 * sys/vaapiconvert/Makefile.am:
35238 * sys/vaapisink/Makefile.am:
35239 * tests/Makefile.am:
35240 Add compatibility with the original VA-API 0.29.
35242 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35244 * gst-libs/gst/vaapi/gstvaapivalue.h:
35245 Add missing file (gstvaapivalue.h).
35247 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35249 * gst-libs/gst/vaapi/gstvaapiimage.c:
35250 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35251 * gst-libs/gst/vaapi/gstvaapisurface.c:
35252 Fix g_warning() invocation.
35254 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35256 * gst-libs/gst/vaapi/gstvaapisurface.c:
35257 Deassociate subpictures while destroying the surface.
35259 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35261 * gst-libs/gst/vaapi/gstvaapisurface.c:
35262 Fix destruction order of subpictures. They should be destroyed first.
35264 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35267 * gst-libs/gst/vaapi/gstvaapiimage.c:
35268 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35269 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35270 * tests/test-windows.c:
35271 Add support for AYUV format.
35273 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35275 * tests/test-windows.c:
35276 Simplify upload process and fallback to subpictures.
35278 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35280 * docs/reference/libs/libs-docs.xml.in:
35281 * docs/reference/libs/libs-sections.txt:
35282 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35285 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35287 * gst-libs/gst/vaapi/Makefile.am:
35288 * gst-libs/gst/vaapi/gstvaapiobject.c:
35289 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35290 * gst-libs/gst/vaapi/gstvaapitypes.h:
35291 * gst-libs/gst/vaapi/gstvaapivalue.c:
35292 Move GValue specific stuff to a dedicated file.
35294 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35296 * tests/test-surfaces.c:
35297 Cosmetics (lowercase for consistency).
35299 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35301 * gst-libs/gst/vaapi/gstvaapiobject.c:
35302 Cosmetics (vertical alignment).
35304 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35306 * gst-libs/gst/vaapi/gstvaapiobject.c:
35307 Fix return value on error.
35309 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35311 * docs/reference/libs/libs-sections.txt:
35312 * gst-libs/gst/vaapi/gstvaapiimage.c:
35313 * gst-libs/gst/vaapi/gstvaapiimage.h:
35314 * gst-libs/gst/vaapi/gstvaapiobject.c:
35315 * gst-libs/gst/vaapi/gstvaapiobject.h:
35316 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35317 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35318 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35319 * gst-libs/gst/vaapi/gstvaapisurface.c:
35320 * gst-libs/gst/vaapi/gstvaapisurface.h:
35321 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35322 * tests/test-surfaces.c:
35323 Move "id" down to the GstVaapiObject base.
35325 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35327 * gst-libs/gst/vaapi/gstvaapitypes.c:
35328 Cosmetics (drop extraneous empty line).
35330 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35332 * gst-libs/gst/vaapi/Makefile.am:
35333 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35334 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
35335 Add GParamSpecs for GstVaapiID.
35337 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35339 * docs/reference/libs/libs.types:
35340 Drop gst_vaapi_id_get_type().
35342 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35344 * docs/reference/libs/libs-sections.txt:
35345 * gst-libs/gst/vaapi/gstvaapitypes.h:
35346 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
35348 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35350 * docs/reference/libs/libs-sections.txt:
35351 * docs/reference/libs/libs.types:
35352 * gst-libs/gst/vaapi/Makefile.am:
35353 * gst-libs/gst/vaapi/gstvaapitypes.c:
35354 * gst-libs/gst/vaapi/gstvaapitypes.h:
35355 Add GstVaapiID abstraction.
35357 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35359 * docs/reference/libs/libs.types:
35362 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35364 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35365 * gst-libs/gst/vaapi/gstvaapiimage.c:
35366 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35367 * gst-libs/gst/vaapi/gstvaapisurface.c:
35368 Drop useless include (<va/va_backend.h>).
35370 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35372 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35373 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
35375 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35377 * gst-libs/gst/vaapi/Makefile.am:
35378 * gst-libs/gst/vaapi/gstvaapiimage.c:
35379 * gst-libs/gst/vaapi/gstvaapiobject.c:
35380 * gst-libs/gst/vaapi/gstvaapiobject.h:
35381 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35382 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35383 * gst-libs/gst/vaapi/gstvaapisurface.c:
35384 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35385 Move private definitions and accessors to gstvaapiobject_priv.h.
35387 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35389 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35390 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35391 * gst-libs/gst/vaapi/gstvaapiimage.c:
35392 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35393 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35394 * gst-libs/gst/vaapi/gstvaapiobject.c:
35395 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35396 * gst-libs/gst/vaapi/gstvaapisurface.c:
35397 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35398 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35399 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35400 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35401 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35402 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35403 Fix short descriptions.
35405 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35409 * debian.upstream/Makefile.am:
35410 * debian.upstream/changelog.in:
35411 * debian.upstream/compat:
35412 * debian.upstream/control.in:
35413 * debian.upstream/copyright:
35414 * debian.upstream/gstreamer-vaapi-doc.install.in:
35415 * debian.upstream/gstreamer-vaapi.install.in:
35416 * debian.upstream/libgstvaapi-dev.install.in:
35417 * debian.upstream/libgstvaapi-x11.install.in:
35418 * debian.upstream/libgstvaapi.install.in:
35419 * debian.upstream/rules:
35420 Generate upstream packages through make deb.upstream.
35422 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35425 Bump version for development.
35427 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35429 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35430 Use a black background for new windows.
35432 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35437 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35440 * docs/reference/libs/libs.types:
35441 * gst-libs/gst/vaapi/Makefile.am:
35442 * gst-libs/gst/vaapi/gstvaapimarshal.list:
35443 * gst-libs/gst/vaapi/gstvaapiobject.c:
35444 * gst-libs/gst/vaapi/gstvaapiobject.h:
35445 * tests/test-surfaces.c:
35446 Add "destroy" signal.
35448 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35450 * docs/reference/libs/libs-docs.xml.in:
35451 Improve gst-plugins-vaapi Library reference template.
35453 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35455 * docs/reference/libs/libs-docs.xml.in:
35456 * docs/reference/libs/libs-sections.txt:
35457 * gst-libs/gst/vaapi/Makefile.am:
35458 * gst-libs/gst/vaapi/gstvaapiimage.c:
35459 * gst-libs/gst/vaapi/gstvaapiimage.h:
35460 * gst-libs/gst/vaapi/gstvaapiobject.c:
35461 * gst-libs/gst/vaapi/gstvaapiobject.h:
35462 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35463 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35464 * gst-libs/gst/vaapi/gstvaapisurface.c:
35465 * gst-libs/gst/vaapi/gstvaapisurface.h:
35466 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35467 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
35469 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35471 * sys/vaapisink/gstvaapisink.c:
35474 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35476 * sys/vaapisink/gstvaapisink.c:
35477 Make sure VA display is valid when created with an explicit "display" name.
35479 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35481 * sys/vaapisink/gstvaapisink.c:
35482 Use plain "display" property for the X11 display name.
35484 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35486 * sys/vaapiconvert/gstvaapiconvert.c:
35487 * sys/vaapisink/gstvaapisink.c:
35488 Document vaapiconvert & vaapisink plugins.
35490 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35493 * docs/reference/Makefile.am:
35494 * docs/reference/plugins/Makefile.am:
35495 * docs/reference/plugins/plugins-docs.xml.in:
35496 * docs/reference/plugins/plugins-overrides.txt:
35497 * docs/reference/plugins/plugins-sections.txt:
35498 * docs/reference/plugins/plugins.types:
35499 Add plugins documentation template.
35501 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35503 * sys/vaapisink/gstvaapisink.c:
35504 * sys/vaapisink/gstvaapisink.h:
35505 Don't export gst_vaapisink_get_display().
35507 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35510 * docs/reference/libs/libs-docs.xml.in:
35511 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35512 * gst-libs/gst/vaapi/gstvaapiimage.c:
35513 * gst-libs/gst/vaapi/gstvaapisurface.c:
35514 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35515 Drop introspection annotations since they require gtk-doc >= 1.12.
35517 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35519 * gst-libs/gst/vaapi/gstvaapisurface.c:
35520 Add note about the fact that the surface holds an extra reference to the subpicture.
35522 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35524 * gst-libs/gst/vaapi/gstvaapiimage.c:
35525 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35526 * gst-libs/gst/vaapi/gstvaapisurface.c:
35527 Improve debugging messages.
35529 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35531 * tests/test-windows.c:
35532 Unref subpicture earlier as the surface is supposed to hold a reference to it.
35534 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35536 * docs/reference/libs/libs-sections.txt:
35537 * gst-libs/gst/vaapi/gstvaapisurface.c:
35538 * gst-libs/gst/vaapi/gstvaapisurface.h:
35539 * tests/test-windows.c:
35540 Add gst_vaapi_surface_{,de}associate_subpicture() API.
35542 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35544 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35545 Wait for MapNotify or UnmapNotify events on foreign windows too.
35547 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35549 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35550 Check whether the foreign XID is mapped at binding time.
35552 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35554 * sys/vaapisink/gstvaapisink.c:
35555 Add missing includes.
35557 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35560 * debian/Makefile.am:
35561 * debian/control.in:
35562 * debian/gstreamer-vaapi-doc.install.in:
35566 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35568 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35569 Fix warnings (drop extraneous var).
35571 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35573 * docs/reference/libs/libs-sections.txt:
35574 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35575 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
35577 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35579 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35582 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35584 * gst-libs/gst/vaapi/Makefile.am:
35585 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35586 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35587 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35588 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35589 Try to improve switch to fullscreen mode.
35591 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35593 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35594 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35595 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35596 Improve display locking and rework X event wait functions.
35598 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35600 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35601 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35602 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
35604 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35606 * gst-libs/gst/vaapi/Makefile.am:
35607 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35608 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35609 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.
35611 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35613 * docs/reference/libs/libs-sections.txt:
35614 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35615 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35616 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
35618 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35620 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35621 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35622 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35623 Add gst_vaapi_window_get_display() to base.
35625 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35627 * docs/reference/libs/libs-docs.xml.in:
35628 * docs/reference/libs/libs-sections.txt:
35629 * gst-libs/gst/vaapi/Makefile.am:
35630 * gst-libs/gst/vaapi/gstvaapitypes.h:
35631 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35632 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35633 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35634 * sys/vaapisink/gstvaapisink.c:
35635 * sys/vaapisink/gstvaapisink.h:
35636 Add GstVaapiPoint & GstVaapiRectangle data structures.
35638 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35643 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35646 * sys/vaapisink/gstvaapisink.c:
35647 * sys/vaapisink/gstvaapisink.h:
35648 Allow `vaapisink` to render videos in fullscreen mode.
35650 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35652 * docs/reference/libs/libs-sections.txt:
35653 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35654 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35655 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35656 Add gst_vaapi_window_set_fullscreen() API.
35658 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35660 * sys/vaapisink/gstvaapisink.c:
35661 Size window so that to respect the video and pixel aspect ratio.
35663 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35665 * docs/reference/libs/libs-sections.txt:
35666 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35667 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35668 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35669 * tests/test-display.c:
35670 Add gst_vaapi_display_get_pixel_aspect_ratio().
35672 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35674 * docs/reference/libs/libs-sections.txt:
35677 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35679 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35680 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35681 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35682 * tests/test-display.c:
35683 Add display size accessors.
35685 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35688 * debian/control.in:
35689 Build-Requires: gstreamer-plugins-base >= 0.10.16.
35691 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35693 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35694 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35695 * gst-libs/gst/vaapi/gstvaapiimage.h:
35696 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35697 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35698 * gst-libs/gst/vaapi/gstvaapisurface.h:
35699 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35700 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35701 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35702 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35703 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35704 Fix documentation of *Class'es.
35706 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35708 * gst-libs/gst/vaapi/gstvaapiutils.c:
35709 * gst-libs/gst/vaapi/gstvaapiutils.h:
35710 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35711 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
35713 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35715 * docs/reference/libs/libs-sections.txt:
35716 * gst-libs/gst/vaapi/gstvaapisurface.h:
35717 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35718 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
35720 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35722 * docs/reference/libs/libs-sections.txt:
35723 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35724 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35725 * sys/vaapisink/gstvaapisink.c:
35726 * tests/test-windows.c:
35727 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
35729 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35731 * docs/reference/libs/Makefile.am:
35732 Fix make dist for --enable-gtk-doc builds.
35734 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35737 Improve autogen.sh.
35739 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35743 Generate gtk-doc.make from gtkdocize.
35745 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35750 * docs/Makefile.am:
35751 * docs/reference/Makefile.am:
35752 * docs/reference/libs/Makefile.am:
35753 * docs/reference/libs/libs-docs.xml.in:
35754 * docs/reference/libs/libs-overrides.txt:
35755 * docs/reference/libs/libs-sections.txt:
35756 * docs/reference/libs/libs.types:
35757 Document public API for libgstvaapi-*.so.*.
35759 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35761 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35762 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35763 Document GstVaapiVideoBuffer.
35765 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35767 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35768 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35769 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35770 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35771 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35772 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35773 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
35775 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35777 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35778 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35779 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35780 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35781 * gst-libs/gst/vaapi/gstvaapiimage.c:
35782 * gst-libs/gst/vaapi/gstvaapiimage.h:
35783 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35784 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35785 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35786 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35787 * gst-libs/gst/vaapi/gstvaapisurface.c:
35788 * gst-libs/gst/vaapi/gstvaapisurface.h:
35789 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35790 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35791 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35792 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35793 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35794 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35795 Add tedious documentation.
35797 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35799 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35800 Beautify append_formats().
35802 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35804 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35805 Simplify GstVaapiDisplay (use GArray).
35807 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35810 * sys/vaapiconvert/gstvaapiconvert.c:
35811 * sys/vaapiconvert/gstvaapiconvert.h:
35812 Factor out direct-rendering infrastructure.
35814 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35816 * sys/vaapiconvert/gstvaapiconvert.c:
35817 * sys/vaapiconvert/gstvaapiconvert.h:
35818 Allow user to specify inout-buffers & derive-image optimizations.
35820 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35822 * sys/vaapiconvert/gstvaapiconvert.c:
35823 Reduce number of debug messaged printed out.
35825 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35827 * sys/vaapiconvert/gstvaapiconvert.c:
35828 * sys/vaapiconvert/gstvaapiconvert.h:
35829 Add vaDeriveImage() optimization.
35831 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35833 * gst-libs/gst/vaapi/gstvaapiimage.c:
35834 Fix gst_vaapi_image_create() from a foreign VA image.
35836 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35838 * gst-libs/gst/vaapi/gstvaapiimage.c:
35839 * gst-libs/gst/vaapi/gstvaapiimage.h:
35840 * gst-libs/gst/vaapi/gstvaapisurface.c:
35841 * gst-libs/gst/vaapi/gstvaapisurface.h:
35842 Add gst_vaapi_surface_derive_image() API.
35844 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35846 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35847 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35848 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35849 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().
35851 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35853 * tests/test-windows.c:
35854 Try YV12 & I420 image formats too.
35856 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35858 * gst-libs/gst/vaapi/gstvaapiimage.c:
35859 Split map/unmap functions into internal functions that don't check preconditions.
35861 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35863 * gst-libs/gst/vaapi/gstvaapiimage.c:
35864 Improve gst_vaapi_image_new() sanity checks.
35866 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35868 * tests/test-windows.c:
35871 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35873 * sys/vaapiconvert/gstvaapiconvert.c:
35874 Check if our inout buffer is still alive or default to a separate output buffer.
35876 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35878 * sys/vaapiconvert/gstvaapiconvert.c:
35879 * sys/vaapiconvert/gstvaapiconvert.h:
35880 Factor out buffers negotiation and optimization checks.
35882 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35884 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35885 * gst-libs/gst/vaapi/gstvaapiimage.c:
35886 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35887 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35888 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35889 * sys/vaapiconvert/gstvaapiconvert.h:
35892 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35894 * gst-libs/gst/vaapi/gstvaapiimage.c:
35895 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
35897 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35899 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35900 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35901 * gst-libs/gst/vaapi/gstvaapiimage.c:
35902 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35903 * gst-libs/gst/vaapi/gstvaapisurface.c:
35904 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35905 Add VA display locking utilities.
35907 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35909 * sys/vaapisink/gstvaapisink.c:
35910 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
35912 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35914 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35915 * tests/test-windows.c:
35916 Don't show window by default during creation.
35918 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35920 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35921 Fix gst_vaapi_window_x11_destroy().
35923 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35925 * sys/vaapiconvert/gstvaapiconvert.c:
35926 * sys/vaapiconvert/gstvaapiconvert.h:
35927 Alias sink & src pad buffers whenever possible.
35929 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35931 * gst-libs/gst/vaapi/gstvaapiimage.c:
35932 * gst-libs/gst/vaapi/gstvaapiimage.h:
35933 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
35935 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35937 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35938 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35939 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
35941 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35943 * sys/vaapiconvert/gstvaapiconvert.c:
35944 Fix image & surface size cache.
35946 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35949 Move gstreamer-vaapi package versioning to the top.
35951 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35954 Bump version for development.
35956 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35959 Cosmetics (shorten lines).
35961 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35967 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35969 * debian/Makefile.am:
35970 * debian/changelog.in:
35972 * debian/control.in:
35973 * debian/copyright:
35974 * debian/gstreamer-vaapi.install.in:
35975 * debian/libgstvaapi-dev.install.in:
35976 * debian/libgstvaapi-x11.install.in:
35977 * debian/libgstvaapi.install.in:
35979 Add debian packaging.
35981 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35985 Add debian packaging.
35987 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35989 * pkgconfig/Makefile.am:
35990 Silence GNU make extensions warning.
35992 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35995 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'
35997 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36001 * pkgconfig/Makefile.am:
36002 * pkgconfig/gstreamer-vaapi-x11.pc.in:
36003 * pkgconfig/gstreamer-vaapi.pc.in:
36004 Add pkgconfig files.
36006 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36009 * gst-libs/gst/vaapi/Makefile.am:
36010 * sys/vaapisink/Makefile.am:
36011 * tests/Makefile.am:
36012 Split X11 support to libgstvaapi-x11-*.so.*
36014 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36016 * gst-libs/gst/vaapi/Makefile.am:
36017 Don't install private headers.
36019 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36021 * gst-libs/gst/vaapi/gstvaapidebug.h:
36022 * gst-libs/gst/vaapi/gstvaapiutils.c:
36023 * gst-libs/gst/vaapi/gstvaapiutils.h:
36026 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36028 * gst-libs/gst/vaapi/Makefile.am:
36029 * gst-libs/gst/vaapi/gstvaapidebug.h:
36030 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36031 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36032 * gst-libs/gst/vaapi/gstvaapiimage.c:
36033 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
36034 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36035 * gst-libs/gst/vaapi/gstvaapisurface.c:
36036 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
36037 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
36038 * gst-libs/gst/vaapi/gstvaapivideopool.c:
36039 * gst-libs/gst/vaapi/gstvaapiwindow.c:
36040 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36041 Rename vaapi_debug.h to gstvaapidebug.h.
36043 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36045 * gst-libs/gst/vaapi/Makefile.am:
36046 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36047 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36048 * gst-libs/gst/vaapi/gstvaapiimage.c:
36049 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36050 * gst-libs/gst/vaapi/gstvaapisurface.c:
36051 * gst-libs/gst/vaapi/gstvaapiutils.c:
36052 * gst-libs/gst/vaapi/gstvaapiutils.h:
36053 * gst-libs/gst/vaapi/vaapi_debug.h:
36054 Move vaapi_utils.* to gstvaapiutils.*
36056 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36058 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
36059 Cosmetics (remove an extra line).
36061 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36063 * gst-libs/gst/vaapi/Makefile.am:
36064 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
36065 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
36066 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36067 Move X11 utilties to gstvaapiutils_x11.[ch].
36069 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36071 * gst-libs/gst/vaapi/Makefile.am:
36072 * gst-libs/gst/vaapi/gstvaapivideosink.c:
36073 * gst-libs/gst/vaapi/gstvaapivideosink.h:
36074 * sys/vaapiconvert/gstvaapiconvert.c:
36075 * sys/vaapisink/gstvaapisink.c:
36076 Rename GstVaapiSinkBase to GstVaapiVideoSink.
36078 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36081 * tests/Makefile.am:
36082 * tests/examples/Makefile.am:
36083 * tests/examples/generic/Makefile.am:
36084 * tests/test-display.c:
36085 * tests/test-surfaces.c:
36086 * tests/test-windows.c:
36087 Move tests to top-level tests/ directory.
36089 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36091 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36092 * gst-libs/gst/vaapi/gstvaapiimage.c:
36093 * sys/vaapiconvert/gstvaapiconvert.c:
36094 * sys/vaapiconvert/gstvaapiconvert.h:
36095 Handle I420 formats internally in GstVaapiImage.
36097 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36099 * sys/vaapiconvert/gstvaapiconvert.c:
36100 * sys/vaapiconvert/gstvaapiconvert.h:
36101 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
36103 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36105 * gst-libs/gst/vaapi/gstvaapiimage.c:
36106 Implement I420 and YV12 if the underlying implementation does not.
36108 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36110 * sys/vaapiconvert/Makefile.am:
36111 * sys/vaapiconvert/gstvaapiconvert.c:
36112 * sys/vaapiconvert/gstvaapiconvert.h:
36113 Add initial vaapiconvert plugin.
36115 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36117 * sys/vaapisink/gstvaapisink.c:
36118 * sys/vaapisink/gstvaapisink.h:
36121 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36123 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36126 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36128 * tests/examples/generic/test-windows.c:
36129 Generate R/G/B rects.
36131 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36133 * gst-libs/gst/vaapi/gstvaapisurface.c:
36134 * gst-libs/gst/vaapi/gstvaapisurface.h:
36135 Add gst_vaapi_surface_sync().
36137 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36139 * gst-libs/gst/vaapi/gstvaapiimage.c:
36140 Cosmetics (reverse args order).
36142 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36144 * gst-libs/gst/vaapi/gstvaapiimage.c:
36145 * gst-libs/gst/vaapi/gstvaapiimage.h:
36146 * gst-libs/gst/vaapi/gstvaapisurface.c:
36149 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36151 * gst-libs/gst/vaapi/Makefile.am:
36152 * gst-libs/gst/vaapi/gstvaapiwindow.c:
36153 * gst-libs/gst/vaapi/gstvaapiwindow.h:
36154 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36155 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
36156 * tests/examples/generic/Makefile.am:
36157 * tests/examples/generic/test-windows.c:
36158 Add VA/X11 window abstraction.
36160 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36162 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36163 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36164 Add VA and X11 display accessors.
36166 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36168 * gst-libs/gst/vaapi/gstvaapiimage.c:
36171 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36173 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36176 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36178 * gst-libs/gst/vaapi/gstvaapiimage.c:
36179 * gst-libs/gst/vaapi/gstvaapiimage.h:
36180 * gst-libs/gst/vaapi/gstvaapisurface.c:
36181 * gst-libs/gst/vaapi/gstvaapisurface.h:
36182 Add gst_vaapi_{get,put}_image() API.
36184 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36186 * gst-libs/gst/vaapi/gstvaapiimage.c:
36187 * gst-libs/gst/vaapi/gstvaapiimage.h:
36188 Add gst_vaapi_image_update_from_buffer() helper.
36190 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36192 * sys/vaapisink/Makefile.am:
36193 * sys/vaapisink/gstvaapisink.c:
36194 * sys/vaapisink/gstvaapisink.h:
36195 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
36197 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36199 * tests/examples/generic/Makefile.am:
36200 * tests/examples/generic/test-surfaces.c:
36203 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36205 * gst-libs/gst/vaapi/Makefile.am:
36206 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
36207 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
36208 Add basic GstVaapiVideoBuffer.
36210 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36212 * gst-libs/gst/vaapi/Makefile.am:
36213 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
36214 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
36215 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
36216 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
36217 * gst-libs/gst/vaapi/gstvaapivideopool.c:
36218 * gst-libs/gst/vaapi/gstvaapivideopool.h:
36219 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
36221 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36223 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36224 Simplify format conversion code.
36226 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36228 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36229 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36230 Add gst_vaapi_image_format_from_caps() helper.
36232 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36234 * gst-libs/gst/vaapi/Makefile.am:
36235 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
36236 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
36237 Add VA surface pool (lazy allocator).
36239 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36241 * gst-libs/gst/vaapi/gstvaapisurface.c:
36242 * gst-libs/gst/vaapi/gstvaapisurface.h:
36243 Add gst_vaapi_surface_get_size() helper.
36245 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36247 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36248 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
36250 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36252 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36253 Reset display-name if the user provided his own X11 display.
36255 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36257 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36258 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36259 * tests/examples/generic/test-display.c:
36260 Add gst_vaapi_display_x11_new_with_display() API.
36262 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36264 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36265 * gst-libs/gst/vaapi/gstvaapiimage.h:
36266 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36267 * gst-libs/gst/vaapi/gstvaapisurface.h:
36268 Fix *_GET_CLASS() definitions...
36270 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36272 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36273 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36274 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36275 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36276 * tests/examples/generic/test-display.c:
36277 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
36279 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36281 * gst-libs/gst/vaapi/gstvaapisurface.c:
36282 * gst-libs/gst/vaapi/gstvaapisurface.h:
36283 Use GstVaapiChromaType abstraction.
36285 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36287 * gst-libs/gst/vaapi/gstvaapiimage.c:
36288 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36289 * gst-libs/gst/vaapi/gstvaapisurface.c:
36290 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
36292 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36294 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36295 Don't warn on failure, just return an appropriate error or value.
36297 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36299 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36300 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36301 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36302 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
36304 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36306 * gst-libs/gst/vaapi/Makefile.am:
36307 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
36308 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
36309 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
36311 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36313 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36314 * gst-libs/gst/vaapi/gstvaapiimage.c:
36315 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36316 * gst-libs/gst/vaapi/gstvaapisurface.c:
36317 * gst-libs/gst/vaapi/vaapi_debug.h:
36320 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36322 * gst-libs/gst/vaapi/gstvaapiimage.c:
36323 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36324 Fix GstVaapiImage and GstVaapiSubpicture initialization.
36326 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36328 * gst-libs/gst/vaapi/gstvaapisurface.c:
36329 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
36331 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36333 * tests/examples/generic/test-display.c:
36336 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36338 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36339 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36340 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36341 Fix GstVaapiDisplay initialization.
36343 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36345 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36346 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36347 Get VA image & subpicture formats as GstCaps.
36349 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36351 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36352 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36353 Add helper to convert from GstVaapiImageFormat to GstCaps.
36355 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36357 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36358 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36359 * gst-libs/gst/vaapi/gstvaapisurface.c:
36360 Cosmetics (drop unused variables).
36362 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36365 * sys/vaapiconvert/Makefile.am:
36366 * sys/vaapiconvert/gstvaapiconvert.c:
36367 * sys/vaapiconvert/gstvaapiconvert.h:
36368 * sys/vaapisink/Makefile.am:
36369 * sys/vaapisink/gstvaapisink.c:
36370 * sys/vaapisink/gstvaapisink.h:
36371 Add boilerplate for vaapiconvert and vaapisink elements.
36373 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36377 * sys/vaapiconvert/Makefile.am:
36378 Add vaapiconvert element hierarchy.
36380 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36382 * sys/vaapisink/Makefile.am:
36383 Rename to vaapisink.
36385 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36387 * gst-libs/gst/vaapi/gstvaapisurface.c:
36388 Shorter code (and more correct).
36390 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36392 * gst-libs/gst/vaapi/gstvaapisurface.c:
36393 * gst-libs/gst/vaapi/gstvaapisurface.h:
36394 Add helper to get GstVaapiDisplay from a surface.
36396 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36398 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36399 Fix subpicture formats list length.
36401 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36403 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36404 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36405 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
36407 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36409 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36410 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36411 Cosmetics (more checks, includes).
36413 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36415 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36416 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36417 Really add VA subpicture abstraction.
36419 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36421 * gst-libs/gst/vaapi/Makefile.am:
36422 * gst-libs/gst/vaapi/gstvaapiimage.c:
36423 * gst-libs/gst/vaapi/gstvaapiimage.h:
36424 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36425 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36426 * gst-libs/gst/vaapi/gstvaapisurface.c:
36427 * gst-libs/gst/vaapi/gstvaapisurface.h:
36428 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
36430 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36433 * gst-libs/gst/vaapi/Makefile.am:
36434 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36435 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36436 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36437 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36438 * gst-libs/gst/vaapi/vaapi_debug.h:
36439 * gst-libs/gst/vaapi/vaapi_utils.c:
36440 * gst-libs/gst/vaapi/vaapi_utils.h:
36441 * tests/examples/generic/Makefile.am:
36442 * tests/examples/generic/test-display.c:
36443 Add initial VA display abstraction.
36445 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36449 * tests/Makefile.am:
36450 * tests/examples/Makefile.am:
36451 * tests/examples/generic/Makefile.am:
36452 Add tests infrastructure.
36454 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36457 Clean up VA-API checks.
36459 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36462 Check for __attribute__((visibility("hidden"))).