3 2022-10-04 01:14:01 +0100 Tim-Philipp Müller <tim@centricular.com>
7 * gstreamer-vaapi.doap:
11 2022-10-04 01:13:59 +0100 Tim-Philipp Müller <tim@centricular.com>
14 Update ChangeLogs for 1.21.1
16 2022-09-21 19:19:45 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
19 meson: Use implicit builtin dirs in pkgconfig generation
20 Starting with Meson 0.62, meson automatically populates the variables
21 list in the pkgconfig file if you reference builtin directories in the
22 pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
23 We need this, because ${prefix}/libexec is a hard-coded value which is
24 incorrect on, for example, Debian.
25 Bump requirement to 0.62, and remove version compares that retained
26 support for older Meson versions.
27 Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245
28 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>
30 2022-09-01 15:11:31 -0400 Thibault Saunier <tsaunier@igalia.com>
33 meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
34 Removing some copy pasted code
35 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
37 2022-09-01 11:51:48 -0400 Thibault Saunier <tsaunier@igalia.com>
40 meson: Namespace the plugins_doc_dep/libraries variables
41 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
43 2022-08-31 18:44:14 -0400 Thibault Saunier <tsaunier@igalia.com>
46 meson: Rename plugins list and make them "dependency" objects
47 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
49 2022-05-31 15:18:03 +0200 Stéphane Cerveau <scerveau@collabora.com>
53 docs: disable in static build
54 Following gst-plugins-base, disable docs if static_build
61 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2529>
63 2022-08-11 21:22:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
65 * gst-libs/gst/vaapi/gstvaapidisplay.c:
66 * gst/vaapi/gstvaapi.c:
67 * gst/vaapi/gstvaapidecode.c:
68 vaapi: plugin: Handle when no encoders/decoders available.
69 Nouveau driver currently only exposes postproc entry. But
70 vaapidecodebin is registered independent if there are decoders or not,
71 exposing a segmentation fault.
72 This patch removes the encoder/decoder/codec arrays if no entries are
73 found, and if no decoders are found vaapidecodebin is not
74 registered. Also for vaapipostproc if no postproc entry is found.
75 Also, if general decoder, used by vaapidecodebin, doesn't have a sink
76 pad string, don't register the glib type.
78 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2865>
80 2022-07-27 08:45:45 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com>
82 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
83 vaapi: h265dec: avoid possible NULL deref
84 Check "pi" before attempting to dereference it.
85 Captured by static analysis.
86 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2801>
88 2022-07-26 12:12:50 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
90 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
91 vaapi: h264dec: Remove dead code
92 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2795>
94 2022-07-26 12:22:10 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
96 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
97 vaapi: h265dec: Refresh our sps/pps copy
98 The decoder uses a copy of the SPS/PPS. Since
99 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575
100 the SPS/PPS is updated when the slice header is parsed. As a side
101 effect, the H265 decoder was using an partially filled copy.
102 Fixes: 5ae05bb42a ("codecparsers: Defering computation of pps and sps fields")
104 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2795>
106 2022-06-09 20:00:35 +0800 He Junyan <junyan.he@intel.com>
108 * gst-libs/gst/vaapi/gstvaapifilter.c:
109 vaapi: Do not disable the whole vpp when some va operations not available.
110 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2578>
112 2022-05-26 12:08:44 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com>
114 * tests/check/elements/vaapioverlay.c:
115 tests: vaapi: remove unused header
116 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2503>
118 2022-05-26 12:06:43 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com>
120 * tests/check/elements/vaapioverlay.c:
121 tests: vaapi: fix memleak in vaapioverlay test
122 Need to unmap the frame to ensure vaapioverlay can destruct/dispose.
123 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2503>
125 2022-04-12 15:23:08 +0300 Sebastian Dröge <sebastian@centricular.com>
127 * gst-libs/gst/vaapi/gstvaapivalue.c:
128 Fix `transfer` gobject-introspection annotation typos
129 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2160>
131 2022-03-30 11:06:02 -0400 Xavier Claessens <xavier.claessens@collabora.com>
134 Use gmodule-no-export-2.0
135 We don't need `-Wl,--export-dynamic`, that's used only for executables
136 that needs to export an API to be used by plugins they load.
137 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
139 2022-03-25 15:00:20 -0400 Xavier Claessens <xavier.claessens@collabora.com>
141 * gst-libs/gst/vaapi/gstvaapifilter.c:
143 Remove glib and gobject dependencies everywhere
144 They are part of gst_dep already and we have to make sure to always have
145 gst_dep. The order in dependencies matters, because it is also the order
146 in which Meson will set -I args. We want gstreamer's config.h to take
147 precedence over glib's private config.h when it's a subproject.
148 While at it, remove useless fallback args for gmodule/gio dependencies,
149 only gstreamer core needs it.
150 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
152 2021-09-11 12:17:56 -0300 Thibault Saunier <tsaunier@igalia.com>
154 * docs/gst_plugins_cache.json:
156 tools: Add support for building gstreamer tools against gst-full
157 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1581>
159 2022-03-18 16:59:32 +0000 Thibault Saunier <tsaunier@igalia.com>
161 * tests/check/elements/vaapipostproc.c:
162 navigation: Add support for key Modifiers in all relevant events
163 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010>
165 2022-02-14 16:08:23 +0100 Vivienne Watermeier <vwatermeier@igalia.com>
167 * gst/vaapi/gstvaapipostproc.c:
168 * gst/vaapi/gstvaapisink.c:
169 * tests/check/elements/vaapipostproc.c:
170 all: Use new navigation interface and API
171 Use and implement the new navigation interface in all relevant sink elements,
172 and use API functions everywhere instead of directy accessing the event structure.
173 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>
175 2022-03-16 13:17:21 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
177 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
178 codecs: av1: Fix state when we show existing keyframe
179 Showing existing keyframe have special meaning in AV1. All the references
180 frame will be refreshed with the original keyframe information. The refresh
181 process (7.20) is implemented by saving data from the frame_header into the
182 state. To fix this special case, load all the relevant information into the
184 As there is nothing happening in between this and the loading of the key-frame
185 into the state, this patch also remove the separate API function, using it
188 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1971>
190 2022-03-18 13:42:27 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
193 meson: Bump all meson requirements to 0.60
194 Lots of new warnings ever since
195 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934
196 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977>
198 2022-03-08 14:54:34 +0800 GuYanjie <yanjie.gu@intel.com>
200 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
201 vaapih265dec: fixed st_rps_bits setting in h265 decoding.
202 According to va_dec_hevc.h, pic_param->st_rps_bits should be set
203 for accelorater to skip parsing the *short_term_ref_pic_set
204 (num_short_term_ref_pic_sets) structure.
205 Also modified fill_picture to get parser info as a parameter,
206 in order to get slide_hdr->short_term_ref_pic_set_size.
207 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1886>
209 2021-11-19 18:47:24 -0800 Haihao Xiang <haihao.xiang@intel.com>
211 * gst-libs/gst/vaapi/gstvaapiblend.c:
212 * gst/vaapi/gstvaapioverlay.c:
213 * gst/vaapi/gstvaapioverlay.h:
214 vaapioverlay: inline sinkpad scaling support
215 Often, users will need to scale inputs (e.g.
216 with vaapipostproc) before they are submitted
217 to the vaapioverlay. However, this results in
218 multiple VPP passes/operations in the pipeline
219 which creates unnecessary process overhead.
220 This change allows for inputs to be submitted
221 at original scale to vaapioverlay with per-sinkpad
222 scale dimensions specified so they can be scaled
223 and blended/composited in a single VPP pass/operation
224 to avoid the unnecessary process overhead.
225 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1380>
227 2021-11-19 14:46:34 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
229 * gst-libs/gst/vaapi/gstvaapiblend.c:
230 vaapioverlay: use vpp blend state iif using alpha
231 Don't set VAAPI vpp blend flags if alpha == 1.0,
232 i.e. fully opaque. This can avoid extra processing
233 overhead on some drivers that apply blending
234 unconditionally when flags are present, even if the
235 end result is the same without blend flags (i.e. all
236 opaque alpha channels).
237 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1380>
239 2022-02-09 06:01:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
243 vaapi: Use meson's features for option selection.
244 Modernize option selection, so if a required dependency is missing,
245 produce a meaningful error message.
246 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1676>
248 2021-09-30 17:42:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
251 build: Add libva dependency fallback.
252 Then libva can be subproject and used by either gstreamer-vaapi,
253 va and msdk in gst-plugins-bad.
254 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1397>
256 2022-02-04 11:15:47 +0000 Tim-Philipp Müller <tim@centricular.com>
260 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635>
262 === release 1.20.0 ===
264 2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
269 * gstreamer-vaapi.doap:
273 2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
276 Update ChangeLogs for 1.20.0
278 2022-01-30 09:38:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
280 * gst/vaapi/gstvaapipluginutil.c:
282 vaapi: Disable Wayland if no libdrm
283 Platform wise, is not possible, as far as I known, to have Wayland
284 without kernel's DRM. Though, it's possible to configure
285 gstreamer-vaapi without DRM but Wayland support, with the enhanced
286 handling of dmabuf in vaapisink for Wayland, vaapisink will always
287 fail. Given both issues, configuration with no DRM but Wayland, makes
288 things more complex, and a simpler approach is to refuse that
290 This patch disables Wayland support if there isn't DRM support. Also,
291 it disables the display test for Wayland, relying only on DRM and
293 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
295 2022-01-30 07:10:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
297 * gst-libs/gst/vaapi/video-format.c:
298 vaapi: libs: video-format: Check if formats map is not NULL.
299 Formats map is instantiated at the end of the display
300 instantiation. The problem is the Wayland display which looks for a
301 format in a callback, before the map is populated.
302 If user compiles gstreamer-vaapi with DRM support, the map is
303 populated with a DRM display at GStreamer plugin registration. But if
304 not, or a VA driver is not available, the plugin will try with a
305 Wayland driver, which cause the NULL de-reference.
306 Nevertheless, in the case of no DRM support, and if the Wayland
307 display doesn't get a reply from the format conversion is not a
309 So the solution is the trivial one, check if the format map is already
310 populated before de-reference it.
312 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
314 === release 1.19.90 ===
316 2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
321 * gstreamer-vaapi.doap:
325 2022-01-28 14:28:28 +0000 Tim-Philipp Müller <tim@centricular.com>
328 Update ChangeLogs for 1.19.90
330 2022-01-05 02:07:59 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
334 meson: Add explicit check: kwarg to all run_command() calls
335 This is required since Meson 0.61.0, and causes a warning to be
337 https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c
338 https://github.com/mesonbuild/meson/issues/9300
339 This exposed a bunch of places where we had broken run_command()
340 calls, unnecessary run_command() calls, and places where check: true
342 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
344 2022-01-04 16:19:44 +0800 He Junyan <junyan.he@intel.com>
346 * gst-libs/gst/vaapi/gstvaapiprofile.c:
347 vaapi: av1dec: Use named profiles to replace the numeric ones.
348 Use named AV1 profiles (i.e., main, high) to replace the old "0"
350 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1491>
352 2021-12-01 15:36:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
354 * gst/vaapi/gstvaapidecodebin.c:
355 vaapidecodebin: Misc enhancements.
356 - Use GST_WARNING rather than g_critical
357 - Replace gst_ghost_pad_new_from_template() with
358 gst_ghost_pad_new() to avoid using the template.
359 - Declare extern variable
360 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
362 2021-12-01 12:26:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
364 * gst/vaapi/gstvaapidecode.c:
365 vaapidecode: Autogenerate caps template.
366 vaapidecode is used in vaapidecodebin and it exposes all the
367 theoretically supported caps, but that slows down autoplug. With this
368 autplug is negotiated faster, giving more option to decodebin to select
370 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
372 2021-11-16 17:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
374 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
375 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
376 vaapi: libs: Use unsized arrays as parameters.
377 Instead of defining a sized array for function signature, use it
378 unsized (a pointer alias, basically). In this way clang warning is
380 warning: ‘fill_profiles’ accessing 64 bytes in a region of size 12 [-Wstringop-overflow=]
381 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
383 2021-11-16 17:21:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
386 vaapi: meson: Fail if static build.
387 And initialize the plugin array.
388 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
390 2021-11-15 16:38:34 +0800 Ung, Teng En <teng.en.ung@intel.com>
392 * gst/vaapi/gstvaapipostproc.c:
393 vaapipostproc: fix mising metadata when using system
394 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1325>
396 2021-11-03 18:44:03 +0000 Tim-Philipp Müller <tim@centricular.com>
401 === release 1.19.3 ===
403 2021-11-03 15:43:36 +0000 Tim-Philipp Müller <tim@centricular.com>
408 * gstreamer-vaapi.doap:
412 2021-11-03 15:43:32 +0000 Tim-Philipp Müller <tim@centricular.com>
415 Update ChangeLogs for 1.19.3
417 2021-10-18 15:47:00 +0100 Tim-Philipp Müller <tim@centricular.com>
419 * tests/check/meson.build:
420 meson: update for meson.build_root() and .build_source() deprecation
421 -> use meson.project_build_root() or .global_build_root() instead.
422 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
424 2021-10-18 00:40:14 +0100 Tim-Philipp Müller <tim@centricular.com>
427 * gst-libs/gst/vaapi/meson.build:
429 * tests/check/meson.build:
430 meson: update for dep.get_pkgconfig_variable() deprecation
431 ... in favour of dep.get_variable('foo', ..) which in some
432 cases allows for further cleanups in future since we can
433 extract variables from pkg-config dependencies as well as
434 internal dependencies using this mechanism.
435 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
437 2021-10-14 18:38:26 +0100 Tim-Philipp Müller <tim@centricular.com>
440 meson: bump meson requirement to >= 0.59
441 For monorepo build and ugly/bad, for advanced feature
442 option API like get_option('xyz').required(..) which
443 we use in combination with the 'gpl' option.
444 For rest of modules for consistency (people will likely
445 use newer features based on the top-level requirement).
446 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
448 2021-10-15 00:33:39 +0800 He Junyan <junyan.he@intel.com>
451 Docs: Fix a typo for Intel's vaapi driver name.
452 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1151>
454 2021-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
457 doc: update IRC links to OFTC
458 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
460 2021-09-26 01:07:02 +0100 Tim-Philipp Müller <tim@centricular.com>
464 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
466 === release 1.19.2 ===
468 2021-09-23 01:35:54 +0100 Tim-Philipp Müller <tim@centricular.com>
473 * gstreamer-vaapi.doap:
477 2021-08-26 15:06:53 +0800 Zhang Yuankun <yuankunx.zhang@intel.com>
479 * gst/vaapi/gstvaapidecode.c:
480 vaapi: decoder: modify the condition to judge whether dma buffer is supported
481 It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
482 return false even if this platform support the mem_type dma buffer.
483 And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
484 on Gen12(such as TGL).
485 Without this patch, The command such as:
486 gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
487 x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
488 will return not-negotiated.
489 Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
490 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
492 2021-05-14 12:04:04 +0800 He Junyan <junyan.he@intel.com>
494 * gst-libs/gst/vaapi/gstvaapidisplay.c:
495 * gst/vaapi/gstvaapivideocontext.c:
496 Display: Add a property to export the VA display handle.
497 Just like what we do in VA plugins. The display can be seen as a
498 generic gst object and we can add a property to get the internal
500 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
502 2021-05-14 11:49:01 +0800 He Junyan <junyan.he@intel.com>
504 * gst/vaapi/gstvaapivideomemory.c:
505 * gst/vaapi/gstvaapivideomemory.h:
506 plugins: video memory: Add a GST_MAP_VAAPI flag to peek the surface.
507 Just like what we do in VA plugins, the GST_MAP_VAAPI can directly
508 peek the surface of the VA buffers. The old flag 0 just peek the
509 surface proxy, which may not be convenient for the users who do not
510 want to include our headers.
511 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
513 2021-07-09 11:01:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
515 * gst/vaapi/gstvaapi.c:
516 * gst/vaapi/gstvaapidecode.c:
517 Revert "vaapi: Demote vaapidecodebin to rank NONE."
518 This reverts commit 7a25c5d4ec95aefeca6515ac023b23c5dd330194.
519 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/436>
521 2021-06-23 16:23:00 +0800 He Junyan <junyan.he@intel.com>
523 * gst/vaapi/gstvaapiencode.c:
524 plugins: encode: fix a deadlock because of _drain()
525 We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(),
526 whose context does not hold the stream lock of the encoder. The
527 current gst_vaapiencode_drain inside unlock/lock pair adds a extra
528 lock count to the stream lock of encoder and causes hang later.
529 We just remove the gst_vaapiencode_drain() and expand its logic
530 correctly according to the lock/unlock context.
531 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/433>
533 2021-06-29 15:09:13 +0800 He Junyan <junyan.he@intel.com>
535 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
536 libs: decoder: av1: Clean the film_grain_info field.
537 We need to clean all film_grain_info fields when the film grain
538 feature is not enabled. It may have random data because the picture
539 parameter buffer is not cleaned.
540 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/434>
542 2021-06-03 22:12:04 +0800 He Junyan <junyan.he@intel.com>
544 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
545 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
546 libs: encoder: mpeg2: Add highP level for 1080@50p/60p.
547 The MPEG2 spec has amendment 3 to introduce a new level highP, which
548 is used for 1080@50p/60p streams. We need to add this level to avoid
549 encoding failure because of the level check.
551 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/432>
553 2021-05-11 16:59:07 +0800 He Junyan <junyan.he@intel.com>
555 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
556 Decoder: H264: Add the support for frame packing arrangement SEI message.
557 Frame packing arrangement SEI message is an alternative simple stereo 3D
558 manner for AVC. We need to recognize that SEI message and report the correct
560 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/420>
562 2021-05-22 18:54:49 +0100 Tim-Philipp Müller <tim@centricular.com>
564 * gst-libs/gst/vaapi/gstvaapifilter.c:
566 Use g_memdup2() where available and add fallback for older GLib versions
567 Alloc size is based on existing allocations and struct sizes.
568 g_memdup() is deprecated since GLib 2.68 and we want to avoid
569 deprecation warnings with recent versions of GLib.
570 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/431>
572 2021-06-01 15:29:16 +0100 Tim-Philipp Müller <tim@centricular.com>
577 === release 1.19.1 ===
579 2021-06-01 00:16:31 +0100 Tim-Philipp Müller <tim@centricular.com>
584 * gstreamer-vaapi.doap:
588 2021-04-23 19:01:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
590 * gst/vaapi/gstvaapi.c:
591 * gst/vaapi/gstvaapidecode.c:
592 vaapi: Demote vaapidecodebin to rank NONE.
593 One of the main reasons of vaapidecodebin was because it mitigated the
594 possible surface exhaustion. But that problem is currently
595 solved. Nowadays, vaapidecodebin brings more problems than it
596 solves. Thus this patch demotes vaapidecodebin to NONE rank while
597 bumping PRIMARY + 1 the most common decoders.
598 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>
600 2021-05-20 10:28:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
602 * gst/vaapi/gstvaapi.c:
603 * gst/vaapi/gstvaapioverlay.c:
604 plugins: Demote rank of vaapipostproc and vaapioverlay.
605 Since almost all video filters have rank NONE, these both elements
607 This is useful for autovideoconvert and other bins, and users might
608 force to use these by setting the environment variable
609 GST_PLUGIN_FEATURE_RANK.
610 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>
612 2021-04-21 10:55:45 +0200 François Laignel <fengalin@free.fr>
614 * tests/check/elements/vaapioverlay.c:
615 Use gst_element_request_pad_simple...
616 Instead of the deprecated gst_element_get_request_pad.
617 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
619 2021-04-23 11:02:05 +0800 Zhang yuankun <yuankunx.zhang@intel.com>
621 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
622 libs: encoder: VP9: fix > 4k encode fail issue
623 The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
624 width of a tile in units of superblocks. So the max width of one tile
625 should not be larger than 64x64=4096. When the width exceeds 4k, we
626 need to split it into multiple tiles in columns. The current vp9 encoder
627 does not handle this correctly.
629 gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
630 vaapivp9enc ! fakesink
632 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>
634 2021-04-02 15:43:45 +0800 Haihao Xiang <haihao.xiang@intel.com>
636 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
637 libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
638 Otherwise user will be misled that the specified device is using
639 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
640 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>
642 2021-03-22 13:41:13 +0800 He Junyan <junyan.he@intel.com>
644 * gst-libs/gst/vaapi/gstvaapiencoder.c:
645 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
646 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
647 decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
648 If ROI is enabled, the CUs within the ROI region may have different
649 QP from the other part of the picture. This needs us to enable the
650 cu_qp_delta_enabled_flag even in the CQP mode.
651 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>
653 2021-03-19 17:42:36 +1100 Matthew Waters <matthew@centricular.com>
655 * gst-libs/gst/vaapi/gstvaapicontext.c:
656 * gst-libs/gst/vaapi/gstvaapicontext.h:
657 * gst-libs/gst/vaapi/gstvaapiencoder.c:
658 * gst-libs/gst/vaapi/gstvaapifilter.c:
659 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
660 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
661 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
662 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
663 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
664 * gst-libs/gst/vaapi/gstvaapivalue.c:
665 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
666 * gst/vaapi/gstvaapipluginbase.c:
667 * gst/vaapi/gstvaapisink.c:
668 * gst/vaapi/gstvaapisink.h:
669 * gst/vaapi/gstvaapivideocontext.c:
670 * gst/vaapi/gstvaapivideomemory.c:
671 * tests/internal/simple-decoder.c:
672 gst: don't use volatile to mean atomic
673 volatile is not sufficient to provide atomic guarantees and real atomics
674 should be used instead. GCC 11 has started warning about using volatile
675 with atomic operations.
676 https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
677 Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
678 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>
680 2021-02-24 17:41:02 +0100 Paul Goulpié <paul.goulpie@ubicast.eu>
682 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
683 gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
684 forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
685 Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>
687 2021-02-04 15:05:55 +0800 He Junyan <junyan.he@intel.com>
689 * gst/vaapi/gstvaapipostproc.c:
690 plugins: postproc: Fix a problem of propose_allocation when passthrough.
691 We should query the downstream element to answer a precise allocation
692 query when the passthrough mode is enabled.
693 The current way still decides the allocation by the postproc itself. The
695 gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
696 vaapipostproc ! fakevideosink silent=false sync=true
697 will lose some info such as the GST_VIDEO_META_API_TYPE.
698 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>
700 2021-01-27 12:05:44 +0800 Haihao Xiang <haihao.xiang@intel.com>
702 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
703 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
704 * gst/vaapi/gstvaapivideocontext.c:
705 libs: display: drm: support gst.vaapi.app.Display context for drm backend
706 Attributes for drm backend:
707 - va-display : ponter of VADisplay
708 - drm-device-fd : the DRM device file descriptor
709 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
711 2021-01-13 14:43:20 +0800 Haihao Xiang <haihao.xiang@intel.com>
714 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
715 libs: display: drm: allow user specify a drm device via an env variable
716 Currently the default drm device is always used on a system with
717 multiple drm devices. This patch allows user to specify the required
718 drm device via GST_VAAPI_DRM_DEVICE env variable
720 GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
721 vaapih264enc ! fakesink
722 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
724 2021-01-25 14:45:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
726 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
727 libs: display: drm: fix set_device_path_from_fd
728 drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
729 drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
730 so we can't get the right device path. Running test-display will get the
732 ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
734 Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
735 issue because a special permission is required for SET_VERSION ioctl.
736 This patch retrieves the device path from file descriptor via
738 [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
739 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>
741 2021-01-20 10:42:09 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
743 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
744 glx: Iterate over FBConfig and select 8 bit color size
745 Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
746 In latest mesa versions the first fbconfig might not be 8 bit, so iterate
747 over it to find the correct config with supported values.
748 This also adds 8 bit alpha size to the framebuffer configuration which is
749 required to get it working properly.
750 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>
752 2021-01-11 09:57:03 +0800 Ung, Teng En <teng.en.ung@intel.com>
754 * gst-libs/gst/vaapi/gstvaapiutils.c:
755 vaapipostproc: fix code style.
756 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
758 2020-12-21 05:42:00 +0000 Ung, Teng En <teng.en.ung@intel.com>
760 * gst-libs/gst/vaapi/gstvaapidisplay.c:
761 * gst-libs/gst/vaapi/gstvaapidisplay.h:
762 * gst-libs/gst/vaapi/gstvaapifilter.c:
763 vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
764 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
766 2020-12-21 05:36:29 +0000 Ung, Teng En <teng.en.ung@intel.com>
768 * gst-libs/gst/vaapi/gstvaapiutils.c:
769 vaapipostproc: Added gstreamer BT2020 color standard support.
770 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
772 2021-01-09 16:05:48 +0800 He Junyan <junyan.he@intel.com>
774 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
775 decoder: AV1: Fix a static analysis problem of update_state().
776 No need to check the picture pointer after we have already dereferenced it.
778 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>
780 2020-12-22 23:43:52 +0800 He Junyan <junyan.he@intel.com>
782 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
783 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
784 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
785 libs: decoder: Add decode_with_surface_id for AV1 film_grain.
786 The AV1 film_graim feature needs two surfaces the same time for
787 decoding. One is for recon surface which will be used as reference
788 later, and the other one is for display. The GstVaapiPicture should
789 contain the surface for display, while the vaBeginPicture() need
790 the recon surface as the target.
791 We add a gst_vaapi_picture_decode_with_surface_id API to handle this
793 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
795 2020-08-27 21:46:41 +0800 He Junyan <junyan.he@intel.com>
797 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
798 * gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
799 * gst-libs/gst/vaapi/gstvaapiprofile.c:
800 * gst-libs/gst/vaapi/gstvaapiprofile.h:
801 * gst-libs/gst/vaapi/gstvaapiutils.c:
802 * gst-libs/gst/vaapi/meson.build:
803 * gst/vaapi/gstvaapidecode.c:
805 libs: decoder: AV1: Add the av1 decoder support.
806 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
808 2020-08-27 21:39:35 +0800 He Junyan <junyan.he@intel.com>
810 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
811 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
812 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
813 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
814 libs: codecobject: Add number of elements when create codec object.
815 One slice data may need several slice parameter buffers at one time.
816 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
818 2020-12-12 10:30:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
820 * gst/vaapi/gstvaapidecodebin.c:
821 * gst/vaapi/gstvaapipluginbase.c:
822 * gst/vaapi/gstvaapivideobufferpool.c:
823 vaapi: use gst_clear_object instead of g_clear_object
824 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>
826 2020-12-08 13:34:35 +0800 He Junyan <junyan.he@intel.com>
828 * gst/vaapi/gstvaapiencode.c:
829 plugins: encode: unlock the stream lock before _flush()
830 The current encoder will hang when EOS comes. When we call the
831 gst_vaapi_encoder_encode_and_queue(), we should release the stream
832 lock, just like what we do in gst_vaapiencode_handle_frame().
833 The deadlock happens when: The input thread holding the stream lock
834 is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
835 buffer, while the output thread which holding the coded buffer resource
836 is acquiring the stream lock in _push_frame() to push the data to
838 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>
840 2020-12-09 00:04:33 +0800 He Junyan <junyan.he@intel.com>
842 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
843 libs: encoder: H264: Fix one assert in get_pending_reordered().
844 gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
845 case for HIERARCHICAL_B mode. The pipeline:
846 gst-launch-1.0 videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
847 keyframe-period=32 ! fakesink
849 ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
850 assertion failed: (count != 0)
851 The last few B frames are not fetched in correct order when HIERARCHICAL_B
853 We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
854 make the last several frames encoded in reverse order. The NAL of last few
855 frames come in reverse order in the bit stream, though it can still output
857 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>
859 2020-06-25 16:25:21 +0800 He Junyan <junyan.he@hotmail.com>
861 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
862 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
863 libs: encoder: H265: Add screen content coding extensions support.
864 In scc mode, the I frame can ref to itself and it needs the L0 reference
865 list enabled. So we should set the I frame to P_SLICE type. We do not need
866 to change the ref_pic_list0/1 passed to VA driver, just need to enable the
867 VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
868 the driver consider the current frame as reference. For bits conformance,
869 the NumRpsCurrTempList0 should be incremented by one to include the current
870 picture as the reference frame. We manually do it when packing the slice header.
872 gst-launch-1.0 videotestsrc num-buffers=10 ! \
873 capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
874 vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
875 filesink location=out.265
876 Can be used to specify that the encoder should use SCC profiles.
877 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>
879 2020-07-11 23:37:29 +0800 He Junyan <junyan.he@intel.com>
881 * gst/vaapi/gstvaapiencode_vp9.c:
882 plugin: encode: vp9: Implement the set_config().
883 We store the allowed profiles list to encoder in set_config().
884 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
886 2020-07-11 23:39:40 +0800 He Junyan <junyan.he@intel.com>
888 * gst/vaapi/gstvaapiencode_vp9.c:
889 plugin: encode: vp9: Add the profile into output caps.
890 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
892 2020-07-11 23:27:21 +0800 He Junyan <junyan.he@intel.com>
894 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
895 libs: encoder: vp9: no need to ensure_hw_profile.
896 Once we decide the profile and can get the valid entrypoint for
897 that profile, hw must already support this profile/entrypoint pair.
898 No need to check it again in set_context_info().
899 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
901 2020-07-11 23:22:55 +0800 He Junyan <junyan.he@intel.com>
903 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
904 libs: encoder: vp9: Improve the manner to decide the profile.
905 We should decide the VP9 encoder's profile based on the chroma and
906 depth of the input format, then make sure it is included in the
908 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
910 2020-07-11 23:17:02 +0800 He Junyan <junyan.he@intel.com>
912 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
913 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
914 libs: util: vpx: add get_chroma_format_idc for VP9
915 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
917 2020-07-11 23:09:59 +0800 He Junyan <junyan.he@intel.com>
919 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
920 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
921 libs: encoder: vp9: Add allowed_profiles.
922 We need the allowed_profiles to store the allowed profiles in down
925 vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
927 We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
929 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
931 2020-11-30 18:00:30 +0800 He Junyan <junyan.he@intel.com>
933 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
934 libs: decoder: H265: Fix a typo in scc reference setting.
935 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>
937 2020-07-17 18:00:30 +0800 He Junyan <junyan.he@intel.com>
939 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
940 * gst-libs/gst/vaapi/gstvaapiprofile.c:
941 * gst-libs/gst/vaapi/gstvaapiprofile.h:
942 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
943 * gst-libs/gst/vaapi/video-format.c:
944 * gst/vaapi/gstvaapidecode.c:
945 libs: decoder: H265: Add MAIN_422_12 profile supporting.
946 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
948 2020-07-31 14:38:42 +0800 He Junyan <junyan.he@intel.com>
950 * gst-libs/gst/vaapi/gstvaapiimage.c:
951 * gst-libs/gst/vaapi/video-format.c:
952 * gst-libs/gst/vaapi/video-format.h:
953 video-format: Add Y212_LE format.
954 It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
955 also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
957 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
959 2020-07-30 23:21:06 +0800 He Junyan <junyan.he@intel.com>
961 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
962 * gst-libs/gst/vaapi/gstvaapiprofile.c:
963 * gst-libs/gst/vaapi/gstvaapiprofile.h:
964 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
965 * gst-libs/gst/vaapi/video-format.c:
966 * gst/vaapi/gstvaapidecode.c:
967 libs: decoder: H265: Add MAIN_444_12 profile supporting.
968 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
970 2020-07-30 23:13:10 +0800 He Junyan <junyan.he@intel.com>
972 * gst-libs/gst/vaapi/gstvaapiimage.c:
973 * gst-libs/gst/vaapi/video-format.c:
974 * gst-libs/gst/vaapi/video-format.h:
975 video-format: Add Y412_LE format.
976 It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
977 also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
979 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
981 2020-09-17 16:47:43 +0800 He Junyan <junyan.he@intel.com>
983 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
984 libs: decoder: h265: fill missing predictor_palette_size field.
985 The predictor_palette_size of VAPictureParameterBufferHEVCScc is
986 forgotten and need to be filled when streams have palettes.
987 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>
989 2020-09-17 15:35:11 +0800 He Junyan <junyan.he@intel.com>
991 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
992 libs: utils: h265: Use get_profile_from_sps to get profile.
993 We now use gst_h265_get_profile_from_sps() to replace the old way
994 of gst_h265_profile_tier_level_get_profile() to get more precise
995 profile. The new function consider the unstandard cases and give
996 a more suitable profile decision.
997 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>
999 2020-10-19 13:46:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1001 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1002 libs: decoder: vp9: 0xff segment pred probs if no temporal update
1003 According to the spec (6.2.11 Segmentation params syntax)
1004 segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
1005 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
1007 2020-10-19 13:42:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1009 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1010 libs: decoder: vp9: avoid reference rewriting
1011 The removed code set all the reference frames to the current frame it is a key
1012 one, but later, all the reference frames were rewritten with the decoded picture
1013 buffers or VA_INVALID_SURFACE if they were not available.
1014 Basically, all this time the first reference frame assignment has been ignored,
1015 and it's not described by the spec, and this patch removes that code.
1016 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
1018 2020-09-20 09:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1020 * gst/vaapi/gstvaapidecode.c:
1021 decoder: don't reply src caps query with allowed if pad is fixed
1022 If the pad is already fixed the caps query have to be reply with the
1023 current fixed caps. Otherwise the query has to be replied with the
1024 autogeneratd src caps.
1025 This path fix this by falling back to the normal caps query processing
1026 if the pad is already fixed. Otherwise it will fetch the allowed src
1028 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>
1030 2020-09-15 00:11:30 +0800 He Junyan <junyan.he@intel.com>
1032 * gst/vaapi/gstvaapidecode.c:
1033 plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
1034 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>
1036 2020-09-01 09:31:33 +0200 Marc Leeman <m.leeman@televic.com>
1038 * gst/vaapi/gstvaapisink.c:
1039 vaapisink: when updating the caps, reset rotation
1040 When an element upstream changes settings (e.g. crop), new caps are sent
1041 to vaapisink. When vaapisink was rotating the image, it needs to
1042 re-evaluate if the sink needs to rotate the image.
1043 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>
1045 2020-09-08 17:31:02 +0100 Tim-Philipp Müller <tim@centricular.com>
1048 ci: include template from gst-ci master branch again
1050 2020-09-08 16:59:07 +0100 Tim-Philipp Müller <tim@centricular.com>
1055 === release 1.18.0 ===
1057 2020-09-08 00:09:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1063 * gstreamer-vaapi.doap:
1067 2020-09-07 12:15:43 +0300 Sebastian Dröge <sebastian@centricular.com>
1069 * gst-libs/gst/vaapi/gstvaapifilter.c:
1070 Update for gst_video_transfer_function_*() function renaming
1071 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>
1073 2020-08-22 12:53:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1075 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1076 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1077 Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
1078 This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
1079 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e
1081 === release 1.17.90 ===
1083 2020-08-20 16:16:25 +0100 Tim-Philipp Müller <tim@centricular.com>
1088 * gstreamer-vaapi.doap:
1092 2020-08-17 11:43:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1094 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
1095 libs: surface: egl: guard memory type
1096 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>
1098 2020-08-17 19:26:43 +0800 He Junyan <junyan.he@intel.com>
1100 * gst/vaapi/gstvaapidecode.c:
1101 plugin: decode: Fix two mem leaks because of caps.
1102 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>
1104 2020-08-16 01:57:15 +0800 He Junyan <junyan.he@intel.com>
1106 * gst/vaapi/gstvaapivideomemory.c:
1107 plugin: allocator: No need to ref allocator when create mem.
1108 We do not need to ref the allocator when creating GstVaapiVideoMemory
1109 kind memory, and then release it in _free(). The framework already
1111 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>
1113 2020-08-14 10:42:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1115 * gst/vaapi/gstvaapiencode_h264.c:
1116 vaapiencode: h264: ignore level without breaking negotiation
1117 Since commit 9f627ef2 if the user sets level in the encoder src caps
1118 the caps negotiation is rejected.
1119 But since the same commit the same encoder set the autoconfigured
1120 level in caps. Some change in the base class might fixed the operation
1121 order so now the caps are set and later negotiated.
1122 This patch removes the level check.
1124 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>
1126 2019-07-09 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1128 * gst-libs/gst/vaapi/egl_vtable.h:
1129 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
1130 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
1131 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
1132 libs: egl: surface: export EGLImage as DMABuf if GEM not supported
1133 This code path is used when frames are rendered as textures through
1134 GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
1135 Originally the EGLImage was exported as GEM, which was handled by
1136 Intel drivers, but Gallium ones cannot create VA surfaces from
1137 GEM buffers, only DMABuf.
1138 This patch checks the memory types supported by VA driver to choose
1139 the render the EGLImages from GEM or DMABuf, because GEM is still
1140 better where supported.
1141 DMABuf is well handled either by intel-vaapi-driver and gallium.
1143 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
1145 2020-05-26 16:18:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1147 * gst-libs/gst/vaapi/gstvaapifilter.c:
1148 * gst-libs/gst/vaapi/gstvaapifilter.h:
1149 libs: filter: gst_vaapi_filter_get_memory_types()
1150 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
1152 2020-08-12 18:48:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1154 * gst/vaapi/gstvaapipluginbase.c:
1155 * gst/vaapi/gstvaapipluginbase.h:
1156 plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
1157 Since nobody uses it, just remove it.
1158 Thus extract_allowed_surface_formats() is refactored to attend only
1159 gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
1160 Now a surface is created when the image chorma is different from the
1161 previous one. And if the driver has the quirk, it outputs all the
1162 supported image formats without trying them.
1163 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
1165 2020-08-12 17:50:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1167 * gst/vaapi/gstvaapidecode.c:
1168 vaapidecode: expose raw src caps with same chroma
1169 The try-and-error approach for getting the possible image formats from
1170 a surface has brought several problems in different drivers, from
1171 crashes to drop in performance.
1172 Instead of that we change the algorithm to determine the possible
1173 image formats based in the surface chroma: only those available image
1174 formats with same chroma are exposed as possible raw caps.
1175 Do this is important to avoid performance degrading in raw sinks
1176 which doesn't handle NV12 but it does YV12 or I420.
1177 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
1179 2020-07-10 17:05:38 +0800 He Junyan <junyan.he@intel.com>
1181 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1182 libs: util: h265: use common parser API to get vaapi profiles.
1183 We can reuse H265 parser's API to recognize the correct profile and
1184 then just need to convert them to VAAPI profiles.
1185 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>
1187 2020-08-07 16:41:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1189 * gst-libs/gst/vaapi/meson.build:
1190 * gst/vaapi/meson.build:
1192 build: update for gl pkg-config file split
1193 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>
1195 2020-08-06 12:51:27 +0800 Xu Guangxin <guangxin.xu@intel.com>
1197 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1198 h264dec: mark remaining frames as unreference before exec_picture_refs_modification
1199 8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
1200 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>
1202 2020-07-31 18:22:46 +0800 He Junyan <junyan.he@intel.com>
1204 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1205 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1206 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1207 libs: encoder: H265: Enable Main 12 profile support.
1208 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
1210 2020-07-31 19:17:39 +0800 He Junyan <junyan.he@intel.com>
1212 * gst-libs/gst/vaapi/video-format.c:
1213 video format: Fix P012_LE's chrome type typo.
1214 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
1216 2020-08-04 21:15:01 +0300 Jordan Petridis <jordan@centricular.com>
1218 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
1219 gstvaapiminiobject.c: fix clang 10 warnings
1220 the typesystem checks in g_atomic_pointer_compare_and_exchange
1221 seem to trigger some false positives with clang 10
1222 similar to gstreamer!584
1223 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>
1225 2020-07-31 11:07:23 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1227 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1228 libs: window: wayland: destroy all wayland buffers during finalize
1229 Some buffers and the associated FrameState state may still be pending at
1230 that point. If the wayland connection is shared, then messages for the
1231 buffer may still arrive. However, the associated event queue is already
1232 deleted. So the result is a crash.
1233 With a private connection the associated memory is leaked instead.
1234 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1236 2020-06-18 20:25:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1238 * tests/examples/test-vaapicontext.c:
1239 test: vaapicontext: fix draw callback with multiple videos
1240 The callback is called for both windows. So make sure that
1241 gst_video_overlay_set_render_rectangle() is called for the correct one.
1242 Otherwise, the left video will be randomly moved behind the right video.
1243 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1245 2020-06-19 09:23:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1247 * tests/examples/meson.build:
1248 * tests/examples/test-vaapicontext.c:
1249 test: vaapicontext: support wayland display
1250 On Wayland, The whole gtk window is one Wayland surface. So
1251 gtk_widget_get_window() must be called on the top-level widget.
1252 For any other widget the following gdk_window_ensure_native() may create a
1253 new top-level Wayland surface that is never visible.
1254 As a result, the coordinates passed to
1255 gst_video_overlay_set_render_rectangle() must be relativ to the top-level
1256 window. Otherwise the video is placed incorrectly.
1257 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1258 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1260 2017-12-01 20:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1262 * tests/examples/test-vaapicontext.c:
1263 test: vaapicontext: use playbin to test files
1264 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1266 2017-11-29 11:11:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1268 * tests/examples/test-vaapicontext.c:
1269 test: vaapicontext: add PLAY and NULL buttons
1270 They only appear when only one sink is instanciated and their purpose
1271 is to test the NULL-PLAY use case in context sharing.
1272 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1274 2020-06-19 21:26:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1276 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1277 libs: wayland: update the opaque region in set_render_rect
1278 gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
1279 thread. That thread may be responsible for making the window visible.
1280 At that point another thread will block in gst_vaapi_window_wayland_sync()
1281 because the frame callback will not be called until the window is visible.
1282 If that happens, then acquiring the display lock in
1283 gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
1284 Cache the size of the opaque rectangle separately and create the opaque
1285 region right before applying it to the surface.
1286 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1288 2020-06-19 09:21:16 +0200 Hyunjun Ko <zzoon@igalia.com>
1290 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1291 * gst-libs/gst/vaapi/gstvaapiwindow.h:
1292 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1293 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1294 * gst/vaapi/gstvaapisink.c:
1295 libs: window: implements gst_vaapi_window_set_render_rectangle
1296 Implements new vmethod gst_vaapi_window_set_render_rectangle,
1297 which is doing set the information of the rendered rectangle set by
1299 This is necessary on wayland at least to get exact information of
1301 And vaapisink calls this when gst_video_overlay_set_render_rectangle is
1303 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1305 2017-11-08 13:23:39 +0900 Hyunjun Ko <zzoon@igalia.com>
1307 * gst/vaapi/gstvaapisink.c:
1308 vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
1309 Implements gst_vaapisink_wayland_create_window_from_handle() to support
1310 using external wl_surface.
1311 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1313 2020-06-19 09:11:20 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1315 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1316 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1317 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1318 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1319 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
1320 libs: wayland: implement video overlay API
1321 The Wayland sub-surfaces API is used to embed the video into an application
1323 See Appendix A. Wayland Protocol Specification as the following.
1325 The aim of sub-surfaces is to offload some of the compositing work
1326 within a window from clients to the compositor. A prime example is
1327 a video player with decorations and video in separate wl_surface
1329 This should allow the compositor to pass YUV video buffer processing to
1330 dedicated overlay hardware when possible.
1332 Added new method gst_vaapi_window_wayland_new_with_surface()
1333 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1334 Zhao Halley <halley.zhao@intel.com>
1335 changzhix.wei@intel.com
1336 Hyunjun Ko <zzoon@igalia.com>
1337 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1339 2020-06-19 21:54:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1341 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1342 doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
1343 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1345 2020-06-11 08:25:57 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1347 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1348 libs: display: always call close_display()
1349 All close_display() have their own checks for use_foreign_display and only
1350 destroy locally created objects in that case.
1351 Without this objects other than the actuall foreign display itself are
1353 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1355 2020-07-30 23:37:10 +0800 He Junyan <junyan.he@intel.com>
1357 * gst-libs/gst/vaapi/video-format.h:
1358 video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
1359 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>
1361 2020-05-25 17:02:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1363 * gst/vaapi/gstvaapidecode.c:
1364 * gst/vaapi/gstvaapipluginutil.c:
1365 * gst/vaapi/gstvaapipluginutil.h:
1366 plugins: add gst_vaapi_caps_set_width_and_height_range()
1367 This utility function is called internally by
1368 gst_vaapi_build_caps_from_formats() and can be used outside.
1369 This function sets frame size and framerates ranges.
1370 Also gst_vaapi_build_caps_from_formats() is simplified.
1371 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>
1373 2020-07-31 15:27:38 +0800 He Junyan <junyan.he@intel.com>
1375 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1376 libs: decoder: fix a crash issue when get_surface_formats.
1377 Some context does not report any valid format that we can support.
1378 For example, the HEVC 444 12 bits decoder context, all the formats
1379 it reports is not supported now, which make the formats list a NULL
1380 array. We should check that pointer before we use it.
1381 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>
1383 2020-07-03 19:28:28 +0800 He Junyan <junyan.he@intel.com>
1385 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1386 libs: encoder: h265: choose the profile based on allowed list.
1387 We can decide the profile in ensure_profile(), based on allowed list
1388 passed by the encode. We also need to check whether the entrypoint is
1389 available. Once it is decided, no need to check the hw entrypoint
1391 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1393 2020-07-29 22:05:41 +0800 He Junyan <junyan.he@intel.com>
1395 * gst/vaapi/gstvaapiencode_h265.c:
1396 plugins: encode: h265: set all allowed profiles to encoder.
1397 We should collect all allowed profiles and pass them to the inside
1398 encoder, rather than just calculate the max profile idc.
1399 The allowed profiles should also be supported by the HW.
1400 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1402 2020-07-29 22:32:55 +0800 He Junyan <junyan.he@intel.com>
1404 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1405 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1406 libs: display: Add a helper function to get profiles by codec.
1407 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1409 2020-07-03 01:28:28 +0800 He Junyan <junyan.he@intel.com>
1411 * gst/vaapi/gstvaapiencode_h265.c:
1412 plugins: encode: h265: collect all allowed profiles to encoder.
1413 We should collect all allowed profiles and pass them to the inside
1414 encoder, rather than just calculate the max profile idc.
1415 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1417 2020-07-03 00:53:31 +0800 He Junyan <junyan.he@intel.com>
1419 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1420 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1421 * gst/vaapi/gstvaapiencode_h265.c:
1422 libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
1423 In h265, bigger profile idc may not be compatible with the small profile
1424 idc. And more important, there are multi profiles with the same profile
1425 idc. Such as main-422-10, main-444 and main-444-10, they all have profile
1427 So recording the max profile idc is not enough, the encoder needs to know
1428 all allowed profiles when deciding the real profile.
1429 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1431 2020-07-02 23:33:31 +0800 He Junyan <junyan.he@intel.com>
1433 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1434 libs: encoder: h265: No need to check hw_max_profile.
1435 In h265, higher profile idc number does not mean better compression
1436 performance and may be not compatible with the lower profile idc.
1437 So, it is not suitable to find the heighest idc for hw to ensure the
1439 On the other side, when the entrypoint of the selected profile is valid,
1440 it means the hw really support this profile, no need to check it again.
1441 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1443 2020-04-08 19:41:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1445 * gst/vaapi/gstvaapipostproc.c:
1446 vaapipostproc: early return if fixate srcpad caps fails
1447 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>
1449 2020-07-29 13:39:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1451 * gst/vaapi/gstvaapipluginutil.c:
1452 vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
1453 Generalize the way how the preferred color format is chosen. Also
1454 use new GStreamre API as syntatic sugar.
1455 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>
1457 2020-07-29 14:22:18 +0800 He Junyan <junyan.he@intel.com>
1459 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1460 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1461 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1462 * gst/vaapi/gstvaapidecode.c:
1463 * gst/vaapi/gstvaapiencode.c:
1464 libs: profile: Use get_codec_from_caps to get codec type.
1465 There is no need to get a profile from the caps and then convert
1466 that profile into codec type. We can get the codec type by caps's
1468 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1470 2020-07-12 19:42:40 +0800 He Junyan <junyan.he@intel.com>
1472 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1473 libs: profile: h265: Fix return value of from_codec_data_h265.
1474 profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
1475 The codec data of caps contain the profile IDC, but the mapping between
1476 profile IDC and GstVaapiProfile is wrong.
1477 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1479 2020-07-07 00:46:23 +0800 He Junyan <junyan.he@intel.com>
1481 * gst/vaapi/gstvaapiencode_vp9.c:
1482 plugins: encode: vp9: Implement vp9's allowed_profiles() func.
1483 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1485 2020-07-08 16:30:17 +0800 He Junyan <junyan.he@intel.com>
1487 * gst/vaapi/gstvaapiencode_h264.c:
1488 * gst/vaapi/gstvaapiencode_h265.c:
1489 * gst/vaapi/gstvaapipluginutil.c:
1490 * gst/vaapi/gstvaapipluginutil.h:
1491 plugin: util: rename h26x_encoder_get_profiles_from_caps().
1492 Change its name to encoder_get_profiles_from_caps(). Other codecs such
1493 as VP9 also needs to use this function.
1494 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1496 2020-07-06 23:35:12 +0800 He Junyan <junyan.he@intel.com>
1498 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
1499 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
1500 * gst-libs/gst/vaapi/meson.build:
1501 libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
1502 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1504 2020-07-29 10:17:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1506 * gst-libs/gst/vaapi/gstvaapicontext.c:
1507 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1508 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1509 libs: display, context: handle broken jpeg decoder for i965 driver
1510 JPEG decoding in i965 driver is pretty much broken, and the driver is
1511 deprecated which mean authors only accept trivial fixes.
1512 Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
1513 format which is not a common format in GStreamer. It can export it to
1514 I420 at mapping raw bytes, but DMABuf exporting is problematic.
1515 This patch artificially adds NV12 to the context format list when it's
1516 JPEG decoder for i965 and force the usage of old VA-API for surface
1517 creation without specifying color format. Also it artificially
1518 disables the DMABuf announcement.
1519 1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
1520 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1522 2020-07-29 12:02:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1524 * gst-libs/gst/vaapi/gstvaapicontext.c:
1525 libs: context: change function to internal code style
1526 Instead of a getter the function `get_preferred_format()` to
1527 `ensure_preferred_format()` which aligns to the code style.
1528 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1530 2020-07-28 20:00:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1532 * gst/vaapi/gstvaapidecode.c:
1533 vaapidecode: always merge profile caps in sink caps
1534 This commit fixes a regression of e962069d, where if the profile's
1535 caps doesn't have a caps profile, it's ignored.
1536 This patch add a conditional jump if the caps doesn't have a profile
1539 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>
1541 2020-07-28 12:22:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1544 build: request libdrm >= 2.4.98 and fallback
1546 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>
1548 2020-05-18 17:32:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1550 * gst/vaapi/gstvaapidecode.c:
1551 vaapidecode: dma caps only use reported color format
1552 This fix pipelines without vaapipostproc after vaapi decoder, such as
1553 gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
1554 On EGL platforms, so DMABuf is used.
1555 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1557 2020-02-07 17:10:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1559 * gst/vaapi/gstvaapidecode.c:
1560 vaapidecode: use allowed srcpad caps for caps query
1561 Instead of using just the template caps use the current allowed
1562 srcpad caps, which is created considering the current decoder
1564 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1566 2020-01-22 17:41:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1568 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1569 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1570 * gst/vaapi/gstvaapidecode.c:
1571 vaapidecode: build allowed srcpad caps from va context
1572 Instead of generating allowed srcpad caps with generic information,
1573 now it takes the size an formats limits from the decoder's context.
1574 This is possible since srcpad caps are generated after the internal
1576 The patch replaces gst_vaapi_decoder_get_surface_formats() with
1577 gst_vaapi_decoder_get_suface_attributes().
1578 From these attributes, formats are only used for VASurface memory
1579 caps feature. For system memory caps feature, the old
1580 gst_vaapi_plugin_get_allowed_srcpad_caps() is still used, since
1581 i965 jpeg decoder cannot deliver mappable format for gstreamer.
1582 And for the other caps features (dmabuf and texture upload) the
1583 same static list are used.
1584 This patch also adds DMABuf caps feature only if the context
1585 supports that memory type. Nonetheless, we keep the pre-defined
1586 formats since they are the subset of common derive formats formats
1587 supported either by amd/gallium and both intel drivers, since,
1588 when exporting the fd through vaAcquireBufferHandle()/
1589 vaReleaseBufferHandle(), the formats of the derivable image cannot
1590 be retriebable from the driver. Later we'll use the attribute
1591 formats for the DMABuf feature too, when the code be ported to
1592 vaExportSurfaceHandle().
1593 Finally, the allowed srcpad caps are removed if the internal decoder
1594 is destroyed, since context attribues will change.
1595 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1597 2020-02-07 16:50:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1599 * gst/vaapi/gstvaapidecode.c:
1600 vaapidecode: reorder src caps template
1601 Since negotiation depends on caps order, first is VA, then DMABuf,
1602 later GLUploadTexture (deprecated) and finally raw.
1603 Also, for decoders, the possible available color formats for DMABuf
1604 is extended to all the possible VA color formats.
1605 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1607 2020-07-22 10:01:41 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1609 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1610 libs: window: wayland: use dmabuf protocol if available
1611 Currently vaGetSurfaceBufferWl() is used to create wayland buffers.
1612 Unfortunately this is not implemented by the 'media-driver' and Mesa VA-API
1613 drivers. And the implementation provided by 'intel-vaapi-driver' is not
1614 compatible with a Wayland server that uses the iris Mesa driver.
1615 So create the Wayland buffers manually with the zwp_linux_dmabuf_v1 wayland
1616 protocol. Formats and modifiers supported by the Wayland server are taken
1617 into account. If necessary, VPP is enabled to convert the buffer into a
1619 Fall back to vaGetSurfaceBufferWl() if creating buffers via dambuf protocol
1621 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1623 2020-07-21 10:03:19 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1625 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1626 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1627 libs: window: allow choosing the format for the vpp pool
1628 Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1629 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1631 2020-06-28 17:42:29 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1633 * gst-libs/gst/vaapi/video-format.c:
1634 * gst-libs/gst/vaapi/video-format.h:
1635 video-format: add DRM formats to the mapping table
1636 This will be needed for the DMABuf protocol support to map DRM formats to
1637 vaapi and gstreamer formats.
1638 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1640 2020-07-22 09:36:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1642 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1643 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1644 * gst-libs/gst/vaapi/meson.build:
1645 libs: display: wayland: add basic dmabuf protocol support
1646 This is just the basic infrastructure. Hook up the interface and collect
1647 all supported formats.
1648 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1650 2020-07-06 09:59:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1652 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1653 libs: window: wayland: wait for configure before committing the first buffer
1654 Committing the first buffer for a surface must not be done before
1655 ack_configure() has been sent for the xdg_surface.
1656 With weston, the commit will fail with "error 3: xdg_surface has never been
1658 Wait in gst_vaapi_window_wayland_show() until configure is done to avoid
1660 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1662 2020-07-01 14:50:51 +0800 He Junyan <junyan.he@hotmail.com>
1664 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1665 libs: encoder: h265: set no P frame automatically.
1666 The double reference lists may be required by drivers and there should
1667 be no P frames in the of stream. The old way of converting P frames to
1668 B frames is by setting `low-delay-b` property, which is unconvenient
1669 and has bad user experience, since most of the users do not know when
1670 to set this property, and if it is not set correctly, the encoding
1671 pipeline fails or even hangs on some platforms. VA driver now provides
1672 a attribute to query whether both reference lists must be un-NULL for
1673 a profile/entrypoint pair.
1674 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1676 2020-04-15 16:26:55 +0800 He Junyan <junyan.he@hotmail.com>
1678 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1679 libs: encoder: h265: Deprecate the low-delay-b property.
1680 In HEVC, P and B definitions are different from AVC: P frames have
1681 just one reference list and so 1 MV, while B frames have two reference
1682 lists and so 2 MVs. No matter B or P, ist reference lists can contain
1683 forward/backward reference. So P and B can both have bi-directions
1684 dependency, the difference is just their reference list
1685 number (i.e. MV number). This is different from the AVC.
1686 The *low delay b mode* refers to a special HEVC mode, in which the
1687 stream just contain I and B frames, without P frames, and all B frames
1688 only have forward direction dependencies (i.e. all inter frames have 2
1689 reference lists but no backward reference in both lists). This is
1690 similar to AVC I/P mode, but changing the P to the forward dependent
1692 The `low-delay-b` property is now just used to simply convert all P
1693 frames to B frames when driver does not support P frames (so both
1694 reference lists have the same references frames). This is a little
1695 different from the meaning of low delay b mode (the two ref lists may
1696 have the different reference frames). And the driver now can report
1697 whether it supports P frames correctly, so there is no need to use
1698 this property and deprecate it.
1699 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1701 2020-07-24 12:54:31 +0200 Marc Leeman <m.leeman@televic.com>
1703 * gst/vaapi/gstvaapipostproc.c:
1704 postproc: reconfigure after changing cropping values
1705 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/365>
1707 2020-07-09 13:49:29 +0800 He Junyan <junyan.he@intel.com>
1709 * gst/vaapi/gstvaapiencode.h:
1710 * gst/vaapi/gstvaapiencode_h264.c:
1711 * gst/vaapi/gstvaapiencode_h265.c:
1712 * gst/vaapi/gstvaapiencode_jpeg.c:
1713 * gst/vaapi/gstvaapiencode_mpeg2.c:
1714 * gst/vaapi/gstvaapiencode_vp8.c:
1715 * gst/vaapi/gstvaapiencode_vp9.c:
1716 plugin: encode: Add static caps for template documentation.
1717 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1719 2020-07-08 19:03:14 +0800 He Junyan <junyan.he@intel.com>
1721 * gst/vaapi/gstvaapiencode_vp9.c:
1722 plugin: encode: vp9: Use the dynamically built src template caps.
1723 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1725 2020-07-08 19:02:45 +0800 He Junyan <junyan.he@intel.com>
1727 * gst/vaapi/gstvaapiencode_vp8.c:
1728 plugin: encode: vp8: Use the dynamically built src template caps.
1729 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1731 2020-07-08 19:02:23 +0800 He Junyan <junyan.he@intel.com>
1733 * gst/vaapi/gstvaapiencode_jpeg.c:
1734 plugin: encode: jpeg: Use the dynamically built src template caps.
1735 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1737 2020-07-08 19:00:39 +0800 He Junyan <junyan.he@intel.com>
1739 * gst/vaapi/gstvaapiencode_mpeg2.c:
1740 plugin: encode: mpeg2: Use the dynamically built src template caps.
1741 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1743 2020-07-08 18:59:18 +0800 He Junyan <junyan.he@intel.com>
1745 * gst/vaapi/gstvaapiencode_h265.c:
1746 plugin: encode: h265: Use the dynamically built src template caps.
1747 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1749 2020-07-08 18:57:26 +0800 He Junyan <junyan.he@intel.com>
1751 * gst/vaapi/gstvaapiencode_h264.c:
1752 plugin: encode: h264: Use the dynamically built src template caps.
1753 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1755 2020-07-08 18:46:58 +0800 He Junyan <junyan.he@intel.com>
1757 * gst/vaapi/gstvaapiencode.h:
1758 * gst/vaapi/gstvaapiencode_h264.c:
1759 * gst/vaapi/gstvaapiencode_h265.c:
1760 * gst/vaapi/gstvaapiencode_jpeg.c:
1761 * gst/vaapi/gstvaapiencode_mpeg2.c:
1762 * gst/vaapi/gstvaapiencode_vp8.c:
1763 * gst/vaapi/gstvaapiencode_vp9.c:
1764 plugin: encode: Store the coded caps in type's init data.
1765 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1767 2020-07-08 18:30:00 +0800 He Junyan <junyan.he@intel.com>
1769 * gst/vaapi/gstvaapipluginutil.c:
1770 * gst/vaapi/gstvaapipluginutil.h:
1771 plugin: util: add helper function build_template_coded_caps_by_codec()
1772 Like build_template_raw_caps_by_codec(), this function can detect and
1773 build the caps for specified codec based on the query of the profiles.
1774 The result is coded caps such as video/x-h265, video/x-h264. The result
1775 can be used as the template of encode's src or decode's sink.
1776 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1778 2020-07-07 17:16:41 +0800 He Junyan <junyan.he@intel.com>
1780 * gst/vaapi/gstvaapiencode.h:
1781 * gst/vaapi/gstvaapipluginutil.c:
1782 * gst/vaapi/gstvaapipluginutil.h:
1783 plugins: utils: rename build_template_caps_by_codec.
1784 Rename the function build_template_caps_by_codec() to the name of
1785 build_template_raw_caps_by_codec(). It can be used to collect all
1786 raw video formats for encode's sink and decode's src.
1787 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1789 2020-07-21 20:14:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1791 * gst/vaapi/gstvaapidecode.c:
1792 * gst/vaapi/gstvaapipluginutil.c:
1793 * gst/vaapi/gstvaapipluginutil.h:
1794 vaapidecode: merge common profiles before setting size range
1795 The synthetic profiles, such as H264 baseline, H265 intra, etc. are
1796 added at the end of processing all available VA profiles. This
1797 generated an non-optimal caps for negotiation, since the synthetic
1798 profiles don't have frame size ranges.
1799 This patch adds those possible synthetic profiles when the associated
1800 profile is processed, with its frame size ranges.
1801 Now allowed sink caps are simpler.
1802 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/363>
1804 2020-07-21 22:05:08 +0800 He Junyan <junyan.he@intel.com>
1806 * gst/vaapi/gstvaapipluginutil.c:
1807 plugin: util: Add the missing DMA buffer input in template caps.
1808 We pass the wrong parameter to gst_vaapi_build_caps_from_formats()
1809 and lose the DMA feature in caps.
1810 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/362>
1812 2020-07-14 18:13:56 +0800 He Junyan <junyan.he@intel.com>
1814 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1815 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1816 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1817 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1818 * gst-libs/gst/vaapi/video-format.c:
1819 * gst/vaapi/gstvaapidecode.c:
1820 libs: decoder: H265: Add MAIN_12 profile supporting.
1821 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1823 2020-07-09 23:07:38 +0800 He Junyan <junyan.he@intel.com>
1825 * gst-libs/gst/vaapi/gstvaapiimage.c:
1826 * gst-libs/gst/vaapi/video-format.c:
1827 video-format: Add P012_LE format.
1828 It can be used as HEVC YUV_4:2:0 12bits stream's decoder output, and
1829 also can be used as the input format for encoding HEVC YUV_4:2:0 12bits
1831 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1833 2020-07-17 00:45:53 +0800 He Junyan <junyan.he@intel.com>
1835 * gst/vaapi/gstvaapidecode.c:
1836 plugin: decode: correct ensure_allowed_sinkpad_caps's caps.
1837 The decode allowed caps returned by ensure_allowed_sinkpad_caps()
1838 contains all profiles of the whole VAAPI, like:
1839 image/jpeg, width=(int)[ 0, 1638 4 ], height=(int)[ 0, 16384 ];
1840 video/mpeg, mpegversion=(int)2, profile=(string){ simple, main },
1841 width=(int)[ 0, 2048 ], height=(int)[ 0, 2048 ]; video/x-h264,
1842 profile=(string){ main, high, constrained-baseline }, width=(int)[ 0,
1843 4096 ], height=(int)[ 0, 4096 ]; video/x-h264, profile=(string){
1844 constrained-high, progressive-high, baseline }; video/x-h265,
1845 profile=(string){ main, main-intra }, width=(int)[ 0, 8192 ],
1846 height=(int)[ 0, 8192 ]; video/x-vp8, width=(int)[ 0, 4096 ],
1847 height=(int)[ 0, 4096 ]; video/x-wmv, wmvversion=(int)3,
1848 format=(string)WVC1, profile=(string)advanced, width=(int)[ 0, 3840 ],
1849 height=(int)[ 0, 3840 ]; video/x-wmv, wmvversion=(int)3,
1850 profile=(string){ simple, main }, width=(int)[ 0, 3840 ],
1851 height=(int)[ 0, 3840 ]
1852 Which is verbose and may have latent problems. It should only contains
1853 the profiles belong to its codec type. For example, h265 should only
1855 video/x-h265, profile=(string){ main, main-intra },
1856 width=(int)[ 0, 8192 ], height=(int)[ 0, 8192 ]
1857 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/361>
1859 2020-07-13 11:06:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1861 * gst/vaapi/gstvaapidecodebin.c:
1862 vaapidecodebin: don't force NV12 since P010_10LE is now possible
1863 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/360>
1865 2020-07-12 20:34:31 +0800 He Junyan <junyan.he@intel.com>
1867 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1868 libs: profile: The VP9 profiles' name should be just "0,1,2,3"
1869 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/357>
1871 2020-07-08 17:33:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1873 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1874 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1875 * gst/vaapi/gstvaapidecode.c:
1876 * gst/vaapi/gstvaapidecode.h:
1877 * tests/internal/simple-decoder.c:
1878 vaapidecode: Remove NO_SURFACE error handling
1879 Since surfaces are not bounded to decoding context it makes no sense
1880 to keep the surface semaphore. This patch removes the handling of
1882 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1884 2020-07-08 17:48:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1886 * gst/vaapi/gstvaapidecode.c:
1887 * gst/vaapi/gstvaapidecode.h:
1888 Revert "vaapidecode: drop non-keyframe in reverse playback"
1889 Since the number of surfaces are not bounded to decoder context,
1890 this hack is no longer needed.
1891 This reverts commit 19c0c8a97385ce119440c4aad2d689fc79297435.
1892 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1894 2019-12-06 14:21:33 +0800 He Junyan <junyan.he@hotmail.com>
1896 * gst-libs/gst/vaapi/gstvaapicontext.c:
1897 libs: decoder: context: remove surfaces binding from context.
1898 The vaCreateContext do not need to specify the surfaces for the
1899 context creation now. So we do not need to bind any surface to the
1900 context anymore. Surfaces should be the resource belong to display
1901 and just be used in encoder/decoder context.
1902 The previous manner has big limitation for decoder. The context's
1903 surface number is decided by dpb size. All the surfaces in dpb will
1904 be attached to a gstbuffer and be pushed to down stream, and the
1905 decoder need to wait down stream free the surface and go on if not
1906 enough surface available. For more and more use cases, this causes
1907 deadlock. For example,
1908 gst-launch-1.0 filesrc location=a.h264 ! h264parse ! vaapih264dec
1909 ! x264enc ! filesink location=./output.h264
1910 will cause deadlock and make the whole pipeline hang.
1911 the x264enc encoder need to cache more than dpb size surfaces.
1912 The best solution is seperating the surfaces number and the dpb size.
1913 dpb and dpb size shoule be virtual concepts maintained by the decoder.
1914 And let the surfaces_pool in context maintain the re-use of all surfaces.
1915 For encoder, the situation is better, all the surfaces are just used
1916 as reference frame and no need to be pushed to down stream. We can
1917 just reserve and set the capacity of the surfaces_pool to meet the
1921 Co-Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1922 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1924 2020-07-08 17:50:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1927 * scripts/extract-release-date-from-doap-file.py:
1928 meson: set release date from .doap file for releases
1929 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/355>
1931 2020-07-08 11:57:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1933 * gst/vaapi/gstvaapipluginbase.c:
1934 plugins: use VA allocator by default on raw caps
1935 Instead of using dmabuf allocator in source pad, when raw video caps
1936 are negotiated, it uses VA allocator as before, since it is stable
1937 in more use cases, for example transcoding, and more backend drivers.
1938 Dmabuf allocator is only used when dmabuf caps feature is negotiated.
1939 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>
1941 2020-06-06 18:47:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1943 * gst/vaapi/gstvaapi.c:
1944 vaapisink: rank it as secondary
1945 iHD doesn't provide a full implemention for rendering surfaces and
1946 i965 has problems in wayland. And I suspect this path is followed
1947 by other driver implementations.
1948 This patch demotes the rank of vaapisink to secondary, so it will
1949 not be autoplugged avoiding bad experience of users.
1950 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/336>
1952 2020-06-19 10:44:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1954 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1955 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1956 libs: decoder: h264, h265: in context at least 16 reference surfaces
1957 Registering only stream's DBP size number of surfaces for decoding VA
1958 surfaces brings issues for certain streams. This change register all
1959 possible number of reference surfaces in a stream, which is 16.
1962 2020-07-04 21:21:57 +0800 He Junyan <junyan.he@intel.com>
1964 * gst/vaapi/gstvaapiencode_h265.c:
1965 plugins: encode: h265: Add profile,level,tier to output caps.
1966 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1968 2020-07-04 21:08:20 +0800 He Junyan <junyan.he@intel.com>
1970 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1971 libs: encoder: h265: init tier to GST_VAAPI_TIER_H265_UNKNOWN.
1972 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1974 2020-07-04 21:05:49 +0800 He Junyan <junyan.he@intel.com>
1976 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1977 libs: encoder: h265: fix a bug to get get_profile_tier_level.
1978 0 is a valid value for h265 tier.
1979 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1981 2020-07-02 19:19:35 +0800 He Junyan <junyan.he@intel.com>
1983 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1984 libs: encoder: h265: no need to check the high compression tune.
1985 The h265 encoder just support tune mode:
1987 (3): low-power - Low power mode
1988 So, no need to check and set the high compression parameters.
1989 And by the way, the current ensure_tuning_high_compression manner
1990 of choosing the hightest profile idc as the best compression profile
1991 is not correct. Unlike h264, in h265 the higher profile idc number
1992 does not mean it has more compression tools, and so it has better
1993 compression performance. It may even be un-compatible with the lower
1994 profile idc. For example, the SCREEN_CONTENT_CODING profile with idc
1995 9 is not compatible with 3D_MAIN profile with idc 8.
1996 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/348>
1998 2020-07-03 02:04:14 +0100 Tim-Philipp Müller <tim@centricular.com>
2003 === release 1.17.2 ===
2005 2020-07-03 00:36:40 +0100 Tim-Philipp Müller <tim@centricular.com>
2010 * gstreamer-vaapi.doap:
2014 2020-06-23 10:20:46 -0400 Thibault Saunier <tsaunier@igalia.com>
2016 * docs/gst_plugins_cache.json:
2017 * gst/vaapi/gstvaapiencode.c:
2018 docs: Mark parent classes as plugin API
2020 2020-06-23 00:07:57 +0200 Mathieu Duponchelle <mathieu@centricular.com>
2023 meson: mark plugins cache target as always stale
2025 2020-06-19 23:34:11 -0400 Thibault Saunier <tsaunier@igalia.com>
2027 * docs/gst_plugins_cache.json:
2028 doc: Stop documenting properties from parents
2030 2020-06-20 00:28:35 +0100 Tim-Philipp Müller <tim@centricular.com>
2035 === release 1.17.1 ===
2037 2020-06-19 19:27:11 +0100 Tim-Philipp Müller <tim@centricular.com>
2042 * gstreamer-vaapi.doap:
2046 2020-06-19 15:21:56 +0100 Tim-Philipp Müller <tim@centricular.com>
2048 * docs/gst_plugins_cache.json:
2049 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2050 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
2051 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
2052 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
2053 Update plugin docs and add more plugins
2054 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
2056 2020-06-11 08:32:05 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
2058 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
2059 libs: wayland: display: only handle the first output
2060 Right now, all outputs are handled. The means that the registry object for
2061 all but the last are leaked. As a result the sizes are not used correctly.
2062 With two outputs, at first the mode and physical size of the second output
2063 are used. If the first output changes the mode, then the physical size of
2064 the second output is used in combination with the resolution of the first
2065 output. The resulting pixel aspect ratio is incorrect.
2066 There seems to be no way to determine on which output the window is shown,
2067 so just use the first one to get consistent results.
2068 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
2070 2020-06-11 18:15:17 +0800 He Junyan <junyan.he@hotmail.com>
2072 * gst/vaapi/gstvaapipluginbase.c:
2073 plugins: pluginbase: Do not destroy display when _close()
2074 When the element's state changes to NULL, it can still receive
2075 queries, such as the image formats. The display is needed in such
2076 queries but not well protected for MT safe.
2077 For example, ensure_allowed_raw_caps() may still use the display
2078 while it is disposed by gst_vaapi_plugin_base_close() because of
2080 We can keep the display until the element is destroyed. When the
2081 state changes to NULL, and then changes to PAUSED again, the display
2082 can be correctly set(if type changes), or leave untouched.
2084 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
2086 2020-06-09 21:19:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2088 * gst-libs/gst/vaapi/gstvaapicontext.c:
2089 libs: context: use correct printing modifier
2090 GstVaapiID is an alias of gsize, thus its modifier is platform
2092 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
2094 2020-06-06 00:42:46 +0200 Mathieu Duponchelle <mathieu@centricular.com>
2096 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2097 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2098 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2099 * gst-libs/gst/vaapi/gstvaapifilter.c:
2100 * gst-libs/gst/vaapi/gstvaapivalue.c:
2101 plugins: uddate gst_type_mark_as_plugin_api() calls
2103 2020-03-05 18:12:27 +0800 He Junyan <junyan.he@hotmail.com>
2105 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2106 libs: encoder: h265: Enable tile in VA command.
2107 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2109 2020-03-05 17:56:51 +0800 He Junyan <junyan.he@hotmail.com>
2111 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2112 libs: encoder: h265: Add ensure_tile to calculate tiles.
2113 We need consider tiles and slices together, separate tiles uniformly
2114 and then assign slices uniformly to each tiles.
2115 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2117 2020-04-30 14:19:29 +0800 He Junyan <junyan.he@hotmail.com>
2119 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2120 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2121 libs: display: add a quirk for iHD driver tile encoding.
2122 The iHD driver has a requirement that one slice can not span tiles
2123 when tile is enabled, which is not required by hevc spec.
2124 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2126 2020-03-05 17:40:43 +0800 He Junyan <junyan.he@hotmail.com>
2128 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2129 libs: encoder: h265: Add tile info to bitstream.
2130 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2132 2020-03-05 17:29:41 +0800 He Junyan <junyan.he@hotmail.com>
2134 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2135 libs: encoder: h265: promote level if tile is enabled.
2136 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2138 2020-03-05 17:07:28 +0800 He Junyan <junyan.he@hotmail.com>
2140 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2141 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
2142 libs: encoder: h265: Add num-tile-cols/rows properties.
2143 These properties are used for support of tile encoding. We just
2144 support uniform mode of tile encoding, that is, separating picture
2145 equally by (num-tile-cols X num-tile-rows).
2146 According to HEVC spec A1, the max number of tiles in column is 20
2147 and in rows is 22, so add two constant definitions.
2148 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2150 2020-03-05 16:21:24 +0800 He Junyan <junyan.he@hotmail.com>
2152 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2153 libs: encoder: h265: extract slice creation from add_slice_headers
2154 extract slice creation details from add_slice_headers, and let the
2155 add_slice_headers just focuses on calculating slice start address
2157 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2159 2020-03-05 12:44:45 +0800 He Junyan <junyan.he@hotmail.com>
2161 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2162 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
2163 libs: encoder: Add a helper function to check the tile support.
2164 Encoding by tiles separation now is a very common feature for all
2165 relative new codecs, such as HEVC, AV1, and VP9. Just make this
2166 check as a common helper function of the encoder base class.
2167 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
2169 2020-05-13 18:02:07 +0800 He Junyan <junyan.he@hotmail.com>
2171 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2172 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2173 * gst-libs/gst/vaapi/gstvaapiprofile.h:
2174 * gst-libs/gst/vaapi/gstvaapiutils.c:
2175 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2176 libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
2177 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2179 2020-05-13 16:05:59 +0800 He Junyan <junyan.he@hotmail.com>
2181 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2182 libs: decoder: update reference list for SCC.
2183 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2185 2020-05-13 15:46:29 +0800 He Junyan <junyan.he@hotmail.com>
2187 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2188 libs: decoder: H265: Fill picture and slice SCC parameters.
2189 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2191 2020-05-13 15:00:53 +0800 He Junyan <junyan.he@hotmail.com>
2193 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2194 libs: util: H265: recognize the SCC profiles.
2195 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2197 2020-05-13 14:53:46 +0800 He Junyan <junyan.he@hotmail.com>
2199 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2200 * gst-libs/gst/vaapi/gstvaapiprofile.h:
2201 * gst-libs/gst/vaapi/gstvaapiutils.c:
2202 libs: profile: Add screen extended main/main10/main444 define.
2203 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
2205 2020-04-03 14:53:40 +0800 He Junyan <junyan.he@hotmail.com>
2207 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2208 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2209 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2210 * gst/vaapi/gstvaapiencode_h265.c:
2211 libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
2212 Using YUY2 as the input of the encoder can generate main 4:2:2 bit
2213 streams and using Y210 as the input of the encoder can generate main
2214 4:2:2 10 bit streams.
2215 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
2217 2020-05-29 16:40:20 +0800 He Junyan <junyan.he@hotmail.com>
2219 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2220 libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
2221 We need to use the chroma_format_idc as the index for getting the
2222 SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
2223 The wrong SubWidthC or SubHeightC make us calculate a wrong right
2224 or bottom offset for crop size and generate garbage in output.
2225 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
2227 2020-05-29 15:37:24 +0800 He Junyan <junyan.he@hotmail.com>
2229 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2230 libs: encoder: h265: Fix chrome idc for 444 10 bits
2231 GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
2232 to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
2233 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
2235 2020-06-03 18:37:22 -0400 Thibault Saunier <tsaunier@igalia.com>
2238 doc: Require hotdoc >= 0.11.0
2240 2020-06-03 18:49:53 -0400 Thibault Saunier <tsaunier@igalia.com>
2242 * gst/vaapi/gstvaapipostproc.c:
2243 doc: Fix wrong link to GstVideoDirectionMethod
2245 2020-06-03 17:38:10 -0400 Thibault Saunier <tsaunier@igalia.com>
2247 * docs/gst_plugins_cache.json:
2248 * meson_options.txt:
2249 docs: Update plugin cache with the new format
2250 And fix the default URL which should not be inside quotes.
2252 2020-06-03 17:37:48 -0400 Thibault Saunier <tsaunier@igalia.com>
2254 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2255 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2256 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2257 * gst-libs/gst/vaapi/gstvaapifilter.c:
2258 * gst-libs/gst/vaapi/gstvaapivalue.c:
2259 * gst/vaapi/gstvaapipostproc.c:
2260 Use gst_type_mark_as_plugin_api() for all non-element plugin types
2262 2020-05-23 22:09:17 +0800 He Junyan <junyan.he@hotmail.com>
2264 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2265 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2266 * gst-libs/gst/vaapi/gstvaapicontext.h:
2267 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2268 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2269 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
2270 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
2271 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
2272 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2273 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
2274 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
2275 * gst-libs/gst/vaapi/gstvaapiimage.h:
2276 * gst-libs/gst/vaapi/gstvaapiobject.c:
2277 * gst-libs/gst/vaapi/gstvaapiobject.h:
2278 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
2279 * gst-libs/gst/vaapi/gstvaapiprofile.h:
2280 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2281 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2282 * gst-libs/gst/vaapi/gstvaapisurface.h:
2283 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
2284 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2285 * gst-libs/gst/vaapi/meson.build:
2286 libs: delete all gstvaapiobject related files.
2287 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2289 2020-05-23 20:48:54 +0800 He Junyan <junyan.he@hotmail.com>
2291 * gst-libs/gst/vaapi/gstvaapisurface.c:
2292 libs: surface: return fail immediately if can not create subpicture
2293 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2295 2020-05-23 14:00:58 +0800 He Junyan <junyan.he@hotmail.com>
2297 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2298 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2299 * gst-libs/gst/vaapi/gstvaapisurface.c:
2300 * tests/internal/image.c:
2301 libs: subpicture: Make subpicture a standard GstMiniObject.
2302 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2304 2020-05-26 02:19:15 +0800 He Junyan <junyan.he@hotmail.com>
2306 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2307 libs: decoder: h264: Add ref flags for splited field.
2308 When split one frame into fields, the second field should also
2309 copy the reference flags.
2310 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
2312 2020-05-25 15:46:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2314 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2315 libs: decoder: h264: disallow multiple slice group
2316 As far as we know there are no VAAPI drivers supporting FMO, which
2317 migth be used in baseline streams.
2318 This commit is a continuation of
2319 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
2320 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
2322 2020-05-20 10:50:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2324 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2325 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2326 * gst/vaapi/gstvaapidecode.c:
2327 * gst/vaapi/gstvaapidecode_props.c:
2328 * gst/vaapi/gstvaapidecode_props.h:
2329 vaapidecoder: h264: remove baseline as constrained property
2330 From now on always the baseline is going to be treated as constrained without
2331 need of setting a property.
2332 Since the property was added along the development cycle (1.17 / commit
2333 866a9f06) and never released, we assume that it is safe to remove it.
2335 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
2337 2020-05-21 11:37:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2340 README: update VP9 decoder and encoder
2341 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
2343 2020-05-21 13:42:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
2345 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2346 vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
2347 This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
2348 so let's align this plugin with other libraries / softwares.
2349 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
2351 2020-05-18 18:29:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2353 * gst/vaapi/gstvaapivideobufferpool.c:
2354 vaapivideobufferpool: fix meta overwrite
2355 commit 7ac2a207 added a regression by erroneously assumed that
2356 GstVaapiVideoMeta is actually a GstMeta, which is not.
2357 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
2359 2020-05-17 09:55:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2361 * gst/vaapi/gstvaapivideobufferpool.c:
2362 * gst/vaapi/gstvaapivideometa_texture.c:
2363 * gst/vaapi/gstvaapivideometa_texture.h:
2364 vaapivideopool: Set pooled flag to added metas.
2365 So this could hint filters how to use these metas.
2366 Had to change the return value for texutre upload meta in order
2368 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
2370 2020-05-16 20:49:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2372 * gst-libs/gst/vaapi/gstvaapicontext.c:
2373 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2374 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2375 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
2376 * gst-libs/gst/vaapi/gstvaapisurface.c:
2377 libs: use array_unref() rather than array_free()
2378 It is more convinience and thread-safe.
2379 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
2381 2020-04-10 22:20:35 +0800 He Junyan <junyan.he@hotmail.com>
2383 * gst/vaapi/gstvaapi.c:
2384 plugin: use register_type to replace get_type for encode init.
2385 xxx_register_type will detect the template sink caps and is needed
2386 to be called at init time.
2387 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2389 2020-04-10 22:05:50 +0800 He Junyan <junyan.he@hotmail.com>
2391 * gst/vaapi/gstvaapiencode_vp9.c:
2392 * gst/vaapi/gstvaapiencode_vp9.h:
2393 plugins: encode: Modify sink template of vp9 encode.
2394 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2395 Also implement gst_vaapiencode_vp9_register_type, which should be
2396 called at plugin register time.
2397 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2399 2020-04-10 22:05:18 +0800 He Junyan <junyan.he@hotmail.com>
2401 * gst/vaapi/gstvaapiencode_vp8.c:
2402 * gst/vaapi/gstvaapiencode_vp8.h:
2403 plugins: encode: Modify sink template of vp8 encode.
2404 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2405 Also implement gst_vaapiencode_vp8_register_type, which should be
2406 called at plugin register time.
2407 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2409 2020-04-10 22:04:34 +0800 He Junyan <junyan.he@hotmail.com>
2411 * gst/vaapi/gstvaapiencode_mpeg2.c:
2412 * gst/vaapi/gstvaapiencode_mpeg2.h:
2413 plugins: encode: Modify sink template of mpeg2 encode.
2414 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2415 Also implement gst_vaapiencode_mpeg2_register_type, which should be
2416 called at plugin register time.
2417 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2419 2020-04-10 22:03:49 +0800 He Junyan <junyan.he@hotmail.com>
2421 * gst/vaapi/gstvaapiencode_h265.c:
2422 * gst/vaapi/gstvaapiencode_h265.h:
2423 plugins: encode: Modify sink template of h265 encode.
2424 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2425 Also implement gst_vaapiencode_h265_register_type, which should be
2426 called at plugin register time.
2427 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2429 2020-04-10 22:00:38 +0800 He Junyan <junyan.he@hotmail.com>
2431 * gst/vaapi/gstvaapiencode_h264.c:
2432 * gst/vaapi/gstvaapiencode_h264.h:
2433 plugins: encode: Modify sink template of h264 encode.
2434 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2435 Also implement gst_vaapiencode_h264_register_type, which should be
2436 called at plugin register time.
2437 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2439 2020-04-10 22:11:34 +0800 He Junyan <junyan.he@hotmail.com>
2441 * gst/vaapi/gstvaapiencode_jpeg.c:
2442 * gst/vaapi/gstvaapiencode_jpeg.h:
2443 plugins: encode: Modify sink template of jpeg encode.
2444 Use gst_vaapi_detect_codec_caps to get more precise template caps.
2445 Also implement gst_vaapiencode_jpeg_register_type, which should be
2446 called at plugin register time.
2447 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2449 2020-04-23 00:02:02 +0800 He Junyan <junyan.he@hotmail.com>
2451 * gst/vaapi/gstvaapiencode.h:
2452 plugin: encode: add a helper macro to register encode type.
2453 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2455 2020-04-10 21:44:05 +0800 He Junyan <junyan.he@hotmail.com>
2457 * gst/vaapi/gstvaapipluginutil.c:
2458 * gst/vaapi/gstvaapipluginutil.h:
2459 plugins: util: Add a helper function to detect supported caps.
2460 This helper function iterate all profiles and entrypoints belong
2461 to the specified codec, query the VAConfigAttribRTFormat and list
2462 all possible video formats.
2463 This function is used by each codec to get the template sink caps
2464 (for encode) or src caps(for decode) at register time, when just
2465 all possible formats are listed and no need to be very accurate.
2466 So there is no context created for the performance reason. Most
2467 codecs just use YUV kinds of formats as the input/output, so we do
2468 not include RGB kinds of formats. User can specified more formats
2469 in extra_fmts(For example, jpeg may need BGRA) if needed.
2470 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2472 2020-04-10 21:27:32 +0800 He Junyan <junyan.he@hotmail.com>
2474 * gst/vaapi/gstvaapiencode.c:
2475 * gst/vaapi/gstvaapipluginutil.c:
2476 * gst/vaapi/gstvaapipluginutil.h:
2477 plugin: encode: extract the allowed caps maker as a helper function.
2478 Extract all logic about making caps for encode's sink as a standalone
2479 helper function. It can be reused.
2480 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2482 2020-04-10 21:21:43 +0800 He Junyan <junyan.he@hotmail.com>
2484 * gst-libs/gst/vaapi/video-format.c:
2485 * gst-libs/gst/vaapi/video-format.h:
2486 libs: video-format: add a helper function of get_formats_by_chroma.
2487 The function iterates all supported video formats and returns the
2488 formats belong to the specified chroma type.
2489 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2491 2020-05-16 21:03:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2493 * gst-libs/gst/vaapi/gstvaapitexture.c:
2494 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2495 libs: texture: remove unused headers include
2496 This is continuation of
2497 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
2498 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
2500 2020-05-16 19:58:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2502 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
2503 * gst-libs/gst/vaapi/gstvaapiimage.h:
2504 * gst-libs/gst/vaapi/gstvaapisurface.h:
2505 libs: removed duplicated function declarations
2506 Some headers had duplicated inlined function declaration. This was
2507 for gtkdoc, but now GStreamer uses hotdoc and the internal library
2508 documentation is not generated. So let's remove these extra lines.
2509 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
2511 2020-04-18 19:32:24 +0800 He Junyan <junyan.he@hotmail.com>
2513 * gst-libs/gst/vaapi/gstvaapitexture.c:
2514 * gst-libs/gst/vaapi/gstvaapitexture.h:
2515 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2516 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
2517 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2518 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
2519 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2520 * gst/vaapi/gstvaapivideometa_texture.c:
2521 * tests/internal/test-textures.c:
2522 libs: texture: Make texture a standard GstMiniObject.
2523 We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
2524 the qdata of miniobject and avoid extending the base texture class.
2525 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
2527 2020-04-26 12:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2531 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
2533 2020-04-21 18:00:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2535 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2536 libs: display: drm: use g_strcmp0 to be null safe
2537 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
2539 2020-04-26 13:30:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
2541 * gst/vaapi/gstvaapipluginutil.c:
2542 vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
2543 We may build this plugin with window system support but run it without
2544 window system. Without this patch, the following pipeline will trigger a
2545 segfault when running it without window system.
2546 gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
2547 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
2549 2020-04-21 11:16:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2552 build: use join_paths() for driverdir
2554 2020-04-21 09:04:51 +0000 Veerabadhran G <vegopala@amd.com>
2557 README: Update supported hardware
2558 Added the AMD hardware list to the "Hardware Requirements" section.
2560 2020-04-04 13:58:00 +0200 He Junyan <junyan.he@hotmail.com>
2562 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2563 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
2564 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2565 libs: bufferproxy: remove GstMemory reference
2566 Since bufferproxy and surface are not referenced circularly, there's
2567 no need to keep, in the buffer proxy, a reference to the GstMemory
2568 where it is held. This patch removes that handling.
2570 2020-03-15 23:29:05 +0800 He Junyan <junyan.he@hotmail.com>
2572 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2573 * gst-libs/gst/vaapi/gstvaapisurface.c:
2574 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2575 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
2576 * gst/vaapi/gstvaapivideomemory.c:
2577 libs,plugin: break surface-bufferproxy circular reference
2578 The bufferproxy may reference the surface and the surface may also
2579 reference the bufferproxy, producing a circular reference, which might
2580 lead to serious resource leak problems.
2581 Now make the relationship clearer, the bufferproxy's references is
2582 transfered to surface, while bufferproxy just keeps the surface's
2583 address without increasing its reference count.
2584 The surface can be created through a bufferproxy like in
2585 gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
2586 get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
2587 both cases the surface holds a bufferproxy's reference.
2589 2020-04-03 18:43:52 +0200 He Junyan <junyan.he@hotmail.com>
2591 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2592 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2593 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2594 libs: bufferproxy: rename parent memeber as surface
2596 2020-03-15 22:07:31 +0800 He Junyan <junyan.he@hotmail.com>
2598 * gst/vaapi/gstvaapivideobufferpool.c:
2599 plugin: bufferpool: use hashmap to cache dmabuf mem-surface
2600 The old way of refer memory by bufferproxy is not a good one, since it
2601 make the logic error prone.
2602 Now it is established a map between surface-bufferproxy and its GstMemory,
2603 caching the memory bound by a surface looked for the specified surface.
2605 2020-03-15 21:50:24 +0800 He Junyan <junyan.he@hotmail.com>
2607 * gst/vaapi/gstvaapivideobufferpool.c:
2608 * gst/vaapi/gstvaapivideobufferpool.h:
2609 plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
2610 Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
2611 In fact, no one is using that flag, and all vaapi buffers should
2612 have GstVaapiVideoMeta.
2614 2020-02-13 09:43:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2616 * gst/vaapi/gstvaapipostproc.c:
2617 * gst/vaapi/gstvaapipostproc.h:
2618 vaapipostproc: enable HDR10 tone mapping
2620 2020-02-13 09:00:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2622 * gst-libs/gst/vaapi/gstvaapifilter.c:
2623 * gst-libs/gst/vaapi/gstvaapifilter.h:
2624 libs: filter: HDR10 tone mapping support
2625 Add support for HDR10 tone mapping (since VA-API 1.4.0).
2627 2020-04-02 15:14:15 +0800 He Junyan <junyan.he@hotmail.com>
2629 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2630 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2631 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2632 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2633 * gst/vaapi/gstvaapiencode_h265.c:
2634 libs: encoder: h265: Support MAIN 4:4:4 10 profile.
2635 Using Y410 as the input of the encoder can generate main_444_10 bit
2638 2020-04-02 15:19:41 +0800 He Junyan <junyan.he@hotmail.com>
2640 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2641 libs: encoder: fix an inexact trace info in chroma type check.
2643 2020-03-31 12:22:31 +0800 Haihao Xiang <haihao.xiang@intel.com>
2645 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2646 libs: encoder: make sure format array is not NULL when returning TRUE
2647 This fixed segfault when running the pipeline below with iHD driver
2648 (commit efe5e9a) on ICL
2649 gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
2652 2020-03-18 13:28:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2654 * gst-libs/gst/vaapi/gstvaapidecoder.h:
2655 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2656 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
2657 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
2658 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
2659 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
2660 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
2661 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
2662 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
2663 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2664 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
2665 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2666 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
2667 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
2668 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2669 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2670 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2671 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2672 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2673 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2674 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2675 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2676 * gst-libs/gst/vaapi/gstvaapifilter.h:
2677 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
2678 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2679 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
2680 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
2681 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
2682 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2683 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
2684 libs: extend g_autoptr support
2686 2020-03-26 22:40:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2688 * gst/vaapi/gstvaapivideometa.c:
2689 vaapivideometa: remove compiler warning
2691 2020-03-22 20:59:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2694 * meson_options.txt:
2695 build: Add meson's option package-origin.
2696 This options is added to synchronize with other gstreamer packages
2697 build configuration.
2698 Though, to avoid breaking distro configuration it is set, as default,
2699 the issues gitlab's url, instead of the used string
2700 "Unkown package origin".
2701 Also, set_quoted is used for string based cdata.
2703 2020-02-25 13:45:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2705 * gst/vaapi/gstvaapipostproc.c:
2706 vaapipostproc: deprecate format, width and size parameters
2707 Since they should only be controlled by caps negotiation.
2709 2020-03-18 16:41:01 +0800 He Junyan <junyan.he@hotmail.com>
2711 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2712 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2713 * gst/vaapi/gstvaapidecode.c:
2714 libs,plugins: decoder: Add -intra profile support for hevc.
2715 In hevc, we can consider the -intra profile a subset of the none
2716 -intra profile. The -intra profiles just contain I frames and we
2717 definitely can use the none -intra profiles's context to decode
2719 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2721 2020-03-04 12:35:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2723 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2724 libs: encoder: h265: support ICQ/QVBR BRC
2725 Enable support for ICQ and QVBR bitrate control.
2726 The code is essentially the same for h264 ICQ/QVBR support
2727 which was added in commit 9e0c133a2403.
2729 2020-03-19 11:19:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2731 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2732 libs: encoder: set VA HRD param before RC param
2733 This is a workaround for intel-media-driver bug
2734 https://github.com/intel/media-driver/issues/865
2735 The driver will force the RC method to CBR for HEVCe
2736 when it parses the HRD param. Thus, any RC method
2737 param submitted "prior" to the HRD param will be lost.
2738 Therefore, VBR, ICQ and QVBR for HEVCe can't be
2739 effectively enabled if the RC method param "precedes"
2741 To work around this issue, set the HRD param before
2742 the RC method param so the driver will parse the RC
2743 method param "after" the HRD param.
2744 Afaict, other codecs in the driver (and other drivers)
2745 do not appear to be dependent on the order of HRD and
2746 RC param submission.
2748 2019-11-25 14:16:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
2750 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2751 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2752 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2753 vaapijpegenc: Add a quantization quirk for iHD driver
2754 iHD driver shifts the value by 50 when calculating quantization for JPEG
2755 encoding, so we should add 50 in this plugin for iHD driver too.
2757 2020-03-13 21:49:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2759 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2760 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
2761 * gst-libs/gst/vaapi/gstvaapipixmap.c:
2762 * gst-libs/gst/vaapi/gstvaapipixmap.h:
2763 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
2764 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
2765 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
2766 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2767 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2768 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2769 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
2770 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2771 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
2772 * gst-libs/gst/vaapi/meson.build:
2774 * tests/internal/output.c:
2775 * tests/internal/output.h:
2776 * tests/internal/simple-decoder.c:
2777 * tests/internal/test-decode.c:
2778 libs: remove GstVaapiPixmap
2779 GstVaapiPixmap is an abstract base class which only implementation
2780 were GstVaapiPixmapX11. This class were used for a special type of
2781 rendering in the tests apps, utterly unrelated in GStreamer.
2782 Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
2783 we should remove this unused API.
2784 This removal drops libxrender dependency.
2786 2020-03-17 18:51:19 +0800 He Junyan <junyan.he@hotmail.com>
2788 * gst-libs/gst/vaapi/gstvaapiutils.c:
2789 libs: utils: Add HEVC Main444 sting in string_of_VAProfile
2790 HEVCMain444_10 is already a supported profile and misses the strings.
2792 2020-03-17 12:47:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2794 * gst/vaapi/gstvaapi.c:
2795 plugin: don't error if cannot create display
2796 This might generated errors on automatic tools such as CI. Let's
2797 rather just raise a warning and let continue.
2799 2020-03-09 01:52:57 +0800 He Junyan <junyan.he@hotmail.com>
2801 * tests/check/meson.build:
2802 test: fix a ninja test failure for vaapioverlay.
2803 That test case only works with drm display, so the build such as
2804 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2806 gets a failure when run ninja test. Just enable this test when drm
2809 2020-02-07 23:56:13 +0800 He Junyan <junyan.he@hotmail.com>
2811 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2812 libs: videopool: fix a condition race for pool allocate.
2814 2020-03-05 13:22:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2816 * gst/vaapi/gstvaapivideobufferpool.c:
2817 vaapivideobufferpool: force video meta if sizes are different
2818 The strides and offsets could be the same, but the allocation
2819 size might be different (e.g. alignment). Thus, ensure we also
2820 set the flag to copy from VA memory to system memory when alloc
2824 2020-03-05 14:18:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2826 * gst/vaapi/gstvaapidecode.c:
2827 vaapidecode: don't set base sink caps twice
2828 Base class's sink pad caps are already set when calling set_format().
2829 There's no need to call it again in gst_vaapidecode_negotiate().
2831 2020-03-05 13:26:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2833 * gst/vaapi/gstvaapidecode.c:
2834 vaapidecode: unlock stream if caps update fails
2835 If caps update fail a dead lock occurs since the stream mutex is not
2838 2020-03-03 15:24:32 +0800 Xu Guangxin <guangxin.xu@intel.com>
2840 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2841 libs: decoder: h265: parser state after update dependent slice
2842 If the dependent_slice_segment_flag is true, most slice info derived from last slice.
2843 So we need check the slice type after we call populate_dependent_slice_hdr
2845 2020-02-16 12:21:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2847 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2848 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2849 libs: display: force RGBA image format for i965 driver
2850 Since commit 32bf6f1e GLTextureUpload is broken because i965
2851 doesn't report properly RGBA support. It could be possible to use RGBx
2852 but GLTextureUpload only regotiates RGBA.
2853 The simplest fix to this regression is adding synthetically the RGBA
2854 format in the internal format map.
2856 2020-02-14 19:30:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2858 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2859 libs: display: iterate all quirks table
2860 Instead of break at the fist foud quirk in the table, iterate all over
2861 so it would be feasible to add several quirks for one driver per
2864 2020-02-25 12:05:28 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2866 * gst-libs/gst/vaapi/gstvaapifilter.c:
2867 libs: filter: handle RGB to/from YUV color primary driver quirk
2868 The intel-media-driver (iHD) can't convert output color
2869 primaries when doing YUV to/from RGB CSC. Thus, we must
2870 keep the output color primaries the same as the input
2871 color primaries for this case.
2874 2020-02-25 12:00:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2876 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2877 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2878 libs: display: add YUV to/from RGB color primary quirk
2879 The intel-media-driver (iHD) can't convert output color
2880 primaries when doing YUV to/from RGB CSC.
2882 2020-02-28 11:33:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2884 * gst/vaapi/gstvaapivideomemory.c:
2885 Revert "vaapivideomemory: Store surface allocation flags."
2886 This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
2887 it rewrites the buffer size whilst surface allocation flags are
2888 stored when allocator_params_init() is called since fab890ce.
2891 2020-01-27 18:19:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2893 * gst/vaapi/gstvaapivideomemory.c:
2894 vaapivideomemory: Try surface with allocation flags.
2895 When a vaapi allocator is instantiated, it first try to generate a
2896 surface with the specified configuration.
2897 This patch adds, in this tried buffer, the requested allocation flags.
2899 2020-01-27 18:10:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2901 * gst/vaapi/gstvaapivideomemory.c:
2902 vaapivideomemory: Store surface allocation flags.
2903 Store surface allocation flags passed to the vaapi allocator in
2904 GObject's qdata, because it might be used by the vaapivideobufferpool
2905 when recreating the allocator given any resolution change.
2907 2020-01-24 19:32:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2909 * gst-libs/gst/vaapi/gstvaapisurface.c:
2910 * gst-libs/gst/vaapi/gstvaapisurface.h:
2911 libs: surface: Add hints to allocation flags.
2912 When creating surfaces it is possible to pass to VA hints of its usage,
2913 so the driver may do some optimizations.
2914 This commit adds the handling of encoding/decoding hints.
2916 2020-01-24 22:08:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2918 * gst-libs/gst/vaapi/gstvaapicontext.c:
2919 * gst-libs/gst/vaapi/gstvaapisurface.c:
2920 * gst-libs/gst/vaapi/gstvaapisurface.h:
2921 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2922 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2923 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2924 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2925 * tests/internal/test-filter.c:
2926 * tests/internal/test-surfaces.c:
2927 libs: surface: surfacepool: Add allocation flags in constructors.
2929 2020-02-22 16:06:13 +0800 He Junyan <junyan.he@hotmail.com>
2932 build: let the build fail if none if X11, wayland or drm.
2933 In fact, gst_vaapi_create_test_display only test x11, wayland and
2934 drm, no glx and egl entries. So if none of them is enabled, no
2935 vaapi element can be detected.
2937 2020-02-21 00:58:47 +0800 He Junyan <junyan.he@hotmail.com>
2939 * tests/internal/test-display.c:
2940 test: avoid unused warning for test-display
2941 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2942 -Dwith_glx=no buildir
2943 generate unused warnings.
2945 2020-02-21 00:50:47 +0800 He Junyan <junyan.he@hotmail.com>
2948 build: fix meson build error when without x11.
2949 meson -Dwith_x11=no build_dir
2950 can not success build the project because the glx is still enabled.
2951 We need to disable GLX when X11 is disabled.
2953 2020-02-14 19:53:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
2955 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2956 libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
2957 Intel HW has limitation on max_transform_hierarchy_depth_inter and
2958 max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
2959 other HWs if other HWs may support other values
2960 [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
2962 2020-02-21 07:37:50 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2964 * gst/vaapi/gstvaapipostproc.c:
2965 * gst/vaapi/gstvaapipostprocutil.c:
2966 vaapipostproc: do not compensate for crop/direction if no VPP
2967 If we do not have functional VPP, then cropping and video
2968 direction is non-functional and we should avoid calling
2969 any of the gst_vaapi_filter* APIs.
2971 2020-02-21 06:54:47 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2973 * gst/vaapi/gstvaapipostproc.c:
2974 vaapipostproc: only set VPP colorimetry when VPP is available
2975 If we don't have functional vpp then we should not call
2976 gst_vaapi_filter_set_colorimetry.
2978 2020-02-16 01:25:37 +0800 He Junyan <junyan.he@hotmail.com>
2980 * gst/vaapi/gstvaapivideobufferpool.c:
2981 * gst/vaapi/gstvaapivideomemory.c:
2982 * gst/vaapi/gstvaapivideomemory.h:
2983 videobufferpool: don't reset surface when created internally
2984 The bug fixing, in commit 89f202ea, just considers the case when
2985 surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
2986 which is typically a decoder's behavior. But vaapipostproc doesn't
2987 provide any surface when calling gst_buffer_pool_acquire_buffer(),
2988 thus a surface is created when GstMemory is allocated.
2989 If the surface proxy in buffer's meta is reset at
2990 buffer_pool_reset_buffer(), that surface will be destroyed and it
2991 won't be available anymore. But GstBuffers are cached in the buffer
2992 pool and they are reused again, hence only those images are rendered
2996 2020-02-16 17:19:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2998 * gst-libs/gst/vaapi/gstvaapiblend.c:
2999 * gst-libs/gst/vaapi/gstvaapifilter.c:
3000 * gst/vaapi/gstvaapi.c:
3001 libs: blend: filter: handle finalize() if display isn't assigned
3002 I've just discovered iHD driver in Skylake doesn't have VideoProc
3003 entry point, hence, in this platform, when vaapioverlay is tried to be
3004 registered, critical warnings are raised because blend doesn't have a
3006 As it is possible to have drivers without EntryPointVideoProc it is
3007 required to handle it gracefully. This patch does that: only tries to
3008 register vaapioverlay if the testing display has VPP and finalize()
3009 vmethods, in filter and blend, bail out if display is NULL.
3011 2020-02-15 11:02:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3013 * gst-libs/gst/vaapi/gstvaapifilter.c:
3014 * gst-libs/gst/vaapi/gstvaapiutils.c:
3015 libs: filter: guard all color properties to VA-API 1.2.0
3016 Older VA-API (0.39.0) doesn't have VAProcColorProperties.
3017 Thus, guard all colorimetry -> VA-API support to version
3021 2020-02-17 08:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3023 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3024 libs: decoder: h265: set parser info state at decoding codec data
3025 Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
3026 parser info in sps array. If that parser info comes from decoding
3027 codec data, that parser info will have an undefined state which might
3029 This patch sets the parser info state, at decoding codec data, with
3030 the internal parser state. This is similar with h264 decoder apprach.
3031 Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
3033 2020-02-07 15:24:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3035 * gst/vaapi/gstvaapipostproc.c:
3036 vaapipostproc: demote log message to trace level
3038 2020-02-14 14:45:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3040 * gst-libs/gst/vaapi/video-format.c:
3041 libs: video-format: set general vaapi log category
3042 Instead of logging in an unspecified category, set the default vaapi.
3044 2020-02-15 11:44:48 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3046 * gst-libs/gst/vaapi/gstvaapiutils.c:
3047 libs: utils: guard EncSliceLP for VA-API < 0.39.1
3050 2020-02-14 16:17:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
3052 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3053 libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
3055 2020-02-11 11:31:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3057 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
3058 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3059 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3060 libs: remove crumbs of libva < 0.39
3061 All these guarded code seem like leftovers of commit 920b1ec7a. This
3062 patch completes that missing clean up.
3064 2020-02-11 00:38:40 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3066 * gst-libs/gst/vaapi/gstvaapifilter.c:
3067 * gst-libs/gst/vaapi/gstvaapiutils.c:
3068 libs: VA explicit color standard not supported until 1.2.0
3069 VAProcColorStandardExplicit and associated VAProcColorProperties
3070 (primaries, transfer and matrix) are not supported until
3072 Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
3076 2020-02-10 09:31:15 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3078 * gst-libs/gst/vaapi/gstvaapiutils.c:
3079 libs: utils: WA: use explicit for sRGB colorimetry
3080 Addresses #228 on iHD side. It seems iHD can't handle
3081 VAProcColorStandardSRGB in all situations for vpp. But
3082 it has no problem when we specify the sRGB parameters
3083 via VAProcColorStandardExplicit parameters.
3085 2020-02-07 11:25:31 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3087 * gst-libs/gst/vaapi/gstvaapifilter.c:
3088 libs: filter: set vpp input/output color range
3089 We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
3090 And, the [iHD] driver essentially computes the same color
3091 range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
3092 cases were gstreamer computes it automatically. But,
3093 if the user wants to make it explicit, we should try
3096 2020-02-07 11:20:11 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3098 * gst-libs/gst/vaapi/gstvaapiutils.c:
3099 * gst-libs/gst/vaapi/gstvaapiutils.h:
3100 libs: utils: map GstVideoColorRange to VAAPI VPP
3102 2020-02-07 15:28:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3104 * gst/vaapi/gstvaapidecode.c:
3105 vaapidecode: don't remove chroma-site nor colorimetry
3106 Since now they can be handled by vaapipostproc.
3108 2020-02-04 14:17:43 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3110 * gst/vaapi/gstvaapipostprocutil.c:
3111 vaapipostproc: use sink resolution to calculate src colorimetry
3112 The default output colorimetry is persuaded by the output
3113 resolution, which is too naive when doing VPP cropping
3114 and/or scaling. For example, scaling 4K(sink)->1080P(src)
3115 resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
3116 colorimetry selection and some drivers don't support that
3118 Thus, if output (i.e. downstream) does not specify a
3119 colorimetry then we use the input resolution instead of the
3120 output resolution to create the default colorimetry. Also,
3121 note that we still use the output format since it may be a
3122 different color space than the input. As in the example
3123 above, this will result in bt2020(sink)->bt2020(src)
3124 colorimetry selection and all drivers (afaik) should support
3127 2020-02-04 09:57:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3129 * gst/vaapi/gstvaapipostprocutil.c:
3130 vaapipostproc: set srcpad colorimetry unconditionally
3131 We always need a srcpad colorimetry for VAAPI VPP
3133 Also, check the return value of _set_colorimetry.
3135 2020-01-30 12:34:07 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3137 * gst/vaapi/gstvaapipostprocutil.c:
3138 vaapipostproc: do not override explicit srcpad colorimetry
3139 If colorimetry has been set by a capsfilter (e.g.
3140 vaapipostproc ! video/x-raw,colorimetry=bt709) then
3141 don't try to override it. Previously, the aforementioned
3142 capsfilter will fail to negotiate if default colorimetry
3143 is not the same as the capsfilter (e.g. 4K resolutions).
3145 2020-01-30 09:37:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3147 * gst/vaapi/gstvaapipostproc.c:
3148 vaapipostproc: set vpp filter colorimetry
3149 Set the input and output colorimetry for vpp filter.
3151 2020-01-30 09:34:10 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3153 * gst-libs/gst/vaapi/gstvaapifilter.c:
3154 * gst-libs/gst/vaapi/gstvaapifilter.h:
3155 libs: filter: support vpp input/output color standard
3156 Add API function to allow setting the input and output vpp
3157 color standard from GstVideoColorimetry.
3159 2020-02-04 11:32:54 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3161 * gst-libs/gst/vaapi/gstvaapiutils.c:
3162 * gst-libs/gst/vaapi/gstvaapiutils.h:
3163 libs: utils: map GstVideoColorimetry to VAAPI VPP
3164 Fallback to VAProcColorStandardExplicit if there is no
3167 2020-02-04 10:27:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3169 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3170 * gst-libs/gst/vaapi/gstvaapidisplay.h:
3171 libs: display: add vpp color standard quirk for i965 driver
3172 The i965 does not properly report supported vpp color
3175 2020-02-02 18:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3177 * gst/vaapi/gstvaapivideobufferpool.c:
3178 vaapivideobufferpool: dmabuf implies allocator
3179 Some code can be optimized since only if the dmabuf allocator is set,
3180 the internal flag of dmabuf is TRUE, thus there's no need to evaluate
3181 the allocator address.
3183 2020-01-29 11:55:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3185 * gst/vaapi/gstvaapivideobufferpool.c:
3186 vaapivideobufferpool: reject configuration if allocator isn't vaapi
3187 If the requested allocator in set_config() is not a VAAPI valid one,
3188 reject the configuration, instead of lying and using a private one.
3189 This patch superseeds !254 and !24
3191 2020-01-29 11:55:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3193 * gst/vaapi/gstvaapivideobufferpool.c:
3194 vaapivideobufferpool: add explanation for allocator reconfig
3196 2020-01-29 11:54:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3198 * gst/vaapi/gstvaapivideobufferpool.c:
3199 vaapivideobufferpool: check for vaapi meta first
3200 If the configured meta doesn't request vaapi meta then it is not a
3201 vaapi buffer pool. Bail out as soon as possible.
3203 2020-01-29 11:52:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3205 * gst/vaapi/gstvaapivideobufferpool.c:
3206 vaapivideobufferpool: turn errors into warnings
3207 set_config() vmethod should fail gracefully, thus upstream could
3208 negotiate another pool if possible.
3209 Instead of sending error messages to the bus, let demote the level
3212 2020-01-29 11:51:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3214 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3215 libs: display: log out vendor string when available
3216 This is useful while asking for logs to know the used driver.
3218 2020-01-27 11:49:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3220 * gst-libs/gst/vaapi/gstvaapisurface.c:
3221 libs: surface: initialize VASurfaceAttribExternalBuffers
3222 Initialize VASurfaceAttribExternalBuffers using compiler's syntax
3223 rather than using memset().
3225 2020-01-27 11:44:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3227 * gst-libs/gst/vaapi/gstvaapisurface.c:
3228 libs: surface: merge two loops into one
3229 Merge two loops into one for setting offsets and strides in the
3230 external buffer descriptor.
3232 2020-01-22 10:42:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3234 * gst-libs/gst/vaapi/gstvaapisurface.c:
3235 * gst-libs/gst/vaapi/gstvaapisurface.h:
3236 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
3237 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
3238 libs: surface: surfacepool: rename variable for clearity
3239 In order to be readable, the meaningless 'flags' is renamed to
3240 surface_allocation_flags, which is clearer.
3242 2020-01-27 18:40:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3244 * gst/vaapi/gstvaapivideobufferpool.c:
3245 vaapivideobufferpool: Reuse internal allocator is possible.
3246 Instead of creating a new allocator when upstream requests a different
3247 allocator, this patch tries to reuse the internal allocator if it was
3248 already initializated.
3249 If the stream changes, then either one will be unref and a new
3250 allocator is created.
3252 2020-01-27 18:05:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3254 * gst/vaapi/gstvaapivideobufferpool.c:
3255 vaapivideobufferpool: Log messages in proper category.
3256 The log messages where logged in the GstBufferPool category because
3257 the instance was not properly casted. This fix that situation.
3259 2020-01-16 11:49:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3261 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3262 * gst-libs/gst/vaapi/gstvaapidisplay.h:
3263 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3264 * gst/vaapi/gstvaapipluginbase.c:
3265 libs: display: driver quirks mechanism
3266 This mechanism comes from ffmpeg vaapi implementation, where they have
3268 A specific driver is identified by a substring present in the vendor
3269 string. If that substring is found, a set of bitwise flags are store.
3270 These flags can be accessed through the function
3271 gst_vaapi_display_has_driver_quirks().
3272 The purpose for this first quirks is to disable the put image try for
3273 AMD Gallium driver (see [1]).
3274 1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
3276 2020-01-15 23:07:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3278 * gst/vaapi/gstvaapipluginutil.c:
3279 plugins: renable Mesa Gallium driver
3281 2020-01-24 11:55:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3283 * gst/vaapi/gstvaapivideobufferpool.c:
3284 vaapivideobufferpool: validate returned meta
3285 Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
3286 the acquired buffer is not null.
3287 This situation should be very "pathological", but still it is better
3288 be safe since that meta might be used later to create a new dma
3291 2020-01-22 18:50:36 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3293 * gst/vaapi/gstvaapivideobufferpool.c:
3294 vaapivideobufferpool: always update/release the underlying surface proxy
3295 gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
3296 releases the last reference on an exported DMA buffer. This should
3297 release the underlying surface proxy. To avoid releasing the wrong
3298 surface due to a stale surface proxy reference in the buffer's
3299 GstVaapiVideoMeta, always update the reference to the correct surface
3300 in gst_vaapi_video_buffer_pool_acquire_buffer().
3302 2020-01-23 16:56:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3304 * gst-libs/gst/vaapi/gstvaapicontext.c:
3305 * gst-libs/gst/vaapi/gstvaapicontext.h:
3306 * gst-libs/gst/vaapi/gstvaapisurface.c:
3307 * gst-libs/gst/vaapi/gstvaapisurface.h:
3308 libs: context: select vaCreateSurfaces version according attributes
3309 This commit tries to centralize the selection of vaCreateSurfaces
3310 version, instead of having fallbacks everywhere.
3311 These fallbacks are hacks, added because new drivers use the latest
3312 version of vaCreateSurfaces (with surface attributes) [1], meanwhile
3313 old drivers (or profiles as JPEG decoder in i965) might rather use the
3315 In order to select which method, there's detected hack: each config
3316 context has a list of valid formats, in the case of JPEG decoder the
3317 list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
3318 handled correctly by the current gstreamer-vaapi code [2].
3319 The hack consist in identify if the format list contains an arbitrary
3320 preferred format (which is suposedly well supported by
3321 gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
3322 the the old version of vaCreateSurfaces is used, and the surfaces wil
3323 be mapped into a image with their own color format.
3324 1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
3325 2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
3327 2020-01-21 19:35:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3329 * gst-libs/gst/vaapi/gstvaapicontext.c:
3330 libs: context: add debug category for context
3332 2020-01-22 20:20:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3334 * gst-libs/gst/vaapi/gstvaapiblend.c:
3335 libs: blend: guard VA_BLEND_GLOBAL_ALPHA
3337 2020-01-21 14:09:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3339 * gst/vaapi/gstvaapiencode_h264.c:
3340 vaapiencode: promote info to warning
3341 Let's notify user about using constrained-baseline instead on
3342 requested basline profile.
3344 2019-06-28 15:41:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
3346 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3347 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
3348 * gst/vaapi/gstvaapidecode.c:
3349 * gst/vaapi/gstvaapidecode_props.c:
3350 * gst/vaapi/gstvaapidecode_props.h:
3351 vaapih264dec: Add a property to assume constrained-baseline
3352 When baseline-as-constrained is set, the decoder will expose support
3353 for baseline decoding and assume that the baseline content is
3354 constrained-baseline. This can be handy to decode streams in hardware
3355 that would otherwise not be possible to decode. A lot of baseline
3356 content is in fact constrained.
3358 2020-01-17 16:19:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3360 * gst/vaapi/gstvaapiencode_h264.c:
3361 * gst/vaapi/gstvaapipluginutil.c:
3362 vaapih264enc: accept baseline as constrained baseline compatible
3364 2020-01-17 14:24:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3366 * gst/vaapi/gstvaapiencode_h264.c:
3367 vaapih264enc: update level in src caps
3368 And, if downstream requests a specific level, the caps are not
3369 negotiated, because there is no mechanism right now to specify a
3370 custom level in the internal encoder.
3372 2020-01-17 17:12:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3374 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3375 libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
3377 2020-01-17 13:38:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3379 * gst/vaapi/gstvaapiencode_h264.c:
3380 vaapih264enc: force byte-stream if avc isn't supported
3381 Removing the validation in gst_vaapiencode_h264_get_caps() since that
3382 ought be handled in gst_vaapiencode_h264_set_config()
3384 2020-01-08 17:37:22 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3386 * gst/vaapi/gstvaapiencode_h264.c:
3387 vaaph264enc: suppress avc if the driver does not support packed headers
3388 Do not negotiate AVC output if the driver does not support it.
3390 2020-01-08 17:16:35 +0100 Philipp Zabel <p.zabel@pengutronix.de>
3392 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3393 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3394 libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
3395 AVC output requires packed header support in the driver.
3397 2020-01-17 13:07:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3399 * gst/vaapi/gstvaapiencode_h264.c:
3400 vaapih264enc: intersect the new proposed caps
3401 Instead of just leave to keep the proposed caps, with the best profile
3402 in the allowed caps, is its intersected again.
3404 2020-01-17 12:58:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3406 * gst/vaapi/gstvaapiencode_h264.c:
3407 vaapih264enc: propose new profile caps and fixate it
3408 When the available caps doesn't intersect with the allowed caps in the
3409 pipeline, a new caps is proposed rather than just expecting to
3411 Later, the intersected caps (profile_caps) is fixated in order to
3412 extract the configuration.
3414 2020-01-17 13:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3416 * gst/vaapi/gstvaapiencode_h264.c:
3417 vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
3418 Add a common fail code path for gst_vaapiencode_h264_set_config().
3420 2020-01-17 12:54:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3422 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3423 libs: encoder: unref formats array if none
3424 The formats array is always created, in order to keep the logic and
3425 to avoid broken caps, if this formats array doesn't contain any
3426 elements, it has to be unref and the function should return NULL.
3428 2020-01-17 14:22:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3430 * gst/vaapi/gstvaapiencode_h264.c:
3431 vaapih264enc: fix log message
3432 Before the log wasn't processed because wrong instance pointer.
3434 2019-06-22 00:44:25 +0800 He Junyan <junyan.he@hotmail.com>
3436 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3437 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3438 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3439 * gst/vaapi/gstvaapiencode_h265.c:
3440 plugin: encode: Add H265 main-444 profile.
3441 Expose the main-444 profile to h265enc caps, when the upstream
3442 chooses to use VUYA as input, we choose main 4:4:4 profile to encode
3445 2020-01-15 19:36:00 +0800 He Junyan <junyan.he@hotmail.com>
3447 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3448 libs: encoder: h265: Consider main-444 profile when encoding.
3449 Add support of main-444 profile for parameter setting and packed header
3452 2020-01-15 23:04:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3454 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3455 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3456 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3457 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3458 * gst/vaapi/gstvaapiencode.c:
3459 vaapiencode: DMABuf only if PRIME is available
3460 Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
3461 memory type is available in the VA surface attributes of codec
3464 2020-01-16 09:14:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
3466 * hooks/pre-commit.hook:
3467 Add hooks/pre-commit.hook
3468 meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
3469 Copied and pasted pre-commit.hook from other gstreamer modules to make
3470 sure gstreamer-vaapi follows the same code style
3472 2019-12-26 16:45:51 +0800 He Junyan <junyan.he@hotmail.com>
3474 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3475 libs: encoder: h265: Set encoder paramters base on entrypoint.
3476 When the tune is NONE, we now can choose entrypoint freely. So the
3477 GST_VAAPI_ENCODER_TUNE macro may not return the correct current
3479 We also delay CTU size calculation after entrypoint has been decided.
3481 2019-12-28 19:18:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3483 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3484 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3485 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3486 * gst-libs/gst/vaapi/gstvaapicontext.c:
3487 * gst-libs/gst/vaapi/gstvaapicontext.h:
3488 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3489 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3490 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3491 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3492 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3493 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3494 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3495 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3496 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3497 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3498 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3499 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3500 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3501 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3502 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3503 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3504 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3505 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3506 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3507 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3508 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3509 * gst-libs/gst/vaapi/meson.build:
3510 * gst/vaapi/gstvaapi.c:
3511 * gst/vaapi/gstvaapiencode.c:
3512 * gst/vaapi/gstvaapiencode.h:
3513 * gst/vaapi/gstvaapiencode_h264_fei.c:
3514 * gst/vaapi/gstvaapiencode_h264_fei.h:
3515 * gst/vaapi/gstvaapifeivideometa.c:
3516 * gst/vaapi/gstvaapifeivideometa.h:
3517 * gst/vaapi/meson.build:
3519 * tests/internal/meson.build:
3520 * tests/internal/test-fei-enc-in.c:
3521 * tests/internal/test-fei-enc-out.c:
3522 Remove all FEI related
3523 FEI encoders are not actively mantained neither tested, and it is
3524 using infrastructure that is changing and FEI is stopping this
3526 Also it is required to rethink how FEI can be used in GStreamer.
3528 2020-01-14 11:17:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3530 * gst/vaapi/gstvaapioverlay.c:
3531 vaapioverlay: ensure sinkpad has current buffer
3532 Use the gst_video_aggregator_pad_has_current_buffer API
3533 to check if the current sinkpad has a queued buffer before
3534 attempting to obtain a input buffer from the base plugin.
3535 If the sinkpad does not have a current buffer, then it is
3536 either not producing them yet (e.g. current time < sinkpad
3537 start time) or it has reached EOS.
3538 Previously, we only handled EOS case.
3540 gst-launch-1.0 videotestsrc num-buffers=100 \
3541 ! vaapipostproc ! vaapioverlay name=overlay \
3542 ! vaapisink videotestsrc timestamp-offset=1000000000 \
3543 num-buffers=100 ! video/x-raw,width=160,height=120 \
3546 2020-01-14 18:57:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3548 * gst/vaapi/gstvaapioverlay.c:
3549 vaapioverlay: unroll the recursive call
3550 Recursive functions are elegant but dangerous since they might
3551 overflow the stack. It is better to turn them into a list tranversal
3552 if possible, as this case.
3554 2020-01-14 18:46:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3556 * gst-libs/gst/vaapi/gstvaapiblend.c:
3557 * gst/vaapi/gstvaapioverlay.c:
3558 vaapioverlay: add minimal documentation
3560 2020-01-14 18:25:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3562 * gst-libs/gst/vaapi/gstvaapiblend.c:
3563 * gst-libs/gst/vaapi/gstvaapiblend.h:
3564 * gst/vaapi/gstvaapioverlay.c:
3565 libs: blend: simplify generator API
3566 Instead of using a parent structure that has to be derived by API
3567 consumers, this change propse a simplification by using the common
3568 pattern of GTK of passing a function pointer and user data which will
3569 be passed as its parameter. That user data contains the state and the
3570 function will be called to update that state.
3572 2020-01-10 10:14:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3574 * gst-libs/gst/vaapi/gstvaapiblend.c:
3575 * gst-libs/gst/vaapi/gstvaapiblend.h:
3576 libs: blend: remove begin/render/end API
3577 This API was risky and is superseded by the surface
3578 generator (process) API.
3581 2020-01-10 10:12:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3583 * gst/vaapi/gstvaapioverlay.c:
3584 vaapioverlay: use blend surface generator API
3587 2020-01-10 09:54:30 -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: add surface generator API
3592 This new API allows the user to call a single method (process)
3593 which handles the [display] lock/unlock logic internally for
3595 This API supersedes the risky begin, render, end API.
3596 It eliminates the need for the user to call a lock method
3597 (process_begin) before processing the input buffers
3598 (process_render) and calling an unlock method (process_end)
3602 2019-12-23 14:29:08 +0800 He Junyan <junyan.he@hotmail.com>
3604 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3605 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3606 * gst/vaapi/gstvaapiencode.c:
3607 * gst/vaapi/gstvaapiencode.h:
3608 * gst/vaapi/gstvaapiencode_h264.c:
3609 * gst/vaapi/gstvaapiencode_h265.c:
3610 plugin: encode: List all possible profiles to detect input formats.
3611 The current get_profile just return one possible profile for the encode,
3612 which is not enough. For example, if we want to support HEVC 4:4:4
3613 profile, the input of encode should be VYUA rather than NV12 in HEVC
3614 main profile. So the command line:
3615 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3616 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3617 tune=low-power init-qp=30 ! fakesink
3618 can not work because vaapih265enc just report NV12 in sink caps, we need
3619 to specify the profile obviously like:
3620 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3621 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3622 tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
3623 profile=main-444 ! fakesink
3624 The encode should have the ability to choose the profile based on input
3625 format automatically. If the input video format is VUYA, the main-444
3626 profile should be auto choosed.
3627 We modify to let get_allowed_profiles of each encode sub class to return
3628 an array of all supported profiles based on downstream's allowed caps, or
3629 return NULL if no valid profiles specified by downstream.
3630 If no allowed profiles found, all profiles which belong to the current
3631 encoder's codec will be the candidates.
3632 The function gst_vaapi_encoder_get_surface_attributes collects the surface's
3633 attributes for that profile list we just get.
3634 So for this case, both NV12 and VUYA should be returned.
3635 TODO: some codec like VP9, need to implement the get_profile() function.
3637 2020-01-08 15:07:36 +0800 He Junyan <junyan.he@hotmail.com>
3639 * gst/vaapi/gstvaapipluginutil.c:
3640 * gst/vaapi/gstvaapipluginutil.h:
3641 plugin: util: add helper function to detect profiles in caps.
3643 2020-01-08 15:04:18 +0800 He Junyan <junyan.he@hotmail.com>
3645 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3646 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3647 libs: encoder: add a helper function to get all supported profiles
3649 2020-01-13 15:34:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
3651 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3652 libs: decoder: Don't unref null object
3653 ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
3654 gst_vaapi_context_unref: assertion 'context != NULL' failed
3656 2020-01-10 09:26:44 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3658 * gst/vaapi/gstvaapioverlay.c:
3659 plugins: overlay: use proper NULL check on double pointer
3660 Check the address of the variable is not NULL,
3661 not the address of the pointer.
3663 2020-01-08 23:42:21 +0800 He Junyan <junyan.he@hotmail.com>
3665 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3666 libs: codedbuf: delete a useless field.
3667 The context field in GstVaapiCodedBuffer is not inited correctly
3668 and is never used, just delete it.
3670 2019-12-29 17:57:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3672 * gst/vaapi/gstvaapipluginutil.c:
3673 plugins: add iHD driver in whitelist
3675 2020-01-02 21:02:40 +0800 He Junyan <junyan.he@hotmail.com>
3677 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3678 libs: encoder: modify 265 SPS header's profile compatibility flag.
3679 Make the SPS profile compatibility flags more precisely conform to
3682 2020-01-06 19:39:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3684 * tests/check/elements/vaapioverlay.c:
3685 test: vaapioverlay: bail test if not available
3686 vaapioverlay is only registered if the VA driver support the blend
3688 This patch only executes the test if vaapioverlay is available,
3689 otherwise the test is bail out without raising an error.
3691 2020-01-06 14:53:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3693 * tests/check/elements/vaapioverlay.c:
3694 tests: vaapioverlay: force drm backend
3696 2019-12-22 17:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3698 * gst-libs/gst/vaapi/gstvaapiblend.c:
3699 libs: blend: update to new mini-object API
3701 2019-11-19 13:48:22 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3703 * tests/check/elements/vaapioverlay.c:
3704 * tests/check/meson.build:
3705 tests: check: add basic vaapioverlay test
3706 Add test_overlay_position test to verify sink_1 input
3707 is overlayed onto sink_0 input at the appropriate
3710 2019-11-14 12:03:57 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3712 * gst/vaapi/gstvaapi.c:
3713 * gst/vaapi/gstvaapioverlay.c:
3714 * gst/vaapi/gstvaapioverlay.h:
3715 * gst/vaapi/meson.build:
3716 plugins: add vaapioverlay plugin
3717 A plugin similar to the base compositor element but
3718 uses VA-API VPP blend functions to accelerate the
3719 overlay/compositing.
3721 gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
3722 ! tee name=testsrc ! queue \
3723 ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
3724 name=overlay ! vaapisink testsrc. ! queue ! overlay.
3726 2019-11-14 12:02:19 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3728 * gst-libs/gst/vaapi/gstvaapiblend.c:
3729 * gst-libs/gst/vaapi/gstvaapiblend.h:
3730 * gst-libs/gst/vaapi/meson.build:
3731 libs: add a vaapi blend class
3732 Support for the VA-API VPP blend functions.
3734 2019-11-14 11:54:59 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3736 * gst/vaapi/gstvaapipluginbase.c:
3737 * gst/vaapi/gstvaapipluginbase.h:
3738 plugins: base: add GstVideoAggregator subclass support
3740 2020-01-05 19:32:16 +0800 He Junyan <junyan.he@hotmail.com>
3742 * gst-libs/gst/vaapi/gstvaapiimage.c:
3743 libs: image: init all image fields correctly.
3745 2020-01-06 17:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
3747 * gst/vaapi/gstvaapipostproc.c:
3748 doc: fix pipeline typo in vaapipostproc
3750 2020-01-02 21:11:44 +0800 He Junyan <junyan.he@hotmail.com>
3752 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3753 libs: encoder: modify 265 VPS header fields.
3754 vps_base_layer_internal_flag and vps_base_layer_available_flag
3755 have been clearly defined now.
3757 2020-01-01 19:54:13 +0800 He Junyan <junyan.he@hotmail.com>
3759 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
3760 libs: display: fix a resource leak in X11 pixmap format.
3762 2020-01-02 18:00:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3764 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3765 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3766 libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
3768 2019-12-30 14:09:17 +0800 He Junyan <junyan.he@hotmail.com>
3770 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3771 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3772 * gst/vaapi/gstvaapiencode.c:
3773 libs: encoder: get surfaces resolution the same time with formats.
3774 We can get all the information about the video format at one shot
3775 when we create the test context for getting the supported formats.
3776 The current way to get the width and height ranges are inefficient,
3777 since it calls the function gst_vaapi_profile_caps_append_encoder()
3778 and it creates another temporal context to detect the resolution
3780 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3782 2019-12-28 17:42:55 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3784 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3785 libs: encoder: vp9: fix code style
3787 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3789 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3790 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3791 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3792 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3793 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3794 libs: encoder: set entrypoint based on tune automatically
3795 Some profile, such as H265_MAIN_444 on new Intel platform, may only
3796 support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
3798 1. We need to specify the tune mode like `vaapih265enc tune=low-power`
3799 every time when we need to use this kind of profile. Or we can not
3800 create the encoder context successfully.
3801 2. More seriously, we set the entrypoint to a fixed value in
3802 init_context_info() and so the create_test_context_config() can not
3803 create the test context for these profile and can not get the
3804 supported video formats, either.
3805 We now change the entrypoint setting based on the tune option of the
3806 encoder. If no tune property provided, we just choose the first
3807 available entrypoint.
3809 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3811 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3812 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3813 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3814 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3815 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3816 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3817 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3818 libs: encoder: set context info profile by encoder
3819 Instead of init_context_info() setting the passed profile, it is
3820 assumed that it has to be set by each encoder.
3821 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3823 2019-12-27 18:49:02 +0100 He Junyan <junyan.he@hotmail.com>
3825 * gst-libs/gst/vaapi/gstvaapicontext.c:
3826 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3827 libs: context: add invalid entrypoint symbol
3828 The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
3829 zero, which was already used as an invalid value tacitly. This patch
3830 only makes it explicit.
3831 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3833 2019-12-29 01:13:29 +0800 He Junyan <junyan.he@hotmail.com>
3835 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3836 libs: pixmap: Fix a pixmap creation crash.
3837 We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
3838 pixmap creation, which causes crash if we run the internal test case
3840 test-decode --pixmap
3842 2019-12-22 14:35:18 +0800 He Junyan <junyan.he@hotmail.com>
3844 * gst/vaapi/gstvaapiencode.c:
3845 plugin: encode: set allowed_sinkpad_caps to empty.
3846 We now set encode->allowed_sinkpad_caps to NULL if we fail to get
3847 surfaces formats. This causes two problem:
3848 1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
3849 which changes its behavior. It will use encode's sinkpad template
3850 rather than empty caps to do the clip job. So even if we fail to set
3851 allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
3853 2. We should just set the allowed_sinkpad_caps once. The NULL point
3854 make the ensure_allowed_sinkpad_caps function works again and again.
3856 2019-12-22 15:22:57 +0800 He Junyan <junyan.he@hotmail.com>
3858 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3859 libs: encoder: Add NULL pointer check for context when finalize.
3860 Context may be NULL if pipeline fail in early stage, and the
3861 ensure_context will not be called. Need to add a pointer protection
3864 2019-12-20 06:38:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3866 * gst/vaapi/gstvaapipluginbase.c:
3867 plugins: base: do not reset can_dmabuf
3868 Don't reset the can_dmabuf field. This restores the
3869 close/reset logic that existed prior to commit
3870 ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
3872 Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
3873 once during startup, but may need to reset the other private
3874 fields multiple times during negotiation. Thus, can_dmabuf
3875 should be exempt from the resets.
3878 2019-12-06 00:21:12 +0800 He Junyan <junyan.he@hotmail.com>
3880 * gst/vaapi/gstvaapiencode.c:
3881 plugin: encode: Refine encode's sink caps.
3882 The old manner to get the encode's sink caps is not correct.
3883 Such as 264 encode, it gets:
3884 video/x-raw(memory:VASurface),
3885 format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
3886 P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
3887 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3888 video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
3889 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3890 framerate=(fraction)[ 0/1, 2147483647/1 ];
3891 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3892 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3893 where the formats for memory:VASurface and memory:DMABuf are superfluous.
3894 All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
3895 input format for encoder.
3897 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3898 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3899 video/x-raw(memory:VASurface), format=(string){ NV12 },
3900 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3901 framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
3902 format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3903 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3904 as the correct result.
3906 2019-12-20 08:37:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3908 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3909 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3910 libs: display: code clean up
3912 2019-12-12 21:34:21 +0800 He Junyan <junyan.he@hotmail.com>
3914 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3915 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3916 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3917 libs: display: refine the profile/entrypoint map.
3918 The old way make the one config for each profile/entrypoint pair,
3919 which is not very convenient for description the relationship
3920 between them. One profile may contain more than one entrypoints
3921 to within it, so a set like data structure should be more suitable.
3923 2019-12-19 14:19:10 +0100 He Junyan <junyan.he@hotmail.com>
3925 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3926 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3927 * gst-libs/gst/vaapi/gstvaapicontext.c:
3928 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3929 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3930 * gst-libs/gst/vaapi/gstvaapifilter.c:
3931 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3932 * gst-libs/gst/vaapi/gstvaapisurface.c:
3933 * gst-libs/gst/vaapi/gstvaapisurface.h:
3934 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3935 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
3936 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3937 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3938 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3939 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
3940 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
3941 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3942 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3943 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3944 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3945 * gst/vaapi/gstvaapipluginbase.c:
3946 * gst/vaapi/gstvaapivideomemory.c:
3947 * gst/vaapi/gstvaapivideometa.c:
3948 * gst/vaapi/gstvaapivideometa_texture.c:
3949 * tests/internal/image.c:
3950 * tests/internal/test-filter.c:
3951 * tests/internal/test-surfaces.c:
3952 * tests/internal/test-windows.c:
3953 libs: surface: port to GstMiniObject
3954 GstVaapiMiniObject and GstVaapiObject are deprecated.
3955 This is the first step to remove them by porting GstVaapiSurface as
3956 a GstMiniBuffer descendant.
3957 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3959 2019-12-19 18:26:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3961 * gst-libs/gst/vaapi/gstvaapisurface.c:
3962 libs: surface: rename create function names to init
3963 There are several internal functions with 'create' name, but they
3964 don't create any new structure, but rather it initializes that
3965 structure. Renaming those function to reflect better their purpose.
3967 2019-12-19 14:17:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3969 * gst-libs/gst/vaapi/gstvaapisurface.c:
3970 libs: surface: use macro accessors
3972 2019-12-19 13:46:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3974 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3975 libs: surface: fix internal documentation
3977 2019-12-18 18:00:49 +0100 He Junyan <junyan.he@hotmail.com>
3979 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3980 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
3981 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3982 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3983 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3984 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3985 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3986 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3987 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3988 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3989 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3990 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3991 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3992 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3993 libs: codedbuffer: port to GstMiniObject
3994 GstVaapiMiniObject and GstVaapiObject are deprecated.
3995 This is the first step to remove them by porting GstVaapiCodedBuffer
3996 as a GstMiniBuffer descendant.
3997 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3999 2019-12-18 12:57:01 +0100 He Junyan <junyan.he@hotmail.com>
4001 * gst-libs/gst/vaapi/gstvaapiimage.c:
4002 * gst-libs/gst/vaapi/gstvaapiimage.h:
4003 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
4004 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
4005 * gst-libs/gst/vaapi/gstvaapisurface.c:
4006 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
4007 * gst-libs/gst/vaapi/gstvaapivideopool.c:
4008 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4009 * gst/vaapi/gstvaapipluginbase.c:
4010 * gst/vaapi/gstvaapivideomemory.c:
4011 * gst/vaapi/gstvaapivideometa.c:
4012 * tests/internal/image.c:
4013 * tests/internal/simple-encoder.c:
4014 * tests/internal/test-fei-enc-in.c:
4015 * tests/internal/test-filter.c:
4016 * tests/internal/test-windows.c:
4017 libs: image: port to GstMiniObject base class
4018 GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
4019 first step to remove them, by porting GstVaapiImage as a
4021 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4023 2019-09-24 01:01:22 +0800 He Junyan <junyan.he@hotmail.com>
4025 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
4026 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
4027 * gst-libs/gst/vaapi/gstvaapicontext.c:
4028 * gst-libs/gst/vaapi/gstvaapicontext.h:
4029 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4030 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4031 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4032 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4033 libs: context: port to a plain C structure
4034 The GstVaapiMiniObject is obsolete and we need to replace it. This
4035 patch turns GstVaapiContext into a plain C structure with its own
4036 reference counting mechanism.
4037 Also this patch removes unused overlays attributes.
4038 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4040 2019-12-18 00:40:58 +0800 He Junyan <junyan.he@hotmail.com>
4042 * gst/vaapi/gstvaapiencode_h264.c:
4043 * gst/vaapi/gstvaapiencode_h264_fei.c:
4044 * gst/vaapi/gstvaapiencode_h265.c:
4045 * gst/vaapi/gstvaapiencode_jpeg.c:
4046 * gst/vaapi/gstvaapiencode_mpeg2.c:
4047 * gst/vaapi/gstvaapiencode_vp8.c:
4048 * gst/vaapi/gstvaapiencode_vp9.c:
4049 plugin: encode: change the dmabuf caps to all supported formats.
4050 The encode's dmabuf caps definition is obsolete, it can support
4051 more formats now. Re-define it to include all supported formats
4052 in video format map.
4054 2019-12-17 17:09:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4056 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4057 libs: encoder: h264fei: remove unnecessary check
4058 Issue detected by Coverity
4059 `info_to_pack.h264_slice_header` is always allocated by
4060 gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
4061 in doesn't make much sense. But it requires to be free on the error
4063 There may be a null pointer dereference, or else the comparison
4064 against null is unnecessary.
4065 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
4066 pointer comparison already dereference the pointer earlier
4068 2019-12-17 17:05:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4070 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4071 libs: encoder: h264fei: remove unnecessary assert
4072 Issue detected by Coverity
4073 An unsigned value can never be negative, so this test will always
4074 evaluate the same way.
4075 In add_slice_headers: An unsigned value can never be less than 0
4077 2019-12-17 16:57:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4079 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4080 libs: encoder: h264fei: remove unnecessary check
4081 Issue detected by Coverity
4082 There may be a null pointer dereference, or else the comparison
4083 against null is unnecessary.
4084 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
4085 pointer comparison already dereference the pointer earlier
4087 2019-12-17 16:49:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4089 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4090 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4091 libs: encoder: h264fei: don't free memory on stack
4092 Issue detected by Coverity
4093 `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
4094 declared in the stack, but it is free in
4095 gst_vaapi_feienc_h264_encode() as if declared on the heap.
4096 This patch initializes the structure and removes the free.
4097 A non-heap pointer is placed on the free list, likely causing a crash
4099 In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
4100 expression, which can never be heap allocated.
4102 2019-12-17 13:22:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4104 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4105 libs: encoder: h264fei: fix surface leak
4106 Issue detected by Coverity
4107 If the FEI mode is not handled the created resources should be
4108 released and return and error code.
4109 The system resource will not be reclaimed and reused, reducing the
4110 future availability of the resource.
4111 In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
4114 2019-12-17 13:09:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4116 * tests/check/elements/vaapipostproc.c:
4117 tests: check return calling of gst_navigation_event_parse.*
4118 This issue was detected by Coverity.
4119 If the function returns an error value, the error value may be mistaken
4121 In cb_mouse_event: Value returned from a function is not checked for
4122 errors before being used
4124 2019-12-16 16:25:02 +0800 He Junyan <junyan.he@hotmail.com>
4126 * gst/vaapi/gstvaapiencode_h264.c:
4127 * gst/vaapi/gstvaapiencode_h264_fei.c:
4128 * gst/vaapi/gstvaapiencode_h265.c:
4129 * gst/vaapi/gstvaapiencode_jpeg.c:
4130 * gst/vaapi/gstvaapiencode_mpeg2.c:
4131 * gst/vaapi/gstvaapiencode_vp8.c:
4132 * gst/vaapi/gstvaapiencode_vp9.c:
4133 plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
4134 Then encode plugin just supports raw formats declared in vaapi video
4135 format map. This modification makes the template caps more precise.
4137 2019-11-14 11:13:51 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
4139 * gst/vaapi/gstvaapipluginbase.c:
4140 plugins: base: add GstPad param to internal helper functions
4141 The base plugin public API function implementations determine
4142 which pad should be passed to the internal helper functions.
4143 Currently, only the base plugin static sinkpad and static
4144 srcpad are supported/used. However, this change enables future
4145 API functions to be added that can accept a pad (i.e. request pad)
4146 from an element subclass (e.g. a GstVideoAggregator subclass).
4148 2019-11-12 12:21:52 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
4150 * gst/vaapi/gstvaapipluginbase.c:
4151 * gst/vaapi/gstvaapipluginbase.h:
4152 plugins: base: manage pad-specific data in a single struct
4153 Define a struct (GstVaapiPadPrivate) to encapsulate the
4154 pad-specific data (i.e. buffer pool, allocator, info,
4156 Add an interface to retrieve the data struct for a given
4158 Finally, update the base plugin to use the data struct
4159 throughout the implementation.
4160 This will enable us to easily extend the base plugin in the
4161 future to allow for N-to-1 pad subclasses (e.g. overlay/
4164 2019-10-29 15:13:44 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4166 * gst/vaapi/gstvaapidecode.c:
4167 * gst/vaapi/gstvaapiencode.c:
4168 * gst/vaapi/gstvaapipluginbase.h:
4169 * gst/vaapi/gstvaapipostproc.c:
4170 plugins: use plugin base macros to access pad specific data
4171 Don't access base struct fields directly since the underlying
4172 definition can change. Instead, use the accessor macros.
4174 2019-12-03 00:52:45 +0800 He Junyan <junyan.he@hotmail.com>
4176 * gst/vaapi/gstvaapidecode.c:
4177 libs: decoder: Modify decode src's template raw formats
4178 We do not need to maintain a standalone list of decoder's output
4179 template for raw formats and that is easy to make mistake(for
4180 example, the AYVU is wrong in that list, should be VUYA).
4181 Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
4184 2019-12-11 14:11:13 +0800 He Junyan <junyan.he@hotmail.com>
4186 * gst/vaapi/gstvaapipostproc.c:
4187 libs: postproc: Modify src/sink template raw formats
4188 We need to provide more precise template caps for postproc's src
4189 and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
4190 available which are really superfluous.
4192 2019-12-10 18:40:42 -0300 Thibault Saunier <tsaunier@igalia.com>
4194 * tests/check/elements/vaapipostproc.c:
4195 Do not mix declaration and code
4197 2019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4199 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4200 libs: decoder: h265: skip all pictures prior the first I-frame
4201 Don't try to decode until the first I-frame is received within the
4202 currently active sequence. i965 H265 decoder don't show any artifact
4206 2019-11-27 01:44:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4208 * gst-libs/gst/vaapi/video-format.c:
4209 libs: video-format: remove dead code
4211 2019-10-31 00:59:34 +0800 He Junyan <junyan.he@hotmail.com>
4213 * gst-libs/gst/vaapi/video-format.c:
4214 * gst-libs/gst/vaapi/video-format.h:
4215 * gst/vaapi/gstvaapipluginutil.h:
4216 libs: video-format: add GST_VAAPI_FORMATS_ALL
4217 GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
4218 as a caps template string, and make them available in caps with
4219 memory:VASurface feature.
4222 2019-11-06 22:37:12 +0800 He Junyan <junyan.he@hotmail.com>
4224 * gst-libs/gst/vaapi/video-format.c:
4225 * tests/internal/test-windows.c:
4226 libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
4227 We only support VUYA format in gst vaapi now, need to correct
4230 2019-10-09 15:13:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4232 * tests/check/elements/vaapipostproc.c:
4233 tests: check: vaapipostproc test_orientation_mouse_events
4234 Test that vaapipostproc properly translates mouse events
4235 when using video-direction (orientation).
4237 2019-10-09 10:11:54 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4239 * tests/check/elements/vaapipostproc.c:
4240 * tests/check/meson.build:
4241 tests: check: vaapipostproc test_crop_mouse_events
4242 Test that vaapipostproc properly translates mouse events
4245 2019-10-08 12:20:26 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4248 * meson_options.txt:
4249 * tests/check/elements/vaapipostproc.c:
4250 * tests/check/meson.build:
4251 * tests/meson.build:
4252 tests: check: initial unit test support
4253 Add minimal unit test toolchain files and a simple
4254 vaapipostproc unit test.
4256 2019-10-08 12:19:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4259 * tests/examples/meson.build:
4260 * tests/examples/test-roi.c:
4261 * tests/examples/test-vaapicontext.c:
4262 * tests/examples/test-vaapipostproc.c:
4263 * tests/examples/test-vaapisink.c:
4264 * tests/internal/codec.c:
4265 * tests/internal/codec.h:
4266 * tests/internal/decoder.c:
4267 * tests/internal/decoder.h:
4268 * tests/internal/image.c:
4269 * tests/internal/image.h:
4270 * tests/internal/meson.build:
4271 * tests/internal/output.c:
4272 * tests/internal/output.h:
4273 * tests/internal/simple-decoder.c:
4274 * tests/internal/simple-encoder.c:
4275 * tests/internal/test-decode.c:
4276 * tests/internal/test-decode.h:
4277 * tests/internal/test-display.c:
4278 * tests/internal/test-fei-enc-in.c:
4279 * tests/internal/test-fei-enc-out.c:
4280 * tests/internal/test-filter.c:
4281 * tests/internal/test-h264.c:
4282 * tests/internal/test-h264.h:
4283 * tests/internal/test-jpeg.c:
4284 * tests/internal/test-jpeg.h:
4285 * tests/internal/test-mpeg2.c:
4286 * tests/internal/test-mpeg2.h:
4287 * tests/internal/test-mpeg4.c:
4288 * tests/internal/test-mpeg4.h:
4289 * tests/internal/test-subpicture-data.c:
4290 * tests/internal/test-subpicture-data.h:
4291 * tests/internal/test-subpicture.c:
4292 * tests/internal/test-surfaces.c:
4293 * tests/internal/test-textures.c:
4294 * tests/internal/test-vc1.c:
4295 * tests/internal/test-vc1.h:
4296 * tests/internal/test-windows.c:
4297 * tests/internal/y4mreader.c:
4298 * tests/internal/y4mreader.h:
4299 * tests/meson.build:
4300 tests: move examples and tests to subfolders
4301 This makes way for adding unit (check) tests.
4303 2019-10-14 01:01:27 +0100 Tim-Philipp Müller <tim@centricular.com>
4311 * gst-libs/Makefile.am:
4312 * gst-libs/gst/Makefile.am:
4313 * gst-libs/gst/vaapi/Makefile.am:
4315 * gst/vaapi/Makefile.am:
4317 * tests/Makefile.am:
4318 * tests/elements/Makefile.am:
4319 Remove autotools build
4321 2019-10-10 15:26:36 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4323 * gst/vaapi/gstvaapipostproc.c:
4324 vaapipostproc: fix off-by-one coord translations
4325 When translating navigation x,y coordinates for
4326 video-direction, it is necessary to subtract 1
4327 when using the video dimensions to compute the
4328 new x,y coordinates. That is, a 100x200 image
4329 should map coordinates in x=[0-99],y=[0-199].
4330 This issue was found with unit tests provided
4333 2019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4335 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4336 libs: window: x11: Avoid usage of deprecated API
4338 2019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4341 build: halt meson configuration if no renderer API
4342 We should halt meson configuration if there is no render API
4343 installed (either DRM, Wayland or X11).
4344 That behavior was already in autotools but missed in meson. This patch
4348 2019-10-09 12:12:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4350 * gst-libs/gst/vaapi/gstvaapifilter.c:
4351 libs: filter: fix default orientation regression
4352 Fix regression introduced in f232f87f7082
4354 2019-10-07 11:53:23 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4356 * gst-libs/gst/vaapi/gstvaapifilter.c:
4357 libs: filter: use OP_DATA_DEFAULT_VALUE macro
4359 2019-10-07 11:39:19 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4361 * gst-libs/gst/vaapi/gstvaapifilter.c:
4362 libs: filter: use macro for returning op default value
4363 The code is essentially the same for getting all op default
4364 values. Thus, use a macro to help minimize code duplication
4365 and [hopefully] encourage using the same mechanism for all
4368 2019-10-07 09:56:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4370 * gst-libs/gst/vaapi/gstvaapifilter.c:
4371 libs: filter: query param spec for default scale method
4374 2019-10-07 09:44:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4376 * gst-libs/gst/vaapi/gstvaapifilter.c:
4377 libs: filter: query param spec for default skin-tone values
4380 2019-10-02 12:54:52 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4382 * gst-libs/gst/vaapi/gstvaapifilter.c:
4383 libs: filter: query param spec for default video-direction
4386 2019-10-07 10:23:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4391 2019-09-05 16:40:52 +0800 Yan Wang <yan.wang@linux.intel.com>
4393 * gst-libs/gst/vaapi/gstvaapifilter.c:
4394 * gst-libs/gst/vaapi/gstvaapifilter.h:
4395 * gst/vaapi/gstvaapipostproc.c:
4396 * gst/vaapi/gstvaapipostproc.h:
4397 vaapipostproc: Use level value for skin-tone-enhancement filter.
4398 Currently the parameter of skin-tone-enhancement filter is forced
4399 to zero. In fact it could be set different value by the user.
4400 So create a new property named as "skin-tone-enhancement-level"
4401 for accepting the used defined parameter value.
4402 At the same time, skin-tone-enhancement is marked as deprecated.
4403 When skin-tone-enhancement-level is set, skin-tone-enhancement
4406 2019-09-21 13:39:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4408 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4409 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4410 libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
4411 g_return_val_fail() documentations says:
4412 If expr evaluates to FALSE, the current function should be
4413 considered to have undefined behaviour (a programmer error).
4414 The only correct solution to such an error is to change the
4415 module that is calling the current function, so that it avoids
4416 this incorrect call.
4417 So it was missused in a couple parts of the H264 and H265 internal
4418 decoders. This patch changes that to plain conditionals.
4419 Also, it was included a couple code-style fixes.
4421 2019-09-23 19:52:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4423 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4424 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4425 * tests/simple-encoder.c:
4426 * tests/test-fei-enc-in.c:
4427 libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
4428 Since GstVaapiEncoder is a descendant of of GstObject, there is no
4429 need to keep a custom ref()/unref() methods. This patch deletes them.
4431 2019-09-24 01:03:02 +0800 He Junyan <junyan.he@hotmail.com>
4433 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4434 libs: encoder: correct encoder's ref/unref function.
4435 GstVaapiEncoder now is a standard gstobject and need to use
4436 gst_object_ref/unref functions.
4438 2019-09-19 12:09:20 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4440 * gst/vaapi/gstvaapiencode_h264_fei.c:
4441 gst: encode: h264_fei: remove useless comparison
4442 The expression "len >= 0" is always true since "len"
4443 is an unsigned type. And it is clear that the writers
4444 intention was not to write "len > 0" since we handle
4445 len == 0 in the ensuing "if (len < 3)" conditional
4448 2019-09-19 11:17:24 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4450 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4451 libs: encoder: h264_fei: fix potential overflow before widen
4452 Found by static analysis. encoder->mb_width * encoder->mb_height
4453 is evaluated using 32-bit arithmetic before widen. Thus, cast
4454 at least one of these to guint64 to avoid overflow.
4456 2019-09-19 10:56:13 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4458 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4459 libs: encoder: h264_fei: remove dead error condition
4460 Found by static analysis. The feipak is always null
4461 when we reach the error target.
4463 2019-09-19 10:49:11 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4465 * gst-libs/gst/vaapi/gstvaapiutils.c:
4466 libs: utils: add missing break in switch
4468 2019-09-11 11:56:35 +0800 He Junyan <junyan.he@hotmail.com>
4470 * gst-libs/gst/vaapi/video-format.c:
4471 libs: video-format: Make all YUV format available
4472 The YUV formats have no ambiguity for drivers, so we can add them all.
4473 Some old driver(i965) does not implement full get/put image functions
4474 but can use derive image funtions for the YUV format. It does not
4475 report that kind of formats correctly in image query, but will derive
4476 that YUV format image from surface. The dynamic mapping of YUV format
4477 will block that manner.
4478 Adding more YUV format mapping has no side effect. So considering the
4479 legacy driver conformance, we add all YUV formats mapping statically
4480 and dynamic mapping RBG formats
4484 2019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com>
4486 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4487 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
4488 egl: Fix racyness in display thread creation
4489 Multiple different scenarios could break the display thread creation and
4490 end up blocking waiting for thread o be created. Fix them all by
4491 correctly waiting for a new boolean to become valid.
4493 2019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com>
4495 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4496 egl: don't advertise a wrapped EGLContext as actually wrapped
4497 It's not actually wrapped as we create a new EGLContext from the passed
4498 in EGLContext. As a result, the created EGLContext was never destroyed.
4500 2019-09-16 23:28:31 +0800 He Junyan <junyan.he@hotmail.com>
4502 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4503 libs: h264decoder: do not return error for unhandled NAL unit.
4504 Some streams have error data introducing unknown NAL type. There are
4505 also kinds of NAL types we do not want to handle. The old manner will
4506 set a decoder error when encounter this, which cause a latent crash bug.
4507 The decoder may successfully decode the picture and insert it into DPB.
4508 But there are error NAL units after the AU which cause the post unit error
4509 and make that frame dropped. The later output of the picture still want
4510 to ref that frame and crash.
4511 No need to set decoder error when can not recognize or handle the NAL
4512 unit, just skip it and continue.
4515 2019-09-11 14:32:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4517 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4518 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4519 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4520 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4521 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4522 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4523 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4524 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4525 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4526 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4527 * gst/vaapi/gstvaapiencode.c:
4528 libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
4529 This patch makes use of GST_PARAM_USER_SHIFT to define the internal
4530 param in encoders to decide which parameters to expose. Thus
4531 gstreamer-vaapi will not interfere with any change in GStreamer in the
4533 Also, the internal symbol was change to
4534 GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
4536 2019-09-09 18:06:51 +0800 He Junyan <junyan.he@hotmail.com>
4538 * gst-libs/gst/vaapi/gstvaapiimage.c:
4539 * gst-libs/gst/vaapi/video-format.c:
4540 libs: Add BGR10A2_LE support for color space conversion.
4543 2019-08-23 14:41:06 +0800 He Junyan <junyan.he@hotmail.com>
4545 * gst-libs/gst/vaapi/gstvaapisurface.c:
4546 libs: surface: add pointer check for surface_new_from_formats.
4548 gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
4549 vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink
4550 will crash on i965 driver because of no pointer check.
4551 We now generate the video format map between GST format and VA format
4552 dynamically based on the image format returned by vaQueryImageFormats.
4553 i965 driver does to report image format of 444P and Y800 forcc, while
4554 the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
4555 not recognize these format and pass a NULL pointer to
4556 gst_vaapi_surface_new_from_formats.
4557 We need to add a pointer check here and let the fallback logic handle
4558 this case correctly.
4559 Other drivers work well.
4561 2019-09-07 13:23:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4563 * gst-libs/gst/vaapi/gstvaapiutils.c:
4564 libs: utils: guard the VAEntrypointFEI symbol
4565 VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
4567 2019-09-05 14:48:22 +0800 He Junyan <junyan.he@hotmail.com>
4569 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4570 * gst-libs/gst/vaapi/video-format.c:
4571 * gst-libs/gst/vaapi/video-format.h:
4572 libs: video-format: Refine the video format mapping.
4573 Improve the mapping between va format and gst format. The new map
4574 will be generated dynamically, based on the query result of image
4575 format in VA driver. Also consider the ambiguity of RGB color
4578 2019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com>
4580 * gst/vaapi/gstvaapipluginutil.c:
4581 pluginutil: Remove Mesa from drivers white list
4582 The Mesa Gallium driver is poorly tested currently, leading to bad user
4583 experience for AMD users. The driver can be added back to the white list at
4584 runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
4586 2019-07-08 14:18:00 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4588 * gst/vaapi/gstvaapipostproc.c:
4589 * gst/vaapi/gstvaapipostproc.h:
4590 * gst/vaapi/gstvaapipostprocutil.c:
4591 vaapipostproc: allow cropping via properties
4592 Add crop-left, crop-right, crop-top and crop-bottom
4593 properties to vaapipostproc.
4595 2019-08-30 17:31:45 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4597 * gst/vaapi/gstvaapipostproc.c:
4598 vaapipostproc: rotate outbuf and crop meta if forwarding
4599 When forwarding crop meta to downstream, the output
4600 buffer and crop meta need to be rotated, too.
4602 for i in 90r 180 90l vert horiz ul-lr ur-ll
4604 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4605 ! videocrop top=100 bottom=30 left=40 right=20 \
4606 ! vaapipostproc video-direction=$i \
4608 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4609 ! videocrop top=100 bottom=30 left=40 right=20 \
4610 ! vaapipostproc video-direction=$i \
4611 ! identity drop-allocation=true \
4615 2019-08-30 14:14:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4617 * gst/vaapi/gstvaapipostproc.c:
4618 vaapipostproc: fix output buffer WxH for crop meta forwarding
4619 Adding crop meta x,y to w,h only compensates for left,top
4620 cropping. But we also need to compensate for right,bottom
4622 The video meta contains the appropriate w,h (uncropped)
4623 values, so use it instead.
4625 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4626 ! videocrop top=50 bottom=30 left=40 right=20 \
4627 ! vaapipostproc ! vaapisink & \
4628 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4629 ! videocrop top=50 bottom=30 left=40 right=20 \
4630 ! vaapipostproc ! identity drop-allocation=1 \
4633 2019-09-04 10:52:51 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4635 * gst/vaapi/gstvaapipostproc.c:
4636 vaapipostproc: handle size and direction together in src events
4637 Mapping a pointer event needs to consider both size and
4638 video-direction operations together, not just one or the other.
4639 This fixes an issue where x,y were not being mapped correctly
4640 for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
4641 the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set. Thus,
4642 the first condition in the pointer event handling was entered and
4643 x,y scale factor were incorrectly computed due to srcpad WxH
4645 This also fixes all cases where both video-direction and scaling
4646 are enabled at the same time.
4647 Test that all pointer events map appropriately:
4650 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4651 ! vaapipostproc video-direction=${i} width=300 \
4653 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4654 ! vaapipostproc video-direction=${i} width=300 height=200 \
4656 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4657 ! vaapipostproc video-direction=${i} height=200 \
4659 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4660 ! vaapipostproc video-direction=${i} \
4664 2019-08-20 14:22:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4666 * gst/vaapi/gstvaapipostproc.c:
4667 * gst/vaapi/gstvaapipostproc.h:
4668 vaapipostproc: advertise crop meta is handled
4669 Advertise to upstream that vaapipostproc can handle
4671 When used in conjunction with videocrop plugin, the
4672 videocrop plugin will only do in-place transform on the
4673 crop meta when vaapipostproc advertises the ability to
4674 handle it. This allows vaapipostproc to apply the crop
4675 meta on the output buffer using vaapi acceleration.
4676 Without this advertisement, the videocrop plugin will
4677 crop the output buffer directly via software methods,
4678 which is not what we desire.
4679 vaapipostproc will not apply the crop meta if downstream
4680 advertises crop meta handling; vaapipostproc will just
4681 forward the crop meta to downstream. If crop meta is
4682 not advertised by downstream, then vaapipostproc will
4683 apply the crop meta.
4685 1. vaapipostproc will forward crop meta to vaapisink
4686 gst-launch-1.0 videotestsrc \
4687 ! videocrop left=10 \
4690 2. vaapipostproc will do the cropping
4691 gst-launch-1.0 videotestsrc \
4692 ! videocrop left=10 \
4694 ! identity drop-allocation=1 \
4697 2019-08-29 18:44:36 +0800 He Junyan <junyan.he@hotmail.com>
4699 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4700 libs: encoder: clean two virtual func in encoder class
4701 set_property and get_default_properties functions are no longer
4702 needed for encoder class.
4704 2019-08-29 18:43:30 +0800 He Junyan <junyan.he@hotmail.com>
4706 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4707 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4708 libs: encoder: delete old set_property and property enum feienc264
4710 2019-08-29 18:39:27 +0800 He Junyan <junyan.he@hotmail.com>
4712 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4713 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4714 libs: encoder: delete old set_property and property enum in h264 fei
4716 2019-08-29 18:37:58 +0800 He Junyan <junyan.he@hotmail.com>
4718 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4719 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4720 libs: encoder: delete old set_property and property enum in vp9
4722 2019-08-29 18:36:51 +0800 He Junyan <junyan.he@hotmail.com>
4724 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4725 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4726 libs: encoder: delete old set_property and property enum in vp8
4728 2019-08-29 18:35:59 +0800 He Junyan <junyan.he@hotmail.com>
4730 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4731 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4732 libs: encoder: delete old set_property and property enum in mpeg2
4734 2019-08-29 18:34:57 +0800 He Junyan <junyan.he@hotmail.com>
4736 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4737 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4738 libs: encoder: delete old set_property and property enum in jpeg
4740 2019-08-29 18:31:56 +0800 He Junyan <junyan.he@hotmail.com>
4742 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4743 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4744 libs: encoder: delete old set_property and property enum in h265
4746 2019-08-29 18:30:07 +0800 He Junyan <junyan.he@hotmail.com>
4748 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4749 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4750 libs: encoder: delete old set_property and property enum in h264
4752 2019-08-29 18:17:42 +0800 He Junyan <junyan.he@hotmail.com>
4754 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4755 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4756 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4757 libs: encoder: delete EncoderPropInfo related functions
4759 2019-08-29 16:13:19 +0800 He Junyan <junyan.he@hotmail.com>
4761 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4762 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4763 libs: encoder: delete encoder_set_property
4764 We no longer need this obsolete set_property function now after
4765 switch to standard gobject's property manner.
4766 Also delete the old encoder's property enum in the header file.
4768 2019-08-29 15:59:43 +0800 He Junyan <junyan.he@hotmail.com>
4770 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4771 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4772 libs: encoder: delete properties_get_default for base class
4774 2019-08-29 15:52:04 +0800 He Junyan <junyan.he@hotmail.com>
4776 * gst/vaapi/gstvaapiencode.c:
4777 * gst/vaapi/gstvaapiencode.h:
4778 plugin: encode: delete useless init_properties.
4779 Also delete the get_properties function in encode class. We now
4780 use g_object_class_list_properties to get all properties for
4781 internal encoder class.
4783 2019-08-29 15:43:45 +0800 He Junyan <junyan.he@hotmail.com>
4785 * gst/vaapi/gstvaapiencode.c:
4786 * gst/vaapi/gstvaapiencode.h:
4787 plugin: encode: delete set/get_property func in encode class
4788 Use standard gobject's property functions to replace the old way.
4790 2019-08-29 15:31:16 +0800 He Junyan <junyan.he@hotmail.com>
4792 * gst/vaapi/gstvaapiencode.c:
4793 * gst/vaapi/gstvaapiencode.h:
4794 plugin: encode: delete gst_vaapiencode_init_properties
4795 No need to init the properties got by get_default_properties func
4796 now. The properties are inited correctly in internal encoder class.
4798 2019-08-29 15:19:10 +0800 He Junyan <junyan.he@hotmail.com>
4800 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4801 libs: encoder: delete 3 useless init macro
4803 2019-08-29 15:16:26 +0800 He Junyan <junyan.he@hotmail.com>
4805 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4806 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4807 libs: encoder: delete get_default_properties of feienc
4809 2019-08-29 15:14:14 +0800 He Junyan <junyan.he@hotmail.com>
4811 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4812 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4813 libs: encoder: delete get_default_properties of H264 Fei
4815 2019-08-29 15:07:17 +0800 He Junyan <junyan.he@hotmail.com>
4817 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4818 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4819 libs: encoder: delete get_default_properties of VP9
4821 2019-08-29 15:06:25 +0800 He Junyan <junyan.he@hotmail.com>
4823 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4824 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4825 libs: encoder: delete get_default_properties of VP8
4827 2019-08-29 15:03:52 +0800 He Junyan <junyan.he@hotmail.com>
4829 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4830 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4831 libs: encoder: delete get_default_properties of MPEG2
4833 2019-08-29 15:03:19 +0800 He Junyan <junyan.he@hotmail.com>
4835 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4836 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4837 libs: encoder: delete get_default_properties of JPEG
4839 2019-08-30 19:15:38 +0800 He Junyan <junyan.he@hotmail.com>
4841 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4842 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4843 libs: encoder: delete get_default_properties of H265
4845 2019-08-29 14:59:12 +0800 He Junyan <junyan.he@hotmail.com>
4847 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4848 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4849 libs: encoder: delete get_default_properties of H264
4851 2019-08-29 14:53:59 +0800 He Junyan <junyan.he@hotmail.com>
4853 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4854 libs: encoder: delete the useless constructed func for encoder.
4856 2019-08-26 23:16:33 +0800 He Junyan <junyan.he@hotmail.com>
4858 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4859 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4860 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4861 libs: encoder: implement get_view_ids for h264 encoder.
4863 2019-08-20 23:56:33 +0800 He Junyan <junyan.he@hotmail.com>
4865 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4866 * gst/vaapi/gstvaapiencode.c:
4867 * gst/vaapi/gstvaapiencode_h264.c:
4868 * gst/vaapi/gstvaapiencode_h264_fei.c:
4869 * gst/vaapi/gstvaapiencode_h265.c:
4870 * gst/vaapi/gstvaapiencode_jpeg.c:
4871 * gst/vaapi/gstvaapiencode_mpeg2.c:
4872 * gst/vaapi/gstvaapiencode_vp8.c:
4873 * gst/vaapi/gstvaapiencode_vp9.c:
4874 gst: encode: enable new type of property mechanism.
4876 2019-08-20 22:16:35 +0800 He Junyan <junyan.he@hotmail.com>
4878 * gst/vaapi/gstvaapiencode.c:
4879 * gst/vaapi/gstvaapiencode.h:
4880 gst: encode: add property help functions for encoder properties.
4881 The encoder is a true gstobject now and all the properties are using
4882 gobject's properties mechanism. Add help functions to handle the properties
4883 between encode and encoder class.
4884 The basic idea is mapping the same property between encoder and encode. All
4885 the encoder's properties will have the same name, the same type in encode.
4886 The set/get property function just forward the property setting/getting to
4887 the encoder using the same property name and value. Because the encoder is
4888 created on needed, we need to cache the property setting in encode.
4890 2019-08-30 18:39:32 +0800 He Junyan <junyan.he@hotmail.com>
4892 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4893 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4894 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4895 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4896 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4897 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4898 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4899 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4900 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4901 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4902 libs: encoder: add flags to all encoder properties.
4903 G_PARAM_CONSTRUCT make all properties init correctly, we do not
4904 need to init the properties manually.
4905 G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
4906 flag, means need to expose the property to according encode class.
4908 2019-08-20 17:00:39 +0800 He Junyan <junyan.he@hotmail.com>
4910 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4911 libs: encoder: Add properties for h264 encoder fei.
4912 Install properties for h264 encoder fei class. Also set the new get/set
4913 property functions for gobject class. Still use the old properties
4914 way now and this new feature will be enabled later.
4916 2019-08-20 15:58:30 +0800 He Junyan <junyan.he@hotmail.com>
4918 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4919 libs: encoder: Add properties for h264 fei encoder.
4920 Install properties for h264 fei encoder class. Also set the new get/set
4921 property functions for gobject class. Still use the old properties
4922 way now and this new feature will be enabled later.
4924 2019-08-20 15:29:27 +0800 He Junyan <junyan.he@hotmail.com>
4926 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4927 libs: encoder: Add properties for vp9 encoder.
4928 Install properties for vp9 encoder class. Also set the new get/set
4929 property functions for gobject class. Still use the old properties
4930 way now and this new feature will be enabled later.
4932 2019-08-20 15:01:02 +0800 He Junyan <junyan.he@hotmail.com>
4934 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4935 libs: encoder: Add properties for vp8 encoder.
4936 Install properties for vp8 encoder class. Also set the new get/set
4937 property functions for gobject class. Still use the old properties
4938 way now and this new feature will be enabled later.
4940 2019-08-20 14:31:58 +0800 He Junyan <junyan.he@hotmail.com>
4942 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4943 libs: encoder: Add properties for mpeg2 encoder.
4944 Install properties for mpeg2 encoder class. Also set the new get/set
4945 property functions for gobject class. Still use the old properties
4946 way now and this new feature will be enabled later.
4948 2019-08-20 14:53:06 +0800 He Junyan <junyan.he@hotmail.com>
4950 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4951 libs: encoder: Add properties for jpeg encoder.
4952 Install properties for jpeg encoder class. Also set the new get/set
4953 property functions for gobject class. Still use the old properties
4954 way now and this new feature will be enabled later.
4956 2019-08-20 14:12:36 +0800 He Junyan <junyan.he@hotmail.com>
4958 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4959 libs: encoder: Add properties for h265 encoder.
4960 Install properties for h265 encoder class. Also set the new get/set
4961 property functions for gobject class. Still use the old properties
4962 way now and this new feature will be enabled later.
4964 2019-08-20 01:33:40 +0800 He Junyan <junyan.he@hotmail.com>
4966 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4967 libs: encoder: Add properties for h264 encoder.
4968 Install properties for h264 encoder class. Also set the new get/set
4969 property functions for gobject class. Still use the old properties
4970 way now and this new feature will be enabled later.
4972 2019-08-19 15:38:09 +0800 He Junyan <junyan.he@hotmail.com>
4974 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4975 libs: encoder: add properties and prop help functions
4976 Add all common properties to encoder base class. rate-control and
4977 tune are moved to sub class.
4979 2019-08-29 14:38:49 +0800 He Junyan <junyan.he@hotmail.com>
4981 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4982 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4983 libs: encoder: delete useless gst_vaapi_encoder_new func.
4984 GstVaapiEncoder is a abstract gobject and never be created directly.
4986 2019-07-27 00:55:53 +0800 He Junyan <junyan.he@hotmail.com>
4988 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4989 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4990 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4991 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4992 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4993 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4994 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4995 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4996 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4997 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4998 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4999 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
5000 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5001 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5002 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
5003 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5004 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
5005 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5006 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
5007 lib: encoder: gstobjectfy all vaapi encoders.
5008 Replace all gstvaapiobject in vaapi encoders with standard gstobject.
5009 Let the gstobject common logic to handle all the init and finalize
5010 works. But the property install/set/get still use the old way, need
5011 to be improved later.
5013 2019-08-29 12:11:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5015 * gst/vaapi/gstvaapipostproc.c:
5016 vaapipostproc: check for filter before appending caps
5017 While ensuring the allowed sink pad caps, the filter attributes set
5018 the frame size restriction, but it is not ensured, at that moment,
5019 that the filter is already instantiaded.
5020 In order to silence the glib logs, this patch add only calls
5021 gst_vaapi_filter_append_caps() if the filter is instantiated.
5023 2019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com>
5025 * gst/vaapi/gstvaapidecodebin.c:
5026 Classify vaapidecodebin as a hardware decoder
5028 2019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com>
5030 * gst/vaapi/gstvaapipostproc.c:
5031 libs: postproc: fix a memory leak point.
5032 filter_ops and filter_formats should already have valid value when
5033 the function gst_vaapipostproc_ensure_filter_caps re-enter
5035 2019-08-27 01:30:36 +0800 He Junyan <junyan.he@hotmail.com>
5037 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5038 libs: util: Fix a memory leak in config_surface_attributes_get
5040 2019-08-22 14:33:54 +0800 Wangfei <fei.w.wang@intel.com>
5042 * gst/vaapi/gstvaapidecode.c:
5043 vaapidecode: support transform ROI meta
5044 This will benefit the use case like:
5045 src ---> encode ---> decode ---> circle ROI ---> sink
5050 2019-08-23 19:10:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5052 * gst/vaapi/gstvaapidecodedoc.c:
5053 docstrings: port ulinks to markdown links
5055 2019-08-20 17:05:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5057 * gst-libs/gst/vaapi/Makefile.am:
5058 * gst-libs/gst/vaapi/gstvaapicontext.c:
5059 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
5060 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
5061 * gst-libs/gst/vaapi/meson.build:
5062 libs: remove context's overlay
5063 The context overlay was an optimization to apply a video composition
5064 to all the surfaces bound to a context.
5065 But since commit 18031dc6 this optimization was disabled, so it is
5066 better just get rid of it.
5068 2019-08-20 16:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5070 * gst-libs/gst/vaapi/gstvaapicontext.c:
5071 * gst-libs/gst/vaapi/gstvaapisurface.c:
5072 * gst-libs/gst/vaapi/gstvaapisurface.h:
5073 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
5074 * gst/vaapi/gstvaapipluginutil.c:
5075 * tests/test-subpicture.c:
5076 libs: remove surface's parent context
5077 In commit 18031dc6 surface's parent context is not assigned because of
5078 circular references. Since then (2013), there's has no issue with
5079 subpictures attached to a context, the current only users of this API.
5080 This patch cleans up all of related code with the unused surface's
5083 2019-08-18 13:53:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5085 * gst/vaapi/gstvaapidecode.c:
5086 vaapidecode: guard if no structure is available in caps
5088 2019-08-18 13:53:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5090 * gst-libs/gst/vaapi/gstvaapifilter.c:
5091 * gst-libs/gst/vaapi/gstvaapifilter.h:
5092 * gst/vaapi/gstvaapipostproc.c:
5093 vaapipostproc: append frame size restrictions in caps
5095 2019-08-18 13:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5097 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
5098 libs: profilecaps: refactor common code
5100 2019-08-16 19:35:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5102 * gst/vaapi/gstvaapiencode.c:
5103 vaapiencode: set frame size restrictions in caps
5106 2019-08-16 19:28:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5108 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5109 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5110 * gst/vaapi/gstvaapiencode.c:
5111 vaapiencode: enhance how the profile is defined
5112 This code doesn't define the profile used by the internal encoder, but
5113 it used to "predict" which is going to be used and to get the caps
5115 Before the profile was predicted by checking the donwstream caps, but
5116 sometimes they are not defined, setting an unknown profile. In order
5117 to enhances this situation, the encoder asks to internal encoder if it
5118 has one. If so, it is used.
5119 To ask the internal encoder's profile a new accessor function was
5120 added: gst_vaapi_encoder_get_profile()
5122 2019-08-16 19:26:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5124 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
5125 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
5126 libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
5127 Previously it was just a boilerplate. Now it is real implementation.
5129 2019-08-16 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5131 * gst-libs/gst/vaapi/gstvaapiutils.c:
5132 libs: utils: treat va_rt_format as bitwise flag
5133 The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
5134 is a bitwise flag with *all* the supported chroma types.
5135 Previously it was assumed that the return value was a single value,
5136 thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
5137 simple case. But it is wrong.
5138 This patch changes the case block with a sequence of ifs testing the
5139 bitwise. For now we assume a "priority" list in the testing sequence.
5141 2019-08-16 18:07:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5143 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5144 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5145 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
5146 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5147 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5148 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5149 * gst-libs/gst/vaapi/gstvaapiprofile.c:
5150 * gst-libs/gst/vaapi/gstvaapiprofile.h:
5151 * tests/test-display.c:
5152 libs: profile: add gst_vaapi_profile_get_va_name()
5153 gst_vaapi_profile_get_name() returns a proper name for
5154 GstCaps. Nonetheless, there are many profiles which don't have a name
5155 representation for that realm.
5156 gst_vaapi_profile_get_va_name() returns the name of the profile
5157 according to its VAProfile name.
5158 This new funtion is used in the encoder error message.
5160 2019-08-05 19:47:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5162 * gst-libs/gst/vaapi/Makefile.am:
5163 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
5164 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
5165 * gst-libs/gst/vaapi/meson.build:
5166 * gst/vaapi/gstvaapidecode.c:
5167 libs: profilecaps: move caps config into a new file
5168 Implement all the appending of frame size restrictions in caps, for
5169 encoders and decoders, in a new source file.
5171 2019-08-05 19:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5173 * gst-libs/gst/vaapi/gstvaapidecoder.c:
5174 libs: decoder: ref the caps as property
5176 2019-08-02 16:56:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5178 * gst-libs/gst/vaapi/gstvaapicontext.c:
5179 * gst-libs/gst/vaapi/gstvaapicontext.h:
5180 libs: context: add gst_vaapi_context_get_surface_attributes()
5181 This function copies the surface attributes from the context's object
5184 2019-08-02 12:46:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5186 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
5187 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
5188 * gst-libs/gst/vaapi/gstvaapiutils.c:
5189 * gst-libs/gst/vaapi/gstvaapiutils.h:
5190 libs: move memory types conversions to gstvaapiutils
5191 And add more supported memory types by current VA.
5193 2019-08-01 19:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5195 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5196 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
5197 libs: utils: remove unused function gst_vaapi_get_surface_formats()
5199 2019-08-01 19:46:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5201 * gst-libs/gst/vaapi/gstvaapicontext.c:
5202 * gst-libs/gst/vaapi/gstvaapicontext.h:
5203 * gst-libs/gst/vaapi/gstvaapifilter.c:
5204 libs: context, filter: use new surface attributes API
5206 2019-08-01 19:13:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5208 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5209 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
5210 libs: utils: add gst_vaapi_config_surface_attributes_get()
5211 To extract the surface restrictions per config using a new structure:
5212 GstVaapiConfigSurfaceAttributes
5214 2019-07-31 13:08:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5216 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5217 Split the surface attribute retrieval
5219 2019-07-15 21:51:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5221 * gst/vaapi/gstvaapipostproc.c:
5222 vaapipostproc: handle navigation downstream event
5223 When navigation events contains coordiantes those have to be mapped
5224 to the new size and/or orientation.
5226 2019-07-15 21:23:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5228 * tests/elements/test-vaapisink.c:
5229 test-vaapisink: also use vaapipostproc to change orientation
5231 2019-07-15 21:27:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5233 * gst-libs/gst/vaapi/gstvaapifilter.c:
5234 * gst-libs/gst/vaapi/gstvaapifilter.h:
5235 * gst/vaapi/gstvaapipostproc.c:
5236 * gst/vaapi/gstvaapipostproc.h:
5237 * gst/vaapi/gstvaapipostprocutil.c:
5238 vaapipostproc: handle image-orientation upstream event
5239 Now that vaapipostproc can possible handle video-direction, it
5240 should also handle the image-orientation event from upstream if
5241 video-direction property is set to auto.
5243 2019-07-26 22:09:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5245 * gst/vaapi/gstvaapipostproc.c:
5246 vaapipostproc: add missing locks when adding flags
5248 2019-07-26 22:05:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5250 * gst/vaapi/gstvaapipostproc.c:
5251 vaapipostproc: update filter before fixate caps
5252 It is requiered to know if postproc is capable to change the video
5253 direction before fixating the source caps.
5254 In order to do it, it'ss required to know if there's a functional VPP,
5255 but that's checked at create() vmethod, which occurs after caps
5257 This patch checks for a functional VPP at fixate caps and, if so,
5258 checks for the enabled filtes and later do the caps fixations.
5260 2019-07-26 19:46:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5262 * gst-libs/gst/vaapi/gstvaapifilter.c:
5263 * gst-libs/gst/vaapi/gstvaapivalue.c:
5264 * gst-libs/gst/vaapi/gstvaapivalue.h:
5265 * gst/vaapi/gstvaapipostproc.c:
5266 vaapipostproc: element warning if video direction is unsupported
5267 If the video direction is unsupported by the driver, an element
5268 warning is posted in the bus to notify the application.
5269 gst_vaapi_enum_type_get_nick() was added in the library thus it can
5270 be used elsewhere. It retrives the nick from an enum gtype.
5272 2019-07-26 19:09:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5274 * gst-libs/gst/vaapi/gstvaapifilter.c:
5275 libs: filter: check mirror and rotation caps only once
5276 This patch locks the display before querying the pipeline caps and
5277 stores the mirror and rotation capabilities, thus they are not queried
5278 every time the video direction is set.
5280 2019-08-16 19:51:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5282 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5283 libs: encoder: vp9: set VP9_0 profile as default
5284 Commit 0afc8131 introduced a regression and only NV12 format were
5285 admitted, failing in any other valid color format.
5286 This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
5288 2019-08-16 13:25:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5290 * gst-libs/gst/vaapi/gstvaapifilter.c:
5291 libs: filter: fail if first color balance value is invalid
5293 2019-08-06 19:24:08 +0800 Yan Wang <yan.wang@linux.intel.com>
5295 * gst-libs/gst/vaapi/gstvaapifilter.c:
5296 * gst-libs/gst/vaapi/gstvaapiutils.c:
5297 * gst-libs/gst/vaapi/gstvaapiutils.h:
5298 libs: filter: set all color balance values
5299 When set multiple settings of color balance like hue, saturation,
5300 brightness and contrast for vaapipostproc, they should be set as
5301 parameters of color balance filter, at the same color balance
5303 Otherwise, multiple color balance filter calling will cause
5304 previous setting get reset by the last calling with default value.
5306 Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
5308 2019-08-16 11:02:08 +0800 Wangfei <fei.w.wang@intel.com>
5310 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5311 libs: h265dec: remove limitation of get iq matrix
5312 According hevc spec, scaling_list_data is not related
5313 to chroma_format_idc.
5315 2019-05-30 23:52:51 +0800 He Junyan <junyan.he@hotmail.com>
5317 * gst-libs/gst/vaapi/gstvaapivideopool.c:
5318 libs: videopool: fix undocumented behavior and counting
5319 gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
5320 because it locks twice the same mutex.
5321 Also, n had different meanings in the current code: as an increase
5322 value and as a new total of allocated surfaces.
5323 This patche removes the undocumented behavoir (usually a deadlock) and
5324 fixes the meaning of n as the new total of allocated surfaces.
5325 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5327 2019-07-17 11:56:45 +0800 He Junyan <junyan.he@hotmail.com>
5329 * gst-libs/gst/vaapi/gstvaapiutils.c:
5330 libs: utils: Add missing entries for string_of_VAEntrypoint.
5332 2019-07-18 22:01:01 +0800 He Junyan <junyan.he@hotmail.com>
5334 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5335 libs: encoder: Consider vp9 profiles based on input format.
5336 Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
5339 2019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5341 * gst/vaapi/gstvaapivideomemory.c:
5342 vaapivideomemory: demote error message to info
5343 The main reason to demote the message's level is because it is not an
5344 error, it's a possible output of the trial and there's a code path
5346 Secondly, it's very annoying when using gallium driver for radeon.
5348 2019-07-18 13:32:46 +0800 Wangfei <fei.w.wang@intel.com>
5350 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5351 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5352 * gst-libs/gst/vaapi/gstvaapitypes.h:
5353 * gst-libs/gst/vaapi/gstvaapiutils.c:
5354 * gst-libs/gst/vaapi/gstvaapivalue.c:
5355 libs: encoder: h264: support ICQ/QVBR bitrate control mode
5356 ICQ is Intelligent Constant Quality. It will use the initial QP
5357 vaule of icq-quality-factor to adjust QP at MB level intelligently
5358 to improve subjective quality.
5359 QVBR is Quality defined VBR. It will use qvbr-quality-factor to
5360 adjust QP for each MB to get enough quality picture without waste
5363 2019-08-05 10:51:24 +0800 Wangfei <fei.w.wang@intel.com>
5365 * gst-libs/gst/vaapi/gstvaapitypes.h:
5366 libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
5367 The value return from GST_VAAPI_RATECONTROL_MASK will be used by
5368 GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
5369 deal with unsigned int. Otherwise there may be an error of out of
5370 range of integer if we define few more rate-control mode.
5372 2019-06-07 09:54:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5374 * gst/vaapi/gstvaapidecodebin.c:
5375 vaapidecodebin: set queue's max size buffers to 1
5376 Otherwise the queue will swallow all the available decoder's surfaces
5377 reaching a dead-lock.
5378 This setting might impact the bin's peformance, but it's a trade-off.
5380 2019-06-07 09:53:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5382 * gst/vaapi/gstvaapidecodebin.c:
5383 vaapidecodebin: set properties default values
5385 2019-05-31 13:12:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5387 * gst/vaapi/gstvaapidecode.c:
5388 vaapidecode: don't error if can't push buffers downtream
5389 When the code path goes to push buffers downstream when no surface
5390 available in decoder context, and it fails the code bails out with a
5392 That behavior is wrong, since it shouldn't be fatal. The use case is
5393 when the video stream is disabled.
5394 This patch just ignores the errors in this situation and demotes the
5395 level of a log message.
5397 2019-05-18 13:24:35 +0800 Wangfei <fei.w.wang@intel.com>
5399 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5400 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5401 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5402 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
5403 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5404 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5405 libs: encoder: h264,h265: add new property "max-qp"
5406 Add new property "max-qp" to allow set the maximum quantisation
5409 2019-05-23 10:18:52 -0400 Wangfei <fei.w.wang@intel.com>
5411 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5412 libs: encoder: vp9: add low power mode encode
5413 By now, this feature only support by media-driver on Ice Lake
5414 platform, more information you can reference:
5415 https://github.com/intel/media-driver
5417 2019-07-15 15:33:07 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5419 * gst/vaapi/gstvaapipostprocutil.c:
5420 vaapipostproc: update PAR when rotating
5421 When rotating, swap pixel-aspect-ratio during
5425 2019-07-01 15:26:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5427 * gst-libs/gst/vaapi/gstvaapifilter.c:
5428 * gst-libs/gst/vaapi/gstvaapiutils.c:
5429 * gst-libs/gst/vaapi/gstvaapiutils.h:
5430 * gst/vaapi/gstvaapipostprocutil.c:
5431 vaapipostproc: add rotation support
5432 Adds vpp rotation support to vaapipostproc. Uses
5433 property video-direction. Default is identity (no
5437 2019-05-22 10:47:30 -0400 Wangfei <fei.w.wang@intel.com>
5439 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5440 libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
5441 Intel media-driver requires enablement of diff_cu_qp_delta_depth when
5442 cu_qp_delta_enabled_flag enabled.
5445 2019-07-01 17:02:33 +0800 Wangfei <fei.w.wang@intel.com>
5447 * gst-libs/gst/vaapi/gstvaapiutils.c:
5448 libs: encoder: Add MB ratecontrol mode to get its string
5450 2019-07-01 16:52:00 +0800 Wangfei <fei.w.wang@intel.com>
5452 * gst-libs/gst/vaapi/gstvaapiutils.c:
5453 libs: encoder: refine guard of bitrate control mode
5454 Remove useless guard of all bitrate control mode's guard except MB
5455 which is define in VA-API version 0.39.1.
5457 2019-06-29 00:08:40 +1000 Jan Schmidt <jan@centricular.com>
5459 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5460 h264: Update for parse_vui_params parameter removal.
5461 Update calls to the h264 parser lib for removal of the
5462 parse_vui_params parameter.
5464 2019-06-24 16:26:56 -0400 Wang Zhanjun <zhanjunx.wang@intel.com>
5466 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5467 libs: dec: vp9: do not use display size as decoded size
5468 If display size is smaller than current frame size, then the crop size
5469 will be set as display size, which either crashes the pipeline or the
5470 output MD5 does not match. Rather it should use the actual decoded size.
5471 This patch removes the cropping set. For rendering we can use aspect
5472 ratio to set display size.
5474 Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
5475 Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
5477 2019-06-28 16:32:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5482 2019-06-25 19:11:12 +0800 He Junyan <junyan.he@hotmail.com>
5484 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5485 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5486 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
5487 libs: dec: h265: Consider chroma_bit_depth to choose chrome type
5488 For some main-10 stream, sometime the luma is 8 bits while chrome is more
5489 than 8 bits, which cause using the wrong NV12 surface as the render target
5493 2019-06-25 10:31:20 +0800 Wangfei <fei.w.wang@intel.com>
5495 * gst/vaapi/gstvaapidecode.c:
5496 vaapidecode: set initial decode format according surface chroma type
5497 For surfaces with different chroma type, it is prefer to initialize
5498 a format which chroma type should be same with surface chroma type
5499 instead of using fixed NV12.
5501 2019-05-30 09:48:51 -0400 Wangfei <fei.w.wang@intel.com>
5503 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5504 * gst-libs/gst/vaapi/gstvaapiimage.c:
5505 * gst-libs/gst/vaapi/video-format.c:
5506 * gst/vaapi/gstvaapidecode.c:
5507 * gst/vaapi/gstvaapipluginutil.h:
5508 libs: decoder: jpeg: add support 400/411/422/444 chroma type
5509 When create vaapi surface, it is better to use the chroma type get
5510 from jpeg file instead of using fixed 420 format. And the correct
5511 chroma type can be determined by horizontal_factor/vertical_factor
5512 flags that get from jpegparse.
5514 2019-06-22 00:05:24 +0800 He Junyan <junyan.he@hotmail.com>
5516 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5517 libs: dec: h265: Fix profile_idc mapping.
5518 The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
5519 wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
5520 happened to be the correct value.
5521 We only support Annex A profile_idc (1-4).
5523 2019-06-10 20:46:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5525 * gst/vaapi/gstvaapipluginbase.c:
5526 plugins: remove last negotiated video info if caps are same
5527 If the allocation caps and negotiated caps are the same,
5528 then ensure any previously negotiated video info is also
5529 removed. This can occur when multi-resolution video
5530 decoding returns to it's original resolution.
5533 2019-06-10 20:39:28 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5535 * gst/vaapi/gstvaapivideomemory.c:
5536 vaapivideomemory: allow negotiated info to be removed
5537 Allow NULL negotiated_vinfo to be passed into
5538 gst_allocator_set_vaapi_negotiated_video_info to allow
5539 any previously set info to be removed.
5541 2019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com>
5543 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5544 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5545 libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
5546 When input frame's formate changes, vp{8,9} encoders don't reset their frame
5547 counter, hence the newly created frame could become a P-frame, leading to some
5548 major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
5549 prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
5550 GstVaapiEncoderVP9 implementations.
5552 2019-05-31 12:30:03 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5554 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5555 libs: encoder: increase bitrate prop max value
5556 There are many profile levels that can support
5557 more than 102400 kbps. Thus, increase the max
5558 allowed bitrate property value from 102400 kbps
5559 to 2048000 kbps (same as msdk encoder plugins).
5561 2019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com>
5563 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5564 libs: mpeg2 encoder: No packed header for SPS and PPS
5565 Dislable passing down packed PPS and PPS to driver if driver does
5569 2019-05-31 23:10:33 +0200 Niels De Graef <niels.degraef@barco.com>
5574 meson: Bump minimal GLib version to 2.44
5575 This means we can use some newer features and get rid of some
5576 boilerplate code using the G_DECLARE_* macros.
5577 As discussed on IRC, 2.44 is old enough by now to start depending on it.
5579 2019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5581 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5582 libs: dec: vp9: clear parser pointer after release
5583 Fix an use-after-release of the parser pointer in VP9 decoder.
5585 2019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru>
5587 * gst/vaapi/gstvaapiencode.c:
5588 vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
5589 This fixes a deadlock in gst_vaapiencode_change_state, which was due to
5590 srcpad's chain function was locked waiting for available buffers. Since the
5591 coded buffers in codedbuf_queue become available after sinkpad consume the
5592 encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
5593 are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
5594 available buffers and holds the stream_lock of the srcpad.
5596 2019-05-29 23:08:22 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5598 * gst-libs/gst/vaapi/gstvaapitypes.h:
5599 * gst/vaapi/gstvaapidecodebin.c:
5600 * gst/vaapi/gstvaapidecodedoc.c:
5601 * gst/vaapi/gstvaapiencode_h264.c:
5602 * gst/vaapi/gstvaapiencode_h264_fei.c:
5603 * gst/vaapi/gstvaapiencode_h265.c:
5604 * gst/vaapi/gstvaapiencode_jpeg.c:
5605 * gst/vaapi/gstvaapiencode_mpeg2.c:
5606 * gst/vaapi/gstvaapiencode_vp8.c:
5607 * gst/vaapi/gstvaapiencode_vp9.c:
5608 * gst/vaapi/gstvaapipostproc.c:
5609 * gst/vaapi/gstvaapisink.c:
5610 doc: remove xml from comments
5612 2019-05-13 16:39:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5614 * gst-libs/gst/vaapi/gstvaapifilter.c:
5615 * gst-libs/gst/vaapi/gstvaapifilter.h:
5616 * gst-libs/gst/vaapi/gstvaapiutils.c:
5617 * gst-libs/gst/vaapi/gstvaapiutils.h:
5618 * gst/vaapi/gstvaapipostproc.c:
5619 * gst/vaapi/gstvaapipostproc.h:
5620 vaapipostproc: add mirror support
5621 Adds vpp mirroring support to vaapipostproc. Use
5622 property video-direction. Valid values are identity,
5623 horiz or vert. Default is identity (no mirror).
5625 v2: Use GstVideoOrientationMethod enum
5626 v3: Don't warn for VA_MIRROR_NONE.
5627 Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
5628 v4: Query VAAPI caps when setting mirror value
5629 instead of during per-frame processing.
5630 v5: Return TRUE in warning cases when setting mirror value.
5632 2019-05-29 01:35:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5634 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
5635 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5636 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5637 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5638 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5639 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5640 * gst/vaapi/gstvaapidecodebin.c:
5641 * gst/vaapi/gstvaapisink.c:
5642 doc: fix some incorrect gtk-doc links
5644 2019-05-16 09:22:42 -0400 Thibault Saunier <tsaunier@igalia.com>
5646 * docs/gst_plugins_cache.json:
5647 docs: Update plugin cache
5648 Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
5650 2019-05-16 16:46:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5652 * gst-libs/gst/vaapi/gstvaapisurface.h:
5653 libs: surface: fix documentation format
5655 2019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com>
5657 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5658 libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
5659 When enable low delay B, the reference list 1 will be same with
5660 reference list 0, so need reset the num_ref_idx_l1_active_minus1
5661 to num_ref_idx_l0_active_minus1.
5664 2019-05-13 19:05:43 -0400 Thibault Saunier <tsaunier@igalia.com>
5667 meson: Fix call to wrong function
5669 2018-10-22 11:48:29 +0200 Thibault Saunier <tsaunier@igalia.com>
5674 * docs/gst_plugins_cache.json:
5677 * docs/plugins/Makefile.am:
5678 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5679 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5680 * docs/plugins/gstreamer-vaapi-plugins.types:
5681 * docs/plugins/inspect/plugin-vaapi.xml:
5682 * docs/plugins/running.xml:
5684 * docs/version.entities.in:
5685 * gst/vaapi/meson.build:
5687 * meson_options.txt:
5688 docs: Port to hotdoc
5690 2019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com>
5692 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5693 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5694 libs: encoder: not call ensure_num_slices inside g_assert
5695 g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
5696 defined. The function inside the g_assert will take no effect and
5697 we will fail to set the correct slice number.
5699 2019-04-29 09:52:39 +0800 Wangfei <fei.w.wang@intel.com>
5701 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5702 libs: h265: dec: Add extension flags setting.
5703 Use VAPictureParameterBufferHEVCExtension&
5704 VASliceParameterBufferHEVCExtension to pass extension setting from
5705 some extension profile clips which may include these information.
5706 The hevc extension setting only supported after libva release 2.2.0
5709 2019-05-01 12:56:55 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5711 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5712 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5713 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5714 libs: encoder: add target-percentage property
5715 Allow users to set the target-percentage for
5716 variable rate controls. The default value is
5717 70 (as hard-coded prior).
5718 v2: minimum allowed value changed from 0 to 1
5719 v3: target-percentage unchanged if CBR used
5722 2019-05-09 00:09:21 +0800 He Junyan <junyan.he@hotmail.com>
5724 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5725 libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
5727 2019-05-08 23:39:20 +0800 He Junyan <junyan.he@hotmail.com>
5729 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5730 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5731 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5732 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
5733 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5734 libs: encoder: Enable trellis quantization method.
5735 The advanced trellis algorithm is supported in VA driver. We add
5736 its support as a property named "trellis" of encoder.
5737 It only works for H264 now, should be more in future.
5739 2019-05-07 11:03:51 +0800 Wangfei <fei.w.wang@intel.com>
5741 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5742 libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
5743 According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
5744 type, so we need to add subsampling_x&subsampling_y to fix it.
5745 Here is the relationship between chroma type and profile and
5746 subsampling_x&subsampling_y according to vp9 spec:
5747 ------------------------------------------
5748 Profile | Bit depth | Chroma subsampling |
5749 ------------------------------------------
5751 ------------------------------------------
5752 1 | 8 | 422,440,444 |
5753 ------------------------------------------
5755 ------------------------------------------
5756 3 | 10, 12 | 422,440,444 |
5757 ------------------------------------------
5758 -----------------------------------------------
5759 Subsampling_x | Subsampling_y | Chroma format |
5760 -----------------------------------------------
5762 -----------------------------------------------
5764 -----------------------------------------------
5766 -----------------------------------------------
5768 -----------------------------------------------
5770 2019-04-16 18:33:54 +0800 He Junyan <junyan.he@hotmail.com>
5772 * gst-libs/gst/vaapi/gstvaapiimage.c:
5773 * gst-libs/gst/vaapi/video-format.c:
5774 libs: Add packed 24 RGB format support.
5775 Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
5776 packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
5777 type. This kind of surface will just be created by new API with fourcc
5778 and no old style chrome based creation is available.
5781 2019-03-15 14:29:41 +0800 Wangfei <fei.w.wang@intel.com>
5783 * gst/vaapi/gstvaapiencode.c:
5784 * gst/vaapi/gstvaapiencode_h264.c:
5785 * gst/vaapi/gstvaapiencode_h264_fei.c:
5786 * gst/vaapi/gstvaapiencode_h265.c:
5787 * gst/vaapi/gstvaapiencode_jpeg.c:
5788 * gst/vaapi/gstvaapiencode_mpeg2.c:
5789 * gst/vaapi/gstvaapiencode_vp8.c:
5790 * gst/vaapi/gstvaapiencode_vp9.c:
5791 vaapiencode: handle DMABuf caps feature in sink pad
5792 Add DMABuff caps features in all encoders' sink pad.
5794 2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5796 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5797 libs: encoder: continue if roi meta is NULL
5799 If the function actually returns a null value, a null pointer
5800 dereference will occur.
5801 In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
5802 function which returns null is dereferenced without checking
5804 2019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com>
5806 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5807 lib: decoder: vp9: Set chroma_type by VP9 bit_depth
5808 The decoder's surface chroma type should depend on the bit depth
5809 of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
5810 10 bits surface as the decoder result.
5813 2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5815 * gst/vaapi/gstvaapipostprocutil.c:
5816 vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
5817 https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
5818 with commit 3e992d8a
5819 Since gst_vaapi_find_preferred_caps_feature() returns a color format
5820 from caps negotiation, different from the default one (NV12), the
5821 postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
5822 feature is negotiated, no color transformation shall be done.
5823 Nonetheless, with commit 3e992d8a the requested format changes
5824 firstly, because there's no video sink yet, so ANY caps are
5825 negotiated; but later, when there's a video sink and a caps
5826 renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
5827 format conversion still ongoing. It is required to reset that
5829 This patch force default color format when GL_TEXTURE_UPLOAD is
5830 selected as preferred, thus avoiding the color conversion.
5833 2019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com>
5835 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5836 libs: surface: fix double free when dmabuf export fails
5837 Happens if vaAcquireBufferHandle fails.
5839 2019-04-29 20:10:39 +0800 He Junyan <junyan.he@hotmail.com>
5841 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5842 libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
5844 2019-04-19 10:43:35 +0100 Tim-Philipp Müller <tim@centricular.com>
5848 * docs/plugins/inspect/plugin-vaapi.xml:
5852 === release 1.16.0 ===
5854 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5860 * gstreamer-vaapi.doap:
5864 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5866 * docs/plugins/inspect/plugin-vaapi.xml:
5869 2019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5871 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5872 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5873 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5874 libs: encoder: h264,h265: guard VA version for max_qp property
5875 This patch fixes a regression from commit 5b1fe9c6.
5876 max_qp, in rate control configuration, appeared in libva release
5877 2.1 (API 1.1), thus it is required to guard the VA API version.
5880 2019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com>
5882 * gst-libs/gst/vaapi/gstvaapiimage.c:
5883 * gst-libs/gst/vaapi/video-format.c:
5884 libs: Add RGB565 image format support.
5886 2019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5889 build: configure: delay USE_GTK conditional until check libva-x11
5890 libva-x11 is used for X11 applications, so it is required to build
5891 any GTK application.
5892 Later, when Wayland test is added, we should change this.
5894 2019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5897 build: configure: disable GLX if libva-x11 is not found
5899 2019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com>
5901 * gst-libs/gst/vaapi/gstvaapiutils.c:
5902 libs: utils: avoid macro evaluation when stringify
5903 string_of_va_chroma_format() gets a wrong string format description.
5904 For example, the YUV420_10BPP get a string of 0x00000100 as output.
5905 It's because VA_RT_FORMAT_xxx values are macro definitions. And
5906 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
5908 To avoid the macro evaluation, it is changed to show only the color
5909 format without VA_RT_FORMAT_ prefix.
5911 2019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5913 * gst-libs/gst/vaapi/gstvaapiutils.c:
5914 libs: utils: use glib's macros
5915 Don't reinvent the wheel.
5917 2019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com>
5919 * gst/vaapi/gstvaapipluginutil.c:
5920 plugins: find the preferred format from right caps.
5921 When the downstream has any caps, then raw video feature will
5922 be used. At this situation, the preferred format should be chose
5923 from caps which contains "vide/x-raw" feature instead of from
5924 the fist allowed caps.
5927 2019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5929 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5930 libs: encoder: h265: fill tier in va seq param buf
5931 Now that tier is calculated in commit 58e74f9440fe (!68),
5932 ensure we fill in the general_tier_flag in the
5933 VAEncSequenceParameterBufferHEVC.
5935 === release 1.15.90 ===
5937 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5943 * gstreamer-vaapi.doap:
5947 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5949 * docs/plugins/inspect/plugin-vaapi.xml:
5952 2019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com>
5954 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5955 libs: encoder: h265: Recognize the correct level and tier.
5956 The current manner can not recognize the correct level and always
5957 set the tier to main. Need to add frame rate check to recognize
5958 levels such as 4.1, 6.2, etc. We also add a logic to check main
5959 and high tier based on bitrate.
5962 2019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com>
5964 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5965 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5966 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5967 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
5968 media-driver currently fails to set a correct value of max_qp when
5969 min_qp is different to zero, in CBR and VBR mode, generating full
5970 quality frames, thus unexpected huge output.
5971 This patch sets max_qp to an arbitrary value to avoid this output
5975 2019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5977 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5978 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5979 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5980 libs: encoder: h264,h265: initial and minimal QP can be zero
5981 Currently the minimal value for either min_qp and init_qp are 1,
5982 but VA documentation specifiy that zero is also valid and means
5983 to ignore the quantiser.
5984 The default value is not changed though to avoid behaivor changes
5987 2019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
5989 * tests/elements/meson.build:
5990 meson: build test-vaapicontext when using X11
5991 x11_dep and libva_x11_dep are optional and meson ignores these
5992 dependencies even if they are added into the dependency list.
5993 This fixes the error below when libva-x11 is not avaiblabe:
5994 cc -Itests/elements/tests@elements@@test-vaapicontext@exe
5995 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
5996 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
5997 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
5998 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
5999 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
6000 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
6001 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
6002 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
6003 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
6004 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
6005 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
6006 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
6007 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
6008 -DHAVE_CONFIG_H -MD -MQ
6009 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
6011 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
6013 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
6014 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
6015 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
6016 error: va/va_x11.h: No such file or directory
6017 #include <va/va_x11.h>
6019 2019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com>
6021 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6022 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6023 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
6024 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
6025 GValueArray is deprecated. Use GstValueArray instead.
6027 2019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com>
6029 * gst/vaapi/gstvaapipluginutil.c:
6030 vaapipluginutil: Fix #endif for USE_X11
6032 2019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6034 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6035 libs: encoder: h264: simplify the view-ids setting
6037 2019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com>
6039 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6040 libs: encoder: h264: Use gst_param_spec_array for view-ids
6041 GValueArray is deprecated. Use GstValueArray instead.
6042 gst_param_spec_array can be deserialized from command line using:
6043 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
6044 While the g_param_spec_value_array() can not, and always get
6045 error: "gst_value_deserialize_g_value_array: unimplemented"
6046 Also fixed an out-of-range bug.
6048 2019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com>
6050 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
6051 libs: Change the parameter setting order when encode picture.
6052 The order in gst_vaapi_enc_picture_encode when encoding one
6053 picture is not very correct. The misc parameters are set before
6054 the picture parameters. Some of the misc parameters such as
6055 ROI may change the current picture parameters. But the later
6056 setting of picture parameter will re-init all picture related
6057 parameters and clear the previous setting. The right order
6058 should be picture parameter first and then misc parameters.
6059 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6061 2019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com>
6063 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6064 libs: decoder: jpeg: support dynamic resolution change decode.
6065 Add size_changed flag to watch out resolution. if change, reset
6066 jpeg decoder's context.
6068 2019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com>
6070 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6071 libs: encoder: h265: add low power mode encode.
6072 By now, this feature only support by media-driver on Ice Lake
6073 platform, more information you can reference:
6074 https://github.com/intel/media-driver
6076 2019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com>
6078 * gst/vaapi/gstvaapiencode.c:
6079 vaapiencode: gobject's prop_id differ from vaapi encoder
6080 The vaapi internal encoder's property id are negative, thus they are
6081 different from GObject's property ids.
6082 gst_vaapi_encoder_set_property() should map to the internal encoder
6083 property id, assigned in gst_vaapiencode_default_set_property().
6085 2019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com>
6088 meson: disable compiler warnings for unused vars and args if gst debug system is disabled
6090 2019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com>
6093 meson: use new 'python' module instead of deprecated 'python3' one
6095 2019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com>
6098 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
6099 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
6101 2019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
6106 * docs/plugins/inspect/plugin-vaapi.xml:
6110 2019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com>
6112 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
6113 libs: Fix a typo in comments.
6114 Fix a typo in function description of
6115 gst_vaapi_surface_pool_new_with_chroma_type.
6116 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6118 2019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6120 * gst/vaapi/gstvaapipluginutil.c:
6121 plugin: if any caps in downstream, negotiate raw video
6122 When downstream has any caps, vaapi should not shovel vaapi featured
6123 buffers, but rather plain raw video, assuming always the worst case
6124 scenario (downstream cannot handle featured video memory but raw
6125 system memory buffers).
6126 This patch query the peer caps without any filter, to know if
6127 donwstream just ask for any caps, if so jump to the color space
6128 checking, otherwise do the caps intersection and continue with the
6129 feature selection algorithm.
6132 === release 1.15.2 ===
6134 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6140 * gstreamer-vaapi.doap:
6144 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6146 * docs/plugins/inspect/plugin-vaapi.xml:
6149 2019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com>
6151 * gst/vaapi/gstvaapivideomemory.c:
6152 vaapivideomemory: Prefer same format for surface and image
6153 We prefer to use the same format between image and surface for gst
6154 vaapi allocator. The old way may choose different formats between
6155 image and surface. For example, the RGBA image may have a NV12 surface.
6156 So we need to do format conversion when we put/get image to surface.
6157 Some drivers such as iHD can not support such conversion and always
6158 cause a data flow error. There may also have some performance cost
6159 for format conversion when put/get images.
6160 So we prefer to use the same format for image and surface in the
6161 allocator. If the surface can not support that format, we then
6162 fallback to find a best one as the surface format.
6163 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
6165 2019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com>
6167 * gst-libs/gst/vaapi/video-format.c:
6168 libs: Delete the duplicated ARGB video format.
6169 Two ARGB formats with the same format information.
6170 Should be verbose and delete one.
6171 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6173 2019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com>
6176 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6177 glx: Stop specifying GLX_DEPTH_SIZE
6178 This code is just confused. It's asking for at least as many bits of
6179 (z-axis) depth as the root window has bits of (color) depth. For rgb565
6180 or rgb888 this is harmless, but at 10 bits per channel this demands a
6181 30-bit or deeper Z buffer. While some hardware could in principle do a
6182 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
6184 We're not actually using the Z buffer, so just stop asking for one.
6186 2019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com>
6189 * gst-libs/gst/vaapi/Makefile.am:
6190 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6191 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
6192 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6193 * gst-libs/gst/vaapi/meson.build:
6194 * gst/vaapi/gstvaapisink.c:
6196 libs: wayland: add support for XDG-shell protocol
6197 [wl_shell] is officially [deprecated], so provide support for the
6198 XDG-shell protocol should be provided by all desktop-like compositors.
6199 (In case they don't, we can of course fall back to wl_shell).
6200 Note that the XML file is directly provided by the `wayland-protocols`
6201 dependency and generates the protocol marshalling code.
6202 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
6203 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
6205 2019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com>
6207 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6208 libs: window: wayland: Prefix wl_shell_surface field with `wl_`
6209 It will help us to distinguish from other Wayland shell surface
6210 (such as XDG-shell) later on.
6212 2019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com>
6214 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6215 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
6216 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6217 libs: wayland: Prefix wl_shell field with `wl_`
6218 It will help us to distinguish from other Wayland shells (such as
6219 XDG-shell) later on.
6221 2019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com>
6223 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6224 libs: display: lock ensure_profile()
6225 Thread safety patch for ensure_profile() function
6228 2019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6231 meson: bump the minimum wayland version requirement to 1.11.0
6232 This was missed on commit 77bb3424
6234 2019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6236 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6237 * gst/vaapi/gstvaapisink.c:
6238 vaapisink: x11: trap WM_DELETE_WINDOW message
6239 Register the WM_DELETE_WINDOW message from window manager and
6240 trap it to stop the pipeline cleanly.
6241 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
6243 2019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6245 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6246 libs: window: remove native-id property
6247 native-id property is problematic since the variable that stores it is
6248 gsize, which is platform specific, and in some is bigger than unsigned
6249 long, and there are not way to handle gsize properties.
6250 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
6251 like to keep using it for this scope.
6252 This patch removes the native-id property and set it manually in
6253 gst_vaapi_window_new_internal().
6255 2019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6257 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6258 libs: window: use G_GSIZE_MODIFIER for window id
6259 gsize type is not equal in all platforms, then the 'l' print modifier
6260 shall not be used always.
6261 This issue was found in Debian builds.
6263 2019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com>
6265 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6266 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6267 encoder: h264/h265: set SPS cbr_flag with correct value.
6268 The flag only set as 1 when the rate-control mode is CBR.
6270 === release 1.15.1 ===
6272 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
6278 * gstreamer-vaapi.doap:
6282 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
6284 * docs/plugins/inspect/plugin-vaapi.xml:
6287 2019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6289 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6290 libs: encoder: refactor to avoid code duplication
6291 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
6292 the same code segment where the coded buffer is created, the picture
6293 encoded on it and pushed to the async queue.
6294 The function gst_vaapi_encoder_encode_and_queue() refactor this.
6296 2019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6298 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6299 * gst-libs/gst/vaapi/gstvaapiencoder.h:
6300 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6301 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6302 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
6303 libs: encoder: h264/h265: flush pending ordered pictures
6304 In order to flush the pending pictures, a new internal encoder vmethod
6305 is used: get_pending_reordered()
6306 This method follows an iterator pattern which will return the next
6307 picture to encode and push.
6308 The base encoder will call this function in a loop when flush() is called.
6309 For now, only H.264 and H.265 encoders implement this flushing mechanism.
6311 2018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.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 libs: encoder: h264/h265: fix encode lose frame issue.
6318 Instead of dropping all remain frames in reorder_frame_list during
6319 flush, keep encoding.
6320 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
6322 2019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com>
6324 * gst/vaapi/gstvaapipostproc.c:
6325 vaapipostproc: before set surface proxy, check if it already been created and exist.
6326 Fix the deinterlace black frame when playing with glimagesink:
6327 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
6328 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
6330 2019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com>
6332 * gst-libs/gst/vaapi/gstvaapiutils.c:
6333 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
6335 2018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
6337 * gst-libs/gst/vaapi/meson.build:
6338 * gst/vaapi/meson.build:
6340 * tests/meson.build:
6341 meson: build h264 fei encoder if possible
6343 2018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
6346 configure: bump the minimum wayland version requirement to 1.11.0
6348 2018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com>
6351 * gst-libs/gst/vaapi/Makefile.am:
6352 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6353 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6354 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6355 * gst-libs/gst/vaapi/gstvaapicompat.h:
6356 * gst-libs/gst/vaapi/gstvaapicontext.c:
6357 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6358 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
6359 * gst-libs/gst/vaapi/gstvaapifilter.c:
6360 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6361 * gst-libs/gst/vaapi/gstvaapisurface.c:
6362 * gst-libs/gst/vaapi/gstvaapiutils.c:
6363 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
6364 * gst-libs/gst/vaapi/meson.build:
6365 * gst/vaapi/Makefile.am:
6366 * gst/vaapi/gstvaapi.c:
6367 * gst/vaapi/gstvaapidecode.c:
6368 * gst/vaapi/gstvaapidecodebin.c:
6369 * gst/vaapi/gstvaapipluginbase.c:
6370 * gst/vaapi/meson.build:
6373 * tests/simple-decoder.c:
6374 vaapi: bump the minimum vaapi version requirement to 0.39.0
6375 And reduce unnecessary API version and structures check as well.
6376 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
6378 2018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6380 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6381 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6382 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6383 * tests/test-decode.c:
6384 * tests/test-filter.c:
6385 * tests/test-subpicture.c:
6386 * tests/test-textures.c:
6387 * tests/test-windows.c:
6388 libs: window: remove custom ref() and unref()
6389 Use gst_object_ref() and gst_object_unref() instead.
6391 2018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6393 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6394 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6395 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6396 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6397 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6398 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6399 libs: window: use its own debug category
6401 2018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6403 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6404 * gst-libs/gst/vaapi/gstvaapiwindow.h:
6405 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6406 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
6407 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6408 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
6409 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6410 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
6411 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6412 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6413 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
6414 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6415 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
6416 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6417 libs: window: refactor as gobject
6418 This is another step in the gobjectification of the internal library
6419 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
6421 The idea is to minimize the changeset keeping the same design as
6423 GstVaapiWindow is defined as an abstract class with two properties:
6424 the GstVaapiDisplay and the native ID. Thus, many of the
6425 GstVaapiObject macros were copied as GstVaapiWindow macros.
6426 The function gst_vaapi_window_new_internal() is kept as a decorator
6427 of for calling gst_vaapi_window_create() and the possibility of
6429 The descendant classes, such as glx, still use the private
6430 structures, but through the gobject mechanism.
6432 2018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6434 * gst-libs/gst/vaapi/gstvaapifilter.c:
6435 libs: filter: use its own debug category
6437 2018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com>
6439 * gst/vaapi/gstvaapidecode.c:
6440 * gst/vaapi/gstvaapipluginbase.c:
6441 * gst/vaapi/gstvaapipluginbase.h:
6442 * gst/vaapi/gstvaapipostproc.c:
6443 * gst/vaapi/gstvaapisink.c:
6444 plugins: Add more check for allowed raw caps.
6445 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
6446 pad and src pad, which cause some bugs. For sink pad, we need to verify
6447 vaPutImage() while for the src pad we need to verify vaGetImage().
6448 For vaapidecoderXXX kind of plugins, the case is more complex. We need
6449 to verify whether the decoded result(in some surface, NV12 format most
6450 of the time) can be vaGetImage to some raw image format. Add more check
6451 to fix all these problems.
6452 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
6453 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6455 2018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com>
6457 * gst/vaapi/gstvaapipostproc.c:
6458 vaapipostproc: fix csc fail when only change width or height.
6460 2018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com>
6462 * tests/elements/meson.build:
6463 meson: Add gtk guard
6465 2018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com>
6467 * gst/vaapi/gstvaapiencode_h264.c:
6468 libs: enc: h264: set max profile idc with correct profile.
6469 Use the highest rank of available profile as the max profile to
6471 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
6473 2018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com>
6475 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6476 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6477 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6478 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
6479 This gets rid of the strange `do_init` macro and makes the intent a bit
6482 2018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com>
6485 Automatic update of common submodule
6486 From ed78bee to 59cb678
6488 2018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com>
6490 * gst-libs/gst/vaapi/gstvaapiimage.c:
6491 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6492 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6493 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6494 * gst-libs/gst/vaapi/video-format.c:
6495 * gst/vaapi/gstvaapidecode.c:
6496 * gst/vaapi/gstvaapipluginutil.h:
6497 libs: dec: h265: support decode for main-444 10bit streams.
6498 Add 444 10bit yuv format Y410, which can be used to decode
6499 main-444 10bit streams. Currently, this feature is only
6500 supported by media-driver in Icelake.
6502 2018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com>
6504 * gst/vaapi/gstvaapidecode.c:
6505 * gst/vaapi/gstvaapisink.c:
6506 Run gst-indent through the files
6507 This is required before we enabled an indent test in the CI.
6508 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
6510 2018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com>
6512 * gst/vaapi/gstvaapipluginbase.c:
6513 plugins: modify image check of extract_allowed_surface_formats.
6514 The extract_allowed_surface_formats function just check whether
6515 we can support some kind of surface/image format pair. We just
6516 need to create a surface, create an image with the same video-format
6517 and putImage from image to surface. All these operations success,
6518 that kind of video-format is supported.
6519 The old manner do not work for some kind of video-format. For example,
6520 the RGBA kind of format will create a NV12 surface and RGBA image,
6521 and the putImage will fail because the format is not same. And so
6522 the RGBA format is not supported but actually it is supported.
6524 2018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6526 * gst/vaapi/gstvaapipostproc.c:
6527 vaapipostproc: add some missing locking
6528 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
6529 in gst_vaapipostproc_transform_caps(). The usage is already protected by
6531 This is needed when the pipeline is stopped during startup.
6533 2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com>
6535 * gst/vaapi/gstvaapivideomemory.c:
6537 Otherwise it will result in resource leak when failed to create
6540 2018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6542 * gst/vaapi/gstvaapiencode.c:
6543 vaapiencode: don't start src pad task in set_format
6544 Otherwise the task may be restarted during shutdown. Start the task in
6545 gst_vaapiencode_handle_frame() instead.
6547 2018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com>
6549 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6550 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6551 * gst-libs/gst/vaapi/gstvaapiutils.c:
6552 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6553 * gst/vaapi/gstvaapidecode.c:
6554 * gst/vaapi/gstvaapipluginutil.h:
6555 libs: dec: h265: support decode for main-444 8bit streams.
6556 Add 444 8bit yuv format AYUV, which can be used to decode
6557 main-444 8bit streams. Currently, this feature is only
6558 supported by media-driver in Icelake.
6559 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
6561 2018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6564 Add Gitlab CI configuration
6565 This commit adds a .gitlab-ci.yml file, which uses a feature
6566 to fetch the config from a centralized repository. The intent is
6567 to have all the gstreamer modules use the same configuration.
6568 The configuration is currently hosted at the gst-ci repository
6569 under the gitlab/ci_template.yml path.
6570 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
6572 2018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com>
6574 * gst-libs/gst/vaapi/gstvaapisurface.h:
6575 * gst-libs/gst/vaapi/gstvaapiutils.c:
6576 libs: Sync the GstVaapiChromaType to VA header file.
6577 Add more kinds of chrometype which will be used to describe
6578 new video formats. Sync it with 1.4.0 version header file.
6579 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
6580 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6582 2018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com>
6584 * gst-libs/gst/vaapi/meson.build:
6585 meson: link with -lm
6586 Fixes #117 hopefully.
6588 2018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6591 meson: bump meson required to 0.47 for feature options
6593 2018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com>
6595 * gst-libs/gst/vaapi/video-format.c:
6596 libs: Modify the video format of endianness.
6597 We lack some video format because endianness declare.
6598 The video format should not directly relate to endianness. For example,
6599 ARGB on big endian should not be simplely seen as BGRA on little endian
6600 machine. We should provide endianess convert or format convert help
6601 functions if endianness does not match.
6602 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
6603 Signed-off-by: Junyan He <junyan.he@intel.com>
6605 2018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com>
6607 * gst/vaapi/gstvaapipluginutil.c:
6608 plugins: Fix build error when GL is enabled while EGL is disabled.
6609 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
6610 unused-variable warning and may block build when Werror enabled.
6611 Several functions like gst_vaapi_display_egl_new_with_native_display
6612 have no prototype warning and link error when GL is enabled but EGL
6613 is disabled. Fix all these warning and link error.
6614 https://bugzilla.gnome.org/show_bug.cgi?id=797358
6615 Signed-off-by: Junyan He <junyan.he@intel.com>
6617 2018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com>
6619 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6620 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6621 libs: encoder: h264/h264fei: remove unuseless code.
6622 The variable are set twice, remove previous one.
6623 https://bugzilla.gnome.org/show_bug.cgi?id=797365
6625 2018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com>
6627 * tests/simple-encoder.c:
6628 * tests/test-fei-enc-in.c:
6629 tests: check return value when using gst_buffer_map.
6630 https://bugzilla.gnome.org/show_bug.cgi?id=797366
6632 2018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6635 * meson_options.txt:
6636 * tests/elements/meson.build:
6637 * tests/meson.build:
6638 build: meson: build examples
6640 2018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6642 * gst-libs/gst/vaapi/meson.build:
6643 build: meson: declare headers for libgstvaapi
6644 Thus handling its recompilation if needed.
6646 2018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com>
6649 Update common submodule location
6650 Remove the git directory
6652 2018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
6655 * gstreamer-vaapi.doap:
6656 Clone the code from gitlab
6657 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
6659 2018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com>
6661 * gst-libs/gst/vaapi/gstvaapiimage.c:
6662 * gst-libs/gst/vaapi/gstvaapisurface.h:
6663 * gst-libs/gst/vaapi/gstvaapiutils.c:
6664 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6665 * gst-libs/gst/vaapi/video-format.c:
6666 * gst/vaapi/gstvaapidecode.c:
6667 * gst/vaapi/gstvaapipluginutil.h:
6668 libs: dec: h265: support decode for main-10-422 10bit streams.
6669 Add 422 10bit yuv format Y210, which can be used to decode
6670 main-10-422 10bit streams. Currently, this feature is only
6671 supported by media-driver in Icelake.
6672 https://bugzilla.gnome.org/show_bug.cgi?id=797264
6674 2018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com>
6676 * gst-libs/gst/vaapi/gstvaapicontext.c:
6677 libs: context: roi_rc_qp_delta_support should not be checked when CQP.
6678 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
6679 rate control mode is set as CQP. In CQP mode, it shouldn't check
6680 roi_rc_qp_delta_support return value from driver backend.
6681 https://bugzilla.gnome.org/show_bug.cgi?id=797087
6683 2018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6685 * gst/vaapi/gstvaapipostproc.c:
6686 vaapipostproc: fix classification string
6687 The classification string is splitted by '/' and then looks for the
6689 This patch removes the ';' by unifying all the components.
6691 2018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com>
6693 * gst/vaapi/gstvaapipostproc.c:
6694 vaapipostproc: Add Hardware classifier to metadata
6696 2018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com>
6698 * gst-libs/gst/vaapi/gstvaapicontext.c:
6699 libs: context: create context first before using it to create surface.
6700 In gst_vaapi_context_reset(), if the context has to be destroyed, make
6701 sure to create it first before allocating its associated surfaces.
6702 This patch fixes a regression introduced in commit 82872f4 because
6703 the formats available in the current context now are ensured before
6704 creating the context's surfaces.
6705 https://bugzilla.gnome.org/show_bug.cgi?id=797277
6707 2018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com>
6709 * docs/plugins/inspect/plugin-vaapi.xml:
6710 * gst/vaapi/gstvaapidecode.c:
6711 * gst/vaapi/gstvaapiencode_h264.c:
6712 * gst/vaapi/gstvaapiencode_h264_fei.c:
6713 * gst/vaapi/gstvaapiencode_h265.c:
6714 * gst/vaapi/gstvaapiencode_jpeg.c:
6715 * gst/vaapi/gstvaapiencode_mpeg2.c:
6716 * gst/vaapi/gstvaapiencode_vp8.c:
6717 * gst/vaapi/gstvaapiencode_vp9.c:
6718 gst: Advertise elements interacting with hardware devices
6720 2018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com>
6722 * gst-libs/gst/vaapi/gstvaapicontext.c:
6723 * gst-libs/gst/vaapi/gstvaapisurface.c:
6724 * gst-libs/gst/vaapi/gstvaapisurface.h:
6725 libs: context: query surface format before context to create surface.
6726 Before using context to create surface, the supported surface format
6727 should be checked first.
6728 https://bugzilla.gnome.org/show_bug.cgi?id=797222
6730 2018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6732 * gst-libs/gst/vaapi/gstvaapiimage.c:
6733 * gst-libs/gst/vaapi/gstvaapivalue.c:
6734 libs: replace g_error with GST_ERROR
6735 And handle those errors rather than halting.
6737 2018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6739 * gst-libs/gst/vaapi/gstvaapiimage.c:
6740 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6741 * gst-libs/gst/vaapi/gstvaapisurface.c:
6742 libs: replace g_warning with GST_WARNING
6744 2018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6746 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6747 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6748 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6749 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
6750 libs: Move from g_debug to GST_DEBUG.
6751 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6753 2018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com>
6755 * gst/vaapi/gstvaapipostproc.c:
6756 vaapipostproc: change the way of handling deinterlace
6757 The current vaapipostproc calls driver's video processing
6758 pipeline for deinterlacing only if it is Advance deinterlacing.
6759 Modify in the way that it always tries with driver's video
6760 processing pipeline for deinterlacing, and falls back to software
6761 method of appending picture structure meta data only if it fails
6762 with driver's method.
6763 https://bugzilla.gnome.org/show_bug.cgi?id=797095
6765 2018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6767 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6768 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
6769 libs: h264: Update level table to "Recommendation H.264 (04/17)".
6770 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
6771 from T-REC-H.264-201704.
6772 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6774 2018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com>
6776 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6777 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6778 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6779 * gst-libs/gst/vaapi/gstvaapisurface.c:
6780 * gst-libs/gst/vaapi/gstvaapiutils.c:
6781 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6782 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
6783 * gst-libs/gst/vaapi/video-format.c:
6784 * gst-libs/gst/vaapi/video-format.h:
6785 * gst/vaapi/gstvaapidecode.c:
6786 * gst/vaapi/gstvaapipluginbase.c:
6787 * gst/vaapi/gstvaapipluginutil.h:
6788 libs: dec: h265: add 422 chroma format support.
6789 Add main-422-10 profile which support 422 chroma format stream.
6790 Currently, this feature is only supported by media-driver in Icelake.
6791 https://bugzilla.gnome.org/show_bug.cgi?id=797143
6793 2018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com>
6795 * tests/y4mreader.c:
6796 tests: include sysdeps.h in compilation unit
6797 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
6798 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6800 2018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6802 * tests/y4mreader.c:
6803 * tests/y4mreader.h:
6804 tests: fix compilation
6805 https://bugzilla.gnome.org/show_bug.cgi?id=797204
6807 2018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6809 * tests/y4mreader.h:
6810 tests: don's use sysdeps.h in header
6812 2018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6814 * gst-libs/gst/vaapi/gstvaapiutils.h:
6815 libs: utils: no need of include config.h
6817 2018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6821 * tests/test-decode.c:
6822 * tests/test-subpicture.c:
6823 tests: remove already include string.h
6824 Since sysdeps.h includes string.h there's no need to include it again.
6826 2018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6828 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6829 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6830 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6831 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6832 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6833 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6834 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6835 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6836 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6837 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6838 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6839 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6840 * gst-libs/gst/vaapi/gstvaapiimage.c:
6841 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6842 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6843 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6844 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6845 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6846 libs: remove already include string.h
6847 Since sysdeps.h includes string.h there's no need to include it again.
6849 2018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6851 * gst-libs/gst/vaapi/gstvaapiobject.h:
6852 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6853 * gst/vaapi/gstvaapivideometa_texture.c:
6854 libs: object: separation of internal API and plugins
6855 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
6856 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
6858 The purpose is readability.
6859 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6861 2018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6863 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
6864 libs: parser_frame: change macros for inlined functions
6865 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6867 2018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6869 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6870 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6871 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6872 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
6873 libs: videopool: remove unneeded code
6874 The removed code comes frome the bad practice of copy&paste. Better
6875 move it as internal function.
6876 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6878 2018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6880 * gst-libs/gst/vaapi/Makefile.am:
6881 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6882 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6883 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
6884 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
6885 * gst-libs/gst/vaapi/gstvaapiobject.c:
6886 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6887 * gst-libs/gst/vaapi/gstvaapipixmap.c:
6888 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
6889 * gst-libs/gst/vaapi/gstvaapitexture.c:
6890 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
6891 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6892 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6893 * gst-libs/gst/vaapi/meson.build:
6894 libs: remove dependency on IN_LIBGSTVAAPI_CORE
6895 This conditional code was when libgstvaapi was intended to be library
6896 used outside GStreamer. This not the case anymore, thus removing it.
6897 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6899 2018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com>
6901 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6902 libs: dec: h265: fix the macros used for IDC profile
6903 profile_idc flag in SPS only indicate the IDC profile, which may
6904 need some other flags together to get the real profile.
6905 https://bugzilla.gnome.org/show_bug.cgi?id=797160
6907 2018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com>
6909 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6910 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6911 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6912 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6913 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6914 libs: use g_clear_pointer() when possible
6915 https://bugzilla.gnome.org/show_bug.cgi?id=797131
6917 2018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6919 * gst-libs/gst/vaapi/gstvaapifilter.h:
6920 libs: filter: add gobject's cleanup function
6922 2018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6924 * gst-libs/gst/vaapi/gstvaapifilter.c:
6925 * gst-libs/gst/vaapi/gstvaapifilter.h:
6926 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6927 * tests/test-filter.c:
6928 libs: filter: remove custom ref() and unref()
6929 Replacing them by gst_object_ref() and gst_object_unref()
6930 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6932 2018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6934 * gst-libs/gst/vaapi/gstvaapifilter.c:
6935 * gst-libs/gst/vaapi/gstvaapifilter.h:
6936 libs: filter: refactor filter as gobject
6937 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6939 2018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6941 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6942 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6943 libs: decoder: remove destoy() and create() callbacks
6944 They were all replaced by reset()
6945 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6947 2018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6949 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6950 libs: decoder: vp9: implement reset() callback
6951 remove destroy() and create() callback
6952 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6954 2018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6956 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6957 libs: decoder: vp8: implement reset() callback
6958 remove create() and destroy() callbacks
6959 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6961 2018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6963 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6964 libs: decoder: vc1: implement reset() callback
6965 remove destroy() and create() callbacks
6966 use g_clear_pointer for rbdu_buffer
6968 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6970 2018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6972 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6973 libs: decoder: mpeg4: implement reset() callback
6974 remove destroy() and create() callback
6975 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6977 2018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6979 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6980 libs: decoder: mpeg2: implement reset() callback
6981 remove create() and destroy() callbacks
6982 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6984 2018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6986 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6987 libs: decoder: jpeg: implement reset() callback
6988 and remove create() and destroy() callbacks.
6989 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6991 2018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6993 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6994 libs: decoder: h265: implement reset() callback
6995 and remove create() and destroy()
6996 and use g_clear_pointer for dpb structure
6997 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6999 2018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7001 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7002 libs: decoder: h264: remove create() and destroy() callbacks
7003 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7005 2018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7007 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7008 * gst-libs/gst/vaapi/gstvaapidecoder.h:
7009 * tests/test-decode.c:
7010 * tests/test-subpicture.c:
7011 libs: decoder: remove gst_vaapi_decoder_unref()
7012 Replaced by gst_object_unref() in tests
7013 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7015 2018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7017 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7018 * gst-libs/gst/vaapi/gstvaapidecoder.h:
7019 libs: decoder: remove gst_vaapi_decoder_ref()
7020 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7022 2018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7024 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7025 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7026 libs: decoder: remove gst_vaapi_decoder_new()
7027 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7029 2018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7031 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7032 * gst-libs/gst/vaapi/gstvaapidecoder.h:
7033 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7034 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
7035 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7036 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
7037 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
7038 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
7039 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
7040 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
7041 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
7042 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7043 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7044 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
7045 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7046 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
7047 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
7048 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
7049 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
7050 libs: decoder: refactor decoders as gobject
7051 https://bugzilla.gnome.org/show_bug.cgi?id=796308
7053 2018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
7055 * gst/vaapi/gstvaapidecode.c:
7056 vaapidecode: Requests upstream a key unit at parse or decode error.
7057 This is done to resume decoding after a parse error or decode error.
7058 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
7060 2018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
7062 * gst/vaapi/gstvaapidecode.c:
7063 vaapidecode: sets return value in failure case.
7064 In gst_vaapidecode_handle_frame, when there is a decode error
7065 there is a code path the returns an uninitialized value.
7066 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
7068 2018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7070 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7071 libs: display: lock at extracting available image formates
7072 When running several vaapi elements at the concurrently, at
7073 initialization, there is a race condition when extractin the avaible
7074 formats for images and subpictures.
7075 This patch add a lock when the those arrays are filled.
7076 https://bugzilla.gnome.org/show_bug.cgi?id=797039
7078 2018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
7081 meson: Sync libversion and osxversion code from other repos
7082 gstreamer-vaapi does not build any libraries, only plugins, so this is
7083 not used, but sync it just in case someone does add it in the future.
7085 2018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7087 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
7088 libs: encoder: h265: trivial documentation fix
7090 2018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com>
7092 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7093 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
7094 libs: encoder: h265: add low delay B frame support.
7095 Low delay B frame provide the function of transforming
7096 P frame into low delay B frame which frame type is B, but
7097 only reference predictive frames. This can be used when P
7098 frame unsupported. Especially for P and B both unsupported,
7099 in this case, I and low delay B frame can be encoded in a
7101 https://bugzilla.gnome.org/show_bug.cgi?id=796984
7103 2018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7105 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7106 libs: decoder: h264: Avoid using picture after it has been free
7107 In some cases, the found_picture ended up being evicted and freed, which
7108 would lead to a use after free when accessing picture->base.poc. In this
7109 fix, we take a ref on the picture before calling dpb_evict.
7110 https://bugzilla.gnome.org/show_bug.cgi?id=787124
7112 2018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7114 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7115 h264decoder: Fail decoding slice with missing inter-view reference
7116 Similarly to previous patch, we have no error concealment. As a side
7117 effect, it's better to skip slices with missing references then passing
7118 NULL pointers to the accelerator. Passing NULL pointer would lead to
7119 major visual artifact, a behaviour that is likely undefined.
7120 https://bugzilla.gnome.org/show_bug.cgi?id=787124
7122 2017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com>
7124 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7125 libs: decoder: h264: reset context when the number of view is increased
7126 Usually in case of MVC decoding, dpb size is increasedi if subset sps.
7127 That's why it resets context without this patch.
7128 But for some media it doesn't increase dpb size. Even in this case we
7129 should reset context to deal with MVC decoding.
7130 Otherwise, it leads to assert.
7131 https://bugzilla.gnome.org/show_bug.cgi?id=787124
7133 2018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7135 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7136 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7137 * gst/vaapi/gstvaapidecode.c:
7138 vaapidecode: Skip unparsable units from adapter
7139 If the unit could not be parsed, just skip this nal and keep parsing
7140 what is left in the adapter. We need to flush the broken unit in the
7141 decoder specific parser because the generic code does not know about
7142 units boundary. This increases error resilliance.
7143 Before this, the broken unit would stay in the adapter and EOS would be
7144 returned. Which stopped the streaming. Just removing the EOS would have
7145 lead to the adapter size growing indefinitely.
7146 https://bugzilla.gnome.org/show_bug.cgi?id=796863
7148 2018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7150 * gst/vaapi/gstvaapidecode.c:
7151 vaapidecoder: Don't error out on decode errors
7152 This is problematic on live pipeline where loosing network can
7153 cause an important amount of errors.
7154 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7156 2018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7158 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
7159 h265decoder: Don't scan empty buffer
7160 Same as what we did for H264 decoder, this is to avoid an assertion
7162 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7164 2018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7166 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7167 libs: h264: renable the vaapi category for logging
7168 h264 log messages were logged in default category because a regression
7169 in code. This patch renable the usage of vaapi logging category.
7170 This regression was introduced in commit 7c365bdd.
7172 2018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7174 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7175 h264decoder: Fail decoding slice if modification process failed
7176 This patch chains up failure to executing the modification process. The
7177 end result is that we now fail decoding the slice if this process fails.
7178 This avoid sending a corrupted state to the accelerator. In some special
7179 cases, this could lead to unrecoverable errors.
7180 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7182 2018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7184 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7185 h264decoder: Don't scan empty buffer
7186 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
7187 try and scan in that case. This fixes assertion that would some times
7188 happen when the stream is corrupted.
7189 https://bugzilla.gnome.org/show_bug.cgi?id=796832
7191 2018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com>
7193 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7194 libs: encoder: jpeg: set component id and Tqi
7195 This change is due a problem encoding JPEGs with Intel's
7196 media-driver: green/black image when playback jpeg
7197 This patch sets component identifier and quantization table
7198 destination selector in frame header to support packing headers
7199 by Intel's media-driver that does not accept packed header
7201 https://bugzilla.gnome.org/show_bug.cgi?id=796705
7203 2018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com>
7205 * gst/vaapi/gstvaapipluginutil.c:
7206 pluginutil: downgrade unsupported driver logging
7207 On systems with an Nvidia card, this error is output each time
7208 the registry is rebuilt, which happens pretty often when
7209 using gst-build as a development environment.
7210 https://bugzilla.gnome.org/show_bug.cgi?id=796663
7212 2018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com>
7214 * gst/vaapi/gstvaapivideobufferpool.c:
7215 Update for g_type_class_add_private() deprecation in recent GLib
7217 2018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7219 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7220 h264dec: Remove false assumption about parity order
7221 The decoder was trying to detect earlier that a field was lost base
7222 on guessing the parity order. This breaks in streams were the parity
7224 This patch reverts the field order prediction code added by commit
7226 https://bugzilla.gnome.org/show_bug.cgi?id=796169
7228 2018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7230 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7231 h264dec: Properly set sentinel in ref frame list
7232 This ensure that we always have sentinels set in the reference
7233 pictures arrays. The code wasn't unsafe, this simply improve the
7234 tracing, so instead of printing 32 lines of zeros, va tracer
7235 prints proper empty lists.
7236 https://bugzilla.gnome.org/show_bug.cgi?id=796169
7238 2018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7240 * gst-libs/gst/vaapi/gstvaapidecoder.c:
7241 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7242 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7243 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7244 * gst-libs/gst/vaapi/gstvaapifilter.c:
7245 * gst-libs/gst/vaapi/gstvaapiobject.c:
7246 * gst-libs/gst/vaapi/gstvaapivideopool.c:
7247 * gst/vaapi/gstvaapipluginbase.c:
7248 * gst/vaapi/gstvaapivideometa.c:
7249 * tests/test-decode.c:
7250 libs: display: remove gst_vaapi_display_ref()
7251 Replace it with gst_object_ref()
7252 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7254 2018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7256 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7257 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7258 * gst/vaapi/gstvaapi.c:
7259 * gst/vaapi/gstvaapidecode.c:
7260 * gst/vaapi/gstvaapiencode.c:
7261 * gst/vaapi/gstvaapipluginbase.c:
7262 * gst/vaapi/gstvaapipluginutil.c:
7264 * tests/simple-encoder.c:
7265 * tests/test-decode.c:
7266 * tests/test-display.c:
7267 * tests/test-fei-enc-in.c:
7268 * tests/test-filter.c:
7269 * tests/test-subpicture.c:
7270 * tests/test-surfaces.c:
7271 * tests/test-textures.c:
7272 * tests/test-windows.c:
7273 libs: display: remove gst_vaapi_display_unref()
7274 Use gst_object_unref() instead.
7275 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7277 2018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7279 * gst/vaapi/gstvaapivideobufferpool.c:
7280 vaapibufferpool: declare parameter display as object
7281 We have neglected to update this code since GstVaapiDisplay turned
7282 into a GstObject descendant.
7283 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7285 2018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
7287 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7288 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7289 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7290 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
7291 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7292 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7293 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7294 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
7295 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
7296 But still something breaking GObject code convention remains, which is
7297 calling gst_vaapi_display_new() in each decendants.
7298 This patch replaces it with gst_vaapi_display_config(), defined in private
7300 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7302 2018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7304 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7305 libs: display: redefine gst_vaapi_display_create()
7306 The function name was gst_vaapi_display_create_unlocked(), nonetheless
7307 it wasn't called unlocked. In order to keep the semantics this patch
7308 renames the gst_vaapi_display_create_unlocked() as
7309 gst_vaapi_display_create(), removing the previous function
7310 gst_vaapi_display_create().
7311 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7313 2018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7316 Revert "build: meson: libva gst-uninstall friendly"
7317 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
7319 2018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7321 * gst/vaapi/gstvaapipluginutil.c:
7322 plugins: fix compilation
7323 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
7325 2018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7328 build: meson: libva gst-uninstall friendly
7329 Make gstreamer-vaapi to use libva uninstalled.
7331 2018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7333 * gst/vaapi/gstvaapipluginutil.c:
7334 plugins: refactor gst_vaapi_create_display_from_gl_context()
7335 gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
7336 This path refactors it, in order to make the code readable and
7338 https://bugzilla.gnome.org/show_bug.cgi?id=796564
7340 2018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7342 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7343 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7344 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7345 libs: display: resurrect parent private member
7346 This is, practically, a revert of commit dcf135e2.
7347 The parent logic is useful for the EGL display, which is a decorator
7348 of the real windowing subsystem (X11 or Wayland). Thus it is avoided
7349 calling vaInitialize() and vaTerminate() twice.
7350 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7352 2018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7354 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7355 libs: display: egl: initialize params structure
7356 Statically initialise the internal params structure.
7357 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7359 2018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7361 * gst/vaapi/gstvaapipluginutil.c:
7362 plugins: handle EGL when creating VAAPI display from gl
7363 If GstGL reports a EGL platform force to create a EGL display using
7364 the native EGL display.
7365 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7367 2018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com>
7369 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7370 * gst/vaapi/gstvaapipluginutil.c:
7371 display: egl: create VaapiDisplayEGL with native EGL display
7372 gst_vaapi_display_egl_new_with_native_display() has been broken since
7374 Currently it's needed to call this API to create a display providing
7375 the EGL display, so it could avoid duplicated calls to the native
7376 display (eg. eglTerminate).
7377 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
7378 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7380 2018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com>
7382 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
7383 libs: decoder: release VA buffers after vaEndPicture
7384 This change is due a problem decoding JPEGs with Intel's media-driver:
7385 no image was generated.
7386 This patch relases the VA buffers after vaEndPicture() is called,
7387 and not before (after vaRenderPicture()).
7388 https://bugzilla.gnome.org/show_bug.cgi?id=796505
7390 2018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com>
7392 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7393 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
7394 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
7395 meson: fix build when xrender or xrandr are not available
7396 HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
7398 2018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7400 * gst/vaapi/gstvaapipostproc.c:
7401 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
7402 Otherwise a reference to a DMABuf input buffer is kept until the output
7404 https://bugzilla.gnome.org/show_bug.cgi?id=796399
7406 2018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7408 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7409 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7410 libs: display: remove unnecessary legacy code since gobjectification
7411 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7413 2018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com>
7415 * gst-libs/gst/vaapi/gstvaapidisplay.c:
7416 * gst-libs/gst/vaapi/gstvaapidisplay.h:
7417 libs: display: remove unused code
7418 https://bugzilla.gnome.org/show_bug.cgi?id=796470
7420 2018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7422 * gst/vaapi/gstvaapiencode_h264.c:
7423 vaapiencode: h264: log output caps
7425 2018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7427 * gst/vaapi/gstvaapiencode_h264.c:
7428 vaapiencode: h264: find profile in available and allowed caps
7429 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
7430 find best profile in those available") changed the code to pick a profile
7431 that is actually supported by the hardware. Unfortunately it dropped the
7432 downstream constraints. This can cause negotiation failures under certain
7434 The fix is split in two cases:
7435 1\ the available VA-API caps doesn't intersect with pipeline's allowed
7437 * The best allowed profile (pipeline's caps) is set as the encoding
7438 target profile (it will be adjusted later by the available profiles
7440 2\ the available VA-API caps does intersect with pipeline's allowed
7442 * The intersected caps are fixed, and its profile is set as the
7443 encoding target profile. In this case the is not the best profile,
7444 but the minimal one (if VA-API reports the profiles in order).
7445 Setting the minimal profile of the intersected caps is better for
7447 This patch fixes other tests related with caps negotiation, for
7448 example, it handles baseline profile, even when VA only supports
7449 constrained-baseline.
7450 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
7451 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7453 2018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com>
7455 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7456 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
7457 The specification says,
7458 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
7459 This patch changes the upper limit from 6 to 12.
7460 https://bugzilla.gnome.org/show_bug.cgi?id=796179
7462 2018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7464 * gst/vaapi/gstvaapipluginutil.c:
7465 plugins: guard GstGL code
7467 2018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7469 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7470 libs: decoder: h264: use g_clear_pointer()
7472 2018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7474 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7475 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7476 libs: decoder: mpeg4, vc1: remove unused header
7478 2018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7480 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7481 libs: decoder: remove unused forward declaration
7483 2018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
7486 fix configure.ac regression
7487 Fixes regression introduced by 77527d67abe
7488 https://bugzilla.gnome.org/show_bug.cgi?id=795885
7490 2018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7492 * gst-libs/gst/Makefile.am:
7493 * gst-libs/gst/base/Makefile.am:
7494 * gst-libs/gst/base/gstbitwriter.c:
7495 * gst-libs/gst/base/gstbitwriter.h:
7496 * gst-libs/gst/base/meson.build:
7497 * gst-libs/gst/meson.build:
7498 * gst-libs/gst/vaapi/Makefile.am:
7499 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7500 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7501 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7502 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7503 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7504 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7505 * gst-libs/gst/vaapi/meson.build:
7506 libs: remove gstbitwriter
7507 Since it is deployed in gstreamer-core, there is no need to use
7509 https://bugzilla.gnome.org/show_bug.cgi?id=795848
7511 2018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com>
7513 * gst/vaapi/gstvaapidecode.c:
7514 vaapih264dec: add constrained and progressive profiles
7515 Those profiles have been added in the version 2012-01
7516 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
7517 Both are supported by VAProfileH264High
7518 https://bugzilla.gnome.org/show_bug.cgi?id=795624
7520 2018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7522 * gst/vaapi/gstvaapipluginbase.c:
7523 * gst/vaapi/gstvaapipluginutil.c:
7524 * gst/vaapi/gstvaapivideocontext.c:
7525 * gst/vaapi/gstvaapivideocontext.h:
7526 plugin: remove custom GstGL context handling
7527 Instead of using our own context handling for looking for GstGL
7528 parameters (display, context and other context), this patch changes
7529 the logic to use the utility function offered by GstGL.
7530 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7532 2018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7534 * gst/vaapi/gstvaapipluginbase.c:
7535 plugins: GstGL API must use the member variables
7536 This commit basically is a revert of commits 8092537 and fc1c415
7537 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7539 2018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com>
7541 * gst/vaapi/gstvaapipluginbase.c:
7542 plugins: pass members as parameters of gst_gl_ensure_element_data()
7543 The parameters of gst_gl_ensure_element_data() have to be not
7544 local variable since they are going to be used to see if they're
7545 set in gst_element_set_context() inside the API.
7546 This is basically a revert of commit 3d56306c
7547 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7549 2018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7552 meson: fix USE_GLES_VERSION_MASK
7553 1. The macro in the code is USE_GLES_VERSION_MASK
7554 2. glesv3 is provided by glesv2 pkg-config, then it's required to
7556 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7558 2018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com>
7560 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7561 libs: egl: utils: mark context as wrapped when it is
7562 The returning egl context may be null, so we should check the
7564 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7566 2018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7568 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7569 libs: egl: utils: fix usage of GstGL macros
7570 Include gl.h for the required GstGL symbols.
7571 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7573 2018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com>
7576 meson: use -Wl,-Bsymbolic-functions where supported
7577 Just like the autotools build.
7579 2018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7582 meson: use get_pkgconfig_variable()
7583 Use get_pkgconfig_variable() method, of dependency class, rather
7584 than using run_command().
7586 2018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com>
7588 * gst-libs/gst/base/meson.build:
7589 * gst-libs/gst/vaapi/meson.build:
7591 meson: fix miscellaneous meson warnings
7592 WARNING: Passed invalid keyword argument "rqeuired".
7593 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
7594 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
7595 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
7596 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
7598 2018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7600 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7601 display: drm: Allow finding DRM paths out of the PCI subsystem
7602 This removes hard-coded checks on the parent subsystem of potential DRM
7603 devices. These checks were set to exlude devices that do not originate
7604 from the PCI bus, which is only a valid approach on x86 devices.
7605 Other devices may have a DRM device originating from the platform
7606 subsystem, so the checks that were previously restricted to PCI are
7607 extended to cover platform devices as well.
7608 https://bugzilla.gnome.org/show_bug.cgi?id=794840
7609 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7611 2017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com>
7613 * gst/vaapi/gstvaapivideocontext.c:
7614 videocontext: support wl-display in "gst.vaapi.app.Display"
7615 Through "gst.vaapi.app.Display" context, users can set their own
7616 VADisplay and native display of their backend.
7617 So far we support only X11 display, from now we also support Wayland
7620 - wl-display : pointer of struct wl_display .
7621 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7623 2017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com>
7625 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7626 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
7627 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
7628 Implements new API function so that users could create GstVaapiDisplay
7629 with their own VADisplay within a native display as backend.
7630 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7632 2018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7634 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7635 wayland: don't poll if there are no pending frames
7636 Otherwise the following poll may not return for an arbitrary amount of
7637 time. This can happen if another wayland event queue has flushed and read
7639 https://bugzilla.gnome.org/show_bug.cgi?id=795224
7641 2017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7643 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7644 libs: encoder: h265: 16 bit rounding of picture width and height
7645 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
7647 In addition, codedbuf_size must be calculated according to this change.
7648 https://bugzilla.gnome.org/show_bug.cgi?id=753229
7650 2018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com>
7653 Automatic update of common submodule
7654 From 3fa2c9e to ed78bee
7656 2018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7658 * gst/vaapi/gstvaapiencode_h264.c:
7659 vaapiencode: h264: find best profile in those available
7660 Instead to look for the best profile in the allowed profiles by
7661 downstream, the encoder should look for the base profile in the
7662 available profile in VA-API.
7663 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7665 2018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7670 * docs/plugins/inspect/plugin-vaapi.xml:
7674 === release 1.14.0 ===
7676 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
7681 * gstreamer-vaapi.doap:
7685 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
7687 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7688 libs: decoder: h264: ensure num_ref_frames is greater than 0
7689 Even if it is the h264parse fault or bad video file, vaapih264dec
7690 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
7691 as the driver might use it.
7692 Also see "info.ref_frames = dpb_size;" in
7693 gstvaapidecoder_h264.c::ensure_context
7694 https://bugzilla.gnome.org/show_bug.cgi?id=793836
7696 === release 1.13.91 ===
7698 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
7703 * gstreamer-vaapi.doap:
7707 === release 1.13.90 ===
7709 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
7714 * gstreamer-vaapi.doap:
7718 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7720 * gst/vaapi/gstvaapipostproc.c:
7721 vaapipostproc: change how the metadata is copied
7722 Instead of copying the metada in prepare_output_buffer() vmethod,
7723 it is done in append_output_buffer_metadata() thus deinterlaced
7724 buffers could also have the proper metas.
7725 GstVideoCropMeta now it is copied internally and it is decided via
7726 transform_meta() vmethod.
7727 A new internal method, copy_metadata() was added to handle VPP
7728 transformation where non-GstVideoVaapiMeta metas were lost.
7730 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7732 * gst/vaapi/gstvaapipostproc.c:
7733 postproc: Copy meta data from input to output
7734 This will ensure that meta data without memory tags will be copied. This
7735 was noticed when testing ROI.
7736 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7738 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7740 * tests/elements/test-roi.c:
7741 tests: element: rewrite ROI test
7742 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
7743 than injecting GstEvents. These meta are added as a pad probe in
7746 * Use of navigation messages to control de test
7747 * Use signal watch for processing messages
7748 * Change to H265 rather than H264 since current intel-vaapi-driver
7749 only supports ROI on kabylake.
7750 TODO: add a parameter to change the encoder/decoder to test.
7751 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7753 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7755 * gst-libs/gst/vaapi/gstvaapicontext.c:
7756 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7757 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7758 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7759 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7760 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7761 libs: encoder: reimplement ROI using meta
7762 Check input buffers for ROI metas and pass them to VA. Also added a
7763 new "default-roi-delta-qp" property in order to tell the encoder what
7764 delta QP should be applied to ROI by default.
7765 Enabled it for H264 and H265 encoders.
7766 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7768 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7770 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7771 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7772 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7773 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
7774 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
7775 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7777 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7779 * tests/simple-encoder.c:
7780 Revert "tests: simple-encoder: add an option to set ROI"
7781 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
7782 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7784 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7786 * gst/vaapi/gstvaapiencode.c:
7787 * gst/vaapi/gstvaapiencode_h264.c:
7788 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
7789 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
7790 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7792 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7794 * gst/vaapi/gstvaapipluginbase.c:
7795 plugins: copy input buffer metas
7796 When importing buffers to a VA-base buffer, it is required to copy
7797 the metas in the original buffer, otherwise information will be
7798 lost, such as GstVideoRegionOfInterestMeta.
7799 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7801 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7803 * gst-libs/gst/vaapi/gstvaapisurface.c:
7804 libs: surface: cast to uintptr_t pointer
7805 According to Debian package auto-building, uintptr_t is not an
7806 unsigned long in i386 arch, raising an "incompatible pointer type"
7808 This patch adds a casting for compiler's satisfaction in i386.
7810 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7812 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7813 libs: encoder: add zero as valid value for periodic keyframe.
7814 Enabled zero as valid value for keyframe-period property.
7815 https://bugzilla.gnome.org/show_bug.cgi?id=793829
7817 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7819 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7820 libs: encoder: code-style fix
7822 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7824 * gst/vaapi/gstvaapidecode.c:
7825 vaapidecode: generate system allocated buffers
7826 Generate system allocated output buffers when downstream doesn't
7827 support GstVideoMeta.
7828 The VA buffer content is copied to the new output buffer, and it
7829 replaces the VA buffer.
7830 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7832 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7834 * gst/vaapi/gstvaapipostproc.c:
7835 vaapipostproc: handle system allocated buffers when required
7836 When downstream can't handle GstVideoMeta it is required to send
7837 system allocated buffers.
7838 The system allocated buffers are produced in prepare_output_buffer()
7839 vmethod if downstream can't handl GstVideoMeta.
7840 At transform() vmethod if the buffer is a system allocated buffer,
7841 a VA buffer is instanciated and replaces the out buffer. Later
7842 the VA buffer is copied to the system allocate buffer and it
7843 replaces the output buffer.
7844 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7846 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7848 * gst/vaapi/gstvaapipluginbase.c:
7849 * gst/vaapi/gstvaapipluginbase.h:
7850 plugins: add gst_vaapi_copy_va_buffer()
7851 This helper function aims to copy buffers with VA memory to dumb
7852 buffers, when GstVideoMeta is not available dowstream.
7853 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7855 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7857 * gst/vaapi/gstvaapipluginbase.c:
7858 * gst/vaapi/gstvaapipluginbase.h:
7859 plugins: add COPY_OUTPUT_FRAME flag
7860 This patch add the member copy_output_frame and set it TRUE when
7861 when downstream didn't request GstVideoMeta API, the caps are raw
7862 and the internal allocator is the VA-API one.
7863 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7865 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7867 * gst/vaapi/gstvaapipluginbase.c:
7868 * gst/vaapi/gstvaapipluginbase.h:
7869 plugins: store the first downstream allocator if available
7870 The allocator will be required if we need to allocate a buffer
7871 to store the frame with the expected strides.
7872 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7874 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7876 * gst/vaapi/gstvaapivideobufferpool.c:
7877 * gst/vaapi/gstvaapivideobufferpool.h:
7878 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
7879 This function will inform the element if it shall copy the generated
7880 buffer by the pool to a system allocated buffer before pushing it
7882 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7884 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7886 * gst/vaapi/gstvaapivideobufferpool.c:
7887 vaapibufferpool: don't change config when forcing video meta
7888 VA-API based buffer might need a video meta because of different
7889 strides. But when donwstream doesn't support video meta we need to
7890 force the usage of video meta.
7891 Before we changed the buffer pool configuration, but actually this
7892 is a hack and we cannot rely on that for downstream.
7893 This patch add a check fo raw video caps and allocator is VA-API,
7894 then the option is enabled without changing the pool configuration.
7895 In this case the element is responsible to copy the frame to a
7896 simple buffer with the expected strides.
7897 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7899 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7901 * gst/vaapi/gstvaapipostproc.c:
7902 vaapipostproc: set discont flag at vpp deinterlacing
7903 When deinterlacing with VPP the discont flag was not forwarded to
7904 the new created buffer. This patch sets the discont flag if input
7907 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7909 * gst/vaapi/gstvaapivideobufferpool.h:
7910 vaapibufferpool: remove wrong gcc annotation
7912 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7914 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7915 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7916 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7917 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7918 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7919 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7920 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
7921 libs: encoder: h264,h265: extend max periodic keyframe.
7922 Increased max values of periodic key frame for h26x codecs.
7923 This allow more fine tunning of encoder that in certian scenario
7924 want higher periodic key frame.
7925 For example: it doesn't want a key frame each 10 seconds but
7927 https://bugzilla.gnome.org/show_bug.cgi?id=786320
7929 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
7935 === release 1.13.1 ===
7937 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
7942 * gstreamer-vaapi.doap:
7946 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
7948 * gst/vaapi/Makefile.am:
7949 vaapi: dist new header
7951 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7953 * gst/vaapi/gstvaapi.c:
7954 vaapi: register vaapisink as marginal on wayland
7955 vaapsink, when used with the Intel VA-API driver, tries to display
7956 surfaces with format NV12, which are handled correctly by
7957 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
7958 pipelines on mutter.
7959 This shall be solved either by COGL or by making the driver to paint
7960 RGB surfaces. In the meanwhile, let's just demote vaapisink as
7961 marginal when the Wayland environment is detected, no matter if it is
7963 https://bugzilla.gnome.org/show_bug.cgi?id=775698
7965 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7967 * gst/vaapi/gstvaapipluginutil.c:
7968 plugins: update mesa's vendor string in whitelist
7969 Mesa has updated its VA-API Gallium driver vendor string:
7970 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
7971 This patch tries to cover both, the old and the new one.
7972 https://bugzilla.gnome.org/show_bug.cgi?id=793386
7974 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
7977 meson: make version numbers ints and fix int/string comparison
7978 WARNING: Trying to compare values of different types (str, int).
7979 The result of this is undefined and will become a hard error
7980 in a future Meson release.
7982 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7984 * gst/vaapi/gstvaapipluginbase.c:
7985 plugins: handle vaapi allocator in allocation query
7986 In propose_allocation() if the numer of allocation params is zero, the
7987 system's allocator is added first, and lastly the native VA-API
7989 In decide_allocation(), the allocations params in query are travered,
7990 looking for a native VA-API allocator. If it is found, it is reused as
7991 src pad allocator. Otherwise, a new allocator is instantiated and
7992 appended in the query.
7993 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7995 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7997 * gst/vaapi/gstvaapivideomemory.h:
7998 vaapivideomemory: remove unused macro
7999 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
8000 was never used, since the native VA-API allocator name has been
8001 GST_VAAPI_VIDEO_MEMORY_NAME.
8002 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
8003 https://bugzilla.gnome.org/show_bug.cgi?id=789476
8005 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
8007 * gst/vaapi/gstvaapisink.c:
8008 vaapisink: don't mask button events for foreign windows
8009 Don't subscribe to button press events when using a foreing window,
8010 because the user created window would trap those events, preveting the
8012 https://bugzilla.gnome.org/show_bug.cgi?id=791615
8014 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
8017 autotools: use -fno-strict-aliasing where supported
8018 https://bugzilla.gnome.org/show_bug.cgi?id=769183
8020 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
8023 meson: use -fno-strict-aliasing where supported
8024 https://bugzilla.gnome.org/show_bug.cgi?id=769183
8026 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
8028 * gst/vaapi/gstvaapi.c:
8029 vaapi: add NULL-sentinel to kernel_names
8030 The array needs to be NULL-terminated according to the
8031 gst_plugin_add_dependency() documentation.
8033 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8035 * gst/vaapi/gstvaapipostprocutil.c:
8036 vaapipostproc: remove spurious code
8037 This assignation is dead code, since gst_video_info_from_caps() set
8039 https://bugzilla.gnome.org/show_bug.cgi?id=790149
8041 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8043 * gst/vaapi/gstvaapipostprocutil.c:
8044 vaapipostproc: if no p-a-r in out caps define a range
8045 Instead of copying the pixel-aspect-ratio from the sink caps, define
8046 an open range for the src caps pixel-aspect-ratio. Later it will be
8048 https://bugzilla.gnome.org/show_bug.cgi?id=790149
8050 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8052 * gst/vaapi/gstvaapisink.c:
8053 vaapisink: check for display's color-balance properties
8054 Check for display's color-balance properties, available by the VA-API
8055 driver, before setting them.
8056 Also logs an info message of those unavailable properties.
8057 https://bugzilla.gnome.org/show_bug.cgi?id=792638
8059 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8061 * gst/vaapi/gstvaapipluginbase.c:
8062 plugins: re-using buffer pool breaks renegotiation
8063 at propose_allocation() we should not reuse the proposed buffer,
8064 because it could break renegotiation.
8065 https://bugzilla.gnome.org/show_bug.cgi?id=792620
8067 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8069 * gst/vaapi/gstvaapipluginbase.c:
8070 plugins: use g_clear_object() to unref sinkpad_buffer_pool
8071 https://bugzilla.gnome.org/show_bug.cgi?id=792620
8073 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8075 * gst-libs/gst/vaapi/meson.build:
8076 build: meson: add missing GstGL dependency
8078 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8080 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
8081 libs: utils: egl: add missing guards for GstGL
8083 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8085 * gst/vaapi/gstvaapipluginbase.c:
8086 plugins: remove dmabuf-import hack
8087 Remove the hack to check if an upstream element has enabled the
8088 property io-mode enabled as dmabuf-import.
8089 https://bugzilla.gnome.org/show_bug.cgi?id=792034
8091 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8093 * gst-libs/gst/vaapi/Makefile.am:
8094 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8095 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
8096 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
8097 libs: egl: utils: use eglGetPlatformDisplay()
8098 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
8099 eglGetDisplay() is rather fragile, and it is recommended to use
8100 eglGetPlatformDisplay() when possible.
8101 In order to do that, this patch uses the helper in GstGL. If
8102 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
8104 https://bugzilla.gnome.org/show_bug.cgi?id=790493
8106 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
8108 * gst/vaapi/gstvaapipostproc.c:
8109 vaapipostproc: lock ensure_filter with postproc_lock
8110 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
8111 and allowed_sinkpad_caps. This can race with copying these caps in
8112 gst_vaapipostproc_transform_caps and lead to segfaults.
8113 The gst_vaapipostproc_transform_caps function already locks
8114 postproc_lock before copying the caps. Make sure that calls to
8115 gst_vaapipostproc_ensure_filter also acquire this lock.
8116 https://bugzilla.gnome.org/show_bug.cgi?id=791404
8118 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8120 * tests/test-filter.c:
8121 tests: test-filter: fix dereference before null check
8122 Null-checking op_info suggests that it may be null, but it has already
8123 been dereferenced on all paths leading to the check.
8124 There may be a null pointer dereference, or else the comparison
8125 against null is unnecessary.
8127 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8129 * tests/y4mreader.c:
8130 tests: y4mreader: fix string state checkup
8131 str cannot be null in that moment, but it may be the end of string.
8133 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8135 * tests/y4mreader.c:
8136 tests: y4mreader: use int for fgetc
8137 Assigning the return value of fgetc to char truncates its value.
8138 It will not be possible to distinguish between EOF and a valid
8141 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8143 * tests/y4mreader.c:
8144 tests: y4mreader: fix incompatible cast
8145 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
8146 they are dereferenced as a wider long (64 bits, signed). This may lead
8147 to memory corruption.
8149 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
8152 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
8154 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
8157 Automatic update of common submodule
8158 From e8c7a71 to 3fa2c9e
8160 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8162 * gst/vaapi/gstvaapivideocontext.c:
8163 videoconvert: gst_element_post_message() is transfer full on msg
8164 For this reson we need not to unref the message, even if it failed.
8166 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8168 * gst/vaapi/gstvaapivideocontext.c:
8169 Revert "vaapivideocontext: possible memleak when no bus attached"
8170 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
8172 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8174 * tests/elements/test-vaapicontext.c:
8175 test: vaapicontext: process have-context bus message
8177 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8179 * tests/elements/test-vaapicontext.c:
8180 test: vaapicontext: app context is not persistent
8182 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8184 * gst/vaapi/gstvaapipluginbase.c:
8185 * gst/vaapi/gstvaapivideocontext.c:
8186 * gst/vaapi/gstvaapivideocontext.h:
8187 vaapivideocontext: only vaapisink process app context
8188 gst.vaapi.app.Display context is made for applications that will
8189 provide the VA display and the native display to used by the
8190 pipeline, when are using vaapisink as overlay. There are no use
8191 case for encoders, decoders, neither for the postprocessor.
8192 In the case of the vaapisink, it shall query for gst.vaapi.Display
8193 upstream first, and then, if there is no reply,
8194 gst.vaapi.app.Display context will be posted in the bus for the
8195 application. If the application replies, a GstVaapiDisplay object
8196 is instantiated given the context info, otherwise a
8197 GstVaapiDisplay is created with the normal algorithm to guess the
8198 graphics platform. Either way, the instantiated GstVaapiDisplay
8199 is propagated among the pipeline and the have-message bus message.
8200 Also only vaapisink will process the gst.vaapi.app.Display, if
8201 and only if, it doesn't have a display already set. This is
8202 caused because if vaapisink is in a bin (playsink, for example)
8203 the need-context is posted twice, leading to an error state.
8204 https://bugzilla.gnome.org/show_bug.cgi?id=790999
8206 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8208 * gst/vaapi/gstvaapivideocontext.c:
8209 vaapivideocontext: log the name of GstVaapiDisplay
8210 https://bugzilla.gnome.org/show_bug.cgi?id=790999
8212 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8214 * gst/vaapi/gstvaapivideocontext.c:
8215 vaapivideocontext: possible memleak when no bus attached
8216 https://bugzilla.gnome.org/show_bug.cgi?id=790999
8218 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8220 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
8221 libs: window: wayland: remove unused header include
8222 Remove wayland-client.h include since there is no exposed symbols from
8225 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8227 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8228 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8229 libs: encoder: h264,h265: guard rate control's macroblock
8230 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
8232 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
8235 Automatic update of common submodule
8236 From 3f4aa96 to e8c7a71
8238 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8240 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8241 libs: encoder: h264: Add Hierarchical-B encode
8242 Frames are encoded as different layers. Frame in a particular
8243 layer will use pictures in lower or same layer as references.
8244 Which means decoder can drop the frames in upper layer but still
8245 decode lower layer frames.
8246 B-frames, except the one in top most layer, are reference frames.
8247 All the base layer frames are I or P.
8248 eg: with 3 temporal layers
8252 T1, T2, T3: Temporal Layers
8255 T1: I0->P4 , P4->P8 etc..
8257 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
8258 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8259 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8261 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8263 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8264 libs: encoder: h264: Add Hierarchical-P encode
8265 Frames are encoded as different layers. A frame in a particular
8266 layer will use pictures in lower or same layer as references.
8267 Which means decoder can drop the frames in upper layer but still
8268 decode lower layer frames.
8269 eg: with 3 temporal layers
8273 T1, T2, T3: Temporal Layers
8275 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
8276 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8277 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8279 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8281 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8282 libs: encoder: h264: Fix frame_num generation
8283 The frame_num generation was not correctly implemented.
8284 According to h264 spec, frame_num should get incremented
8285 for each frame if previous frame is a referece frame.
8286 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
8287 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8288 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8290 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8292 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8293 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8294 libs: encoder: h264: Add new property "prediction-type"
8295 Adds new property "prediction-type" to select different reference
8296 picture selection modes like hierarchical-p, hierarchical-b etc.
8297 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8298 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8300 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
8302 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8303 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8304 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
8305 Adds some basic building blocks to ease the implementation
8306 of hierarchical prediction modes.
8307 -- add an utility method to find temporal level of each frame
8308 -- define max_ref_frame count based on temporal level count
8309 -- add temporal_level_div[] for finding temporal level each frame
8311 -- find ip_period based on temporal level count
8312 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8313 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8315 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
8317 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8318 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8319 libs: encoder: h264: Add property "temporal-levels"
8320 Adds new property "temporal-levels" to select the number of
8321 temporal levels to be included in the encoded stream.
8322 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8323 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8325 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
8327 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8328 libs: encoder: objects: Add a reference flag
8329 We can have p-frame as non-ref and also b-frame as ref
8330 which are not supported yet. Reference flag
8331 is the first machinery needed for more advanced
8332 reference picture selection modes.
8333 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8334 https://bugzilla.gnome.org/show_bug.cgi?id=788918
8336 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
8338 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8339 libs: surface: egl: add comment
8340 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
8341 where the creation of surfaces from GEM fd may fail.
8342 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8344 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8346 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8347 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
8348 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8349 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
8350 Adds a new function that changes the internal EGL display to the
8351 current one (eglGetCurrentDisplay()) and sets the current context
8352 too (eglGetCurrentContext()).
8353 This new function is called by gst_vaapi_texture_egl_create() updating
8354 the GstVaapiDisplayEGL with the current EGL display.
8355 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8357 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8359 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8360 libs: texture: egl: update EGL display and context
8361 It is required to use the context of the calling thread when wrapping
8362 a foreign texture. According the documentation of
8363 GstVideoGLTextureUploadMeta:
8364 "The caller of gst_video_gl_texture_upload_meta_upload() must
8365 have OpenGL set up and call this from a thread where it is valid
8366 to upload something to an OpenGL texture."
8367 This patch updates the EGL display and context in GstVaapiDisplay
8368 instance to the one used by te renderer that uploads the texture.
8369 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
8370 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8372 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8374 * gst/vaapi/gstvaapipluginbase.c:
8375 plugins: centralize assignation of GL objects
8376 Add plugin_set_gst_gl() where the GstGL objects are assigned.
8377 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8379 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8381 * gst/vaapi/gstvaapipluginbase.c:
8382 plugins: set GL objects if ensured
8383 Only set the GL display and GL other context if they are ensured.
8384 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8386 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8388 * gst/vaapi/gstvaapipluginbase.c:
8389 plugins: set GL objects if context is handled
8390 Only set the GL display and GL other context if they are extracted
8391 correctly from the gstreamer's context.
8392 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8394 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8396 * gst/vaapi/gstvaapipluginbase.c:
8397 plugins: fix memory leak when GL context is created
8398 When the GL display and context are created inside an VAAPI element
8399 the created GL context is leaked.
8400 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8402 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8404 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8405 libs: display: egl: free leaked memory
8406 The EGL VAAPI display forgot to release the egl display, context and
8407 proxied VAAPI display.
8408 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8410 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8412 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8413 libs: texture: egl: code style
8414 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8416 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8418 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8419 libs: surface: egl: error message if no extension
8420 Instead of silently fail to export the image if there is not available
8421 the EGL_MESA_drm_image, log an error message. Also a code refactoring
8423 https://bugzilla.gnome.org/show_bug.cgi?id=773453
8425 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8427 * gst/vaapi/gstvaapipluginbase.c:
8428 plugins: direct rendering on memory:VASurface
8429 As buffers negotiated with memory:VASurface caps feature can also be
8430 mapped, they can also be configured to use VA derived images, in other
8431 words "direct rendering".
8432 Also, because of the changes in dmabuf allocator as default allocator,
8433 the code for configuring the direct rendering was not clear.
8434 This patch cleans up the code and enables direct rendering when the
8435 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
8436 even then the memory:VASurface cap feature is negotiated.
8437 https://bugzilla.gnome.org/show_bug.cgi?id=786054
8439 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8441 * gst/vaapi/gstvaapipluginbase.c:
8442 * gst/vaapi/gstvaapipluginutil.c:
8443 plugins: only dmabuf on srcpad if downstream
8444 Set if source pad can handle dmabuf only if the GstGL context comes
8446 It is possible to know that at two moments:
8447 1\ In the case of GstGLTextureUpload caps feature is negotiated and
8448 downstream pool reports back gst.gl.GstGLContext.
8449 2\ When GstGLContext is found as GstContext from dowstream.
8450 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8452 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8454 * gst/vaapi/gstvaapivideocontext.c:
8455 vaapivideocontext: add inline documentation
8456 Document function gst_vaapi_find_gl_local_context().
8457 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8459 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8461 * gst/vaapi/gstvaapipluginutil.c:
8462 * gst/vaapi/gstvaapivideocontext.c:
8463 * gst/vaapi/gstvaapivideocontext.h:
8464 vaapivideocontext: return the direction of gl context
8465 In function gst_vaapi_find_gl_context() add a direction parameter to
8466 return back the direction where the GstGL context was found.
8467 This is going to be useful when checking if downstream can import
8468 dmabuf-based buffers.
8469 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8471 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8473 * gst/vaapi/gstvaapipluginbase.c:
8474 * gst/vaapi/gstvaapipluginbase.h:
8475 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
8476 This patch refactors the code by adding the function
8477 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
8478 GstGLContext can handle dmabuf-based buffers.
8479 The function is exposed publicly since it is intended to be used later
8480 at GstVaapiDisplay instantiation.
8481 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8483 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
8485 * gst/vaapi/gstvaapiencode.c:
8486 vaapiencode: allow to set property on runtime
8487 Tis patch, allows some properties that we want to be set on
8488 runtime. (eg. bitrate)
8489 Note that all properties are under control by num_codedbuf_queued.
8490 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8492 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
8494 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8495 libs: encoder: allow to set bitrate on runtime
8496 In case of streaming, controlling bitrate dynamically for encoder might be
8497 important to manage quality of the streaming.
8498 This patch is to support such a scenario.
8499 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8501 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
8503 * gst/vaapi/gstvaapi.c:
8504 * gst/vaapi/gstvaapi.h:
8505 * gst/vaapi/gstvaapidecodebin.c:
8506 vaapidecodebin: Register element if no VPP support is available too
8507 VPP support is only needed for advanced deinterlacing, which is not
8508 enabled by default either. Error out if it is selected but VPP is not
8509 supported, and otherwise just work without VPP support.
8510 https://bugzilla.gnome.org/show_bug.cgi?id=788758
8512 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
8514 * gst/vaapi/gstvaapipluginutil.c:
8515 Avoid infinite loop when vaapi_create_display fails
8516 Which might be the case when using, for example, xvfb.
8518 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8520 * gst-libs/gst/vaapi/gstvaapiutils.c:
8521 libs: utils: log warn if display fail
8522 gstreamer-vaapi initializes the display by trial-and-error, thus
8523 logging an error message if the display initialisation fails the user
8524 may be weary of the error message in the screen, if using VA-API 1.0
8525 This commit set the VA error log handler to GStreamer warning level
8526 while calling vaInitialize() and set it to error after that.
8527 https://bugzilla.gnome.org/show_bug.cgi?id=783169
8529 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8531 * gst/vaapi/gstvaapipluginutil.c:
8532 plugins: try to create test display in order
8533 When creating the test display for querying capabilites, it try in
8534 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
8535 since they are either composited with X11 or Wayland.
8536 The reason for this is to reduce the posibility of failure that could
8537 blacklist the plugin.
8538 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8540 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8542 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8543 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8544 libs: display: delay getting screen resolution
8545 Instead of extracting the screen resolution at GstVaapiDisplay
8546 creation, this patch delay it until the screen size is requested for
8548 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8550 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8552 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8553 libs: display: egl: avoid two vaDisplay instantiates
8554 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
8555 or Wayland. Nonetheless it created another vaDisplay for it, instead
8556 of using the wrapped one.
8557 This patch enables the reuse of the wrapped vaDisplay avoiding
8559 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8561 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8563 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8564 * gst-libs/gst/vaapi/gstvaapidisplay.h:
8565 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
8566 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
8567 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
8568 libs: display: remove display_type from display info
8569 Since it's no required to pass the display type in the display info,
8570 the structure member is removed.
8571 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8573 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8575 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8576 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8577 libs: display: remove display_type member
8578 It is not used any more since GstVaapiDisplay was ported as a
8579 GstObject-based. This information is part of the class information.
8580 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8582 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8584 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8585 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8586 libs: display: remove parent member
8587 Parent was a crumb left from display cache.
8588 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8590 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
8592 * gst/vaapi/gstvaapi.c:
8593 vaapi: Also register vaapipostproc without VPP support
8594 It can still do simple deinterlacing then.
8596 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
8598 * gst/vaapi/gstvaapipostproc.c:
8599 vaapipostproc: Allow running without VPP support
8600 We returned FALSE from ::start() if VPP support is not available, but it
8601 is only really needed for complex filters and during transform we check
8602 for that. For simple deinterlacing it is not needed.
8604 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8606 * gst/vaapi/gstvaapipostproc.c:
8607 vaapipostproc: use scoped variable for return value
8608 Instead of reusing a parameter variable for the return value of
8609 gst_vaapipostproc_transform_caps(), this patch uses the function
8610 scoped pointer. Thus, the code is cleaner.
8611 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8613 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8615 * gst/vaapi/gstvaapipostproc.c:
8616 vaapipostproc: removed unused parameter
8617 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
8618 helper function since the it is not used.
8619 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8621 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8623 * gst/vaapi/gstvaapipostproc.c:
8624 vaapipostproc: use scoped variable for return value
8625 Instead of reusing a parameter variable for the return value of
8626 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
8627 pointer. Thus, the code is cleaner.
8628 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8630 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8632 * gst/vaapi/gstvaapipluginutil.h:
8633 plugins: memory:DMABuf only handles planar formats
8634 When glimagesink negotiates the caps feature memory:DMABuf the
8635 exported dmabufs buffers with NV12 format are not well rendered, thus
8636 setting only planar.
8637 https://bugzilla.gnome.org/show_bug.cgi?id=788229
8639 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8641 * gst/vaapi/gstvaapiencode.c:
8642 vaapiencode: flush pending frames before set format
8643 Flush pending frames, if any, in the internal encorder, before setting
8644 the new negotiated format.
8645 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8647 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8649 * gst/vaapi/gstvaapidecode.c:
8650 vaapidecode: drain pending frames before set format
8651 Drain pending frames, if any, in the internal decoder before setting
8652 the new negotiated format.
8653 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8655 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8657 * tests/test-display.c:
8658 tests: display: use GObject getter
8659 Instead of using the gst_vaapi_display_get_property(), this patch
8660 replaces it with g_object_get_property() to dump the available VA
8662 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8664 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8666 * gst/vaapi/gstvaapisink.c:
8667 vaapisink: use GObject setter and getter
8668 Instead of using gst_vaapi_display_set_property() or
8669 gst_vaapi_display_get_property(), this patch set replace it usage
8670 with g_object_set() or g_object_get().
8671 Also the internal helper cb_set_value() is removed since it is not
8673 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8675 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8677 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8678 libs: display: initialize value if they are not yet
8679 This is a difference between the GObject API and the GstVaapi one: the
8680 GValue passed to get a property value, in GObject has to be
8681 initialized with g_value_init(), but in GstVaapi is has not.
8682 In order to overcome this mismatch, this patch call g_value_init()
8683 internally only in the passed one is not already initialized.
8684 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8686 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8688 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8689 libs: display: optimize properties setters and getters
8690 Shuffled some code to avoid to find the properties descriptor in the
8691 array twice, adding the internal functions _set_property() and
8693 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8695 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8697 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8698 libs: display: install properties in class
8699 Install the properties in the class as a normal GObject. Implement
8700 set_property() and get_property() vmethods.
8701 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8703 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8705 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8706 libs: display: remove gst_vaapi_display_properties_init()
8707 Remove gst_vaapi_display_properties_init() since it can be unrolled in
8708 gst_vaapi_display_class_init()
8709 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8711 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8713 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8714 libs: display: remove libgstvaapi_init_once()
8715 It is not required since it can be unrolled in
8716 gst_vaapi_display_class_init()
8717 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8719 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8721 * tests/test-display.c:
8722 tests: test-display: remove display cache tests
8723 Since commit ec3e10f6, display cache was removed. This patch removes
8724 this leftovers in the display test.
8726 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
8728 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8729 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8730 libs: decoder: h264/h265: decode codec data only if opened
8731 Fixes regression introduced by commit 2eb2b26a.
8732 There is a use case when the decoder set the src caps and immediatly
8733 tries to process the media codec_data, this happens before decoder is
8734 even opened, thus priv->parser is not instantiated yet.
8735 https://bugzilla.gnome.org/show_bug.cgi?id=787818
8737 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8739 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8740 * gst-libs/gst/vaapi/gstvaapiencoder.h:
8741 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8742 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8743 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8744 libs: encoder: change mbbrc from uint to enum
8745 Instead of handling the macroblock bitrate control as a integer, this
8746 patch changes it as a enum, which is more self documented in the
8748 https://bugzilla.gnome.org/show_bug.cgi?id=787855
8750 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
8752 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8753 Fix a typo in the prop string for compliance-mode
8755 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8757 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8758 libs: encoder: don't unref properties
8759 This patch fixes a regression introduced in commit 148f867c, since the
8760 props variable is set to object's member variable
8761 encoder->properties. And it is set in the instance initialization,
8762 thus it will not be leaked.
8763 https://bugzilla.gnome.org/show_bug.cgi?id=787733
8765 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
8767 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8768 * gst/vaapi/gstvaapiencode.c:
8769 vaapiencode/libs: encoder: fix leaks of properties
8770 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8772 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8774 * gst-libs/gst/vaapi/gstvaapidecoder.c:
8775 libs: decoder: at update_caps() decode codec_data
8776 When updating the caps in decoder, if the caps has codec_data (avC
8777 format), it has to be parsed to update the state of the decoder.
8778 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8780 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
8782 * gst-libs/gst/vaapi/gstvaapicontext.c:
8783 libs: context: fix wrong counter of the array of attributes
8784 The counter value passed to vaCreateConfig is always +1.
8785 This is a regression caused by commit e42ec3ad.
8786 The present patch fixes wrong counting of the array of attributes.
8787 https://bugzilla.gnome.org/show_bug.cgi?id=787613
8789 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
8791 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8792 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8793 libs: encoder: h265: support I/P/B QP setting seperatedly
8794 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8796 and set slice_qp_delta for each frame according to the value provided.
8797 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8799 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
8801 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8802 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8803 libs: encoder: h264: support I/P/B QP setting seperatedly
8804 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8806 and set slice_qp_delta for each frame according to the value provided.
8807 In addition, remove the limitation of (<= 4) when setting
8809 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8811 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
8813 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8814 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8815 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
8816 Creates new variable for QP for I frame and keep it at configuration and
8817 use this for pic_init_qp and slice_qp_delta setting.
8818 Since changing min qp doesn't make sense, keep min qp as is.
8819 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8821 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
8823 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8824 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8825 libs: encoder: h265: Add mbbrc property
8826 This property supports Macroblock level Bitrate Control as the
8827 following (same as h264 encoder):
8831 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8833 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
8835 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8836 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8837 libs: encoder: h264: Add mbbrc property
8838 This property supports Macroblock level Bitrate Control as the
8843 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8845 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
8847 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8848 libs: encoder: h265: add multi reference support
8849 This is doing the same as h264 encoder as the following:
8850 Using num_ref_frames provided and the result of the Query
8851 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
8852 and perform encoding with multi reference frames as the following:
8853 1\ The num_ref_frames is being considered as the number of
8854 reference picture list0
8855 2\ Encoder adds 1 reference frame more to the reference picture list1
8856 internally if b-frame encoding.
8857 3\ If num_ref_frames is bigger than the number of refrence frames
8858 supported in the driver, it will be lowered.
8859 Also this patch includes:
8860 - Set num_negative_pics and num_positive_pics according to the number of
8862 - Set delta_poc according to the number of refs.
8863 - Increase max_dec_pic_buffering according to the number of refs
8864 - Change max_num_reorder_pics according to num of bframes
8865 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8867 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
8869 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8870 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8871 libs: encoder: h265: add refs property
8872 Users can provide the number of reference frame by this property,
8873 which is exaclty same as h264.
8874 The value of the property will be considered as the number of
8875 reference picture list0 and will add 1 reference frame more to the
8876 reference picture list1 internally if b-frame encoding.
8877 If the value provided is bigger than the number of refrence frames
8878 supported in the driver, it will be lowered.
8879 The maximum value is aligned to the value of the driver supported now.
8880 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8882 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8884 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8885 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8886 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
8887 Follows the specification as below:
8888 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
8889 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
8890 element num_ref_idx_l0_active_minus1 is present for P and B slices and
8891 that the syntax element num_ref_idx_l1_active_minus1 is present for B
8893 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
8894 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
8896 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8898 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
8900 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8901 libs: encoder: h265: keep idr_period equal to keyframe period
8902 Remove FIXME code, which makes previous assignation spurious.
8903 This also means to make idr_period equal to keyframe period,
8904 which is same as h264 encoder.
8905 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8907 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8909 * gst/vaapi/gstvaapipluginbase.c:
8910 Request minimum buffer even if need_pool is FALSE
8911 When tee is used, it will not request a pool, but still it wants to
8912 know how many buffers are required.
8913 https://bugzilla.gnome.org/show_bug.cgi?id=730758
8915 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
8917 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8918 libs: encoder: h264_fei: VA-API 1.0 compat
8919 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
8921 https://bugzilla.gnome.org/show_bug.cgi?id=787322
8922 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
8924 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8926 * gst/vaapi/gstvaapisink.c:
8927 vaapisink: Fix rendering in drm display
8928 Make sure vaapisink create a va surface backed buffer pool and all
8929 required attributes get assigned correctly for drm display type.
8930 This is needed to make the below pipeline working:
8931 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
8932 width=320 height=240 framerate=30/1 ! vaapisink display=drm
8933 https://bugzilla.gnome.org/show_bug.cgi?id=786954
8935 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8937 * tests/Makefile.am:
8938 * tests/test-fei-enc-in.c:
8939 * tests/test-fei-enc-out.c:
8940 FEI: Add test applications to showcase fei use case
8941 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
8943 ./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
8944 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
8946 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
8947 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
8948 from saved files is still not working
8950 Wang, Yi <yi.a.wang@intel.com>
8951 Leilei <leilei.shang@intel.com>
8952 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8953 xiaominc <xiaomin.chen@intel.com>
8954 Li, Jing B <jing.b.li@intel.com>
8955 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8956 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8958 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8960 * gst/vaapi/Makefile.am:
8961 * gst/vaapi/gstvaapi.c:
8962 * gst/vaapi/gstvaapiencode_h264_fei.c:
8963 * gst/vaapi/gstvaapiencode_h264_fei.h:
8964 FEI: plugin: Add vaapih264feienc element
8965 A new FEI based encoder element for h264 is added: vaapih264feienc
8966 FEI is a an extension to VA-API which is providing low level
8967 advanced control over different stages of encoding.
8968 Extending vaapih264enc with fei support is possible, but it will
8969 make the code too much complicated and will be difficult
8970 to debug. So adding the new encoder element, but keeping
8971 the rank as 0 , vaapih264enc will stay as the primary
8972 encoder for normal use cases.
8973 The vaaih264feienc is mainly useful for customers who want to play
8974 with MotionVectors and Macroblock Predictions. Also user can
8975 do one stage of encoding(eg: only the Motion Vector Calculation)
8976 in software and offload trasformation/entroy-coding etc to
8977 Hardware (which is what PAK module is doing) using FEI element.
8978 vaapih264feienc can work in different modes using fei-mode properoty
8979 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
8980 Important Note: ENC only mode won't produce any encoded data which is expected.
8981 But ENC alwys requires the output of PAK in order to do the inter-prediction
8982 over reconstructed frames.
8983 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
8984 upstream element providing those buffers, PAK only won't work as expected.
8985 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
8986 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
8987 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
8988 separately in vaapih264feienc.
8990 Wang, Yi <yi.a.wang@intel.com>
8991 Leilei <leilei.shang@intel.com>
8992 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8993 xiaominc <xiaomin.chen@intel.com>
8994 Li, Jing B <jing.b.li@intel.com>
8995 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8996 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8997 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8999 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
9001 * gst/vaapi/gstvaapiencode.c:
9002 * gst/vaapi/gstvaapiencode.h:
9003 FEI: plugin: Add virtual methods to base encode
9004 Two new virtual methods are added to gstvaapiencode.
9005 load_control_data(): load the FEI input buffers set by the upstream elements
9006 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
9007 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9008 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9009 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9011 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
9013 * gst/vaapi/Makefile.am:
9014 * gst/vaapi/gstvaapifeivideometa.c:
9015 * gst/vaapi/gstvaapifeivideometa.h:
9016 FEI: plugin: Add fei specific video meta
9017 GstVaapiFeiVideoMeta holds the below fei codec objects:
9018 GstVaapiEncFeiMbCode
9020 GstVaapiEncFeiMvPredictor
9021 GstVaapiEncFeiMbControl
9023 GstVaapiEncFeiDistortion
9024 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9025 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9026 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9028 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9030 * gst-libs/gst/vaapi/Makefile.am:
9031 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
9032 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
9033 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
9034 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
9035 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
9036 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
9037 FEI: libs: Add FEI encoder
9038 Adding FEI encoder to core lib.
9039 The code is splitted into three session:
9040 1: gstvaapiencoder_h264_fei.{h,c}
9041 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
9042 All the modes ENC, PAK and ENC_PAK are running based
9043 the code in these files.
9044 2: gstvaapifeienc_h264.{h,c}
9045 Abstract implementation intended for ENC (only VME) operation.
9046 3: gstvaapifeipak_h264.{h,c}
9047 Abstrct implementation intended for PAK (only the PAK module)
9048 Right now ENC_PAK, ENC and PAK are running based on code
9049 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
9050 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
9051 needed if user request for ENC+PAK mode operation.
9052 ENC+PAK: Here we need to invoke two sequence of
9053 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
9054 first for the ENC only and the second for PAK only.
9055 Each mode associated with separate context ,but same pool of surfaces are
9056 shared between the modes.
9057 This is more useful once we have custom BRC algorithms.
9059 Wang, Yi <yi.a.wang@intel.com>
9060 Leilei <leilei.shang@intel.com>
9061 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
9062 xiaominc <xiaomin.chen@intel.com>
9063 Li, Jing B <jing.b.li@intel.com>
9064 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9065 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9067 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9069 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
9070 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
9071 FEI: libs: Add fei codec objects to GstVaapiEncPicture
9072 All the codec objects(vaapi buffers) supposed to be
9073 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
9074 for each frame, follow the same design for FEI too.
9075 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9076 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9078 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9080 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
9081 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
9082 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
9083 FEI: libs: Add fei codec objects in codedbufferproxy
9084 MbCode, MV and Distortion buffers (fei codec objects)
9085 can be treated as output of different fei modes based user request.
9086 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
9087 can be dumped as output in ENC_PAK mode for analysis purpose.
9088 So treating them as a part of CodedBufferProxy too.
9089 Here we avoided Qp, MbControl and MvPredictor codec objects since
9090 there is no practical use case of treating them as "output buffers".
9092 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
9093 xiaominc <xiaomin.chen@intel.com>
9094 Leilei <leilei.shang@intel.com>
9095 Li, Jing B <jing.b.li@intel.com>
9096 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9097 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9099 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9101 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
9102 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
9103 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
9104 FEI: libs: Add fei codec objects to surface proxy
9105 Add fei codec objects to surface proxy since handling the
9106 fei buffers(codec objects here) external to gstvaapisurfaceproxy
9107 will make the code complicated. Especially considering the behavior
9108 of encoder where the input frame order from upstream and output
9109 frame order to the downstream are not sequential.
9111 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
9112 xiaominc <xiaomin.chen@intel.com>
9113 Leilei <leilei.shang@intel.com>
9114 Li, Jing B <jing.b.li@intel.com>
9115 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9116 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9118 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9120 * gst-libs/gst/vaapi/Makefile.am:
9121 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
9122 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
9123 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
9124 FEI: Add codec objects for fei usecase
9125 There are 6 new va buffer types, each defined as a specific codec object.
9126 Borrowed the code from gstvaapicodecobject , but made a clear separation
9127 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
9128 feicodecobjects can be shared between elements and also can be accessed
9129 from different thread.
9130 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
9131 object is not shared between elements.So we utilize the already
9132 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
9133 in gstvaapfei_objects_priv.h in order to have a better
9136 -- Probably we need _locked_map() and _unlocked_map()
9137 -- Context can be associated with PreEnc(not just Enoder)
9138 once we have the proper support inplace, but for now we don't have
9139 PreEnc support, so should be safe enough to use GstVaapiEncoder.
9140 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9141 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9143 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9145 * gst-libs/gst/vaapi/Makefile.am:
9146 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
9147 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
9148 FEI: libs: add H264 fei specific utility functions
9149 Added enum/flag type definitions for a number of FEI
9150 input and output parameters.
9151 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
9152 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9153 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9154 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
9155 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9157 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9159 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9160 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9161 FEI: libs: Add virtual method for secondary context creation.
9162 Add a new vitrual method ensure_secondary_context to the
9163 base encoder which is only required for the FEI entrypoint, that too
9164 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
9165 supported directly by libva or driver, but this can be enabled
9166 from the middleware.
9167 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
9168 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
9169 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
9170 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9171 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9172 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9174 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9176 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9177 FEI: libs: make sure the default context creation works as expected.
9178 Current code always guess the entrypoint during init phase in case
9179 if there is no entrypoint already configured in GstVaapiContextInfo.
9180 Make sure FEI Entrypoint is not messing up with this logic.
9181 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9182 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9184 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9186 * gst-libs/gst/vaapi/gstvaapicontext.c:
9187 * gst-libs/gst/vaapi/gstvaapicontext.h:
9188 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9189 FEI: libs: Add FEI functional mode configuration
9190 FEI Entrypoint can work in either one of the 3 different modes:
9191 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
9192 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
9193 functioal mode configuration.
9194 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9195 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9197 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9199 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9200 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9201 * gst-libs/gst/vaapi/gstvaapiprofile.h:
9202 FEI: libs: Add FEI Entrypoint mapping
9203 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
9204 for VAEntrypointFEI.
9205 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9206 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9208 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9211 FEI: Add support for FEI conditional build
9212 FEI(Flexible Encoding Infrastructure) is an extension
9213 to VA API. Define USE_H264_FEI_ENCODER based on
9214 fei header file and required structures availability.
9215 https://bugzilla.gnome.org/show_bug.cgi?id=785712
9216 https://bugzilla.gnome.org/show_bug.cgi?id=784667
9218 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
9220 * gst/vaapi/gstvaapidecode.c:
9221 vaapidecode: force add h264 SVC profiles in caps
9222 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
9224 https://bugzilla.gnome.org/show_bug.cgi?id=732266
9225 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9227 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
9229 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9230 libs: decoder: h264: decode SVC base layer only
9231 Drops non-base NALs when the base-only property is set to TRUE.
9232 This modifies the behavior for MVC streams with base-only too: All the
9233 non-base units are dropped before they are decoded instead of dropping
9234 the non-base frames.
9235 The relevant part from the H264 spec is:
9236 > Decoders that conform to one or more of the profiles specified in
9237 Annex A rather than the profiles specified in Annexes G or H shall
9238 ignore (remove from the bitstream and discard) the contents of all NAL
9239 units with nal_unit_type equal to 14, 15, or 20.
9240 To eliminate side effects from the offending units:
9241 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
9243 - The NAL parsing is skipped and their flags are set to
9244 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
9245 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
9246 use them even if they are flagged to be skipped. Subset SPS's and slice
9247 extension units are not stored there either.
9248 https://bugzilla.gnome.org/show_bug.cgi?id=732266
9249 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9251 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
9253 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9254 libs: decoder: h264: check nalu validity in parser info finalize
9255 https://bugzilla.gnome.org/show_bug.cgi?id=732266
9256 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9258 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9260 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9261 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9262 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9263 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9264 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9265 libs: encoder: remove unused cast macro
9266 Remove internal macro to cast structure that are already declared
9269 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9271 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9272 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
9273 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
9274 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
9275 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
9276 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9277 Revert "libs: encoders: remove unused cast macros"
9278 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
9280 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9282 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9283 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
9284 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
9285 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
9286 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
9287 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9288 libs: encoders: remove unused cast macros
9289 They are only used inside the code, where another macro is defined.
9290 Thus these exported macros have no use.
9292 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9294 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9295 libs: decoder: h264: improve code-style
9296 https://bugzilla.gnome.org/show_bug.cgi?id=786173
9298 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9300 * gst-libs/gst/vaapi/gstvaapicompat.h:
9301 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9302 libs: encoder: h264: handle deprecated enum
9303 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
9304 instead VAEncPackedHeaderRawData should be used.
9305 This patch creates a compatibility symbol,
9306 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
9308 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9310 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9312 * gst-libs/gst/vaapi/gstvaapiprofile.c:
9313 * gst-libs/gst/vaapi/gstvaapiutils.c:
9314 libs: guard deprecated symbols
9315 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
9316 guards the H.264 baseline usage. Consider this commit as a
9317 continuation of commit e0e0a474
9318 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9320 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9324 * meson_options.txt:
9325 Revert "build: check for libva-2.0"
9326 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
9327 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9329 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9331 * gst-libs/gst/vaapi/gstvaapicompat.h:
9332 * gst-libs/gst/vaapi/gstvaapicontext.c:
9333 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9334 libs: macro to get a renamed value in VA-API 1.0
9335 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
9336 renamed one member from roi_value_is_qp_delat to
9337 roi_value_is_qp_delta, which is the correct name.
9338 In order to keep back compatibility a macro has added to access this
9340 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9342 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9344 * gst/vaapi/gstvaapipluginbase.h:
9345 * gst/vaapi/gstvaapipluginutil.c:
9346 plugins: include main gstgl header
9347 Instead including particular gstgl header files in a header file
9348 that doesn't export a gstgl symbol, the main gstgl header file is
9349 included in gstvaapipluginutil.c where the symbols are used.
9350 https://bugzilla.gnome.org/show_bug.cgi?id=786597
9352 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9354 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9355 libs: encoder: h264: fix enum namespace
9357 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
9360 Automatic update of common submodule
9361 From 48a5d85 to 3f4aa96
9363 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9365 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9366 libs: encoder: h264: remove spurious assignation
9368 An assigned value that is never used may represent unnecessary
9369 computation, an incorrect algorithm, or possibly the need for cleanup
9371 ip_period is assigned first to be rewritter inmediatly after. The
9372 first assignation is spurious.
9374 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
9376 * gst/vaapi/gstvaapidecode.c:
9377 vaapidecode: fix mismatch of the return type
9378 https://bugzilla.gnome.org/show_bug.cgi?id=786307
9380 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9382 * gst-libs/gst/vaapi/Makefile.am:
9383 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
9384 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
9385 * gst-libs/gst/vaapi/gstvaapiutils.h:
9386 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
9387 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9388 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9389 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9390 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
9391 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
9392 * gst-libs/gst/vaapi/meson.build:
9393 libs: remove unused header
9394 Since libgstvaapi is not distributed, there is no need to check for
9395 private header inclusion. Thus removing it.
9396 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9398 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9400 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9401 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9402 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9403 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9404 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9405 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9406 libs: utils: move gstvaapisurface.h to private headers
9407 Since the utils don't expose API defined in gstvaapisource.h, it is
9408 moved to their private headers where they are used.
9409 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9411 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9413 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9414 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9415 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9416 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9417 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
9418 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9419 libs: utils: remove va.h include in header
9420 And include gstvaapicompat.h in the C files, since the VA-API is not
9421 exposed in the headers.
9422 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9424 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9426 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9427 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9428 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9429 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9430 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9431 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9432 libs: encoder: remove va.h include
9433 Since it is already managed by gstvaapicompat.h
9434 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9436 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9438 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
9439 * gst-libs/gst/vaapi/gstvaapicompat.h:
9440 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9441 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9442 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9443 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9444 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9445 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9446 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9447 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9448 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9449 * gst-libs/gst/vaapi/gstvaapifilter.c:
9450 * gst-libs/gst/vaapi/gstvaapiutils.c:
9452 build: consolidate the VA sub API includes
9453 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
9454 since they are all already included in va.h after VA-API 0.38.
9455 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9457 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9461 build: check for va_vpp.h
9462 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
9463 allow us to handle the inclusion of the header better.
9464 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9466 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
9469 meson: don't export symbols by default
9470 Only plugin entry points should be exported.
9472 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9474 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9475 libs: decoder: h265: remove spurious code
9477 Logically dead code: The indicated dead code may have performed some
9478 action; that action will never occur.
9479 By using pointer arithmetic is impossible to get NULL.
9481 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9483 * gst-libs/gst/vaapi/gstvaapicontext.c:
9484 libs: context: use attribs index instead pointers
9486 Out-of-bounds write. This could cause an immediate crash or incorrect
9488 Coverity basically found that it is possible to assign more than 4
9489 attribs in the array.
9490 In my opinion this was produced because code pattern used pointer
9491 arithmetic, which is not readable nor maintainable.
9492 This patch refactors config_create() to use an array index rather than
9493 pointer arithmetic. Also a run-time check for index size was added.
9495 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9497 * gst/vaapi/gstvaapiencode_h264.c:
9498 vaapiencode: h264: remove spurious code
9500 An unsigned value can never be negative, so this test will always
9501 evaluate the same way.
9502 As len is guint32, there is no need to check it if it is equal or
9505 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9507 * gst/vaapi/gstvaapidecode.c:
9508 vaapidecode: initialize variable
9510 The variable will contain an arbitrary value left from earlier
9512 Variable base_only is fetched from base-only property, and it may be
9513 not assigned. It needs to be initialized.
9515 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9517 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9518 libs: windows: wayland: fail if cannot remove last frame
9520 If the function returns an error value, the error value may be
9521 mistaken for a normal value.
9522 If g_atomic_pointer_compare_and_exchange() fails because the frame is
9523 not the last one, the function fails. Thus, logging an info message.
9525 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9527 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9528 libs: utils: glx: check return value
9530 If the function returns an error value, the error value may be
9531 mistaken for a normal value.
9532 Function sscanf returns the number of assignations done. Validate this
9533 return value with the number of expected variables to match.
9535 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9537 * gst-libs/gst/vaapi/gstvaapiobject.c:
9538 libs: vaapi: object: remove unrequired NULL check
9540 Dereference after null check: Either the check against null is
9541 unnecessary, or there may be a null pointer dereference.
9542 Variable klass has been validated as non-NULL several time before in
9543 gst_vaapi_object_new() function, so there is no need to check it
9546 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9548 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9549 libs: encoder: h265: remove spurious assignation
9551 An assigned value that is never used may represent unnecessary
9552 computation, an incorrect algorithm, or possibly the need for cleanup
9554 ip_period is assigned first to be rewritter inmediatly after. The
9555 first assignation is spurious.
9557 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9559 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9560 libs: encoder: h264: fix copy & paste error
9562 The copied code will not have its intended effect.
9563 This is a bug from commit cdaf15b2, where the intention is to
9564 initialize RefPicList1 while setting RefPicList0.
9566 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9568 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9569 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9570 libs: encoder: h265: fix possible integer overflow
9572 Unintentional integer overflow. The expression's value may not be what
9573 the programmer intended, because the expression is evaluated using a
9574 narrow (i.e. few bits) integer type.
9575 Cast operator to guint64 before computation to avoid narrowing.
9578 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9580 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9581 libs: decoder: mpeg4: fail if return value is not OK
9583 An assigned value that is never used may represent unnecessary
9584 computation, an incorrect algorithm, or possibly the need for cleanup
9586 In the return value of decode_slice() or
9587 gst_mpeg4_parse_video_packet_header() are not success, thus fail
9588 decode_packet() function.
9590 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9592 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9593 libs: decoder: h265: check for null
9595 Dereference after null check: Either the check against null is
9596 unnecessary, or there may be a null pointer dereference.
9597 While looking for hte lowest poc, according to rest of the code, the
9598 picture in the dbp (decoded picture buffer) might be NULL, thus we
9599 could check for a NULL picture before assigned as found.
9600 Also, split a comma operator because it is considered as a bad
9601 practice because it possible side effects.
9603 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9605 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9606 libs: decoder: h265: untaint loop control variable
9608 Scalars (for example, integers) are not properly
9609 bounds-checked (sanitized) before being used as array or pointer
9610 indexes, loop boundaries, or function arguments are considered as
9612 In this case, num_nals were not checked before used as loop control.
9614 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9616 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9617 libs: decoder: h264: remove unrequired NULL check
9619 Dereference after null check: Either the check against null is
9620 unnecessary, or there may be a null pointer dereference.
9621 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
9622 prev_picture could be NULL, that's why the code did a null check. But,
9623 since commit 52adebe7, the previous reference frames are tracked, thus
9624 there is no need to check null anymore.
9626 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
9628 * gst/vaapi/gstvaapidecode.c:
9629 vaapidecode: fix gst_caps_new_simple call
9630 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9632 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
9634 * gst/vaapi/gstvaapidecode.c:
9635 vaapidecode: force add h264 MVC profiles in caps
9636 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
9638 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9640 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
9642 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9643 libs: decoder: h264: decode MVC base view only
9644 If processed SPS has mvc profile and the configuration is set to
9645 base-only, the frame is drop.
9646 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9648 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
9650 * gst/vaapi/gstvaapidecode.c:
9651 * gst/vaapi/gstvaapidecode_props.c:
9652 vaapidecode: set h264 base-only to decoder
9653 Set the base-only value when property is set and the internal
9654 decoder is already instantiated or when the internal decoder
9656 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9658 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
9660 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9661 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9662 libs: decoder: h264: add setter for base-only mode
9663 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9665 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
9667 * gst/vaapi/gstvaapidecode_props.c:
9668 * gst/vaapi/gstvaapidecode_props.h:
9669 vaapidecode_props: h264: add base-only property
9670 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9672 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9674 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9675 libs: encoder: h264: missing property enum documentation
9677 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
9679 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9680 libs: encoder: h264: add multi reference support
9681 Using num_ref_frames provided and the result of the Query
9682 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
9683 and perform encoding with multi reference frames as the following:
9684 1\ The num_ref_frames is being considered as the number of
9685 reference picture list0
9686 2\ Encoder adds 1 reference frame more to the reference picture list1
9687 internally if b-frame encoding.
9688 3\ If num_ref_frames is bigger than the number of refrence frames
9689 supported in the driver, it will be lowered.
9690 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9692 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
9694 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9695 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9696 libs: encoder: h264: add refs property
9697 Users can provide the number of reference frame by this property.
9698 The value of the property will be considered as the number of
9699 reference picture list0 and will add 1 reference frame more to the
9700 reference picture list1 internally if b-frame encoding.
9701 If the value provided is bigger than the number of refrence frames
9702 supported in the driver, it will be lowered.
9703 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9705 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
9707 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9708 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9709 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
9710 This function will query VAConfigAttribEncMaxRefFrames to get the
9711 maximum number of reference frames supported in the driver.
9712 This will be used for h264/h265 encoding.
9713 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9715 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9717 * gst/vaapi/gstvaapiencode_h265.c:
9718 vaapiencode: h265: compare an unsigned int if not zero
9719 An unsigned value can never be negative, so this test (greater than
9720 zero) will always evaluate the same way. Thus change it to just if
9723 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9725 * gst/vaapi/gstvaapipluginbase.c:
9726 plugins: check gst_gl_ensure_element_data() return value
9727 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
9728 the return value of gst_gl_ensure_element_data(). The result is a code
9731 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9733 * gst/vaapi/gstvaapipluginutil.c:
9734 plugins: avoid dead code detection
9735 By using #elif macro, the static code analysis would stop to detect
9736 these lines as dead code. Also it is inforced the mutually exclusive
9739 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9741 * gst/vaapi/gstvaapivideobufferpool.c:
9742 vaapivideobufferpool: don't shift by negative since it's undefined
9743 The function g_bit_nth_lsf() may return -1 if the request bit position
9744 is not avaible. Thus, this patch check if the return value is not -1
9745 in order to continue.
9747 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9749 * gst/vaapi/gstvaapisink.c:
9750 vaapisink: fix memory leak
9752 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9754 * gst/vaapi/gstvaapipostprocutil.c:
9755 vaapipostproc: fix memory leaks
9757 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
9759 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9760 libs: display: when appending formats change pointers to indexes
9761 Thus, it fixes an invalid read when YV12 or I420 are not supported by
9763 https://bugzilla.gnome.org/show_bug.cgi?id=785085
9765 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9767 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9768 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9769 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
9770 Added a new property "compliance-mode", which default is the normal
9771 strict compliant mode.
9772 The second mode, "restrict-buf-alloc", is to limit the coded buffer
9773 allocation size to improve performance in some specific Intel
9774 platforms (there is asignificant performance improvement in parallel
9775 encodings). Under this new mode, we use the MinCR field in A.3.1 for
9776 pre-calculating the coded-buffer size.
9777 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9779 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9781 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9782 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9783 libs: utils_h264: Extend LevelLimit table with MinCR field
9784 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
9786 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9788 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9790 * gst-libs/gst/vaapi/gstvaapiutils.c:
9791 libs: utils: libva 1.0 changed the logging
9792 The logging mechanism in libva has changed it's functions
9793 signatures. This patch updates that for libva versions >= 1.0
9794 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9796 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9798 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9799 libs: decoder: h264: libva 1.0 deprecated baseline
9800 libva 1.0 deprecated H.264 baseline profile and FMO support
9802 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9804 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9808 * meson_options.txt:
9809 build: check for libva-2.0
9810 Check for libva-2.0 since libva's developers decided to increase the
9811 library's version number.
9812 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9814 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9818 build: blacklist only libva 0.99.0
9819 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
9820 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
9822 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9824 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9826 * gst-libs/gst/vaapi/meson.build:
9827 build: meson: remove gstvaapidisplaycache.c
9828 This is a missing bit of commit ec3e10f6
9830 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
9833 configure: do not break configure if gtk+-3.0 devel missing
9834 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
9835 set USE_GTK=0 if gtk+-3.0 is not available.
9836 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
9837 Author: Hyunjun Ko <zzoon@igalia.com>
9838 Date: Wed Jul 5 15:59:43 2017 +0900
9839 tests: elements: add testsuite of vaapi context
9840 ...configure fails if gtk+-3.0 development files are missing.
9841 The "with_gtk" option defaults to "check" in configure.ac
9842 which implies that if it is not explicitly requested then
9843 configure will only enable it if it's available on the system.
9844 However, the PKG_CHECK_MODULES rule that get's activated on
9845 "check" condition did not provide default when gtk+-3.0 devel
9846 packages are not found on the system. Thus, it resulted in
9848 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
9849 https://bugzilla.gnome.org/show_bug.cgi?id=785452
9851 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9854 * tests/elements/Makefile.am:
9855 * tests/elements/test-vaapicontext.c:
9856 tests: elements: add testsuite of vaapi context
9857 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9858 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9860 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9862 * gst/vaapi/gstvaapisink.c:
9863 vaapisink: fail if surface display is different
9864 Replacing GstVaapiDisplay during rendering might be hiding problems
9865 at some cases, even though it's safe currently since we use cache
9867 Play safe by failing if this happens.
9868 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9870 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
9872 * gst/vaapi/gstvaapivideocontext.c:
9873 * gst/vaapi/gstvaapivideocontext.h:
9874 videocontext: support "gst.vaapi.app.Display" context
9875 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
9876 and native display of their backend.
9878 - display : pointer of VADisplay
9879 - x11-display : pointer of X11 display (Display *), if they're using.
9880 This patch creates GstVaapidisplayX11 if information provided through
9881 "gst.vaapi.app.Display"
9882 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9884 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
9886 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9887 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
9888 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
9889 Implements new API function so that users could create GstVaapiDisplay
9890 with their own VADisplay within a native display as backend.
9891 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9893 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
9895 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9896 libs: display: pass display info when foreign display
9897 When creating a GstVaapiDisplay using a foreign VADisplay, and render
9898 with that display, it also requires native display of the backend.
9899 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9901 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9903 * gst-libs/gst/vaapi/Makefile.am:
9904 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9905 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9906 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
9907 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9908 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9909 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
9910 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
9911 libs: display: remove cache
9912 Remove a bunch of code that handles the VADisplay cache, since the
9913 context sharing should be doing this correctly.
9914 https://bugzilla.gnome.org/show_bug.cgi?id=747946
9916 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
9918 * tests/elements/Makefile.am:
9919 * tests/elements/test-vaapipostproc.c:
9920 tests: elements: add test for vaapipostproc
9921 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9923 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
9925 * gst/vaapi/gstvaapipostproc.c:
9926 postproc: reconfigure when width or height changes
9927 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9929 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9931 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9932 libs: encoder: vp9: array terminated in zeros
9933 There is a crash when setting ref-pic-mode since the #GEnumValue
9934 array is not terminated with a structured with all memvers being
9936 https://bugzilla.gnome.org/show_bug.cgi?id=785032
9938 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9940 * gst/vaapi/gstvaapiencode_h264.c:
9941 vaapiencode: h264: add plugin documentation
9942 Comment how the profile is set and other parameters.
9944 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
9946 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9947 libs: decoder: h264: push frames as soon as possible
9948 Push frames downstream as soon as possible instead of waiting until
9949 they are ejected from the DPB.
9950 This patch makes the decoder not comply with the H.264 specification,
9951 but it is required for some video cameras.
9952 https://bugzilla.gnome.org/show_bug.cgi?id=762509
9953 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9955 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9957 * gst/vaapi/gstvaapidecode_props.c:
9958 vaapidecode_props: h264: set low-latency in decoder
9959 Set the low-latency property if the H264 decoder is already
9960 instantiated, thus you could change the behavior in run-time.
9961 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9963 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9965 * gst/vaapi/gstvaapidecode.c:
9966 vaapidecode: set h264 low latency to decoder
9967 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9969 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9971 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9972 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9973 libs: decoder: h264: add getter/setter for low latency mode
9974 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9976 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9978 * gst/vaapi/gstvaapidecode_props.c:
9979 * gst/vaapi/gstvaapidecode_props.h:
9980 vaapidecode_props: h264: add low latency property
9981 Adding support for private data.
9982 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9984 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9986 * gst/vaapi/Makefile.am:
9987 * gst/vaapi/gstvaapidecode.c:
9988 * gst/vaapi/gstvaapidecode_props.c:
9989 * gst/vaapi/gstvaapidecode_props.h:
9990 * gst/vaapi/meson.build:
9991 vaapidecode_props: add skeleton for h264 decoder properties
9992 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9994 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9996 * gst/vaapi/gstvaapidecode.c:
9997 vaapidecode: properties callback in decoders map
9998 https://bugzilla.gnome.org/show_bug.cgi?id=783588
10000 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
10003 meson: find python3 via python3 module
10004 https://bugzilla.gnome.org/show_bug.cgi?id=783198
10006 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
10008 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10009 libs: encoder: h264: submit sps in case of IDR picture
10010 If the picture is IDR, also submit a SPS header.
10011 This means when frame number reaches to keyframe-period or an force
10012 key unit event arrives, we insert SPS/PPS again.
10013 https://bugzilla.gnome.org/show_bug.cgi?id=776712
10015 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
10017 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10018 libs: encoder: h264: set the frame as IDR if forced key unit
10019 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
10020 the `frame-lost` event in the case of streaming, such as RTP.
10021 In case of this event, it is needed to start new GOP rather than just
10022 produce an I-frame.
10023 https://bugzilla.gnome.org/show_bug.cgi?id=776712
10025 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10027 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10028 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
10029 libs: encoder: h264: insert AU delimiter
10030 Insert an AUD as the first NAL of each encoded frame.
10031 Some applications require Access Unit Delimiter for decoding the
10033 The AU delimeter insertion is done only when the aud parameter is
10034 TRUE (by default is disabled). The reason of this it is because this
10035 header is only available from Intel Gen9 and the VA intel driver
10036 should be 1.8 or superior. Otherwise, the output will be corrupted.
10037 https://bugzilla.gnome.org/show_bug.cgi?id=776712
10038 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
10040 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10042 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10043 libs: encoder: h264: initialize all elements of view_ids
10044 Currently when num_views is changed by multiview-mode on sink caps, it produces
10045 wrong MVC encoded stream since the array view_ids is not set properly according
10046 to changed num_views.
10047 So this patch initializes all of the array sequentially to handle this case.
10048 Side effect is not going to happen by this patch since this array is being
10049 handled by num_views.
10050 https://bugzilla.gnome.org/show_bug.cgi?id=784321
10052 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
10054 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10055 Revert "encoder: h264: Use high profile by default"
10056 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
10057 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10059 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10061 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10062 libs: encoder: h264: set profile via capsfilter
10063 Until now, the encoder ignored the profile in src caps and chose one
10064 according with the given parameters. But the encoder must honor the
10065 profile specifed in src caps.
10066 This patch do that, and if the encoder needs to choose the profile,
10067 it will do it by following these rules:
10068 1\ If given parameters are not compatible with given profile, the
10069 encoder will bail out with an error.
10070 2\ The encoder will choose the higher profile indicated in the
10072 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10074 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
10076 * gst/vaapi/gstvaapiencode_h264.c:
10077 vaapiencode: h264: set profile to src caps
10078 So far vaapi encoder does not set profile to src caps. This patch makes it
10079 setting profile to src caps, which is determined by itself.
10080 In addition, if encoder chose different profile, which is not negotiated with
10081 downstream, we should set compatible profile to make negotiation working.
10082 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10084 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10086 * gst/vaapi/gstvaapiencode_h264.c:
10087 * gst/vaapi/gstvaapiencode_h264.h:
10088 vaapiencode: h264: verify if requested profile is supported
10089 Check if the requested profile in source caps, is supported by the
10090 VA driver. If it is not, an info log message is send saying that
10091 another (compatible?) profile will be used.
10092 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10094 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10096 * gst/vaapi/gstvaapiencode_h264.c:
10097 vaapiencode: h264: improve set_config() vmethod
10098 First check if downstream requests ANY caps. If so, byte-stream is
10099 used and the profile will be choose by the encoder. If dowstream
10100 requests EMPTY caps, the negotiation will fail.
10101 Lately, byte-stream and profile are looked in the allowed caps.
10102 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10104 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10106 * gst/vaapi/gstvaapiencode_h264.c:
10107 vaapiencode: h264: check for avc in set_config()
10108 The check for avc stream format was done in the vaapi encoder's
10109 vmethod get_caps(), but that is wrong since it has to be check
10110 when encoder set_format().
10111 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10113 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10115 * gst/vaapi/gstvaapipostprocutil.c:
10116 vaapipostproc: set multivew-mode flags to src caps
10117 vaapipostproc didn't negotiate the proper multiview caps losing
10118 downstream information.
10119 This patch enables the playing of MVC encoded stream by setting
10120 the proper multiview mode/flags and views to src caps, according
10122 https://bugzilla.gnome.org/show_bug.cgi?id=784320
10124 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
10126 * gst/vaapi/gstvaapipostproc.c:
10127 vaapipostproc: add support for DMABuf caps feature
10128 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10129 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
10131 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10133 * gst/vaapi/gstvaapidecode.c:
10134 vaapidecode: add support for DMABuf caps feature
10135 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10136 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
10138 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10140 * gst/vaapi/gstvaapipluginbase.c:
10141 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
10142 Instantiate all dmabuf allocator for src pad buffer pool if the
10143 src caps ask for memory:DMABuf feature.
10144 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10146 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
10148 * gst/vaapi/gstvaapipluginutil.c:
10149 * gst/vaapi/gstvaapipluginutil.h:
10150 vaapipluginutil: add support for DMABuf caps feature
10151 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10152 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
10153 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
10154 vaapipluginutil: add support for DMABuf caps feature
10156 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10158 * gst/vaapi/gstvaapipluginbase.c:
10159 vaapipluginbase: dmabuf memory map trial for raw caps
10160 Only push dmabuf-based buffers with raw caps if gst_memory_map()
10161 succeeds. Otherwise, use the the vaapi surfaces allocator.
10162 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10163 https://bugzilla.gnome.org/show_bug.cgi?id=774649
10164 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
10166 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10168 * gst/vaapi/gstvaapivideomemory.c:
10169 * gst/vaapi/gstvaapivideomemory.h:
10170 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
10171 This new method checks the specified allocator can create GstMemory that can
10173 https://bugzilla.gnome.org/show_bug.cgi?id=755072
10175 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10177 * gst/vaapi/gstvaapivideobufferpool.c:
10178 vaapivideobufferpool: fix regression with video metas
10179 There is another regression with 7a206923 when setting the video
10180 info for the video meta, it should be the one from the image's
10181 allocator rather from the allocation caps.
10183 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
10184 ! tee ! videoconvert ! videoscale \
10185 ! video/x-raw, width=1920, height=1080 ! xvimagesink
10187 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10189 * gst/vaapi/gstvaapipluginbase.c:
10190 * gst/vaapi/gstvaapivideobufferpool.c:
10191 plugins: update buffer size with the one reported by allocator
10192 There is a regression in 7a206923, since the buffer pool ditches all
10193 the buffers generated by them because the pool config size is
10194 different of the buffer's size.
10196 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
10197 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
10198 --gst-debug=GST_PERFORMANCE:5
10199 The allocator may update the buffer size according to the VA surface
10200 properties. In order to do this, the video info is modified when the
10201 allocator is created, which reports through the allocation info the
10202 updated size, and set it to the pool config.
10204 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
10206 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10207 libs: decoder: h264: initialize active_sps/pps in reset
10208 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
10209 they introduced regression in seek.
10210 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
10211 But since the commits landed, it doesn't drop P-frame and does try to
10212 decode it continuously because active_sps is still alive. See ensure_sps function.
10213 But there are prev_frames and prev_ref_frames reset already, then it
10215 So it's necessary to reset active_sps/pps also in reset method.
10216 https://bugzilla.gnome.org/show_bug.cgi?id=783726
10218 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10220 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10221 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10222 libs: encoder: fix compilation with old versions of libva
10223 There are some symbols that are not used when compiling with old
10224 version of libva and those generates a compilation error.
10225 Original-patch-by: Matt Staples <staples255@gmail.com>
10227 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10229 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10230 libs: encoder: Fix the quality level clamping
10231 Change the hard-coded range of quality-level from {1-8} to {1-7},
10232 since it is the range Intel Open source driver supports.
10233 Also perform the range clamping only if the user provided
10234 quality-level is greater than the max-range suppored by the driver,
10235 because there could be non-intel drivers giving lower value than
10236 the hard-coded max value 7.
10237 https://bugzilla.gnome.org/show_bug.cgi?id=783567
10239 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10241 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10242 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10243 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
10244 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10245 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10246 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10247 libs: encoder: log out the name of the profile
10248 Instead of printing a number, it is more readable to log out, in
10249 case of error, the name of the failing profile.
10251 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
10253 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10254 libs: encoder: h264: changes raw number of profile to macro name of its
10255 Changes raw number of profile to macro name of its to improve readability.
10256 https://bugzilla.gnome.org/show_bug.cgi?id=757941
10258 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10260 * gst/vaapi/gstvaapivideobufferpool.c:
10261 vaapivideobufferpool: remove allocation_vinfo private attribute
10262 There is no need to keep this attribute internally since it is
10263 already managed by the allocator.
10264 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10266 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10268 * gst/vaapi/gstvaapivideobufferpool.c:
10269 vaapivideobufferpool: refactor set_config()
10270 Refactor the set_config() virtual method considering a cleaner
10271 approach to allocator instanciation, if it it not set or if it is
10272 not valid for the pool.
10273 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10275 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10277 * gst/vaapi/gstvaapipluginbase.c:
10278 * gst/vaapi/gstvaapivideobufferpool.c:
10279 * gst/vaapi/gstvaapivideomemory.c:
10280 * gst/vaapi/gstvaapivideomemory.h:
10281 plugins: distinguish allocation and negotiation caps
10282 The vaapi video decoders might have different allocation caps from
10283 the negotiation caps, thus the GstVideoMeta shall use the negotiation
10284 caps, not the allocation caps.
10285 This was done before reusing gst_allocator_get_vaapi_video_info(),
10286 storing there the negotiation caps if they differ from the allocation
10287 ones, but this strategy felt short when the allocator had to be reset
10288 in the vaapi buffer pool, since we need both.
10289 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
10290 gst_allocator_get_vaapi_negotiated_video_info() to store the
10291 negotiated video info in the allocator, and distinguish it from
10292 the allocation video info.
10293 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10295 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10297 * gst/vaapi/gstvaapivideomemory.c:
10298 * gst/vaapi/gstvaapivideomemory.h:
10299 vaapivideomemory: rename qdata quarks and ids
10300 Also the parameter names were renamed to reflect their origin
10302 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10304 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10306 * gst/vaapi/gstvaapivideobufferpool.c:
10307 vaapivideobufferpool: rename local variables
10308 Renamed local video info structure names in set_config() vitual
10309 method. The purpose of their renaming is to clarify the origin
10310 of those structures, whether come from passed caps parameter
10311 (new_allocation_vinfo) or from the configured allocator
10313 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10315 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10317 * gst/vaapi/gstvaapivideobufferpool.c:
10318 vaapivideobufferpool: rename video info structures
10319 Renamed private GstVideoInfo structure video_info to allocation_vinfo
10320 and alloc_info to negotiated_vinfo.
10321 The purpose of these renaming is to clarify the origin and purpose of
10322 these private variables:
10323 video_info (now allocation_vinfo) comes from the bufferpool
10324 configuration. It describes the physical video resolution to be
10325 allocated by the allocator, which may be different from the
10327 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
10328 the pipeline. It represents how the frame is going to be mapped
10329 using the video meta.
10330 In Intel's VA-API backend, the allocation_vinfo resolution is
10331 bigger than the negotiated_info.
10332 https://bugzilla.gnome.org/show_bug.cgi?id=783599
10334 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10336 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10337 libs: encoder: set framerate if bigger than 0/1
10338 Just set the framerate parameter if the framerate numerator and
10339 denominator are bigger than zero.
10340 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
10342 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10343 https://bugzilla.gnome.org/show_bug.cgi?id=783532
10345 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10347 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10348 libs: encoder: bitrate target percentage calculation
10349 If the rate control is set to Constant Bit Rate (CBR) the target
10350 percentage is 100%, otherwise is 70%
10352 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10354 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10355 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10356 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10357 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10358 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10359 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10360 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
10361 Centralize the common configuration for the Rate Control parameter,
10362 thus can be overloaded per each specific encoder.
10364 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10366 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10367 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10368 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10369 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10370 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10371 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10372 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
10373 Since the framerate VA parameter is calculated equally among all the
10374 encoders, it is better to handle it in the base encoder class.
10376 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10378 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10379 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
10380 libs: encoder: vp9: Adds CBR and VBR Encoding support
10381 https://bugzilla.gnome.org/show_bug.cgi?id=766832
10382 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10383 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10385 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10387 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10388 libs: encoder: vp8: Adds VBR Encoding support
10389 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10391 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
10393 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10394 libs: encoder: h265: Adds VBR Encoding support
10395 Enables Variable BitRate mode, which does set FrameRate and RateControl
10397 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10399 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
10401 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10402 libs: encoder: Describes more detail about the bitrate property
10403 https://bugzilla.gnome.org/show_bug.cgi?id=778732
10405 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10407 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10408 libs: encoder: h265: add rate control parameter
10409 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10411 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10413 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10414 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10415 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10416 libs: encoder: h264,h265,mpeg2: add framerate parameter
10417 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10419 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10421 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10422 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10423 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10424 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10425 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
10426 Instead of recalculating the miscellaneous buffer parameters for
10427 every buffer, it is only done once, when the encoder is configured.
10428 And for every buffer, the same structures are just copied.
10429 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10431 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10433 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10434 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10435 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10436 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10437 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10438 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10439 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
10440 This is patch pretends to decouple the assignation of the values
10441 in the parameter structures and the VA buffer's parameters setting.
10442 It may lead to some issues since HRD, framerate or controlrate may
10443 not be handled by the specific encoder, but they are set in
10444 the VA buffer's parameters.
10445 I leave as it because this patch is just a transitional patch.
10446 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10448 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10450 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10451 libs: encoder: vp8: fix frame rate calculation
10452 According to the VA documentation:
10453 The framerate is specified as a number of frames per second,
10454 as a fraction. The denominator of the fraction is given in
10455 the top half (the high two bytes) of the framerate field, and
10456 the numerator is given in the bottom half (the low two bytes).
10457 For example, if framerate is set to (100 << 16 | 750), this is
10458 750 / 100, hence 7.5fps.
10459 If the denominator is zero (the high two bytes are both zero)
10460 then it takes the value one instead, so the framerate is just
10461 the integer in the low 2 bytes.
10462 This patch fixes the the framerate calculation in vp8 encoder
10464 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10466 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10468 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10469 libs: encoder: vp8: refactor FrameRate parameter
10470 Move frame-rate parameter from ensure_misc_params() to
10471 ensure_contro_rate_param() since it only has meaning when the
10472 control rate is either VBR or CBR.
10473 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10475 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10477 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10478 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10479 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10480 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10481 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
10482 Move the Hypothetical Reference Decoder (HRD) parameter, from
10483 ensure_misc_params() to ensure_control_rate_params(), since it
10484 only shall be defined when the control rate is either VBR or CBR.
10485 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10487 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10489 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10490 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10491 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10492 libs: encoder: h264,vp8,mpeg2: refactor control rate
10493 Instead of filling the control rate param in ensure_misc_params(),
10494 this patch refactor it out, as a first step to merge the same code
10495 for all the encoders.
10496 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10498 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10500 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10501 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10502 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10503 libs: encoder: h264, h265, mpeg2: remove assert
10504 Remove spurious asserts for misc parameters. If they cannot be
10505 allocated, FALSE is already returned.
10507 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10509 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10510 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10511 libs: encoder: use VA quality level structure
10512 Instead of using a proxy to story the buffer quality level, the
10513 encoder now uses the native VA structure, which is copied to the
10514 dynamically allocated VAEncMiscParameterBuffer.
10515 This approach is computationally less expensive.
10517 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10519 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10520 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10521 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10522 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10523 libs: standardize the FIXME comment
10524 This is a trivial patch that makes homogeneous the FIXME tag in
10526 For more info about these comment style:
10527 http://wiki.c2.com/?FixmeComment
10529 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
10531 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10532 libs: encoder: vp8: set quality level regardless of rate control mode
10533 https://bugzilla.gnome.org/show_bug.cgi?id=782957
10535 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10537 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10538 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10539 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10540 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10541 libs: encoder: check for maximum number of slices
10542 Right now, H264 and HEVC can set as a property the number of slices to
10543 process. But each driver can set a maximum number of slices, depending
10544 on the supported profile & entry point.
10545 This patch verifies the current num_slices to process against the maximum
10546 permitted by the driver and the media size.
10547 https://bugzilla.gnome.org/show_bug.cgi?id=780955
10549 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10551 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10552 libs: utils: mark functions as internals
10553 The functions in this header are internal to the library.
10555 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10557 * gst-libs/gst/vaapi/gstvaapicontext.h:
10558 libs: context: add missing documentation
10559 Document the region-of-interest configuration variables.
10561 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10563 * tests/elements/test-vaapisink.c:
10564 tests: elements: vaapisink: handle nav events
10565 The test app can now handle navigation events to rotate the
10568 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10570 * tests/elements/test-vaapisink.c:
10571 tests: elements: clean up vaapisink test
10572 - Use gst_element_send_event() instead of gst_pad_push_event()
10573 - don't zero App structure
10574 - check for pipeline parsing error
10575 - only get vaapisink for property set
10577 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
10579 * gst/vaapi/gstvaapisink.c:
10580 vaapisink: keep handle_events flag except that if user want to set
10581 When state of vaapisink is changed from PLAYING to NULL, the handle_events
10582 flag is set to FALSE, and never recovered, and then event thread is never
10584 So we should allow to set the flag only when users try it.
10585 https://bugzilla.gnome.org/show_bug.cgi?id=782543
10587 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10589 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10590 libs: window: x11: fix src rect info when using vpp
10591 Since we started using VPP in VaapiWindowX11, we need to care about
10592 the case that src rect and window's size are different.
10593 So, once VPP has converted to other format, we should honor the
10594 size of the VPP's surface as source rect. Otherwise, it is cropped
10595 according the previous size of the source rect.
10596 https://bugzilla.gnome.org/show_bug.cgi?id=782542
10598 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10600 * gst/vaapi/gstvaapipluginutil.c:
10601 plugins: remove par from caps negotiation
10602 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10604 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
10606 * tests/elements/Makefile.am:
10607 * tests/elements/test-roi.c:
10608 tests: elements: add an example for ROI
10609 This implements a pipleint to recognize difference between ROI and non-ROI.
10610 See comments in this code in detail.
10611 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10612 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10614 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
10616 * gst/vaapi/gstvaapiencode.c:
10617 * gst/vaapi/gstvaapiencode_h264.c:
10618 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
10619 Handles new custom event GstVaapiEncoderRegionOfInterest
10620 to enable/disable a ROI region.
10621 Writes a way to use new event to document.
10622 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10623 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10625 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
10627 * tests/simple-encoder.c:
10628 tests: simple-encoder: add an option to set ROI
10629 $ simple-encoder -r inputfile.y4m
10630 And you'll got an output file in H264 with two regions of interest.
10631 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10632 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10634 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10636 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10637 libs: encoder: h264: set ROI params during encoding
10638 Set ROI params during encoding each frame, which are set via
10639 gst_vaapi_encoder_add_roi ()
10640 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10641 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10643 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10645 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10646 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10647 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10648 libs: encoder: add api gst_vaapi_encoder_add/del_roi
10649 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
10650 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10652 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
10654 * gst-libs/gst/vaapi/gstvaapicontext.c:
10655 * gst-libs/gst/vaapi/gstvaapicontext.h:
10656 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10657 libs: encoder/context: query region of interest support
10658 Queries if the driver supports "Region of Interest" (ROI) during the config
10660 This attribute conveys whether the driver supports region-of-interest (ROI)
10661 encoding, based on user provided ROI rectangles. The attribute value is
10662 partitioned into fields as defined in the VAConfigAttribValEncROI union.
10663 If ROI encoding is supported, the ROI information is passed to the driver
10664 using VAEncMiscParameterTypeROI.
10665 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10666 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10668 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10670 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10671 libs: encoder: fix a comment
10673 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10675 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10676 libs: encoder: guard quality level configuration
10677 The quality level appeared in VA-API 0.36. So let's guard its
10680 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10682 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10683 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10684 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10685 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10686 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10687 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10688 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10689 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10690 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10691 encoders: add quality level tuning
10692 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
10693 in gstreamer-vaapi encoders:
10694 The encoding quality could be set through this structure, if the
10695 implementation supports multiple quality levels. The quality level set
10696 through this structure is persistent over the entire coded sequence, or
10697 until a new structure is being sent. The quality level range can be queried
10698 through the VAConfigAttribEncQualityRange attribute. A lower value means
10699 higher quality, and a value of 1 represents the highest quality. The quality
10700 level setting is used as a trade-off between quality and speed/power
10701 consumption, with higher quality corresponds to lower speed and higher power
10703 The quality level is set by the element's parameter "quality-level" with a
10704 hard-coded range of 1 to 8.
10705 Later, when the encoder is configured in run time, just before start
10706 processing, the quality level is scaled to the codec range. If
10707 VAConfigAttribEncQualityRange is not available in the used VA backend, then
10708 the quality level is set to zero, which means "disabled".
10709 All the available codecs now process this parameter if it is available.
10710 https://bugzilla.gnome.org/show_bug.cgi?id=778733
10711 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10713 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
10717 Back to development
10719 === release 1.12.0 ===
10721 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
10726 * gstreamer-vaapi.doap:
10730 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10732 * gst/vaapi/gstvaapidecodebin.c:
10733 Revert "vaapidecodebin: fix element's classification"
10734 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
10736 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10740 build: Require libva < 0.99.0
10741 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
10742 fail to configure instead of failing late in the build.
10743 This libva is bundled in msdk[1] and it is ahead in time with
10744 respect the official and open source libva[2]. GStreamer-VAAPI
10745 only supports the latter for now.
10746 1. https://software.intel.com/en-us/media-sdk/download
10747 2. https://github.com/01org/libva/
10748 https://bugzilla.gnome.org/show_bug.cgi?id=781866
10750 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
10752 * gst/vaapi/gstvaapidecodebin.c:
10753 vaapidecodebin: fix element's classification
10754 This bin should have similar classification as decodebin which is
10755 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
10757 Signed-off-by: Victor Toso <victortoso@redhat.com>
10758 https://bugzilla.gnome.org/show_bug.cgi?id=782063
10760 === release 1.11.91 ===
10762 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
10767 * gstreamer-vaapi.doap:
10771 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10773 * gst/vaapi/gstvaapipluginutil.c:
10774 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
10775 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
10777 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10779 * gst/vaapi/gstvaapipluginutil.c:
10780 plugins: reject pixel-aspect-ratio with value 0/1
10781 Do not negotiate a pixel-aspect-ratio of 0/1.
10782 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10784 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10786 * gst/vaapi/gstvaapipostprocutil.c:
10787 * gst/vaapi/gstvaapisink.c:
10788 plugins: handle pixel-aspect-ratio with value 0/1
10789 When downstream negotiates a pixel-aspect-ratio of 0/1, the
10790 calculations for resizing and formatting in vaapipostproc and
10791 vaapisink, respectively, failed, and thus the pipeline.
10792 This patch handles this situation by converting p-a-r of 0/1 to
10793 1/1. This is how other sinks, such as glimagesink, work.
10794 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10796 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
10798 * gst/vaapi/gstvaapivideobufferpool.c:
10799 vaapivideobufferpool: fix leak of created allocator
10800 Since it's created by itself, it should be unref-counted
10801 after gst_buffer_pool_config_set_allocator call. Afterwards,
10802 this allocator will be ref-counted again when assigning to priv->allocator.
10803 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10805 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10807 * gst/vaapi/gstvaapivideobufferpool.c:
10808 vaapivideobufferpool: create or reconfig allocator
10809 Sometimes a video decoder could set different buffer pool
10810 configurations, because their frame size changes. In this case we
10811 did not reconfigure the allocator.
10812 This patch enables this use case, creating a new allocator inside
10813 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
10814 If so, it is just reconfigured, since it doesn't have a surface pool.
10815 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10817 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10819 * tests/elements/Makefile.am:
10820 test: elements: fix compilation flags
10821 This issue was spotten on bug #766704
10822 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10824 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
10826 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10827 libs: windows: wayland: fix leak if failure of sync
10828 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
10829 during destruction.
10830 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
10831 This surface is not attached to anything at this moment, so we should release
10833 https://bugzilla.gnome.org/show_bug.cgi?id=781695
10835 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
10838 Automatic update of common submodule
10839 From 60aeef6 to 48a5d85
10841 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
10843 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10844 libs: window: wayland: mark frames as done
10845 When the frame listener callbacks 'done', the number of pending
10846 frames are decreased. Nonetheless, there might be occasions where
10847 the buffer listener callbacks 'release', without calling previously
10848 frame's 'done'. This leads to problem with
10849 gst_vaapi_window_wayland_sync() operation.
10850 This patch marks as done those frames which were callbacked, but if
10851 the buffer callbacks 'release' and associated frame is not marked
10852 as 'done' it is so, thus the number of pending frames keeps correct.
10853 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10854 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10856 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10858 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10859 libs: window: wayland: don't sync at destroy()
10860 Don't call gst_vaapi_window_wayland_sync() when destroying the
10861 wayland window instance, since it might lead to a lock at
10862 gst_poll_wait() when more than one instances of vaapisink are
10863 rendering in the same pipeline, this is because they share the
10865 Since now all the frames are freed we don't need to freed the
10866 private last_frame, since its address is invalid now.
10867 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10868 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10870 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
10872 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10873 libs: window: wayland: null buffer at destroy()
10874 Fix leakage of the last wl buffer.
10875 VAAPI wayland sink needs to send a null buffer while destruction,
10876 it assures that all the wl buffers are released. Otherwise, the last
10877 buffer's callback might be not called, which leads to leak of
10879 This was inspired by gstwaylandsink.
10880 https://bugzilla.gnome.org/show_bug.cgi?id=774029
10881 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10883 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
10885 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10886 libs: window: wayland: rt event queue at destroy()
10887 The proxy object of wl_buffer for the last frame remains in the
10888 wl_map. Even though we call wl_buffer_destroy() in
10889 frame_release_callback(), the proxy object remains without being
10890 removed, since proxy object is deleted when wayland server sees the
10891 delete request and sends 'delete_id' event.
10892 We need to call roundtrip before destroying event_queue so that the
10893 proxy object is removed. Otherwise, it would be mess up as receiving
10894 'delete_id' event from previous play, when playing in the next
10895 va/wayland window with the same wl_display connection.
10896 https://bugzilla.gnome.org/show_bug.cgi?id=773689
10897 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10899 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10901 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10902 libs: window: wayland: cancel read at poll message
10903 Always call wl_display_cancel_read() when an errno is set, but
10904 different to EAGAIN or EINTR.
10905 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10907 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10909 * gst/vaapi/gstvaapidecodebin.c:
10910 * gst/vaapi/gstvaapidecodebin.h:
10911 vaapidecodebin: skips configuration once it's done
10912 Skips configuration of creation of vpp/capsfilter and link them once it's done.
10913 Otherwise, it always fails when it's trying to re-start playback.
10914 https://bugzilla.gnome.org/show_bug.cgi?id=781573
10916 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10918 * gst/vaapi/gstvaapipostprocutil.c:
10919 vaapipostproc: fixes for memory leaks
10920 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
10921 requires to clear the used GValue to avoid a memory leak.
10923 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10925 * gst/vaapi/gstvaapipluginbase.c:
10926 * gst/vaapi/gstvaapipluginbase.h:
10927 plugins: enable direct rendering with envvar
10928 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
10929 performance in some Intel platforms (Haswell, for example) but in others
10930 (Skylake) is the opposite.
10931 In order to have some control, the patch enables the direct rendering
10932 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
10933 Also it seems to generating some problems with gallium/radeon backend.
10935 https://bugzilla.gnome.org/show_bug.cgi?id=775848
10937 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
10939 * gst/vaapi/gstvaapidecode.c:
10940 vaapidecode: Don't renegotiate on every flush
10941 If caps don't actually change, don't update the
10942 decoder and don't set the do_renego flag forcing
10943 downstream renegotiation
10944 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10946 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
10948 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10949 h264 decoder: Implement reset() for faster flush
10950 Implement a custom reset() function for faster flushes
10951 that just clear the reference pictures but don't reallocate
10952 the DPB or clear out SPS/PPS
10953 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10955 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
10957 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10958 * gst-libs/gst/vaapi/gstvaapidecoder.h:
10959 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10960 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10961 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10962 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10963 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10964 * gst/vaapi/gstvaapidecode.c:
10965 Implement decoder reset on flush, rather than recreating
10966 Clear decoders out on a flush but keep the same instance,
10967 rather than completely recreating them. That avoids
10968 unecessarily freeing and recreating surface pools
10969 and contexts, which can be quite expensive
10970 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10972 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10974 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10975 libs: window: don't add an unused function
10976 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
10977 a function that is never used, thus when compiling we might see
10978 this warning (clang):
10979 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
10980 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
10982 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10984 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10986 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10987 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10988 libs: window: remove surface_format member
10989 Since we always convert to NV12, there is no need to keep a
10990 variable for that. Let us hard code it.
10991 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10993 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10995 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10996 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10997 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10998 libs: window: x11/wayland: use new api for conversion
10999 Since gst_vaapi_window_vpp_convert_internal is created,
11000 GstVaapiWindowX11/Wayland can use it for conversion.
11001 Note that once it chooses to use vpp, it's going to use vpp
11002 until the session is finished.
11003 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11005 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
11007 * gst-libs/gst/vaapi/gstvaapiwindow.c:
11008 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
11009 libs: window: add gst_vaapi_window_vpp_convert_internal()
11010 If a backend doesn't support specific format, we can use vpp for conversion
11011 and make it playing.
11012 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
11013 so that GstVaapiWindowX11 could use it.
11014 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11016 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
11018 * gst-libs/gst/vaapi/gstvaapiwindow.c:
11019 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
11020 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11021 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
11022 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
11023 libs: window: x11/wayland: chaining up to GstVaapiWindow
11024 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
11025 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
11026 https://bugzilla.gnome.org/show_bug.cgi?id=759533
11028 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11030 * gst/vaapi/gstvaapipluginutil.c:
11031 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
11032 When these definitions are false, they are undef in the
11033 preprocessor, not a defined value of 0. When they are unset the
11034 compile fails with:
11035 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
11036 https://bugzilla.gnome.org/show_bug.cgi?id=780948
11038 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
11041 Automatic update of common submodule
11042 From 39ac2f5 to 60aeef6
11044 === release 1.11.90 ===
11046 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
11051 * gstreamer-vaapi.doap:
11055 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11057 * gst/vaapi/gstvaapiencode_h265.c:
11058 vaapiencode: h265: add main-10 in caps template
11059 This patch adds h265's main-10 profile in encoder src caps template.
11060 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11062 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11064 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11065 libs: encoder: h265: chroma and luma with format
11066 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
11067 parameter buffer, shall be the color format bit depth minus 8, 10-8
11068 which is 2. Also for bit_depth_chroma_minus8.
11069 This patch gets the negotiated sink caps format and queries its
11070 luma's depth and uses that value to fill the mentioned parameters.
11071 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11073 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11075 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11076 libs: encoder: admit YUV420_10BPP as valid chroma
11077 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
11079 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11081 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11083 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11084 libs: encoder: h265: ensures profile given format
11085 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
11086 configured color format is P010_10LE.
11087 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
11088 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11090 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11092 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11093 libs: encode: merge all possible surface formats
11094 When the function gst_vaapi_encoder_get_surface_formats() was added
11095 it was under the assumption that any VA profile of the specific codec
11096 supported the same format colors. But it is not, for example the
11097 profiles that support 10bit formats.
11098 In other words, different VA profiles of a same codec may support
11099 different color formats in their upload surfaces.
11100 In order to expose all the possible color formats, if no profile is
11101 specified via source caps, or if the encoder doesn't have yet a
11102 context, all the possible VA profiles for the specific codec are
11103 iterated and their color formats are merged.
11104 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11106 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11108 * gst/vaapi/gstvaapiencode.c:
11109 * gst/vaapi/gstvaapiencode.h:
11110 * gst/vaapi/gstvaapiencode_h264.c:
11111 * gst/vaapi/gstvaapiencode_h265.c:
11112 vaapiencode: add get_profile() vmethod
11113 This new virtual method, get_profile(), if implemented by specific
11114 encoders, will return the VA profile potentially determined by the
11116 Also it is implemented by h264 and h265 encoders, which are the main
11117 users of this vmethod.
11118 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11120 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11122 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11123 * gst-libs/gst/vaapi/gstvaapiencoder.h:
11124 * gst/vaapi/gstvaapiencode.c:
11125 libs: encoder: pass profile to get_surface_formats()
11126 In order to get the supported surface formats within a specific
11127 profile this patch adds the GstVaapiProfile as property to
11128 gst_vaapi_encoder_get_surface_formats().
11129 Currently the extracted formats are only those related with the
11130 default profile of the element's codec.
11131 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11133 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11135 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11136 libs: encoder: dummy context for get_surface_formats()
11137 Instead of creating (if it doesn't exist, yet) the encoder's context
11138 the method gst_vaapi_encoder_get_surface_formats() now it creates
11139 dummy contexts, unless the encoder has it already created.
11140 The purpose of this is to avoid setting a encoder's context with a
11142 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11144 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11146 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11147 libs: encoder: refactor init_context_info()
11148 In order to generate vaapi contexts iterative, the function
11149 init_context_info() is refactored to pass, as parameters the
11150 GstVaapiContextInfo and the GstVaapiProfile.
11151 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11153 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11155 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11156 * gst-libs/gst/vaapi/gstvaapiutils.c:
11157 * gst-libs/gst/vaapi/gstvaapiutils.h:
11158 libs: encoder: initialize chroma_type
11159 Instead of initialize the chroma_type with a undefined value, which
11160 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
11161 this patch queries the VA config, given the received
11162 GstVaapiContextInfo's parameters, and gets the first response.
11163 In order to get the GstVaapiChromaType value, also it was needed to
11164 add a new utility function: to_GstVaapiChromaType(), which, given a
11165 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
11166 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11168 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11170 * gst/vaapi/gstvaapiencode.c:
11171 vaapiencode: enhance logs of negotiated caps
11172 https://bugzilla.gnome.org/show_bug.cgi?id=771291
11174 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
11176 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
11177 libs: encoder: vp9: Fix initialization of ref_list
11178 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
11179 'memset' used with length equal to number of elements without
11180 multiplication by element size [-Werror=memset-elt-size]
11181 https://bugzilla.gnome.org/show_bug.cgi?id=780947
11183 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11185 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11186 encoder: h264: Fix Backward ReferencePicture flag setting
11187 This is a regression introduced by e829b62 which
11188 override the reference flags and caused issues with
11189 latest intel-vaapi-driver.
11191 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11193 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11194 libs: encoder: h265: fix code style
11195 Trivial patch to remove a double ';' as end of instruction.
11197 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11199 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11200 encoder: h264: Fix B frame encoding artifacts
11201 The current implementation is updating the POC values only
11202 in Slice parameter Buffer.But we are not filling the
11203 picture order count and reference flags in VAPictureH264
11204 while populating VA Picture/Slice structures.The latest
11205 intel-vaapi-driver is directly accessing the above fields
11206 from VAPicutreH264 provided as RefPicLists, which resulted
11207 some wrong maths and prediction errors in driver.
11208 https://bugzilla.gnome.org/show_bug.cgi?id=780620
11210 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11212 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11213 libs: encoder: h265: remove unused macro definition
11214 Since the h265 encoder doesn't use GValueArray, there is no need to
11215 disable the Glib deprecation warnings, thus removing the macro
11218 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11220 * gst/vaapi/gstvaapidecode.c:
11221 * gst/vaapi/gstvaapiencode.c:
11222 * gst/vaapi/gstvaapipostproc.c:
11223 * gst/vaapi/gstvaapisink.c:
11224 plugins: when debug disabled, default category is NULL
11225 As in gstreamer-vaapi a common base class is used, the specific
11226 default category is passed to the base-plugin initializator, thus
11227 the log messages are categorized with the used plugin.
11228 Nonetheless, when the gst-debug is disabled in compilation time,
11229 it is needed to pass NULL to the base-plugin initializator. This
11231 https://bugzilla.gnome.org/show_bug.cgi?id=780302
11233 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
11235 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11236 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11237 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
11238 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
11239 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
11240 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
11241 unit length and data to a bitwriter.
11242 Note that this helper function applies EPB (Emulation Prevention
11243 Bytes), since otherwise produced codec_data might be broken when
11244 decoder/parser considering EPB, starts parsing.
11245 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
11246 describes the emulation_prevention_three_byte.
11247 https://bugzilla.gnome.org/show_bug.cgi?id=778750
11248 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11250 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11252 * gst-libs/gst/vaapi/Makefile.am:
11253 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11254 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11255 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
11256 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
11257 * gst-libs/gst/vaapi/meson.build:
11258 libs: utils: h26x: create vaapiutils_h26x
11259 Since there is duplicated code in h264/265 encoder, we could
11260 refactor it to avoid duplicated code.
11261 https://bugzilla.gnome.org/show_bug.cgi?id=778750
11262 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11264 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
11266 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11267 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11268 libs: encoder: h264/5: fix wrong return value
11269 https://bugzilla.gnome.org/show_bug.cgi?id=778750
11271 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11273 * gst/vaapi/gstvaapiencode_h264.c:
11274 * gst/vaapi/gstvaapiencode_h265.c:
11275 docs: h264/h265: put parser to the example pipeline
11276 https://bugzilla.gnome.org/show_bug.cgi?id=778749
11278 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11280 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11281 libs: encoder: h265: fix reserved length of bits
11282 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
11283 https://bugzilla.gnome.org/show_bug.cgi?id=778749
11285 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11287 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11288 * tests/test-display.c:
11289 O_CLOEXEC needs _GNU_SOURCE defined
11291 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
11292 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
11293 2.12, one can obtain their definitions by defining either
11294 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
11295 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
11296 2.11 and earlier, one obtains the definitions by defining
11298 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
11299 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
11300 gstreamer-vaapi with the uClibc C library.
11301 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11302 https://bugzilla.gnome.org/show_bug.cgi?id=779953
11304 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11307 README: fix "Sources" section
11308 Update the URL where the release source tarballs can be downloaded.
11310 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11313 README: fix "Reporting bugs" section
11314 The "Reporting bugs" section gives
11315 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
11316 link to report a bug, but this link says "Sorry, entering a bug into the
11317 product gstreamer-vaapi has been disabled.".
11318 This commit fixes the URL to point to the proper location, and also
11319 removes the following paragraph that is no longer correct.
11320 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11321 https://bugzilla.gnome.org/show_bug.cgi?id=779954
11323 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11325 * gst/vaapi/gstvaapipluginutil.c:
11326 plugins: retry to create the VA display
11327 Particularly in GNOME Wayland, the negotiated or created GL context
11328 defines a GLX environment, but VAAPI fails to create a GLX VA
11329 display because there is no a DRI2 connection.
11330 This patch retries to create the VA display if VA cannot create one
11331 with the GL context parameters. Now using the old list of display
11333 This should also work in the case of systems with two GPU, when the
11334 non-VAAPI has the graphics environment, and the VAAPI-enabled one
11335 shall work headless.
11336 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11338 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11340 * gst/vaapi/gstvaapipostproc.c:
11341 vaapipostproc: texture upload if driver supports GL
11342 Removes GstVideoGLTextureUploadMeta caps feature if the driver
11343 doesn't support opengl.
11344 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11345 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11347 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11349 * gst/vaapi/gstvaapidecode.c:
11350 vaapidecode: texture upload if driver supports GL
11351 When the allowed source pad caps are generated, the GLTextureUpload caps are
11352 only inserted if the driver support OpenGL.
11353 https://bugzilla.gnome.org/show_bug.cgi?id=772838
11355 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11358 configure: Add missing compiler flags
11359 The AC_CHECK_HEADERS macro was failing to locate some headers, in
11360 particular the va_enc_* headers due to missing compiler flags.
11361 https://bugzilla.gnome.org/show_bug.cgi?id=779101
11362 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11364 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
11366 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11367 libs: window: wayland: handle more VAStatus to use vpp
11368 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
11369 we should consider more returned VAStatus to use vpp.
11370 https://bugzilla.gnome.org/show_bug.cgi?id=779400
11372 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11374 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11375 libs: encoder: ensure profile when context initialization
11376 We can't be sure that encoder's profile is assgined already or not
11377 at context initialization.
11378 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11380 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
11382 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11383 libs: encoder: set rate control info only when query succeed
11384 Currently, it set rate control information even when query fails.
11385 In addition, it doesn't update any more since the flag
11386 got_rate_control_mask is set to TRUE.
11387 https://bugzilla.gnome.org/show_bug.cgi?id=779120
11389 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
11392 meson: Update version
11394 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
11397 Back to development
11399 === release 1.11.2 ===
11401 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
11406 * gstreamer-vaapi.doap:
11409 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11411 * gst/vaapi/gstvaapiencode.c:
11412 vaapiencode: merge tags for downstream's info
11413 Add encoder and codec name and the bitrate into the output for
11414 informational purposes. Some muxers or application use it as
11416 https://bugzilla.gnome.org/show_bug.cgi?id=778781
11418 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11420 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11421 libs: encoder: caps can change at any time
11422 The encoder should be able to change its caps even it is already
11423 processing a stream.
11424 This is suppose to happen after a flush so the codedbuf_queue should
11426 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11428 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11430 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11431 libs: encoder: h265: bail if nal unit type fails
11432 Bail out if the NAL unit type is not recognized.
11433 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11435 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11437 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11438 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11439 libs: decoder: h264,h265 avoid uninitialized variable
11440 Configuring GCC to verify possible usage of uninitialized variables,
11441 shows that found_index might be used without previous assignation.
11442 This patch assigns a initial value to found_index, also avoid a
11443 branching when returning the result value.
11444 https://bugzilla.gnome.org/show_bug.cgi?id=778782
11446 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11449 * gst-libs/gst/vaapi/Makefile.am:
11450 * gst/vaapi/gstvaapidecode.c:
11451 * gst/vaapi/gstvaapidecodebin.c:
11452 build: rename USE_HEVC_DECODER to USE_H265_DECODER
11453 Rename to be consistent with H.264 and also H.265 encoder. The
11454 meson build assumed this was already consistently named, and so
11455 previously was not able to actually build the H.265 decoder.
11456 https://bugzilla.gnome.org/show_bug.cgi?id=778576
11458 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
11461 meson: gstreamer-codecparsers is a required dep
11462 Just like in configure.ac.
11464 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
11467 meson: dist meson build files
11468 Ship meson build files in tarballs, so people who use tarballs
11469 in their builds can start playing with meson already.
11471 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
11473 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11474 libs: encoder: vp8: add CBR encoding mode
11475 This patch enables the Constant BitRate encoding mode in VP8 encoder.
11476 Basically it adds the configuration parameters required by libva to
11478 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11479 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11481 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
11483 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11484 libs: encoder: vp8: fix bitrate calculation
11485 Base encoder's unit of bitrate is in Kbps. We should honor it so
11486 we use the value of bitrate in VA, in which is expressed in bps.
11487 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11489 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11491 * gst/vaapi/gstvaapipluginbase.c:
11492 plugins: fix build when gcc
11493 In commit a8e482f9 we added a function without parameters, but gcc
11496 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11498 * gst-libs/gst/base/meson.build:
11499 * gst-libs/gst/meson.build:
11500 * gst-libs/gst/vaapi/meson.build:
11501 * gst-libs/meson.build:
11503 * gst/vaapi/meson.build:
11505 * meson_options.txt:
11506 vaapi: add meson build
11507 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11509 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11512 * gst-libs/gst/vaapi/Makefile.am:
11513 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11514 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
11515 make: remove gstvaapiversion.h generation
11516 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11518 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
11520 * gst/vaapi/gstvaapipluginbase.c:
11521 plugins: use linear storage if not the same device
11522 When dmabuf is negotiated downstream and decoding and rendering are
11523 not done on the same device, the layout has to be linear in order for
11524 the memory to be shared accross devices, since each device has its
11525 own way to do tiling.
11526 Right now this code is rather just a to-do comment, since we are not
11527 fetching the device ids.
11528 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11530 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
11532 * gst-libs/gst/vaapi/gstvaapiutils.c:
11533 libs: utils: add HEVC profiles representation
11534 https://bugzilla.gnome.org/show_bug.cgi?id=778318
11536 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
11538 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11539 libs: decoder: h264: reduce frame number of gaps
11540 Reduce frame num gaps so that we don't have to create unnecessary
11541 dummy pictures, just throw them away.
11542 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11543 https://bugzilla.gnome.org/show_bug.cgi?id=777506
11545 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11547 * gst/vaapi/gstvaapidecode.c:
11548 vaapidecode: don't GLTextureUpload if dmabuf
11549 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11550 element can handle dmabuf-based buffers, avoiding its negotiation.
11552 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
11554 * gst/vaapi/gstvaapidecode.c:
11555 vaapidecode: make pool to export decoder's surface
11556 Use new -base API gst_video_decoder_allocate_output_frame_full() to
11557 pass the current proxy/surface to the pool.
11558 The pool will will export thins given surface instead of exporting a
11559 brand new surface that will never be filled in with meaningfull data.
11560 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11562 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11564 * gst/vaapi/gstvaapipluginbase.c:
11565 plugins: decoder can negotiate dmabuf downstream
11567 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
11569 * gst/vaapi/gstvaapivideobufferpool.c:
11570 vaapivideobufferpool: override acquire_buffer()
11571 Overriding the vmethod acquire_buffer() it is possible to attach the
11572 right GstMemory to the current acquired buffer.
11573 As a matter of fact, this acquired buffer may contain any instantiated
11574 GstFdmemory, since this buffer have been popped out from the buffer
11575 pool, which is a FIFO queue. So there is no garantee that this buffer
11576 matches with the current processed surface. Evenmore, the VA driver
11577 might not use a FIFO queue. Therefore, it is no way to guess on the
11579 In short, acquire_buffer on the VA driver and on the buffer pool return
11580 none matching data, we have to manually attach the right GstFdMemory to
11581 the acquired GstBuffer. The right GstMemory is the one associated with
11582 the current surface.
11583 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11585 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
11587 * gst/vaapi/gstvaapivideobufferpool.c:
11588 * gst/vaapi/gstvaapivideomemory.c:
11589 vaapivideomemory: export surface if it is provided
11590 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
11591 had to create that surface. Now it can also export an already provided
11592 surface. It is useful to export decoder's surfaces (from VA context).
11593 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11595 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
11597 * gst/vaapi/gstvaapivideobufferpool.h:
11598 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
11599 Useful to let the pool know the current surface proxy when calling
11600 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
11601 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11603 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
11605 * gst-libs/gst/vaapi/gstvaapisurface.c:
11606 * gst-libs/gst/vaapi/gstvaapisurface.h:
11607 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
11608 These functions are useful when a dmabuf-based memory is instantiated in
11609 order to relate the generated buffer @proxy with the processed @surface.
11610 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11612 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
11614 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11615 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11616 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11617 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
11618 This patch adds a GstMemory as a variable member of the buffer proxy,
11619 because we will need to associate the buffer proxy with the memory
11620 which exposes it. Later, we will know which memory, in the video buffer
11621 pool, is attached to the processed surface.
11622 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11624 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11626 * gst/vaapi/gstvaapipostproc.c:
11627 vaapipostproc: don't GLTextureUpload if dmabuf
11628 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11629 element can handle dmabuf-based buffers, avoiding its negotiation.
11630 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
11631 feature if can dmabuf"
11632 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11634 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11636 * gst/vaapi/gstvaapipluginbase.c:
11637 plugins: enable DMAbuf allocator to downstream
11638 If the negotiated caps are raw caps and downstream supports the
11639 EGL_EXT_image_dma_buf_import extension, then the created allocator
11640 is the DMAbuf, configured to downstream.
11641 At this moment, the only element which can push dmabuf-based buffers
11642 to downstream, is vaapipostproc.
11644 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11646 * gst/vaapi/gstvaapipluginbase.c:
11647 * gst/vaapi/gstvaapipluginbase.h:
11648 plugins: check if negotiate dmabuf with downstream
11649 In order to enable, in the future, dmabuf-based buffers, the vaapi base
11650 plugin needs to check if downstream can import dmabuf buffers.
11651 This patch checks if downstream can handle dmabuf, by introspecting the
11652 shared GL context. If the GL context is EGL/GLES2 and have the extension
11653 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
11654 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
11656 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
11658 * gst/vaapi/gstvaapivideomemory.c:
11659 vaapivideomemory: release proxy's data if downstream
11660 The surface created for downstream is going to be filled by VAAPI
11661 elements. So, the driver needs write access on that surface.
11662 This patch releases the derived image held by the proxy, thus the
11663 surface is unmarked as busy.
11664 This is how it has to be done as discussed on libva mailing list.
11665 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11667 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
11669 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11670 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11671 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
11672 Adds an API to request the user's data release in the buffer proxy.
11673 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11675 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11677 * gst/vaapi/gstvaapipluginbase.c:
11678 * gst/vaapi/gstvaapivideomemory.c:
11679 * gst/vaapi/gstvaapivideomemory.h:
11680 vaapivideomemory: add direction to dmabuf allocator
11681 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
11682 we later could do different thing when the allocated memory is for
11683 upstream or dowstream, as required by VA-API.
11684 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11686 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
11688 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
11689 libs: utils: return NULL if failed to get surface formats
11690 Thus, when generating the allowed caps, the element will throw a
11691 warning and it will use its caps template.
11692 This behavior might be a bug in the VA driver.
11693 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11695 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11697 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11698 Revert "vaapidisplay: mark X11 display as compatible with EGL"
11699 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
11701 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
11703 * gst/vaapi/gstvaapipostproc.c:
11704 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
11705 A value of width/height property should be set to out caps,
11706 if negotiation had been going properly.
11707 So we can use srcpad_info when making decision of scaling.
11708 https://bugzilla.gnome.org/show_bug.cgi?id=778010
11710 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11712 * gst/vaapi/gstvaapidecode.c:
11713 * gst/vaapi/gstvaapiencode.c:
11714 * gst/vaapi/gstvaapipluginutil.c:
11715 * gst/vaapi/gstvaapipluginutil.h:
11716 * gst/vaapi/gstvaapipostproc.c:
11717 * gst/vaapi/gstvaapisink.c:
11718 plugins: handle GL params through context query
11719 If the element instantiated the GL display and context, they should
11720 handle them too through the context query.
11721 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11723 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11725 * gst/vaapi/gstvaapipluginbase.c:
11726 * gst/vaapi/gstvaapipluginbase.h:
11727 * gst/vaapi/gstvaapipluginutil.c:
11728 plugins: create a GL context on certain conditions
11729 If a GstVaapiDisplay is not found in the GStreamer context sharing,
11730 then VAAPI elements look for a local GstGLContext in gst context
11731 sharing mechanism ('gst.gl.local.context').
11732 If this GstGLContext not found either then, only the VAAPI decoders
11733 and the VAAPI post-processor, will try to instantiate a new
11735 If a valid GstGLContext is received, then a new GstVaapiDisplay will
11736 be instantiated with the platform, API and windowing specified by the
11737 instantiated GstGLContext.
11738 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
11739 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11741 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11743 * gst/vaapi/gstvaapivideocontext.c:
11744 vaapivideocontext: context type can be rejected
11745 Instead of calling g_return_val_if_fail() to check the context type, we
11746 should use a normal conditional, since it is possible that other context types
11747 can arrive and try to be assigned. Otherwise a critical log message is
11749 This happens when we use playbin3 with vaapipostproc as video-filter.
11750 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11752 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11754 * gst/vaapi/gstvaapipostprocutil.c:
11755 vaapipostproc: use sink caps par if not requested
11756 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
11757 is not already set.
11758 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11760 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11762 * gst/vaapi/gstvaapipostproc.c:
11763 * gst/vaapi/gstvaapipostprocutil.c:
11764 vaapipostproc: set interlace mode
11765 if the vaapipostproc is configured to not do deinterlacing, the
11766 interlace-mode in the src caps should be the same as the input caps.
11767 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11769 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11771 * gst/vaapi/gstvaapisink.c:
11772 vaapisink: fix gcc compiler warning
11773 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
11775 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11777 * gst/vaapi/gstvaapisink.c:
11778 vaapisink: don't use member variable outside lock
11779 Thus a race condition segfault is avoided.
11780 Original-patch-by: Matt Staples <staples255@gmail.com>
11781 https://bugzilla.gnome.org/show_bug.cgi?id=777146
11783 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11785 * gst/vaapi/gstvaapipluginbase.c:
11786 * gst/vaapi/gstvaapipostproc.c:
11787 plugins: avoid log flood when activating pool
11788 Every time a new buffer is allocated, the pool is activated. This
11789 doesn't impact in performance since gst_buffer_pool_set_active()
11790 checks the current state of the pool. Nonetheless it logs out a
11791 message if the state is the same, and it floods the logging subsystem
11793 To avoid this log flooding first the pool state is checked before
11796 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11798 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11799 * gst-libs/gst/vaapi/gstvaapidecoder.h:
11800 * gst/vaapi/gstvaapidecode.c:
11801 * gst/vaapi/gstvaapidecode.h:
11802 vaapidecode: update internal decoder sink caps
11803 When a new sink caps arrive the internal decoder state is updated
11804 and, if it is, request a downstream renegotiation.
11805 Previously, when new caps arrived the whole decoder where destroyed
11806 and recreated. Now, if the caps are compatible or has the same codec,
11807 the internal decoder is kept, but a downstream renegotiation is
11809 https://bugzilla.gnome.org/show_bug.cgi?id=776979
11811 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
11814 Back to development
11816 === release 1.11.1 ===
11818 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
11823 * gstreamer-vaapi.doap:
11826 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11828 * gst-libs/gst/vaapi/gstvaapiutils.c:
11829 vaapi: bump ifdef to API 0.40.0 for log redirect
11830 vaSetInfoCallback() is not released yet. It is going to appear in
11833 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
11835 * gst-libs/gst/vaapi/gstvaapiutils.c:
11836 vaapiutils: Fix compilation with latest and previous libva releases
11837 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
11840 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11842 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11843 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11844 * gst-libs/gst/vaapi/gstvaapiutils.c:
11845 * gst-libs/gst/vaapi/gstvaapiutils.h:
11846 libs: display: redirect logging at initialize
11847 Redirect libva's logs to GStreamer logging mechanism. This is
11848 particularly useful when VA is initialized, because it always logs
11849 out the drivers details.
11850 In order to achieve this a new helper function was added as a wrapper
11851 for the vaInitialize() function.
11852 https://bugzilla.gnome.org/show_bug.cgi?id=777115
11854 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
11856 * gst/vaapi/gstvaapipluginbase.c:
11857 plugins: provide at least two buffers in sink pool
11858 Adds two buffers as the default value of minimum buffer.
11859 This would be used when creating and proposing vaapi bufferpool for
11860 sink pad, hence the upstream element will keep, at least, these two
11862 https://bugzilla.gnome.org/show_bug.cgi?id=775203
11863 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11865 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
11867 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11868 libs: decoder: h264: don't update cloned attributes
11869 If the frame is a cloned picture, its PTS comes from its parent
11870 picture. In addition, the base decoder doesn't set a valid PTS to
11871 the frame corresponding to the cloned picture.
11872 https://bugzilla.gnome.org/show_bug.cgi?id=774254
11874 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11876 * gst/vaapi/gstvaapivideomemory.c:
11877 vaapivideomemory: check for display
11878 This patch fixes the check of display, rather than check for the
11879 meta, which it is known it exists.
11881 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11883 * gst/vaapi/gstvaapivideomemory.c:
11884 * gst/vaapi/gstvaapivideomemory.h:
11885 vaapivideomemory: rename dmabuf allocator parameters
11886 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
11887 'surface_alloc_flags' respectively. The purpose of this change is
11888 to auto-document those parameters.
11889 Also, aligned to this patch, the local 'alloc_info' variable was
11890 renamed as 'surface_info', because it stores the possible surface's
11891 video info, not the allocate one.
11893 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11895 * gst/vaapi/gstvaapivideomemory.c:
11896 * gst/vaapi/gstvaapivideomemory.h:
11897 vaapivideomemory: rename vip to alloc_info parameter
11898 In order to auto-document the code, this patch renames the 'vip'
11899 parameter in the functions related to gst_vaapi_video_allocator_new ()
11900 to 'alloc_info', since it declares the allocation video info from
11901 the vaapi buffer pool.
11903 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11905 * gst/vaapi/gstvaapivideomemory.c:
11906 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
11907 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
11908 the video format string.
11910 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11912 * gst/vaapi/gstvaapivideomemory.c:
11913 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
11914 gst_vaapi_surface_new_with_format() is a wrapper for
11915 gst_vaapi_surface_new_full (). In this case, the former is simpler
11916 than the first. This patch changes that.
11918 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11920 * gst/vaapi/gstvaapipostproc.c:
11921 vaapipostproc: notify if src pad caps changed
11922 If src pad caps have changed, it needs to notify it downstream. In
11923 addition, do not set passthrough if they have changed.
11924 Otherwise, transform sometimes starts processing before caps change.
11925 The passthrough value will be set in fixate later in this case.
11926 https://bugzilla.gnome.org/show_bug.cgi?id=775204
11928 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11930 * gst/vaapi/gstvaapidecodebin.c:
11931 vaapidecodebin: capsfilter to optimize negotiation
11932 Add a capsfilter forcing the caps
11933 "video/x-raw(memory:VASurface), format=(string)NV12" between the
11934 queue and the vaapipostproc so no renegotiation is required.
11935 https://bugzilla.gnome.org/show_bug.cgi?id=776175
11937 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11939 * gst/vaapi/gstvaapivideomemory.c:
11940 vaapivideomemory: fail surface/image configuration
11941 To detect and handle errors during allocator_configure_surface_info()
11942 and allocator_conigure_image_info().
11943 https://bugzilla.gnome.org/show_bug.cgi?id=776084
11944 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11946 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11948 * gst/vaapi/gstvaapisink.c:
11949 vaapisink: ensures raw caps at start()
11950 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
11951 race conditions at get_caps(), especially with multiple src elements.
11952 https://bugzilla.gnome.org/show_bug.cgi?id=776303
11954 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11956 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11957 libs: surface: fix error handling code style
11959 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11961 * gst/vaapi/gstvaapivideomemory.c:
11962 vaapivideomemory: add gst_video_info_update_from_surface()
11963 With this function is possible to refactor and remove duplicated code
11964 between dmabuf configuration and direct rendering/uploading
11967 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11969 * gst/vaapi/gstvaapivideomemory.c:
11970 vaapivideomemory: no log object at initialization
11971 When an instance of GstVaapiVideoAllocator fails at initializing, the
11972 log message should not include the allocator's object, because it is
11973 going to be unrefed.
11975 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11977 * gst/vaapi/gstvaapidecode.c:
11978 vaapidecode: lock stream when setting caps
11980 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11982 * gst/vaapi/gstvaapidecode.c:
11983 Revert "vaapidecode: implement negotiate() vmethod"
11984 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
11985 videodecode's negotiate() vmethod is also called when events arrive,
11986 but this would mean that the proper configuration of sink pad might
11987 not be complete, thus we should not update the src pad.
11988 Let's keep the old non-vmethod negotitate().
11990 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11992 * gst/vaapi/gstvaapi.c:
11993 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
11994 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
11996 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
11998 * gst/vaapi/gstvaapiencode.c:
11999 * gst/vaapi/gstvaapiencode.h:
12000 vaapiencode: get surface formats in get_caps()
12001 Query for the supported surface formats in config at get_caps() vmethod.
12002 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12003 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12005 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
12007 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12008 * gst-libs/gst/vaapi/gstvaapiencoder.h:
12009 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
12010 This method will return the valid surface formats in the current
12011 config. If the are no VAConfig it is created with the information
12013 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12014 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12016 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
12018 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12019 libs: encoder: split set_context_info()
12020 Split set_context_info() adding init_context_info() which only
12021 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
12022 required for VAConfig.
12023 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12024 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12026 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
12028 * gst-libs/gst/vaapi/gstvaapicontext.c:
12029 libs: context: skip VAContext if no frame size
12030 If GstVaapiContextInfo has just initial information, without frame's
12031 width and height, skip the creation of the VAContext, just keep the
12033 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12034 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12036 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
12038 * gst-libs/gst/vaapi/gstvaapicontext.c:
12039 libs: context: split context_create()
12040 Split the funcion context_create() into context_create() and
12042 Decoupling VAConfig and VAContext during context creation, we could
12043 query the VAConfig for the supported surface's formats without creating
12045 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12047 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12049 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12050 libs: drm: find render node in hybrid system
12051 Originally the drm backend only tried to open the first render node
12052 found. But in hybrid system this first render node might not support
12053 VA-API (propietary Nvidia driver, for example).
12054 This patch tries all the available nodes until a finding one with a
12055 VA-API supported driver.
12056 https://bugzilla.gnome.org/show_bug.cgi?id=774811
12057 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
12058 Reza Razavi <reza@userful.com>
12060 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12062 * gst/vaapi/gstvaapivideomemory.c:
12063 vaapivideomemory: refactor code for readability
12064 Added the inlined function allocator_configure_pools() moving out code
12065 from gst_vaapi_video_allocator_new() to make clear that it is a
12066 post-initalization of the object.
12068 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12070 * gst/vaapi/gstvaapivideomemory.c:
12071 vaapivideomemory: log error if not VA image
12072 Log an error message if the test image for surface downloading
12073 cannot be allocated or mapped.
12075 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12077 * gst/vaapi/gstvaapivideomemory.c:
12078 vaapivideomemory: remove unused macros
12079 These macros are not used. Let us remove them.
12081 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12083 * gst/vaapi/gstvaapivideomemory.c:
12084 * gst/vaapi/gstvaapivideomemory.h:
12085 vaapivideomemory: rename video for allocation_info
12086 Since video_info stores the GstVideoInfo of the allocation caps,
12087 it is clear if we rename it as allocation_info, to distinguish it
12088 later from negotiation_info.
12090 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
12092 * gst/vaapi/gstvaapivideomemory.c:
12093 * gst/vaapi/gstvaapivideomemory.h:
12094 vaapivideomemory: add real GstVaapiDmaBufAllocator
12095 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
12096 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
12097 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
12098 from GstDmaBufAllocator.
12099 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12100 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12102 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
12104 * gst/vaapi/gstvaapivideomemory.c:
12105 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
12106 Add a helper function to initialize the gst_debug_vaapivideomemory,
12107 to use it either by the GstVaapiVideoAllocatorClass or
12108 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
12109 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
12110 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12112 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
12114 * gst/vaapi/gstvaapiencode.c:
12115 vaapiencode: release internal encoder at stop()
12116 As the internal encoder is created at start(), let's release it at
12117 stop() vmethod, to be consistent.
12118 gst_vaapiencode_destroy() is called since it also resets the input and
12119 output states, which is something that the base class does internally
12120 after calling stop() vmethod.
12121 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12122 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12124 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
12127 Automatic update of common submodule
12128 From f49c55e to 39ac2f5
12130 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
12132 * gst/vaapi/gstvaapiencode.c:
12133 vaapiencode: call ensure_encoder() at start()
12134 Currently, specific encoder is created during set_format(). This might
12135 lead to race condition when creating profiles with multiple encoders.
12136 This patch moves ensure_encoder() call to start() vmethod to ensure
12137 avoiding the race condition.
12138 https://bugzilla.gnome.org/show_bug.cgi?id=773546
12140 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12142 * gst/vaapi/gstvaapidecodebin.c:
12143 vaapidecodebin: bring back dynamic configuration
12144 In commit ca0c3fd6 we remove the dynamic configuration if the bin
12145 because we assumed that the bin will be always static as it is
12147 Nonetheless we were wrong, because it is possible to request, with a
12148 property, to avoid the use of the post-processor.
12149 Since we want to add a way to disable the post-processor through
12150 environment variables, this remove feature is required again.
12151 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
12152 postprocessor inside of the vaapidecodebin is disabled, then
12153 vaapidecodebin is an alias of the old vaapidecode.
12154 https://bugzilla.gnome.org/show_bug.cgi?id=775041
12156 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12158 * gst/vaapi/gstvaapidecode.c:
12159 vaapidecode: implement negotiate() vmethod
12160 Instead of decorating the negotiate() method, let us override it,
12161 so the stream is locked while called.
12162 https://bugzilla.gnome.org/show_bug.cgi?id=775040
12164 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
12167 common: use https protocol for common submodule
12168 https://bugzilla.gnome.org/show_bug.cgi?id=775110
12170 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
12172 * gst-libs/gst/vaapi/Makefile.am:
12173 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
12174 In case libva-wayland has its headers not installed in default
12175 locations (like /usr/include), the build fails to include "wayland-client.h":
12176 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
12177 In file included from gstvaapidisplay_wayland.h:27:0,
12178 from gstvaapidisplay_egl.c:35:
12179 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
12180 #include <wayland-client.h>
12181 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
12182 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
12183 for libva-wayland.pc in configure and use this in other places as well. It is thus only
12184 correct and consequent, to do it also at this spot.
12185 https://bugzilla.gnome.org/show_bug.cgi?id=773946
12187 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12189 * gst/vaapi/gstvaapivideocontext.c:
12190 vaapivideocontext: log a message if no bus
12191 Raise a warning if there is no bus when the element tries to post a
12194 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12196 * gst/vaapi/gstvaapisink.c:
12197 vaapisink: create display at open()
12198 Instead of creating the VA display before setting the bus to the
12199 element, it is created when the element is opened.
12200 Basically, this commit is a revert of
12201 5e5d62cac79754ba60057fc2516135aad8d7de35
12202 That was done when the GStreamer's context sharing was not mature
12203 enough as now. There is no reason to keep this hack.
12205 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12207 * gst/vaapi/gstvaapidecode.c:
12208 vaapidecode: don't add video crop meta
12209 Since the differentiation of negotiation caps and allocation caps,
12210 there is no need to add a video crop meta with the negotiation caps.
12211 Hence, removing it.
12212 https://bugzilla.gnome.org/show_bug.cgi?id=773948
12214 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
12216 * gst/vaapi/gstvaapivideobuffer.c:
12217 * gst/vaapi/gstvaapivideometa.c:
12218 * gst/vaapi/gstvaapivideometa.h:
12219 remove the video converter from vaapi buffer meta
12220 Since all the video converter were deprecated in gstreamer-1.2, we don't need
12221 to handle them anymore in the vaapi's buffer meta.
12222 This patch removes its usage and the buffer meta's API for that.
12223 https://bugzilla.gnome.org/show_bug.cgi?id=745728
12225 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12227 * gst/vaapi/gstvaapipluginbase.c:
12228 plugins: destroy source pad allocator and pool
12229 First, deactivate source pad pool when the out caps change, and if so,
12230 destroy texture map, the source pad allocator and pool only if the
12231 new caps are different from the ones already set.
12233 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12235 * gst/vaapi/gstvaapipluginbase.c:
12236 plugins: don't destroy sink pad allocator
12237 Don't destroy sink pad allocator at _set_caps() because it will be done at
12238 ensure_sinkpad_buffer_pool() if it is required.
12240 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12242 * gst/vaapi/gstvaapipluginbase.c:
12243 plugins: first validate the out caps
12244 When calling _set_caps() first validate the out caps before doing
12247 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12249 * gst/vaapi/gstvaapidecode.c:
12250 vaapidecode: negotiate after destroying allocator
12251 This is related with bug 758907 when no vaapipostproc is used (no
12252 vaapidecodebin). In order to negotiate downstream we need to destroy
12253 the source pad allocator, otherwise the same allocated buffers are
12254 used, failing the mapping.
12256 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12258 * gst/vaapi/gstvaapivideomemory.c:
12259 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
12260 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
12261 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
12263 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12265 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12267 * gst/vaapi/gstvaapipluginbase.c:
12268 plugins: update the src pad allocator video info
12269 Update the size, stride and offset of the source pad allocator video
12270 info, so the pool could set the correct GstVideoMeta
12271 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12273 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12275 * gst/vaapi/gstvaapivideomemory.c:
12276 vaapivideomemory: add missing documentation
12277 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12279 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12281 * gst/vaapi/gstvaapipluginbase.c:
12282 plugins: use early return without goto
12283 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12285 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12287 * gst/vaapi/gstvaapipluginbase.c:
12288 * gst/vaapi/gstvaapivideomemory.c:
12289 * gst/vaapi/gstvaapivideomemory.h:
12290 plugins: add allocator to allocation query
12291 This patch adds the created allocator to the allocation query either
12292 in decide_allocation() and propose_allocation() vmehtods.
12293 With it, there's no need to set the modified allocator's size in the
12294 pool configuration.
12295 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12297 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
12299 * gst/vaapi/gstvaapivideobufferpool.c:
12300 vaapivideobufferpool: set correct buffer size
12301 We should set the correct buffer size when we are configuring the pool,
12302 otherwise the buffer will be discarded when it returns to the pool.
12303 Indeed when the ref-count of a buffer reaches zero, its pool will queue
12304 it back (and ref it) if, and only if, the buffer size matches the
12305 configured buffer size on the pool.
12306 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
12307 https://bugzilla.gnome.org/show_bug.cgi?id=774782
12309 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12311 * gst/vaapi/gstvaapivideomemory.c:
12312 vaapivideomemory: check for memory allocator
12313 When calling gst_vaapi_video_memory_copy() the allocator of the memory
12314 to copy should be allocated by the vaapi allocator.
12315 This patch does this verification.
12317 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12319 * gst/vaapi/gstvaapivideomemory.c:
12320 vaapivideomemory: code style fixes
12321 A cosmetic commit for enhance readability of the casts and method
12324 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12326 * gst/vaapi/gstvaapivideomemory.c:
12327 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
12328 Instead of having a gst_vaapi_video_memory_free() that is only going to
12329 be called by gst_vaapi_video_allocator_free(), let's just remove the first
12330 and merged into the second.
12332 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12334 * gst/vaapi/gstvaapivideomemory.c:
12335 vaapivideomemory: avoid virtual methods casting
12336 Use the expected virtual method signatures for readability.
12338 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12340 * gst/vaapi/gstvaapivideomemory.c:
12341 vaapivideomemory: remove unimplemented methods
12342 Remove unimplemented method for allocator mem_share() and mem_is_span().
12344 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12346 * gst/vaapi/gstvaapivideomemory.c:
12347 vaapivideomemory: fail if frame map can't get plane
12348 If map() vmethod in GstVideMeta cannot get the plane data, return false,
12349 thus the caller will not try to read invalid memory.
12350 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12352 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12354 * gst/vaapi/gstvaapivideomemory.c:
12355 * gst/vaapi/gstvaapivideomemory.h:
12356 vaapivideomemory: lock map and unmap operations
12357 In order to avoid race condition when two threads call map/unmap the same
12358 VA surface, this patch mutex these operations.
12359 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12361 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12363 * gst/vaapi/gstvaapivideomemory.c:
12364 vaapivideomemory: refactor vaapi memory unmapping
12365 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
12366 gst_vaapi_video_memory_unmap() when unmapping.
12367 This patch refactors both methods adding the common function
12368 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
12369 is correctly reset.
12370 Additionally, only when mapping flag has the WRITE bit, it set the image as
12371 current, which was done in gst_video_meta_map_vaapi_memory() but no in
12372 gst_vaapi_video_memory_map().
12373 In order to make this, the mapping flags were required, so instead of
12374 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
12375 https://bugzilla.gnome.org/show_bug.cgi?id=774213
12377 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12379 * gst/vaapi/gstvaapivideomemory.c:
12380 vaapivideomemory: refactor vaapi memory mapping
12381 There were duplicated code in gst_video_meta_map_vaapi_memory() and
12382 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
12383 This patch refactors both methods adding the common function
12384 map_vaapi_memory().
12385 Additionally, only when flag has the READ bit it calls
12386 ensure_images_is_current(), which was done in
12387 gst_video_meta_map_vaapi_memory() but no in
12388 gst_vaapi_video_memory_map().
12389 https://bugzilla.gnome.org/show_bug.cgi?id=772151
12391 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12393 * gst/vaapi/gstvaapidecode.c:
12394 vaapidecode: unref allowed_sinkpad_caps at close()
12395 The variable member allowed_sinkpad_caps is constructed querying the
12396 current VA display. Bearing that in mind, the variable shall be freed
12397 when the VA display changes or is removed.
12398 This patch moves the freeing of allowed_sinkpad_caps to close(), when
12399 the VA display is freed.
12401 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12403 * gst/vaapi/gstvaapisink.c:
12404 vaapisink: finish event thread at stop()
12405 The thread that handles window's events should be finished during
12406 pipeline's shutdown, otherwise it will remain alive during pipeline
12407 re-activation, leading to unexpected problems.
12408 This patch fixes failures of intensive_state_change scenario of
12410 https://bugzilla.gnome.org/show_bug.cgi?id=774241
12412 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12414 * gst/vaapi/gstvaapipostproc.c:
12415 vaapipostproc: enhance debug message
12416 "gst_pad_push" is not a good description of the event.
12418 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
12420 * gst/vaapi/gstvaapipostproc.c:
12421 postproc: honor gst_pad_push() return value
12422 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
12423 deadlock during seek.
12424 This patch returns the same error of gst_pad_push() and log out the
12426 https://bugzilla.gnome.org/show_bug.cgi?id=774030
12428 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12430 * gst/vaapi/gstvaapidecode.c:
12431 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
12432 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
12433 compiled with out EGL/GLX support: it shall not support
12434 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
12435 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
12436 allowed src caps for vaapedecode if EGL/GLX.
12438 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12440 * gst/vaapi/gstvaapivideomemory.c:
12441 vaapivideomemory: increment map counter only if succeeded
12442 Previously the frame map counter increased independently if the map succeeded
12443 or not. This leaded to critical messages and crashes if the frame was unable
12444 to be mapped, but the counter increased.
12445 This patch increases the map counter only if the map operation occurred.
12446 https://bugzilla.gnome.org/show_bug.cgi?id=773939
12448 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12450 * gst/vaapi/gstvaapipluginbase.c:
12451 plugins: set negotiation caps in src allocator
12452 When the allocator is created, it stores the allocation caps. But sometimes
12453 the "allocation caps" may be different from the "negotiation caps".
12454 In this case, the allocator should store the negotiation caps since they
12455 are the ones used for frame mapping with GstVideoMeta.
12456 When vaapispostproc is used, this is not a problem since the element is assume
12457 to resize. But when using a vaapi decoder only, with a software renderer, it
12458 fails in this case.
12459 https://bugzilla.gnome.org/show_bug.cgi?id=773323
12461 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12463 * gst/vaapi/gstvaapidecode.c:
12464 * gst/vaapi/gstvaapidecode.h:
12465 vaapidecode: generate source pad caps
12466 Just as vaapipostproc, VA decoder's context can be queried to get the possible
12467 raw formats, so, the src caps can negotiate the exact caps that the context
12470 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12472 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12473 * gst-libs/gst/vaapi/gstvaapidecoder.h:
12474 libs: decoder: add _get_surface_formats()
12475 This function exposes the available formats of the surfaces in the the current
12476 context to the plugins.
12478 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12480 * gst-libs/gst/vaapi/gstvaapicontext.c:
12481 * gst-libs/gst/vaapi/gstvaapicontext.h:
12482 libs: context: ensure context formats
12483 This patch ensures to get the formats, as filter does, available in the
12484 decoder / encoder context.
12485 The context fills up the array as soon it is created, otherwise the pipeline
12486 could get stalled (perhaps this is a bug in my HSW backend).
12487 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12489 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12491 * gst-libs/gst/vaapi/gstvaapifilter.c:
12492 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
12493 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
12494 libs: move get_surface_formats to utils_core
12495 The query of all the supported formats for a VA config were only used by the
12496 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
12497 negotiate a suitable raw format with downstream, we need to query these
12498 formats against the decoder's config.
12499 This patch is the first step: moves the code in filter's ensure_image() to a
12500 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
12501 shared later by the decoder.
12502 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12504 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12506 * gst/vaapi/gstvaapipluginbase.c:
12507 plugins: remove set_sinkpad_dmabuf_allocator()
12508 Since when the sink pad allocator is created, it is decided if the required
12509 one is vaapi allocator or dmabuf allocator, there is no need to force its set
12512 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12514 * gst/vaapi/gstvaapipluginbase.c:
12515 plugins: ensure display when getting raw caps
12516 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
12517 meanwhile it is transforming caps. The problem is that stop() calls
12518 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
12519 the va display is used in tranform_caps() when it is extracting the possible
12520 format conversions. This display disappearing generates warning messages.
12521 This patch holds a local reference of va display at ensure_allowed_raw_caps()
12522 hence it doesn't go away meanwhile it is used, even if the
12523 gst_vaapi_plugin_base_close() is called in other thread.
12524 https://bugzilla.gnome.org/show_bug.cgi?id=773593
12526 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12528 * gst/vaapi/gstvaapiencode_h264.c:
12529 * gst/vaapi/gstvaapiencode_h265.c:
12530 plugins: fix code style for errors
12532 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12534 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12535 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
12536 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
12537 * gst-libs/gst/vaapi/gstvaapicontext.c:
12538 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12539 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12540 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
12541 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12542 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12543 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12544 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12545 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12546 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
12547 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12548 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12549 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12550 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12551 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12552 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12553 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
12554 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12555 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12556 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12557 * gst-libs/gst/vaapi/gstvaapifilter.c:
12558 * gst-libs/gst/vaapi/gstvaapiimage.c:
12559 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12560 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
12561 * gst-libs/gst/vaapi/gstvaapipixmap.c:
12562 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12563 * gst-libs/gst/vaapi/gstvaapisurface.c:
12564 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12565 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12566 * gst-libs/gst/vaapi/gstvaapitexture.c:
12567 * gst-libs/gst/vaapi/gstvaapiutils.c:
12568 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12569 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
12570 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12571 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12572 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12573 libs: fix code style for errors
12575 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12577 * gst/vaapi/gstvaapipluginbase.c:
12578 * gst/vaapi/gstvaapivideocontext.c:
12579 plugins: update GstGL deprecated symbol
12580 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
12582 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12584 * gst/vaapi/gstvaapipluginbase.c:
12585 plugins: direct render when raw video
12586 Enable the direct rendering with linear surfaces if the negotiated src caps
12587 are video/x-raw without features.
12588 Pass also the caps, since they are needed to know the requested caps features.
12590 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12592 * gst/vaapi/gstvaapipluginbase.c:
12593 plugins: move src allocator error to instantiator
12594 Just as we did in ensure_sinkpad_allocator(), let's move the error message
12595 into the ensure_srcpad_allocator() from the caller,
12596 gst_vaapi_plugin_base_decide_allocation()
12598 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12600 * gst/vaapi/gstvaapipluginbase.c:
12601 plugins: enable direct upload if raw video
12602 Enable the direct upload with linear surfaces if the negotiated sink caps are
12603 video/x-raw without features.
12605 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12607 * gst/vaapi/gstvaapipluginutil.c:
12608 * gst/vaapi/gstvaapipluginutil.h:
12609 pluginutil: add gst_caps_is_video_raw()
12611 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12613 * gst/vaapi/gstvaapipluginbase.c:
12614 plugins: receive caps in ensure_sinkpad_allocator()
12615 Instead of receiving the GstVideoInfo structure as parameter, get the original
12616 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
12617 which allocator instantiate.
12619 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12621 * gst/vaapi/gstvaapivideomemory.c:
12622 vaapivideomemory: destroy derived image at unmap
12623 If the allocator was configured to use direct upload or rendering, the
12624 generated derived image created at mapping needs to be destroyed after
12625 unmapping, because, in order to process the surface, it should not be marked
12626 as "busy" by the driver.
12628 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12630 * gst/vaapi/gstvaapivideomemory.c:
12631 vaapivideomemory: enhance logs for direct modes
12632 Print, conditionally, only the enabled direct mode.
12634 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12636 * gst/vaapi/gstvaapivideomemory.c:
12637 * gst/vaapi/gstvaapivideomemory.h:
12638 vaapivideomemory: add direct upload flag
12639 Adds the direct-upload flag in the GstVaapiVideoAllocator and
12640 GstVaapiVideoMemory.
12641 It still doesn't apply any functional change.
12643 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12645 * gst/vaapi/gstvaapipluginbase.c:
12646 * gst/vaapi/gstvaapivideomemory.c:
12647 * gst/vaapi/gstvaapivideomemory.h:
12648 vaapivideomemory: set direct rendering at run-time
12649 The way to experiment with the direct rendering is through and internal
12650 compiler pre-processor flag.
12651 The current change set enables a way to specified at run-time, as a flag
12652 passed to the allocator at instanciation time.
12654 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12656 * gst/vaapi/gstvaapivideomemory.c:
12657 vaapivideomemory: log in perf category when copy
12658 Log in performance category when the derive image handling fails, falling back
12661 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12663 * gst/vaapi/gstvaapivideomemory.c:
12664 vaapivideomemory: error log is derive image fails
12665 Instead of a silently failure of the derive image, this patch log an error
12666 message according to the failure.
12668 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12670 * gst/vaapi/gstvaapivideomemory.c:
12671 vaapivideomemory: store surface alloc flags in qdata
12672 For sake of consistency, we should add the requested surface allocation flags
12673 to the object's qdata structure.
12675 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12677 * gst/vaapi/gstvaapivideomemory.c:
12678 vaapivideomemory: category init when object define
12679 Move the Gstreamer debug category initialize to the GObject definition.
12681 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12683 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12684 libs: vaapitexturemap: trivial code-style fix
12686 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12688 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12689 libs: display: egl: avoid recreate native display
12690 Instead of passing the native descriptor of the display, just pass the received
12691 GstVaapiDisplay and reuse it.
12693 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12695 * gst/vaapi/gstvaapipluginbase.c:
12696 plugins: log the GstVaapiDisplay name
12697 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
12698 name. Log it instead of the memory address.
12700 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
12702 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
12703 libs: window: egl: pass native va display
12704 When creating a GstVaapiWindowEGL, it also creates native window by its own
12705 native display. It should pass the native display, either X11 or Wayland.
12706 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12708 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
12710 * gst-libs/gst/vaapi/gstvaapidebug.h:
12711 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12712 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12713 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12714 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
12715 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12716 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12717 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
12718 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12719 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12720 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
12721 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12722 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12723 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12724 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
12725 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12726 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12727 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
12728 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12729 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
12730 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12731 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
12732 * gst/vaapi/gstvaapivideocontext.c:
12733 libs: display: GstVaapiDisplay as GstObject descendant
12734 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
12735 instead of GstVaapiMiniObject. In this way we can use all the available
12736 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
12737 In addition, a new debug category for GstVaapiDisplay is created to make it
12738 easier to trace debug messages. It is named "vaapidisplay" and it transverse
12739 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
12740 This patch is a step forward to expose GstVaapiDisplay for users in a future
12742 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12743 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12745 === release 1.11.0 ===
12747 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
12750 Back to development
12752 === release 1.10.0 ===
12754 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
12759 * gstreamer-vaapi.doap:
12762 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12764 * gst/vaapi/gstvaapidecodebin.c:
12765 vaapidecodebin: resurrect disable-vpp property
12766 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12768 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12770 * gst/vaapi/gstvaapidecodebin.c:
12771 vaapidecodebin: name the internal queue
12772 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12774 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12776 * gst/vaapi/gstvaapidecodebin.c:
12777 * gst/vaapi/gstvaapidecodebin.h:
12778 vaapidecodebin: remove unused variables
12779 Since vaapipostproc is only registered if the driver supports it, all the
12780 support for dynamic loading were removed. Though some leftovers remained.
12781 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12783 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12785 * docs/plugins/Makefile.am:
12786 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12787 * docs/plugins/running.xml:
12788 docs: document environment variables
12789 https://bugzilla.gnome.org/show_bug.cgi?id=773544
12791 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12793 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12794 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12795 * gst/vaapi/Makefile.am:
12796 * gst/vaapi/gstvaapidecode.c:
12797 * gst/vaapi/gstvaapidecodebin.c:
12798 * gst/vaapi/gstvaapidecodedoc.c:
12799 docs: replace vaapidecode with each codec
12800 In the spirit of the codec split, this patch removes the documentation of
12801 vaapidecode and adds a page per each possible decoder.
12802 Nonetheless, only those available in the compilation system are going to be
12803 instrospected, because the rest are not registered.
12805 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12807 * gst/vaapi/gstvaapipluginutil.c:
12808 * gst/vaapi/gstvaapivideobuffer.c:
12809 * gst/vaapi/gstvaapivideometa.c:
12810 docs: add missing long descriptions
12812 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12814 * gst/vaapi/gstvaapipostproc.c:
12815 vaapipostproc: use GST_*_OBJECT when possible
12816 Since we can have several vaapipostproc operating in a pipeline, it is useful
12817 to know which one is generating the logging message.
12818 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12820 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12822 * gst/vaapi/gstvaapidecode.c:
12823 * gst/vaapi/gstvaapidecode.h:
12824 vaapidecode: rename member to allowed_sinkpad_caps
12825 vaapidecode has a member named allowed_caps, but this name is not enough
12826 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
12827 No functional changes were included.
12828 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12830 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12832 * gst/vaapi/gstvaapiencode_h264.c:
12833 * gst/vaapi/gstvaapiencode_h265.c:
12834 * gst/vaapi/gstvaapisink.c:
12835 * gst/vaapi/gstvaapivideomemory.c:
12836 * gst/vaapi/gstvaapivideometa.c:
12837 * gst/vaapi/gstvaapivideometa_texture.c:
12838 plugins: fix code style for errors
12839 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12841 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12843 * gst/vaapi/gstvaapivideomemory.c:
12844 vaapivideomemory: comment style
12845 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12847 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12849 * gst/vaapi/gstvaapivideomemory.c:
12850 * gst/vaapi/gstvaapivideomemory.h:
12851 vaapivideomemory: rename input parameter
12852 In order to clarify the use of flag as input parameter, it is renamed to
12853 surface_alloc_flag, since it is used when creating a VA surface with certain
12855 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12857 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12859 * gst/vaapi/gstvaapidecode.c:
12860 vaapidecode: rename element description
12861 So encoders and decoders have similar descriptions.
12862 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12864 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12866 * gst/vaapi/gstvaapiencode_h264.c:
12867 * gst/vaapi/gstvaapiencode_h265.c:
12868 vaapiencode: h264, h265: rename codec name
12869 So encoder and decoders have the same codec name.
12870 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12872 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12874 * gst/vaapi/gstvaapipluginbase.c:
12875 plugins: simplify code
12876 Merge two lines of variable declarations.
12877 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12879 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
12881 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12882 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
12883 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12884 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12885 libs: minor correction for logical consistency
12886 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
12887 use its methods, even though it doesn't change functionality.
12888 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
12889 GstVaapiObject, hence its methods shall be used.
12890 https://bugzilla.gnome.org/show_bug.cgi?id=772554
12892 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
12894 * gst/vaapi/gstvaapivideomemory.c:
12895 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
12896 In short GstFdMemory is configured to call close when using
12898 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12900 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12903 * gst-libs/gst/vaapi/Makefile.am:
12904 build: clean up the dlopen usage
12906 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12908 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12909 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12910 encoder: h264,h265: fix regression in offset count
12911 In commit dc35dafa a bug was introduced because I assumed that
12912 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
12913 https://bugzilla.gnome.org/show_bug.cgi?id=772259
12915 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12918 docs: update README
12920 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12922 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12923 libs: display: egl: remove unused header include
12924 The header gmodule.h is not used since the library dynamic loading for EGL
12925 display was removed.
12926 https://bugzilla.gnome.org/show_bug.cgi?id=772599
12928 === release 1.9.90 ===
12930 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
12936 * gstreamer-vaapi.doap:
12939 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
12941 * gst/vaapi/gstvaapidecode.c:
12942 * gst/vaapi/gstvaapidecodebin.c:
12943 * gst/vaapi/gstvaapiencode_h264.c:
12944 * gst/vaapi/gstvaapiencode_h265.c:
12945 * gst/vaapi/gstvaapiencode_jpeg.c:
12946 * gst/vaapi/gstvaapiencode_mpeg2.c:
12947 * gst/vaapi/gstvaapiencode_vp8.c:
12948 * gst/vaapi/gstvaapipostproc.c:
12949 * gst/vaapi/gstvaapisink.c:
12950 vaapi: use new gst_element_class_add_static_pad_template()
12951 https://bugzilla.gnome.org/show_bug.cgi?id=763083
12952 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12954 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
12956 * gst/vaapi/gstvaapipluginbase.c:
12957 plugins: reset textures at negotiation/shutdown
12958 When caps reconfiguration is called, the new downstream frame size might be
12959 different. Thus, if the downstream caps change,the display's texture map is
12961 In addition, during pipeline shutdown, textures in texture map have to be
12962 released, since each one have a reference to the GstVaapiDisplay object, which
12963 is a dangerous circular reference.
12964 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12965 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12967 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
12969 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12970 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12971 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12972 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12973 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12974 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12975 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12976 * gst/vaapi/gstvaapivideometa_texture.c:
12977 libs: display{egl,glx}: cache GstVaapiTextures
12978 instances when created and reuse
12979 This patch improves performance when glimagesink uploads a GL texture.
12980 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
12981 instance of GstVaapiTextureMap, so our internal texture structure can be found
12982 by matching the GL texture id for each frame upload process, avoiding the
12983 internal texture structure creation and its following destruction.
12984 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12985 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12987 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
12989 * gst-libs/gst/vaapi/Makefile.am:
12990 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12991 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
12992 libs: vaapitexturemap: implement GstVaapiTextureMap
12993 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
12994 reused. Internally it is a hash table.
12995 Note that it is GstObject based rather than GstVaapiObject, as part of the future
12996 converstion to GstObject of most of the code.
12997 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12998 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13000 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13002 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
13003 encoder: vp8: Increase the allocation size for coded buffer
13004 We are not getting enough compression for some streams and
13005 encoded frame end up with more size than allocated.
13006 Assuming a compression ratio of 4, which should be good enough
13007 for holding the frames.
13008 https://bugzilla.gnome.org/show_bug.cgi?id=771528
13010 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13012 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13013 encoder: vp9: Fix refresh frame flag setting
13014 While doing the mode-1 referece picture selection,
13015 the circular buffer logic was not correctly setting the
13016 refresh frame flags as per VP9 spec.
13017 Make sure refresh_flag[0] get updated correclty after
13018 each cycle of GST_VP9_REF_FRAMES.
13019 https://bugzilla.gnome.org/show_bug.cgi?id=771507
13021 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13023 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
13024 vaapidecode: codec_data minimal size is 7
13025 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
13026 stream, not in the codec_data, so the size of codec_data might be 7.
13027 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
13028 https://bugzilla.gnome.org/show_bug.cgi?id=771441
13030 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13032 * gst/vaapi/gstvaapidecode.c:
13033 vaapidecode: reset decoder hard when set_format()
13034 set_format() is called by upstream when the stream capabilites has changed.
13035 Before, if the new stream is compatible with the old one the VA decoder was
13036 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
13037 when the upstreamer parsers gets more details of the stream, such as the
13038 framerate. Hence, when the src caps are negotiates, the further sink caps
13039 updates are ignored.
13040 This patch forces the VA decoder destroying and recreation when set_format()
13042 https://bugzilla.gnome.org/show_bug.cgi?id=770921
13044 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
13047 configure: Depend on gstreamer 1.9.2.1
13049 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13051 * gst/vaapi/gstvaapivideomemory.c:
13052 Revert "vaapivideomemory: load VA Image when mapping to write"
13053 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
13055 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
13058 Automatic update of common submodule
13059 From b18d820 to f980fd9
13061 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
13064 Automatic update of common submodule
13065 From f49c55e to b18d820
13067 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
13069 * gst/vaapi/gstvaapipluginbase.c:
13070 plugins: set allocator's image size to sinkpad bufferpool
13071 Otherwise the buffer is always ditched by the bufferpool, losing performance.
13072 https://bugzilla.gnome.org/show_bug.cgi?id=771035
13074 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13076 * gst-libs/gst/vaapi/gstvaapisurface.c:
13077 libs: surface: ensure composite overlay is not bigger
13078 Ensure the composition overlay rectangle (subtitles) is not bigger than
13079 the surface where it is going to be composited and rendered.
13080 https://bugzilla.gnome.org/show_bug.cgi?id=766978
13082 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13084 * gst/vaapi/gstvaapivideomemory.c:
13085 vaapivideomemory: load VA Image when mapping to write
13086 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
13087 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
13089 https://bugzilla.gnome.org/show_bug.cgi?id=766978
13091 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13093 * gst/vaapi/gstvaapidecode.c:
13094 vaapidecode: merge vc1 and wmv3 elements
13095 This patch merges vaapivc1dec and vaapiwmv3dec into a single
13096 vaapivc1dec. Also, removed the WMVA format, since it is not
13097 supported by libva.
13098 https://bugzilla.gnome.org/show_bug.cgi?id=734093
13100 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13102 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13103 decoder: vc1: fails only on advanced profile
13104 In commit 2eb4394 the frame coding mode was verified for progressive
13105 regardless the profile. But the FCM is only valid in the advanced
13106 profile. This patch checks for the advanced profile before verifying FCM for
13108 https://bugzilla.gnome.org/show_bug.cgi?id=769250
13110 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13112 * gst/vaapi/gstvaapi.c:
13113 vaapi: DISPLAY envvar as dependency
13114 In a multiple video cards system, a X11 environment may have different VA
13115 capabilities. This patch tracks the DISPLAY environment variable to
13116 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
13117 https://bugzilla.gnome.org/show_bug.cgi?id=770357
13119 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13121 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13122 decoder: vc1: Fail only on actual interlaced frames
13123 In the earlier patch:
13124 f31d9f3 decoder: vc1: Print error on interlaced content
13125 Decoding would error out if the interlace flag was set in the
13126 sequence bdu. This isn't quite right because a video can have this
13127 flag set and yet not have any interlaced pictures.
13128 Here instead we error out when either parsing a field bdu or
13129 decoding a frame bdu which has fcm set to anything other than
13131 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13132 https://bugzilla.gnome.org/show_bug.cgi?id=769250
13134 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
13137 Back to development
13139 === release 1.9.2 ===
13141 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
13146 * gstreamer-vaapi.doap:
13149 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
13151 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13152 decoder: vc1: Print error on interlaced content
13153 Interlaced video is as yet unsupported in the vc1 element. Print
13154 an error to make that more obvious.
13155 https://bugzilla.gnome.org/show_bug.cgi?id=769250
13157 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13159 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13160 encoder: h264: fix C90 mixed declarations and code
13161 Commit 4259d1a introduced this compilation error. This patch fixes it.
13163 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13165 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13166 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13167 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
13168 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
13169 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
13170 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
13171 to avoid overflows, underflows and loss of precision.
13172 https://bugzilla.gnome.org/show_bug.cgi?id=768458
13174 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13176 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13177 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13178 vaapiencode: h264,h265: validate fps numerator
13179 Validate that fps numerator is non-zero so it can be used to calculate
13180 the duration of the B frame.
13181 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
13182 order to aviod overflows, underflows and loss of precision.
13183 https://bugzilla.gnome.org/show_bug.cgi?id=768458
13185 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
13187 * gst/vaapi/gstvaapi.c:
13188 encoders: demote to RANK_NONE since not fit for autoplugging yet
13189 Encoders claim to support a whole bunch of input formats but then
13190 just error out if the format is not actually supported, even if
13191 there's a converter in front. This means they're not fit for
13192 autoplugging in encodebin or camerabin yet and therefore should
13193 not have a rank. People can still use them in custom pipelines.
13194 https://bugzilla.gnome.org/show_bug.cgi?id=769266
13196 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13198 * gst/vaapi/gstvaapipluginbase.c:
13199 plugins: check dmabuf-import for sink pad allocator
13200 Check earlier if upstream video source has activated the dmabuf-import
13201 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
13204 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13206 * gst/vaapi/gstvaapipluginbase.c:
13207 plugins: reset allocators if video info changed
13208 If the frame size or format, change, the allocators are reset, so a new ones
13209 can be created with the new video info.
13211 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13213 * gst/vaapi/gstvaapipluginbase.c:
13214 plugins: remove sink pad allocator if caps change
13215 If the negotiated sinkpad caps change, destroy the assignated allocator,
13216 because it is not valid anymore.
13218 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13220 * gst/vaapi/gstvaapipluginutil.c:
13221 * gst/vaapi/gstvaapipluginutil.h:
13222 pluginutil: const params to gst_video_info_changed()
13223 Since they are not modified, we should mark them as const.
13225 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13227 * gst/vaapi/gstvaapipluginbase.c:
13228 * gst/vaapi/gstvaapivideomemory.c:
13229 * gst/vaapi/gstvaapivideomemory.h:
13230 gstvaapivideomemory: allocator's image size getter
13231 Add the method gst_allocator_get_vaapi_image_size() for the
13232 GstVaapiVideoAllocator, which gets the size of the allocated images with the
13233 current video info.
13234 This method replaces the direct call to the allocator's image info when the
13235 pool is configured.
13237 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
13239 * gst/vaapi/gstvaapipluginbase.c:
13240 plugins: update buffer pool size with new allocator's image size
13241 Depends on media, video size is sometimes updated with new allocator.
13242 It leads to dismatch between bufferpool's set size and real allocated buffer size.
13243 In this case, it causes every buffer is freed during release in bufferpool,
13244 which should be reused. This affects performance.
13245 https://bugzilla.gnome.org/show_bug.cgi?id=769248
13247 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13250 configure: remove gmodule-2.0 EGL dependency
13251 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
13252 thus the dependency to gmodule-2.0 is not mandatory anymore.
13254 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13257 configure: Fix non-fatal PKG_CHECK_MODULES invocations
13258 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
13259 the package is missing, but action-if-not-found was given as an empty
13260 string which still causes the default action to run, which halts
13262 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13263 https://bugzilla.gnome.org/show_bug.cgi?id=769237
13265 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13267 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
13268 libs: egl: remove dynamic library loading code
13269 Since the upstream of gstreamer-vaapi, the library is not a public shared
13270 object anymore. But the EGL support depended on this dynamic library, so the
13271 EGL support was broken.
13272 This patch removes the dynamic library loading code and instantiates the
13273 EGL display using either X11 or Wayland if available.
13274 https://bugzilla.gnome.org/show_bug.cgi?id=767203
13276 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13278 * gst/vaapi/gstvaapi.c:
13279 * gst/vaapi/gstvaapidecode.c:
13280 * gst/vaapi/gstvaapidecode.h:
13281 vaapidecode: register only the available decoders
13282 In order to register only the available decoders, this patch queries the
13283 created test VA display, which uses the currently used back-end (X11, Wayland,
13284 DRM, …) on the used display device.
13285 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13287 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13289 * gst/vaapi/gstvaapi.c:
13290 * gst/vaapi/gstvaapipluginutil.c:
13291 * gst/vaapi/gstvaapipluginutil.h:
13292 vaapi: register only the available encoders
13293 In order to register only the available encoders, this patch queries the
13294 created test VA display, which uses the currently used back-end (X11,
13295 Wayland, DRM, …) on the used display device.
13296 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13298 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13300 * gst/vaapi/gstvaapidecode.c:
13301 * gst/vaapi/gstvaapidecodebin.c:
13302 vaapidecode: split all the codecs
13303 Split the vaapidecode to all the supported codecs with the format
13305 vaapidecode is stil registered as a GObject type, but not as a
13306 GStreamer feature, so it can be used internally by vaapidecodebin without
13307 changing its code too much.
13308 https://bugzilla.gnome.org/show_bug.cgi?id=734093
13310 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13312 * gst/vaapi/gstvaapidecodebin.c:
13313 vaapidecodebin: simplify the code
13314 Since the elements dependant of the VA video processor are now only registered
13315 if it is available, vaapidecodebin code can be simplified a lot, removing all
13316 the code required to check if the VA video processor was available.
13317 https://bugzilla.gnome.org/show_bug.cgi?id=768899
13319 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13321 * gst/vaapi/gstvaapidecode.c:
13322 vaapidecode: delay the GstVaapiDisplay instantiating
13323 Delay the GstVaapiDisplay instantiating until when changing the state from
13324 READY to PAUSE. In this way the element has more chances to find an already
13325 created GstVaapiDisplay, or a GL context, in the pipeline.
13326 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13328 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13330 * gst/vaapi/gstvaapipluginutil.c:
13331 pluginutil: set GLX display type
13332 The function gst_vaapi_create_display_from_gl_context() cretes a
13333 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
13334 when the GL platform was GLX, but a plain X11 VA display.
13335 This patch fixes that, by querying the GL platform earlier.
13336 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13338 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13340 * gst/vaapi/gstvaapipluginbase.c:
13341 * gst/vaapi/gstvaapivideocontext.c:
13342 * gst/vaapi/gstvaapivideocontext.h:
13343 plugins: add gst_vaapi_plugin_base_find_gl_context()
13344 Using the GstContext mechanism, it is possible to find if the pipeline
13345 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
13346 meta. This is interesting because we could negotiate system memory caps
13347 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
13348 https://bugzilla.gnome.org/show_bug.cgi?id=766206
13350 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13352 * gst/vaapi/gstvaapipluginbase.c:
13353 * gst/vaapi/gstvaapipluginbase.h:
13354 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
13355 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
13358 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13360 * gst/vaapi/gstvaapipluginbase.h:
13361 plugins: remove common change_state() vmethod
13362 Remove the common change_state() vmethod for all the plugins, since no one is
13365 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13367 * gst/vaapi/gstvaapidecode.c:
13368 vaapidecode: remove change_state() vmethod
13369 Since the driver checkup is done at registering, there is no need to do it
13370 when changing the element state from NULL to READY. This patch remove this
13371 vmethod from vaapidecode.
13373 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13375 * gst/vaapi/gstvaapi.c:
13376 vaapi: register vaapipostproc only if supported
13377 Query the GstVaapiDisplay to know if the driver supports video
13378 postprocessing. If does, then register vaapipostproc and vaapidecodebin
13380 This patch will simplify the design of vaapidecodebin.
13381 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13383 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13385 * gst/vaapi/gstvaapi.c:
13386 vaapi: don't register if VA driver is unsupported
13387 Using the test VA display, the driver name is queried, and if it is not
13388 white-listed, the plugin rejects to register any element.
13389 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13391 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13393 * gst/vaapi/gstvaapipluginbase.c:
13394 * gst/vaapi/gstvaapipluginutil.c:
13395 * gst/vaapi/gstvaapipluginutil.h:
13396 plugins: add gst_vaapi_driver_is_whitelisted()
13397 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
13398 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
13399 when registering the plugin's feature set with the test VA display.
13400 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13402 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13404 * gst/vaapi/gstvaapi.c:
13405 vaapi: instantiate a VA display when registering
13406 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
13407 features, if it fails, no gstreamer-vaapi element is registering.
13408 The purpose of this patch is to avoid a situation where the user has
13409 gstreamer-vaapi installed but their VA-API setup is not functional, which may
13410 lead to unexpected behavior.
13411 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13413 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13416 * gst/vaapi/gstvaapi.c:
13417 vaapi: declare external dependencies
13418 There are two main external dependencies that define the feature set of this
13419 plugin: a) the kernel and b) the VA driver
13420 This patch tracks both dependencies, if any of them change, GStreamer will
13421 re-inspect the plugin.
13422 The kernel is tracked through the device files /dev/dri/card*
13423 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
13424 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
13425 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
13426 since they modify the driver lookup.
13427 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
13428 https://bugzilla.gnome.org/show_bug.cgi?id=724352
13430 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13432 * gst/vaapi/gstvaapidecode.c:
13433 vaapidecode: remove unneeded initializations
13434 GObject's memory is set to zero, so there is no need to initialize to zero or
13435 NULL it's class variables.
13437 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13439 * gst/vaapi/gstvaapipluginbase.h:
13440 plugins: remove undefined macros
13442 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13444 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13445 Revert "gstvaapisurface_drm: release image when done"
13446 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
13447 372a03a9e38acbf435eb80bf31d9a9844069e504.
13448 While the dmabuf handle is exported, the derive image must exist, otherwise
13449 the image's VA buffer is invalid, thus the dmabuf handle is never released,
13450 leading into a file descriptors leak.
13452 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13454 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13455 encoder: h265: fix code-style
13457 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13459 * gst/vaapi/gstvaapipostproc.c:
13460 vaapipostproc: update filters at color balance
13461 This is a fix for a regression of previous commit, which updates the filters
13462 only when the property is set, because it is also required to update the
13463 filter when the color balance interface change its values.
13465 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13467 * gst/vaapi/gstvaapipostproc.c:
13468 * gst/vaapi/gstvaapipostproc.h:
13469 vaapipostproc: make it enable/disable pass-through mode
13470 In case that sink caps and src caps are same, and no filtering parameter set,
13471 pass-through mode is enabled.
13472 If new filtering parameter is set during playback, it makes it reconfiguring,
13473 so that pass-through mode is changed
13474 In addition, updating filter is performed during reconfiguration, if needed.
13475 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13477 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13479 * gst-libs/gst/vaapi/gstvaapifilter.c:
13480 * gst-libs/gst/vaapi/gstvaapifilter.h:
13481 * gst/vaapi/gstvaapipostproc.c:
13482 vaapipostproc: checking and updating filter parameter only when it's set
13483 This patch is to avoid checking filter value at every frame.
13484 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13486 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
13488 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13489 decoder: h265: handle the SEI NAL units included in codec_data
13490 The prefix/suffix SEI nal units can appear in codec_data too
13491 which weren't handled before. Parse these SEI headers to
13493 https://bugzilla.gnome.org/show_bug.cgi?id=768544
13495 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13497 * docs/plugins/Makefile.am:
13498 build: doc: do not redefine MAINTAINERCLEANFILES
13499 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
13500 overload it, the files should be added.
13502 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13504 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13505 encoder: h264: Fix MVC encode while enabling dct8x8
13506 Pack the transform_8x8_mode_flag and other necessary rbsp data
13507 in packed_pps header for MVC encode.
13508 https://bugzilla.gnome.org/show_bug.cgi?id=768647
13510 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13512 * gst/vaapi/gstvaapisink.c:
13513 vaapisink: demote a debug message to trace
13514 Reduces noise when debugging.
13516 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
13518 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13519 wayland: Error check before using cached wl_display
13520 A planar(or some other) buffer allocation may fail on the driver, then
13521 the wayland connection becomes invalid, not able to send request or
13522 receive any event. So we need to set up a new wayland connection if
13523 there's an error detected on the cached wl_display.
13524 https://bugzilla.gnome.org/show_bug.cgi?id=768761
13525 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13527 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
13530 Automatic update of common submodule
13531 From ac2f647 to f49c55e
13533 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13535 * gst/vaapi/gstvaapiencode.c:
13536 vaapiencode: demote a log to trace level
13537 Removes noise when debugging.
13539 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13541 * gst/vaapi/gstvaapiencode.c:
13542 vaapiencode: implement flush() vmethod
13543 In order to handle correctly seek and other operations, vaapiencode should
13544 flush all the remaining data from the encoder without pushing it downstream.
13545 This patch implements the flush() vmethod, only after of pausing the
13546 source pad task, and restarting it again after the flush stop.
13547 https://bugzilla.gnome.org/show_bug.cgi?id=767176
13548 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13550 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13552 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13553 decoder: vc1: flush dpb only if opened
13554 Flush the decode picture buffer, if and only if, the decoder is
13555 started. Otherwise the dpb structure might be NULL.
13556 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13558 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
13560 * gst/vaapi/gstvaapidecode.c:
13561 * gst/vaapi/gstvaapidecode.h:
13562 vaapidecode: drop non-keyframe in reverse playback
13563 To avoid surface-exhausted situation during reverse playback,
13564 drop frames except for key frame.
13565 Also, to avoid the corruption of the parser state, flush() vmethod
13566 doesn't destroy the VA decoder when playing in reverse.
13567 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13568 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13570 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13572 * gst/vaapi/gstvaapidecode.c:
13573 vaapidecode: unref output frame earlier
13574 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
13575 unref that extra reference earlier making the code simpler to follow.
13576 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13578 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13580 * gst/vaapi/gstvaapidecode.c:
13581 vaapidecode: remove gst_vaapidecode_internal_flush()
13582 As gst_vaapidecode_finish() is the only callee of
13583 gst_vaapidecode_internal_flush(), it is better to inline it.
13584 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13586 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13588 * gst/vaapi/gstvaapidecode.c:
13589 vaapidecode: flush output adapter at drain()
13590 Calling drain() vmethod means "decode any data it can at this point, but that
13591 more data may arrive after". Hence, vaapidecode should check if there is data
13592 in the output adapter and process them, without destroying the decoded picture
13594 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
13595 was refactored into a new function gst_vaapidecode_flush_output_adapter().
13596 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13598 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13600 * gst/vaapi/gstvaapidecode.c:
13601 vaapidecode: call purge at flush()
13602 Calling flush() vmethod means "to flush all remaining data from the decoder
13603 without pushing it downstream".
13604 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
13605 gst_video_decoder_have_frame() if there is still something in the input
13606 adapter, which may push buffers to downstream by calling handle_frame().
13607 This patch changes this behavior by calling gst_vaapidecode_purge() rather
13608 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
13609 decoder and releases all the rest of decoded frames.
13610 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13612 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13614 * tests/elements/Makefile.am:
13615 * tests/elements/test-vaapisink.c:
13616 test: elements: remove spurious linkage
13617 Element tests only need to link against gstreamer libraries.
13619 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13622 configure: Require GLib >= 2.40 like everywhere else
13624 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13627 Back to development
13629 === release 1.9.1 ===
13631 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
13637 * gstreamer-vaapi.doap:
13640 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13642 * tests/elements/test-vaapisink.c:
13643 tests: elements: rotate orientation event
13645 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
13648 * tests/Makefile.am:
13649 * tests/elements/Makefile.am:
13650 * tests/elements/test-vaapisink.c:
13651 tests: elements: Add testsuite for vaapisink
13652 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13654 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13656 * gst-libs/gst/vaapi/gstvaapitypes.h:
13657 * gst-libs/gst/vaapi/gstvaapivalue.c:
13658 * gst/vaapi/gstvaapisink.c:
13659 * gst/vaapi/gstvaapisink.h:
13660 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
13661 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13663 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13665 * gst/vaapi/gstvaapipostproc.c:
13666 vaapipostproc: return caps template if no display
13667 This patch is a fix for my bad review of commit 6d73ca8d. The element should
13668 be able to return the available raw caps handled by the VA display, but that
13669 only should happen when there a VA display. If there's none, the element
13670 should use the caps template.
13671 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13673 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
13675 * gst/vaapi/gstvaapipostproc.c:
13676 vaapipostproc: don't require a vaapi display for all caps queries
13677 This delays the requirement of having a GstVaapiDisplay until later
13678 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13680 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13682 * gst-libs/gst/vaapi/gstvaapiutils.c:
13683 utils: report VP9 profiles
13684 Add VP9Profile0-3 name mapping.
13686 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13688 * gst/vaapi/gstvaapi.c:
13689 vaapi: nest includes under USE_ENCODER macro
13690 This is a missed changeset from commit 1c05c53, since also header includes
13693 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13695 * gst/vaapi/gstvaapi.c:
13696 vaapi: nest encoders under USE_ENCODER macro
13697 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
13698 macro, it is clearer to nest them, showing explicitly the dependency relation.
13700 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13702 * gst/vaapi/gstvaapivideocontext.c:
13703 vaapivideocontext: check if query context is NULL
13704 Under certain conditions the element might receive a positive context query
13705 but without a context instance. This situation will lead to a segmentation
13706 fault when traversing the context list in the pipeline.
13707 https://bugzilla.gnome.org/show_bug.cgi?id=767946
13709 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13711 * gst-libs/gst/vaapi/Makefile.am:
13712 * gst-libs/gst/vaapi/glibcompat.h:
13713 * gst-libs/gst/vaapi/sysdeps.h:
13714 remove unused glibcompat.h
13715 glibcompat.h is no longer doing anything. Remove it.
13716 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13717 https://bugzilla.gnome.org/show_bug.cgi?id=767886
13719 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13721 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13722 encoder: h264: Use high profile by default
13723 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
13724 by default. This will cause the default profile to be high instead
13725 of baseline. In most situations this is the right decision, and
13726 the profile can still be lowered in the case of caps restrictions.
13727 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13728 https://bugzilla.gnome.org/show_bug.cgi?id=757941
13730 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13732 * gst/vaapi/gstvaapidecodebin.c:
13733 vaapidecodebin: element warning if missing element
13734 Raise an element warning if a required element is not available, thus the
13735 pipeline will post a warning message and the application will be informed.
13737 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
13739 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13740 decoder: h265: fix to release all dpb pictures
13741 Without this, all dpb pictures are not released during flush,
13742 because we used the global dpb_count variable for checking the
13743 dpb fullness which get decremented in dpb_remove_index()
13744 routine during each loop iteration.
13745 https://bugzilla.gnome.org/show_bug.cgi?id=767934
13747 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
13750 Automatic update of common submodule
13751 From ac2f647 to f363b32
13753 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13755 * gst/vaapi/gstvaapidecode.c:
13756 * gst/vaapi/gstvaapipostproc.c:
13757 vaapi: fix minor leaks
13758 https://bugzilla.gnome.org/show_bug.cgi?id=767868
13760 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13762 * gst/vaapi/gstvaapi.c:
13763 vaapi: remove an already included header
13764 gst/gst.h is already included in gstcompat.h
13766 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13768 * gst/vaapi/gstvaapidecodebin.c:
13769 vaapidecodebin: add vp9 in sink pad template
13771 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13773 * gst/vaapi/gstvaapisink.c:
13774 vaapisink: return caps template if no display
13775 If vaapisink received a caps query before getting a VA display, it returned
13776 only the surfaces related caps. This behavior broke the autovideosink
13778 This patch returns the pad's template caps if no VA display, otherwise the
13779 caps are crafted as before.
13780 https://bugzilla.gnome.org/show_bug.cgi?id=767699
13782 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13784 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13785 decoder: vp9: Update comment about context resets
13786 Clarify that vaapi context resets are never needed for vp9, but
13787 that ensure_context() needs called when the size increases so that
13788 new surfaces can be allocated.
13789 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13790 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13792 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13794 * gst-libs/gst/vaapi/gstvaapicontext.c:
13795 * gst-libs/gst/vaapi/gstvaapicontext.h:
13796 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13797 gstvaapicontext: control reset_on_resize with option
13798 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13799 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13801 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13803 * gst/vaapi/gstvaapivideobufferpool.c:
13804 vaapivideobufferpool: add video meta to config when needed
13805 In cases where we know the video meta must be present, add it to
13806 the pool configuration.
13807 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13808 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13810 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13812 * gst/vaapi/gstvaapipluginbase.c:
13813 plugins: retry pool config
13814 if gst_buffer_pool_set_config returns FALSE, check the modified
13815 config and retry set_config if the config is still acceptable.
13816 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13817 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13819 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13821 * gst/vaapi/gstvaapivideomemory.h:
13822 vaapivideomemory: internal attributes to methods
13823 Mark as internal the functions used by VA-API dmabuf allocator.
13825 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13827 * gst/vaapi/gstvaapipluginbase.c:
13828 plugins: remove precondition for decide_allocation()
13829 There's no need to check for the display in the plugin object when
13830 decide_allocation() vmethod is called, because the display will created or
13831 re-created along the method execution.
13833 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13835 * gst/vaapi/gstvaapipluginbase.c:
13836 plugins: avoid possible memory leaks
13837 Get the pool config just before use it, to avoid a memory leak if the
13838 allocator cannot be instantiated. Similarly, return FALSE if the configuration
13839 cannot be set, avoid keep a not used allocator in the pool.
13841 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13843 * gst/vaapi/gstvaapipluginbase.c:
13844 plugins: use GstParentBufferMeta
13845 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
13846 use the GStreamer's GstParentBufferMeta.
13847 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13849 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13851 * gst/vaapi/gstvaapipluginbase.c:
13852 plugins: cache VASurfaces from dmabufs
13853 This patch avoids the creation of a VASurface each time a new input buffer is
13854 processed, caching them in the input buffer itself.
13855 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13857 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13859 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13860 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13861 * gst/vaapi/gstvaapipluginbase.c:
13862 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
13863 Instead of passing the data already in GstVideoInfo, let's just pass the
13864 GstVideoInfo structure.
13865 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13867 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13869 * gst/vaapi/gstvaapipluginbase.c:
13870 * gst/vaapi/gstvaapipluginbase.h:
13871 plugins: use an unique allocator per pad
13872 Instead of instantiating an allocator per vaapivideobufferpool, only one
13873 allocator is instantiated per element's pad and shared among future pools.
13874 If the pad's caps changes, the allocator is reset.
13875 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13877 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13879 * gst/vaapi/gstvaapipluginbase.c:
13880 * gst/vaapi/gstvaapivideobufferpool.c:
13881 * gst/vaapi/gstvaapivideobufferpool.h:
13882 vaapivideobufferpool: share options flag with pluginbase
13883 Originally, vaapivideobufferpool has a set of boolean variables for the
13884 buffer configuration options.
13885 This pach changes these boolean variables for a single bitwise, just as
13886 it is used in pluginbase. Hence, the internal enum was moved to
13887 vaapivideobufferpool header.
13888 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13890 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13892 * gst/vaapi/gstvaapipluginbase.c:
13893 plugins: add gst_vaapi_plugin_base_create_pool()
13894 This patch refactors the code in pluginbase in order to centralize the buffer
13895 pool instantiation. As the buffer pool config may have different options, these
13896 are gathered using a bitwise flag.
13897 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13899 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13901 pluginbase negotiates allocator with bufferpool
13902 Originally vaapivideobufferpool instantiates its own allocator regardless the
13903 received configuration, and it relies in custom configuration options to
13904 choose which kind of allocator instantiate.
13905 This patch transfers the responsibility of the allocator instantiate to
13906 vaapipluginbase and pass it to the vaapivideobufferpool through its
13908 * gst/vaapi/gstvaapipluginbase.c
13909 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
13910 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
13911 bufferpool configuration
13912 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
13914 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
13915 allocator in bufferpool configuration
13916 * gst/vaapi/gstvaapivideobufferpool.c
13917 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
13918 allocator, process the received one through its configuration.
13919 * gst/vaapi/gstvaapivideobufferpool.h: removed
13920 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
13921 * gst/vaapi/gstvaapivideomemory.c
13922 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
13923 allocator with the vaapi qdata.
13924 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13926 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13928 * gst/vaapi/gstvaapivideobufferpool.c:
13929 vaapivideobufferpool: keep only current video info
13930 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
13931 the current one, the negotiated. The old one is not needed at all.
13932 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13934 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13936 * gst/vaapi/gstvaapipluginbase.c:
13937 * gst/vaapi/gstvaapipluginutil.c:
13938 * gst/vaapi/gstvaapipluginutil.h:
13939 * gst/vaapi/gstvaapivideomemory.c:
13940 pluginutil: add gst_video_info_force_nv12_if_encoded()
13941 This lines repeat a couple times in the code, so it would be better to put it
13943 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13945 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13947 * gst/vaapi/gstvaapipluginutil.c:
13948 * gst/vaapi/gstvaapipluginutil.h:
13949 * gst/vaapi/gstvaapipostproc.c:
13950 * gst/vaapi/gstvaapivideobufferpool.c:
13951 pluginutil: add gst_video_info_changed() helper
13952 This function is shared among different elements, so let factorized it.
13953 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13955 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
13957 * gst/vaapi/gstvaapipostprocutil.c:
13958 vaapipostproc: Add colorimetry attributes to src caps
13959 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13961 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13963 * gst/vaapi/gstvaapidecode.c:
13964 vaapidecode: remove chroma-site and colorimetry from src caps
13965 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13967 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13969 * gst/vaapi/gstvaapipostproc.c:
13970 * gst/vaapi/gstvaapipostproc.h:
13971 vaapipostproc: add postproc_lock to protect data members
13972 Add a mutex to postproc to protect concurrent access to data members.
13973 Previously set_caps() could release the allowed_srcpad_caps while
13974 transform_caps was in the middle of using it.
13975 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13976 https://bugzilla.gnome.org/show_bug.cgi?id=766940
13978 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13980 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13981 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13982 encoder: vp9: Add simple algorithms for reference picture selection
13983 Added two modes(as properties) for reference picture selection:
13984 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
13985 and LastRef is pointing to the previous frame.
13986 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
13987 and n-2 th frame as AltRef
13988 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13990 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13992 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13993 encoder: vp9: Define Max frame width and height
13994 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13996 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13998 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13999 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
14000 encoder: vp9: Add more propertis for tuning encode quality
14001 Added three tuning properties:
14004 3: luma ac quant-table index
14005 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14007 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14009 * gst/vaapi/Makefile.am:
14010 * gst/vaapi/gstvaapi.c:
14011 * gst/vaapi/gstvaapiencode_vp9.c:
14012 * gst/vaapi/gstvaapiencode_vp9.h:
14013 Add vp9 encode element to "vaapi" plugin
14014 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14016 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14018 * gst-libs/gst/vaapi/Makefile.am:
14019 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
14020 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
14021 Add vp9 encoder support in libgstvaapi
14022 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14024 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14027 build: Add check for VP9 encode API support in libva
14028 https://bugzilla.gnome.org/show_bug.cgi?id=766048
14030 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14032 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14033 gstvaapisurface_drm: fix internal documentation
14035 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14037 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14038 gstvaapisurface_drm: fix code-style
14040 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14042 * gst/vaapi/gstvaapipluginbase.c:
14043 plugins: remove unused header
14044 Remove the include of gst/allocators/allocators.h since it is not used.
14046 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14048 * gst/vaapi/gstvaapivideobufferpool.h:
14049 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
14050 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
14051 keep compatibility definition.
14052 This patch removes the definition of
14053 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
14054 gst-plugins-base version 1.2.2
14056 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14058 * gst/vaapi/gstvaapipluginbase.c:
14059 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
14060 This is a helper function to improve the readability of
14061 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
14064 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14066 * gst/vaapi/gstvaapipluginbase.c:
14067 plugins: deactivate buffer pool before unref
14068 This buffer pool may still be processing buffers when a caps renegotiation is
14069 done. This one-liner patch deactivates the pool to drain it before it
14072 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14074 * gst/vaapi/gstvaapipluginbase.c:
14075 plugins: no sinkpad bufferpool when decoder
14076 Right now, the decoders create a buffer pool for their sink pad which is not
14077 used at all, because the decoders have never proposed it to upstream.
14078 This patch avoids the buffer pool instantiating when the element inherits from
14079 the GstVideoDecoder class.
14081 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14083 * gst/vaapi/gstvaapipluginbase.c:
14084 plugins: avoid to get/set pool config twice
14085 This patch is a bit of optimization, since the bufferpool configuration is get
14086 when the pool is created. Hence, we only need to request it when the pool from
14087 the allocation query is reused.
14089 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14091 * gst/vaapi/gstvaapipluginbase.c:
14092 plugins: destroy pool earlier if non-vaapi
14093 If the offered pool in decide_allocation() vmethod doesn't have the
14094 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
14095 so it could be created later.
14097 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14099 * gst/vaapi/gstvaapivideobufferpool.c:
14100 vaapivideobufferpool: split caps validation
14101 When validating the caps from bufferpool config, this patch distinguishes the
14102 error from no caps received (NULL) from the invalid caps (cannot be converted
14103 into GstVideoInfo structure).
14105 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14107 * gst/vaapi/gstvaapidecode.c:
14108 * gst/vaapi/gstvaapipluginbase.c:
14109 plugins: check for caps in query earlier
14110 Check for caps as soon gst_query_parse_allocation() returns.
14112 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14114 * gst/vaapi/gstvaapipluginbase.c:
14115 * gst/vaapi/gstvaapipluginbase.h:
14116 plugins: remove unused variables
14117 This variables stopped to be used since commit 001a5c63, which removed the
14120 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14122 * gst/vaapi/gstvaapipluginbase.c:
14123 plugins: fix potential memleak from commit 9159328
14124 If gst_video_info_from_caps() fails it is required to unref the instantiated
14127 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14129 * gst/vaapi/gstvaapipostproc.c:
14130 vaapipostproc: handle if gst_video_info_from_caps() fails
14131 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
14134 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14136 * gst/vaapi/gstvaapipluginbase.c:
14137 plugins: handle if gst_video_info_from_caps() fails
14138 Let's play safe and return error if, somehow, the received caps are wrong.
14140 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14142 * gst/vaapi/gstvaapipluginbase.c:
14143 plugins: relate errors to instance
14144 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
14145 will show the name of the vaapipluginbase instance that failed.
14146 Also, the code-style is fixed, where some error labels need to be surrounded
14149 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14151 * gst/vaapi/gstvaapipluginbase.c:
14152 * gst/vaapi/gstvaapipluginutil.c:
14153 * gst/vaapi/gstvaapisink.c:
14154 plugins: use GstVideoInfo accessors
14155 Instead of access to GstVideInfo members directly, use their accessors
14156 macros. This patch makes more resistance to future changes in GStreamer core.
14158 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14160 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14161 * gst/vaapi/gstvaapipluginbase.c:
14162 * gst/vaapi/gstvaapipostproc.c:
14163 * tests/simple-encoder.c:
14164 remove spurious gst_video_info_init()
14165 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
14166 gst_video_info_init(), hence it is not required to call it before them. This
14167 patch removes these spurious calls.
14169 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14171 * gst/vaapi/gstvaapipluginbase.c:
14172 vaapipluginbase: code-style: rename goto label
14173 The error labels have error_ prefix, but this one.
14175 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14177 * gst/vaapi/gstvaapivideomemory.c:
14178 vaapivideomemory: use allocator custom alloc flag
14179 Instead of a dummy alloc() vmethod, the allocator instance set the flag
14180 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
14181 gst_allocator_alloc() on the allocator.
14183 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14185 * gst/vaapi/gstvaapivideobufferpool.c:
14186 vaapivideobufferpool: relate errors to instance
14187 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
14188 the vaapivideobufferpool instance that failed.
14190 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14192 * gst/vaapi/gstvaapipluginbase.c:
14193 plugins: remove gst_vaapi_plugin_base_set_pool_config()
14194 This function helper make sense for GStreamer 1.2, but it is not helpful for
14195 greater version since the validation is already done in the API implementation.
14196 Thus, it is removed.
14198 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14200 * gst/vaapi/gstvaapipluginbase.c:
14201 gstvaapipluginbase: Fix typo in doc
14203 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14205 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14206 encoder : h264: Disable b-frame encode in low-power mode
14207 This is a workaround since vaapi-intel-driver doesn't have
14208 support for B-frame encode when utilizing low-power-enc
14210 Fixme :We should query the VAConfigAttribEncMaxRefFrames
14211 instead of blindly disabling b-frame support and set b/p frame count,
14212 buffer pool size etc based on the query result.
14213 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14215 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14217 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14218 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
14219 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
14220 Remove the duplicate property "low-power-enc" and use the
14221 tune property for enabling low power encoding mode.
14222 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14224 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14226 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14227 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
14228 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14230 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14232 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14233 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14234 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
14235 encoder: h264: Add support of low power/high performance encoding mode
14236 Added a new property "low-power-enc" for enabling low power
14237 encoding mode. Certain encoding tools may not be available
14238 with the VAEntrypointEncSliceLP.
14239 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14241 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14243 * gst-libs/gst/vaapi/gstvaapitypes.h:
14244 * gst-libs/gst/vaapi/gstvaapiutils.c:
14245 * gst-libs/gst/vaapi/gstvaapivalue.c:
14246 Add mapping for Macroblock level rate control (VA_RC_MB)
14248 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14250 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14251 gstvaapidisplay: Add VAEntrypointEncSliceLP support
14252 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14254 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14256 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14257 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14258 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
14259 This is for implementations that supports low_power/high_performance
14260 variant for slice level encode.
14261 https://bugzilla.gnome.org/show_bug.cgi?id=766050
14263 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14265 * gst/vaapi/gstvaapipostprocutil.c:
14266 vaapipostproc: negotiate frame size fixation
14267 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
14268 using the sink caps, also it use the next capsfilter.
14269 This code is a shameless copy of gst_video_scale_fixate_caps() from
14270 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
14271 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14273 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14275 * gst/vaapi/gstvaapipostprocutil.c:
14276 vaapipostproc: don't use GstVideoInfo for src caps
14277 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
14278 this patch enables the first step for caps negotiation with a possible
14279 following caps filter.
14280 _get_preferred_caps() will traverse the possible src caps looking for the one
14281 wit the preferred feature and the preferred color format. Then the color
14282 format, the frame size and the frame rate are fixated.
14283 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14285 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14287 * gst/vaapi/gstvaapipostproc.c:
14288 * gst/vaapi/gstvaapipostprocutil.c:
14289 * gst/vaapi/gstvaapipostprocutil.h:
14290 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
14291 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
14292 No functional changes.
14293 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14295 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14297 * gst/vaapi/gstvaapipostproc.c:
14298 vaapipostproc: simplify code
14299 Change a convoluted snippet to find the preferred color format in the peer
14301 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14303 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14305 * gst/vaapi/gstvaapipostproc.c:
14306 vaapipostproc: use othercaps for preferred caps
14307 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
14308 from fixate_caps() vmethod to find the preferred caps feature and color
14310 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14312 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14314 * gst/vaapi/gstvaapipostproc.c:
14315 vaapipostproc: add fixate_caps() vmethod
14316 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
14317 implements the fixate_caps() vmethod and moves code around.
14318 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14320 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14322 * gst/vaapi/Makefile.am:
14323 * gst/vaapi/gstvaapipostproc.c:
14324 * gst/vaapi/gstvaapipostprocutil.c:
14325 * gst/vaapi/gstvaapipostprocutil.h:
14326 vaapipostproc: set early properties restrictions
14327 When running transform_caps() vmethod, returning the srcpad caps, the caps are
14328 early restricted to the element properties set: width, height, format and
14330 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
14332 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14334 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14336 * gst/vaapi/gstvaapipostproc.c:
14337 vaapipostproc: log the caps transformation
14338 https://bugzilla.gnome.org/show_bug.cgi?id=758548
14340 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14342 * gst/vaapi/gstvaapipostproc.c:
14343 vaapipostproc: no GLTextureUpload in sinkpad
14344 As the vaapipostproc does not process frames with the VideoGLTextureUpload
14345 meta, the feature is removed from the sink pad template.
14346 https://bugzilla.gnome.org/show_bug.cgi?id=765931
14348 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
14350 * gst/vaapi/gstvaapivideobufferpool.c:
14351 vaapibufferpool: do not create texture upload meta if dmabuf
14352 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14354 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14357 build: update git.mk
14359 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14361 * gst/vaapi/gstvaapipluginbase.h:
14362 plugin: fix macro processor check
14363 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
14364 defined in config.h, but it would be 0 or 1 depending on the configure output.
14365 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14367 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14369 * tests/test-display.c:
14370 tests: display: guard possible unused variables
14371 https://bugzilla.gnome.org/show_bug.cgi?id=765702
14373 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14379 * tests/simple-decoder.c:
14380 * tests/test-decode.c:
14381 * tests/test-display.c:
14382 * tests/test-filter.c:
14383 * tests/test-h264.c:
14384 * tests/test-jpeg.c:
14385 * tests/test-mpeg2.c:
14386 * tests/test-mpeg4.c:
14387 * tests/test-subpicture-data.c:
14388 * tests/test-subpicture.c:
14389 * tests/test-surfaces.c:
14390 * tests/test-textures.c:
14391 * tests/test-vc1.c:
14392 * tests/test-windows.c:
14393 tests: inforce gstreamer code-style
14395 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14397 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14398 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
14399 It seems driver requires enablement of cu_qp_delta_enabled_flag
14400 for modifying QP values to controll the CBR mode bitrate.
14401 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14403 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14405 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14406 encoder: h265: Add CBR Encoding support
14407 https://bugzilla.gnome.org/show_bug.cgi?id=749852
14409 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
14411 * gst-libs/gst/vaapi/gstvaapisurface.c:
14412 gstvaapisurface: explicitely clear TILING flag if dmabuf
14413 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14415 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
14417 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14418 gstvaapisurface_drm: release image when done
14419 Otherwise intel-vaapi-driver will fail to process the exported surface because
14420 it will find it is currently derived, so considered as busy.
14421 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14423 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
14425 * gst/vaapi/gstvaapipostproc.c:
14426 vaapipostproc: already have a surface proxy if dmabuf
14427 https://bugzilla.gnome.org/show_bug.cgi?id=755072
14429 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
14431 * gst/vaapi/gstvaapipostproc.c:
14434 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14436 * gst/vaapi/gstvaapidecode.c:
14437 * gst/vaapi/gstvaapipluginbase.c:
14438 * gst/vaapi/gstvaapipluginbase.h:
14439 vaapidecode: search driver in whitelist
14440 If the backend driver vendor string is not in a white-list, and the
14441 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
14442 change it state from NULL to READY, hence the auto-plug mechanism will look
14443 for another decoder.
14444 This patch assumes the GstContext has already being shared along the pipeline
14445 and the element has a valid GstVaapiDisplay instance.
14446 https://bugzilla.gnome.org/show_bug.cgi?id=764673
14448 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14450 * gst/vaapi/gstvaapidecode.c:
14451 * gst/vaapi/gstvaapiencode.c:
14452 * gst/vaapi/gstvaapipluginbase.c:
14453 * gst/vaapi/gstvaapipluginbase.h:
14454 * gst/vaapi/gstvaapipostproc.c:
14455 * gst/vaapi/gstvaapisink.c:
14456 plugins: rework set_context() vmethod definition
14457 In bug 757598 was added the set_context() vmethod chain up in
14458 GstVaapiPluginBase. But it is buggy, since the parent_class address is
14459 assigned to the last element which called gst_vaapi_plugin_base_class_init().
14460 No error has shown up since none of the element's base classes redefined
14461 set_context() vmethod from GstElement, so always the correct function was
14462 called. Still this code is wrong and this patch make it right.
14463 Since set_context() is the same code, a macro is used to implement that code
14464 in all the gst-vaapi elements.
14465 https://bugzilla.gnome.org/show_bug.cgi?id=765368
14467 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14469 * gst/vaapi/gstvaapipostproc.c:
14470 vaapipostproc: resize if negotiated and allocation caps are different
14471 Since commit 859a2b2, in vaapidecode, allocation query can be different from
14472 the negotiated caps.
14473 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
14474 resize the frame to the negotiated, if and only if, some other parameter is
14475 activated to avoid the passthrough. If it is not, the surface won't be mapped
14476 into a image. If not, the image won't be resized and the output buffer would be
14478 This patch will break the passthrough if the allocation query is different
14479 from the negotiation caps, forcing the resizing.
14480 https://bugzilla.gnome.org/show_bug.cgi?id=765095
14482 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14484 * gst/vaapi/gstvaapidecode.c:
14485 vaapidecode: improve code readability
14486 No functional changes.
14488 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14490 * gst/vaapi/gstvaapidecode.c:
14491 vaapidecode: move GstCapsFeatures near to its use
14492 Move the handling of the GstCapsFeatures just after it is used, in order to
14493 avoid handling its memory.
14495 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14497 * gst/vaapi/gstvaapidecode.c:
14498 vaapidecode: caps negotiation checks
14499 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
14500 compiled with GL support.
14502 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14504 * gst/vaapi/gstvaapidecode.c:
14505 * gst/vaapi/gstvaapipluginbase.c:
14506 * gst/vaapi/gstvaapipluginbase.h:
14507 * gst/vaapi/gstvaapipostproc.c:
14508 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
14510 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14512 * gst/vaapi/gstvaapidecode.c:
14513 vaapidecode: bail early if not caps in decide_allocation()
14515 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14517 * gst/vaapi/gstvaapidecode.c:
14518 * gst/vaapi/gstvaapipluginbase.c:
14519 * gst/vaapi/gstvaapipluginutil.c:
14520 * gst/vaapi/gstvaapipluginutil.h:
14521 * gst/vaapi/gstvaapipostproc.c:
14522 plugin: use allowed caps filter from element
14523 Instead of using the srcpad template caps for filtering the peer caps, the
14524 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
14525 for the element's allowed caps.
14526 With this modification, the vaapipostproc element simplifies a bit its code.
14527 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14529 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14531 * gst/vaapi/gstvaapidecode.c:
14532 * gst/vaapi/gstvaapipluginbase.c:
14533 * gst/vaapi/gstvaapipluginutil.c:
14534 * gst/vaapi/gstvaapipluginutil.h:
14535 * gst/vaapi/gstvaapipostproc.c:
14536 plugin: remove function parameter
14537 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
14538 saved if the out format is used for both: in and out. Thus the code is more
14540 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14542 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14544 * gst/vaapi/gstvaapidecode.c:
14545 vaapidecode: warns if driver will do color conversions
14546 If the downstream feature is system memory, the surface has to be mapped,
14547 hence a warning message is logged saying that the driver has to do color
14548 conversions. This might be troublesome because not all the color conversion
14549 combinations are supported by the VA-API drivers, and there is not a reliable
14550 way to know them before hand.
14551 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14553 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14555 * gst/vaapi/gstvaapipluginutil.c:
14556 plugin: honour negotiated format
14557 Instead of setting the requested format by the caller, the function
14558 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
14559 the negotiated format.
14560 A new helper function was added: gst_vaapi_find_preferred_format(), which,
14561 given the format list from the negotiated caps, will choose the best one, if
14562 possible, given the native format.
14563 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14565 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14567 * gst/vaapi/gstvaapipluginutil.c:
14568 plugin: simplify caps feature selection
14569 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
14570 Instead of intersecting custom caps to find the preferred feature, the peer
14571 caps are traversed in order to find the preferred feature, according to an
14572 ordered feature priority list.
14573 In the case of GLTextureUploadMeta, the colour format is computed using
14574 GstVideoInfo of the selected fixed caps.
14575 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14577 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14579 * gst/vaapi/gstvaapidecode.c:
14580 vaapidecode: use macros for GstVideoInfo
14581 Instead of accessing directly to the members of the structure, use the macros.
14583 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14585 * gst/vaapi/gstvaapidecode.c:
14586 vaapidecode: refactor is_display_resolution_changed()
14587 Make the comparisons more readable and simple.
14588 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14590 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14592 * gst/vaapi/gstvaapidecode.c:
14593 * gst/vaapi/gstvaapidecode.h:
14594 vaapidecode: keep only display_{width,height}
14595 Instead of keeping the structure GstVideoInfo when we are using its width and
14596 height, we only keep these two guints.
14597 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14599 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14601 * gst/vaapi/gstvaapidecode.c:
14602 vaapidecode: decoded_info is valid at src caps update
14603 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
14604 is called, then we don't need to verify or replace it with the sinkpad info
14606 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14608 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14610 * gst/vaapi/gstvaapidecode.c:
14611 vaapidecode: always a valid format in decoded_info
14612 Always set a valid format in decoded_info class variable.
14613 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14615 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14617 * gst/vaapi/gstvaapidecode.c:
14618 vaapidecode: code style fixes
14619 No functional changes.
14620 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14622 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14624 * gst/vaapi/gstvaapidecode.c:
14625 vaapidecode: init {decoded,display}_info at open()
14626 It is required to initialize {decoded,display}_info variables when the decoder
14627 is open, not only at instance initialization.
14628 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14630 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14632 * gst/vaapi/gstvaapidecode.c:
14633 * gst/vaapi/gstvaapidecode.h:
14634 vaapidecode: remove spurious class variables
14635 active, do_pool_renego and do_outstate_renego class variables were used to
14636 indicate when negotiate downstream once, but now that each time a new surface
14637 resolution is pop out a renegotation verified, these variable are not required
14639 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14641 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14643 * gst/vaapi/gstvaapidecode.c:
14644 * gst/vaapi/gstvaapipluginbase.c:
14645 * gst/vaapi/gstvaapipluginbase.h:
14646 * gst/vaapi/gstvaapipostproc.c:
14647 remove custom allocation query
14648 When resolving bug 753914, a custom allocation query was added, overlapping
14649 the responsibilities of GstVideoDecoder.
14650 But with the merge of the patches from bug 764421 this overlapping was not
14651 required anymore. This patch restores this situation setting the
14652 allocation_caps in the GstVideoCodecState when needed.
14653 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14655 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
14658 Automatic update of common submodule
14659 From 6f2d209 to ac2f647
14661 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14663 * gst/vaapi/gstvaapidecode.c:
14664 * gst/vaapi/gstvaapidecodebin.c:
14665 * gst/vaapi/gstvaapipostproc.c:
14666 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
14667 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
14668 their caps templates if they were not compiled either with GLX or EGL support.
14670 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14672 * gst/vaapi/gstvaapipluginutil.c:
14673 plugins: fix compilation when EGL/GLX is disabled
14674 The compiler might complain of gst_vaapi_create_display_from_handle() being
14675 unused if both EGL and GLX are disabled. This patch avoid that compilation
14678 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
14680 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14681 libs: fix deleting a GstVaapiCodedBufferPool object
14682 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
14683 Otherwise it is not called when the pool is destroyed and all objects
14684 referenced by the GstVaapiVideoPool are never released.
14685 https://bugzilla.gnome.org/show_bug.cgi?id=764993
14687 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14689 * gst-libs/gst/vaapi/gstvaapisurface.c:
14690 surface: destroy derived image
14691 If gst_vaapi_image_new_with_image() fails, the created derived image should be
14692 destroyed, otherwise the surface cannot be processed because is being used.
14693 https://bugzilla.gnome.org/show_bug.cgi?id=764607
14695 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14697 * gst/vaapi/gstvaapidecode.c:
14698 vaapidecode: add stop function
14699 Clear any status on the current stream:
14700 stored frames, caps and decoder configuration
14701 https://bugzilla.gnome.org/show_bug.cgi?id=763460
14703 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14705 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14706 decoder: vp9: Align with the ABI changes in vp9 codecparser
14707 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
14708 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
14709 These fields are only present in keyframe or intra-only frame, no need to
14710 duplicate them for inter-frames.
14711 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14713 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14715 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14716 decoder: vp9 : Add 10bit decoding support (Profile2)
14717 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14719 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14721 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14722 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14723 gstvaapiporfile: Add more VP9 profile definitions
14724 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14726 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14730 build: possibility to disable tests
14731 The configuration option --disable-examples will disable the compilation of
14732 the sample apps in tests/ directory.
14734 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14736 * gst/vaapi/gstvaapiencode_h264.c:
14737 * gst/vaapi/gstvaapiencode_h265.c:
14738 * gst/vaapi/gstvaapiencode_jpeg.c:
14739 * gst/vaapi/gstvaapiencode_mpeg2.c:
14740 * gst/vaapi/gstvaapiencode_vp8.c:
14741 * gst/vaapi/gstvaapipluginutil.h:
14742 * gst/vaapi/gstvaapisink.c:
14743 unify caps template for VAAPI encoders and decoders
14744 There is no difference in VAAPI surface caps between encoders and decoders.
14745 Thus, the patch makes a simplification by removing encoders specific caps and
14746 shares the same definition of VAAPI surfaces caps for all the elements.
14748 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14750 * gst/vaapi/gstvaapidecode.c:
14751 vaapidecode: move gst_vaapidecode_negotiate() code
14752 With it we can remove a function declaration, making the code a bit
14754 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14756 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14758 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14759 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14760 * gst/vaapi/gstvaapidecode.c:
14761 docs: generate vaapijpegdec documentation
14762 https://bugzilla.gnome.org/show_bug.cgi?id=764314
14764 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14766 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14767 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
14768 The array_completeness, reserved bit and num_nal_units fields
14769 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
14770 but not for each occurance of similar headers.
14771 https://bugzilla.gnome.org/show_bug.cgi?id=764274
14773 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14775 * gst-libs/gst/vaapi/video-format.c:
14776 video-format: Keep the HW order preference while mapping to GstVideoFormats
14778 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14780 * gst/vaapi/gstvaapidecode.c:
14781 * gst/vaapi/gstvaapipluginbase.c:
14782 * gst/vaapi/gstvaapipluginutil.c:
14783 * gst/vaapi/gstvaapipluginutil.h:
14784 * gst/vaapi/gstvaapivideomemory.c:
14785 gst/vaapi: keep precedence for NV12 over I420
14786 Use NV12 as default "assumption" format all over.
14787 NV12 is the default high priority format used my most of the
14790 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14792 * gst/vaapi/gstvaapidecode.c:
14793 vaapidecode: Use video format derived from decoded surface as default src pad format
14794 Use the surface format derived from first decoded surface
14795 to negotiate the downstream video format capabilities.
14796 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14798 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
14800 * gst-libs/gst/vaapi/gstvaapiimage.c:
14801 * gst-libs/gst/vaapi/video-format.c:
14802 * gst/vaapi/gstvaapidecode.c:
14803 * gst/vaapi/gstvaapipluginutil.h:
14804 * gst/vaapi/gstvaapisink.c:
14805 Add P010 video format support
14806 The P010 video format is the native format used by the vaapi intel driver
14807 for HEVCMain10 decode . Add support for planes and images of this video format.
14808 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14810 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
14812 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14813 libs: x11: allows 30-bit colour depth
14814 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
14815 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
14816 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
14818 https://bugzilla.gnome.org/show_bug.cgi?id=764256
14820 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14822 * gst/vaapi/gstvaapivideometa_texture.c:
14823 gltextureupload: use an array for texture type
14824 Instead of using a single value for the texture type, use an array with 4
14825 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
14827 https://bugzilla.gnome.org/show_bug.cgi?id=764231
14829 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14831 * gst/vaapi/gstvaapidecode.c:
14832 * gst/vaapi/gstvaapipluginbase.c:
14833 vaapidecode: Fix decide_allocation handling
14834 Set the already configured pool in decide_allocation query
14835 in cases where pool renegotiation is not required.
14836 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14838 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14840 * gst/vaapi/gstvaapidecode.c:
14841 vaapidecode: Derive and save the decoded surface format
14842 After the decoding of first frame, try to extract the exact
14843 decoded surface format using vaDeriveImage and keep this
14844 as the format in decoded_info.
14845 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14847 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14849 * gst/vaapi/gstvaapidecode.c:
14850 * gst/vaapi/gstvaapidecode.h:
14851 * gst/vaapi/gstvaapipluginbase.c:
14852 * gst/vaapi/gstvaapipluginbase.h:
14853 * gst/vaapi/gstvaapipostproc.c:
14854 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
14855 -- Maintaing decoded surface resoluton and actual display resoultion separately
14856 -- Before pushing every frames downstream, check for the requirement of pool negoation and
14857 output_state negotiation: This is needed to avoid multiple issuses with cropping,
14858 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
14859 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
14860 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
14861 This is slight overhead, but safe enough. Optimization could be possible though.
14862 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14864 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14866 * gst/vaapi/gstvaapidecode.c:
14867 vaapidecode: Delay the output format setting until we have a decoded surface
14868 This will help to consoidate the out caps negotiation to a single place,
14869 which will make the code simpler, allows to get the exact decoded format
14870 if needed and the selected chroma type too.
14871 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14873 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14875 * gst/vaapi/gstvaapidecode.h:
14876 vaapidecode: GST_VAAPIDECODE macro is a cast
14877 This patch is the continuation of commit 1e1d3b1d because the function
14878 gst_vaapidecode_get_type() got undefined since then.
14879 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
14880 structure. The rest of the GObject handling macros were deleted too.
14882 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
14885 Back to development
14887 === release 1.8.0 ===
14889 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
14894 * gstreamer-vaapi.doap:
14897 === release 1.7.91 ===
14899 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
14904 * gstreamer-vaapi.doap:
14907 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14909 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14910 decoder: h265: Fix offset calculation in codec_data parsing
14911 https://bugzilla.gnome.org/show_bug.cgi?id=762922
14913 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14915 * gst/vaapi/gstvaapidecodebin.c:
14916 vaapidecodebin: don't handle jpeg decoding
14917 As JPEG decoder has been split and demoted, it cannot be handled by
14919 Added a fixme comment regarding the future removal of vaapidecode.
14920 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14922 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14924 * gst/vaapi/gstvaapidecode.c:
14925 vaapidecode: split out jpeg decoder
14926 Split, as a different element, the JPEG decoder.
14927 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14929 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14931 * gst/vaapi/gstvaapi.c:
14932 * gst/vaapi/gstvaapidecode.c:
14933 * gst/vaapi/gstvaapidecode.h:
14934 vaapidecode: register decoder with internal GType
14935 Don't expose the the vaapidecode GType, instead expose a function
14936 which will register element.
14937 This is the first step to split the decoder by codecs.
14938 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14940 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14942 * gst/vaapi/gstvaapidecode.c:
14943 vaapidecode: remove unused function declaration
14944 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
14945 code-style of the other pre-declared functions.
14947 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14949 * docs/plugins/Makefile.am:
14950 build: git ignore gtkdoc generated files
14952 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14955 build: handle git ignore in m4 directory
14957 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14959 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14960 vaapidecoder_h265: plug leak of h265 parsing info
14961 If something goes wrong while parsing, the info object is
14963 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14965 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14967 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14968 vaapidecoder_h264: plug leak of h264 parsing info
14969 If something goes wrong while parsing, the info object is
14971 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14973 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14975 * gst/vaapi/gstvaapipluginutil.c:
14976 plugins: fix gstgl and vaapi memory leaks
14977 1\ Unref gl_display and gl_window as soon they are not needed.
14978 2\ Remove an unneeded display type check, since is handled by
14979 gst_vaapi_created_display_from_handle()
14980 3\ Unref vaapi's display if the display cannot be bind to a GL API.
14981 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14982 https://bugzilla.gnome.org/show_bug.cgi?id=763354
14984 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
14986 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14987 vaapidisplay: Fix uninitialized value error for VA attribute
14988 https://bugzilla.gnome.org/show_bug.cgi?id=763362
14990 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14992 * gst/vaapi/gstvaapidecode.c:
14993 * gst/vaapi/gstvaapiencode.c:
14994 plugins: proxy information from downstream caps
14995 Propagate to upstream the downstream information, such as fps, par, etc.
14996 This will fix several "getcaps" critical warnings in gst-validate.
14997 https://bugzilla.gnome.org/show_bug.cgi?id=763300
14999 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15001 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15002 decoder: vp9: Assign values for profile and bit_depth from frame header
15003 bit_depth field has added only in VA-API 0.39.0, added version check.
15005 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
15008 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
15009 https://bugzilla.gnome.org/show_bug.cgi?id=763067
15011 === release 1.7.90 ===
15013 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
15018 * gstreamer-vaapi.doap:
15021 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
15024 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
15026 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15028 * gst/vaapi/gstvaapidecode.c:
15029 vaapidecode: intersect with filter in getcaps()
15030 In commit 6034734d I forgot to add the caps filter intersection in the
15031 getcaps() vmethod generating a regression when a capsfilter is set in the
15033 This commit adds the caps filter intersection.
15035 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
15037 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
15038 Add memset to initialize value for VAEncSliceParameterBufferJPEG
15039 https://bugzilla.gnome.org/show_bug.cgi?id=762850
15041 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
15044 Automatic update of common submodule
15045 From b64f03f to 6f2d209
15047 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15052 build: add m4 directory
15053 Instead of rely on the automatic creation of m4 directory by aclocal, we
15054 already control it. Later we could create our own m4 scripts in order to
15055 unclutter configure.ac
15056 https://bugzilla.gnome.org/show_bug.cgi?id=762528
15058 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
15060 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15061 decoder: hevc: Fill dependent slice segment headers while parsing
15062 Copy the data into the dependent slice segment header from the
15063 corresponding independent slice segment header during parsing.
15064 Previously the reference to the "previous" independent header was
15065 held through the parsing phase and then dereferenced during the
15066 decoding phase. This caused all dependent headers to be populated
15067 with the data of the AU's last independent header instead of the
15068 proper corresponding header.
15069 https://bugzilla.gnome.org/show_bug.cgi?id=762352
15071 - Reworded commit message
15073 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15075 * gst/vaapi/gstvaapidecode.c:
15076 vaapidecode: use video decoder getcaps()
15077 The usage of getcaps() vmethod is preferred than to handle manually the sink's
15079 In order to avoid function declarations, this patch moves the class_init()
15080 method to the end of the file.
15082 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15084 * gst/vaapi/gstvaapipluginbase.c:
15085 plugins: remove deprecated code
15086 Since we are only supporting current GStreamer version, since 1.3
15087 gst_buffer_pool_config_add_option() checks if the option to add is
15088 already set. There is no need to do it ourselves.
15090 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
15092 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15093 vaapidecoder_h265: fix parsing of NALU aligned data
15094 Don't assume the whole buffer is a single NAL, instead look for the
15095 next start code in case there are multiple NALs per buffer.
15096 https://bugzilla.gnome.org/show_bug.cgi?id=762328
15098 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
15100 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15101 vaapidecoder_h264: fix parsing of NALU aligned data
15102 Don't assume the whole buffer is a single NAL, instead look for the
15103 next start code in case there are multiple NALs per buffer.
15104 https://bugzilla.gnome.org/show_bug.cgi?id=762328
15106 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
15108 * gst/vaapi/gstvaapisink.c:
15109 vaapisink: Fix event,pad,structure memory leaks
15110 https://bugzilla.gnome.org/show_bug.cgi?id=762229
15112 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
15114 * gst/vaapi/gstvaapipluginbase.c:
15115 Add icamerasrc as dmabuf capable peer element
15116 icamerasrc is another gstreamer plugin using to capture RAW
15117 frames from camera device. It is based on libcamhal library.
15118 There are some properties available to control icamera behavior.
15119 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
15120 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
15121 https://bugzilla.gnome.org/show_bug.cgi?id=759481
15122 Fixme: This is the similar workaround we done for v4l2src.
15123 The workaround will be removed once we fix #755072
15125 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
15127 * gst/vaapi/gstvaapipluginbase.c:
15128 vaapipluginbase: Fix structure memory leak
15129 config structure is not being freed in all cases
15130 https://bugzilla.gnome.org/show_bug.cgi?id=762172
15132 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
15134 * gst/vaapi/gstvaapidecode.c:
15135 vaapidecode: Fix videocodec state memory leak
15136 When state is not NULL and either width/height of video info is 0, then state leaks
15137 https://bugzilla.gnome.org/show_bug.cgi?id=762173
15139 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
15141 * gst/vaapi/gstvaapisink.c:
15142 vaapisink: post message for application for unhandled keyboard/mouse events
15143 Makes (most) keyboard shortcuts work in gst-play-1.0 when
15144 the video window has focus.
15146 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
15148 * gst/vaapi/gstvaapidecode.c:
15149 vaapidecode: Fix capsfeature memory leak
15150 https://bugzilla.gnome.org/show_bug.cgi?id=762116
15152 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
15154 * gst/vaapi/gstvaapisink.c:
15155 vaapisink: Fix capsfeature memory leak
15156 caps feature allocated is not being freeing in some cases
15157 https://bugzilla.gnome.org/show_bug.cgi?id=762111
15159 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
15162 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15163 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15164 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15165 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15166 * gst-libs/gst/vaapi/gstvaapifilter.c:
15167 * gst/vaapi/gstvaapidecodebin.c:
15168 * gst/vaapi/gstvaapipluginutil.c:
15169 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
15171 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
15174 configure: Fix setting of extra compiler warning flags
15176 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15178 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
15179 libs: fix build error
15180 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
15181 functions are used only when libva's API version is greater than 0.36.0
15182 This patch guards those functions completely rather than just their
15183 content. The patch is a continuation of commit 38f8fea4
15184 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
15185 https://bugzilla.gnome.org/show_bug.cgi?id=762055
15187 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
15189 * tests/simple-encoder.c:
15190 tests: simple-encoder: fix build error
15191 argument mismatch of gsize with 'long unsigned int'
15192 https://bugzilla.gnome.org/show_bug.cgi?id=762055
15194 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15196 * gst/vaapi/gstvaapisink.c:
15197 vaapisink: Fix wrong caps advertising
15198 The get_caps() should only report the supported formats.
15199 https://bugzilla.gnome.org/show_bug.cgi?id=761147
15201 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
15204 Automatic update of common submodule
15205 From e97c9bb to b64f03f
15207 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15209 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15210 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
15211 * gst/vaapi/gstvaapi.c:
15212 * gst/vaapi/gstvaapiencode_h264.c:
15213 * gst/vaapi/gstvaapiencode_h265.c:
15214 * gst/vaapi/gstvaapiencode_jpeg.c:
15215 * gst/vaapi/gstvaapiencode_mpeg2.c:
15216 * gst/vaapi/gstvaapiencode_vp8.c:
15217 rename encoders to vaapi{codec}enc
15218 Trying to comply with GStreamer's element names, this patch renames the
15219 encoders using the name format vaapi{codec}enc.
15220 In this way, the plugin documentation is linked correctly.
15221 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15223 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15226 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
15227 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15229 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15232 build: remove vp9 parser check
15233 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
15234 the check of the parser, as we did for the others.
15235 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15237 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15241 Back to development
15242 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15244 === release 1.6.0 ===
15246 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15251 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15253 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
15254 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15255 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15256 libs: fix compiler warnings
15257 After setting the release flags, the compiler warns about a couple
15258 initialized variables.
15259 Also marked a couple of set variables as unused, because they are only
15260 used for assertion.
15261 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15263 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15265 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15266 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
15267 * gst/vaapi/gstvaapidecode.c:
15268 * gst/vaapi/gstvaapidecodebin.c:
15269 * gst/vaapi/gstvaapiencode_h264.c:
15270 * gst/vaapi/gstvaapiencode_h265.c:
15271 * gst/vaapi/gstvaapiencode_jpeg.c:
15272 * gst/vaapi/gstvaapiencode_mpeg2.c:
15273 * gst/vaapi/gstvaapiencode_vp8.c:
15274 * gst/vaapi/gstvaapipostproc.c:
15275 * gst/vaapi/gstvaapisink.c:
15276 docs: update plugin documentation
15277 Update all the documentation of elements of the vaapi plugin.
15278 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15280 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15284 * docs/Makefile.am:
15285 * docs/plugins/Makefile.am:
15286 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15287 * docs/plugins/gstreamer-vaapi-plugins.types:
15288 * docs/reference/Makefile.am:
15289 * docs/reference/plugins/Makefile.am:
15290 * docs/reference/plugins/plugins-sections.txt:
15291 * docs/reference/plugins/plugins.types:
15292 * docs/version.entities.in:
15293 resurrect gtk-doc machinery
15294 Our auto-generated documentation has been a bit neglected. This patch replaces
15295 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
15296 plugins, elements and libraries.
15297 This patch also re-enables documentation generation.
15298 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15300 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15306 use gst-common submodule
15307 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
15308 GStreamer common submodule.
15309 The documentation generation has been disable temporarily since it needs a
15310 major rework, which will be done in the following commit.
15311 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15313 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15317 add gst-common submodule
15318 Pointing to branch 1.6
15319 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15321 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15323 * gstreamer-vaapi.doap:
15324 add doap descriptor
15325 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
15326 describe software projects, in particular free and open source software.
15327 The description is used in GStreamer as in many other open source projects.
15328 This patch adds the doap description of this project.
15329 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15331 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15333 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
15334 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15335 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
15336 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15337 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15338 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
15339 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
15340 * gst-libs/gst/vaapi/gstvaapiimage.c:
15341 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
15342 * gst-libs/gst/vaapi/gstvaapipixmap.c:
15343 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
15344 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15345 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
15346 libs: humongous code style fix
15347 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
15348 umbrella, we need to comply with the project's code style. This meant to
15349 change a lot of code.
15350 It was decided to use a single massive patch to update the code style.
15351 I would like to apologize with the original developers of this code because of
15352 the history breakage.
15353 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15355 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15357 * gst-libs/gst/vaapi/gstvaapicontext.c:
15358 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15359 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
15360 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
15361 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15362 * gst/vaapi/gstvaapivideomemory.c:
15363 libs: small refactors to enhance the code style
15364 As gst-indent generated ugly code in these cases, this patch changes the used
15365 idiomatic into other one.
15366 No functional changes were introduced.
15367 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15369 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15371 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
15372 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15373 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
15374 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15375 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15376 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15377 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15378 * gst-libs/gst/vaapi/gstvaapidisplay.c:
15379 * gst-libs/gst/vaapi/gstvaapiencoder.c:
15380 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15381 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15382 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15383 * gst-libs/gst/vaapi/gstvaapifilter.c:
15384 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15385 * gst-libs/gst/vaapi/gstvaapisurface.c:
15386 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15387 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
15388 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15389 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15390 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
15391 * gst-libs/gst/vaapi/gstvaapiwindow.c:
15392 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15393 libs: small code style fixes
15394 This a set of small code style fixes detected as-is by gst-indent.
15395 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15397 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15399 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15400 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15401 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15402 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15403 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
15404 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15405 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
15406 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15407 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15408 libs: trivial comment style fixes
15409 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15411 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15413 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
15414 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15415 libs: avoid gst-indent mess up
15416 Guard pieces of code to avoid gst-ident to mess up the following code.
15417 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15419 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15421 * gst/vaapi/gstvaapidecode.c:
15422 * gst/vaapi/gstvaapidecodebin.c:
15423 * gst/vaapi/gstvaapipluginutil.c:
15424 * gst/vaapi/gstvaapisink.c:
15425 * gst/vaapi/gstvaapivideomemory.c:
15426 plugins: fix code style
15427 Minor code style changes by executing gst-indent in gst/vaapi directory.
15428 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15430 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
15432 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15433 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15434 Fix some more compiler warning
15435 Two (false) compiler warnings about variables potentially
15436 being used uninitialized, and one about a variable being
15438 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15440 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
15442 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15443 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15444 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15445 * gst-libs/gst/vaapi/gstvaapifilter.c:
15446 * gst/vaapi/gstvaapidecode.c:
15447 * gst/vaapi/gstvaapipluginbase.c:
15448 * gst/vaapi/gstvaapipluginutil.c:
15449 * gst/vaapi/gstvaapipostproc.c:
15450 * tests/simple-encoder.c:
15451 * tests/test-filter.c:
15452 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
15453 Declare variables at the beginning of a code block, which
15454 is how it's done in GStreamer.
15455 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15457 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15459 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15460 decoder: vp9: Fix crop rectangle setting
15461 Align with software vp9dec behaviour: Add crop rectangle
15462 only if display_width/display_height is less than the
15463 frame_hdr->width/frame_hdr->height
15465 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15467 * gst/vaapi/gstvaapidecode.c:
15468 vaapidecode: Fix renegotiation for resolution change
15469 Always renegotiate the pool if the immediate frame which going
15470 to be pushed has a different un-cropped resolution than the already
15473 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15475 * gst/vaapi/gstvaapipluginbase.h:
15476 plugins: use the same pre-processor macro
15477 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
15478 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
15479 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
15480 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
15481 in the header file.
15482 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15484 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15486 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15487 decoder: update a deprecated function
15488 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
15489 deprecated since GStreamer 1.0.
15490 This patch replace it with gst_adapter_prev_pts()
15491 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15493 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15496 build: honor configure's cache
15497 The user might enable --config-cache when calling configure script. If so, our
15498 configuration variables will not be correctly calculated.
15499 This patch extracts the value of our variables either from the cache or from
15500 the operation result.
15501 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15503 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15506 build: use common version variables
15507 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15509 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15512 build: hard-code an unneeded macro
15513 That macro is required for EGL's dynamic module loading, but since
15514 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
15515 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
15516 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15518 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15521 build: refactorization of dependency tracking
15522 This patch tries to avoid branching in configure.ac using a more functional
15523 approach in macros usage.
15524 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15526 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15529 build: check for OpenGL either GLX or EGL are requested
15530 Refactor some code in configure.ac to centralize $enable_opengl definition.
15531 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15533 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15536 build: indent and add square braces
15537 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15539 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15542 build: upgrade autotools version dependency
15543 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15545 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15548 build: enhance string comparisons
15549 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
15550 the string is empty or undefined.
15551 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15553 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15556 build: remove unused variables
15557 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15559 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15562 build: remove check for old version of gstreamer
15563 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15565 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15568 build: remove GStreamer's parsers checks
15569 This patch removes almost all the parsers check since they are already in place,
15570 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
15571 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15573 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15576 * gst/vaapi/Makefile.am:
15577 build: add gstreamer-pbutils dependency
15578 This dependency was added in gstvaapidecodebin with the call
15579 gst_missing_element_message_new().
15580 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15582 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15585 build: fix variable declaration
15586 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15588 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15590 * gst-libs/gst/vaapi/Makefile.am:
15591 build: fix when HEVC decoder is disabled
15592 This a very pathological situation: when we have a HEVC encoder but not a HEVC
15594 The encoder needs functions that are only available when the decoder is
15596 This patch moves the utils functions into the generic sources, such as the
15598 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15600 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15602 * gst/vaapi/Makefile.am:
15603 build: remove unused EGL specific sources
15604 These Makefile variables are not used at all.
15605 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15607 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15609 * gst/vaapi/Makefile.am:
15610 build: remove check for GStreamer 1.2
15611 Since we are working for current stable GStreamer 1.6
15612 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15614 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15616 * gst/vaapi/gstvaapiparse.h:
15617 Remove more video parser crufts
15618 This header is not used anymore since it declares parsers that are
15619 already in GStreamer 1.6
15620 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15622 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
15625 * docs/reference/Makefile.am:
15626 * docs/reference/libs/Makefile.am:
15627 * docs/reference/libs/libs-docs.xml.in:
15628 * docs/reference/libs/libs-overrides.txt:
15629 * docs/reference/libs/libs-sections.txt:
15630 docs: remove library documentation which is non-public now
15631 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15633 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
15637 * debian.upstream/Makefile.am:
15638 * debian.upstream/changelog.in:
15639 * debian.upstream/compat:
15640 * debian.upstream/control.in:
15641 * debian.upstream/copyright:
15642 * debian.upstream/gstreamer-vaapi-doc.install.in:
15643 * debian.upstream/gstreamer-vaapi.install.in:
15644 * debian.upstream/rules:
15645 Remove debian.upstream packaging
15646 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15648 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15650 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15651 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15652 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15653 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15654 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15655 * gst/vaapi/gstcompat.h:
15656 * gst/vaapi/gstvaapi.c:
15657 * gst/vaapi/gstvaapidecode.c:
15658 * gst/vaapi/gstvaapiencode.c:
15659 * gst/vaapi/gstvaapipluginbase.c:
15660 * gst/vaapi/gstvaapipluginbase.h:
15661 * gst/vaapi/gstvaapipluginutil.c:
15662 * gst/vaapi/gstvaapisink.c:
15663 Remove old gst version guards
15664 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
15665 all the old GStreamer version guards.
15666 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15668 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15670 * gst/vaapi/gstvaapiparse.c:
15671 Remove video parser crufts
15672 We forgot to remove gstvaapiparse.c when we removed all the videoparser
15674 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15676 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15678 * docs/reference/libs/Makefile.am:
15679 * docs/reference/plugins/Makefile.am:
15680 * gst-libs/gst/vaapi/Makefile.am:
15681 * gst/vaapi/Makefile.am:
15682 * tests/Makefile.am:
15683 libs: remove versioning
15684 Since we don't install libraries anymore, it makes no sense to keep
15685 versioning them according to the gstreamer's version.
15686 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15688 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15691 * debian.upstream/Makefile.am:
15692 * debian.upstream/control.in:
15693 * debian.upstream/libgstvaapi-dev.install.in:
15694 * debian.upstream/libgstvaapi-drm.install.in:
15695 * debian.upstream/libgstvaapi-glx.install.in:
15696 * debian.upstream/libgstvaapi-wayland.install.in:
15697 * debian.upstream/libgstvaapi-x11.install.in:
15698 * debian.upstream/libgstvaapi.install.in:
15699 * gst-libs/gst/vaapi/Makefile.am:
15700 * tests/Makefile.am:
15701 libs: make libraries no installables
15702 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15704 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15706 * debian.upstream/libgstvaapi-dev.install.in:
15707 * gst-libs/gst/vaapi/Makefile.am:
15708 Do not install libgstvaapi headers
15709 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15711 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15715 * patches/Makefile.am:
15716 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15717 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15718 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15719 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
15720 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15721 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15722 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15723 * patches/videoparsers/Makefile.am:
15724 * patches/videoparsers/series.frag:
15725 Remove videoparser patches
15727 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15731 * debian.upstream/libgstvaapi-dev.install.in:
15732 * pkgconfig/Makefile.am:
15733 * pkgconfig/gstreamer-vaapi-drm.pc.in:
15734 * pkgconfig/gstreamer-vaapi-glx.pc.in:
15735 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15736 * pkgconfig/gstreamer-vaapi-x11.pc.in:
15737 * pkgconfig/gstreamer-vaapi.pc.in:
15738 Remove pkg-config files
15739 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15741 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15747 * ext/codecparsers:
15748 * gst-libs/gst/Makefile.am:
15749 * gst-libs/gst/codecparsers/Makefile.am:
15750 * gst-libs/gst/vaapi/Makefile.am:
15751 * gst/vaapi/Makefile.am:
15752 Remove codecparsers submodule
15753 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15755 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15760 * debian.upstream/libgstvaapi.install.in:
15762 * ext/libvpx/Makefile.am:
15763 * ext/libvpx/gstlibvpx.c:
15764 * ext/libvpx/gstlibvpx.h:
15765 * ext/libvpx/libgstcodecparsers_vpx.vers:
15766 * ext/libvpx/sources.frag:
15767 * ext/libvpx/upstream:
15768 * gst-libs/gst/codecparsers/Makefile.am:
15769 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
15770 Remove libvpx submodule
15771 We will be using upstream codecparsers always.
15772 No more internal libvpx !
15774 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15777 build: fix check for GstJpegParser
15778 Right now the local JPEG parser is always compiled because the check for the
15779 upstreamed version is broken: it looks for an non existent symbol:
15781 This patch changes that check for< GstJpegFrameHdr.
15782 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15784 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
15786 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15787 wayland: free the frame in frame_release_callback()
15788 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
15789 decouple wl_buffer from frame).
15790 Otherwise the frame may be overwritten while it is still used by the
15792 The frame done callback (frame_done_callback()) is called, when the
15793 compositor is done processing the frame and hands it to the hardware.
15794 The buffer release callback (frame_release_callback()) is called when the
15795 buffer memory is no longer used.
15796 This can be quite some time later: E.g. if weston (with the DRM backend)
15797 puts the buffer on a hardware plane, then then buffer release callback is
15798 called when the kernel is done with the buffer. This is usually when the
15799 next frame is shown, so most likely after the frame done callback for the
15801 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
15802 destroy()" the mentioned possible leak should no longer be a problem, so
15803 reverting this change should cause no leaking buffers.
15804 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15805 https://bugzilla.gnome.org/show_bug.cgi?id=758848
15806 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15808 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15810 * gst/vaapi/gstvaapipostproc.c:
15811 vaapipostproc: check ANY caps at transform_caps()
15812 When transforming downstream caps we should check for ANY caps from peer pad,
15813 otherwise we get a segmentation fault.
15814 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15815 https://bugzilla.gnome.org/show_bug.cgi?id=759893
15817 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15819 * gst/vaapi/gstvaapisink.c:
15820 vaapisink: ignore frame if its upload failed
15821 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
15822 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
15823 ignored by the vaapisink, leading to a segmentation fault.
15824 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
15825 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
15826 segmentation fault, but doing and effort to continue rendering. This is
15827 the same behavior of ximagesink.
15828 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15829 https://bugzilla.gnome.org/show_bug.cgi?id=759332
15831 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
15834 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
15835 https://bugzilla.gnome.org/show_bug.cgi?id=759184
15837 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15839 * gst-libs/gst/vaapi/gstvaapicontext.c:
15840 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15841 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15842 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
15843 Add 10 HEVC 10 bit decoding support
15844 Only supporting vaapidecode ! vaapisink combination for now.
15845 Missing dependencies:
15846 1: No support for P010 video format in GStreamer
15847 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
15848 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
15849 through GstVideoMeta.
15850 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
15851 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
15852 of the surfaces is implementation (driver) defined, which is P010.
15854 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15856 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15857 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
15858 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
15859 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
15860 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
15861 chroam type and dimensions. The underlying format of the surfaces is
15862 implementation (driver) defined.
15864 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15866 * gst-libs/gst/vaapi/gstvaapisurface.h:
15867 * gst-libs/gst/vaapi/gstvaapiutils.c:
15868 Add definitions for YUV420 with more than 8 bits per channel
15870 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15872 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15873 gstvaapiporfile: Fix string representation of HEVCMain10 profile
15875 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15878 Bump version for development
15880 === release 0.7.0 ===
15882 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15887 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15892 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15897 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15902 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15904 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15905 texture: detect GL version and use the proper API
15906 When receiving the texture from the application or the video sink, we must
15907 know it size and border. To query the texture the API has changed according to
15908 the OpenGL version used in the GL context of the application/vsink.
15909 This patch checks the current context API type and queries the texture
15910 according to this detected API.
15911 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15912 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15914 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15916 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15917 texture: check for expected target and format
15918 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
15919 formats GL_RGBA or GL_BGRA.
15920 This patch adds a debugging verification of those values.
15921 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15922 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15924 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15926 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15927 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15928 libs: add gl3_bind_texture_2d()
15929 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
15930 needed. In particular, the Intel's Mesa implementation complains if it is
15932 This patch add a new binding function for 2D textures, without enabling
15933 gl3_bind_texture_2d()[2].
15934 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
15935 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
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:14:45 +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 gl_get_current_api()
15944 In order to know which OpenGL API use, we must detect the API type of current
15945 context. This patch adds the function gl_get_current_api() which returns the
15947 This function is an adaptation of gst_gl_context_get_current_gl_api() from
15949 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15950 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15952 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15955 * gst-libs/gst/vaapi/Makefile.am:
15956 build: Add gmodule dependency for libgstvaapi_egl
15957 https://bugzilla.gnome.org/show_bug.cgi?id=756259
15959 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15961 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15962 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15963 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15964 * patches/videoparsers/series.frag:
15965 patches/videoparsers: h264: Disable passthorugh mode enabling
15966 This is a quick fix for regression introduced by the upstream
15967 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
15968 The patch is disabling the passthrough mode, otherwise it will
15969 break multi-layer mvc stream parsing.
15970 https://bugzilla.gnome.org/show_bug.cgi?id=758656
15972 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15974 * gst/vaapi/Makefile.am:
15975 * patches/videoparsers/Makefile.am:
15976 * patches/videoparsers/series.frag:
15977 build: add gsth265parse patches conditionally
15978 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
15979 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
15981 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15982 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15984 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15986 * gst/vaapi/Makefile.am:
15987 build: declare correctly parse lib built files
15988 This is a continuation of commit fc8a0d12
15989 When declaring BUILT_SOURCES, those files should not be distributed. This
15990 patch avoids the distribution of the generated source code.
15991 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15992 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15994 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15996 * ext/libvpx/sources.frag:
15997 build: libvpx: Add missing source file
15999 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16001 * gst/vaapi/gstvaapipostproc.c:
16002 vaapipostproc: Correctly detect the caps change
16003 This is a quick fix for regression introuduced by the
16004 commit 757833230bc73b8e3b4e31649e4618ba802bea51
16005 With out this, the gst_vaapipostproc_create() will
16007 https://bugzilla.gnome.org/show_bug.cgi?id=758543
16009 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16011 * ext/libvpx/Makefile.am:
16012 * ext/libvpx/sources.frag:
16013 build: libvpx: update the sources lists
16014 `make dist` broke since commit f06798 (libvpx: Update the submodule to
16015 libvpx-1.4.0) because the sources.frag does not contain all the module
16017 This patch updates thoroughly the sources.
16018 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16019 https://bugzilla.gnome.org/show_bug.cgi?id=755525
16021 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16023 * gst/vaapi/gstvaapipostproc.c:
16024 vaapipostproc: don't set caps change at first set
16025 When the source caps change, the filter is destroyed and recreated.
16026 Nonetheless, this happens every time the vaapipostproc starts, since the caps
16027 change detection algorithm does not take in consideration when the caps are
16029 This patch intents to be an optimization, to avoid a useless filter
16030 destroy-creation cycle when the sources caps are set for first time.
16031 The new helper function video_info_update() is a refactorization to avoid
16033 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16034 https://bugzilla.gnome.org/show_bug.cgi?id=758007
16036 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16038 * gst/vaapi/gstvaapipostproc.c:
16039 vaapipostproc: params video_info_changed() callers
16040 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
16041 swapped the the order. This didn't raise problems since the comparison of both
16042 structures were not affected by its semantics.
16043 But still it would be better to fix this to keep the coherence of the code.
16044 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16045 https://bugzilla.gnome.org/show_bug.cgi?id=758007
16047 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16049 * gst/vaapi/Makefile.am:
16050 build: declare real built files
16051 When runnig the `make dist` target from a clean tree, it fails because
16052 if could not find the copied files from codecparsers submodule.
16053 They weren't copied because they weren't declared as built sources.
16054 This patch removes the stamp mechanism and use the actual file list to copy
16055 as the built sources. Also it fixes the duplication of the parser files.
16056 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16057 https://bugzilla.gnome.org/show_bug.cgi?id=755525
16059 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16061 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16062 decoder: vp9: Fix last/golden/altref frame index setting
16063 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
16064 based on what ever reference frame indices encoded in frame header.
16066 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16068 * debian.upstream/rules:
16069 debian: remove custom parallel compilation
16070 In order to build a debian package with upstream source, the user should
16073 cp -a debian.upstream debian
16074 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
16075 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
16076 way to make a parallel build (-j8 in this case).
16077 This commit removes the script in debian/rules that detects the number of
16078 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
16079 official in debian.
16080 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16081 https://bugzilla.gnome.org/show_bug.cgi?id=754087
16083 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16085 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16086 decoder: vp9: Fix PTS calculation of cloned frames
16088 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16090 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16091 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
16092 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
16093 gstvaapidecoder base calss is reponsible for handling those frames later on.
16094 No need for explicit verification of frame header's show_frame in order to
16095 do picture outputing.
16097 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16099 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16100 decoder: vp9: Fix ref picture update while doing repeat frame
16101 Don't try to do frame decoding and reference picture update
16102 while receiving a vp9 frame having show_existing_frame flag
16105 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16107 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16108 decoder: vp9: Add repeat-frame display handling
16109 If vp9 frame header come up with show_existing_frame flag set,
16110 we should duplicate the existing decoded frame as current frame to
16113 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16115 * gst/vaapi/gstvaapidecodebin.c:
16116 vaapidecodebin: add me as element co-author
16117 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16118 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16120 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16122 * gst/vaapi/gstvaapidecodebin.c:
16123 vaapidecodebin: try to get display from decoder
16124 Rather than create a dummy display, if none has propagated as a context, we
16125 should try to get the one from vaapidecode.
16126 As the bin is already in READY state, the vaapidecode should be also in that
16127 state. That means that the contexts have been negotiated, and it should have
16129 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16130 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16132 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16134 * gst/vaapi/gstvaapidecodebin.c:
16135 * gst/vaapi/gstvaapidecodebin.h:
16136 vaapidecodebin: add postprocessor dynamically
16137 The former approach to left the bin unfinished has some problems: the context
16138 cannot be shared because the vaapidecode is unlinked in many cases, leading to
16139 creating a VADisplay twice.
16140 Initially the bin is fully functional, constructed as
16141 (-----------------------------------)
16143 | (-------------) (-------) |
16144 |<--| vaapidecode |--->| queue |--->|
16145 | (-------------) (-------) |
16146 (-----------------------------------)
16147 When the context is shared and the VADisplay has VPP capabilities, before
16148 changing to READY state, the bin is reconfigured dynamically, adding the
16149 vaapipostproc element afeter the queue:
16150 (--------------------------------------------------------)
16152 | (-------------) (-------) (---------------) |
16153 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
16154 | (-------------) (-------) (---------------) |
16155 (--------------------------------------------------------)
16156 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16157 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16159 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16161 * gst/vaapi/gstvaapidecodebin.c:
16162 vaapidecodebin: delay the bin configuration
16163 Delay the bin configuration until changing to READY state. This is because we
16164 should add the vaapipostproc element until the vaapidecode has emitted the
16165 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
16167 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16168 https://bugzilla.gnome.org/show_bug.cgi?id=757957
16170 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16172 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16173 decoder: vp9: Add crop rectangle support.
16174 Set crop rectange if:
16175 There is display_width and display_height which is different from actual width/height
16177 The changed resolution is less than the actual configured dimension of surfaces
16179 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16181 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16182 decoder: vp9: Fix the context and surface pool reset for multi resolution video
16183 Unlike other decoders, vp9 decoder doesn't need to reset the
16184 whole context and surfaces for each resolution change. Context
16185 reset only needed if resolution of any frame is greater than
16186 what actullay configured. There are streams where a bigger
16187 resolution set in ivf header or webm header but actual resolution
16188 of all frames are less. Also it is possible to have inter-prediction
16189 between these multi resolution frames.
16191 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16193 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16194 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
16195 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
16196 Preliminary fix for supproting multi resolution video decode.
16198 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16200 * gst/vaapi/gstvaapidecode.c:
16201 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
16203 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16205 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16206 decoder: vp9: Set lossless flag from frame header
16208 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16210 * ext/codecparsers:
16211 codecparsers: Update to gst-vaapi-branch d9f25
16212 d9f2527: codecparsers: vp9: Set lossless flag in frame header
16214 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16216 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16217 libs: vp9: remove unused symbols
16218 clang complains about a couple variables and one label which were not
16219 used. This patch removes them.
16220 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16221 https://bugzilla.gnome.org/show_bug.cgi?id=757958
16223 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16225 * ext/codecparsers:
16226 codecparsers: Update to gst-vaapi-branch da251bb
16227 da251bb: codecparsers: vp9: Optimize the memory allocation
16228 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
16230 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16232 * gst/vaapi/gstvaapipluginbase.c:
16233 * gst/vaapi/gstvaapipluginbase.h:
16234 plugin: guard pointers to pad query functions
16235 Since gstreamer 1.4 is not required to have pad query functions if the query
16237 This patch guards out the pad query functions for gstreamer < 1.4
16238 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16239 https://bugzilla.gnome.org/show_bug.cgi?id=757629
16241 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16243 * gst/vaapi/gstvaapiencode.c:
16244 vaapiencode: use pad query vmethods
16245 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
16246 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
16247 while keeps support for previous versions of gstreamer.
16248 This patch is relevant since GstVideoEncoder takes care of other queries that
16249 we are currently ignoring.
16250 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16251 https://bugzilla.gnome.org/show_bug.cgi?id=757629
16253 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16255 * gst/vaapi/gstvaapidecode.c:
16256 vaapidecode: return pad's template caps if no display
16257 A caps query can occur before the element has a display. In that case, the
16258 element can return its pad's template. But when the element already has a
16259 display, and the caps probe fails, the element shall return an empty caps, so
16260 the auto-plug could try with another decoder.
16261 If the element has a display and the caps probe works, then the computed caps
16262 should be returned.
16263 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16264 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16266 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16268 * gst/vaapi/gstvaapidecode.c:
16269 * gst/vaapi/gstvaapisink.c:
16270 plugins: don't create display at caps query
16271 Caps query can happen before the element has a bus. The display creation should
16272 be should occur on the context negotiation, when the bus is already configured.
16273 Then at caps query no display should be created.
16274 Instead of force the display creation, we graciously fail the allowed_caps()
16276 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
16277 basetransform descendant, seems to be not affected by this, nor the encoders.
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-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16283 * gst/vaapi/gstvaapidecode.c:
16284 * gst/vaapi/gstvaapiencode.c:
16285 * gst/vaapi/gstvaapipluginutil.c:
16286 * gst/vaapi/gstvaapipluginutil.h:
16287 * gst/vaapi/gstvaapipostproc.c:
16288 * gst/vaapi/gstvaapisink.c:
16289 plugins: fix context query handling
16290 The current context query handling design is flawed: the function
16291 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
16292 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
16293 pad query function should handle differently each case.
16294 This patch changes the gst_vaapi_reply_to_query() for
16295 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
16296 to match the correct context query handling.
16297 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16298 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16300 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16302 * gst/vaapi/gstvaapipluginutil.c:
16303 plugin: don't lose previous context at query
16304 When processing the GST_CONTEXT_QUERY we should not lose the previous
16305 context in the query, we should only add our display structure.
16306 This patch copies the old context, if it is there, and stamp our display on
16307 it. Otherwise, a new context is created.
16308 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16309 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16311 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16313 * gst/vaapi/gstvaapivideocontext.c:
16314 * gst/vaapi/gstvaapivideocontext.h:
16315 vaapivideocontext: add gst_vaapi_video_context_set_display()
16316 This function set the display to an already created context. This function is
16317 going to be used later.
16318 Also, gst_vaapi_video_context_new_with_display() now uses this function.
16319 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16320 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16322 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16324 * gst/vaapi/gstvaapipluginutil.c:
16325 * gst/vaapi/gstvaapivideocontext.c:
16326 * gst/vaapi/gstvaapivideocontext.h:
16327 plugins: check if display is set in sync
16328 Since the context messages are sync'ed, the display assignation happens in the
16329 same thread, hence we can know if the display was found or not as soon we call
16331 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
16332 as a new parameter, the address of the plugin's display, and reports back if
16333 the display was found and set.
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:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16339 * gst/vaapi/gstvaapipluginutil.c:
16340 * gst/vaapi/gstvaapivideocontext.c:
16341 plugins: set display through context
16342 Instead of setting the display to the plugin directly after its creation, do
16343 it through the gstreamer's context mechanism, avoiding double assignations.
16344 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16345 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16347 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16349 * gst/vaapi/gstvaapivideocontext.c:
16350 vaapivideocontext: rename context structure
16351 The context structure is named "display" which is too generic. The contrary
16352 happens, for example, with GstGL, what uses the same name as the context, and
16353 its logs make more sense.
16354 This patch renames the context structure with the same name as the
16355 context, thus GST_PTR_FORMAT can pretty print it.
16356 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16358 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16360 * gst/vaapi/gstvaapivideocontext.c:
16361 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
16362 First, refactorized run_context_query() into _gst_context_run_query(), adding
16363 a new parameter: the pad direction, in order to simplify the code.
16364 Second, added a new helper function: _gst_context_query(), which is a generic
16365 context query function. It isolates the operation of running the query and
16366 sets the context if found, also it enhances the logs.
16367 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
16368 future this helper function will be merged into the core libraries of
16370 Finally, gst_vaapi_video_context_prepare() was rewritten to use
16371 _gst_context_query().
16372 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16373 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16375 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16377 * gst/vaapi/gstvaapivideocontext.c:
16378 vaapivideocontext: refactor context category debug
16379 Refactor the extraction GST_CAT_CONTEXT logging using a only once
16380 initializator, so we could get the debug category from different code
16382 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16383 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16385 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16387 * gst/vaapi/gstvaapivideocontext.c:
16388 gstvaapivideocontext: fix indentation
16389 gst-indent does not handle correctly some expression like function
16390 declaration with attributes, breaking the following expressions.
16391 This patch makes gst-indent to ignore the attributed function
16392 declartion so the followed function definition is not mangled, such
16393 as happened in commit b4154a
16394 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16395 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16397 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16399 * gst/vaapi/gstvaapipluginbase.c:
16400 plugin: chain up set_context() vmethod
16401 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
16402 the parent class in order to broadcast all its contexts when the element
16403 is added into a bin:
16404 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
16405 There is no need to guard the call, because before GStreamer 1.7, the
16406 set_context() vmethod was NULL in the element class, hence the conditional
16408 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16409 https://bugzilla.gnome.org/show_bug.cgi?id=757598
16411 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16413 * tests/simple-encoder.c:
16414 tests: simple-encoder: remove dead code
16415 The caps creation for codec state configuration is not used. Let's remove it.
16416 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16418 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16420 * gst/vaapi/gstvaapidecodebin.c:
16421 vaapidecodebin: fix a leaked display instance
16422 The display returned by gst_vaapi_video_context_get_display() increments the
16423 references. Thus, we have to unref the returned display.
16424 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16425 https://bugzilla.gnome.org/show_bug.cgi?id=757595
16427 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16429 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16430 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16431 libs: remove unneeded headers
16432 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
16433 required to include them in the header. It is not also required to include
16434 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
16435 exposes their structures (e.g. GLXPixmap).
16436 Nonetheless, glext.h neither glxext.h are required to include, they are
16437 already included conditionally by gl.h and glx.h, respectively.
16438 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16439 https://bugzilla.gnome.org/show_bug.cgi?id=757577
16441 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16443 * ext/codecparsers:
16444 codecparsers: Update to gst-vaapi-branch 0ea6792
16445 0ea6792: codecparsers: vp9: Add header comments
16446 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
16448 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16450 * gst/vaapi/gstvaapidecode.c:
16451 VP9: plugins: Add VP9 decoder
16453 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16455 * gst-libs/gst/vaapi/Makefile.am:
16456 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16457 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
16458 VP9: libgstvaapi: Add VP9 decoder
16460 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16462 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16463 * gst-libs/gst/vaapi/gstvaapiprofile.h:
16464 VP9: gstvaapiprofile: Add profile definitions
16466 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16469 VP9: build: Check availability of vp9 decoder APIs
16471 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16475 * gst-libs/gst/codecparsers/Makefile.am:
16476 VP9: Allow building vp9 codecparser internally
16478 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16480 * ext/codecparsers:
16481 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
16482 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
16483 e7d9217: codecparser: h264: initialize parsing structures
16484 403d400: codecparser: h265: initialize parsing structures
16486 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16489 configure.ac: don't use an undefined variable
16490 If the environment lacks of gstreamer development packages, this error will
16491 be reported to the user: "gstreamer- was not found"
16492 This is because we are using an undefined variable in the printed message. The
16493 fix simple changes the variable for the hard-coded string "1.0".
16494 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16495 https://bugzilla.gnome.org/show_bug.cgi?id=757283
16497 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16499 * gst/vaapi/gstvaapidecode.c:
16500 vaapidecode: relax guards for memory:VASurface capsfeature
16501 Though caps features are supported since GStreamer 1.2, there are some
16502 issues with the features caps negotiation in that version. Nonetheless,
16503 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
16504 feature negotiation is relaxed for GStreamer 1.4.
16505 The guard is the same as in vaapisink's caps template.
16506 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16507 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16509 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16511 * gst/vaapi/gstvaapidecode.c:
16512 vaapidecode: decide allocation doesn't update srccaps
16513 The received caps query will bring the already negotiated caps, so they are
16514 not expected to change.
16515 This patch removes this verification which is dead code path.
16516 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16517 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16519 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16521 * gst/vaapi/gstvaapidecode.c:
16522 * gst/vaapi/gstvaapipluginutil.c:
16523 * gst/vaapi/gstvaapipluginutil.h:
16524 vaapidecode: use caps to check the features
16525 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
16526 expensive, we check the caps from the allocation query, to check the
16527 negotiated feature.
16528 In order to do this verification a new utility function has been implemented:
16529 gst_vaapi_caps_feature_contains().
16530 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
16531 have been refactorized.
16532 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16533 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16535 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16537 * gst/vaapi/gstvaapidecode.c:
16538 vaapidecode: set format before decide allocation
16539 There is a regression from commit 3d8e5e. It was expected the buffer pool
16540 allocation occur before the caps negotiation, but it is not.
16541 This patch fixes this regression: the caps negotiation is done regardless the
16542 allocation query from downstream.
16543 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16544 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16546 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16549 build: check for patch and fix yasm check
16550 Add configure checking for GNU patch tools and fixed configure
16551 checking YASM to correct sequence.
16552 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16553 https://bugzilla.gnome.org/show_bug.cgi?id=756690
16555 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16557 * ext/libvpx/Makefile.am:
16558 build: Remove disable-md5 option for libvpx build
16559 The configure option --disable-md5 was provided in libvpx-1.3.0 which
16560 has been removed in 1.4.0.
16562 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16564 * ext/libvpx/upstream:
16565 libvpx: Update the submodule to libvpx-1.4.0
16566 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
16568 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16571 configure: mark support for GStreamer 1.2 as obsolete.
16572 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
16573 Our goal is to support the last two stable versions of GStreamer which
16574 are 1.4 and 1.6 at the moment.
16575 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
16576 release and will get rid of those in 0.8.
16578 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16580 * gst/vaapi/gstvaapidecode.c:
16581 vaapidecode: Fix buffer copy assertion
16582 Don't try to copy the NULL buffer-codec_data.
16584 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16587 build: allow builds against GStreamer 1.7.x
16588 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16590 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16592 * gst/vaapi/gstcompat.h:
16593 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
16594 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
16595 add an implementation if gstreamer-vaapi is linked to previous versions.
16596 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16598 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16600 * gst/vaapi/gstvaapidecode.c:
16601 vaapidecode: simplify copy of GstVideoCodecState
16602 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16604 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16606 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
16607 * patches/videoparsers/series.frag:
16608 patches/videoparsers: h265parser: more API fences
16609 Add more API fences according with its version and refresh the patch.
16610 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16611 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16613 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16615 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
16616 * patches/videoparsers/series.frag:
16617 patches/videoparsers: h265parser: rename patch keeping number
16618 Refresh the patch and rename it in order to keep the patch number.
16619 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16620 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16622 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16624 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16625 patches/videoparsers: h264parser: more API fences and refresh
16626 Add more API fences according with its version and refresh the patch.
16627 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16628 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16630 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16632 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
16633 * patches/videoparsers/series.frag:
16634 patches/videoparsers: h264parser: fix description and refresh
16635 Fix a typo in the patch description and refresh it in order to avoid the
16636 creation of .orig files and break the distcheck target.
16637 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16638 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16640 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16642 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16643 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16644 patches/videoparsers: h264parser: refresh patches
16645 In order to avoid the creation of .orig files and break the distcheck target.
16646 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16647 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16649 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16651 * gst/vaapi/Makefile.am:
16652 build: link libgstvaapi_parse against codec parser
16653 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
16654 when running configure.
16655 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
16656 need it if builtin codec parsers are disabled.
16657 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
16658 compilation. If builtin codec parsers are enable, this variable is null, so it
16659 should work using libgstvaapi, as normal.
16660 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16661 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16663 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16666 build: verify for H264 MVC and H265 SPS
16667 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
16668 the required symbols for those were added in GStreamer 1.5
16669 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
16670 parsers, the compilation fails, because the lack of those symbols.
16671 This patch verifies if the installed H264 and H265 parsers have those symbols. If
16672 they do not, the specific built in codec parsers are enabled and used.
16673 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16674 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16676 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16678 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16679 decoder: h264: initialize PPS's slice_group_id
16680 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
16681 so it contains random data.
16682 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
16683 pointer uninitialized, leading to a segmentation fault when the memory is
16685 This patch prevents this by initializing the slice_group_id before the PPS
16687 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16688 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16690 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
16692 * gst/vaapi/gstvaapidecode.c:
16693 vaapidecode: proper numerator and denominator for forced latency framerate
16694 https://bugzilla.gnome.org/show_bug.cgi?id=755040
16696 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16698 * ext/codecparsers:
16699 codecparsers: Update to gst-vaapi-branch commit f9e284b
16700 dae1a84: h264parse/h265parse: Fix negotiation crash
16701 45a9f8a: codecparsers: h265 : Fix default scaling list values
16702 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
16703 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16705 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16707 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16708 decoder: hevc: Don't flush dpb for EOS/EOB nal
16709 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
16710 the dpb_add() itself will handle the flusing(if needed) of dpb
16711 for end of sequence and end of bitstream.
16712 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16714 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16716 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16717 decoder: hevc: Fix the dpb_add() based on C.5.2.3
16718 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
16719 just after the PicLatencyCnt setting of existing dpb frames.
16720 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16722 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16724 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16725 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
16726 This fix is based on the V3 vesion of spec which was missing in older versions.
16727 When the current picture has PicOutputFlag equal to 1, for each picture in the
16728 DPB that is marked as "needed for output" and follows the current picture in output order,
16729 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
16730 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16732 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16734 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16735 decoder: h265: Fix indentation
16737 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
16739 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16740 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16741 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16742 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16743 * gst/vaapi/gstvaapidecode.c:
16744 * gst/vaapi/gstvaapipluginutil.c:
16745 multiview: initial attempt at stereo/multiview support
16746 Add support for marking caps and buffers for multiview or
16747 stereoscopic output.
16748 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16750 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16752 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16753 decoder: hevc: remove unused functions
16754 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16755 https://bugzilla.gnome.org/show_bug.cgi?id=754250
16757 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16759 * gst/vaapi/gstvaapidecode.c:
16760 vaapidecode: remove (another) unused variable
16761 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16763 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16765 * gst/vaapi/gstvaapidecode.c:
16766 vaapidecode: remove unused variable
16767 Thus silence the compilation warnings.
16769 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16771 * gst/vaapi/gstvaapidecode.c:
16772 vaapidecode: compilation fix
16773 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
16774 compilation where the toolchain uses restrictive flags as clang.
16775 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16777 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16779 * gst/vaapi/gstvaapidecode.c:
16780 vaapidecode: renegotiate if caps are not equal
16781 The use of gst_caps_is_always_compatible() for this optimization may lead to
16782 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
16783 if it is required a re-negotiation.
16784 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16785 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16787 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16789 * gst/vaapi/gstvaapidecode.c:
16790 * gst/vaapi/gstvaapidecode.h:
16791 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
16792 Delaying the pool re-negotiation untill we push all decoded (and queued)
16793 frames downstream. Otherwise for the multi-resolution videos, the
16794 GstVideoVideoMemory will be having wrong resolution and which leads
16795 to nasty behaviours, especially when using software renderers.
16796 sample media file: RAP_B_Bossen_1.bin
16798 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
16799 get the final resoultion 416x240.
16800 Starting from 25 th frame, the resolution will change to 416x240. But parser
16801 elements won't report this since the effective croped resolution is same in
16802 both cases. Here the core libgstvaapi will detect this through it's internal
16803 parsing and do all context/pool destory/reset stuffs. Also it will notify this
16804 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
16805 immediately, this will not sync with the resolution of already decoded and queued
16806 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
16807 software renderer). So we have to delay the pool renegotiation in vaapidecode,
16808 untill we push all decoded frames downstream.
16809 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16811 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16813 * gst/vaapi/gstvaapidecode.c:
16814 vaapidecode: Always keep a copy of input codec state
16815 Currently we are sharing the input GstVideoCodecState with
16816 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
16817 each caps change. This is troublesome in many cases, for eg: if
16818 resoultion changes with in a singe stream. Because, when ever there
16819 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
16820 fields with new resolution, but since we are using the same codecstate (ref)
16821 in gstvaapidecode.c, the caps check for input caps change will always fail.
16822 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16824 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16826 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16827 decoder: hevc: Fix the scaling list scan order
16828 The default scan order of scaling lists are up-right-diagonal
16829 as per hevc specification. Use the newly implemented
16830 uprightdiagonal_to_raster conversion codecparser APIs to
16831 get the the scaling_list values in raster order, which is
16832 what the VA intel driver requires.
16834 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16836 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16837 decoder: hevc: sync with the codecparser changes
16838 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
16839 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
16841 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16843 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16844 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16846 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16848 * ext/codecparsers:
16849 codecparsers: Update to gst-vaapi-branch commit 69550f1
16850 c207c6d: codecparsers: h265: Fix tile row and column parsing
16851 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
16852 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16853 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
16854 2f0932b: h264parse: Clear SPS info after processing
16855 f57d6b0: videoparsers: enable accept-template flag
16857 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16859 * debian.upstream/control.in:
16860 debian: add yasm as build dependency
16861 As the compilation of libvpx (for vp8 parser) is enabled by default,
16862 yasm is required by default too.
16863 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16865 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16867 * debian.upstream/rules:
16868 debian: remove --with-gstreamer-api option
16869 It is no longer valid in gstreamer-vaapi.
16870 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16871 [removed unused GST_API_VERSION variable]
16872 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16873 https://bugzilla.gnome.org/show_bug.cgi?id=753618
16875 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16877 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16878 wayland: rename is_cancelled to sync_failed
16879 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
16880 sense. This commit renames this variable to sync_failed.
16882 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
16884 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16885 wayland: Don't return GST_FLOW_ERROR on flushing
16886 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
16887 return FALSE which makes gst_vaapi_window_wayland_render() return
16888 FALSE which ends up posting an ERROR message in
16889 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
16891 https://bugzilla.gnome.org/show_bug.cgi?id=753598
16893 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16895 * gst/vaapi/gstvaapi.c:
16896 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
16897 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
16899 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16901 * gst/vaapi/gstvaapidecodebin.c:
16902 vaapidecodebin: check for postproc instance
16903 If the VPP's deinterlace-method is set, first we should check if the postproc
16904 is already instanced to set it. Otherwise we just store it until the VPP is
16905 added into the bin.
16906 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16907 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16909 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16911 * gst/vaapi/gstvaapidecodebin.c:
16912 * gst/vaapi/gstvaapipluginutil.c:
16913 * gst/vaapi/gstvaapipluginutil.h:
16914 vaapidecodebin: ensure VPP before going to READY
16915 There are sometimes that the VA-API display context is not shared among the
16916 pipeline, but it is important to know it before going to READY state (when the
16917 pipeline is already linked).
16918 One instance of this case is this:
16919 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
16920 This patch adds a new function in gstvaapipluginutil called
16921 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
16922 display, which only will be used for verify if the VAEntrypointVideoProc is
16923 available by the hardware. Afterwards, it should be unrefed.
16924 If the vaapidecodebin is going to READY state, and the element still doesn't
16925 know if VPP is available, the last resort is to create a new instance of the
16926 VA-API display and test for it.
16927 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16929 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16931 * gst/vaapi/gstvaapidecodebin.c:
16932 vaapidecodebin: post an error message if fails
16933 If the construction of the bin fails, post an error message in the bus.
16934 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16935 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16937 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16939 * gst/vaapi/gstvaapidecodebin.c:
16940 * gst/vaapi/gstvaapidecodebin.h:
16941 vaapidecodebin: has_vpp as a tri-state variable
16942 has_vpp can be UNKNOWN while the context message hasn't being received.
16943 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16944 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16946 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16948 * gst/vaapi/gstvaapivideomemory.c:
16949 gstvaapivideomemory: native format with no derived image
16950 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
16951 info based on the derived image configuration.
16952 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16953 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16955 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16957 * gst-libs/gst/vaapi/video-format.c:
16958 * gst-libs/gst/vaapi/video-format.h:
16959 * gst/vaapi/gstvaapivideomemory.c:
16960 surface pool config based on video info
16961 First added the function gst_vaapi_video_format_get_best_native(), which
16962 returns the best native format that matches a particular chroma type:
16963 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
16964 RGB32 chroma and encoded format map to NV12 too.
16965 That format is used to configure, initially, the surface's pool for the
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 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16972 * gst/vaapi/gstvaapivideomemory.c:
16973 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
16974 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16975 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16977 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
16979 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16980 gstvaapiencoder: validate chroma according to the VA's RT format
16981 Before, only YUV420 color space where supported. With this patch, the
16982 encoder is queried to know the supported formats and admits YUV422
16983 color space if its available.
16984 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16985 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16987 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16989 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16990 decoder: hevc: Add calculation of WpOffsetHalfRangeC
16991 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
16992 prediction weight table values with out using any hard coding.
16993 Fixme: We don't have parser API for sps_range_extension, so
16994 assumed zero value for high_precision_offsets_enabled_flag.
16995 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16997 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16999 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17000 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
17001 Based on ITU-T rec H265(4/2015): 7-56
17002 This was a wrong equation in rec H265 (4/2013): 7-44...
17003 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17005 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17007 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17008 decoder: hevc: Fix default value assignment of pred_weight_table
17010 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17012 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17013 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
17014 Assign only if ChromaArrayType != 0..
17015 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17017 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17019 * ext/codecparsers:
17020 codecparsers: Update to gst-vaapi-branch commit 1c70432
17021 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
17022 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
17023 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17025 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17027 * ext/codecparsers:
17028 codecparsers: Update to gst-vaapi-branch commit c18b8ad
17029 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
17030 a033083: videoparsers: h265: Fix the frame start detection code
17031 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17033 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17035 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17036 decoder: hevc: Add SEI parsing
17037 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17039 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17041 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17042 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
17043 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
17044 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
17045 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
17046 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
17047 is TRUE. Assuming them as MAIN profile for now.
17048 https://bugzilla.gnome.org/show_bug.cgi?id=753226
17049 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17051 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17053 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17054 patches/videoparsers: Fix the wrong source file path
17055 This is something wrongly typed in commit 6d7b631
17057 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17059 * ext/codecparsers:
17060 codecparsers: Update to gst-vaapi-branch commit b8d8be4
17061 ee7e81b: h264parse: Don't discard first AU delimiter
17062 3690fb9: h264parse: Add more NAL types for debugging output
17063 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
17064 ace61048: h265parse: expose compatible profiles to downstream
17065 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17067 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17069 * gst/vaapi/gstvaapipluginutil.c:
17070 * gst/vaapi/gstvaapivideocontext.c:
17071 * gst/vaapi/gstvaapivideocontext.h:
17072 gstvaapivideocontext: remove unused parameter
17073 gst_vaapi_video_context_prepare() received an unused parameter. This patch
17074 removes it and the structure passed by the caller.
17075 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
17076 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17078 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17080 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17081 decoder: hevc: Fix decoding of stream when it has temporal sublayers
17082 We are calculating the dpb size based on max_dec_pic_buffering.
17083 But if there are more than one temporal sublayers, we are supposed
17084 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
17085 size calculation (Assuming HighestTid as max_sub_layers_minus).
17086 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
17087 https://bugzilla.gnome.org/show_bug.cgi?id=753226
17088 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17090 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17092 * gst/vaapi/gstvaapidecode.c:
17093 * gst/vaapi/gstvaapidecodebin.c:
17094 * gst/vaapi/gstvaapiencode_h264.c:
17095 * gst/vaapi/gstvaapiencode_h265.c:
17096 * gst/vaapi/gstvaapiencode_jpeg.c:
17097 * gst/vaapi/gstvaapiencode_mpeg2.c:
17098 * gst/vaapi/gstvaapiencode_vp8.c:
17099 * gst/vaapi/gstvaapipluginutil.h:
17100 * gst/vaapi/gstvaapipostproc.c:
17101 * gst/vaapi/gstvaapisink.c:
17102 refactor vaapi caps strings for pad templates
17103 Refactor the main vaapi caps strings into three macros:
17104 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
17105 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
17106 Those are in gstvaapipluginutil.h so all the elements could use them, instead
17107 of re-declaring them every time.
17108 No functional changes.
17109 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17111 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17113 * gst/vaapi/gstvaapipostproc.c:
17114 gstvaapipostproc: fix code style
17115 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17117 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17119 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17120 decoder: hevc: Fix the decoding of dependent slice segment
17121 Decoding process for reference picture list construction needs to be
17122 invoked only for P and B slice and the value for slice_type of dependent slice
17123 segment should be taken from the previous independent slice segment header
17125 https://bugzilla.gnome.org/show_bug.cgi?id=753226
17126 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17128 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
17130 * gst/vaapi/gstvaapipluginbase.c:
17131 plugins: reduce the noise of warnings
17132 Those messagse should be attached to the object, also the lack of
17133 caps is not an error, in particular in the case of JPEG encoding.
17134 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17135 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17137 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17139 * gst-libs/gst/vaapi/gstvaapicontext.c:
17140 gstvaapicontext: fix the JPEG encoder attribs value
17141 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
17142 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
17143 assigns the returned value to the attribute.
17144 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17145 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17147 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
17149 * gst-libs/gst/vaapi/gstvaapiencoder.c:
17150 gstvaapiencoder: framerate 0/1 is valid too
17151 Framerate 0/1 is valid, and it is particularly useful for picture
17152 encoding, such as jpeg. This patch makes the encoder to admit that
17154 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17155 https://bugzilla.gnome.org/show_bug.cgi?id=744042
17157 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17159 * gst/vaapi/gstvaapipostproc.c:
17160 vaapipostroc: GLTextureUploadMeta in sink template
17161 Advertise GLTextureUploadMeta in sink caps template.
17162 https://bugzilla.gnome.org/show_bug.cgi?id=752130
17164 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17166 * gst/vaapi/Makefile.am:
17167 * gst/vaapi/gstvaapiencode.c:
17168 * gst/vaapi/gstvaapipluginbase.c:
17169 * gst/vaapi/gstvaapipluginbase.h:
17170 * gst/vaapi/gstvaapipostproc.c:
17171 * gst/vaapi/gstvaapisink.c:
17172 * gst/vaapi/gstvaapiuploader.c:
17173 * gst/vaapi/gstvaapiuploader.h:
17174 remove gstvaapiuploader
17175 Working on bug #744042 I realized that the gstvaapiuploader is practically not
17177 This patch removes the gstvaapiuploader and add the method
17178 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
17179 the system can handle, which is used by vaapisink and vaapipostproc.
17180 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17181 https://bugzilla.gnome.org/show_bug.cgi?id=752777
17183 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17185 * gst/vaapi/gstvaapidecode.c:
17186 vaapidecode: don't lost GLTextureUpload on seek
17187 When seeking, the decoder is reset, but the buffer pool is not
17188 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
17189 pool has the GLTextureUpload meta.
17190 The decoder knows that GLTextureUpload meta was negotiated in
17191 decide_allocation(), but this method is not called when seeking.
17192 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17193 https://bugzilla.gnome.org/show_bug.cgi?id=752929
17195 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17197 * gst/vaapi/gstvaapipluginutil.c:
17198 plugins: don't use gst_pad_get_allowed_caps()
17199 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
17200 decoders, that is OK, but in the case of the postproc might lead loops,
17201 since the gst_base_transform_query_caps() forwards the query upstream
17203 Instead of gst_pad_get_allowed_caps() we only query the peer with
17204 gst_pad_peer_query_caps() using the pad's template as filter.
17205 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17206 https://bugzilla.gnome.org/show_bug.cgi?id=752558
17208 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17213 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17215 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
17216 * patches/videoparsers/series.frag:
17217 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
17218 All API/ABI changes for S3D/MVC are added in 1.5, backporting
17219 them to older verison is not recommended.
17220 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17222 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17224 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17225 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
17227 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17229 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
17230 decoder: jpeg: Align with new API/ABI changes in codecparser
17231 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17233 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17235 * ext/codecparsers:
17236 codecparsers: Update to gst-vaapi-branch commit 800bdb2
17237 ed13220: mpegvideometa: add meta transform function
17238 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
17239 7a51722: codecparsers: jpeg: fix docs for table parsing functions
17240 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
17241 387a39d: codecparsers: jpeg: fix up API
17242 db9d6a9: codecparsers: jpeg: tweak API a little
17243 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
17244 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
17245 4658c30: codecparsers: jpeg: fix calculation of segment size
17246 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
17247 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
17248 9422464: h264parse: fix typo in log message
17249 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
17250 77704ce: nalutils: trivial patch to check if
17251 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
17252 7862f95: Revert "codecparsers: remove ignored increment of return"
17253 54017b1: h264parse: Add support for passing stereoscopic/multiview info
17254 8667ee4: h264parse: Don't switch to passthrough on set_caps()
17255 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17257 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17259 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17260 decoder: h264: track previous reference frames.
17261 Improve closure of gaps in frame_num by strictly following and trying
17262 to fill them with previous reference frames. So, they are now tracked
17263 thus avoiding insertion of dummy ("greenish") frames.
17265 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17267 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17268 decoder: h264: fix integration of second field into the DPB.
17269 If the new picture to be added to the DPB is not a first field, then
17270 it shall be the second field of the previous picture that was added
17272 This removes the need for dpb_find_picture() now that we track the
17273 immediately preceding decoded picture, in decode order.
17275 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17277 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17278 decoder: h264: fix closure of "other-field" gap.
17279 When a dummy "other-field" is inserted, it is assumed to inherit the
17280 reference flags from the first field, and the sliding window decoded
17281 reference picture marking process is also executed so that corrupted
17282 frames are moved out as early as possible.
17283 While doing so, we also try to output frames that now contain a single
17284 valid field picture, prior to inserting any other picture into the DPB.
17285 Note: this may be superfluous currently based on the fact that dpb_add()
17286 combines the two most recent pairable fields, but this process would be
17287 further simplified later on.
17289 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17291 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17292 decoder: h264: track corrupted frames.
17293 Mark the picture as "corrupted" if it is reconstructed from corrupted
17294 references or if those references are fake, e.g. resulting from lost
17296 This is useful for notifying the upper layer, or downstream elements,
17297 that the decoded frame may contain artefacts.
17298 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17300 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17302 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17303 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17304 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
17305 * gst/vaapi/gstvaapidecode.c:
17306 decoder: add initial infrastructure for marking corrupted output.
17307 Add initial infrastructure in core codec library and vaapidecode to mark
17308 corrupted frames as such. A corrupted frame is such a frame that was
17309 reconstructed from invalid references for instance.
17310 https://bugzilla.gnome.org/show_bug.cgi?id=751434
17311 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17313 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17316 Bump version for development
17318 === release 0.6.0 ===
17320 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17325 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17330 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17332 * gst-libs/gst/vaapi/gstvaapiprofile.c:
17333 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
17334 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
17335 Right now there is not a primary ranked parser for vc1 and the demuxers
17336 delivers caps without specifying the profile. This situation is not an issue
17337 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
17338 explicit profile defined in the negotiated caps.
17339 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
17340 negotiation admits caps subsets try outs.
17341 This patch solves the issue ignoring the profile negotiation in the caps. For
17342 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
17343 done without the vc1 parser, such as happens in gstreamer 1.5.
17344 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17346 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17348 * gst/vaapi/gstvaapi.c:
17349 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
17350 Unfortunately vaapidecodebin element is not seems to be stable
17351 enough for autoplugging ahead of vaapidecode.
17352 Lowering the rank for now (cosidering the immediate 0.6 release).
17353 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
17354 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17356 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17358 * gst-libs/gst/vaapi/Makefile.am:
17359 build: Add missing CFLAGS to Makefile.am
17361 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17363 * gst-libs/gst/vaapi/gstvaapifilter.c:
17364 gstvaapifilter: Only register STE property if it supported by corresponding VA library
17365 Fix the regression introduced in commit eb465fb.
17366 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17367 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17369 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17371 * gst/vaapi/gstvaapipostproc.c:
17372 vaapipostproc: no format convert on GL tex upload meta
17373 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
17374 color format of the buffer.
17375 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17377 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17379 * gst-libs/gst/vaapi/gstvaapifilter.c:
17380 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
17381 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17382 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17384 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17386 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17387 encoder:h265: Fix the check for packed-header support
17388 Use VA_ENC_PACKED_HEADER_* definition for checking.
17389 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17391 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17393 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17394 encoder:h264: Fix the check for packed-header support
17395 Use VA_ENC_PACKED_HEADER_* definition for checking.
17396 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17398 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17400 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17401 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
17402 One buffering_period() SEI message shall be present in every IDR access unit
17403 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
17404 use a non-CQP mode, e.g. CBR. In other words, when
17405 nal_hrd_parameters_present_flag is set to 1.
17406 One picture_timing() SEI messages shall be present in every access unit
17407 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
17408 https://bugzilla.gnome.org/show_bug.cgi?id=722734
17409 https://bugzilla.gnome.org/show_bug.cgi?id=751831
17410 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17412 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17414 * gst/vaapi/gstvaapidecodebin.c:
17415 vaapidecodebin: notify if vpp is disabled
17416 When the system is aware that VPP is not available by the VA driver,
17417 it would be useful to notify to the user that the disable-vpp property
17419 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17421 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17423 * gst/vaapi/gstvaapidecodebin.c:
17424 * gst/vaapi/gstvaapidecodebin.h:
17425 vaapidecodebin: enable vpp if it is available
17426 Instead of creating and adding VPP into the bin at setup, we wait until
17427 we are sure the VA driver supports it. We know that when the VA video
17428 context is received by the bin. Afterwards, it is decided to instanciate
17429 and link the VPP or not.
17430 This is more efficient and safer than waiting the VPP to fail and then
17432 https://bugzilla.gnome.org/show_bug.cgi?id=749554
17434 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17436 * tests/test-display.c:
17437 * tests/test-windows.c:
17438 tests: Fix compilation while enabling egl as the only renderer in build
17439 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
17441 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17444 configure: fix the build while enabling egl as the only renderer
17446 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17449 libs: Bump library major version
17451 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17453 * gst/vaapi/gstvaapi.c:
17454 * gst/vaapi/gstvaapidecodebin.c:
17455 * gst/vaapi/gstvaapiencode.c:
17456 * gst/vaapi/gstvaapiencode_jpeg.c:
17457 * gst/vaapi/gstvaapipluginbase.c:
17458 * gst/vaapi/gstvaapipluginutil.c:
17459 * gst/vaapi/gstvaapipostproc.c:
17460 * gst/vaapi/gstvaapivideobufferpool.c:
17461 * gst/vaapi/gstvaapivideocontext.c:
17462 * gst/vaapi/gstvaapivideomemory.c:
17463 * gst/vaapi/gstvaapivideometa.c:
17464 gst/vaapi: Switch to upstreram like indentation.
17465 gst-indent for all gst/vaapi/*.c source files
17467 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17469 * gst/vaapi/gstvaapidecodebin.c:
17470 * gst/vaapi/gstvaapidecodebin.h:
17471 vaapidecodebin: Add property to disable VPP
17472 Adding a new propery "disable-vpp", enabling it will prevent
17473 the insertion of vaapipostproc child element.
17474 This is helpful in debugging, specifically to narrow-down the
17475 vaapidecodebin/vaapipostproc related negotiation issues.
17476 No support for run-time disabling for now.
17477 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17479 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17481 * gst/vaapi/gstvaapipostproc.c:
17482 vaapipostproc: Fix wrong selection of passthrough mode.
17483 The Current code path is falling back to passthorugh mode if there is no
17484 vpp property set by the user explictily. But we should not use the
17485 passthrough mode if the negotiated src pad caps have a differnt color space
17486 format than sink pad caps (Even though the user didn't set the format property
17488 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17489 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17491 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17493 * gst/vaapi/gstvaapipostproc.c:
17494 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
17495 This is a workaround to deal with the va-intel-driver for non-native
17496 formats while doing advanced deinterlacing. The format of reference surfaces must
17497 be same as the format used by the driver internally for motion adaptive
17498 deinterlacing and motion compensated deinterlacing.
17499 A permanent solution could be to do the color space conversion internally
17500 for reference surfaces.
17501 https://bugzilla.gnome.org/show_bug.cgi?id=730925
17502 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17504 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17506 * gst/vaapi/gstvaapisink.c:
17507 Work around ABBA deadlock between vaapisink and vaapipostproc
17508 vaapisink takes the display lock, then does a gst_buffer_replace which can
17509 take the lock on the gst_vaapi_video_pool.
17510 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
17511 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
17512 surfaces, which means that gst_vaapi_surface_create is
17513 called. gst_vaapi_surface_create takes the display lock.
17514 If vaapisink and vaapipostproc are in different threads, and this happens,
17515 you get a deadlock. vaapisink holds the display lock, and wants the
17516 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
17517 and wants the display lock.
17518 Work around this by releasing the display lock in vaapisink around the
17519 gst_buffer_replace.
17520 https://bugzilla.gnome.org/show_bug.cgi?id=738249
17521 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17522 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17524 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
17526 * gst/vaapi/gstvaapidecodebin.c:
17527 * gst/vaapi/gstvaapidecodebin.h:
17528 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
17529 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17531 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17533 * gst/vaapi/gstvaapipostproc.c:
17534 vaapipostproc: log negotiated caps
17536 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17538 * gst/vaapi/gstvaapipostproc.c:
17539 vaapipostproc: remove useless debug message
17541 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17543 * gst/vaapi/gstvaapidecode.c:
17544 vaapidecode: log negotiated src/sink caps
17546 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17548 * gst/vaapi/gstvaapisink.c:
17549 vaapisink: error handling if rendering fails
17550 This patch enhance the code path when an error is found when rendering a
17552 If the video meta doesn't contain a surface proxy or a surface, a warning
17553 message is printed.
17554 If the rendering backend fails, a error message is posted in the bus.
17555 https://bugzilla.gnome.org/show_bug.cgi?id=749382
17557 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17559 * gst/vaapi/gstvaapisink.c:
17560 vaapisink: Fix the conditional pad template creation.
17562 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17564 * tests/Makefile.am:
17565 build: Don't build simple-encoder test program if there is no VA Encoding support
17566 This will fix the build error against older VA-APIs <= 0.32
17568 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17570 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17571 * gst-libs/gst/vaapi/gstvaapicompat.h:
17572 Fix build error for older VA-API versions
17573 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
17574 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
17577 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17579 * gst/vaapi/gstvaapisink.c:
17580 vaapisink: Fix the capsfeature advertisement in padtemplate
17581 This fixes the regression introduced in 64acc74.
17582 If a pad supports multiple set of capsfeatures, it needs to add
17583 multiple equal structures with different feature sets to the caps.
17584 Because caps structures with the same name but with a non-equal
17585 set of caps features are not compatible.
17586 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
17587 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17589 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
17591 * gst/vaapi/gstvaapisink.c:
17592 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
17593 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17594 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17595 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17597 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
17599 * gst/vaapi/gstvaapipluginbase.c:
17600 vaapipluginbase: Override downstream allocation reply if no pool
17601 If the downstream replied without a pool, then override it.
17602 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17604 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17606 * gst/vaapi/gstvaapipostproc.c:
17607 * gst/vaapi/gstvaapipostproc.h:
17608 vaapipostproc: add color balance interface
17609 https://bugzilla.gnome.org/show_bug.cgi?id=720376
17611 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17613 * gst-libs/gst/vaapi/gstvaapifilter.c:
17614 * gst-libs/gst/vaapi/gstvaapifilter.h:
17615 * gst/vaapi/gstvaapipostproc.c:
17616 * gst/vaapi/gstvaapipostproc.h:
17617 vaapipostproc: add skin tone enhancement
17618 Added the 'skin-tone-enhancement' property to vaapostproc.
17619 https://bugzilla.gnome.org/show_bug.cgi?id=744088
17621 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17623 * docs/reference/libs/libs-docs.xml.in:
17624 doc: add VA-API reference in freedesktop
17626 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17628 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17629 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17630 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17631 patches/videoparsers: rebase all the h264parse patches
17632 In order to avoid the creation of .orig files and break the distcheck target
17634 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17636 * ext/libvpx/Makefile.am:
17637 build: don't build in parallel libvpx
17638 This fixes the distcheck -j XX target.
17640 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17642 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17643 encoder: jpeg: Fix the packed header generation
17644 This is a work-around to satisfy the va-intel-driver.
17645 Normalize the quality factor and scale QM values (only for packed header
17646 generation) similar to what VA-Intel driver is doing . Otherwise the
17647 generated packed headers will be wrong, since the driver itself is
17648 scaling the QM values using the normalized quality factor.
17649 https://bugzilla.gnome.org/show_bug.cgi?id=748335
17650 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17652 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17654 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17655 decoder: h264: fix uninitialized variables in avcC mode.
17656 Fix uninitialized variables when decoding SPS and PPS NAL units from
17657 "codec-data" buffers. This is particularly important when seeking ops
17658 are involved, and the new persistent states are used more often.
17659 https://bugzilla.gnome.org/show_bug.cgi?id=750094
17661 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17663 * gst/vaapi/gstvaapidecode.c:
17664 vaapidecode: remove unneeded casting
17665 And a code-style fix
17667 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17669 * gst/vaapi/gstvaapidecode.c:
17670 vaapidecode: calculate decoding latency
17671 This is a naïve approach to the calculation of the VA-API decoding latency. It
17672 takes into consideration when the frame-rate has some insane value.
17673 https://bugzilla.gnome.org/show_bug.cgi?id=740419
17675 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
17678 configure: Compiling against libgstgl requires libgstvideo
17679 Fix detection of the GstGL helper headers in uninstalled
17682 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17684 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17685 encoder: hevc: Fix the size over-flow for encoded buffer.
17686 The approximation of 6 times compression ratio migh not
17687 work in all cases. Especially when enabling I frames.
17688 Provide large enough size for coded-buffer creation.
17690 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17692 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17693 encoder: vp8: Fix the size over-flow for encoded buffer.
17694 The approximation of 4 times compression ratio will not
17695 work in all cases. Especially when enabling I frames.
17696 Provide large enough size for coded-buffer creation.
17698 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17700 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17701 encoder: hevc: fix bug in multi slice encoding.
17702 This is a work-around for satisfying the VA-Intel driver.
17703 The driver only support slices begin from CTU row start address.
17704 Multi-Slice encoding also requires a fix in va-intel-driver:
17705 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
17706 https://bugzilla.gnome.org/show_bug.cgi?id=749854
17707 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17709 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17711 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17712 decoder: h264: add initial support for loss of pictures.
17713 Implement decoding process for gaps in frame_num (8.5.2). This
17714 also somewhat supports unintentional loss of pictures.
17715 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17716 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17717 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
17718 [fixed derivation of POC, ensured clone is valid for reference,
17719 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
17720 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17722 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17724 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17725 decoder: h264: add support for missing first field.
17726 Try to identify missing first fields too, thus disregarding any
17727 intermediate gaps in frames. We also assume that we keep the same
17728 field sequence, i.e. if previous frames were in top-field-first
17729 (TFF) order, then so are subsequent frames.
17730 Note that insertion of dummy first fields need to operate in two
17731 steps: (i) create the original first field that the current field
17732 will inherit from, and (ii) submit that field into the DPB prior
17733 to initializing the current (other) field POC values but after any
17734 reference flag was set. i.e. copy reference flags from the child
17735 (other field) to the parent (first field).
17736 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17738 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17740 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17741 decoder: h264: add support for missing second field.
17742 Interlaced H.264 video frames always have two fields to decode and
17743 display. However, in some cases, e.g. packet loss, one of the field
17744 can be missing. This perturbs the reference picture marking process,
17745 whereby the number of references available in DPB no longer matches
17746 the expected value.
17747 This patch adds initial support for missing field within a decoded
17748 frame. The current strategy taken is to find out the nearest field,
17749 by POC value, and with the same parity.
17750 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17752 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17754 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17755 decoder: h264: improve tracking of "top-field-first" flag.
17756 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
17757 does not mandate it. This will be useful for tracking missing fields, and
17758 also for more correct _split_fields() implementation for frames in the DPB.
17760 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17762 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17763 decoder: h264: skip all pictures prior the first I-frame.
17764 Don't try to decode pictures until the first I-frame is received within
17765 the currently active sequence. There is no point is decoding and then
17766 displaying frames with artifacts.
17768 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17770 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17771 decoder: h264: fix processing of EOSEQ NAL.
17772 Fix decoding of end_of_seq() NAL unit so that to not submit the current
17773 picture for decoding again. This is pretty vintage code that dates back
17774 before the existing of the whole decoder units machinery.
17775 One issue that could be arising if that code was kept is that we could
17776 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
17777 Once without the decode_only flag set, and once with that flag set. The
17778 end result is that the GstVideoDecoder would release the codec frame
17779 twice, thus releasing stale data.
17780 In short, the piece of code that is removed by this patch is for once
17781 completely obsolete for a while, and secondly error-prone in corner
17784 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
17786 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17787 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17788 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17789 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17790 decoder: add utility function to clone picture objects.
17791 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17792 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
17793 [added cosmetic changes, fixed propagation of "one-field" flag to
17794 children, fixed per-codec clone modes (h264)]
17795 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17797 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
17799 * gst/vaapi/Makefile.am:
17800 build: don't compile HEVC encoder if not supported
17802 (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
17803 https://bugzilla.gnome.org/show_bug.cgi?id=749954
17804 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17805 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17807 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
17809 * gst-libs/gst/vaapi/gstvaapicompat.h:
17810 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17811 HEVC: decode: add missing va_dec_hevc header
17812 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17813 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17814 https://bugzilla.gnome.org/show_bug.cgi?id=749953
17816 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17818 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17819 mpeg2: fix PTS cache for GOP start.
17820 If the GOP temporal sequence number (TSN) is interpolated from a valid
17821 PTS, then we need to compensate that PTS corresponding to the start of
17822 GOP with the next picture to be decoded, which shall be an I-frame,
17823 based on its sequence number.
17824 https://bugzilla.gnome.org/show_bug.cgi?id=748676
17826 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17828 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17829 mpeg2: avoid crash when seeking with debug logs
17830 Move down the debug message when the state of the decoder is verified
17831 so the slice header is not NULL.
17833 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
17835 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17836 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
17837 Reset state and add some checks for safe state to avoid a crash and
17838 a warning after the decoder is destroyed/recreated during a seek.
17840 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17842 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17843 * patches/videoparsers/series.frag:
17844 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
17845 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17847 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17849 * ext/codecparsers:
17850 codecparsers: Update to gst-vaapi-branch commit 20ee952
17851 b7dded3: h264parse: don't consider unknown stream-format as avc
17852 5110ad9: h264parse: fix up handling of input caps corner cases
17853 e51db3e: h264parse: Remove dead code
17854 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
17855 8482957: h265parse: Fix profile, tier and level setting in caps
17856 4649acb: h265parse: Fix the memory freeing of stored VPS nals
17857 f2beeb7: h265parse: Fix source caps to report cropped dimensions
17858 6886a31: h264parse: Fix profile and level setting in caps
17859 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
17860 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
17861 53074fc: build: Upgrade GStreamer dependency to 1.0
17862 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17864 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17866 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17867 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
17868 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17870 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17872 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17873 HEVC: decode: Update Cropping Rectangle
17874 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17876 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17878 * gst/vaapi/Makefile.am:
17879 * gst/vaapi/gstvaapi.c:
17880 * gst/vaapi/gstvaapiencode_h265.c:
17881 * gst/vaapi/gstvaapiencode_h265.h:
17882 HEVC_Encode: Add HEVC(h265) Encoder plugin
17883 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17884 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17886 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17888 * gst-libs/gst/vaapi/Makefile.am:
17889 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17890 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
17891 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
17892 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17893 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17895 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17898 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
17899 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17900 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17902 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17904 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
17905 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
17906 gstvaapiutils_h265: Add H265 Tier specific utility functions
17907 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
17908 -- New API: gst_vaapi_utils_h265_get_tier_string()
17909 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17910 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17912 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17914 * docs/reference/plugins/Makefile.am:
17915 doc: conditional linking for scanner
17916 Add x11 library only if it is enabled.
17917 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17919 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17921 * docs/reference/plugins/plugins.types:
17922 doc: fix scanner compilation warning
17923 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17925 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17927 * docs/reference/libs/libs-docs.xml.in:
17928 * docs/reference/libs/libs-sections.txt:
17929 doc: update sections and symbols
17930 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17932 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17936 * debian.upstream/Makefile.am:
17937 * docs/Makefile.am:
17938 * docs/reference/Makefile.am:
17939 * docs/reference/libs/Makefile.am:
17940 * docs/reference/plugins/Makefile.am:
17942 * ext/libvpx/Makefile.am:
17944 * gst-libs/Makefile.am:
17945 * gst-libs/gst/Makefile.am:
17946 * gst-libs/gst/base/Makefile.am:
17947 * gst-libs/gst/codecparsers/Makefile.am:
17948 * gst-libs/gst/vaapi/Makefile.am:
17950 * gst/vaapi/Makefile.am:
17951 * patches/Makefile.am:
17952 * patches/videoparsers/Makefile.am:
17953 * pkgconfig/Makefile.am:
17954 * tests/Makefile.am:
17956 This patch handles dinamically the gitignore files with git.mk[1].
17957 Removed the automake variable MAINTAINERCLANFILES in most of the
17958 Makefile.am files since now it is handled by the top one.
17959 1. https://github.com/behdad/git.mk/blob/master/git.mk
17960 https://bugzilla.gnome.org/show_bug.cgi?id=749321
17962 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17964 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17965 wayland: sync() when destroy()
17966 Before pushing a the new frame, the render() method calls sync() to flush the
17967 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
17968 to a memory leak too.
17969 This patch calls sync() in the destroy() to flush the pending frames before
17970 destroying the window.
17971 Also a is_cancelled flag is added. This flag tells to not flush the event
17972 queue again since the method failed previously or were cancelled by the user.
17973 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17975 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
17977 * gst-libs/gst/vaapi/gstvaapiwindow.c:
17978 * gst-libs/gst/vaapi/gstvaapiwindow.h:
17979 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17980 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17981 * gst/vaapi/gstvaapisink.c:
17982 vaapisink: implement unlock/unlock_stop for wayland
17983 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
17984 shutting down. This can happen e.g. if the wayland compositor exits while
17985 the pipeline is running.
17987 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
17988 * splitted the patch removing wl_display_dispatch_queue()
17989 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17990 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17991 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17993 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17996 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17997 wayland: wl_display_dispatch_queue() can block forever.
17998 wl_display_dispatch_queue() might prevent the pipeline from shutting
17999 down. This can happen e.g. if the wayland compositor exits while the
18000 pipeline is running.
18001 This patch replaces it with these steps:
18002 - With wl_display_prepare_read() all threads announce their intention
18004 - wl_display_read_events() is thread save. On threads reads, the other
18005 wait for it to finish.
18006 - With wl_display_dispatch_queue_pending() each thread dispatches its
18008 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
18009 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
18010 * stripped out the unlock() unlock_stop() logic
18011 * stripped out the poll handling
18012 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18013 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18014 https://bugzilla.gnome.org/show_bug.cgi?id=747492
18016 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18018 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18019 wayland: rename frame for last_frame
18020 Since frame in the private data means the last frame sent, it would
18021 semantically better use last_frame.
18022 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
18024 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18026 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18028 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18029 wayland: use a counter as sync flag
18030 Wayland window has a pointer to the last pushed frame and use it to set the
18031 flag for stopping the queue dispatch loop. This may lead to memory leaks,
18032 since we are not keeping track of all the queued frames structures.
18033 This patch removes the last pushed frame pointer and change the binary flag
18034 for an atomic counter, keeping track of number of queued frames and use it for
18035 the queue dispatch loop.
18036 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18038 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18040 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18041 wayland: decouple wl_buffer from frame
18042 This patch takes out the wayland's buffer from the the frame structure. The
18043 buffer is queued to wayland and destroyed in the "release" callback. The
18044 frame is freed in the surface's "done" callback.
18045 In this way a buffer may be leaked but not the whole frame structure.
18046 - surface 'done' callback is used to throttle the rendering operation and to
18047 unallocate the frame, but not the buffer.
18048 - buffer 'release' callback is used to destroy wl_buffer.
18049 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
18051 * kept the the event_queue for buffer's proxy
18052 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18053 https://bugzilla.gnome.org/show_bug.cgi?id=749078
18055 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18057 * gst/vaapi/gstvaapisink.c:
18058 vaapisink: fix indentation
18060 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18062 * debian.upstream/Makefile.am:
18063 * ext/libvpx/Makefile.am:
18064 * gst-libs/gst/vaapi/Makefile.am:
18065 * gst/vaapi/Makefile.am:
18066 * tests/Makefile.am:
18067 build: fix make distcheck
18068 This patch fixes several issues found when running the `make distcheck`
18070 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
18072 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
18074 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
18075 - The make target distcleancheck failed because some autogenerated files
18076 were not handled with the DISTCLEANFILES variable.
18077 Note: `make distcheck -jXX` is not currently supported.
18079 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18081 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
18082 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
18083 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
18084 h264parse: update patches with upstream
18085 These patches didn't applied cleanly, breaking the `make distcleancheck`
18086 target. Re-sync'ed the patches against the current git's submodule.
18088 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18090 * tests/simple-encoder.c:
18091 tests: simple-encoder: fix build warnings on 64-bit platforms.
18092 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
18093 importantly fix warnings spitted out during build on 64-bit platforms.
18094 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
18095 g_warning ("Invalid VAAPI buffer size (%d)", size);
18097 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
18098 g_warning ("Failed to create output buffer of size %d", size);
18101 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18103 * gst/vaapi/gstvaapipluginbase.c:
18104 * gst/vaapi/gstvaapipluginutil.c:
18105 * gst/vaapi/gstvaapipluginutil.h:
18106 * gst/vaapi/gstvaapivideocontext.h:
18107 plugins: remove gstreamer-0.10 crumbs
18108 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
18109 Still, its definition was still in the code. This patch removes it.
18110 https://bugzilla.gnome.org/show_bug.cgi?id=749113
18112 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18114 * tests/Makefile.am:
18115 * tests/simple-encoder.c:
18116 * tests/y4mreader.c:
18117 * tests/y4mreader.h:
18118 tests: add simple-encoder program
18119 This patch adds a simple-encoder test program that uses libgstvaapi for video
18120 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
18121 format. That can be from a regular file or standard input when the input
18123 Usage: simple-encoder [options]* <source>
18125 --output|-o output file name
18126 --codec|-c codec to use for video encoding
18127 --bitrate|-b desired bitrate (kbps)
18128 By default, and as an initial patch, the encoded stream shall conform to the
18129 minimally supported profile. That is "Constrained Baseline Profile" for H.264
18130 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
18131 generated by libgstvaapi.
18132 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
18133 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
18134 * general code clean-up
18135 * removed the yuv reader thread
18136 * re-wrote the y4m file parser
18137 * updated used API fixed some wrong usage
18138 * fixed a lot of memory leaks
18139 * added the bitrate setting
18140 * keep fps' numerator and denominator
18141 * simplified the thread control
18142 * removed custom logging and use glib
18143 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18144 https://bugzilla.gnome.org/show_bug.cgi?id=719528
18146 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18148 * gst-libs/gst/vaapi/gstvaapiencoder.h:
18149 libs: trivial documentation fix
18150 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
18151 are not errors, so they do not have the ERROR namespace.
18152 This patch fixes this typo in documentation.
18154 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
18156 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
18157 window: Correct prototype to match implementation
18158 On s390x, guintptr and GstVaapiID are not compatible types. The
18159 implementation of gst_vaapi_window_new_internal() and all its callers
18160 seem to assume that its third argument is a GstVaapiID, while the
18161 header gives it guintptr type.
18162 https://bugzilla.gnome.org/show_bug.cgi?id=744559
18164 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18166 * gst/vaapi/gstvaapidecode.c:
18167 * gst/vaapi/gstvaapidecodebin.c:
18168 vaapidecode: add guards for disabled codecs.
18169 Fix link when building plugin elements without HEVC support. e.g. don't
18170 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
18171 support HEVC enabled in libgstvaapi.
18172 Also, drop disabled codecs from static template caps. Add the missing
18173 HEVC static template caps into vaapidecodebin too.
18175 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18178 * gst-libs/gst/vaapi/glibcompat.h:
18179 build: upgrade glib dependency to 2.32
18180 Since bug #745728 was fixed the oldest supported version of GStreamer is
18181 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
18183 This patch changes the required version of glib in configure.ac and removes
18184 the hacks in glibcompat.h
18185 https://bugzilla.gnome.org/show_bug.cgi?id=748698
18187 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18189 * gst/vaapi/gstvaapipluginbase.c:
18190 plugins: check if the pool config is already set
18191 In commit 97b768, a regression for GStreamer 1.2 was introduced:
18192 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
18193 config option is already set. This patch adds an inline function to
18194 first verify if the option is not in the pool config berfore add it.
18196 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18198 * gst/vaapi/gstvaapipostproc.c:
18199 vaapipostproc: tune up a couple of log messages
18200 In order to reduce the noise, the query type log was downgrade from INFO to
18201 DEBUG, and the shared display address log message is assigned to the object.
18203 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18205 * gst/vaapi/gstvaapipluginbase.c:
18206 plugins: check gst_buffer_pool_set_config()
18207 Check the return value of gst_buffer_pool_set_config(). If it fails an error
18208 message is posted in the bus.
18210 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18212 * gst/vaapi/gstvaapipluginbase.c:
18213 plugins: more specific log message
18214 Be more specific in the log message about the reason of creating a new pool.
18216 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18218 * gst/vaapi/gstvaapipluginbase.c:
18219 plugins: delete unused variable
18220 need_pool is a boolean variable extracted from the allocation query, but it is
18221 not used afterwards.
18223 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
18225 * gst/vaapi/gstvaapipluginbase.c:
18226 vaapipluginbase: Update the pool if there was no pool in the downstream reply
18227 Fix regression introduced by bd866479, the query after decide_allocation()
18228 always needs a pool in the first slot.
18229 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18230 https://bugzilla.gnome.org/show_bug.cgi?id=748559
18232 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
18234 * gst/vaapi/gstvaapivideobufferpool.c:
18235 videopool: Free members before chaining up finalize
18236 The finalize function in GObject frees the object memory, so
18237 everything else needs to have been freed before.
18238 https://bugzilla.gnome.org/show_bug.cgi?id=748563
18240 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
18242 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
18243 wayland: don't leak the registry proxy
18244 Release the registry proxy when closing the display.
18245 https://bugzilla.gnome.org/show_bug.cgi?id=748564
18247 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18249 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18250 wayland: refactor _sync() method and rename callback
18251 This patch only intends to improve readability: in the method
18252 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
18254 Also renames the frame_redraw_callback() callback into frame_done_callback(),
18255 which is a bit more aligned to Wayland API.
18257 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18259 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18260 wayland: free frame in buffer release callback
18261 The Wayland compositor may still use the buffer when the frame done
18262 callback is called.
18263 This patch destroys the frame (which contains the buffer) until the
18264 release callback is called. The draw termination callback only controls
18265 the display queue dispatching.
18266 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18267 https://bugzilla.gnome.org/show_bug.cgi?id=747492
18269 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18271 * gst/vaapi/gstvaapidecode.c:
18272 vaapidecode: refactor gst_vaapidecode_internal_flush()
18273 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
18274 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
18275 shares the same error message of gst_vaapidecode_internal_flush() when flush
18278 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18280 * gst/vaapi/gstvaapidecode.c:
18281 vaapidecode: refactor gst_vaapidecode_destroy()
18282 Add the method gst_vaapidecode_purge(). This method releases the
18283 flushed frames from the decoder.
18284 This new method add more readablity to gst_vaapidecode_destroy()
18286 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
18288 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18289 * gst/vaapi/gstvaapidecode.c:
18290 vaapidecode: Tell the base class about released frames on close
18291 The base class needs to be informed about frames that were still queued
18292 in the decoder on release, otherwise they are leaked.
18293 https://bugzilla.gnome.org/show_bug.cgi?id=747999
18295 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18297 * gst/vaapi/gstvaapidecode.c:
18298 vaapidecode: reduce logging noise
18299 When a frame is rejected by downstream, the message is logged twice. This
18300 patch removes one of those logging messages.
18301 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
18302 the log message from error to info.
18304 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
18306 * gst/vaapi/gstvaapidecode.c:
18307 vaapidecode: Use the GstVideoDecoder error reporting function
18308 This way, the decoder won't stop on the first decoding error,
18309 in most cases it can recover after some glitchiness.
18310 https://bugzilla.gnome.org/show_bug.cgi?id=744620
18312 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
18314 * gst/vaapi/gstvaapipluginbase.c:
18315 vaapipluginbase: The allocation query can return without a pool
18316 It is possible to return the min/max/size without actually providing
18317 a pool. This way the source knows how many buffers downstream needs.
18318 https://bugzilla.gnome.org/show_bug.cgi?id=748076
18320 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18323 * gst/vaapi/Makefile.am:
18324 * gst/vaapi/gstvaapiparse.c:
18325 * gst/vaapi/gstvaapiparse.h:
18326 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
18327 * patches/videoparsers/series.frag:
18328 plugins: Add h265 videoparser element "vaapiparse_h265"
18329 This is a mirror of h265parse element in upstream gst-plugins-bad.
18330 There could be additional patches but all should go to upstream.
18331 This is for making development faster.
18332 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
18334 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18336 * ext/codecparsers:
18337 codecparsers: Update to gst-vaapi-branch commit 43a0368
18338 45f1c28: codecparser: h265: Fix nal unit size checking
18339 f25987b: codecparser: h265: Calculate crop rectangle dimensions
18340 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
18341 4c8ec41: Add h265 videoparser plugin source files
18343 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18346 autogen: drop videoutils submodule.
18348 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18350 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18351 decoder: hevc: cosmetics.
18352 Mostly coding style updates. Avoid integer signess inconsistencies.
18353 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
18355 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18357 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18358 decoder: hevc: Add Support for tiled video decoding
18359 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
18360 the tile column width and tile row height should be calculated.
18361 Equations: 6-1, 6-2
18362 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
18364 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18366 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18367 decoder: hevc: Fix decoding when there are RASL pictures present.
18368 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
18369 -- Fix PicOutputFlag setting for RASL picture
18370 -- Fix prev_poc_lsb/prev_poc_msb calculation
18371 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
18372 -- Fixed couple of crashes and added cosmetics
18374 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
18376 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
18377 display: drm: fix race condition setting device type
18378 There is a race condition where g_drm_device_type can be left set to
18379 DRM_DEVICE_RENDERNODES when it shouldn't.
18380 If thread 1 comes in and falls into the last else statement setting up both
18381 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
18382 it sets g_drm_device_type = RENDERNODES.
18383 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
18384 up that type to be tried but then encounters the lock and has to wait until the
18385 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
18386 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
18387 attempts will only try RENDERNODES.
18388 So to avoid this situation I have simply moved the acquisition of the lock higher
18389 up in the attached patch.
18390 https://bugzilla.gnome.org/show_bug.cgi?id=747914
18392 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
18394 * gst/vaapi/gstvaapipostproc.c:
18395 vaapipostproc: Don't create filter on caps query
18396 The problem with this is that creating the filter causes the display to
18397 be selected, and the caps query happens while linking the element. So,
18398 if the downstream or upstream element is using a specific display
18399 object, it won't be propagated correctly to the postproc as it already
18400 has a display at this point.
18401 https://bugzilla.gnome.org/show_bug.cgi?id=747945
18403 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
18405 * gst-libs/gst/vaapi/gstvaapivideopool.c:
18406 videopool: Release lock while allocating new object
18407 The video pool can be accessed with the display lock held, for example,
18408 when releasing a buffer from inside vaapisink_render, but allocating
18409 a new object can may also take the display lock. Which means a possible
18411 https://bugzilla.gnome.org/show_bug.cgi?id=747944
18413 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18415 * gst/vaapi/gstvaapisink.c:
18416 vaapisink: use GstVideoSink vmethod show_frame()
18417 vaapisink inherits from GstVideoSink, in order to use its functionality (such
18418 as ::show-preroll-frame property), we should use its vmethod show_frame(),
18419 rather than call ourselves render() and preroll().
18421 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18423 * gst/vaapi/gstvaapisink.c:
18424 * gst/vaapi/gstvaapisink.h:
18425 vaapisink: add 'handoff' signal
18426 This patch adds the signal ::handoff and the property signal-handoffs. If the
18427 property is set TRUE, the signal ::handoff is emitted just after the buffer is
18429 Based on Zhao Halley <halley.zhao@intel.com>
18430 https://bugzilla.gnome.org/show_bug.cgi?id=747905
18432 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18434 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18435 HEVC: silence the compiler
18436 Fixed a couple of clang complains.
18438 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18440 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18441 wayland: destroy vpp buffer pool on resize
18442 Otherwise the old buffers with the old size are used.
18443 https://bugzilla.gnome.org/show_bug.cgi?id=747491
18445 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18448 * gst-libs/gst/vaapi/Makefile.am:
18449 build: don't compile HEVC if not supported
18450 HEVC decoding was added recently libva-1.5.
18451 This patch avoids HEVC decoding support in libgstvaapi if it is not available
18452 in the installed libva.
18453 https://bugzilla.gnome.org/show_bug.cgi?id=747831
18455 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18457 * gst/vaapi/gstvaapidecode.c:
18458 vaapidecode: Update Author name in plugin metadata
18460 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18462 * gst/vaapi/gstvaapidecode.c:
18463 plugins: Add HEVC decoder
18464 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18466 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18468 * gst-libs/gst/vaapi/Makefile.am:
18469 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18470 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
18471 HEVC: Add HEVC(h265) decoder to core libgstvaapi
18472 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18474 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18476 * gst-libs/gst/vaapi/Makefile.am:
18477 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
18478 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
18479 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
18480 HEVC: Add codec utility methods to core libgstvaapi
18481 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18483 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18485 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18486 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18487 HEVC: gstvaapiprofile: Add profile definitions
18488 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18490 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18493 HEVC: build: Check availability of h265 decoder APIs
18494 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18496 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18500 * gst-libs/gst/codecparsers/Makefile.am:
18501 HEVC: Allow to build h265 codecparser internally
18502 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18504 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18506 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18507 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
18508 * gst-libs/gst/vaapi/gstvaapisurface.c:
18509 guard buffer export API if not available
18510 The support for buffer exports in VA-API was added in version 0.36. These
18511 interfaces are for interop with EGL, OpenCL, etc.
18512 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
18513 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
18514 This patch guards all the buffer exports handling (and dmabuf allocator) if
18515 the detected VA-API version is below 0.36.
18516 https://bugzilla.gnome.org/show_bug.cgi?id=746405
18518 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18520 * ext/codecparsers:
18521 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
18522 767bf22: codecparsers: h265: add helpers to convert quantization matrices
18523 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
18524 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
18525 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
18526 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
18528 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18530 * gst/vaapi/gstvaapidecode.c:
18531 vaapidecode: unref video codec frame twice
18532 We get one reference when the frame is passed to decode_handle_frame()
18533 and create another one in gst_vaapi_decoder_push_frame().
18534 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
18535 Here the frame is always released twice:
18536 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
18537 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
18538 In gst_vaapidecode_reset_full() both references to the frame must be
18540 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18541 https://bugzilla.gnome.org/show_bug.cgi?id=743226
18543 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18545 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18546 libs: remove unused variables
18547 clang reports these unused variables. Let's get rid of them.
18548 This patch is a missing part of commit c82e5173
18549 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18551 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18553 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18554 decoder: mpeg4: remove an spurious comparison
18555 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
18556 less than zero. Hence this pre-condition test is a no-op. This patch removes
18558 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18560 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18562 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18563 encoder: h264: casts slice_param->slice_type
18564 slice_type in slice_param is defined as (char *), but it is compared against a
18565 signed integer. clang complains about this comparison.
18566 This patch casts the variable.
18567 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18569 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18571 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18572 encoder: avoid GstVaapiCodedBuffer redefinition
18573 The symbol GstVaapiCodedBuffer is already defined in
18574 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
18575 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
18576 This patch removes that redefinition.
18577 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18579 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18581 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18582 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18583 libs: remove unused variables
18584 clang reports these unused variables. Let's get rid of them.
18585 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18587 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18589 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18590 encoder: mpeg2: use fabsf() instead of abs()
18591 The member value in frame_rate_tab is float, the result of the abs() function
18592 should be float too. But abs() only manages integers.
18593 This patch replaces abs() with fabsf() to handle correctly the possible floats
18595 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18597 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18599 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18600 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18601 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18602 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18603 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18604 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
18605 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
18606 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
18607 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18609 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18614 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18618 Changing source code download links from https://gitorious to https://github
18619 -- gitmodules: Change gstreamer-codecparsers submodule source download link
18620 -- README: Change the gstreamer-vaapi webpage link
18622 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18624 * ext/codecparsers:
18625 codecparsers: update to gst-vaapi-branch commit 1f792e4
18626 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
18627 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
18628 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
18629 2b92a67: h264parse: reset the parser information when caps changes
18630 05eee86: codecparsers: Indent file
18631 e27a38b: codecparsers: Add READ_UE_MAX macro
18632 2036471: Constify some static arrays everywhere
18634 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18636 * gst/vaapi/gstvaapivideoconverter_glx.c:
18637 * gst/vaapi/gstvaapivideoconverter_x11.c:
18638 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
18640 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18642 * gst/vaapi/gstvaapidecode.c:
18643 * gst/vaapi/gstvaapidecodebin.c:
18644 * gst/vaapi/gstvaapiencode_h264.c:
18645 * gst/vaapi/gstvaapiencode_jpeg.c:
18646 * gst/vaapi/gstvaapiencode_mpeg2.c:
18647 * gst/vaapi/gstvaapiencode_vp8.c:
18648 * gst/vaapi/gstvaapipluginbase.c:
18649 * gst/vaapi/gstvaapipluginutil.c:
18650 * gst/vaapi/gstvaapipluginutil.h:
18651 * gst/vaapi/gstvaapipostproc.c:
18652 * gst/vaapi/gstvaapisink.c:
18653 * gst/vaapi/gstvaapivideobuffer.c:
18654 * gst/vaapi/gstvaapivideobufferpool.c:
18655 * gst/vaapi/gstvaapivideocontext.c:
18656 * gst/vaapi/gstvaapivideocontext.h:
18657 * gst/vaapi/gstvaapivideoconverter_glx.h:
18658 * gst/vaapi/gstvaapivideoconverter_x11.h:
18659 * gst/vaapi/gstvaapivideomemory.h:
18660 * gst/vaapi/gstvaapivideometa_texture.c:
18661 Removal of gstreamer-1.0 support
18662 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
18663 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
18664 This patch removes all the pre-processor conditional code compilation guarded
18666 Thus, all the video converters were removed too.
18667 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18668 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18669 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18671 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18673 * gst-libs/gst/vaapi/gstcompat.h:
18674 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18675 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18676 * gst-libs/gst/vaapi/sysdeps.h:
18677 * gst/vaapi/gstcompat.h:
18678 * gst/vaapi/gstvaapi.c:
18679 * gst/vaapi/gstvaapidecode.c:
18680 * gst/vaapi/gstvaapidecodebin.c:
18681 * gst/vaapi/gstvaapiencode.c:
18682 * gst/vaapi/gstvaapiencode_h264.c:
18683 * gst/vaapi/gstvaapiencode_jpeg.c:
18684 * gst/vaapi/gstvaapiencode_mpeg2.c:
18685 * gst/vaapi/gstvaapiencode_vp8.c:
18686 * gst/vaapi/gstvaapiparse.c:
18687 * gst/vaapi/gstvaapipluginbase.c:
18688 * gst/vaapi/gstvaapipluginutil.c:
18689 * gst/vaapi/gstvaapipostproc.c:
18690 * gst/vaapi/gstvaapisink.c:
18691 * gst/vaapi/gstvaapiuploader.c:
18692 * gst/vaapi/gstvaapivideobuffer.c:
18693 * gst/vaapi/gstvaapivideobufferpool.c:
18694 * gst/vaapi/gstvaapivideocontext.c:
18695 * gst/vaapi/gstvaapivideoconverter_glx.c:
18696 * gst/vaapi/gstvaapivideoconverter_x11.c:
18697 * gst/vaapi/gstvaapivideomemory.c:
18698 * gst/vaapi/gstvaapivideometa.c:
18699 * gst/vaapi/gstvaapivideometa_texture.c:
18701 update and move gstcompat.h
18702 The purpose of gstcompat.h is to couple the API differences among
18703 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
18704 in this compatibility layer shall be removed.
18705 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
18706 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
18707 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
18708 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
18709 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
18710 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18711 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18712 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18714 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18717 * gst/vaapi/Makefile.am:
18718 autotools: remove gstreamer-1.0 support
18719 This patch only removes the support of gstreamer-1.0 in the autotools
18720 scripts. No other files are touched.
18721 In the automake file all the converters were deprecated.
18722 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18723 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18724 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18726 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18731 Remove the gstreamer-videoutils submodule
18733 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18736 * gst-libs/gst/Makefile.am:
18737 * gst-libs/gst/vaapi/Makefile.am:
18738 * gst-libs/gst/video/Makefile.am:
18739 * gst/vaapi/Makefile.am:
18740 * tests/Makefile.am:
18741 Remove libgstvaapi-videoutils.so
18742 This library was intended to add the base classes for video decoders which
18743 where not included in gstreamer-0.10.
18744 Since the support of gstreamer-0.10 is deprecated those classes are not
18745 required, thus the whole library is removed.
18746 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18747 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18748 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18750 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18753 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18754 * gst-libs/gst/vaapi/gstvaapiutils.c:
18755 * tests/test-subpicture.c:
18756 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
18757 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
18758 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
18759 deprecated these guards are not required.
18760 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18761 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18762 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18764 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18766 * gst-libs/gst/vaapi/gstcompat.h:
18767 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18768 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18769 * gst-libs/gst/vaapi/gstvaapiimage.c:
18770 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18771 * gst-libs/gst/vaapi/video-format.c:
18772 * gst-libs/gst/vaapi/video-format.h:
18773 * gst/vaapi/gstvaapi.c:
18774 * gst/vaapi/gstvaapidecode.c:
18775 * gst/vaapi/gstvaapidecodebin.c:
18776 * gst/vaapi/gstvaapidownload.c:
18777 * gst/vaapi/gstvaapidownload.h:
18778 * gst/vaapi/gstvaapiencode.c:
18779 * gst/vaapi/gstvaapiencode_h264.c:
18780 * gst/vaapi/gstvaapiencode_jpeg.c:
18781 * gst/vaapi/gstvaapiencode_mpeg2.c:
18782 * gst/vaapi/gstvaapiencode_vp8.c:
18783 * gst/vaapi/gstvaapiparse.c:
18784 * gst/vaapi/gstvaapipluginbase.c:
18785 * gst/vaapi/gstvaapipluginbase.h:
18786 * gst/vaapi/gstvaapipluginutil.c:
18787 * gst/vaapi/gstvaapipluginutil.h:
18788 * gst/vaapi/gstvaapipostproc.c:
18789 * gst/vaapi/gstvaapisink.c:
18790 * gst/vaapi/gstvaapiupload.c:
18791 * gst/vaapi/gstvaapiupload.h:
18792 * gst/vaapi/gstvaapiuploader.c:
18793 * gst/vaapi/gstvaapivideobuffer.c:
18794 * gst/vaapi/gstvaapivideoconverter_glx.c:
18795 * gst/vaapi/gstvaapivideoconverter_x11.c:
18796 * gst/vaapi/gstvaapivideometa.c:
18797 * gst/vaapi/gstvaapivideometa.h:
18798 * tests/test-filter.c:
18799 * tests/test-subpicture.c:
18800 Removal of gstreamer-0.10 support
18801 This patch removes all the pre-processor conditional code compilation guarded
18802 for gstreamer-0.10.
18803 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18804 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18805 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18807 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18810 * debian.upstream/control.in:
18811 * gst-libs/gst/video/Makefile.am:
18812 * gst/vaapi/Makefile.am:
18813 autotools: remove gstreamer-0.10 support
18814 This patch only removes the support of gstreamer-0.10 in the autotools
18815 scripts. No other files are touched.
18816 The configuration parameter --gstreamer-api was deleted since now it is always
18818 The verification of vmethod query in GstBaseSinkClass was removed since it was
18819 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
18821 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
18823 The automake files were changed accordingly.
18824 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
18825 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18826 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18827 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18829 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18831 * gst/vaapi/gstvaapidecode.c:
18832 vaapidecode: add drain() vmethod
18833 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
18834 class. This patch implements this new method.
18835 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18836 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18837 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18839 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18841 * gst/vaapi/gstvaapidecode.c:
18842 vaapidecode: remove vmethod reset()
18843 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
18844 this patch removes the method reset() which was deprecated in GStreamer 1.2.
18845 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18846 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18847 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18849 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18851 * gst/vaapi/gstvaapidecode.c:
18852 vaapidecode: handle flush() vmethod
18853 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
18854 and flush() was added.
18855 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
18856 superior. Otherwise, reset() is set.
18857 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
18858 was renamed to gst_vaapidecode_internal_flush().
18859 2) The new vmethod flush() always do a hard full reset.
18860 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
18861 gather all collected data with gst_video_decoder_have_frame()
18862 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18863 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18864 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18866 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18868 * gst/vaapi/gstvaapidecode.c:
18869 vaapidecode: call the correct query function
18870 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
18871 a bug was introduced: when calling the parent's query function of the
18872 src pad, the one of the sink pad is called instead. This patch fixes
18874 https://bugzilla.gnome.org/show_bug.cgi?id=746248
18876 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18879 gitmodules: Use https:// url instead of git:// for submodules.
18880 Gitorious is failing to clone repositories over git:// url.
18882 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
18884 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18885 vaapidisplay: mark X11 display as compatible with EGL
18886 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
18887 gst-launch-1.0 ... ! vaapidecode ! glimagesink
18888 https://bugzilla.gnome.org/show_bug.cgi?id=745902
18889 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18891 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
18893 * gst/vaapi/gstvaapidecode.c:
18894 vaapidecode: Don't crash if a buffer outlives the decoder
18895 Sometimes, for example, when switching video streams but keeping
18896 the same sink, the surface will be released after the decoder is
18897 stopped and replaced. This caused a crash because the release
18898 callback was called on an invalid pointer.
18899 The patch adding an additional reference to the decoder object in the buffer.
18900 https://bugzilla.gnome.org/show_bug.cgi?id=745189
18901 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
18902 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18904 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18906 * gst/vaapi/gstvaapidecode.c:
18907 vaapidecode: clean-ups (indentation, drop unused variables)
18909 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18911 * gst/vaapi/gstvaapidecode.c:
18912 vaapidecode: use the query virtual methods in 1.4
18913 GstVideoDecoder, the base class of vaapidecode, added support for
18914 pad queries as virtual methods. This patch enables the use of that
18915 support, while keeping support for lower versions of gstreamer.
18916 This patch is important because GstVideoDecoder takes care of other
18917 queries that might be important in the pipeline managing.
18918 v2: 1) rebase to current master
18919 2) fix indentation with gst-indent
18920 3) simplify the patch layout
18921 4) fix the context query
18922 5) initialise the filter to NULL
18923 6) improve the query log message for gst-1.2
18924 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18926 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18928 * gst/vaapi/gstvaapipostproc.c:
18929 * gst/vaapi/gstvaapipostproc.h:
18930 vaapipostproc: always activate buffer pool
18931 The vaapipostproc has a proxy flag to know if the the buffer pool is
18932 already active. But this fails in some situations where it is needed
18933 to renegotiate the buffer pool.
18934 This patch removes that flag so the renegotiation is done whenever is
18936 https://bugzilla.gnome.org/show_bug.cgi?id=745535
18938 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18940 * gst/vaapi/gstvaapisink.c:
18941 vaapisink: fix minor memory leak in debug mode.
18942 The gst_video_colorimetry_to_string() function returns a newly created
18943 string that represents the GstVideoColorimetry value. So, that needs
18944 to be released after usage, in e.g. GST_DEBUG().
18946 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18948 * gst/vaapi/gstvaapidecodebin.h:
18949 vaapidecodebin: Avoid usage of "__" prefix in macro names
18950 Avoiding "__" prefix usage in Header File Guards as per
18951 C standard recommendation.
18953 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18955 * gst/vaapi/gstvaapi.c:
18956 plugins: Disable vaapidecodebin for GStreamer < 1.4
18957 There are autoplugging issues in GStreamer-1.2.
18958 Lets disable vaapidecodebin untill we get some workarounds for this.
18960 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18962 * gst/vaapi/Makefile.am:
18963 * gst/vaapi/gstvaapi.c:
18964 * gst/vaapi/gstvaapidecodebin.c:
18965 * gst/vaapi/gstvaapidecodebin.h:
18966 plugins: Add a vaapidecodebin element
18967 Add a "vaapidecodebin" element to vaapi plugins.
18968 Child Elements: "vaapidecode ! queue ! vaapipostproc"
18969 The Reasons for implementing a new bin element:
18970 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
18971 with out any dependency to upstream gstreamer.
18972 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
18973 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
18974 Also customers using older gstreamer versions (1.2 and 1.4) will get the
18975 benefit of autoplugging, hardware accelerated deinterlacing support etc.
18976 -- Help to maintain a single thread implementation in vaapidecode.
18977 This will result a dead-lock free vaapidecode in most of the cases.
18978 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
18979 https://bugzilla.gnome.org/show_bug.cgi?id=745216
18981 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18983 * gst/vaapi/gstvaapidecode.c:
18984 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
18986 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18988 * gst/vaapi/gstvaapidecode.c:
18989 * gst/vaapi/gstvaapidecode.h:
18990 vaapidecode: Switch back to Single thread implementation
18991 Because the decoder uses the thread from handle_frame() to decode a frame,
18992 the src pad task creates an unsolveable AB-BA deadlock between
18993 handle_frame() waiting for a free surface and decode_loop() pushing
18994 decoded frames out.
18995 Instead, have handle_frame() take responsibility for pushing surfaces,
18996 and remove the deadlock completely. If you need a separate thread
18997 downstream, you can insert a queue between vaapidecode and its downstream
18999 Another justification for the single thread implementation is,
19000 there are two many point of locking in gstreamer-vaapi's current
19001 implementation which can lead to deadlocks.
19002 https://bugzilla.gnome.org/show_bug.cgi?id=742605
19003 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19004 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19005 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19007 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19009 * gst/vaapi/gstvaapipluginbase.c:
19010 plugins: fix detection of upstream v4l2src element.
19011 Improve check for upstream element that requires DMABUF buffer pool,
19012 e.g. v4l2src element. In particular, make sure to traverse through
19013 any additional capsfilter for instance.
19014 Note: the traversal to the top-most upstream element could be made
19015 more generic, but we are insofar only interested in supporting pipes
19016 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
19017 specification for a desired video camera format, or resolution.
19019 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19021 * gst/vaapi/gstvaapivideomemory.c:
19022 plugins: fix allocation of DMABUF memory.
19023 The dmabuf allocator would close the DMABUF handle passed in the init
19024 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
19025 to avoid a double close, ultimately in the underlying driver that owns
19028 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19030 * gst/vaapi/gstvaapidecode.c:
19031 vaapidecode: keep src caps and output state in sync
19032 vaapidecode keeps an output state that use the format
19033 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
19034 for a correct negotiation.
19035 I don't see the rational behind this decoupling, it looks like
19036 unnecessary complexity. This patch simplify this logic keeping
19037 in sync the output state and the src caps.
19038 This patch improves the readability of the function
19039 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
19040 the patch validates if the buffer pool has the configuration for
19041 the GL texture upload meta, in order to set the caps feature
19042 meta:GLTextureUpload. Otherwise, the I420 format is set back.
19043 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19044 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19045 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19047 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19049 * gst/vaapi/gstvaapidecode.c:
19050 vaapidecode: upload meta only if feature and allocation
19051 When vaapidecode finishes the decoding of a frame and pushes it,
19052 if, in the decide_allocation() method, it is determined if the
19053 next element supports the GL texture upload meta feature, the
19054 decoder adds the buffer's meta.
19055 Nonetheless, in the same spirit of the commit 71d3ce4d, the
19056 determination if the next element supports the GL texture upload
19057 meta needs to check both the preferred caps feature *and* if the
19058 allocation query request the API type.
19059 This patch, first removes the unused variable need_pool, and
19060 determines the attribute has_texture_upload_meta using the
19061 preferred caps feature *and* the allocation query.
19062 Also, the feature passed to GstVaapPluginBase is not longer
19063 determined by has_texture_upload_meta, but by the computed
19065 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19066 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19067 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19069 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19071 * gst/vaapi/gstvaapidecode.c:
19072 * gst/vaapi/gstvaapidecode.h:
19073 * gst/vaapi/gstvaapipluginutil.c:
19074 * gst/vaapi/gstvaapipluginutil.h:
19075 vaapidecode: delayed src caps negotiation
19076 Currently the src caps are set immediately after the sink caps are set, but in
19077 that moment the pipeline might not fully constructed and the video sink has
19078 not negotiated its supported caps and features. As a consequence, in many cases
19079 of playback, the least optimized caps feature is forced. This is partially the
19080 responsible of bug #744039.
19081 Also, vaapidecode doesn't attend the reconfigure events from downstream,
19082 which is a problem too, since the video sink can be changed with different
19084 This patch delays the src caps, setting them until the first frame arrives to
19085 the decoder, assuming until that very moment the whole pipeline is already
19086 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
19087 as a consequence of a reconfiguration event from downstream.
19088 A key part of this patch is the new GstVaapiCapsFeature
19089 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
19090 doesn't have a peer yet. Also, for a better report of the caps allowed
19091 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
19092 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
19093 v3: move the input_state unref to close(), since videodecoder resets at
19094 some events such as navigation.
19095 v4: a) the state_changed() callback replaces the input_state if the media
19096 changed, so this case is also handled.
19097 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
19098 always the input_state, the parameter were removed.
19099 c) there were a lot of repeated code handling the input_state, so I
19100 refactored it with the function gst_vaapi_decode_input_state_replace().
19101 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19102 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
19103 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19105 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19107 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19108 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
19109 encoder: h264: add support for more than 2 views
19110 Add support for H.264 MVC Multiview High profile encoding with
19111 more than 2 views. All views within the same accesss unit are
19112 provided in increasing order of view order index (VOIdx).
19113 Upto 10 view are supported for now.
19114 A new property "view-ids" has been provided for the plugins to
19115 set the view ids (which is an array of guint values) to be used
19117 https://bugzilla.gnome.org/show_bug.cgi?id=732453
19119 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19121 * gst/vaapi/gstvaapipluginbase.c:
19122 plugins: upload meta only if feature and allocation
19123 Working on bug #743687, I realized that vaapidecode always adds to its buffer
19124 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
19125 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
19126 Nevertheless, there are occasions where the query has the API type, but the
19127 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
19128 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
19129 buffer pool configuration, and adds its buffer's meta to each output buffer,
19130 even if the negotiated caps feature is memory:SystemMemory with I420 color
19132 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
19133 that relates caps <-> GL upload method. If it receives a buffer with color
19134 format I420, it assumes that it doesn't have a texture upload meta, because
19135 only those with RGB color format has it. Our buffers, with I420 format, say
19136 that they have the upload meta too. In that case the mapped method is a dummy
19137 one which does nothing. I reported this issue in bug #744039 (the patch,
19138 obviously, was rejected).
19139 This patch workarounds the problem: the buffer pool's configuration option
19140 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
19141 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
19142 caps feature is meta:GstVideoGLTextureUploadMeta.
19143 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
19144 in all they seem to work correctly.
19145 https://bugzilla.gnome.org/show_bug.cgi?id=744618
19146 [adapted to fit current EGL changes]
19147 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19149 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19151 * gst-libs/gst/vaapi/gstvaapitexture.c:
19152 * gst-libs/gst/vaapi/gstvaapitexture.h:
19153 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19154 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19155 * gst/vaapi/gstvaapivideometa_texture.c:
19156 plugins: add support for GstVideoGLTextureOrientation.
19157 Add support for GstVideoGLTextureOrientation modes. In particular,
19158 add orientation flags to the GstVaapiTexture wrapper and the GLX
19159 implementations. Default mode is that texture memory is laid out
19160 with top lines first, left row first. Flags indicate whether the
19161 X or Y axis need to be inverted.
19163 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19165 * gst/vaapi/gstvaapidecode.c:
19166 * gst/vaapi/gstvaapipluginbase.c:
19167 * gst/vaapi/gstvaapipluginutil.c:
19168 * gst/vaapi/gstvaapipluginutil.h:
19169 * gst/vaapi/gstvaapipostproc.c:
19170 * gst/vaapi/gstvaapivideometa_texture.c:
19171 plugins: add support for BGRA textures.
19172 Some frameworks (EFL) expect BGRA textures for storage. However,
19173 adding support for that broadly into GStreamer framework implies
19174 two kinds of hacks: (i) libgstgl helpers currently do not support
19175 BGRA textures correctly, (ii) we need to better parse downstream
19176 suggested caps and intersect them with what the VA plugin elements
19177 can offer to them for GL texturing.
19179 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19181 * gst/vaapi/gstvaapipluginutil.c:
19182 plugins: fix support for Wayland/EGL running alongside X11.
19183 When multiple display servers are available, the glimagesink element
19184 (from GStreamer 1.4) may not be able to derive a global display in
19185 Wayland. Rather, a "window"-specific display is created. In this case,
19186 the GstGLDisplay handle available through GstGLContext is invalid.
19187 So, try to improve heuristics for display server characterisation in
19188 those particular situations.
19190 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19193 * gst/vaapi/Makefile.am:
19194 * gst/vaapi/gstvaapidecode.c:
19195 * gst/vaapi/gstvaapipluginbase.c:
19196 * gst/vaapi/gstvaapipluginutil.c:
19197 * gst/vaapi/gstvaapivideobufferpool.c:
19198 * gst/vaapi/gstvaapivideometa_texture.c:
19199 plugins: add initial support for EGL.
19200 Add initial support for EGL through GstVideoGLTextureUploadMeta.
19201 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
19202 downstream supplied GstGLContext configuration, i.e. use its native
19203 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
19204 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
19206 https://bugzilla.gnome.org/show_bug.cgi?id=741079
19208 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19210 * gst/vaapi/gstvaapivideometa_texture.c:
19211 plugins: track video texture size changes.
19212 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
19213 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
19214 now update the texture size from the GstVideoMeta, if any, or reset
19215 to some defaults otherwise.
19217 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19219 * gst/vaapi/gstvaapipluginbase.c:
19220 * gst/vaapi/gstvaapipluginbase.h:
19221 * gst/vaapi/gstvaapipluginutil.c:
19222 plugins: ensure VA display matches GL context expectations.
19223 If a GstGLContext is supplied by the downstream element, then make
19224 sure that the VA plugin element gets a compatible display to what
19225 is requested by the GL context. e.g. re-allocate a VA/GLX display
19226 when a GLX context is provided by the downstream element.
19228 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19231 * gst/vaapi/Makefile.am:
19232 * gst/vaapi/gstvaapipluginbase.c:
19233 * gst/vaapi/gstvaapipluginbase.h:
19234 plugins: record downstream GstGLContext.
19235 Record GL context supplied by downstream elements. This can be useful,
19236 and further needed, to enforce run-time check that the GL context is
19237 compatible for use by libgstvaapi. e.g. check that we don't create a
19238 VA/GLX display for EGL/X11 contexts.
19239 https://bugzilla.gnome.org/show_bug.cgi?id=725643
19240 Original-path-by: Matthew Waters <ystreet00@gmail.com>
19242 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19244 * tests/Makefile.am:
19247 Add initial support for EGL to tests. The new EGL backend can be selected
19248 through the --egl command line option. The OpenGL|ES version can further
19249 be selected with the --gles-version command line option, where the default
19250 of 0 means "desktop" OpenGL.
19252 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19254 * gst-libs/gst/vaapi/Makefile.am:
19255 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19256 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
19257 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
19258 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
19259 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
19260 egl: add windowing support.
19261 This provides for some basic EGL window abstraction.
19263 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19265 * gst-libs/gst/vaapi/Makefile.am:
19266 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19267 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
19268 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
19269 egl: add texture abstraction.
19270 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
19271 or import a foreign allocated one, while still allowing updates from a
19274 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19276 * gst-libs/gst/vaapi/Makefile.am:
19277 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
19278 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
19279 egl: allow for EGLImage imports into VA Surfaces.
19280 Add helpers to import EGLImage objects into VA surfaces. There are
19281 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
19282 which allows for implicit conversion from EGLImage to a VA surface
19283 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
19284 which exactly wraps the source EGLImage, typically in RGBA format
19285 with linear storage.
19286 Note: in case of (i), the EGLImage can be disposed right after the
19287 VA surface creation call, unlike in (ii) where the user shall ensure
19288 that the EGLImage is live until the associated VA surface is no longer
19290 https://bugzilla.gnome.org/show_bug.cgi?id=743847
19292 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19295 * gst-libs/gst/vaapi/Makefile.am:
19296 * gst-libs/gst/vaapi/egl_compat.h:
19297 * gst-libs/gst/vaapi/egl_vtable.h:
19298 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19299 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19300 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19301 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
19302 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
19303 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
19304 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
19305 * gst-libs/gst/vaapi/ogl_compat.h:
19306 Add initial support for EGL.
19307 Add initial support for EGL to libgstvaapi core library. The target
19308 display server and the desired OpenGL API can be programmatically
19309 selected at run-time.
19310 A comprehensive set of EGL utilities are provided to support those
19311 dynamic selection needs, but also most importantly to ensure that
19312 the GL command stream is executed from within a single thread.
19313 https://bugzilla.gnome.org/show_bug.cgi?id=743846
19315 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19317 * gst-libs/gst/vaapi/gstvaapivalue.c:
19318 libs: initialize GValues in a thread-safe manner.
19320 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19322 * gst-libs/gst/vaapi/gstvaapivalue.c:
19323 libs: re-indent all GValue related source code.
19325 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19327 * gst/vaapi/gstvaapidecode.c:
19328 vaapidecode: partially revert 0777f35.
19329 Reset the VA decoder after updating the base plugin caps, and most
19330 importantly, after GstVideoDecoder negotiation. The reason behind
19331 this is that the negotiation could trigger a last decide_allocation()
19332 where we could actually derive a new GstVaapiDisplay to use from the
19333 downstream element. e.g. GLX backend.
19335 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19337 * gst/vaapi/gstvaapidecode.c:
19338 vaapidecode: Caps query should return the list of all supported caps.
19339 Query caps filtering should be always done on top of allowed caps instead
19340 of existing fixed caps on a particular pad.
19341 This fixes the mvc stream decoding when there is a base view(high profile)
19342 and non-base view(stereo-high profile).
19344 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19346 * gst/vaapi/gstvaapidecode.c:
19347 vaapidecode: intersect filter from query caps
19348 According to documentation[1] when receiving a GST_QUERY_CAPS
19349 the return value should be all formats that this elements supports,
19350 taking into account limitations of peer elements further downstream
19351 or upstream, sorted by order of preference, highest preference first.
19352 This patch add those limitations intersecting with the received
19353 filter in the query. Also takes into account the already negotiated
19354 caps. Also adds the processing of the query on the SRC pad.
19355 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
19356 https://bugzilla.gnome.org/show_bug.cgi?id=744406
19358 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19360 * gst-libs/gst/vaapi/Makefile.am:
19361 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19362 * gst-libs/gst/vaapi/gstvaapidecoder.c:
19363 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19364 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19365 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19366 * gst/vaapi/gstvaapivideomemory.c:
19367 Fix compiler warnings
19368 This patch fixes some warnings that gcc 4.9 reports.
19369 https://bugzilla.gnome.org/show_bug.cgi?id=744411
19371 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19373 * gst/vaapi/gstvaapidecode.c:
19374 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
19375 Hence the function name is shown in the gst-inspect-1.0 information
19376 rather than the memory address.
19377 https://bugzilla.gnome.org/show_bug.cgi?id=744330
19379 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19381 * gst/vaapi/gstvaapidecode.c:
19382 vaapidecode: log flow error name
19383 https://bugzilla.gnome.org/show_bug.cgi?id=744387
19385 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19387 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19388 VC1: decoder: Ignore VC1 user BDU's
19389 Don't return error if the processed BDU is a user one, just ignore them.
19390 https://bugzilla.gnome.org/show_bug.cgi?id=741237
19391 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19393 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
19395 * gst/vaapi/gstvaapidecode.c:
19396 * gst/vaapi/gstvaapipluginbase.c:
19397 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
19398 This is required in GStreamer, elements should never return
19399 GST_FLOW_ERROR without posting an ERROR message on the bus.
19400 https://bugzilla.gnome.org/show_bug.cgi?id=744620
19402 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19404 * gst/vaapi/Makefile.am:
19405 * gst/vaapi/gstvaapi.c:
19406 * gst/vaapi/gstvaapiencode_vp8.c:
19407 * gst/vaapi/gstvaapiencode_vp8.h:
19408 plugins: Add VP8 Encoder
19410 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19412 * gst-libs/gst/vaapi/Makefile.am:
19413 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
19414 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
19415 Add VP8 Encoder to core libgstvaapi.
19417 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19420 configure: Add Check for VP8 Encoding API
19422 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
19424 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19425 decoder: vc1: Rounding control handling for VC1 simple and Main profile
19426 Added rounding control handling for VC1 simple and Main profile
19427 based on VC1 standard spec: section 8.3.7
19428 https://bugzilla.gnome.org/show_bug.cgi?id=743958
19429 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
19430 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19432 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19434 * gst/vaapi/Makefile.am:
19435 build: fix make dist when certain conditionals not met.
19436 Fix typo which was preventing the inclusion of jpeg encoder
19437 source files from make dist (when there is no jpeg encoder
19438 API support in libva).
19440 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19442 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19443 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
19444 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
19445 use native YUV420 format (which is i420) as default.
19447 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19449 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19450 encoder: Only support YUV420 native format as input for now
19451 Practically we should be able to support more formats, for eg:
19452 JPEG Encoder can support YUV422, RGBA and all.
19453 But this is causing more issues which need proper fix here and there.
19455 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
19457 * gst-libs/gst/vaapi/gstvaapidecoder.h:
19458 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19459 * gst/vaapi/gstvaapidecode.c:
19460 vaapidecode: Check the condition after taking the lock
19461 Otherwise the condition could become true before the lock
19462 is taken and the g_cond_signal() could be called
19463 before the g_cond_wait(), so the g_cond_wait() is never
19465 https://bugzilla.gnome.org/show_bug.cgi?id=740645
19467 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19469 * gst/vaapi/Makefile.am:
19470 * gst/vaapi/gstvaapi.c:
19471 * gst/vaapi/gstvaapiencode_jpeg.c:
19472 * gst/vaapi/gstvaapiencode_jpeg.h:
19473 plugins: Add JPEG encoder element
19475 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19477 * gst-libs/gst/vaapi/gstvaapicontext.c:
19478 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
19480 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19482 * gst-libs/gst/vaapi/gstvaapicontext.c:
19483 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
19484 Don't add the VAConfigAttribRateControl to the attribute list using
19485 for the vaCreateConfig if it is not supported by the driver.
19487 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19489 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19490 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
19492 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19494 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19495 gstvaapiencoder: Fix crash when handling rate control mask
19496 Having a ratecontrol_mask equal to zero is not a bug, but the driver
19497 might not be supporting any kind of rate control mechanisms.
19500 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19502 * gst-libs/gst/vaapi/Makefile.am:
19503 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19504 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
19505 encoder: Add JPEG Encoder
19507 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19509 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19510 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19511 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
19513 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19515 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19516 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19517 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19518 * gst-libs/gst/vaapi/gstvaapiprofile.h:
19519 Encode: Add support for Picture level Entrypoint
19520 This is useful for JPEG encoding which is utilizing picture level
19521 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
19523 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19526 configure: Add Check for JPEG encoding API
19528 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19533 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19536 Bump version for development.
19538 === release 0.5.10 ===
19540 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19545 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19550 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19552 * gst/vaapi/gstvaapivideometa_texture.c:
19553 Fix compilation error if there is no GL/gl.h header file installed
19555 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19557 * gst/vaapi/gstvaapivideomemory.h:
19558 plugins: drop leftover declaration.
19559 GstVaapiVideoMemory quark is not needed any more, and the actual
19560 implementation was already removed bfore the merge. i.e. this is
19561 an oversight for a hunk that was not meant to be pushed.
19563 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19565 * gst/vaapi/gstvaapipluginbase.c:
19566 * gst/vaapi/gstvaapivideobufferpool.c:
19567 * gst/vaapi/gstvaapivideobufferpool.h:
19568 * gst/vaapi/gstvaapivideomemory.c:
19569 * gst/vaapi/gstvaapivideomemory.h:
19570 plugins: add support for dma_buf exports (v4l2src).
19571 Allow v4l2src element to connected to vaapipostproc or vaapisink when
19572 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
19573 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
19574 to "dmabuf" could work, but with more demanding driver or kernel reqs.
19575 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
19576 with --without-libv4l2.
19577 https://bugzilla.gnome.org/show_bug.cgi?id=743635
19579 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
19582 * gst/vaapi/Makefile.am:
19583 * gst/vaapi/gstvaapipluginbase.c:
19584 plugins: add support for dma_buf imports.
19585 Allow imports of v4l2 buffers into VA surfaces for further operation
19586 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
19587 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19588 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
19589 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19591 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19593 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19594 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19595 surface: add support for GEM buffer imports.
19596 Add support for GEM buffer imports. This is useful for VA/EGL interop
19597 with legacy Mesa implementations, or when it is desired or required to
19598 support outbound textures for instance.
19599 https://bugzilla.gnome.org/show_bug.cgi?id=736718
19601 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19603 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19604 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19605 surface: add support for dma_buf imports.
19606 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
19607 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
19608 resulting VA surface owns the supplied buffer handle.
19609 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19611 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19613 * gst-libs/gst/vaapi/gstvaapisurface.c:
19614 * gst-libs/gst/vaapi/gstvaapisurface.h:
19615 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19616 surface: add initial support for foreign buffer imports.
19617 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
19618 create a VA surface from an external buffer provided throug the
19619 new GstVaapiBufferProxy object.
19621 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19623 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19624 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19625 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19626 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19627 surface: add support for GEM buffer exports.
19628 Add support for GEM buffer exports. This will only work with VA drivers
19629 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
19630 to support interop with EGL and the "Desktop" GL specification. Indeed,
19631 the EXT_image_dma_buf_import extension is not going to be supported in
19632 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
19634 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
19635 in Desktop OpenGL context.
19636 https://bugzilla.gnome.org/show_bug.cgi?id=736717
19638 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19640 * gst-libs/gst/vaapi/Makefile.am:
19641 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19642 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19643 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19644 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19645 surface: add support for dma_buf exports.
19646 Use the new VA buffer export APIs to allow for a VA surface to be
19647 exposed as a plain PRIME fd. This is in view to simplifying interop
19648 with EGL or OpenCL for instance.
19649 https://bugzilla.gnome.org/show_bug.cgi?id=735364
19651 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19653 * gst-libs/gst/vaapi/Makefile.am:
19654 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19655 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19656 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
19657 Add abstraction for exported VA buffers.
19658 The VA buffer export APIs work for a particular lifetime starting from
19659 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
19660 it could be much more convenient to support implicit releases by simply
19661 having a refcount reaching zero.
19662 https://bugzilla.gnome.org/show_bug.cgi?id=736721
19664 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19666 * gst-libs/gst/vaapi/Makefile.am:
19667 Add missing header file to Makefile
19668 Add gstvaapitexture_glx.h to Makefile.am
19670 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19672 * gst-libs/gst/vaapi/gstvaapicontext.c:
19673 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19674 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19675 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19676 * gst/vaapi/gstvaapipostproc.c:
19677 * gst/vaapi/gstvaapiuploader.c:
19678 * gst/vaapi/gstvaapivideobufferpool.c:
19679 * gst/vaapi/gstvaapivideomemory.c:
19680 * gst/vaapi/gstvaapivideomemory.h:
19681 * tests/test-surfaces.c:
19682 videopool: add optional flags for surface pool allocation.
19683 Reword surface pool allocation helpers so that to allow for a simple
19684 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
19685 somewhat more elaborated/flexible form with optional allocation flags
19686 and precise GstVideoInfo specification.
19687 This is an API/ABI change, and SONAME version needs to be bumped.
19689 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19691 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19692 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19693 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19694 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19695 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19696 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19697 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19698 videopool: re-indent all GstVaapiVideoPool related source code.
19700 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19702 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19703 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19704 window: add toplevel display indirection for visualid and colormap.
19705 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
19706 the best suitable window visual id and colormap. This is an indirection in
19707 view to supporting EGL and custom/generic replacements.
19709 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19711 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19712 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19713 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19714 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19715 window: add toplevel API to determine the colormap.
19716 Add GstVaapiWindowClass::get_colormap() hook to help determine the
19717 currently active colormap bound to the supplied window, or actually
19718 create it if it does not already exist yet.
19720 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19722 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
19723 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
19724 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19725 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19726 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19727 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19728 window: add toplevel API to determine a visual id.
19729 Add GstVaapiWindowClass::get_visual_id() function hook to help find
19730 the best suitable visual id for the supplied window. While doing so,
19731 also simplify the process by which an X11 window is created with a
19732 desired Visual, i.e. now use a visual id instead of a Visual object.
19734 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19736 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19737 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19738 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19739 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19740 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19741 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19742 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19743 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19744 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19745 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19746 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19747 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19748 window: add generic helper to create windows.
19749 Add a new generic helper function gst_vaapi_window_new() to create
19750 a window without having the caller to check for the display type
19751 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
19752 to create windows, and the actual backend implementation fills it in.
19753 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19754 This is a simplification in view to supporting EGL.
19756 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19758 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19759 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19760 * gst-libs/gst/vaapi/gstvaapitexture.c:
19761 * gst/vaapi/gstvaapivideometa_texture.c:
19762 display: add utility function to check for OpenGL rendering.
19763 Add gst_vaapi_display_has_opengl() helper function to help determining
19764 whether the display can support OpenGL context to be bound to it, i.e.
19765 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
19767 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19769 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19770 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19771 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19772 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19773 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19774 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19775 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19776 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19777 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19778 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19779 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19780 * gst/vaapi/gstvaapipluginutil.c:
19781 * gst/vaapi/gstvaapivideobuffer.c:
19782 * gst/vaapi/gstvaapivideometa_texture.c:
19783 display: refine the meaning of display type.
19784 Make gst_vaapi_display_get_display_type() return the actual VA display
19785 type. Conversely, add a gst_vaapi_display_get_class_type() function to
19786 return the type of the GstVaapiDisplay instance. The former is used to
19787 identify the display server onto which the application is running, and
19788 the latter to identify the original object class.
19790 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19792 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19793 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19794 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19795 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19796 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19797 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19798 display: cosmetics (helper macros, new internal API names).
19799 Add more helper macros to the top-level GstVaapiDisplay interfaces.
19800 Rename a few others used internally for improved consistency.
19802 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19804 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19805 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19806 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19807 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
19808 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19809 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19810 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19811 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19812 display: record native display object.
19813 Record the underlying native display instance into the toplevel
19814 GstVaapiDisplay object. This is useful for fast lookups to the
19815 underlying native display, e.g. for creating an EGL display.
19817 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19819 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19820 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19821 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19822 display: use a recursive mutex for the display cache.
19823 Use a recursive mutex for the display cache so that a 3rdparty display
19824 object could be initialized during the initialization of the parent
19827 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19829 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19830 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19831 * gst-libs/gst/vaapi/gstvaapitexture.c:
19832 * gst-libs/gst/vaapi/gstvaapitexture.h:
19833 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19834 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19835 texture: add generic helper to create textures.
19836 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19837 and gst_vaapi_texture_new() to create a texture without having
19838 the caller to uselessly check for the display type himself. i.e.
19839 internally, there is now a GstVaapiDisplayClass hook to create
19840 textures, and the actual backend implementation fills it in.
19841 This is a simplification in view to supporting EGL.
19843 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19845 * gst-libs/gst/vaapi/Makefile.am:
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_glx.h:
19850 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19851 * gst/vaapi/gstvaapivideoconverter_glx.c:
19852 * gst/vaapi/gstvaapivideometa_texture.c:
19853 * tests/test-textures.c:
19854 texture: move to core libgstvaapi base library.
19855 GstVaapiTexture is a generic abstraction that could be moved to the
19856 core libgstvaapi library. While doing this, no extra dependency needs
19857 to be added. This means that a GstVaapitextureClass is now available
19858 for any specific code that needs to be added, e.g. creation of the
19859 underlying GL texture objects, or backend dependent ways to upload
19860 a surface to the texture object.
19861 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
19863 https://bugzilla.gnome.org/show_bug.cgi?id=736715
19865 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19868 * gst-libs/gst/vaapi/Makefile.am:
19869 * gst-libs/gst/vaapi/gstvaapicompat.h:
19870 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19871 * gst-libs/gst/vaapi/gstvaapitexture.c:
19872 texture: drop support for VA/GLX interfaces.
19873 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
19874 ease of use, but they had other caveats to deal with. It's now better
19875 to move on to legacy mode, whereby VA/GLX interop is two be provided
19876 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
19877 https://bugzilla.gnome.org/show_bug.cgi?id=736711
19879 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19881 * gst-libs/gst/vaapi/gstvaapitexture.c:
19882 * gst-libs/gst/vaapi/gstvaapitexture.h:
19883 * gst/vaapi/gstvaapivideoconverter_glx.c:
19884 * gst/vaapi/gstvaapivideometa_texture.c:
19885 * tests/test-textures.c:
19886 texture: add support for cropping rectangle during transfer.
19887 The gst_vaapi_texture_put_surface() function is missing a crop_rect
19888 argument that would be used during transfer for cropping the source
19889 surface to the desired dimensions.
19890 Note: from a user point-of-view, he should create the GstVaapiTexture
19891 object with the cropped size. That's the default behaviour in software
19892 decoding pipelines that we need to cope with.
19893 This is an API/ABI change, and SONAME version needs to be bumped.
19894 https://bugzilla.gnome.org/show_bug.cgi?id=736712
19896 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19898 * gst-libs/gst/vaapi/gstvaapitexture.c:
19899 * gst-libs/gst/vaapi/gstvaapitexture.h:
19900 texture: re-indent all GstVaapiTexture related source code.
19902 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19904 * gst-libs/gst/vaapi/gstvaapisurface.c:
19905 * gst-libs/gst/vaapi/gstvaapisurface.h:
19906 surface: add more fine-grained allocation helper.
19907 Add new gst_vaapi_surface_new_full() helper function that allocates
19908 VA surface from a GstVideoInfo template in argument. Additional flags
19909 may include ways to
19910 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
19911 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
19912 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
19914 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19916 * gst-libs/gst/vaapi/gstvaapisurface.c:
19917 * gst-libs/gst/vaapi/gstvaapisurface.h:
19918 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19919 surface: re-indent all GstVaapiSurface related source code.
19921 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19923 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19924 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19925 surfaceproxy: add helper to create a wrapped surface object.
19926 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
19927 a proxy. The main use case for that is to convey additional information
19928 at the proxy level that would not be suitable to the plain surface.
19930 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19932 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19933 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19934 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19935 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
19937 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19940 libs: bump library major version.
19942 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19944 * gst-libs/gst/vaapi/gstvaapitypes.h:
19945 libs: re-introduce a GST_VAAPI_ID_INVALID value.
19946 Re-introduce a GST_VAAPI_ID_INVALID value that represents
19947 a non-zero and invalid id. This is useful to have a value
19948 that is still invalid for cases where zero could actually
19951 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19953 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19954 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19955 libs: expose GstVaapiMiniObject APIs to all backends.
19956 Make it possible to have all libgstvaapi backends (libs) access to a
19957 common GstVaapiMiniObject API and implementation. This is a minor step
19958 towards full exposure when needed, but restrict it to libgstvaapi at
19961 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19963 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19964 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19965 * gst-libs/gst/vaapi/gstvaapiobject.c:
19966 * gst-libs/gst/vaapi/gstvaapiobject.h:
19967 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19968 libs: re-indent all GstVaapiObject related source code.
19969 Re-indent and provide additional minor cosmetical changes to the
19970 GstVaapiMiniObject and GstVaapiObject source files.
19972 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19974 * gst/vaapi/gstvaapipluginutil.c:
19975 pluginutil: Fix clearing of subtitle overlay
19976 dvbsuboverlay signals no subtitles present by not setting
19977 GstVideoOverlayCompositionMeta on a buffer.
19978 Detect this, and remove subtitles whenever we have no overlay composition to
19980 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19982 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19984 * gst/vaapi/gstvaapipostproc.c:
19985 vaapipostproc: clear state on stop
19986 Otherwise restarting may fail because the state of vaapipluginbase and
19987 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
19988 initailization and not call gst_vaapi_plugin_base_set_caps()
19990 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19992 * gst/vaapi/gstvaapidecode.c:
19993 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
19995 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19997 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19998 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
19999 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
20000 since the vaaapi context creation (gstvaapicontext.c) can still use the
20001 default chroma type which is YUV420.
20002 https://bugzilla.gnome.org/show_bug.cgi?id=743567
20003 https://bugzilla.gnome.org/show_bug.cgi?id=743035
20005 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20007 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
20008 * patches/videoparsers/series.frag:
20009 h264parse: drop patches merged upstream.
20010 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
20012 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20014 * ext/codecparsers:
20015 codecparsers: update to gst-vaapi-branch commit d3b5c1b
20016 8194cac: h264parse: parse SPS subset
20017 64b7f52: h264parse: expose stereo-high profile
20018 774360a: h264parse: add initial support for MVC NAL units
20019 258478f: h264parser: fix stack smashing
20021 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20023 * gst/vaapi/gstvaapivideometa_texture.c:
20024 Fix compilation error if there is no GL/gl.h header file installed
20026 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20028 * gst/vaapi/gstvaapidecode.c:
20029 vaapidecode: commit updated srcpad caps to base plugin.
20030 Make sure that the GstVaapiPluginBase instance receives the new src
20031 pad caps whenever they get updated from within the GstVaapiDecoder
20033 This also ensures that downstream elements receive correctly sized
20034 SW decoded buffers if needed.
20035 https://bugs.tizen.org/jira/browse/TC-114
20037 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20039 * gst/vaapi/gstvaapidecode.c:
20040 vaapidecode: always reset decoder on ::set_format().
20041 Split GstVideoDecoder::set_format() handler to first update the sink
20042 pad caps and reset the active VA decoder instance based on those, and
20043 then update the src pad caps whenever possible, e.g. when the caps
20044 specify a valid video resolution.
20046 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20048 * gst/vaapi/gstvaapivideomemory.c:
20049 vaapivideomemory: don't crash when trying to allocate 0x0 images.
20050 In some occasions, a buffer pool is created for pre-initialization
20051 purposes regardless of whether a valid image size is available or
20052 not. However, during actual decode stage, the vaapidecode element
20053 is expected to update the srcpad caps with the new dimensions, thus
20054 also triggering a reset of the underlying bufferpool.
20056 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20058 * ext/codecparsers:
20059 codecparsers: update to gst-vaapi-branch commit 191cb2f
20060 347605a: h264parse: expose compatible profiles to downstream
20061 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
20062 24a3126: Revert "h264parse: expose compatible profiles to downstream"
20063 8661740: h264parse: expose compatible profiles to downstream
20064 8b7ef3f: codecparsers: fix some compiler warnings
20066 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20068 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20069 encoder: h264: Fix the period between I/P frames
20070 If the key-frame period is set as one, then ip_period shuld be zero
20071 https://bugzilla.gnome.org/show_bug.cgi?id=734992
20073 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20075 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20076 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
20077 https://bugzilla.gnome.org/show_bug.cgi?id=734993
20079 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20081 * gst/vaapi/gstvaapisink.c:
20082 vaapisink: Protect the X11 API invokations with proper locking
20083 https://bugzilla.gnome.org/show_bug.cgi?id=739808
20085 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20087 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20088 encoder: h264: fix pixel-aspect-ratio in encoded stream.
20089 Really report sample aspect ratio (SAR) as present, and make it match
20090 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
20091 really make sure VUI parameter aspect_ratio_info_present_flag is set
20092 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
20093 This is a leftover from git commit a12662f.
20094 https://bugzilla.gnome.org/show_bug.cgi?id=740360
20096 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20098 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20099 decoder: mpeg4: fix uninitialized variables.
20100 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
20101 GST_MPEG4_USER_DATA so that a parse error would result in skipping
20102 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
20103 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
20105 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20107 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20108 encoder: h264: fix profile limits.
20109 Fix ensure_profile_limits() to lower profile to the desired limits,
20110 only if the latter are actually known and the profile needed to be
20113 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20115 * gst/vaapi/gstvaapipostproc.c:
20116 vaapipostproc: fix out caps for GLMemory.
20117 If the best downstream capsfeature turns out to be GLMemory, then make
20118 sure to propagate RGBA video format in caps to that element. This fixes
20119 the following pipeline: ... ! vaapipostproc ! glimagesink.
20121 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20123 * gst/vaapi/gstvaapipostproc.c:
20124 vaapipostproc: fix check for compatible src pad capsfilters.
20125 When an explicit output video format is selected, from an src pad
20126 capsfilter, make sure that the downstream element actually supports
20127 that format. In particular, fix crash with the following pipelines:
20128 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
20129 XXX is a format not supported by xvimagesink.
20130 While doing so, also reduce the set of src pad filter caps to the
20131 actual set of allowed src pad caps.
20133 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20135 * gst/vaapi/gstvaapipostproc.c:
20136 * gst/vaapi/gstvaapipostproc.h:
20137 * gst/vaapi/gstvaapiuploader.c:
20138 * gst/vaapi/gstvaapiuploader.h:
20139 plugins: re-indent all video processing related source code.
20141 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20143 * gst/vaapi/gstvaapivideomemory.c:
20144 plugins: further fixes to the new "current" storage tracker.
20145 The ensure_surface() and ensure_image() functions shall only relate
20146 to the underlying backing store. The actual current flags are to be
20147 updated only through ensure_{surface,image}_is_current() or very other
20148 particular cases in GstMemory hooks.
20150 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20152 * gst/vaapi/gstvaapivideomemory.c:
20153 plugins: fix "current" video memory flags.
20154 If the surface proxy is updated into the GstVaapiVideoMemory, then
20155 it is assumed it is the most current representation of the current
20156 video frame. Likewise, make a few more arrangements to have the
20157 "current " flags set more consistently.
20159 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20161 * gst/vaapi/gstvaapivideomemory.c:
20162 * gst/vaapi/gstvaapivideomemory.h:
20163 * gst/vaapi/gstvaapivideometa.c:
20164 plugins: ensure VA surface is current prior to using it.
20165 When interacting with SW elements, the buffers and underlying video
20166 memory could be mapped as read/write. However, we need to use those
20167 buffers again as plain VA surfaces, we have to make sure the VA image
20168 is thus committed back to VA surface memory.
20169 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
20171 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
20173 * gst/vaapi/gstvaapivideomemory.c:
20174 plugins: enable memory maps for read & write.
20175 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
20176 buffers can be further processed in-place, e.g. with a textoverlay.
20177 https://bugzilla.gnome.org/show_bug.cgi?id=704078
20178 [ported to current git master branch, amended commit message]
20179 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20181 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20183 * gst/vaapi/gstvaapidecode.c:
20184 * gst/vaapi/gstvaapipluginutil.c:
20185 * gst/vaapi/gstvaapipluginutil.h:
20186 * gst/vaapi/gstvaapipostproc.c:
20187 plugins: preserve framerate when updating src caps video format.
20188 In the current implementation, gst_video_info_set_format() would reset
20189 the whole GstVideoInfo structure first, prior to setting video format
20190 and size. So, coleteral information like framerate or pixel-aspect-
20192 Provide and use a unique gst_video_info_change_format() for overcome
20193 this issue, i.e. only have it change the format and video size, and
20194 copy over the rest of the fields.
20195 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20197 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20199 * gst/vaapi/gstvaapi.c:
20200 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
20201 This is for helping decodebin to autoplug the vaapidecode element.
20202 Decodebin is selecting decoder elements only based on rank and caps.
20203 Without overriding the autoplug-* signals there is no way to autoplug
20204 HW decoders inside decodebin. An easier soulution is to raise the
20205 rank of vaapidecode, so that it gets selected first.
20206 https://bugzilla.gnome.org/show_bug.cgi?id=739332
20208 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20210 * gst-libs/gst/vaapi/gstvaapiprofile.c:
20211 * gst/vaapi/gstvaapidecode.c:
20212 vaapidecode: only expose supported profiles when needed.
20213 JPEG and VP8 codecs do not really support the concept of "profile". So,
20214 don't try to expose any set that wouldn't be supported by jpegparse, or
20215 ivfparse for instance.
20216 https://bugzilla.gnome.org/show_bug.cgi?id=739713
20217 https://bugzilla.gnome.org/show_bug.cgi?id=739714
20219 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20221 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20222 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20223 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20224 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20225 decoder: h264: add initial support for repeat-first-field (RFF) flag.
20226 Use the SEI pic_timing() message to track and propagate down the repeat
20227 first field (RFF) flag. This is only initial support as there is one
20228 other condition that could induce the RFF flag, which is not handled
20231 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20233 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20234 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
20235 Fix the decoding process for picture order count type 0 when the previous
20236 picture had a memory_management_control_operation = 5. In particular, fix
20237 the actual variable type for prev_pic_structure to hold the full bits of
20238 the picture structure.
20239 In practice, this used to work though, due to the underlying type used to
20240 express a gboolean.
20242 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20244 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20245 decoder: h264: fix detection of top-field-first (TFF) flag.
20246 Use the SEI pic_timing() message to track the pic_struct variable when
20247 present, or infer it from the regular slice header flags field_pic_flag
20248 and bottom_field_flag. This fixes temporal sequence ordering when the
20249 output pictures are to be displayed.
20250 https://bugzilla.gnome.org/show_bug.cgi?id=739291
20252 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20254 * ext/codecparsers:
20255 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
20256 1241840 h264: fix derivation of MaxPicNum variable
20257 3bd718e h264: fix GstH264ParserResult documentation typo
20258 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
20259 b08e4be h264parse: don't unnecesarily set src_caps
20261 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20263 * gst/vaapi/gstvaapipostproc.c:
20264 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
20265 Added the same Klass specifications used in other upstream
20266 video postprocessing elements like videoconvert, videoscale,
20267 videobalance and deinterlace.
20268 An example use case is for this is to help the playsink
20269 to autoplug the hardware accelerated deinterlacer.
20271 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20273 * gst/vaapi/gstvaapipostproc.c:
20274 vaapipostproc: Tweak the output video format setting to enable the autoplugging
20275 This is a workaround until auto-plugging is fixed when
20276 format=ENCODED + memory:VASurface caps feature are provided.
20277 Use the downstream negotiated video format as the output video format
20278 if the user didn't ask for the colorspace conversion explicitly.
20279 Usecase: This will help to connect elements like videoscale, videorate etc
20281 https://bugzilla.gnome.org/show_bug.cgi?id=739443
20283 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20285 * gst/vaapi/gstvaapipostproc.c:
20286 * gst/vaapi/gstvaapipostproc.h:
20287 vaapipostproc: allow user defined scaling mode.
20288 Add new "scale-method" property to expose the scaling mode to use during
20289 video processing. Note that this is only a hint, and the actual behaviour
20290 may differ from implementation (VA driver) to implementation.
20292 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20294 * gst-libs/gst/vaapi/gstvaapifilter.c:
20295 * gst-libs/gst/vaapi/gstvaapifilter.h:
20296 * gst-libs/gst/vaapi/gstvaapiutils.c:
20297 * gst-libs/gst/vaapi/gstvaapiutils.h:
20298 filter: add initial support for high quality scaling.
20299 Add support for video scaling options in VPP pipelines. Only the
20300 DEFAULT mode is bound to exist. Others might be folded into that
20303 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20305 * gst-libs/gst/vaapi/gstvaapifilter.c:
20306 * gst-libs/gst/vaapi/gstvaapifilter.h:
20307 filter: re-indent all GstVaapiFilter related source code.
20309 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20311 * ext/codecparsers:
20312 codecparsers: update to gst-vaapi-branch commit f9d3bde.
20313 2218b02 h264parse: expose parsed profile and level to downstream
20314 3dbfab4 h264parse: return flushing if we get chained while being set to READY
20315 d40fa8b h264: fix frame packing SEI parsing
20316 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
20317 b3e022e h264: initialize some fields of pic_timing structure
20318 a70661d vc1: fix expected level in sequence-layer parsing unit test
20319 6cee88d vc1: fix level values for simple/main profile
20320 356c189 vc1: add unit test for sequence-layer parsing
20321 ab9f641 vc1: take care of endianness when parsing sequence-layer
20322 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
20324 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20326 * gst/vaapi/gstvaapidecode.c:
20327 vaapidecode: Expose the supported profiles as caps to upstream
20328 This will allows the playbin to fallback to Software Decoder
20329 if the Hardware Decoder does not support a particular profile.
20330 https://bugzilla.gnome.org/show_bug.cgi?id=730997
20332 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20334 * gst/vaapi/gstvaapiencode.c:
20335 * gst/vaapi/gstvaapiencode.h:
20336 * gst/vaapi/gstvaapiencode_h264.c:
20337 encode: Attach the codec-data to out caps only based on negotiated caps
20338 Attach the codec_data to out_caps only if downstream needed.
20339 For eg: h264 encoder doesn't need to stuff codec_data to the
20340 src caps if the negotiated caps has a stream format of byte-stream.
20341 https://bugzilla.gnome.org/show_bug.cgi?id=734902
20343 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20346 configure: echoing installation prefix path
20348 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20350 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20351 display: add support for DRM Render-Nodes.
20352 Add support for DRM Render-Nodes. This is a new feature that appeared
20353 in kernel 3.12 for experimentation purposes, but was later declared
20354 stable enough in kernel 3.15 for getting enabled by default.
20355 This allows headless usages without authentication at all, i.e. usages
20356 through plain ssh connections is possible.
20358 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20360 * gst/vaapi/gstvaapisink.c:
20361 vaapisink: clean-ups (indentation, drop unused variables).
20363 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20366 * gst/vaapi/gstvaapisink.c:
20367 vaapisink: fix GstNavigation "key-press" / "key-release" events.
20368 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
20369 to a KeySym. In particular, there is no such Window argument. Also
20370 make sure to check for, and use, the correct <X11/XKBlib.h> header
20371 where that new function is defined. Otherwise, default to the older
20372 XKeycodeToKeysym() function.
20374 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20376 * gst/vaapi/gstvaapisink.c:
20377 vaapisink: fix GstNavigation "mouse-move" event.
20378 Really use the motion event coordinates to propagate the "mouse-move"
20379 event to upper layer, instead of those from a button event. Those are
20380 technically the same though.
20382 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20384 * gst/vaapi/gstvaapisink.c:
20385 vaapisink: implement the GstNavigation interface
20386 This is useful for things like DVD menus, where key/mouse events
20387 would need to be forwarded from the upstream sink element.
20388 https://bugzilla.gnome.org/show_bug.cgi?id=711479
20390 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20392 * gst/vaapi/gstvaapipluginbase.c:
20393 vaapipostproc: fix deinterlacing from non VA memory buffers.
20394 When we copy a buffer because we're moving it into VA-API memory, we
20395 need to copy flags. Otherwise, interlaced YUV buffers from a capture
20396 source (e.g. V4L2) don't get flagged as interlaced.
20397 https://bugzilla.gnome.org/show_bug.cgi?id=726270
20398 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20399 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
20400 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20402 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20404 * gst/vaapi/gstvaapipostproc.c:
20405 vaapipostproc: add support for GLTextureUploadMeta output.
20406 This allows for vaapipostproc to be chained to the glimagesink element
20408 https://bugzilla.gnome.org/show_bug.cgi?id=735231
20410 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20412 * gst/vaapi/gstvaapipluginutil.c:
20413 * gst/vaapi/gstvaapipluginutil.h:
20414 * gst/vaapi/gstvaapipostproc.c:
20415 vaapipostproc: add support for "download" capability.
20416 Allow implicit conversions to raw video formats, while still keeping
20417 VA surfaces underneath. This allows for chaining the vaapipostproc
20418 element to a software-only element that takes care of maps/unmaps.
20420 https://bugzilla.gnome.org/show_bug.cgi?id=720174
20422 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20424 * gst/vaapi/gstvaapipostproc.c:
20425 * gst/vaapi/gstvaapipostproc.h:
20426 vaapipostproc: use pooled vaapi video meta.
20427 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
20428 video buffer allocation. Also optimize copy of additional metadata info
20429 into the resulting video buffer: only copy the video cropping info and
20430 the source surface proxy.
20431 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20432 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20433 [fixed proxy leak, fixed double free on error, optimized meta copy]
20434 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20436 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20438 * gst/vaapi/gstvaapipostproc.c:
20439 vaapipostproc: fix passthrough mode.
20440 If no explicit output surface format is supplied try to keep the one
20441 supplied through the sink pad caps. This avoids a useless copy, even
20442 if things are kept in GPU memory.
20443 This is a performance regression from git commit dfa70b9.
20445 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20447 * gst/vaapi/gstvaapipostproc.c:
20448 * gst/vaapi/gstvaapipostproc.h:
20449 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
20450 https://bugzilla.gnome.org/show_bug.cgi?id=720311
20451 [used new infrastructure through base decide_allocation() impl]
20452 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20454 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20456 * gst/vaapi/gstvaapipostproc.c:
20457 vaapipostproc: enable advanced deinterlacing with same format.
20458 If only advanced deinterlacing is requested, i.e. deinterlacing is
20459 the only active algorithm to apply with source and output surface
20460 formats being the same, then make sure to enable VPP processing.
20461 Otherwise, allow fallback to bob-deinterlacing with simple rendering
20464 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20466 * gst/vaapi/gstvaapivideomemory.c:
20467 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
20468 https://bugzilla.gnome.org/show_bug.cgi?id=735156
20470 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20472 * gst/vaapi/gstvaapipluginbase.c:
20473 * gst/vaapi/gstvaapipluginutil.c:
20474 plugins: fix memory leaks.
20476 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20478 * gst/vaapi/gstvaapidecode.c:
20479 * gst/vaapi/gstvaapipluginbase.c:
20480 * gst/vaapi/gstvaapipluginbase.h:
20481 plugins: factor out decide_allocation() hook.
20482 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
20483 feature argument can be used to force a bufferpool with a specific kind
20486 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20488 * gst/vaapi/gstvaapivideobufferpool.c:
20489 * gst/vaapi/gstvaapivideobufferpool.h:
20490 * gst/vaapi/gstvaapivideomemory.c:
20491 plugins: allow bufferpool to not allocate vaapi video meta.
20492 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
20493 can be used to disable early allocations of vaapi video metas on buffers,
20494 thus delagating that to the bufferpool user.
20496 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20498 * gst/vaapi/gstvaapivideobuffer.c:
20499 * gst/vaapi/gstvaapivideobuffer.h:
20500 * gst/vaapi/gstvaapivideobufferpool.c:
20501 * gst/vaapi/gstvaapivideobufferpool.h:
20502 * gst/vaapi/gstvaapivideocontext.c:
20503 * gst/vaapi/gstvaapivideocontext.h:
20504 * gst/vaapi/gstvaapivideoconverter_glx.c:
20505 * gst/vaapi/gstvaapivideoconverter_glx.h:
20506 * gst/vaapi/gstvaapivideoconverter_x11.c:
20507 * gst/vaapi/gstvaapivideoconverter_x11.h:
20508 * gst/vaapi/gstvaapivideomemory.c:
20509 * gst/vaapi/gstvaapivideomemory.h:
20510 * gst/vaapi/gstvaapivideometa.c:
20511 * gst/vaapi/gstvaapivideometa.h:
20512 * gst/vaapi/gstvaapivideometa_texture.c:
20513 * gst/vaapi/gstvaapivideometa_texture.h:
20514 plugins: re-indent all GstVaapiVideo* related source code.
20516 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20518 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20519 surfaceproxy: fix copy to propagate view_id.
20520 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
20521 fixing random frames skipped when vaapipostproc element is used in
20522 passthrough mode. In that mode, GstMemory is copied, thus including
20523 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
20525 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20527 * gst/vaapi/gstvaapipostproc.c:
20528 vaapipostproc: fix detection of output surface format changes.
20529 Default to I420 format for output surfaces so that to match the usual
20530 GStreamer pipelines. Though, internally, we could still opt for NV12
20531 surface formats, i.e. default format=ENCODED is a hint for that, thus
20532 delegating the decision to the VA driver.
20534 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20536 * gst/vaapi/gstvaapipostproc.c:
20537 vaapipostproc: fix construction of allowed sink pad caps.
20538 Fix construction of the set of caps allowed on the sink pad to filter
20539 out unsupported raw video caps with GStreamer >= 1.2.
20541 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20543 * gst/vaapi/gstvaapipostproc.c:
20544 * gst/vaapi/gstvaapipostproc.h:
20545 vaapipostproc: improve heuristics for detecting native VA surfaces.
20546 Use the new gst_caps_has_vaapi_surface() helper function to detect
20547 whether the sink pad caps contain native VA surfaces, or not, i.e.
20549 Also rename is_raw_yuv to get_va_surfaces to make the variable more
20550 explicit as we just want a way to differentiate raw video caps from
20551 VA surfaces actually.
20553 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20555 * gst/vaapi/gstvaapipostproc.c:
20556 vaapipostproc: disable discontinuity detection code.
20557 The "discontinuity" tracking code, whereby lost frames are tentatively
20558 detected, is inoperant if the sink pad buffer timestamps are not right
20560 This is a temporary workaround until the following bug is fixed:
20561 https://bugzilla.gnome.org/show_bug.cgi?id=734386
20563 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20565 * gst/vaapi/gstvaapipostproc.c:
20566 vaapipostproc: fix heuristic for detecting discontinuity.
20567 In order to make the discontinuity detection code useful, we need to
20568 detect the lost frames in the history as early as the previous frame.
20569 This is because some VA implementations only support one reference
20570 frame for advanced deinterlacing.
20571 In practice, turn the condition for detecting new frame that is beyond
20572 the previous frame from field_duration*2 to field_duration*3, i.e.
20573 nothing received for the past frame and a half because of possible
20574 rounding errors when calculating the field-duration either in this
20575 element (vaapipostproc), or from the upstream element (parser element).
20576 This is a regression introduced with commit faefd62.
20577 https://bugzilla.gnome.org/show_bug.cgi?id=734135
20579 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20581 * gst/vaapi/gstvaapipluginbase.c:
20582 * gst/vaapi/gstvaapipluginbase.h:
20583 plugins: fix detection of raw video caps.
20584 Use the new gst_caps_has_vaapi_surface() helper function to better
20585 detect raw video caps, and in particular those from RGB colorspace.
20586 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20588 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20590 * gst/vaapi/gstvaapipluginutil.c:
20591 * gst/vaapi/gstvaapipluginutil.h:
20592 plugins: add helper for detecting VA surfaces in caps.
20593 Introduce new gst_caps_has_vaapi_surface() helper function to detect
20594 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
20595 implies a check for memory:VASurface caps features, and format=ENCODED
20596 for earlier versions of GStreamer.
20598 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
20600 * gst/vaapi/gstvaapidecode.c:
20601 vaapidecode: start the decoder task again after finishing
20602 This allows the element to accept data again after draining without
20603 a hard reset or caps change happening in between.
20604 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20606 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
20608 * gst/vaapi/gstvaapidecode.c:
20609 vaapidecode: unlock condition variables before shutting down the element
20610 Otherwise threads might wait for them, causing the shutdown of the element
20611 to deadlock on the streaming thread.
20612 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20614 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
20616 * gst/vaapi/gstvaapidecode.c:
20617 vaapidecode: reset decoder_finish variable after stopping the decoder thread
20618 Otherwise the element is not usable again after draining/EOS.
20619 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20621 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
20623 * gst/vaapi/gstvaapidecode.c:
20624 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
20625 This otherwise results in unnecessary error messages.
20626 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20628 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20630 * gst-libs/gst/vaapi/Makefile.am:
20631 * gst/vaapi/Makefile.am:
20632 build: fix with --no-undefined linker flags.
20633 https://bugzilla.gnome.org/show_bug.cgi?id=729352
20635 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
20637 * gst/vaapi/gstvaapisink.c:
20638 * gst/vaapi/gstvaapisink.h:
20639 vaapisink: add support for GstColorBalance interface.
20640 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20641 [fixed channel names, simplified range factor, fixed memory leak]
20642 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20644 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
20646 * gst/vaapi/gstvaapisink.c:
20647 * gst/vaapi/gstvaapisink.h:
20648 vaapisink: add support for colorbalance adjustment.
20649 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20650 [fixed and simplified tracking of colorbalance value changes]
20651 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20653 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20655 * gst/vaapi/gstvaapisink.c:
20656 vaapisink: improve installation of properties.
20657 Simplify the creation and installation process of properties, by first
20658 accumulating them into a g_properties[] array, and next calling into
20659 g_object_class_install_properties().
20660 Also add missing docs and flags to some properties.
20662 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20664 * gst/vaapi/gstvaapisink.c:
20665 * gst/vaapi/gstvaapisink.h:
20666 vaapisink: code clean-ups.
20667 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
20668 helper macro and use it wherever we know the object is a GstBaseSink or
20669 any base class. Drop explicit initializers for values that have defaults
20672 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20674 * gst/vaapi/gstvaapisink.c:
20675 * gst/vaapi/gstvaapisink.h:
20676 vaapisink: re-indent all GstVaapiSink related source code.
20678 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20680 * gst/vaapi/gstvaapisink.c:
20681 * gst/vaapi/gstvaapisink.h:
20682 vaapisink: introduce separate backends.
20683 Introduce new backends vtable so that to have clean separation between
20684 display dependent code and common base code. That's a "soft" separation,
20685 we don't really need dedicated objects.
20686 https://bugzilla.gnome.org/show_bug.cgi?id=722248
20688 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20690 * gst/vaapi/gstvaapisink.c:
20691 * gst/vaapi/gstvaapisink.h:
20692 vaapisink: drop unused "synchronous" mode.
20693 Support for X11 "synchronous" mode was never implemented, and was only
20694 to be useful for debugging. Drop that altogether, that's not going to
20695 be useful in practice.
20696 https://bugzilla.gnome.org/show_bug.cgi?id=733985
20698 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20700 * gst/vaapi/gstvaapisink.c:
20701 * gst/vaapi/gstvaapisink.h:
20702 vaapisink: drop unused variables.
20703 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
20704 variables. They got merged into the GstVaapiPluginBase object.
20706 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20708 * gst/vaapi/gstvaapisink.c:
20709 * gst/vaapi/gstvaapisink.h:
20710 vaapisink: drop GLX rendering and fancy effects.
20711 Rendering with GLX in vaapisink is kind of useless nowadays, including
20712 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
20713 deprecated in favor of EGL, or more direct buffer sharing with actual
20715 Should testing of interop with GLX be needed, one could still be using
20716 the modern cluttersink or glimagesink elements.
20717 https://bugzilla.gnome.org/show_bug.cgi?id=733984
20719 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
20721 * gst/vaapi/gstvaapisink.c:
20722 * gst/vaapi/gstvaapisink.h:
20723 vaapisink: listen to window size changes on X11.
20724 Allow dynamic changes to the window, e.g. performed by the user, and
20725 make sure to refresh its contents, while preserving aspect ratio.
20726 In practice, Expose and ConfigureNotify events are tracked in X11
20727 display mode by default. This occurs in a separte event thread, and
20728 this is similar to what xvimagesink does. Any of those events will
20729 trigger a reconfiguration of the window "soft" size, subsequently
20730 the render-rect when necessary, and finally _expose() the result.
20731 The default of handle_events=true can be changed programatically via
20732 gst_x_overlay_handle_events().
20733 Thanks to Fabrice Bellet for rebasing the patch.
20734 https://bugzilla.gnome.org/show_bug.cgi?id=711478
20735 [dropped XInitThreads(), cleaned up the code a little]
20736 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20738 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20740 * gst/vaapi/gstvaapidecode.c:
20741 vaapidecode: decode and output all pending frames on normal EOS.
20742 The gst_vaapidecode_decode_loop() function is called within a separate
20743 task to fetch and output all frames that were decoded so far. So, if
20744 the decoder_loop_status is forcibly set to EOS when _finish() is called,
20745 then we are bound to exist the task without submitting the pending
20747 If the downstream element error'ed out, then the gst_pad_push() would
20748 propagate up an error and so we will get it right for cutting off
20749 _finish() early in that case.
20750 This is a regression from 6003596.
20751 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20753 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20756 Bump version for development.
20758 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20763 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20768 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
20770 * gst/vaapi/gstvaapidecode.c:
20771 vaapidecode: properly return from decode loop on downstream errors.
20772 Fixes a hang/race on shutdown where _decode_loop() had already completed
20773 its execution and _finish() was waiting on a GCond for decode_loop()
20774 to complete. Also fixes the possible race where _finish() is called
20775 but _decode_loop() endlessly returns before signalling completion
20776 iff the decoder instance returns GST_FLOW_OK.
20777 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
20778 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20779 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
20780 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20782 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20788 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20790 * gst/vaapi/gstvaapisink.c:
20791 vaapisink: fix GstVideoOverlay::expose() implementation.
20792 Now that we always track the currently active video buffer, it is
20793 not necessary to automatically increase its reference since this is
20794 implicitly performed in ::show_frame() through the get_input_buffer()
20795 helper from GstVaapiPluginBase class.
20796 This is a regression from a26df80.
20798 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20800 * gst/vaapi/gstvaapidecode.c:
20801 * gst/vaapi/gstvaapipluginutil.c:
20802 vaapidecode: simplify bufferpool configuration.
20803 Rework the logics behind the configuration of an adequate bufferpool,
20804 especially when OpenGL meta or additional capsfeatures are needed.
20805 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
20806 and that is not system memory, is now selected by default.
20808 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20810 * gst/vaapi/gstvaapidecode.c:
20811 vaapidecode: fix auto-plugging of vaapisink element.
20812 Make sure to propagate memory:VASurface capsfeature to srcpad caps
20813 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
20814 core currently miss additional patches available in 1.5-git (1.6).
20815 This is a temporary workaround.
20817 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20820 configure: allow builds against GStreamer git (1.5.x).
20821 https://bugzilla.gnome.org/show_bug.cgi?id=733688
20823 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20826 configure: fix build with GStreamer 1.4.0 release.
20828 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20831 * debian.upstream/Makefile.am:
20832 * debian.upstream/control.in:
20833 debian: fix packaging for new naming scheme.
20835 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20840 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20843 configure: mark support for GStreamer < 1.2 as deprecated.
20844 Supporting anything thing below GStreamer 1.2 is asking for trouble
20845 for keeping up with the required facilities to make efficient pipelines.
20846 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
20849 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20852 configure: mark support for GStreamer 0.10 as obsolete.
20853 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
20854 and may actually be removed altogether for a future release. There is
20855 no real point to maintain a build for such an ancient GStreamer version
20856 that is not even supported upstream.
20858 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20860 * gst/vaapi/gstvaapisink.c:
20861 * gst/vaapi/gstvaapisink.h:
20862 vaapisink: allow a specific view component to be displayed.
20863 If a multiview stream is decoded, multiple view components are submitted
20864 as is downstream. It is the responsibility of the sink element to display
20865 the required view components. By default, always select the frame buffer
20866 that matches the view-id of the very first frame to be displayed.
20867 However, introduce a "view-id" property to allow the selection of a
20868 specific view component of interest to display.
20870 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20872 * gst/vaapi/gstvaapisink.c:
20873 vaapisink: always keep the last displayed buffer around.
20874 Always record the VA surface that is currently being rendered, no matter
20875 the fact we are using texturedblit or overlay. That's because in some
20876 occasions, we need to refresh or resize the displayed contents based on
20877 new events. e.g. user-resized window.
20878 Besides, it's simpler to track the last video buffer in GstVaapiSink than
20879 through the base sink "last-sample".
20881 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20883 * gst/vaapi/gstvaapipluginbase.c:
20884 * gst/vaapi/gstvaapipluginbase.h:
20885 * gst/vaapi/gstvaapipluginutil.c:
20886 * gst/vaapi/gstvaapisink.c:
20887 vaapisink: add support for "display-name" property.
20888 Add a "display-name" property to vaapisink so that the end user could
20889 select the desired output. Keep "display-name" in-line with the existing
20890 "display" (GstVaapiDisplayXXX type).
20891 So, for X11 or GLX, the "display-name" is the usual display name as we
20892 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
20893 for wl_display_connect(); and for DRM, the "display-name" is actually the
20895 https://bugzilla.gnome.org/show_bug.cgi?id=722247
20897 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20899 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20900 window: make gst_vaapi_window_reconfigure() thread-safe.
20901 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
20902 thread-safe by default, so that upper layer users don't need to handle
20905 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
20907 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20908 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20909 window: allow for updating size from current geometry.
20910 Add gst_vaapi_window_reconfigure() interface to force an update of
20911 the GstVaapiWindow "soft" size, based on the current geometry of the
20912 underlying native window.
20913 This can be useful for instance to synchronize the window size when
20914 the user changed it.
20915 Thanks to Fabrice Bellet for rebasing the patch.
20916 [changed interface to gst_vaapi_window_reconfigure()]
20917 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20919 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20921 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20922 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20923 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20924 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20925 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20926 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20927 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20928 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20929 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
20930 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20931 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20932 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20933 window: re-indent all GstVaapiWindow related source code.
20935 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20937 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20938 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20939 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20940 display: add interface to retrieve the display name.
20941 Add gst_vaapi_display_get_display_name() helper function to determine
20942 the name associated with the underlying native display. Note that for
20943 raw DRM backends, the display name is actually the device path.
20945 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20947 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20948 display: fix comparison of X11 display names.
20949 Make sure to not only compare display host names, but also the actual
20950 display number. The screen number does not need to be checked at this
20953 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20955 * gst/vaapi/gstvaapidecode.c:
20956 * gst/vaapi/gstvaapivideobufferpool.c:
20957 vaapidecode: add support for VideoAlignment bufferpool option.
20958 Always add VideoAlignment bufferpool option if the downstream element
20959 expects its own pool to be used but does not offer it through a proper
20960 propose_allocation() implementation for instance, and that the ALLOCATION
20961 query does not expose the availability of the Video Meta API.
20962 This fixes propagation of video buffer stride information to Firefox.
20964 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20966 * gst/vaapi/gstvaapivideomemory.c:
20967 vaapivideomemory: always prefer native VA surface formats.
20968 Make sure to always prefer native internal formats for the VA surfaces
20969 that get allocated. Also disable "direct-rendering" mode in this case.
20970 This is needed so that to make sure that anything that gets out of the
20971 decoder, or anything that gets into the encoder, is in native format
20972 for the hardware, and thus the driver doesn't need to perform implicit
20973 conversions in there. Interop with SW elements is still available with
20974 fast implementations of VA imaging APIs.
20976 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20978 * gst/vaapi/gstvaapivideomemory.c:
20979 vaapivideomemory: disallow memory shares across buffers, use a copy.
20980 Forbid shares of GstMemory instances, and rather make copy of it. This
20981 effectively copies the GstMemory structure and enclosed metadata, but
20982 this does not copy the VA surface contents itself. It should though.
20983 This fixes preroll and makes sure to not download garbage for the first
20984 frame when a SW rendering sink is used.
20986 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20988 * gst/vaapi/gstvaapivideomemory.c:
20989 * gst/vaapi/gstvaapivideomemory.h:
20990 vaapivideomemory: use an image pool to cache objects.
20991 Use an image pool to hold VA images to be used for downloads/uploads
20992 of contents for the associated surface.
20993 This is an optmization for size. So, instead of creating as many VA
20994 images as there are buffers (then VA surfaces) allocated, we only
20995 maintain a minimal set of live VA images, thus preserving memory
20998 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21000 * gst/vaapi/gstvaapivideomemory.c:
21001 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
21002 Disable read-write mappings if "direct-rendering" is not supported.
21003 Since the ordering of read and write operations is not specified,
21004 this would require to always download the VA surface on _map(), then
21005 commit the temporary VA image back to the VA surface on _unmap().
21006 Some SW decoding plug-in elements still use R/W mappings though.
21007 https://bugzilla.gnome.org/show_bug.cgi?id=733242
21009 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21011 * gst/vaapi/gstvaapivideomemory.c:
21012 vaapivideomemory: minor code clean-ups.
21013 Fix error messages introduced in the previous commit for the _map()
21014 imaplementation. Also use the new get_image_data() helper function
21015 to determine the base pixels data buffer from a GstVaapiImage when
21016 updating the video info structure from it.
21018 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21020 * gst/vaapi/gstvaapivideomemory.c:
21021 * gst/vaapi/gstvaapivideomemory.h:
21022 vaapivideomemory: add support for raw pixels mappings.
21023 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
21024 cases where the buffer pool is allocated without VideoMeta API, thus
21025 individual planes cannot be mapped.
21026 This is initial support for Firefox >= 30.
21027 https://bugzilla.gnome.org/show_bug.cgi?id=731886
21029 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21031 * gst/vaapi/gstvaapivideomemory.c:
21032 vaapivideomemory: fix determination of the surface pool format.
21033 While creating the vaapi video allocator, make sure the associated
21034 surface pool has correct format instead of defaulting to NV12 video
21035 format even though there is no direct rendering support.
21036 https://bugzilla.gnome.org/show_bug.cgi?id=732691
21038 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21040 * gst/vaapi/gstvaapivideomemory.c:
21041 vaapivideomemory: fix association of surface to proxy.
21042 Make sure to always update the VA surface pointer whenever the proxy
21043 changes. This used to only work when the VA surface is written to, in
21044 interop with SW element ("upload" feature), and this now fixes cases
21045 when the VA surface is needed for reading, in interop with SW element
21046 ("download" feature).
21048 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21050 * gst/vaapi/gstvaapidecode.c:
21051 * gst/vaapi/gstvaapipluginutil.c:
21052 * gst/vaapi/gstvaapivideomemory.c:
21053 plugins: expose I420 format for interop with SW elements.
21054 Always expose I420 format by default when the VA surface could be
21055 mapped for interoperability with non harware accelerated elements.
21056 However, the default behaviour remains the auto-plugging of vaapi
21057 elements, down to the sink.
21058 Side effect: "direct-rendering" mode is also disabled most of the
21059 times as plain memcpy() from uncached speculative write combining
21060 memory is not going to be efficient enough.
21062 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21064 * gst/vaapi/gstvaapidecode.c:
21065 * gst/vaapi/gstvaapivideomemory.c:
21066 plugins: allow download capability to vaapidecode element.
21067 Fix support for VA surface download capability in vaapidecode element
21068 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
21069 but also the libva-intel-driver while performing hardware accelerated
21070 conversions from the native VA surface format (NV12) to the desired
21071 output VA image format.
21072 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
21073 https://bugzilla.gnome.org/show_bug.cgi?id=733243
21075 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
21077 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21078 decoder: mpeg4: fix picture decoder return value for skipped frames.
21079 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
21080 when a frame should be skipped, so the stream processing is not stalled.
21081 https://bugzilla.gnome.org/show_bug.cgi?id=733324
21083 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
21085 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21086 decoder: mpeg2: respect any input PTS provided for a frame.
21087 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
21088 frame timestamps within a GOP, even when it's been fed input PTS for
21090 That leads to incorrect output timestamps in some situations - for example
21091 live playback where input timestamps have been scaled based on arrival time
21092 from the network and don't exactly match the framerate.
21093 https://bugzilla.gnome.org/show_bug.cgi?id=732719
21095 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21097 * gst-libs/gst/vaapi/gstvaapiobject.c:
21098 GstVaapiObject: make gst_vaapi_object_new() more robust.
21099 Forbid GstVaapiObject to be created without an associated klass spec.
21100 It is mandatory that the subclass implements an adequate .finalize()
21101 hook, so it shall provide a valid GstVaapiObjectClass.
21102 https://bugzilla.gnome.org/show_bug.cgi?id=722757
21103 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
21104 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21106 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21108 * gst-libs/gst/vaapi/gstvaapiobject.c:
21109 GstVaapiObject: initialize the derived object data with init() hook.
21110 Call the subclass .init() function in gst_vaapi_object_new(), if
21111 needed. The default behaviour is to zero initialize the subclass
21112 object data, then the .init() function can be used to initialize
21113 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
21114 Also fix the gst_vaapi_object_new() description, which was merely
21115 copied from GstVaapiMiniObject.
21116 https://bugzilla.gnome.org/show_bug.cgi?id=722757
21117 [changed to always zero initialize the subclass]
21118 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21120 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
21122 * gst/vaapi/gstvaapidecode.c:
21123 vaapidecode: make decoder work with playbin
21124 When playbin/decodebin builds the pipeline, it puts decoders and sinks
21125 into different bins and forwards the queries from bins to bins. So in
21126 the initials steps the pipeline is built iteratively by playbin and
21129 [filesrc] -> [typefind]
21130 [filesrc] -> [typefind] -> [demuxer]
21131 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
21132 At this point the decoder is asked for its SRC caps and it will make a
21133 choice based on what gst_pad_peer_query_caps() returns. The problem is
21134 that the caps returns at that point includes caps features like ANY,
21135 essentially because playbin can plug in additional elements like
21136 videoscale, videoconv or deinterlace.
21137 This patch adds a another call to
21138 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
21139 allocation, to make sure we asks the downstream elements when the
21140 entire pipeline has been built.
21141 https://bugzilla.gnome.org/show_bug.cgi?id=731645
21143 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21145 * gst/vaapi/gstvaapipostproc.c:
21146 vaapipostproc: don't let tmp_rect go out of scope.
21147 A compiler change showed me that tmp_rect went out of scope before
21148 it was used. Move it to the beginning of the function instead.
21149 https://bugzilla.gnome.org/show_bug.cgi?id=726363
21150 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21151 [added guards for GStreamer 0.10 builds]
21152 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21154 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21159 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21163 Drop references to deprecated plugins (vaapiupload, vaapidownload),
21164 mention that support for GStreamer 0.10 is deprecated, make overview
21165 more descriptive in certain aspects.
21167 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21172 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21176 build: mention that support for GStreamer 0.10 is deprecated.
21178 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21181 * gst/vaapi/gstvaapidecode.c:
21182 build: fix for GStreamer 0.10.
21184 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21186 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21187 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
21188 * patches/videoparsers/series.frag:
21189 build: fix for GStreamer 1.0.x.
21191 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21193 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21194 decoder: h264: detect incorrectly paired fields in frames.
21195 When a DPB flush is required, e.g. at a natural and of stream or issued
21196 explicitly through an IDR, try to detect any frame left in the DPB that
21197 is interlaced but does not contain two decoded fields. In that case, mark
21198 the picture as having a single field only.
21199 This avoids a hang while decoding tv_cut.mkv.
21201 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21203 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21204 decoder: h264: simplify the DPB output process.
21205 Simplify the dpb_output() function to exclusively rely on the frame store
21206 buffer to output, since this is now always provided. Besides, also fix
21207 cases where split fields would not be displayed.
21208 This is a regression from f48b1e0.
21210 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21212 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21213 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21214 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21215 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
21216 * patches/videoparsers/series.frag:
21217 h264parse: drop patches merged upstream.
21218 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
21219 0005-h264parse-introduce-new-state-tracking-variables.patch
21220 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
21221 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
21223 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21225 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21226 decoder: h264: fix memory leak in PPS.
21227 Cope with latest changes from codecparsers/h264. It is now required
21228 to explicitly clear the GstH264PPS structure as it could contain
21229 additional allocations (slice_group_ids).
21231 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21233 * ext/codecparsers:
21234 codecparsers: update to gst-vaapi-branch commit 2d53b69.
21235 c4ace00 h264parse: fix collection of access units to preserve config headers
21236 0f9f7c9 h264parse: improve conditions for skipping NAL units
21237 9ffb25c h264parse: introduce new state tracking variables
21238 64955d3 h264parse: fix and optimize NAL collection function
21239 13cd2a3 h264: clarifications and documentation fixes
21240 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
21241 18f0de0 h264: fix memory leak in GstH264PPS
21242 fdcb54c h264: fix typo in GstH264VUIParams description
21243 fd4dae9 vp8: move up built-in range decoder private data
21245 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21247 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21248 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
21249 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
21250 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
21251 decoder: propagate MVC metadata ("view-id", head of multiview set).
21252 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
21253 bundle", and really expresses the first view component of a multi
21254 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
21256 Likewise, new API is exposed to retrieve the associated "view-id".
21258 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21260 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21261 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21262 decoder: propagate "one-field" flags.
21263 Allow decoders to set the "one-field" attribute when the decoded frame
21264 genuinely has a single field, or if the second field was mis-decoded but
21265 we still want to display the first field.
21267 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21269 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21270 decoder: output decoded frames only once.
21271 Make sure to output the decoded picture, and push the associated
21272 GstVideoCodecFrame, only once. The frame fully represents what needs
21273 to be output, included for interlaced streams. Otherwise, the base
21274 GstVideoDecoder class would release the frame twice.
21275 Anyway, the general process is to output decoded frames only when
21276 they are complete. By complete, we mean a full frame was decoded or
21277 both fields of a frame were decoded.
21279 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21281 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21282 decoder: h264: decode current picture earlier.
21283 Slightly optimize decoding process by submitting the current VA surface
21284 for decoding earlier to the hardware, and perform the reference picture
21285 marking process and DPB update process afterwards.
21286 This is a minor optimization to let the video decode engine kick in work
21287 earlier, thus improving parallel resources utilization.
21289 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21291 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21292 decoder: h264: fix output of second field when first field is not in DPB.
21293 Fix decoding of interlaced streams where a first field (e.g. B-slice)
21294 was immediately output and the current decoded field is to be paired
21295 with that former frame, which is no longer in DPB.
21296 https://bugzilla.gnome.org/show_bug.cgi?id=701340
21298 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21300 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21301 decoder: h264: slightly optimize the process to detect new pictures.
21302 Optimize the process to detect new pictures or start of new access
21303 units by checking if the previous NAL unit was the end of a picture,
21304 or the end of the previous access unit.
21306 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21308 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21309 decoder: h264: handle access unit ("au") optimization.
21310 Optimize parsing when buffers are supplied with access unit alignment.
21311 This helps determining faster when the end of an access unit is reached.
21313 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21315 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21316 decoder: h264: fix tracking of DPB size changes.
21317 Add support for MVC streams with multiple SPS and subset SPS headers
21318 emitted regularly, e.g. at around every I-frame. Track the maximum
21319 number of views in ensure_context() and really reset the DPB size to
21320 the expected value, always. i.e. even if it decreased. dpb_reset()
21321 only cares of ensuring the DPB allocation.
21323 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21325 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21326 decoder: h264: fix the DPB compaction process.
21327 Fix the compaction process when the DPB is cleared for a specific
21328 view, i.e. fix the process of filling in the holes resulting from
21329 removing frame buffers matching the current picture.
21331 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21333 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21334 encoder: h264: generate new SPS only when codec config changed.
21335 It is not necessary to periodically send SPS or subset SPS headers.
21336 This is up to the upper layer (e.g. transport layer) to decide on
21337 if/how to periodically submit those. For now, only generate new SPS
21338 or subset SPS headers when the codec config changed.
21339 Note: the upper layer could readily determine the config headers
21340 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
21341 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21342 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21344 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21346 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21347 encoder: h264: track encoder config changes.
21348 Track and report when encoder configuration changed. For now, this covers
21349 resolution, profile/level and bitrate changes.
21351 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21353 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21354 encoder: h264: add pixel-aspect-ratio to VUI parameters.
21355 Report sample aspect ratio (SAR) as present, and make it match what
21356 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
21357 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
21359 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21361 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21362 encoder: h264: fix number of anchor and non-anchor reference pictures.
21363 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
21364 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
21367 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21369 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21370 encoder: h264: fix timing_info_present_flag value in subset SPS.
21371 When the seq_parameter_set_data() syntax structure is present in a subset
21372 sequence parameter set and vui_parameters_present_flag is equal to 1, then
21373 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
21375 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21377 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21378 encoder: h264: add cpbBrNalFactor values for MVC profiles.
21380 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21382 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21383 h264parse: fix detection of access unit boundaries for MVC.
21384 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
21385 this function is used to determine access unit boundaries, i.e. that
21386 is the key function for alignment=au output format generation.
21388 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21390 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
21391 * patches/videoparsers/series.frag:
21392 h264parse: fix collection of access units to preserve config headers.
21393 Always use a GstAdapter when collecting access units (alignment="au")
21394 in either byte-stream or avcC format. This is required to properly
21395 preserve config headers like SPS and PPS when invalid or broken NAL
21396 units are subsequently parsed.
21397 More precisely, this fixes scenario like:
21398 <SPS> <PPS> <invalid-NAL> <slice>
21399 where we used to reset the output frame buffer when an invalid or
21400 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
21401 preventing the next slice unit to be decoded, should this also
21402 represent any valid data.
21403 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21405 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21407 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21408 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21409 * patches/videoparsers/series.frag:
21410 h264parse: improve conditions for skipping NAL units.
21411 Carefully track cases when skipping broken or invalid NAL units is
21412 necessary. In particular, always allow NAL units to be processed
21413 and let that gst_h264_parse_process_nal() function decide on whether
21414 the current NAL needs to be dropped or not.
21415 This fixes parsing of streams with SEI NAL buffering_period() message
21416 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
21417 SPS NAL unit, among other cases too.
21418 Practical examples from the H.264 AVC conformance suite include
21419 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
21420 when parsing in stream-format=byte-stream,alignment=au mode.
21421 https://bugzilla.gnome.org/show_bug.cgi?id=732203
21423 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21425 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21426 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21427 * patches/videoparsers/series.frag:
21428 h264parse: introduce new state tracking variables.
21429 Improve parser state tracking by introducing new flags reflecting
21430 it: "got-sps", "got-pps" and "got-slice". This is an addition for
21431 robustness purposes.
21432 Older have_sps and have_pps variables are kept because they have
21433 a different meaning. i.e. they are used for deciding on when to
21434 submit updated caps or not, and rather mean "have new SPS/PPS to
21437 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21439 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
21440 * patches/videoparsers/series.frag:
21441 h264parse: default to byte-stream/nalu format (Annex B).
21442 Always default to stream-format=byte-stream,alignment=nalu if avcC
21443 format was not detected. This is the natural stream format specified
21444 in the standard (Annex.B): a series of NAL units prefixed with the
21446 https://bugzilla.gnome.org/show_bug.cgi?id=732167
21448 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21450 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21451 * patches/videoparsers/series.frag:
21452 h264parse: fix and optimize NAL collection function.
21453 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
21454 NAL unit. We don't want to parse the full NAL unit, but only the
21455 header bytes and possibly the first RBSP byte for identifying the
21456 first_mb_in_slice syntax element.
21457 Also fix check for failure when returning from that function. The
21458 only success condition for that is GST_H264_PARSER_OK, so use it.
21459 https://bugzilla.gnome.org/show_bug.cgi?id=732154
21461 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21463 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21464 encoder: h264: fix NAL unit types in packed headers.
21465 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
21466 slice header (nal_unit_type = 1 or 5) only for the base view. In non
21467 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
21468 is required, with an appropriate nal_unit_header_mvc_extension() in
21469 the NAL header bytes.
21470 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21472 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21474 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21475 encoder: h264: add missing field in packed Subset SPS header.
21476 Write the missing num_level_values_signalled_minus1 syntax element
21477 into the packed header for subset sequence parameter set.
21478 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21480 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21482 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21483 decoder: h264: fix marking of non-reference picture into DPB.
21484 Fix search for a picture in the DPB that has a lower POC value than
21485 the current picture. The dpb_find_lowest_poc() function will return
21486 a picture with the lowest POC in DPB and that is marked as "needed
21487 for output", but an additional check against the actual POC value
21488 of the current picture is needed.
21489 This is a regression from 1c46990.
21490 https://bugzilla.gnome.org/show_bug.cgi?id=732130
21492 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21494 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21495 decoder: h264: fix DPB clear when no decoding actually started.
21496 Fix dpb_clear() to clear previous frame buffers only if they actually
21497 exist to begin with. If the decoder bailed out early, e.g. when it
21498 does not support a specific profile, that array of previous frames
21499 might not be allocated beforehand.
21501 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21503 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21504 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21505 * gst/vaapi/gstvaapidecode.c:
21506 decoder: h264: add support for NALU "alignment" optimization.
21507 We can avoid scanning for start codes again if the bitstream is fed
21508 in NALU chunks. Currently, we always scan for start codes, and keep
21509 track of remaining bits in a GstAdapter, even if, in practice, we
21510 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
21512 https://bugzilla.gnome.org/show_bug.cgi?id=723284
21513 [use gst_adapter_available_fast() to determine the top buffer size]
21514 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21516 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21518 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21519 decoder: h264: fix caps to report interlace-mode accordingly.
21520 The `vaapipostproc' element could never determine if the H.264 stream
21521 was interlaced, and thus always assumed it to be progressive. Fix the
21522 H.264 decoder to report interlace-mode accordingly, thus allowing the
21523 vaapipostproc element to automatically enable deinterlacing.
21525 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21527 * gst/vaapi/gstvaapipostproc.c:
21528 vaapipostproc: don't crash with dynamic framerate (0/1).
21529 Avoid reaching an assert if dynamic framerates (0/1) are used. One
21530 way to solve this problem is to just stick field_duration to zero.
21531 However, this means that, in presence of interlaced streams, the
21532 very first field will never be displayed if precise presentation
21533 timestamps are honoured.
21534 https://bugzilla.gnome.org/show_bug.cgi?id=729604
21536 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21538 * gst/vaapi/gstvaapipostproc.c:
21539 vaapipostproc: create filter surface pool if it does not exist yet.
21540 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
21541 recreating filter_pool. Unfortunately, this also meant it didn't create
21542 it if it did not exist.
21543 Fix it to always create the buffer pool if it does not exist.
21544 https://bugzilla.gnome.org/show_bug.cgi?id=723834
21545 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21547 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
21549 * gst/vaapi/gstvaapipostproc.c:
21550 vaapipostproc: reset deinterlacer state when there is a discontinuity.
21551 Reset deinterlacer state, i.e. past reference frames used for advanced
21552 deinterlacing, when there is some discontinuity detected in the course
21553 of processing source buffers.
21554 This fixes support for advanced deinterlacing when a seek occurred.
21555 https://bugzilla.gnome.org/show_bug.cgi?id=720375
21556 [fixed type of pts_diff variable, fetch previous buffer PTS from the
21557 history buffer, reduce heuristic for detecting discontinuity]
21558 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21560 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21562 * gst/vaapi/gstvaapipostproc.c:
21563 vaapipostproc: add support for crop regions in VPP mode.
21564 Apply video cropping regions stored in GstVideoCropMeta, or in older
21565 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
21566 the crop meta are already propagated to the output buffers.
21567 https://bugzilla.gnome.org/show_bug.cgi?id=720730
21569 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21571 * gst/vaapi/gstvaapipostproc.c:
21572 vaapipostproc: make deinterlace-mode behave as expected.
21573 deinterlace-mode didn't behave in the way you'd expect if you have
21574 past experience of the deinterlace element. There were two bugs:
21575 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
21576 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
21577 Fix these up, and add assertions and error messages to detect cases that
21579 https://bugzilla.gnome.org/show_bug.cgi?id=726361
21580 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21581 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21583 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21585 * gst/vaapi/gstvaapidecode.c:
21586 vaapidecode: do not discard video info props when the format changed.
21587 gst_video_info_set_format() does not preserve video info properties. In
21588 order to keep important information in the caps such as interlace mode,
21589 framerate, pixel aspect ratio, ... we need to manually copy back those
21590 properties after setting the new video format.
21591 https://bugzilla.gnome.org/show_bug.cgi?id=722276
21593 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
21595 * gst/vaapi/gstvaapidecode.c:
21596 vaapidecode: plug a memory leak.
21597 It can happen that there is a pool provided that does not advertise
21598 the vappivideometa. We should unref that pool before using our own.
21599 Discovered with vaapidecode ! {glimagesink,cluttersink}
21600 https://bugzilla.gnome.org/show_bug.cgi?id=724957
21601 [fixed compilation by adding the missing semi-colon]
21602 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21604 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21606 * gst/vaapi/gstvaapidecode.c:
21607 vaapidecode: parse source data until a frame is obtained.
21608 Parse any pending data until a complete frame is obtained. This is a
21609 memory optimization to avoid expansion of video packets stuffed into
21610 the GstAdapter, and a fix to EOS condition to detect there is actually
21611 pending data that needs to be decoded, and subsequently output.
21612 https://bugzilla.gnome.org/show_bug.cgi?id=731831
21614 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21616 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21617 encoder: h264: fix multiple slices support in packed headers mode.
21618 Handle packedi slice headers and packed raw data on a per-slice basis,
21619 which is necessary for multi slice encoding.
21621 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21623 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21624 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21625 encoder: add infrastructure for per-slice handling of packed headers.
21626 The packed slice header and packed raw data need to be paired with
21627 the submission of VAEncSliceHeaderParameterBuffer. So handle them
21628 on a per-slice basis insted of a per-picture basis.
21629 [removed useless initializer]
21630 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21632 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21634 * gst/vaapi/gstvaapisink.c:
21635 vaapisink: fix initialization with "drm" display type.
21636 Force early initializatin of the GstVaapiDisplay so that to make sure
21637 that the sink element display object is presented first to upstream
21638 elements, as it will be correctly featuring the requested display type
21640 Otherwise, we might end up in situations where a VA/X11 display is
21641 initialized in vaapidecode, then we try VA/DRM display in vaapisink
21642 (as requested by the "display" property), but this would cause a failure
21643 because we cannot acquire a DRM display that was previously acquired
21644 through another backend (e.g. VA/X11).
21646 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21648 * gst/vaapi/gstvaapipluginbase.c:
21649 plugins: fix initialization with foreign context.
21650 When a new display is settled through GstElement::set_context() (>= 1.2),
21651 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
21652 associated display type.
21654 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21659 * gst/vaapi/Makefile.am:
21660 * gst/vaapi/gstvaapiparse.c:
21661 * gst/vaapi/gstvaapiparse.h:
21662 * patches/Makefile.am:
21663 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
21664 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21665 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21666 * patches/videoparsers/Makefile.am:
21667 * patches/videoparsers/series.frag:
21668 plugins: add built-in video parsers as "vaapiparse" element.
21669 The built-in video parsers elements are built into a single DSO named
21670 libgstvaapi_parse.so. The various video parsers could be accessed as
21672 For now, this only includes a modified version of h264parse so that to
21673 support H.264 MVC encoded streams.
21675 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21677 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21678 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
21679 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
21680 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
21682 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21684 * ext/codecparsers:
21685 codecparsers: update to gst-vaapi-branch commit d6325ac.
21686 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
21687 d2f965a h264parse: set field_pic_flag when parsing a slice header
21688 24c15b8 Import h264parse
21689 a9283e5 bytereader: Use concistant derefence method
21690 a8252c6 bytereader: Use pointer instead of index access
21691 b1bebfc Import GstBitReader and GstByteReader
21692 2f58788 h264: recognize SVC NAL units
21693 4335da5 h264: fix SPS copy code for MVC
21694 cf9b6dc h264: fix quantization matrix conversion routine names
21695 b11ce2a h264: add gst_h264_video_calculate_framerate()
21696 126dc6f add C++ guards for MPEG-4 and VP8 parsers
21698 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21700 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21701 decoder: h264: factor out DPB pruning for MVC.
21702 Factor out the removal process of unused inter-view only reference
21703 pictures from the DPB, prior to the possible insertion of the current
21705 Ideally, the compiler could still opt for generating two loops. But
21706 at least, the code is now clearer for maintenance.
21708 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21710 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21711 decoder: h264: clean-ups.
21712 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
21713 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
21715 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21717 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21718 decoder: h264: improve pruning of unused MVC inter-view frames.
21719 Improve process for the removal of pictures from DPB before possible
21720 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
21721 reference components. In particular, handle cases where picture to be
21722 inserted is not the last one of the access unit and if it was already
21723 output and is no longer marked as used for reference, including for
21724 decoding next view components within the same access unit.
21726 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21728 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21729 decoder: h264: improve DPB bumping process for MVC.
21730 While invoking the DPB bumping process in presence of many views,
21731 it could be necessary to output previous pictures that are ready,
21732 in a whole. i.e. emitting all view components from the very first
21733 view order index zero to the very last one in its original access
21734 unit; and not starting from the view order index of the picture
21735 that caused the DPB bumping process to be invoked.
21736 As a reminder, the maximum number of frames in DPB for MultiView
21737 High profile with more than 2 views is not necessarily a multiple
21738 of the number of views.
21739 This fixes decoding of MVCNV-4.264.
21741 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21743 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21744 decoder: h264: fix inter-view references array growth.
21745 Let the utility layer handle dynamic growth of the inter-view pictures
21746 array. By definition, setting a new size to the array will effectively
21747 grow the array, but would also fill in the newly created elements with
21748 empty entries (NULL), thus also increasing the reported length, which
21751 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21753 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21754 decoder: h264: reduce ReferenceFrames entries to the essential set.
21755 When decoding Multiview High profile streams with a large number of
21756 views, it is not possible to make the VAPictureParameterBufferH264.
21757 ReferenceFrames[] array hold the complete DPB, with all possibly
21758 active pictures to be used for inter-view prediction in the current
21760 So reduce the scope of the ReferenceFrames[] array to only include
21761 the set of reference pictures that are going to be used for decoding
21762 the current picture. Basically, this is a union of all RefPicListX[]
21763 array, for all slices constituting the decoded picture.
21765 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21767 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21768 decoder: h264: fix MVC inter-view prediction process.
21769 The inter-view reference components and inter-view only reference
21770 components that are included in the reference picture lists shall
21771 be considered as not being marked as "used for short-term reference"
21772 or "used for long-term reference". This means that reference flags
21773 should all be removed from VAPictureH264.flags.
21774 This fixes decoding of MVCNV-2.264.
21776 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21778 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21779 decoder: h264: fix detection of profile changes for MVC.
21780 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
21781 be careful to detect profiles changes and not reset the underlying
21782 VA context erroneously. In MVC situations, we could indeed get a
21783 profile_idc change for every SPS that gets activated, alternatively
21784 (base-view -> non-base view -> base-view, etc.).
21785 An improved fix would be to characterize the exact profile to use
21786 once and for all when SPS NAL units are parsed. This would also
21787 allow for fallbacks to a base-view decoding only mode.
21789 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21791 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21792 encoder: h264: drop extraneous definitions.
21793 Re-use definitions from the codecparser headers instead of duplicating
21794 them here again. That covers NALU definitions and slice types.
21796 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21798 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21799 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
21800 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21802 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21804 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21805 encoder: h264: don't allow CABAC with Extended profile.
21806 The H.264 specification does not support CABAC entropy coding for the
21808 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21810 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21812 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21813 encoder: h264: use packed headers mode for MVC encoding.
21814 Exclusively use VA drivers that support raw packed headers for encoding.
21815 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
21816 provides for better compatibility accross the various VA drivers and HW
21817 generations since no particular API is needed beyond what readily exists.
21819 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21821 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21822 encoder: h264: add support for packed slice headers.
21823 https://bugzilla.gnome.org/show_bug.cgi?id=722905
21825 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21827 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21828 encoder: h264: store subset sps to generate the codec-data
21829 Store the SubsetSPS nal unit which we need for MVC specific
21830 codec_data generation.
21832 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21834 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21835 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
21836 Since we are encoding each view independently from each other, we
21837 need a higher number of pre-allocated surfaces to be used as the
21838 reconstructed frames. For Stereo High profile encoding, this means
21839 to effectively double the number of frames to be stored in the DPB.
21841 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21843 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21844 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21845 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21846 * gst/vaapi/gstvaapiencode_h264.c:
21847 encoder: h264: add initial support for H.264 Stereo High profile.
21848 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
21849 for non-base-view streams encoding, and the usual SPS, PPS and Slice
21850 NALs for base-view encoding.
21851 The H.264 Stereo High profile encoding mode will be turned on when the
21852 "num-views" parameter is set to 2. The source (raw) YUV frames will be
21853 considered as Left/Right view, alternatively.
21854 Each of the two views has its own frames reordering pool and reference
21855 frames list management system. Inter-view references are not supported
21856 yet, so the views are encoded independently from each other.
21857 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21858 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
21859 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21861 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21863 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21864 encoder: h264: wrap pools for refs and frames reordering.
21865 Create structures to maintain the reference frames list (RefPool) and
21866 frames reordering (ReorderPool) logic.
21867 This is a prerequisite for H.264 MVC support.
21868 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21870 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21872 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21873 encoder: h264: add provisional support for subset SPS headers.
21874 Add provisions to write subset SPS headers to the bitstream in view
21875 to supporting the H.264 MVC specification.
21876 This assumes the libva "staging" branch is in use.
21877 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21879 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21881 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21882 * gst-libs/gst/vaapi/gstvaapiutils.c:
21883 utils: add H.264 MVC profiles.
21884 Add "MultiView High" and "Stereo High" definitions.
21885 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21886 [require VA-API >= 0.35.2 for MVC profiles]
21887 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21889 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21891 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21892 * gst-libs/gst/vaapi/gstvaapiutils.c:
21893 utils: only enable VP8 profiles for newer VA-API versions.
21894 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
21895 involving VP8 codec on earlier versions of the API.
21897 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21899 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21900 decoder: h264: compute view ids only once per slice.
21901 Optimize lookups of view ids / view order indices by caching the result
21902 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
21903 terribly simplifies is_new_access_unit() and find_first_field() functions.
21905 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21907 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21908 decoder: h264: add support for MVC interlaced streams.
21909 Fix support for MVC Stereo High profile streams with interlaced frames.
21910 Also improve the detection logic of the first field.
21912 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21914 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21915 decoder: h264: add MVC profiles compatibility logic.
21916 Add safe fallbacks for MVC profiles:
21917 - all MultiView High profile streams with 2 views at most can be decoded
21918 with a Stereo High profile compliant decoder ;
21919 - all Stereo High profile streams with only progressive views can be
21920 decoded with a MultiView High profile compliant decoder ;
21921 - all drivers that support slice-level decoding could normally support
21922 MVC profiles when the DPB holds at most 16 frames.
21924 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21926 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21927 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21928 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21929 decoder: h264: add initial support for MVC.
21930 https://bugzilla.gnome.org/show_bug.cgi?id=721772
21932 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21934 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21935 decoder: h264: dynamically allocate the DPB.
21936 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
21937 for supporting the MVC allocation requirements.
21939 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21941 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21942 decoder: h264: fix detection of access unit boundaries.
21943 In order to have a stricter conforming implementation, we need to carefully
21944 detect access unit boundaries. Additional operations could be necessary to
21945 perform at those boundaries.
21947 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21949 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21950 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
21951 Detect the first VCL NAL unit of a picture for MVC, based on the
21952 view_id as per H.7.4.1.2.4. Note that we only need to detect new
21954 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21956 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21958 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21959 decoder: h264: properly handle Prefix NAL units.
21960 Always cache the previous NAL unit so that we could check whether
21961 there is a Prefix NAL unit immediately preceding the current slice
21962 or IDR NAL unit. In that case, the NAL unit metadata is copied into
21963 the current NAL unit. Otherwise, some default values are inferred,
21964 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
21965 [infer default values for slice if previous NAL was not a Prefix]
21966 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21968 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
21970 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21971 decoder: h264: add support for MVC base views.
21972 Allow decoding for base views of MVC encoded streams. For now, just skip
21973 the slice extension and prefix NAL units, and skip non-base view frames.
21974 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
21975 [fixed memory leak, improved check for MVC NAL units]
21976 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21978 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21980 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21981 decoder: h264: simplify storage of decoded picture into DPB.
21982 Factor out process by which the decoded picture with the lowest POC
21983 is found, and possibly output. Likewise, the storage and marking of
21984 a reference decoded, or non-reference decoded picture, into the DPB
21985 could also be simplified as they mostly share the same operations.
21987 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21989 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21990 decoder: h264: minor clean-ups.
21991 Make init_picture_ref_lists() more consistent with other functions
21992 related to the reference marking process by supplying the current
21993 picture as argument.
21995 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21997 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21998 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21999 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22000 display: add utility function to query VA driver name.
22001 Add gst_vaapi_display_get_vendor_string() helper function to query
22002 the underlying VA driver name. The display object owns the resulting
22003 string, so it shall not be deallocated.
22004 That function is thread-safe. It could be used for debugging purposes,
22007 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22009 * gst-libs/gst/vaapi/gstvaapidisplay.c:
22010 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
22011 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22012 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
22013 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
22014 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
22015 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22016 display: make cache maintenance really MT-safe.
22017 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
22018 environments. This makes sure the display cache is also consistent
22019 during the whole display creation process. In the former implementation,
22020 there were risks that display cache got updated in another thread.
22022 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22024 * gst-libs/gst/vaapi/gstvaapicontext.c:
22025 context: allow dynamic growth of VA surfaces pool.
22026 Add support for dynamic growth of the VA surfaces pool. For decoding,
22027 this implies the recreation of the underlying VA context, as per the
22028 requirement from VA-API. Besides, only increases are supported, not
22031 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22033 * gst-libs/gst/vaapi/gstvaapicontext.c:
22034 context: reset VA context if VA surfaces set changed.
22035 It is a requirement from VA-API specification that the VA context got
22036 from vaCreateContext(), for decoding purposes, binds the supplied set
22037 of VA surfaces. This means that if the set of VA surfaces is to be
22038 changed for the current decode session, then the VA context needs to
22039 be recreated with the new set of VA surfaces.
22041 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22043 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22044 decoder: h264: fix assignment of LongTermFrameIdx.
22045 Complement fix committed as e95a42e.
22046 The H.264 AVC standard has to say: if the field is part of a reference
22047 frame or a complementary reference field pair, and the other field of
22048 the same reference frame or complementary reference field pair is also
22049 marked as "used for long-term reference", the reference frame or
22050 complementary reference field pair is also marked as "used for long-term
22051 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
22052 This fixes decoding of MR9_BT_B in strict mode.
22053 https://bugs.freedesktop.org/show_bug.cgi?id=64624
22054 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22056 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22058 * gst-libs/gst/vaapi/gstvaapicontext.c:
22059 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22060 * gst-libs/gst/vaapi/gstvaapiutils.c:
22061 * gst-libs/gst/vaapi/gstvaapiutils.h:
22062 decoder: h264: properly support grayscale formats.
22063 Request the correct chroma format for decoding grayscale streams.
22064 i.e. make lookups of the VA chroma format more generic, thus possibly
22065 supporting more formats in the future.
22066 This means that, if a VA driver doesn't support grayscale formats,
22067 it is now going to fail. We cannot safely assume that maybe grayscale
22068 was implemented on top of some YUV 4:2:0 with the chroma components
22071 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22073 * gst-libs/gst/vaapi/gstvaapifilter.c:
22074 * gst-libs/gst/vaapi/gstvaapifilter.h:
22075 * tests/test-filter.c:
22076 build: fix source file modes.
22077 A few source files are marked executable in error - fix them
22078 https://bugzilla.gnome.org/show_bug.cgi?id=723748
22079 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
22081 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22084 * gst-libs/gst/vaapi/Makefile.am:
22085 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22086 * gst/vaapi/gstvaapidecode.c:
22087 build: fix conditional compilation of VP8 decoder.
22088 https://bugzilla.gnome.org/show_bug.cgi?id=729170
22089 [added check for VASliceParameterBufferBase fields]
22090 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22092 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22094 * gst-libs/gst/codecparsers/Makefile.am:
22095 build: fix make dist for codecparsers.
22097 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22099 * ext/codecparsers:
22100 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
22101 h264: fix parsing of slice groups for map type = 2
22103 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22105 * ext/codecparsers:
22106 codecparsers: update to gst-vaapi branch commit f44edfc.
22107 h264: fix derivation of default scaling lists
22109 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
22111 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22112 decoder: h264: fix long-term reference picture marking process.
22113 Fix reference picture marking process with memory_management_control_op
22114 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
22115 picture, or the current picture.
22116 This fixes decoding of FRExt_MMCO4_Sony_B.
22117 https://bugs.freedesktop.org/show_bug.cgi?id=64624
22118 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22119 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
22120 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22122 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22124 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22125 decoder: h264: fix initialization of RefPicLists for multiple slices.
22126 The initialization of reference picture lists (8.2.4.2) applies to all
22127 slices. So, the RefPicList0/1 lists need to be constructed prior to
22128 each slice submission to the HW decoder.
22129 This fixes decoding of video sequences where frames are encoded with
22130 multiple slices of different types, e.g. 4 slices in this order I, P,
22131 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
22132 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22134 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
22136 * ext/codecparsers:
22137 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22138 decoder: h264: skip SPS extension and auxiliary slice NALs.
22139 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
22140 are present in a video, decoders shall perform the (optional) decoding
22141 process specified for these NAL units or shall ignore them (7.4.1).
22142 Implement option 2 (skip) for now, as alpha composition is not
22143 supported yet during the decoding process.
22144 This fixes decoding of the primary coded video in alphaconformanceG.
22145 https://bugzilla.gnome.org/show_bug.cgi?id=703928
22146 https://bugzilla.gnome.org/show_bug.cgi?id=728869
22147 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22148 [skip NAL units earlier, i.e. at parsing time]
22149 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22151 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
22153 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22154 decoder: h264: fix slice data bit offset with MVC NAL units.
22155 When MVC slice NAL units (coded slice extension and prefix NAL) are
22156 present, the number of NAL header bytes is 3, not 1 as usual.
22157 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
22158 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22160 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22162 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22163 decoder: h264: fix activation of picture and sequence parameters.
22164 At the time the first VCL NAL unit of a primary coded picture is found,
22165 and if that NAL unit was parsed to be an SPS or PPS, then the entries
22166 in the parser may have been overriden. This means that, when the picture
22167 is to be decoded, slice_hdr->pps could point to an invalid (the next)
22169 So, one way to solve this problem is to not use the parser PPS and
22170 SPS info but rather maintain our own activation chain in the decoder.
22171 https://bugzilla.gnome.org/show_bug.cgi?id=724519
22172 https://bugzilla.gnome.org/show_bug.cgi?id=724518
22174 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22176 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22177 decoder: h264: retain SEI messages until the end of frame.
22178 Retain the SEI messages that were parsed from the access unit until we
22179 have completely decoded the current frame. This is done so that we can
22180 peek at that data whenever necessary during decoding. e.g. for exposing
22181 3D stereoscopic information at a later stage.
22183 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22185 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22186 decoder: h264: add support for grayscale encoded clips.
22187 Fix support for grayscale encoded video clips, and possibly others if
22188 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
22189 the decision that a surface with the desired chroma format is not
22190 supported to the actual VA driver implementation.
22191 https://bugzilla.gnome.org/show_bug.cgi?id=728144
22193 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22195 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22196 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
22197 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
22198 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
22199 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
22200 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22201 decoder: default to YUV 4:2:0 VA surfaces.
22202 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
22203 make sure all codecs use YUV 4:2:0 output format for now, by default.
22205 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22207 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22208 * gst-libs/gst/vaapi/gstvaapidecoder.h:
22209 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22210 decoder: re-indent GstVaapiDecoder base object.
22212 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22214 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22215 encoder: derive chroma type from video format.
22216 Cope with previous VA context change to derive the correct surface chroma
22217 type from the input video format.
22219 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22221 * gst-libs/gst/vaapi/gstvaapicontext.c:
22222 * gst-libs/gst/vaapi/gstvaapicontext.h:
22223 context: add support for non-YUV 4:2:0 formats.
22224 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
22225 for the upper layer to specify the desired chroma type. If the chroma
22226 type field is not set (or yields zero), then YUV 4:2:0 format is used
22229 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22231 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22232 vp8: fix per-segment deblocking filter level in relative mode.
22233 Fix possible bug when a per-segment deblocking filter level value
22234 needs to be set in non-absolute mode, i.e. when the loop filter update
22235 value is negative in delta mode.
22236 Also clamp the resulting filter level value to 0..63 range.
22238 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22240 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22241 vp8: fix check for disabling the loop filter (again).
22242 Improve condition to disable the loop filter. The previous heuristic
22243 used to check all filter levels, for all segments. It turns out that
22244 only the base filter_level value defined in the frame header needs
22246 This fixes 00-comprehensive-013.
22248 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22250 * gst-libs/gst/codecparsers/Makefile.am:
22251 * gst/vaapi/Makefile.am:
22252 build: fix make dist with certain conditionals not met.
22253 Fix generation of source tarballs when certain conditionals are not
22254 met. e.g. always include all buildable codecparsers sources in the
22255 distribution tarball, fix plug-in element sources set to include X11
22258 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22261 build: add missing files for GStreamer 0.10.
22262 Add missing GstVideoEncoder implementation files to fix build with ancient
22263 GStreamer 0.10 stack.
22264 https://bugzilla.gnome.org/show_bug.cgi?id=723964
22266 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22269 build: add missing files for VP8 bitstream parser.
22270 Fix make dist for building the VP8 bitstream parser.
22272 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22275 * ext/libvpx/Makefile.am:
22276 * gst-libs/gst/codecparsers/Makefile.am:
22277 vp8: allow compilation without the built-in libvpx.
22278 The built-in libvpx serves multiple purposes, among which the most
22279 important ones could be: track the most up-to-date, and optimized,
22280 range decoder; allow for future hybrid implementations (non-VLD);
22281 and have a completely independent range decoder implementation.
22283 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22285 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22286 vp8: propagate PTS from demux frame.
22287 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
22288 or parser would already have determined the PTS from a previous stage.
22290 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22293 * debian.upstream/libgstvaapi.install.in:
22294 * ext/libvpx/Makefile.am:
22295 * ext/libvpx/sources.frag:
22296 * gst-libs/gst/codecparsers/Makefile.am:
22297 vp8: fix compilation with built-in libvpx.
22298 Apply correct patch from fd.o #722760 to fix several issues: update the
22299 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
22302 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22308 * ext/libvpx/Makefile.am:
22309 * ext/libvpx/gstlibvpx.c:
22310 * ext/libvpx/gstlibvpx.h:
22311 * ext/libvpx/libgstcodecparsers_vpx.vers:
22312 * ext/libvpx/sources.frag:
22313 * ext/libvpx/upstream:
22314 * gst-libs/gst/codecparsers/Makefile.am:
22315 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
22316 vp8: use range decoder from libvpx.
22317 Add libvpx submodule that tracks the upstream version 1.3.0. This is
22318 needed to build a libgstcodecparsers_vpx.so library with all symbols
22319 placed into the GSTREAMER namespace.
22321 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22323 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22324 vp8: fix check for disabling the loop filter.
22326 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
22330 * gst-libs/gst/codecparsers/Makefile.am:
22331 * gst-libs/gst/vaapi/Makefile.am:
22332 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22333 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22334 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22335 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22336 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22337 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
22338 * gst-libs/gst/vaapi/gstvaapiprofile.c:
22339 * gst-libs/gst/vaapi/gstvaapiprofile.h:
22340 * gst/vaapi/gstvaapidecode.c:
22341 Add initial VP8 decoder.
22342 https://bugzilla.gnome.org/show_bug.cgi?id=722761
22343 [complete overhaul, fixed support for resolution changes]
22344 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22346 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22348 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22349 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
22350 The gst_h264_parse_parse_sei() function now returns an array of SEI
22351 messages, instead of a single SEI message. Reason: it is allowed to
22352 have several SEI messages packed into a single SEI NAL unit, instead
22353 of multiple NAL units.
22355 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22357 * ext/codecparsers:
22358 codecparsers: update to gst-vaapi-branch commit a454f86.
22359 b2eb5f6 vp8: rename dboolhuff symbols
22360 b74a881 vp8: add GStreamer native utilities
22361 2940ac6 add VP8 bitstream parser
22363 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22365 * ext/codecparsers:
22366 codecparsers: update to gst-vaapi-branch commit d459bc5.
22367 d459bc5 h264: set framerate even for interlaced videos
22368 c78b82c h264: add support for Recovery Point SEI message
22369 7693bac h264: add support for Frame Packing Arrangement SEI message
22370 31fafa7 h264: add support for Stereo Video Information SEI message
22371 8b113a6 h264: parse seq_parameter_set_mvc_extension()
22372 040f9b8 h264: parse MVC syntax elements
22373 cc18ef3 h264: add nal_reader_skip_long() helper
22374 7e76a48 h264: fix slice_header() parsing for MVC
22375 caf46d8 h264: add gst_h264_parse_nalu_header() helper
22376 f75074e h264: add gst_h264_parse_sps_data() helper
22377 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
22378 4e36737 h264: fix skipping of unsupported SEI messages
22379 5300766 h264: fix SEI buffering_period() parsing
22381 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22383 * ext/codecparsers:
22384 * gst-libs/gst/codecparsers/Makefile.am:
22385 codecparsers: update to gst-vaapi-branch commit 8fadf40.
22386 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
22387 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
22388 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
22389 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
22390 8ec5816 h265: Fix segfault when parsing HRD parameter
22391 5b1730f h265: Fix segfault when parsing VPS
22392 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
22393 7ba641d h265: Fix debug output
22394 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
22396 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22398 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22399 decoder: h264: fix robustness patch for bytestream format.
22400 Fix parser and decoder state to sync at the right locations. This is
22401 because we could reset the parser state, while the decoder state was
22402 not copied yet, e.g. when parsing several NAL units from multiple frames
22403 whereas the current frame was not decoded yet.
22404 This is a regression brought in by commit 6fe5496.
22406 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22409 * pkgconfig/Makefile.am:
22410 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22411 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22412 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22413 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22414 build: fix pkgconfig file names (again).
22415 It turns out it is more convenient to have only pkgconfig files named
22416 after the installed GStreamer API version (1.0) instead of using all
22417 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
22418 altogether anyway, so align pkgconfig file names to that.
22420 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22422 * debian.upstream/libgstvaapi-dev.install.in:
22423 * gst-libs/gst/vaapi/Makefile.am:
22424 * pkgconfig/gstreamer-vaapi.pc.in:
22425 build: fix packaging for GStreamer 1.2.
22426 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
22427 the pkgconfig version (1.0) instead of the intended API version (1.2).
22428 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
22429 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
22431 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22434 Bump version for development.
22436 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22438 * debian.upstream/control.in:
22439 debian: fix trailing whitespace in description.
22441 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22443 * debian.upstream/control.in:
22444 * debian.upstream/copyright:
22445 debian: fix package description.
22446 Try to improve package description for the compiled plug-in elements
22447 available in there. e.g. only display vaapidownload and vaapiupload
22448 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
22449 encoding is enabled, etc.
22450 Also increase the copyright notice date.
22452 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22454 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22455 build: fix warnings on 64-bit platforms.
22457 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22459 * gst-libs/gst/vaapi/gstvaapicontext.c:
22460 * gst-libs/gst/vaapi/gstvaapiutils.c:
22461 build: fix for older versions of VA-API (< 0.34.0).
22462 Fix build with older versions of VA-API (< 0.34.0), or versions without
22463 good enough headers for encoding support for instance.
22465 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22471 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22475 VA-API up to 0.34.0 is actually supported. Mention new video encoding
22476 support. Update copyright years, list of supported Intel HD Graphics
22479 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22484 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22486 * tests/test-filter.c:
22487 tests: test-filter: fix "deinterlace" option parse.
22488 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
22489 string was provided, i.e. if it remained set to NULL.
22491 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22493 * gst-libs/gst/vaapi/Makefile.am:
22494 * gst-libs/gst/vaapi/gstvaapicontext.c:
22495 * gst-libs/gst/vaapi/gstvaapicontext.h:
22496 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22497 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
22498 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
22499 libs: factor out usages of vaGetConfigAttributes().
22500 Add gst_vaapi_get_config_attribute() helper function that takes a
22501 GstVaapiDisplay and the rest of the arguments with VA types. The aim
22502 is to have thread-safe VA helpers by default.
22504 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22506 * gst-libs/gst/vaapi/gstvaapiutils.c:
22507 * gst-libs/gst/vaapi/gstvaapiutils.h:
22508 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22509 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22510 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22511 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22512 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22513 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22514 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22515 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22516 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22517 libs: re-indent all source code related to VA utilities.
22519 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22521 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
22522 libs: add missing file (libgstvaapi_priv_check.h).
22524 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22526 * gst-libs/gst/vaapi/gstvaapicontext.c:
22527 * gst-libs/gst/vaapi/gstvaapicontext.h:
22528 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22529 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22530 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22531 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22532 encoder: notify the encoder of the submitted packed headers.
22533 Make sure to configure the encoder with the set of packed headers we
22534 intend to generate and submit. i.e. make selection of packed headers
22535 to submit more robust.
22537 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22539 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22540 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22541 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22542 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22543 encoder: fix and factor out check for supported rate-control modes.
22544 Cache the first compatible GstVaapiProfile found if the encoder is not
22545 configured yet. Next, factor out the code to check for the supported
22546 rate-control modes by moving out vaGetConfigAttributes() to a separate
22547 function, while also making sure that the attribute type is actually
22548 supported by the encoder.
22549 Also fix the default set of supported rate control modes to not the
22550 "none" variant. It's totally useless to expose it at this point.
22552 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22554 * gst-libs/gst/vaapi/gstvaapicontext.c:
22555 * gst-libs/gst/vaapi/gstvaapicontext.h:
22556 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22557 context: move rate-control mode to encoder specific config.
22558 Move usage-specific config out of the common GstVaapiContextInfo.
22559 Create a specialized config for encoding and move rate-control mode
22562 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22564 * gst-libs/gst/vaapi/gstvaapicontext.c:
22565 * gst-libs/gst/vaapi/gstvaapicontext.h:
22566 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22567 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22568 context: introduce concept of usage.
22569 Introduce GstVaapiContextUsage so that to explicitly determine the
22570 usage of a VA context. This is useful in view to simplifying the
22571 creation of VA context for VPP too.
22573 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22575 * gst-libs/gst/vaapi/gstvaapicontext.c:
22576 context: fix get_attribute() value result.
22577 Unknown attributes, or attributes that are not supported for the given
22578 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
22579 So, return failure in this case.
22581 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22583 * gst-libs/gst/vaapi/Makefile.am:
22584 * gst-libs/gst/vaapi/gstvaapicontext.c:
22585 * gst-libs/gst/vaapi/gstvaapicontext.h:
22586 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
22587 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
22588 * gst-libs/gst/vaapi/gstvaapisurface.c:
22589 context: move overlay composition to separate files.
22590 Move GstVideoOverlayComposition handling to separate source files.
22591 This helps keeing GstVaapiContext core implementation to the bare
22592 minimal, i.e. simpy helpers to create a VA context and handle pool
22593 of associated VA surfaces.
22595 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22597 * gst-libs/gst/vaapi/gstvaapicontext.c:
22598 * gst-libs/gst/vaapi/gstvaapicontext.h:
22599 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22600 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22601 context: clean-ups. Strip down APIs.
22602 Improve documentation and debug messages. Clean-up APIs, i.e. strip
22603 them down to the minimal set of interfaces. They are private, so no
22604 need expose getters for instance.
22606 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22608 * gst-libs/gst/vaapi/gstvaapicontext.c:
22609 * gst-libs/gst/vaapi/gstvaapicontext.h:
22610 context: re-indent all GstVaapiContext related source code.
22612 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22614 * gst-libs/gst/vaapi/Makefile.am:
22615 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22616 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22617 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22618 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22619 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22620 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22621 * gst-libs/gst/vaapi/gstvaapiutils.h:
22622 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22623 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22624 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22625 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22626 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22627 libs: check that private headers remain private.
22628 Make sure that libgstvaapi private headers remain internally used to
22629 build libgstvaapi libraries only. All header dependencies were reviewed
22630 and checks for IN_LIBGSTVAAPI definition were added accordingly.
22631 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
22634 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22637 Bump library major version.
22638 Bump the library major version due to API/ABI changes that occurred in
22639 the imaging API. In particular, GstVaapiDisplay interfaces no longer
22640 expose any GstCaps but provide GArray based ones e.g. to determine the
22641 set of supported decode/encode profiles.
22643 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22645 * gst-libs/gst/vaapi/glibcompat.h:
22646 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22647 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22648 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22649 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22650 * gst-libs/gst/vaapi/gstvaapicontext.c:
22651 * gst-libs/gst/vaapi/gstvaapicontext.h:
22652 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22653 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22654 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22655 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22656 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22657 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22658 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22659 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22660 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22661 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22662 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22663 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22664 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22665 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22666 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22667 * gst-libs/gst/vaapi/gstvaapifilter.c:
22668 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22669 * gst-libs/gst/vaapi/gstvaapisurface.c:
22670 * gst-libs/gst/vaapi/gstvaapisurface.h:
22671 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22672 * gst-libs/gst/vaapi/gstvaapitypes.h:
22673 * gst-libs/gst/vaapi/gstvaapiutils.c:
22674 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22675 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22676 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22677 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22678 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22679 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22680 * gst-libs/gst/vaapi/gstvaapivalue.c:
22681 * gst-libs/gst/vaapi/gstvaapivalue.h:
22682 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22683 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22684 * gst/vaapi/gstvaapidecode.c:
22685 * gst/vaapi/gstvaapiencode.c:
22686 * gst/vaapi/gstvaapiencode.h:
22687 * gst/vaapi/gstvaapiencode_h264.c:
22688 * gst/vaapi/gstvaapiencode_h264.h:
22689 * gst/vaapi/gstvaapiencode_mpeg2.c:
22690 * gst/vaapi/gstvaapiencode_mpeg2.h:
22691 * gst/vaapi/gstvaapipluginbase.c:
22692 * gst/vaapi/gstvaapipluginutil.c:
22693 * gst/vaapi/gstvaapipluginutil.h:
22694 * gst/vaapi/gstvaapipostproc.c:
22695 * gst/vaapi/gstvaapipostproc.h:
22696 * gst/vaapi/gstvaapisink.c:
22697 * gst/vaapi/gstvaapisink.h:
22698 * gst/vaapi/gstvaapivideometa_texture.c:
22699 * tests/simple-decoder.c:
22700 legal: update copyright notice dates.
22702 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22704 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22705 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22706 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22707 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22708 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22709 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22710 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22711 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22712 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22713 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22714 * gst/vaapi/gstvaapiencode.c:
22715 * gst/vaapi/gstvaapiencode.h:
22716 * gst/vaapi/gstvaapiencode_h264.c:
22717 * gst/vaapi/gstvaapiencode_h264.h:
22718 * gst/vaapi/gstvaapiencode_mpeg2.c:
22719 * gst/vaapi/gstvaapiencode_mpeg2.h:
22720 legal: add per-file authorship information.
22722 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22724 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22725 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22726 decoder: fix video codec frame number in standalone mode.
22727 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
22728 stream in standalone mode. While we are at it, improve the debugging
22729 messages to also include that frame number.
22731 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
22733 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22734 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22735 decoder: fix crash on invalid pointer for GST_DEBUG().
22736 When decoding failed, or that the frame was dropped, the associated
22737 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
22738 message needs to check whether the proxy is actually present or not.
22739 https://bugzilla.gnome.org/show_bug.cgi?id=722403
22740 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
22741 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22743 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22745 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22746 encoder: h264: disable NAL HRD parameters for now.
22747 Don't emit NAL HRD parameters for now in the SPS headers because the
22748 SEI buffering_period() and picture_timing() messages are not handled
22749 yet. Some additional changes are necessary to get it right.
22750 https://bugzilla.gnome.org/show_bug.cgi?id=722734
22752 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22754 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22755 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22756 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22757 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22758 encoder: h264: fix default CPB buffer size.
22759 Fix default CPB buffer size to something more reasonable (1500 ms)
22760 and that still fits the level limits. This is a non configurable
22761 property for now. The initial CPB removal delay is also fixed to
22763 https://bugzilla.gnome.org/show_bug.cgi?id=722087
22765 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22767 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22768 encoder: h264: fix bitrate encoding for HRD conformance.
22769 Round down the calculated, or supplied, bitrate (kbps) into a multiple
22770 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
22771 that to have less losses in precision. Likewise, don't round up because
22772 that could be a strict constraint imposed by the user.
22774 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22776 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22777 encoder: h264: fix level lookup constraints wrt. bitrate.
22778 Fix the level calculation involving bitrate limits. Since we are
22779 targetting NAL HRD conformance, the check against MaxBR from the
22780 Table A-1 limits shall involve cpbBrNalFactor depending on the
22783 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22785 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22786 encoder: h264: submit sequence parameter only once.
22787 Submit sequence parameter buffers only once, or when the bitstream
22788 was reconfigured in a way that requires such. Always submit packed
22789 sequence parameter buffers at I-frame period, if the VA driver needs
22791 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22793 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22795 * gst-libs/gst/vaapi/gstvaapicontext.c:
22796 * gst-libs/gst/vaapi/gstvaapicontext.h:
22797 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22798 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22799 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22800 encoder: h264: only submit packed headers when required.
22801 Make sure to submit the packed headers only if the underlying VA driver
22802 requires those. Currently, only handle packed sequence and picture
22804 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22806 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22808 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22809 encoder: h264: fix ip_period value in sequence parameter.
22810 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
22811 between the I-frame and the next P-frame. So, this also accounts for
22812 any additional B-frame in the middle of it.
22813 This fixes rate control heuristics for certain VA drivers.
22814 https://bugzilla.gnome.org/show_bug.cgi?id=722735
22816 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22818 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22819 encoder: h264: fix level when bitrate is automatically computed.
22820 Fix level characterisation when the bitrate is automatically computed
22821 from the active coding tools. i.e. ensure the bitrate once the profile
22822 is completely characterized but before the level calculation process.
22824 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22826 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22827 encoder: h264: clean-ups.
22828 Document and rename a few functions here and there. Drop code that
22829 caps num_bframes variable in reset_properties() since they shall
22830 have been checked beforehand, during properties initialization.
22832 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22834 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22835 encoder: h264: clean-up bitwriter related utilities.
22836 Clean-up GstBitWriter related utility functions and simplify notations.
22837 While we are at it, also make bitstream writing more robust should an
22838 overflow occur. We could later optimize for writing headers capped to
22839 their maximum possible size by using the _unchecked() helper variants.
22841 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22843 * gst-libs/gst/vaapi/Makefile.am:
22844 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22845 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22846 encoder: h264: completely remove private headers.
22847 Drop private header since it was originally used to expose internals
22848 to the plugin element. The proper interface is now the properties API,
22849 thus rendering private headers totally obsolete.
22851 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22853 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22854 encoder: h264: fix PPS header packing with profile < high.
22855 Fix PPS header packing when profile is below High since 8x8 transform
22856 mode and scaling lists are High Profile features.
22858 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22860 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22861 encoder: h264: always emit VUI parameters for framerate.
22862 Always emit VUI parameters for timing_info, which includes framerate
22865 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22867 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22868 encoder: h264: really fix frame cropping rectangle calculation.
22869 Make frame cropping rectangle calculation future proof, i.e. exactly
22870 follow the specification (7-18) to (7-21), and subsampling definitions
22872 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22873 https://bugzilla.gnome.org/show_bug.cgi?id=722238
22875 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
22877 * gst/vaapi/gstvaapisink.c:
22878 * gst/vaapi/gstvaapisink.h:
22879 vaapisink: set csc render flags from sinkpad caps.
22880 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
22881 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
22883 https://bugzilla.gnome.org/show_bug.cgi?id=722255
22884 [factored out code, added SMPTE240M, handle per-buffer flags]
22885 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22887 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22889 * gst-libs/gst/vaapi/gstvaapisurface.h:
22890 * gst-libs/gst/vaapi/gstvaapiutils.c:
22891 * gst/vaapi/gstvaapipostproc.c:
22892 surface: rework render flags.
22893 Pack render flags per category and provide more flags into the color
22894 standard category. In particular, cover for SMPTE-240M.
22896 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
22898 * gst-libs/gst/vaapi/gstvaapifilter.c:
22899 * gst/vaapi/gstvaapipostproc.c:
22900 * gst/vaapi/gstvaapipostproc.h:
22901 vaapipostproc: add support for colorbalance filters.
22902 Add support for hue, saturation, brightness and constrat adjustments.
22903 Also fix cap info local copy to match the really expected cap subtype
22905 https://bugzilla.gnome.org/show_bug.cgi?id=720376
22906 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22908 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
22910 * gst/vaapi/gstvaapipostproc.c:
22911 vaapipostproc: fix support for "sharpen" filter.
22912 Fix copy/paste error when submitting the "sharpen" value to the
22913 GstVaapiFilter instance.
22914 https://bugzilla.gnome.org/show_bug.cgi?id=720375
22915 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22917 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
22920 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22921 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22922 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22923 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22924 * pkgconfig/gstreamer-vaapi.pc.in:
22925 pkgconfig: plugin dir should use PKG version not API version.
22926 Fix the pluginsdir and includedir variables in the generated pkgconfig
22927 (.pc) files. The location needs to be built with the PKG version in
22928 mind instead of the API version.
22929 While we are at it, also fix the PKG version for GStreamer >= 1.3.
22930 https://bugzilla.gnome.org/show_bug.cgi?id=720820
22931 [additional fixes for includedir and pkg requirements]
22932 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22934 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
22936 * gst/vaapi/gstvaapisink.c:
22937 vaapisink: fix display initialization in GstVideoOverlay implementation.
22938 When gst_vaapisink_video_overlay_set_window_handle() is called early,
22939 before the pipeline has been set to PLAYING, the display has not yet
22940 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
22941 up-to-date. For this reason the foreign XID is not attached.
22942 Now _ensure_display() is called earlier.
22943 https://bugzilla.gnome.org/show_bug.cgi?id=722244
22944 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22946 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22948 * gst/vaapi/gstvaapisink.c:
22949 vaapisink: expose the raw video formats in static caps template.
22950 Expose all raw video formats in the static caps template since the
22951 vaapisink is supporting raw data. We will get the exact set of formats
22952 supported by the driver dynamically through the _get_caps() routine.
22953 https://bugzilla.gnome.org/show_bug.cgi?id=703271
22954 https://bugzilla.gnome.org/show_bug.cgi?id=720737
22955 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22957 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22959 * gst/vaapi/gstvaapidecode.c:
22960 vaapidecode: query downstream caps features like GLTextureUploadMeta.
22961 Fix vaapidecode to correctly report caps features downstream, when
22962 a custom pipeline is built manually.
22963 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22964 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22966 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22968 * gst/vaapi/gstvaapidecode.c:
22969 vaapidecode: add system memory caps to template caps.
22970 Since vaapidecode provides buffer that can be mapped as regular memory,
22971 those caps should be added to the template caps. That only applies to
22973 https://bugzilla.gnome.org/show_bug.cgi?id=720608
22974 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22976 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
22978 * gst/vaapi/gstvaapidecode.c:
22979 vaapidecode: fix hang on SIGINT.
22980 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
22981 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
22982 locked. This fixes a deadlock on state change from PAUSED to READY.
22983 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22984 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22986 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
22988 * gst/vaapi/gstvaapiencode.c:
22989 vaapiencode: fix possible hang on SIGINT.
22990 vaapiencode might hang when the pipeline is stopped without any EOS,
22991 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
22992 running and locked. This fixes a possible deadlock on state change
22993 from PAUSED to READY.
22994 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22995 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22997 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22999 * gst/vaapi/gstvaapiencode.c:
23000 vaapiencode: fix typo in error message.
23001 Fix incomplete error message in gst_vaapiencode_push_frame().
23003 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23005 * gst/vaapi/gstvaapipluginutil.c:
23006 * gst/vaapi/gstvaapipluginutil.h:
23007 plugins: add helpers to create video caps with features.
23008 Add gst_vaapi_video_format_new_template_caps_with_features() helper
23009 function to add the supplied caps feature string on GStreamer >= 1.2.
23010 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
23011 the "best" caps feature to use for the supplied pad. In practice, we
23012 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
23013 and finally the system memory caps.
23014 https://bugzilla.gnome.org/show_bug.cgi?id=719372
23016 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23018 * gst/vaapi/gstvaapivideometa_texture.c:
23019 plugins: don't apply overlay composition in GLTextureUpload function.
23020 The GLTextureUpload function is not in charge of doing the overlay
23021 composition if any.
23022 https://bugzilla.gnome.org/show_bug.cgi?id=721859
23023 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23025 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23027 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23028 encoder: re-order submission of VA objects.
23029 Change the submission order of VA objects so that to make that process
23030 more logical. i.e. submit sequence parameter first, if any; next the
23031 packed headers associated to sequece, picture or slices; and finally
23032 the actual picture and associated slices.
23034 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23036 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23037 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23038 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23039 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23040 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23041 encoder: clean-up objects.
23042 Various clean-ups to improve consistency and readability: rename some
23043 variables, drop unused macro definitions, drop initialization of vars
23044 that are zero-initialized from the base class, drop un-necessary casts,
23045 allocate GPtrArrays with a destroy function.
23047 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23049 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23050 encoder: h264: fix frame cropping rectangle calculation.
23051 Fix frame cropping rectangle calculation to handle horizontal resolutions
23052 that don't match a multiple of 16 pixels, but also the vertical resolution
23053 that was incorrectly computed for progressive sequences too.
23054 https://bugzilla.gnome.org/show_bug.cgi?id=722089
23056 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23058 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23059 encoder: h264: improve automatic bitrate calculation.
23060 For non "Constant-QP" modes, we could provide more reasonable heuristics
23061 for the target bitrate. In general, 48 bits per macroblock with all the
23062 useful coding tools enable looks safe enough. Then, this rate is raised
23063 by +10% to +15% for each coding tool that is disabled.
23064 https://bugzilla.gnome.org/show_bug.cgi?id=719699
23066 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23068 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23069 encoder: h264: support "high-compression" tuning option.
23070 Add support for "high-compression" tuning option. First, determine the
23071 largest supported profile by the hardware. Next, check any target limit
23072 set by the user. Then, enable each individual coding tool based on the
23073 resulting profile_idc value to use.
23074 https://bugzilla.gnome.org/show_bug.cgi?id=719696
23076 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23078 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23079 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23080 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23081 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23082 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23083 * gst/vaapi/gstvaapiencode_h264.c:
23084 encoder: h264: allow target decoder constraints.
23085 Allow user to precise the largest profile to use for encoding due
23086 to target decoder constraints. For instance, if CABAC entropy coding
23087 mode is requested by "constrained-baseline" profile only is desired,
23088 then an error is returned during codec configuration.
23089 Also make sure that the suitable profile we derived actually matches
23090 what the HW can cope with.
23091 https://bugzilla.gnome.org/show_bug.cgi?id=719694
23093 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23095 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23096 encoder: h264: refine size of coded buffer.
23097 Refine the heuristic to determine the maximum size of a coded buffer
23098 to account for the exact number of slices. set_context_info() is the
23099 last step during codec reconfiguration, no additional change is done
23100 afterwards, so re-using the num_slices field here is fine.
23101 https://bugzilla.gnome.org/show_bug.cgi?id=719953
23103 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
23105 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23106 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23107 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23108 encoder: h264: expose more coding tools.
23109 Add new H.264 coding tools to improve compression:
23110 - "cabac": enable CABAC entropy coding (default: FALSE);
23111 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
23112 https://bugzilla.gnome.org/show_bug.cgi?id=719693
23113 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23115 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23117 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23118 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23119 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23120 encoder: h264: derive profile and level from active coding tools.
23121 Automatically derive the minimum profile and level to be used for
23122 encoding, based on the activated coding tools. The encoder will
23123 be trying to generate a bitstream that has the best chances to be
23124 decoded on most platforms by default.
23125 Also change the default profile to "constrained-baseline" so that
23126 to ensure maximum compatibility when the stream is decoded.
23127 https://bugzilla.gnome.org/show_bug.cgi?id=719691
23129 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23131 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23132 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23133 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23134 encoder: h264: fix hardware profile lookup.
23135 Fix lookup for a suitable HW profile, as to be used by the underlying
23136 hardware, based on heuristics that lead to characterize the SW profile,
23137 i.e. the one used by the SW level encoding logic.
23138 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
23139 as they should respectively match the baseline and main profile.
23140 https://bugzilla.gnome.org/show_bug.cgi?id=719827
23142 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23144 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23145 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23146 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23147 encoder: h264: support only the byte-stream format.
23148 The libgstvaapi core encoders are meant to support raw bitstreams only.
23149 Henceforth, we are always producing a stream in "byte-stream" format.
23150 However, the "codec-data" buffer which holds SPS and PPS headers is
23151 always available. The "lengthSizeMinusOne" field is always set to 3
23152 so that in-place "byte-stream" format to "avc" format conversion could
23155 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23157 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23158 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23159 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23160 * gst/vaapi/gstvaapiencode_h264.c:
23161 encoder: h264: clean-ups.
23162 Various clean-ups to improve consistency and readability: rename some
23163 variables, drop unused macro definitions, drop initialization of vars
23164 that are zero-initialized from the base class, drop un-necessary casts.
23166 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23168 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23169 encoder: mpeg2: fix hardware profile lookup.
23170 Fix lookup for a suitable HW profile, as to be used by the underlying
23171 hardware, based on heuristics that lead to characterize the SW profile,
23172 i.e. the one used by the SW level encoding logic.
23174 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23176 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23177 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23178 encoder: mpeg2: derive profile and level from active coding tools.
23179 Automatically derive the minimum profile and level to be used for
23180 encoding, based on the activated coding tools. Improve lookup for
23181 the best suitable level with the new MPEG-2 helper functions.
23182 Also change the default profile to "simple" so that to ensure maximum
23183 compatibility when the stream is decoded.
23184 https://bugzilla.gnome.org/show_bug.cgi?id=719703
23186 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23188 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23189 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23190 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23191 encoder: mpeg2: clean-ups.
23192 Various clean-ups to improve consistency and readability: drop unused
23193 macro definitions, drop initialization of vars that are zero-initialized
23194 from the base class, drop un-necessary casts.
23196 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23198 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23199 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23200 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23201 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23202 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23203 encoder: add tuning options API.
23204 Add encoder "tune" option to override the default behaviour that is to
23205 favor maximum decoder compatibility at the expense of lower compression
23207 Expected tuning options to be developed are:
23208 - "high-compression": improve compression, target best-in-class decoders;
23209 - "low-latency": tune for low-latency decoding;
23210 - "low-power": tune for encoding in low power / resources conditions.
23212 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23214 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23215 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23216 encoder: fix bitrate units to match kbps.
23217 Bitrate is expressed in kilobits per second (kbps). So, this exactly
23218 means in multiple of 1000 bits, not 1024 bits.
23219 https://bugzilla.gnome.org/show_bug.cgi?id=722086
23221 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23223 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23224 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23225 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23226 encoder: clean-ups.
23227 Drop obsolete and unused macros. Add a few doc comments. Slightly
23228 improve indentation of a few leftovers.
23230 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23232 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23233 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23234 * gst-libs/gst/vaapi/gstvaapivalue.c:
23235 * gst-libs/gst/vaapi/gstvaapivalue.h:
23236 encoder: filter out the supported set of rate-control properties.
23237 Only expose the exact static set of supported rate-control properties
23238 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
23239 only support CQP rate control, then only add it the the exposed enum
23241 Add helper macros and functions to build a GType for an enum subset.
23243 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23245 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23246 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23247 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23248 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23249 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23250 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23251 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23252 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23253 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23254 encoder: add keyframe period API.
23255 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
23256 user control the maximum distance between two keyframes. This new
23257 property can only be set prior to gst_vaapi_encoder_set_codec_state().
23258 A value of zero for "keyframe-period" gets it re-evaluated to the
23259 actual framerate during encoder reconfiguration.
23261 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23263 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23264 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23265 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23266 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23267 encoder: improve codec reconfiguration.
23268 Improve codec reconfiguration to be performed only through a single
23269 function. That is, remove the _set_context_info() hook as subclass
23270 should not alter the parent GstVaapiContextInfo itself. Besides, the
23271 VA context is constructed only at the final stages of reconfigure().
23273 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23275 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
23276 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
23277 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23278 encoder: fix possible memory leak of coded buffer pools.
23279 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
23280 buffer pool only if the coded buffer size actually changed.
23282 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23284 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23285 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23286 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23287 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23288 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23289 * gst/vaapi/gstvaapiencode.c:
23290 * gst/vaapi/gstvaapiencode.h:
23291 encoder: add video codec-state API.
23292 Add interface to communicate the encoder resolution and related info
23293 like framerate, interlaced vs. progressive, etc. This new interface
23294 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
23295 but rather use GstVideoCodecState.
23296 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
23297 point for codec config. This means that the encoder is reconfigured
23298 there to match the latest properties.
23300 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23302 * gst/vaapi/gstvaapiencode.c:
23303 vaapiencode: don't crash on NULL encoder on _finish().
23304 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
23305 if it was not created in the first place. Return "not-negotiated" error
23306 since this means we did not even reach GstVideoEncoder::set_format(),
23307 where the encoder could have been created.
23308 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
23309 and that we failed to negotiate either pad.
23310 https://bugzilla.gnome.org/show_bug.cgi?id=719704
23312 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23314 * gst/vaapi/gstvaapiencode.c:
23315 * gst/vaapi/gstvaapiencode.h:
23316 * gst/vaapi/gstvaapiencode_h264.c:
23317 vaapiencode: use more GstVaapiPluginBase facilities.
23318 Avoid duplication of pad references or query functions since they are
23319 provided through the GstVaapiPluginBase object.
23321 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23323 * gst/vaapi/gstvaapiencode.c:
23324 * gst/vaapi/gstvaapiencode.h:
23325 * gst/vaapi/gstvaapiencode_h264.c:
23326 * gst/vaapi/gstvaapiencode_h264.h:
23327 * gst/vaapi/gstvaapiencode_mpeg2.c:
23328 vaapiencode: fix negotiation process of output caps.
23329 The specified caps in gst_video_encoder_set_output_state() function
23330 arguments should not contain any resolution, pixel-aspect-ratio,
23331 framerate, codec-data et al. Those rather should be set through the
23332 returned GstVideoCodecState. This means that output caps creation
23333 could be delayed until before gst_video_encoder_finish_frame() is
23335 This greatly simplifies the GstVideoEncoder::set_format() callback
23338 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23340 * gst/vaapi/gstvaapiencode.c:
23341 vaapiencode: make GstVaapiEncode an abstract type.
23342 Make base GstVaapiEncode class an abstract type so that we cannot
23343 create an instance from it without going through any of the codec
23344 specific derived class.
23346 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23348 * gst/vaapi/gstvaapiencode.c:
23349 * gst/vaapi/gstvaapiencode.h:
23350 * gst/vaapi/gstvaapiencode_h264.c:
23351 * gst/vaapi/gstvaapiencode_mpeg2.c:
23352 vaapiencode: rename a few member functions.
23353 Rename a few member functions to make them more consistent:
23354 - alloc_encoder(): now reduced to allocate the encoder object only;
23355 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
23357 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23359 * gst/vaapi/gstvaapiencode.c:
23360 * gst/vaapi/gstvaapiencode.h:
23361 * gst/vaapi/gstvaapiencode_h264.c:
23362 * gst/vaapi/gstvaapiencode_h264.h:
23363 * gst/vaapi/gstvaapiencode_mpeg2.c:
23364 vaapiencode: update for new properties API.
23365 Update MPEG-2 and H.264 encode elements to cope with the new core
23366 libgstvaapi properties API. i.e. all configurable properties are now
23367 directly handled at the GstVaapiEncoder level.
23368 Besides, this also makes sure to not use or modify the GstVaapiEncoder
23369 private definitions directly. Private data need to remain private.
23370 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23372 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23374 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23375 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23376 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23377 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23378 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23379 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23380 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23381 encoder: add properties API.
23382 Add interface to communicate configurable properties to the encoder.
23383 This covers both the common ones (rate-control, bitrate), and the
23384 codec specific properties.
23385 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23387 2014-01-06 18:01:33 +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_priv.h:
23393 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23394 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23395 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23396 * gst/vaapi/gstvaapiencode.c:
23397 * gst/vaapi/gstvaapiencode_h264.c:
23398 * gst/vaapi/gstvaapiencode_mpeg2.c:
23399 encoder: add bitrate API.
23400 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
23401 the bitrate for encoding. Currently, changing this parameter is only
23402 valid before the first frame is encoded. Should the value be modified
23403 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
23405 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23407 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23409 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23410 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23411 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23412 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23413 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23414 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23415 * gst-libs/gst/vaapi/gstvaapitypes.h:
23416 * gst/vaapi/gstvaapiencode.c:
23417 * gst/vaapi/gstvaapiencode.h:
23418 * gst/vaapi/gstvaapiencode_h264.c:
23419 * gst/vaapi/gstvaapiencode_mpeg2.c:
23420 encoder: add rate control API.
23421 Add gst_vaapi_encoder_set_rate_control() interface to request a new
23422 rate control mode for encoding. Changing the rate control mode is
23423 only valid prior to encoding the very first frame. Afterwards, an
23424 error ("operation-failed") is issued.
23425 https://bugzilla.gnome.org/show_bug.cgi?id=719529
23427 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23429 * gst/vaapi/gstvaapiencode.c:
23430 * gst/vaapi/gstvaapiencode_h264.c:
23431 * gst/vaapi/gstvaapiencode_mpeg2.c:
23432 vaapiencode: fix indentation.
23434 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23436 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23437 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23438 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23439 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23440 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23441 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23442 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23443 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23444 * gst/vaapi/gstvaapiencode.h:
23445 encoder: fix indentation.
23447 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23449 * gst-libs/gst/vaapi/Makefile.am:
23450 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
23451 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
23452 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
23453 utils: add new MPEG-2 helper functions.
23454 Add various helper functions to convert profile, level, chroma formats
23455 from gstreamer-vaapi world and the MPEG-2 specification world.
23457 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23459 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23460 utils: h264: don't use fatal asserts.
23461 Replace g_assert() with a g_debug() so that to not make the program
23462 abort when an unsupported value is supplied.
23464 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23466 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23467 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23468 utils: h264: add helpers for profile and level string mappings.
23469 Add profile and level helper functions to convert to/from strings.
23471 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23473 * gst-libs/gst/vaapi/Makefile.am:
23474 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23475 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23476 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23477 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
23478 utils: h264: expose levels in public header.
23479 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
23480 H.264 levels in there. The additional helper functions are meant
23481 to be private for now.
23483 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23485 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23486 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23487 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23488 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23489 codec: add helper macros to maintain object refcount.
23490 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
23491 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
23493 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23495 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23496 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23497 codec: re-indent decoder objects.
23499 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23501 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23502 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23503 codec: re-indent base codec objects.
23505 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23507 * gst/vaapi/gstvaapipluginbase.c:
23508 plugins: do not free debug category in finalize method.
23509 Fixes a crash when multiple vaapidecode elements are finalized since
23510 the debug category is created once in the class init method.
23511 This is a regression from git commit 7e58d60.
23512 https://bugzilla.gnome.org/show_bug.cgi?id=721390
23513 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23515 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23517 * gst-libs/gst/vaapi/glibcompat.h:
23518 * tests/simple-decoder.c:
23519 tests: simple-decoder: don't use deprecated g_thread_create().
23520 Use g_thread_try_new() instead of the deprecated g_thread_create()
23521 function. Provide compatibility glue for any GLib version < 2.31.2.
23523 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23525 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23526 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23527 * gst-libs/gst/vaapi/gstvaapisurface.c:
23528 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
23529 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23530 * gst/vaapi/gstvaapiencode.c:
23531 Fix printf()-like formats.
23532 Fix formts for various GST_DEBUG et al. invocations. More precisely,
23533 make size_t arguments use the %zu format specifier accordingly; force
23534 XID formats to be a 32-bit unsigned integer; and fix the format used
23535 for gst_vaapi_create_surface_with_format() error cases since we have
23536 been using strings nowadays.
23538 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23540 * gst-libs/gst/vaapi/video-format.c:
23541 * gst-libs/gst/vaapi/video-format.h:
23542 utils: format: drop unused helper functions.
23543 The following helper functions are no longer used, thus are removed:
23544 - gst_vaapi_video_format_from_structure()
23545 - gst_vaapi_video_format_from_caps()
23546 - gst_vaapi_video_format_to_caps()
23548 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23550 * gst-libs/gst/vaapi/video-format.c:
23551 * gst-libs/gst/vaapi/video-format.h:
23552 utils: re-indent GstVideoFormat related helpers.
23554 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23556 * gst/vaapi/gstvaapidownload.c:
23557 download: use GstVideoInfo facilities to build output caps.
23558 Use standard GstVideoInfo related functions to build the output caps,
23559 thus directly preserving additional fields as needed, instead of
23560 manually copying them over through gst_vaapi_append_surface_caps().
23561 Also ensure that the input caps are fixated first.
23563 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23565 * gst/vaapi/gstvaapidownload.c:
23566 * gst/vaapi/gstvaapipluginutil.c:
23567 * gst/vaapi/gstvaapipluginutil.h:
23568 * gst/vaapi/gstvaapiuploader.c:
23569 plugins: factor out construction of template caps.
23570 Add new helper functions to build video template caps.
23571 - gst_vaapi_video_format_new_template_caps():
23572 create GstCaps with size, frame rate and PAR to full range
23573 - gst_vaapi_video_format_new_template_caps_from_list():
23574 try to create a "simplified" list from the supplied formats
23576 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23578 * gst/vaapi/gstvaapipluginutil.c:
23579 * gst/vaapi/gstvaapipluginutil.h:
23580 * gst/vaapi/gstvaapipostproc.c:
23581 plugins: factor out construction of GValue from GstVideoFormat.
23582 Add new helper functions to build GValues from GstVideoFormat:
23583 - gst_vaapi_value_set_format():
23584 build a GValue from the supplied video format
23585 - gst_vaapi_value_set_format_list():
23586 build a GValue list from the supplied array of video formats
23588 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23590 * gst/vaapi/gstvaapipluginutil.c:
23591 * gst/vaapi/gstvaapipluginutil.h:
23592 * gst/vaapi/gstvaapivideocontext.c:
23593 * gst/vaapi/gstvaapivideocontext.h:
23594 plugins: re-indent common and video context creation utils.
23596 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23598 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23599 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23600 * gst/vaapi/gstvaapidecode.c:
23601 * tests/test-display.c:
23602 display: don't use GstCaps for decode or encode profiles list.
23603 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
23604 more convenient APIs that return an array of GstVaapiProfile instead
23605 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
23607 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23609 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23610 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23611 * gst/vaapi/gstvaapidownload.c:
23612 * gst/vaapi/gstvaapiuploader.c:
23613 * tests/test-display.c:
23614 display: don't use GstCaps for image or subpicture formats list.
23615 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
23616 returned GstCaps, with more convenient APIs that return an array of
23617 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
23619 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23621 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23622 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23623 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23624 display: allocate queried resources on-demand.
23625 Allocate the set of decoders or encoders on-demand, when they are
23626 queried. Likewise for VA display attributes, image and subpicture
23629 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23631 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23632 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23633 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23634 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23635 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23636 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23637 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23638 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
23639 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23640 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23641 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23642 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23643 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23644 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23645 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23646 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23647 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23648 display: re-indent all GstVaapiDisplay related source code.
23650 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23652 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23653 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23654 utils: add helper functions to get codec or profile name.
23656 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23658 * gst/vaapi/gstvaapipostproc.c:
23659 * gst/vaapi/gstvaapipostproc.h:
23660 * gst/vaapi/gstvaapiuploader.c:
23661 plugins: fix permissions for certain files.
23662 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
23665 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23667 * gst/vaapi/gstvaapivideometa_texture.c:
23668 plugins: implement GLTextureUploadMeta user data copy.
23669 Makes the copies of a buffer reference their own GLTextureUploadMeta
23670 user data and prevent the original buffer accessing already freed
23671 memory if its copies has been released and freed.
23672 https://bugzilla.gnome.org/show_bug.cgi?id=720336
23673 [Propagate the original meta texture to the copy too]
23674 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23676 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23678 * gst/vaapi/gstvaapiencode.c:
23679 * gst/vaapi/gstvaapiencode.h:
23680 * gst/vaapi/gstvaapipluginbase.c:
23681 * gst/vaapi/gstvaapipluginbase.h:
23682 * gst/vaapi/gstvaapipostproc.c:
23683 * gst/vaapi/gstvaapipostproc.h:
23684 * gst/vaapi/gstvaapisink.c:
23685 * gst/vaapi/gstvaapisink.h:
23686 plugins: factor out support for raw YUV buffers on sink pads.
23687 Factor out propose_allocation() hooks, creation of video buffer pool
23688 for the sink pad, conversion from raw YUV buffers to VA surface backed
23689 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
23690 with the new GstVaapiPluginBase abilities.
23692 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23694 * gst-libs/gst/vaapi/gstcompat.h:
23695 * gst/vaapi/gstvaapidecode.c:
23696 * gst/vaapi/gstvaapidecode.h:
23697 * gst/vaapi/gstvaapidownload.c:
23698 * gst/vaapi/gstvaapipluginbase.c:
23699 * gst/vaapi/gstvaapipluginbase.h:
23700 * gst/vaapi/gstvaapipostproc.c:
23701 * gst/vaapi/gstvaapipostproc.h:
23702 * gst/vaapi/gstvaapisink.c:
23703 * gst/vaapi/gstvaapiupload.c:
23704 plugins: factor out pad caps.
23706 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23708 * gst/vaapi/gstvaapidecode.c:
23709 * gst/vaapi/gstvaapidownload.c:
23710 * gst/vaapi/gstvaapiencode.c:
23711 * gst/vaapi/gstvaapipluginbase.c:
23712 * gst/vaapi/gstvaapipostproc.c:
23713 * gst/vaapi/gstvaapisink.c:
23714 * gst/vaapi/gstvaapiupload.c:
23715 plugins: factor out video context sharing code.
23717 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23719 * gst/vaapi/gstvaapidecode.c:
23720 * gst/vaapi/gstvaapidownload.c:
23721 * gst/vaapi/gstvaapiencode.c:
23722 * gst/vaapi/gstvaapipluginbase.c:
23723 * gst/vaapi/gstvaapipluginbase.h:
23724 * gst/vaapi/gstvaapipostproc.c:
23725 * gst/vaapi/gstvaapisink.c:
23726 * gst/vaapi/gstvaapiupload.c:
23727 plugins: factor out GstImplementsInterface.
23729 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23731 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23732 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23733 * gst/vaapi/gstvaapipluginbase.c:
23734 * gst/vaapi/gstvaapipluginutil.c:
23735 plugins: check type of display obtained from neighbours.
23736 Fix display creation code to check that any display obtained from a
23737 neighbour actually has the type we expect. Note: if display type is
23738 set to "any", we can then accept any VA display type.
23740 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23742 * gst/vaapi/gstvaapidecode.c:
23743 * gst/vaapi/gstvaapidownload.c:
23744 * gst/vaapi/gstvaapiencode.c:
23745 * gst/vaapi/gstvaapipluginbase.c:
23746 * gst/vaapi/gstvaapipluginbase.h:
23747 * gst/vaapi/gstvaapipluginutil.c:
23748 * gst/vaapi/gstvaapipluginutil.h:
23749 * gst/vaapi/gstvaapipostproc.c:
23750 * gst/vaapi/gstvaapisink.c:
23751 * gst/vaapi/gstvaapisink.h:
23752 * gst/vaapi/gstvaapiupload.c:
23753 plugins: factor out display creation process.
23754 Move common VA display creation code to GstVaapiPluginBase, with the
23755 default display type remaining "any". Also add a "display-changed"
23756 hook so that subclasses could perform additional tasks when/if the
23757 VA display changed, due to a new display type request for instance.
23758 All plug-ins are updated to cope with the new internal APIs.
23760 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23762 * gst/vaapi/Makefile.am:
23763 * gst/vaapi/gstvaapidecode.c:
23764 * gst/vaapi/gstvaapidecode.h:
23765 * gst/vaapi/gstvaapidownload.c:
23766 * gst/vaapi/gstvaapidownload.h:
23767 * gst/vaapi/gstvaapiencode.c:
23768 * gst/vaapi/gstvaapiencode.h:
23769 * gst/vaapi/gstvaapipluginbase.c:
23770 * gst/vaapi/gstvaapipluginbase.h:
23771 * gst/vaapi/gstvaapipostproc.c:
23772 * gst/vaapi/gstvaapipostproc.h:
23773 * gst/vaapi/gstvaapisink.c:
23774 * gst/vaapi/gstvaapisink.h:
23775 * gst/vaapi/gstvaapiupload.c:
23776 * gst/vaapi/gstvaapiupload.h:
23777 plugins: add new base object, store display in there.
23778 Introduce a new GstVaapiPluginBase object that will contain all common
23779 data structures and perform all common tasks. First step is to have a
23780 single place to hold VA displays.
23781 While we are at it, also make sure to store and subsequently release
23782 the appropriate debug category for the subclasses.
23784 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23786 * gst-libs/gst/vaapi/gstvaapiobject.h:
23787 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23788 * gst/vaapi/gstvaapivideometa_texture.c:
23789 * gst/vaapi/gstvaapivideometa_texture.h:
23790 plugins: fix GLTextureUploadMeta to work with different texture ids.
23791 The GLTextureUploadMeta implementation assumed that for each upload()
23792 sequence, the supplied texture id is always the same as the one that
23793 was previously cached into the underlying GstVaapiTexture. Cope with
23794 any texture id change the expense to recreate the underlying VA/GLX
23796 https://bugzilla.gnome.org/show_bug.cgi?id=719643
23798 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23800 * gst/vaapi/gstvaapidecode.c:
23801 * gst/vaapi/gstvaapivideobufferpool.c:
23802 * gst/vaapi/gstvaapivideometa_texture.c:
23803 plugins: allow builds without GLX enabled for GStreamer 1.2.
23804 Don't try to build GLTextureUploadMeta related code if GLX is not
23805 enabled during GStreamer >= 1.2 builds.
23807 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23809 * gst/vaapi/gstvaapidecode.c:
23810 * gst/vaapi/gstvaapivideobufferpool.c:
23811 * gst/vaapi/gstvaapivideobufferpool.h:
23812 * gst/vaapi/gstvaapivideometa_texture.c:
23813 * gst/vaapi/gstvaapivideometa_texture.h:
23814 plugins: request GLTextureUpload meta on buffers in the buffer pool.
23815 Requesting the GLTextureUpload meta on buffers in the bufferpool
23816 prevents such metas from being de-allocated when buffers are released
23818 This is particulary useful in terms of performance when using the
23819 GLTextureUploadMeta API since the GstVaapiTexture associated with
23820 the target texture is stored in the meta.
23821 https://bugzilla.gnome.org/show_bug.cgi?id=712558
23822 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23824 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23826 * gst/vaapi/gstvaapivideometa_texture.c:
23827 plugins: robustify GstVideoGLTextureUploadMeta implementation.
23828 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
23829 when the GstVaapiTexture associated with the supplied texture id could
23832 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23834 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23835 h264: improve robustness when packets are missing.
23836 Improve robustness when some expected packets where not received yet
23837 or that were not correctly decoded. For example, don't try to decode
23838 a picture if there was no valid frame headers parsed so far.
23839 https://bugs.freedesktop.org/show_bug.cgi?id=57902
23841 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23843 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23844 decoder: h264: fix decoding of BA3_SVA_C.264.
23845 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
23846 extended profile specifications. However, the SPS header has the
23847 constraint_set1_flag syntax element set to 1. This means that, if
23848 a Main profile compliant decoder is available, then it should be
23849 able to decode this stream.
23850 This changes makes it possible to fall-back from Extended profile
23851 to Main profile if constraint_set1_flag is set to 1.
23852 https://bugzilla.gnome.org/show_bug.cgi?id=720190
23854 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23856 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23857 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23858 utils: h264: add more profiles.
23859 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
23860 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
23861 multiview profiles (H.10.1.1, H.10.1.2).
23862 Document "Constrained Baseline" and "High 10" profiles.
23864 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23866 * ext/codecparsers:
23867 codecparsers: update to gst-vaapi-branch commit e7d0e18.
23868 e7d0e18 h264: complete set of NAL unit types
23870 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
23872 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23873 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23874 decoder: h264: add support for constrained baseline profile.
23875 Recognize streams marked as conforming to the "Constrained Baseline
23876 Profile". If VA driver supports that as is, fine. Otherwise, fallback
23877 to baseline, main or high profile.
23878 Constrained Baseline Profile conveys coding tools that are common
23879 to baseline profile and main profile.
23880 https://bugzilla.gnome.org/show_bug.cgi?id=719947
23881 [Added fallbacks to main and high profiles]
23882 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23884 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23886 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23887 decoder: h264: fix decoding of scaling lists.
23888 The GStreamer codecparser layer now parses the scaling lists in zigzag
23889 scan order, as expected, so that to match the original bitstream layout
23890 and specification. However, further convert the scaling lists into
23891 raster scan order to fit the existing practice in most VA drivers.
23892 https://bugzilla.gnome.org/show_bug.cgi?id=706406
23894 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23896 * ext/codecparsers:
23897 codecparsers: update to gst-vaapi-branch commit 177c73b.
23898 a7e3255 add H.265 (HEVC) bitstream parser
23899 177c73b h264: fix picture level scaling lists derivation (rule B)
23900 14733f1 h264: fix parsing of VCL HRD parameters
23901 59a0b47 h264: store quantization matrices in zig-zag order
23902 ffb6e26 h264: add helpers to convert quantization matrices
23903 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
23904 719d1b0 mpeg2: turn internal consistency check into a g_assert()
23905 5241d8e all: remove some unused functions
23906 18eb312 all: fix for GST_DISABLE_GST_DEBUG
23907 963c04a all: make warnings more meaningful
23909 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23911 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23912 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23913 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23914 utils: add helpers for H.264 levels.
23915 - gst_vaapi_utils_h264_get_level():
23916 Returns GstVaapiLevelH264 from H.264 level_idc value
23917 - gst_vaapi_utils_h264_get_level_idc():
23918 Returns H.264 level_idc value from GstVaapiLevelH264
23919 - gst_vaapi_utils_h264_get_level_limits():
23920 Returns level limits as specified in Table A-1 of the H.264 standard
23921 - gst_vaapi_utils_h264_get_level_limits_table():
23922 Returns the Table A-1 specification
23924 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23926 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23927 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23928 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23929 utils: add new H.264 profiles.
23930 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
23931 and helper functiions.
23933 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23935 utils: add new H.264 helper functions.
23937 - gst_vaapi_utils_h264_get_profile():
23938 Returns GstVaapiProfile from H.264 profile_idc value
23939 - gst_vaapi_utils_h264_get_profile_idc():
23940 Returns H.264 profile_idc value from GstVaapiProfile
23942 - gst_vaapi_utils_h264_get_chroma_type():
23943 Returns GstVaapiChromaType from H.264 chroma_format_idc value
23944 - gst_vaapi_utils_h264_get_chroma_format_idc():
23945 Returns H.264 chroma_format_idc value from GstVaapiChromaType
23947 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23949 * gst-libs/gst/base/Makefile.am:
23950 * gst-libs/gst/vaapi/Makefile.am:
23951 Fix missing files in distribution tarball.
23952 https://bugzilla.gnome.org/show_bug.cgi?id=719776
23953 [Additional fixes and clean-ups]
23954 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23956 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23958 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23959 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23960 encoder: fix computation of max coded buffer size (again).
23961 The previous fix was only valid to express the maximum size of the
23962 macroblock layer, i.e. without any headers. Now, also account for
23963 the slice headers and top picture header, but also any other header
23964 we might stuff into the VA coded buffer, e.g. sequence headers.
23966 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23968 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23969 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23970 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23971 encoder: fix computation of max coded buffer size.
23972 Fix coded buffer size for each codec. A generic issue was that the
23973 number of macroblocks was incorrectly computed. The second issue was
23974 specific to MPEG-2 were the max number of bits per macroblock, and
23975 as defined by the standard, was incorrectly mapped to the (lower)
23976 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
23978 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23980 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23981 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23982 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23983 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23984 encoder: simplify VA context initialization process.
23985 Change get_context_info() into a set_context_info() function that
23986 initializes common defaults into the base class, thus allowing the
23987 subclasses to specialize the context info further on.
23988 The set_context_info() hook is also the location where additional
23989 context specific data could be initialized. At this point, we are
23990 guaranteed to have valid video resolution size and framerate. i.e.
23991 gst_vaapi_encoder_set_format() was called beforehand.
23993 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
23995 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23996 encoder: fix mpeg2 compilation error.
23997 https://bugzilla.gnome.org/show_bug.cgi?id=719746
23998 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24000 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24002 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24003 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24004 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24005 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24006 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24007 * gst/vaapi/gstvaapiencode.c:
24008 encoder: clean-ups and document public APIs.
24009 Clean public APIs up so that to better align with the decoder APIs.
24010 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
24011 return the VA coded buffer proxy. Also provide useful documentation
24012 for the public APIs.
24014 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24016 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24017 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24018 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24019 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
24020 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
24021 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
24022 through GstVaapiCodedBufferProxy user-data facility.
24023 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
24025 Partial fix for the following report:
24026 https://bugzilla.gnome.org/show_bug.cgi?id=719530
24028 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24030 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24031 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24032 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24033 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24034 * gst/vaapi/gstvaapiencode.c:
24035 encoder: refactor status codes.
24036 Drop obsolete or unused status codes. Align some status codes with the
24037 decoder counterparts.
24039 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24041 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24042 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24043 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
24044 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24045 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
24046 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24047 encoder: fix subclassing process.
24048 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
24049 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
24050 thus avoiding useless run-time checks. Also simplify the subclass
24051 initialization process to be less error prone.
24053 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24055 encoder: rework GstVaapiCodedBuffer and related proxy.
24056 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
24057 public and private interfaces. Besides, the map/unmap APIs should not
24058 be exposed as is but appropriate accessors should be provided instead.
24059 * GstVaapiCodedBuffer: VA coded buffer abstraction
24060 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
24061 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
24062 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
24063 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
24064 the specified max size, and bound to the supplied encoder
24065 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
24066 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
24067 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
24068 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
24069 Rationale: more optimized transfer functions might be provided in the
24070 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
24071 https://bugzilla.gnome.org/show_bug.cgi?id=719775
24073 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24075 * gst/vaapi/gstvaapidecode.c:
24076 * gst/vaapi/gstvaapiencode.c:
24077 * gst/vaapi/gstvaapipostproc.c:
24078 * gst/vaapi/gstvaapisink.c:
24079 plugins: fix reference leaks of VA display objects.
24080 Fix GstElement::set_context() implementation for all plug-in elements
24081 to avoid leaking an extra reference to the VA display, thus preventing
24082 correct cleanup of VA resources in GStreamer 1.2 builds.
24084 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24086 * gst/vaapi/gstvaapipluginutil.c:
24087 * gst/vaapi/gstvaapivideocontext.c:
24088 plugins: simplify gst_vaapi_ensure_display().
24089 Return earlier if the creation of a VA display failed. Likewise, simplify
24090 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
24093 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24095 * gst/vaapi/gstvaapivideomemory.c:
24096 plugins: fix memory leaks through GstVideoMeta maps.
24097 When GstVideoMeta maps were used, the supporting functions incorrectly
24098 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
24099 always increasing the associated GstMemory reference count and giving
24100 zero chance to actually release that, and subsequently the VA display.
24102 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24104 * gst-libs/gst/vaapi/gstvaapifilter.c:
24105 * gst/vaapi/gstvaapiencode_h264.c:
24106 * gst/vaapi/gstvaapiencode_mpeg2.c:
24107 * gst/vaapi/gstvaapipostproc.c:
24108 * gst/vaapi/gstvaapisink.c:
24109 * gst/vaapi/gstvaapiuploader.c:
24110 plugins: use G_PARAM_STATIC_STRINGS.
24111 This avoids a few string copies during initialization.
24113 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24115 * gst/vaapi/gstvaapivideometa.c:
24116 plugins: simplify VA video meta to only reference surface proxies.
24117 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
24118 now allocated from a surface pool. This also means that the local
24119 reference to the VA surface is also gone, as it could be extracted
24120 from the associated surface proxy.
24122 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24124 * gst/vaapi/gstvaapivideobuffer.c:
24125 * gst/vaapi/gstvaapivideobuffer.h:
24126 * gst/vaapi/gstvaapivideometa.c:
24127 * gst/vaapi/gstvaapivideometa.h:
24128 plugins: drop obsolete functions.
24129 Drop the following functions that are not longer used:
24130 - gst_vaapi_video_buffer_new_with_surface()
24131 - gst_vaapi_video_meta_new_with_surface()
24132 - gst_vaapi_video_meta_set_surface()
24133 - gst_vaapi_video_meta_set_surface_from_pool()
24135 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24137 * gst/vaapi/gstvaapivideometa.c:
24138 plugins: allow VA video meta to be allocated from surface proxy pools.
24139 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
24140 from surface pools instead of plain VA surfaces. This is to simplify
24141 allocations now that surface proxies are created from a surface pool.
24143 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24145 * docs/reference/libs/libs-sections.txt:
24146 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24147 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24148 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24149 surfaceproxy: add copy function.
24150 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
24151 proxy with the same information from the parent proxy, except that the
24152 user-defined destroy notify function is not copied over.
24153 The underlying VA surface is pushed back to the video pool only when
24154 the last reference to the parent surface proxy is released.
24156 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24158 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
24159 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
24160 * gst/vaapi/gstvaapiencode.c:
24161 vaapiencode: optimize _handle_frame() to avoid extra allocation.
24162 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
24163 and in particular the GstVaapiEncObjUserData object. i.e. directly use
24164 the VA surface proxy from the source buffer. This also makes the user
24165 data attached to the GstVideoCodecFrame more consistent between both
24166 the decoder and encoder plug-in elements.
24168 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24170 * gst/vaapi/gstvaapiencode.c:
24171 vaapiencode: fix memory leaks in _push_frame() on error.
24172 Simplify gst_vaapiencode_push_frame(), while also removing the call
24173 to gst_video_encoder_negotiate() since this is implicit in _finish()
24174 if caps changed. Also fixed memory leaks that occured on error.
24176 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24178 * gst/vaapi/gstvaapiencode.c:
24179 * gst/vaapi/gstvaapiencode.h:
24180 * gst/vaapi/gstvaapiencode_h264.c:
24181 * gst/vaapi/gstvaapiencode_h264.h:
24182 * gst/vaapi/gstvaapiencode_mpeg2.c:
24183 vaapiencode: additional clean-ups.
24184 Constify pointers wherever possible. Drop unused variables, and use
24185 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
24186 to correctly report errors, especially when in-place conversion from
24187 bytestream to avcC format failed.
24189 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24191 * gst/vaapi/gstvaapiencode.c:
24192 * gst/vaapi/gstvaapiencode.h:
24193 * gst/vaapi/gstvaapiencode_h264.c:
24194 * gst/vaapi/gstvaapiencode_h264.h:
24195 * gst/vaapi/gstvaapiencode_mpeg2.c:
24196 * gst/vaapi/gstvaapiencode_mpeg2.h:
24197 vaapiencode: move common properties to base class.
24198 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
24199 base class. The actual range of supported rate control modes is currently
24200 implemented as a plug-in element hook. This ought to be determined from
24201 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
24203 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24205 * gst/vaapi/gstvaapiencode_h264.c:
24206 * gst/vaapi/gstvaapiencode_mpeg2.c:
24207 vaapiencode: fix plugin description and debug name.
24208 Align the plug-in debug category to its actual name. i.e. enable debug
24209 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
24210 the plug-in element description to make it more consistent with other
24213 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24216 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24217 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24218 * gst-libs/gst/video/Makefile.am:
24219 * gst/vaapi/gstvaapiencode.c:
24220 * gst/vaapi/gstvaapiencode.h:
24221 * gst/vaapi/gstvaapiencode_h264.c:
24222 * gst/vaapi/gstvaapiencode_mpeg2.c:
24223 vaapiencode: add initial support for GStreamer 0.10.
24225 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24227 * gst-libs/gst/vaapi/gstcompat.h:
24228 libs: add more GstBuffer compat glue for GStreamer 0.10.
24229 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
24230 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
24233 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24236 * gst-libs/gst/video/Makefile.am:
24237 libs: always use built-in videoutils for GStreamer 0.10.
24238 GStreamer 0.10.36 is the latest and ultimate version to be released
24239 from the GStreamer 0.10 branch. i.e. no further releases are to be
24240 made. So, we can safely enable the built-in videoutils replacement
24241 now that they are in sync with the 0.10 branch.
24243 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24246 videoutils: update to master commit d4a15a5.
24247 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
24248 86096cc videodecoder: minor cosmetic changes to align a bit more with master
24249 b4b8b52 videodecoder: allow parse function to not use all data on adapter
24250 2145495 videodecoder: warn if frame list gets long
24251 36c3753 videodecoder: Also use the object lock to protect the output_state
24252 518c93d videodecoder: fix seeking again
24253 185fb63 video: Correct usage of the base class stream lock
24254 170e944 videodecoder: Expose _negotiate function
24256 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
24259 * gst-libs/gst/vaapi/Makefile.am:
24260 * tests/Makefile.am:
24261 Fix build with GStreamer >= 1.3.
24262 http://bugzilla.gnome.org/show_bug.cgi?id=715183
24263 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24265 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24268 configure: disable encoders with GStreamer 0.10.
24269 Don't try to build video encoders for GStreamer 0.10. Support code is
24270 not there yet, and probably will never for such an ancient version.
24272 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24274 * gst/vaapi/gstvaapiencode.c:
24275 vaapiencode: fix error handling while allocating output buffers.
24276 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
24277 unmap the coded buffer prior to returning an error.
24279 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24281 * gst/vaapi/gstvaapiencode.c:
24282 vaapiencode: fix error handling in _finish() hook.
24283 Fix GstVideoEncoder::finish() implementation to really return possible
24284 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
24286 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24288 * gst/vaapi/gstvaapiencode.c:
24289 * gst/vaapi/gstvaapiencode.h:
24290 * gst/vaapi/gstvaapiencode_h264.c:
24291 * gst/vaapi/gstvaapiencode_h264.h:
24292 * gst/vaapi/gstvaapiencode_mpeg2.c:
24293 * gst/vaapi/gstvaapiencode_mpeg2.h:
24294 vaapiencode: minor clean-ups.
24295 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
24296 the GObject type system. We are guaranteed to only deal with the same
24297 plug-in element object.
24299 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24301 * gst/vaapi/gstvaapiencode.c:
24302 * gst/vaapi/gstvaapiencode_h264.c:
24303 * gst/vaapi/gstvaapiencode_mpeg2.c:
24304 vaapiencode: fix support for raw YUV sink buffers.
24305 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
24306 The most efficient way to do so is to let the vaapiencode elements
24307 allocate a buffer pool, and subsequently buffers from it. This means
24308 that upstream elements are expected to honour downstream pools.
24309 If upstream elements insist on providing their own allocated buffers
24310 to the vaapiencode elements, then it possibly would be more efficient
24311 to insert a vaapipostproc element before the vaapiencode element.
24312 This is because vaapipostproc currently has better support than other
24313 elements for "foreign" raw YUV buffers.
24315 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24317 * gst/vaapi/gstvaapiencode.c:
24318 vaapiencode: fix support for GStreamer 1.2.
24320 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
24322 * gst/vaapi/gstvaapiencode.c:
24323 * gst/vaapi/gstvaapiencode_h264.c:
24324 * gst/vaapi/gstvaapiencode_mpeg2.c:
24325 vaapiencode: initial port to GStreamer 1.2.
24326 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24328 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
24330 * gst/vaapi/Makefile.am:
24331 * gst/vaapi/gstvaapi.c:
24332 * gst/vaapi/gstvaapiencode_mpeg2.c:
24333 * gst/vaapi/gstvaapiencode_mpeg2.h:
24334 plugins: add mpeg2 encoder element.
24335 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
24336 is called "vaapiencode_mpeg2".
24338 - rate-control: rate control mode (default: cqp - constant QP)
24339 - bitrate: desired bitrate in kbps (default: auto-calculated)
24340 - key-period: maximal distance between two key frames (default: 30)
24341 - max-bframes: number of B-frames between I and P (default: 2)
24342 - quantizer: constant quantizer (default: 8)
24343 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24345 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
24347 * gst/vaapi/Makefile.am:
24348 * gst/vaapi/gstvaapi.c:
24349 * gst/vaapi/gstvaapiencode_h264.c:
24350 * gst/vaapi/gstvaapiencode_h264.h:
24351 plugins: add h264 encoder element.
24352 Add GstVaapiEncodeH264 element object. The actual plug-in element
24353 is called "vaapiencode_h264".
24355 - rate-control: rate control mode (default: none)
24356 - bitrate: desired bitrate in kbps (default: auto-calculated)
24357 - key-period: maximal distance between two key frames (default: 30)
24358 - num-slices: number of slices per frame (default: 1)
24359 - max-bframes: number of B-frames between I and P (default: 0)
24360 - min-qp: minimal quantizer (default: 1)
24361 - init-qp: initial quantizer (default: 26)
24362 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24364 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
24366 * gst/vaapi/Makefile.am:
24367 * gst/vaapi/gstvaapiencode.c:
24368 * gst/vaapi/gstvaapiencode.h:
24369 plugins: add base encoder element.
24370 vaapiencode element is based on GstVideoEncoder APIs.
24371 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24373 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
24375 * gst-libs/gst/vaapi/Makefile.am:
24376 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24377 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
24378 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
24379 encoder: add mpeg2 encoder.
24380 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
24381 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24383 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
24385 * gst-libs/gst/vaapi/Makefile.am:
24386 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24387 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
24388 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
24389 encoder: add h264 encoder.
24390 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24392 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
24395 * gst-libs/gst/vaapi/Makefile.am:
24396 * gst-libs/gst/vaapi/gstvaapiencoder.c:
24397 * gst-libs/gst/vaapi/gstvaapiencoder.h:
24398 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
24399 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
24400 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24401 Add initial infrastructure for video encoding.
24402 Add initial API for video encoding: only basic interfaces and small
24403 encoder objects are implemented so far.
24404 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24406 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
24409 * gst-libs/gst/Makefile.am:
24410 * gst-libs/gst/base/Makefile.am:
24411 * gst-libs/gst/base/gstbitwriter.c:
24412 * gst-libs/gst/base/gstbitwriter.h:
24413 * gst-libs/gst/vaapi/Makefile.am:
24414 libs: add generic bitstream writer.
24415 GstBitWriter provides a bit writer that can write any number of bits
24416 to a pre-allocated memory buffer. Helper functions are also provided
24417 to write any number of bits from 8, 16, 32 and 64 bit variables.
24418 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24420 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
24422 * gst-libs/gst/vaapi/gstvaapicontext.c:
24423 * gst-libs/gst/vaapi/gstvaapicontext.h:
24424 libs: add support for rate-control to GstVaapiContext.
24425 Extend GstVaapiContextInfo structure to hold the desired rate control
24426 mode for encoding purposes. For decoding purposes, this field is not
24427 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
24428 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24430 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
24432 * gst-libs/gst/vaapi/gstvaapitypes.h:
24433 * gst-libs/gst/vaapi/gstvaapiutils.c:
24434 * gst-libs/gst/vaapi/gstvaapiutils.h:
24435 * gst-libs/gst/vaapi/gstvaapivalue.c:
24436 * gst-libs/gst/vaapi/gstvaapivalue.h:
24437 libs: add rate-control attributes.
24438 Add GstVaapiRateControl types and GType values in view to supporting
24439 rate controls for encoding. This is meant to be used for instance in
24441 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24443 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24446 Bump version for development.
24448 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24450 * gst/vaapi/Makefile.am:
24451 build: fix for Wayland headers not in standard include dirs.
24452 Fix build when Wayland headers don't live in plain system include dirs
24453 like /usr/include but rather in /usr/include/wayland for instance.
24454 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
24455 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24457 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
24459 * gst-libs/gst/vaapi/Makefile.am:
24460 build: link libgstvaapi-wayland against videoutils.
24461 This library is using symbols that don't exist in GStreamer 0.10 so
24462 it needs to link to built-in implementation (libgstvaapi-videoutils).
24463 https://bugzilla.gnome.org/show_bug.cgi?id=712282
24464 Signed-off-by: Ross Burton <ross.burton@intel.com>
24465 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24467 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24469 * gst-libs/gst/vaapi/gstvaapifilter.c:
24470 * gst/vaapi/gstvaapipostproc.c:
24471 vaapostproc: fix memory leaks.
24472 Destroy VPP output surface pool on exit. Also avoid a possible crash
24473 in double-free situation caused by insufficiently reference counted
24474 array of formats returned during initialization.
24476 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24478 * gst/vaapi/gstvaapipostproc.c:
24479 * gst/vaapi/gstvaapipostproc.h:
24480 vaapipostproc: fix and optimize advanced deinterlacing mode.
24481 Fix advanced deinterlacing modes with VPP to track only up to 2 past
24482 reference buffers. This used to be 3 past reference buffers but this
24483 doesn't fit with the existing decode pipeline that only has 4 extra
24485 Also optimize references tracking to be only enabled when needed, i.e.
24486 when advanced deinterlacing mode is used. This means that we don't
24487 need to track past references for basic bob or weave deinterlacing.
24489 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24491 * gst/vaapi/gstvaapipostproc.c:
24492 vaapipostproc: fix "mixed" mode deinterlacing.
24493 In "mixed" interlaced streams, the buffer contains additional flags that
24494 specify whether the frame contained herein is interlaced or not. This means
24495 that we can alternatively get progressive or interlaced frames. Make sure
24496 to disable deinterlacing at the VPP level when the source buffer is no longer
24499 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24501 * gst/vaapi/gstvaapipostproc.c:
24502 vaapipostproc: fix memory leaks with advanced deinterlacing.
24503 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
24504 of past buffers. Completely reset the deinterlace state, thus destroying
24505 any buffer currently held, on _start(), _stop() and _destroy().
24507 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24511 - GStreamer 1.2 APIs are supported ;
24512 - Video Processing (VA/VPP) features.
24514 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24517 README: update for GStreamer >= 1.0.x and VPP features.
24519 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24521 * gst-libs/gst/vaapi/glibcompat.h:
24522 * gst-libs/gst/vaapi/gstvaapicontext.h:
24523 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24524 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24525 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24526 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24527 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24528 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24529 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24530 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24531 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24532 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24533 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24534 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24535 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24536 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24537 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24538 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24539 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24540 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24541 * gst-libs/gst/vaapi/gstvaapiimage.c:
24542 * gst-libs/gst/vaapi/gstvaapiimage.h:
24543 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24544 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24545 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24546 * gst-libs/gst/vaapi/gstvaapiobject.c:
24547 * gst-libs/gst/vaapi/gstvaapiobject.h:
24548 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24549 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24550 * gst-libs/gst/vaapi/gstvaapisurface.h:
24551 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24552 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24553 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24554 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24555 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24556 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24557 * gst-libs/gst/vaapi/gstvaapitexture.c:
24558 * gst-libs/gst/vaapi/gstvaapitexture.h:
24559 * gst-libs/gst/vaapi/gstvaapitypes.h:
24560 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24561 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24562 * gst-libs/gst/vaapi/gstvaapivalue.c:
24563 * gst-libs/gst/vaapi/gstvaapivalue.h:
24564 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24565 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24566 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24567 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24568 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24569 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24570 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24571 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24572 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24573 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24574 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24575 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24576 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24577 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24578 * gst/vaapi/gstvaapi.c:
24579 * gst/vaapi/gstvaapidecode.h:
24580 * gst/vaapi/gstvaapidownload.h:
24581 * gst/vaapi/gstvaapipluginutil.c:
24582 * gst/vaapi/gstvaapipluginutil.h:
24583 * gst/vaapi/gstvaapipostproc.h:
24584 * gst/vaapi/gstvaapisink.h:
24585 * gst/vaapi/gstvaapivideoconverter_glx.h:
24589 * tests/test-display.c:
24590 * tests/test-jpeg.c:
24591 * tests/test-jpeg.h:
24592 * tests/test-mpeg4.c:
24593 * tests/test-mpeg4.h:
24594 * tests/test-surfaces.c:
24595 * tests/test-windows.c:
24596 legal: update copyright notice dates.
24598 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24600 * gst-libs/gst/vaapi/glibcompat.h:
24601 * gst-libs/gst/vaapi/gstcompat.h:
24602 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24603 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24604 * gst-libs/gst/vaapi/gstvaapicompat.h:
24605 * gst-libs/gst/vaapi/gstvaapicontext.c:
24606 * gst-libs/gst/vaapi/gstvaapicontext.h:
24607 * gst-libs/gst/vaapi/gstvaapidebug.h:
24608 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24609 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24610 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24611 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24612 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24613 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24614 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24615 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24616 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24617 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24618 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24619 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24620 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24621 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24622 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24623 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
24624 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
24625 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24626 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24627 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24628 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24629 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24630 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24631 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24632 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24633 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24634 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24635 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24636 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24637 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24638 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24639 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24640 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24641 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24642 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24643 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24644 * gst-libs/gst/vaapi/gstvaapifilter.c:
24645 * gst-libs/gst/vaapi/gstvaapifilter.h:
24646 * gst-libs/gst/vaapi/gstvaapiimage.c:
24647 * gst-libs/gst/vaapi/gstvaapiimage.h:
24648 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
24649 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24650 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24651 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
24652 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24653 * gst-libs/gst/vaapi/gstvaapiobject.c:
24654 * gst-libs/gst/vaapi/gstvaapiobject.h:
24655 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24656 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
24657 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
24658 * gst-libs/gst/vaapi/gstvaapipixmap.c:
24659 * gst-libs/gst/vaapi/gstvaapipixmap.h:
24660 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
24661 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
24662 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
24663 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24664 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24665 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24666 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24667 * gst-libs/gst/vaapi/gstvaapisurface.c:
24668 * gst-libs/gst/vaapi/gstvaapisurface.h:
24669 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24670 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24671 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24672 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24673 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24674 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24675 * gst-libs/gst/vaapi/gstvaapitexture.c:
24676 * gst-libs/gst/vaapi/gstvaapitexture.h:
24677 * gst-libs/gst/vaapi/gstvaapitypes.h:
24678 * gst-libs/gst/vaapi/gstvaapiutils.c:
24679 * gst-libs/gst/vaapi/gstvaapiutils.h:
24680 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24681 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24682 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24683 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24684 * gst-libs/gst/vaapi/gstvaapivalue.c:
24685 * gst-libs/gst/vaapi/gstvaapivalue.h:
24686 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24687 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24688 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24689 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24690 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24691 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24692 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24693 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24694 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24695 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24696 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24697 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24698 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24699 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24700 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24701 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24702 * gst-libs/gst/vaapi/sysdeps.h:
24703 * gst-libs/gst/vaapi/video-format.c:
24704 * gst-libs/gst/vaapi/video-format.h:
24705 * gst/vaapi/gstvaapi.c:
24706 * gst/vaapi/gstvaapidecode.c:
24707 * gst/vaapi/gstvaapidecode.h:
24708 * gst/vaapi/gstvaapidownload.c:
24709 * gst/vaapi/gstvaapidownload.h:
24710 * gst/vaapi/gstvaapipluginutil.c:
24711 * gst/vaapi/gstvaapipluginutil.h:
24712 * gst/vaapi/gstvaapipostproc.c:
24713 * gst/vaapi/gstvaapipostproc.h:
24714 * gst/vaapi/gstvaapisink.c:
24715 * gst/vaapi/gstvaapisink.h:
24716 * gst/vaapi/gstvaapiupload.c:
24717 * gst/vaapi/gstvaapiupload.h:
24718 * gst/vaapi/gstvaapiuploader.c:
24719 * gst/vaapi/gstvaapiuploader.h:
24720 * gst/vaapi/gstvaapivideobuffer.c:
24721 * gst/vaapi/gstvaapivideobuffer.h:
24722 * gst/vaapi/gstvaapivideobufferpool.c:
24723 * gst/vaapi/gstvaapivideobufferpool.h:
24724 * gst/vaapi/gstvaapivideocontext.c:
24725 * gst/vaapi/gstvaapivideocontext.h:
24726 * gst/vaapi/gstvaapivideoconverter_glx.c:
24727 * gst/vaapi/gstvaapivideoconverter_glx.h:
24728 * gst/vaapi/gstvaapivideoconverter_x11.c:
24729 * gst/vaapi/gstvaapivideoconverter_x11.h:
24730 * gst/vaapi/gstvaapivideomemory.c:
24731 * gst/vaapi/gstvaapivideomemory.h:
24732 * gst/vaapi/gstvaapivideometa.c:
24733 * gst/vaapi/gstvaapivideometa.h:
24734 * gst/vaapi/gstvaapivideometa_texture.c:
24735 * gst/vaapi/gstvaapivideometa_texture.h:
24744 * tests/simple-decoder.c:
24745 * tests/test-decode.c:
24746 * tests/test-decode.h:
24747 * tests/test-display.c:
24748 * tests/test-filter.c:
24749 * tests/test-h264.c:
24750 * tests/test-h264.h:
24751 * tests/test-jpeg.c:
24752 * tests/test-jpeg.h:
24753 * tests/test-mpeg2.c:
24754 * tests/test-mpeg2.h:
24755 * tests/test-mpeg4.c:
24756 * tests/test-mpeg4.h:
24757 * tests/test-surfaces.c:
24758 * tests/test-textures.c:
24759 * tests/test-vc1.c:
24760 * tests/test-vc1.h:
24761 * tests/test-windows.c:
24762 legal: add per-file authorship information.
24763 Credit original authors on a per-file basis as we cannot expect people
24764 to know all country-specific rules, or bother browsing through the git
24767 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24773 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24778 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24780 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24781 decoder: don't include obsolete headers.
24782 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
24783 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
24786 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24788 * gst/vaapi/Makefile.am:
24789 * gst/vaapi/gstvaapi.c:
24790 * gst/vaapi/gstvaapipostproc.c:
24791 vaapipostproc: add initial support for GStreamer 1.2.
24792 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
24793 right now so that to cope with auto-plugging issues/regressions. e.g.
24794 this happens when the correct set of expected caps are being exposed.
24795 This means that, currently, the proposed caps are not fully accurate.
24797 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
24799 * gst/vaapi/gstvaapipostproc.c:
24800 * gst/vaapi/gstvaapipostproc.h:
24801 vaapipostproc: add support for denoise and sharpen filters.
24802 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24804 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24806 * gst/vaapi/gstvaapipostproc.c:
24807 * gst/vaapi/gstvaapipostproc.h:
24808 vaapipostproc: add support for advanced deinterlacing.
24809 Add initial support for advanced deinterlacing. The history buffer
24810 size is arbitrarily set to 3 references for now.
24812 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24814 * gst/vaapi/gstvaapipostproc.c:
24815 vaapipostproc: fix deinterlacing with VPP.
24816 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
24817 for the first field. Render flags were supplied instead of the actual
24818 deinterlacing flags (deint_flags).
24820 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24822 * gst/vaapi/gstvaapipostproc.c:
24823 vaapipostproc: fix transform caps.
24824 Fix GstBaseTransform::transform_caps() implementation to always return
24825 the complete set of allowed sink pad caps (unfixated) even if the src
24826 pad caps we are getting are fixated. Rationale: there are just so many
24827 possible combinations, and it was wrong to provide a unique set anyway.
24828 As a side effect, this greatly simplifies the ability to derive src pad
24829 caps from fixated sink pad caps.
24831 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
24833 * docs/reference/libs/libs-sections.txt:
24834 * gst-libs/gst/vaapi/gstvaapifilter.c:
24835 * gst-libs/gst/vaapi/gstvaapifilter.h:
24836 filter: add helper to specify references for deinterlacing.
24837 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
24838 list of surfaces used for forward or backward reference in advanced
24839 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
24840 The list of surfaces used as deinterlacing references shall be live
24841 until the next call to gst_vaapi_filter_process().
24842 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24844 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24846 * gst-libs/gst/vaapi/gstvaapifilter.c:
24847 * gst-libs/gst/vaapi/gstvaapifilter.h:
24848 * gst-libs/gst/vaapi/gstvaapiutils.c:
24849 * gst/vaapi/gstvaapipostproc.c:
24850 * tests/test-filter.c:
24851 filter: fix semantics of deinterlacing flags.
24852 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
24853 flag is meant to specify the organization of reference frames used in
24854 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
24855 to specify that the top-field of the supplied input surface is to be
24856 used for deinterlacing. Conversely, if not set, this means that the
24857 bottom field of the supplied input surface will be used instead.
24859 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24861 * docs/reference/libs/libs-sections.txt:
24862 * gst-libs/gst/vaapi/gstvaapifilter.c:
24863 * gst-libs/gst/vaapi/gstvaapifilter.h:
24864 filter: add helpers to check for supported/active operation.
24865 Add a couple of helper functions:
24866 - gst_vaapi_filter_has_operation(): checks whether the VA driver
24867 advertises support for the supplied operation ;
24868 - gst_vaapi_filter_use_operation(): checks whether the supplied
24869 operation was already enabled to its non-default value.
24871 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24873 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24874 libs: fix GstVaapiSurfaceProxy destroy notify call site.
24875 The user-defined destroy notify function is meant to be called only when
24876 the surface proxy was fully released, i.e. once it actually released the
24877 VA surface back to the underlying pool.
24879 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
24881 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24882 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24883 libs: make GstVaapiVideoPool thread-safe.
24884 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24885 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24887 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
24889 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24890 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24891 libs: robustify decoder objects and surface proxy initialization.
24892 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
24893 sequences to have the expected default values set beforehand in case of an
24894 error raising up further during creation. i.e. make it possible to cleanly
24895 destroy those partially initialized objects.
24896 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24897 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24899 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24901 * gst/vaapi/gstvaapidecode.c:
24902 vaapidecode: fix decoder flush.
24903 There are situations where gst_video_decoder_flush() is called, and
24904 this subsequently produces a gst_video_decoder_reset() that kills the
24905 currently active GstVideoCodecFrame. This means that it no longer
24906 exists by the time we reach GstVideoDecoder::finish() callback, thus
24907 possibly resulting in a crash if we assumed spare data was still
24908 available for decode (current_frame_size > 0).
24909 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
24910 that means a flush, thus performing the actual operations there like
24911 calling gst_video_decoder_have_frame() if pending data is available.
24913 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24915 * gst/vaapi/gstvaapidecode.c:
24916 * gst/vaapi/gstvaapidecode.h:
24917 vaapidecode: fix dead-locks with decoder task.
24918 Review all interactions between the main video decoder stream thread
24919 and the decode task to derive a correct sequence of operations for
24920 decoding. Also avoid extra atomic operations that become implicit under
24921 the GstVideoDecoder stream lock.
24923 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24925 * gst/vaapi/gstvaapidecode.c:
24926 vaapidecode: fix hard reset for seek cases.
24927 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
24928 and completely purge any decoded output frame that may come out from
24929 it. At this stage, the GstVaapiDecoder shall be in a complete clean
24930 state to start decoding over new buffers.
24931 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24933 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24935 * gst/vaapi/gstvaapidecode.c:
24936 * gst/vaapi/gstvaapidecode.h:
24937 vaapidecode: drop decode timeout, always wait for a free surface.
24938 vaapidecode used to wait up to one second past the expected time of
24939 presentation for the last decoded frame. This is not realistic in
24940 practice when it comes to video pause/resume. Changed behaviour to
24941 unconditionnally wait for a free VA surface prior to continuing the
24942 decoding. The decode task will continue pushing the output frames to
24943 the downstream element while also reporting errors at the same time
24944 to the main thread.
24945 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24946 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24948 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24950 * gst/vaapi/gstvaapidecode.c:
24951 vaapidecode: fix srcpad caps for GStreamer 1.2.
24952 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
24953 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
24954 that it relied on possibly un-initialized data. Fix srcpad caps to be
24955 initialized from a sanitized copy of GstVideoDecoder output state caps.
24956 Note: the correct way to expose the srcpad caps triggers an additional
24957 issue in core GStreamer auto-plugging capabilities as the correct caps
24958 to be exposed should be format=ENCODED with memory:VASurface caps feature
24959 at the minimum. In some situations, we could determine the underlying
24960 VA surface format, but this is not always possible. e.g. cases where it
24961 is not allowed to expose the underlying VA surface data, or when the
24962 VA driver implementation cannot actually provide such information.
24964 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24966 * gst/vaapi/gstvaapidecode.c:
24967 * gst/vaapi/gstvaapisink.c:
24968 plugins: streamline VA formats exposed in caps to a realistic set.
24969 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
24970 output formats for GStreamer 1.2 in caps to a realistic subset. This
24971 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
24972 underlying VA surface format, or if it is actually not allowed to get
24973 access to the surface contents.
24975 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24977 * gst/vaapi/gstvaapidecode.c:
24978 * gst/vaapi/gstvaapisink.c:
24979 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
24980 Fix vaapidecode srcpad caps to only expose RGBA video format for the
24981 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
24982 so far. Besides, drop this meta from the vaapisink sinkpad caps since
24983 we really don't support that for rendering.
24984 https://bugzilla.gnome.org/show_bug.cgi?id=711828
24986 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24989 configure: automatically detect GStreamer API version.
24990 Automatically detect GStreamer API version. The --with-gstreamer-api
24991 configure option now defaults to "autodetect" and configure then tries
24992 to derive the GStreamer API version from the highest version based on
24993 what pkg-config --modversion would report.
24994 https://bugzilla.gnome.org/show_bug.cgi?id=711657
24996 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
24998 * gst/vaapi/gstvaapipostproc.c:
24999 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
25000 Fix raw YUV data uploaded as in the following pipeline:
25001 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
25002 The main reason why it failed was that the videoparse element simply
25003 allocates GstBuffer with raw data chunk'ed off the sink pad without
25004 any prior knowledge of the actual frame info. i.e. it basically just
25005 calls gst_adapter_take_buffer().
25006 We could avoid the extra copy performed in vaapipostproc if the videoparse
25007 element was aware of the downstream pool and bothers copying line by
25008 line, for each plane. This means that, for a single frame per buffer,
25009 the optimizatin will be to allocate the video buffer downstream, map
25010 it, and copy each line that is coming through until we need to fills
25011 in the successive planes.
25012 Still, optimized raw YUV uploads already worked with the following:
25013 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
25014 https://bugzilla.gnome.org/show_bug.cgi?id=711250
25015 [clean-ups, fixed error cases to unmap and unref outbuf]
25016 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25018 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25020 * gst/vaapi/gstvaapipostproc.c:
25021 vaapipostproc: try to downgrade deinterlace-method when needed.
25022 If the currently selected deinterlacing method is not supported by the
25023 underlying hardware, then try to downgrade the method to a supported one.
25024 At the minimum, basic bob-deinterlacing shall always be supported.
25026 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25028 * gst/vaapi/gstvaapipostproc.c:
25029 vaapipostproc: add initial support for deinterlacing with VPP.
25030 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
25031 this only covers bob-deinterlacing when the output pixel format is
25034 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25036 * gst/vaapi/gstvaapipostproc.c:
25037 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
25038 The size argument for GstBaseTransform::transform_size() hook is a
25039 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
25041 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25043 * gst/vaapi/gstvaapipostproc.c:
25044 * gst/vaapi/gstvaapipostproc.h:
25045 vaapipostproc: add initial support for scaling.
25046 Add initial support for basic scaling with size specified through the
25047 "width" and "height" properties. If either user-provided dimension is
25048 zero and "force-aspect-ratio" is set to true (the default), then the
25049 other dimension is scaled to preserve the aspect ratio.
25051 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25053 * gst/vaapi/gstvaapipostproc.c:
25054 * gst/vaapi/gstvaapipostproc.h:
25055 vaapipostproc: add initial support for color conversion.
25056 If VPP is available, we always try to implicitly convert the source
25057 buffer to the "native" surface format for the underlying accelerator.
25058 This means that no optimization is performed yet to propagate raw YUV
25059 buffers to the downstream element as is, if VPP is available. i.e. it
25060 will always cause a color conversion.
25062 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25064 * gst/vaapi/gstvaapipostproc.c:
25065 vaapipostproc: fix bug when user disabled deinterlacing.
25066 Fix pipeline error / hang when the user disabled deinterlacing through
25067 the deinterlace-mode=disabled property setting.
25069 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25071 * gst/vaapi/gstvaapipostproc.c:
25072 * gst/vaapi/gstvaapipostproc.h:
25073 vaapipostproc: factor out operations to be applied into flags.
25074 Even if we only support deinterlacing for now, use flags to specify
25075 which filters are to be applied to each frame we receive in transform().
25076 This is preparatory work for integrating new filters.
25078 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25080 * gst/vaapi/gstvaapipostproc.c:
25081 * gst/vaapi/gstvaapipostproc.h:
25082 vaapipostproc: add support for raw YUV video source buffers.
25083 Allow video processing from raw YUV buffers coming from the sink pad,
25084 while still producing a VA surface for the downstream elements.
25086 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25088 * gst/vaapi/gstvaapipluginutil.c:
25089 * gst/vaapi/gstvaapipluginutil.h:
25090 * gst/vaapi/gstvaapipostproc.c:
25091 vaapipostproc: add support for "mixed" interlace mode.
25092 Add support for "mixed" interlace-mode, whereby the video frame buffer
25093 shall be deinterlaced only if its flags mention that's actually an
25094 interlaced frame buffer.
25096 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25098 * gst-libs/gst/vaapi/gstcompat.h:
25099 * gst/vaapi/gstvaapipostproc.c:
25100 * gst/vaapi/gstvaapipostproc.h:
25101 * gst/vaapi/gstvaapivideobuffer.c:
25102 * gst/vaapi/gstvaapivideobuffer.h:
25103 vaapipostproc: rework plug-in element.
25104 Rewrite the vaapipostproc plug-in element so that it derives from
25105 GstBaseTransform, thus simplifying the caps negotiation process.
25107 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25109 * gst/vaapi/gstvaapivideobufferpool.c:
25110 * gst/vaapi/gstvaapivideomemory.c:
25111 * gst/vaapi/gstvaapivideomemory.h:
25112 plugins: fix and optimize check for buffer pool allocator params.
25113 Reset the buffer pool allocator only if the config caps changed in a
25114 sensible way: format or resolution change. i.e. don't bother with
25115 other caps like colorimetry et al. as this doesn't affect the way to
25116 allocate VA surfaces or images.
25118 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25120 * gst/vaapi/gstvaapivideomemory.c:
25121 plugins: enable memory maps for read & write with direct-rendering.
25122 Enable read and write mappings only if direct-rendering is supported.
25123 Otherwise, this means that we may need to download data from the VA
25124 surface first for correctness, even if the VA surface doesn't need to
25125 be read at all. i.e. sometimes, READWRITE mappings are meant for
25126 surfaces that are written to first, and read afterwards for further
25128 https://bugzilla.gnome.org/show_bug.cgi?id=704078
25130 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25132 * gst/vaapi/gstvaapivideomemory.c:
25133 plugins: fix check for direct-rendering support.
25134 Fix check for direct-rendering if the creation of VA surfaces with
25135 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
25136 that we tried to allocate a VA surface based on the corresponding
25137 chroma type. i.e. in that particular case, we have to make sure that
25138 the derived image has actually the expected format.
25140 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25142 * gst/vaapi/gstvaapivideobufferpool.c:
25143 * gst/vaapi/gstvaapivideomemory.c:
25144 * gst/vaapi/gstvaapivideomemory.h:
25145 plugins: fix buffer pool reset_buffer() to reset memory resources.
25146 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
25147 memory resources, and more particularly the VA surface proxy. Most
25148 importantly, the GstVaapiVideoMeta is retained. Cached surface in
25149 memory are released, thus triggering a new allocation the next time
25150 we need to map the buffer.
25152 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25154 * gst/vaapi/gstvaapivideomemory.c:
25155 * gst/vaapi/gstvaapivideomemory.h:
25156 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
25157 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
25158 pool stored in the parent VA memory allocator.
25159 This fixes the following scenario:
25160 - VA video buffer 1 is allocated from a buffer pool
25161 - Another video buffer is created, and inherits info from buffer 1
25162 - Buffer 1 is released, thus pushing it back to the buffer pool
25163 - New buffer alloc request comes it, this yields buffer 1 back
25164 - At this stage, buffers 1 and 2 still share the same underlying VA
25165 surface, but buffer 2 was already submitted downstream for further
25166 processing, thus conflicting with additional processing we were
25167 about to perform on buffer 1.
25168 Maybe the core GstBufferPool implementation should have been fixed
25169 instead to actually make sure that the returned GstBuffer memory we
25170 found from the pool is writable?
25172 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25174 * gst/vaapi/gstvaapiuploader.c:
25175 plugins: create a proxy for GstVaapiUploader allocated buffers.
25176 Always make sure to allocate a VA surface proxy for GstVaapiUploader
25177 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
25179 This fixes cases where we want to retain the underlying surface longer,
25180 instead of releasing it back to the surface pool right away.
25182 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25184 * gst/vaapi/gstvaapidecode.c:
25185 * gst/vaapi/gstvaapipluginutil.c:
25186 * gst/vaapi/gstvaapipluginutil.h:
25187 * gst/vaapi/gstvaapipostproc.c:
25188 plugins: add helper function to disable deinterlacing in caps.
25189 Add gst_caps_set_interlaced() helper function that would reset the
25190 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
25191 interlaced field to "false" for GStreamer 0.10.
25193 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25195 * gst-libs/gst/vaapi/gstvaapifilter.c:
25196 filter: fix memory leak of VPP operations.
25197 Fix ensure_operations() to release the VPP operations array if non
25198 NULL, prior to returning to the caller. The former function was also
25199 renamed to a more meaningful get_operations() since the caller owns
25200 the returned array that needs to be released.
25202 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
25204 * gst-libs/gst/vaapi/gstvaapifilter.c:
25205 filter: fix first-time operation lookup.
25206 Fix first-time operation lookup through find_operation() if the set
25207 of supported operations was not initially determined through the
25208 gst_vaapi_filter_get_operations() helper function.
25209 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25211 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
25213 * gst-libs/gst/vaapi/gstvaapifilter.c:
25214 filter: fix colorbalance related subtypes.
25215 Fix intiialization of GstVaapiFilterOpData for colorbalance related
25216 operations. In particular, fill in the va_subtype field accordingly.
25217 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25219 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25221 * gst-libs/gst/vaapi/gstvaapifilter.c:
25222 filter: fix VA-API 0.34.0 symbol guards.
25223 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
25224 that need to be guarded for libva 0.34 and 0.33, respectively.
25225 https://bugzilla.gnome.org/show_bug.cgi?id=709102
25226 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25228 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25230 * gst/vaapi/gstvaapidecode.c:
25231 * gst/vaapi/gstvaapipluginutil.c:
25232 * gst/vaapi/gstvaapisink.c:
25233 plugins: hanle the context query in any pad.
25234 Also this patch simplifies the code, since now the query is common for the
25235 decoder and the sink.
25236 https://bugzilla.gnome.org/show_bug.cgi?id=709200
25238 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25240 * gst/vaapi/gstvaapivideocontext.c:
25241 plugins: query upstream element for a GstContext.
25242 Fix gst_vaapi_video_context_prepare() to also query upstream elements
25243 for a valid GstContext. Improve comments regarding the steps used to
25244 lookup or build that context, thus conforming to the GstContext API
25246 https://bugzilla.gnome.org/show_bug.cgi?id=709112
25247 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25249 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25252 * debian.upstream/control.in:
25253 Fix detection and packaging of GStreamer 1.2.x builds.
25254 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
25255 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
25256 purposes, update the versioning to -1.2 suffix instead.
25258 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25260 * gst/vaapi/Makefile.am:
25261 * gst/vaapi/gstvaapidecode.c:
25262 * gst/vaapi/gstvaapidecode.h:
25263 * gst/vaapi/gstvaapisink.c:
25264 * gst/vaapi/gstvaapivideometa_texture.c:
25265 * gst/vaapi/gstvaapivideometa_texture.h:
25266 plugins: add support for GstVideoGLTextureUploadMeta.
25267 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
25268 requested, and more specifically under a GLX configuration, then add
25269 the GstVideoGLTextureUploadMeta to the output buffer.
25270 https://bugzilla.gnome.org/show_bug.cgi?id=703236
25271 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25273 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25275 * gst/vaapi/gstvaapidecode.c:
25276 * gst/vaapi/gstvaapisink.c:
25277 * gst/vaapi/gstvaapivideomemory.h:
25278 plugins: add support for GstCaps features.
25279 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
25280 as expressed in caps, to the more standard use of caps features. i.e.
25281 add "memory:VASurface" feature attribute to the associated caps.
25282 https://bugzilla.gnome.org/show_bug.cgi?id=703271
25283 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25285 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25287 * gst/vaapi/gstvaapidecode.c:
25288 * gst/vaapi/gstvaapisink.c:
25289 plugins: improve ::query() debugging messages.
25290 Fix gst_vaapidecode_query() to correctly display the query type name,
25291 instead of randomly displaying that we shared the underlying display.
25292 Also add debug info for the GstVaapiSink::query() handler, i.e. the
25293 supplied query type name actually.
25294 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25296 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25298 * gst/vaapi/gstvaapidecode.c:
25299 * gst/vaapi/gstvaapisink.c:
25300 plugins: add support for GstContext API.
25301 Add support for the new GstContext API from GStreamer 1.2.x.
25302 - implement the GstElement::set_context() hook ;
25303 - reply to the `context' query from downstream elements.
25304 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25305 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25307 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25309 * gst/vaapi/Makefile.am:
25310 * gst/vaapi/gstvaapipluginutil.c:
25311 * gst/vaapi/gstvaapivideocontext.c:
25312 * gst/vaapi/gstvaapivideocontext.h:
25313 plugins: add compat layer for GstVideoContext.
25314 Add thin compatibility layer for the deprecated GstVideoContext API.
25315 For GStreamer API >= 1.2, this involves the following two functions:
25316 - gst_vaapi_video_context_prepare(): queries if a context is already
25317 set in the pipeline ;
25318 - gst_vaapi_video_context_propagate(): propagates the newly-created
25319 context to the rest of the pipeline.
25320 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25321 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25323 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25326 * gst/vaapi/Makefile.am:
25327 * gst/vaapi/gstvaapi.c:
25328 * gst/vaapi/gstvaapidecode.c:
25329 * gst/vaapi/gstvaapipluginutil.c:
25330 * gst/vaapi/gstvaapisink.c:
25331 * gst/vaapi/gstvaapivideobuffer.c:
25332 plugins: initial port to GStreamer 1.2.
25333 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
25334 is rather minimalistic so that to test the basic functionality.
25335 Disable vaapipostproc plugin for now as further polishing is needed.
25336 Also disable GstVideoContext interface support since this API is now
25337 gone in 1.2.x. This is preparatory work for GstContext support.
25338 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25339 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25341 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25343 * tests/simple-decoder.c:
25344 tests: simple-decoder: fix for non-X11 backends.
25345 Don't try to create pixmaps if we have not requested that feature. This
25346 fixes execution for non-X11 backends, and most specifically DRM video
25349 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25351 * ext/codecparsers:
25352 codecparsers: update to gst-vaapi-branch commit b33bd32.
25353 b33bd32 jpeg: fix and optimize scan for next marker code
25355 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25357 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25358 jpeg: fix calculation of MCU count.
25359 Fix calculation of MCU count for image sizes that are not a multiple
25360 of 8 pixels in either dimension, but also for non-common sampling
25361 factors like 4:2:2 in non-interleaved mode.
25363 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25365 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25366 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25367 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25368 jpeg: add support for multiscan images.
25369 Add support for images with multiple scans per frame. The Huffman table
25370 can be updated before SOS, and thus possibly requiring multiple uploads
25371 of Huffman tables to the VA driver. So, the latter must be able to cope
25372 with multiple VA buffers of type 'huffman-table' and with the correct
25375 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25377 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25378 jpeg: improve robustness when packets are missing.
25379 Improve robustness when some expected packets where not received yet
25380 or that were not correctly decoded. For example, don't try to decode
25381 a picture if there was no valid frame headers.
25383 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25385 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25386 jpeg: minor clean-ups.
25387 Improve debugging and error messages. Rename a few variables to fit the
25388 existing naming conventions. Change some fatal asserts to non-fatal
25391 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25393 * gst-libs/gst/vaapi/gstvaapidecoder.c:
25394 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25395 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25396 jpeg: rework and optimize parser.
25397 Split the input buffer data into decoder units that represent a JPEG
25398 segment. Handle scan decoder unit specifically so that it can include
25399 both the scan header (SOS) but also any other ECS or RSTi segment.
25400 That way, we parse the input buffer stream only once at the gst-vaapi
25401 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
25402 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
25403 determine segment boundaries and decode them.
25404 In practice, this is a +15 to +25% performance improvement.
25406 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25408 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25409 jpeg: handle comment segments.
25410 Fix decode_buffer() function to gracefully skip comment (COM) segments.
25411 This fixes decoding of streams generated by certain cameras, e.g. like
25412 the Logitech Pro C920.
25413 https://bugzilla.gnome.org/show_bug.cgi?id=708208
25414 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25416 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25418 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25419 jpeg: fix determination of image bounds.
25420 Look for the exact image bounds characterised by the <SOI> and <EOI>
25421 markers. Use the gst_jpeg_parse() codec parser utility function to
25422 optimize the lookup for the next marker segment.
25423 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25425 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
25427 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25428 jpeg: fix calculation of offset to next marker segment.
25429 Fix calculation of the offset to the next marker segment since the
25430 correction of the codecparser part to match the API specification.
25431 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
25432 of the segment minus any marker prefix.
25433 https://bugzilla.gnome.org/show_bug.cgi?id=707447
25434 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25436 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25438 * ext/codecparsers:
25439 codecparsers: update to gst-vaapi-branch commit 23c7dde.
25440 23c7dde jpeg: fix calculation of segment size
25442 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25445 Bump version for development.
25447 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25453 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25458 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
25461 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25462 configure: fix detection of VA/JPEG decoding API.
25463 Fix detection of VA/JPEG decoding API with non-standard libva packages.
25464 More precisely, some packages were shipping with a <va/va.h> header that
25465 did not include <va/va_dec_jpeg.h>.
25466 https://bugzilla.gnome.org/show_bug.cgi?id=706055
25467 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25469 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
25471 * gst/vaapi/gstvaapisink.c:
25472 vaapisink: ensure the uploader is setup for upstream allocated buffers.
25473 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
25474 is setup in case upstream elements allocate buffers themselves without
25475 honouring our GstVaapiSink::bufer_alloc() hook.
25476 In particular, this fixes support for OGG video streams with WebKit.
25477 https://bugzilla.gnome.org/show_bug.cgi?id=703934
25478 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25480 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25482 * gst/vaapi/gstvaapisink.c:
25483 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
25484 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
25487 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25489 * gst/vaapi/gstvaapisink.c:
25490 * gst/vaapi/gstvaapisink.h:
25491 vaapisink: handle raw buffers not created from VA video buffer pool.
25492 Handle raw video buffers that were not created from a VA video buffer
25493 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
25494 builds instead of the GstVaapiUploader.
25495 https://bugs.freedesktop.org/show_bug.cgi?id=55818
25497 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25499 * gst/vaapi/gstvaapidecode.c:
25500 vaapidecode: remove extraneous size information from allowed caps.
25501 Fix _getcaps() implementation to not report codecs with size information
25502 filled in the returned caps. That's totally useless nowadays. Ideally,
25503 this is a hint to insert a video parser element, thus allowing future
25504 optimizations, but this is not a strict requirement for gstreamer-vaapi,
25505 which is able to parse the elementary bitstreams itself.
25506 https://bugzilla.gnome.org/show_bug.cgi?id=704734
25508 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25510 * gst/vaapi/gstvaapidecode.c:
25511 * gst/vaapi/gstvaapidecode.h:
25512 vaapidecode: submit the last frame from output adapter to decoder.
25513 If there is no frame delimiter at the end of the stream, e.g. no
25514 end-of-stream or end-of-sequence marker, and that the current frame
25515 was fully parsed correctly, then assume that last frame is complete
25516 and submit it to the decoder.
25517 https://bugzilla.gnome.org/show_bug.cgi?id=705123
25518 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25519 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25521 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25523 * gst/vaapi/gstvaapidecode.c:
25524 * gst/vaapi/gstvaapidecode.h:
25525 vaapidecode: push all decoded frames from within the task.
25526 Make sure to push all decoded frames from the task so that the unlying
25527 VA surfaces could all be rendered from the same thread.
25529 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25531 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25532 wayland: render the raw surface if VPP failed.
25533 As a last resort, if video processing capabilities (VPP) are not available,
25534 or they did not produce anything conclusive enough, then try to fallback to
25535 the original rendering code path whereby the whole VA surface is rendered
25536 as is, no matter of video cropping or deinterlacing requests.
25537 Note: under those conditions, the visual outcome won't be correct but at
25538 least, something gets displayed instead of bailing out.
25540 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25542 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25543 wayland: add supporting for video processing.
25544 Try to use VA/VPP processing capabilities to handle video cropping and
25545 additional rendering flags that may not be directly supported by the
25546 underlying hardware when exposing a suitable Wayland buffer for the
25547 supplied VA surface. e.g. deinterlacing, different color primaries than
25550 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25552 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25553 wayland: add new frame redraw infrastructure.
25554 Update the frame redraw infrastructure with a new FrameState stucture
25555 holds all the necessary information used to display the next pending
25557 While we are at it, delay the sync operation down to when it is actually
25558 needed. That way, we keep performing additional tasks meanwhile.
25560 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25562 * docs/reference/libs/libs-sections.txt:
25563 * gst-libs/gst/vaapi/gstvaapifilter.c:
25564 * gst-libs/gst/vaapi/gstvaapifilter.h:
25565 filter: allow specification of render target regions.
25566 Add support for rendering the source surface to a particular region within
25567 the supplied target surface. The default background color is black.
25569 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25571 * gst/vaapi/gstvaapivideobuffer.c:
25572 decode: fix creation of GLX video buffers for GStreamer 0.10.
25573 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
25574 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
25576 This fixes support for cluttersink with GStreamer 0.10 builds.
25578 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25580 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25581 mpeg2: disable video cropping as picture_display_extension() is missing.
25582 Disable video cropping in MPEG-2 codec because it is partially implemented
25583 and actually because nobody implements it that way, and the standard spec
25584 does not specify the display process either anyway.
25585 Most notably, there are two possible use cases for sequence_display_extension()
25586 horizontal_display_size & vertical_display_size: (i) guesstimating the
25587 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
25588 in conjunction with picture_display_extension() information.
25589 https://bugzilla.gnome.org/show_bug.cgi?id=704848
25591 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
25593 * gst/vaapi/gstvaapisink.c:
25594 * gst/vaapi/gstvaapisink.h:
25595 vaapisink: allow scaling to ignore aspect ratio.
25596 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
25597 which allows you to say that you don't want the sink to respect aspect
25598 ratio. Add the same property to vaapisink.
25599 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
25600 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
25602 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
25604 * gst/vaapi/gstvaapisink.c:
25605 vaapisink: fix memory leak of GstVaapiUploader instance.
25606 Make sure gst_vaapisink_ensure_uploader() checks for the existence
25607 of a former GstVaapiUploader instance prior to forcibly creating a
25609 https://bugzilla.gnome.org/show_bug.cgi?id=703980
25611 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25613 * gst/vaapi/gstvaapisink.c:
25614 vaapisink: fix get_caps() implementation for GStreamer 1.0.
25615 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
25616 by honouring the filter caps argument. More precisely, this fixes the
25617 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
25618 https://bugzilla.gnome.org/show_bug.cgi?id=705192
25619 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25620 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25622 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25624 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25625 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
25626 This fixes the following issue:
25627 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
25628 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
25629 'GstVaapiDecoderMpeg4Class'
25630 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
25631 'GstVaapiDecoderMpeg4Class' was here
25632 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
25633 make[5]: Leaving directory
25634 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
25635 https://bugzilla.gnome.org/show_bug.cgi?id=705148
25637 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25639 * tests/test-filter.c:
25640 tests: filter: add support for deinterlacing.
25641 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
25642 deinterlacing filter. However, if --deinterlace option is not set but the
25643 --deinterlace-flags option is set with "top-field-first", then the very
25644 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
25646 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25648 * tests/test-filter.c:
25649 tests: filter: add support for denoising and sharpening.
25650 Add --denoise option to enable noise reduction with the level specified
25651 as the option value (float). Likewise, add --sharpen option to enable
25653 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25655 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25657 * tests/test-filter.c:
25658 tests: filter: add support for frame cropping.
25659 Add support for frame cropping through the --crop-rect|-c argument.
25660 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
25661 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
25663 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25665 * tests/test-filter.c:
25666 tests: filter: dump supported operations and formats.
25668 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
25670 * tests/Makefile.am:
25671 * tests/test-filter.c:
25672 tests: add initial test for video processing.
25673 Add minimal test case for video processing: scaling and color format
25675 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25677 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
25679 * docs/reference/libs/libs-sections.txt:
25680 * gst-libs/gst/vaapi/gstvaapifilter.c:
25681 * gst-libs/gst/vaapi/gstvaapifilter.h:
25682 * gst-libs/gst/vaapi/gstvaapiutils.c:
25683 * gst-libs/gst/vaapi/gstvaapiutils.h:
25684 * gst/vaapi/gstvaapipostproc.c:
25685 * gst/vaapi/gstvaapipostproc.h:
25686 filter: add initial support for deinterlacing.
25687 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
25688 the selected field from the input surface is kept for the target surface.
25689 Setting gst_vaapi_filter_set_deinterlacing() method argument to
25690 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
25691 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
25692 to libgstvaapi core library.
25693 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25695 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
25697 * docs/reference/libs/libs-sections.txt:
25698 * gst-libs/gst/vaapi/gstvaapifilter.c:
25699 * gst-libs/gst/vaapi/gstvaapifilter.h:
25700 filter: add support for color balance adjustment.
25701 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
25702 and contrast. The respective range for each filter shall be the same as
25703 for the VA display attributes.
25704 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25706 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
25708 * docs/reference/libs/libs-sections.txt:
25709 * gst-libs/gst/vaapi/gstvaapifilter.c:
25710 * gst-libs/gst/vaapi/gstvaapifilter.h:
25711 filter: add support for sharpening.
25712 Sharpening is configured with a float value. The supported range is
25713 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
25715 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25717 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25719 * docs/reference/libs/libs-sections.txt:
25720 * gst-libs/gst/vaapi/gstvaapifilter.c:
25721 * gst-libs/gst/vaapi/gstvaapifilter.h:
25722 filter: add support for denoising.
25723 Noise reduction is configured with a float value. The supported range
25724 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
25726 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25728 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25730 * docs/reference/libs/libs-sections.txt:
25731 * gst-libs/gst/vaapi/gstvaapifilter.c:
25732 * gst-libs/gst/vaapi/gstvaapifilter.h:
25733 filter: add support for frame cropping.
25734 Frame cropping is defined with a GstVaapiRectangle value. The default
25735 behaviour is to treat the source surface as a whole
25737 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25739 * gst-libs/gst/vaapi/gstvaapifilter.c:
25740 filter: add helper functions.
25741 Add helper functions to ensure an operation VA buffer is allocated to
25742 the right size; that filter caps get parsed and assigned to the right
25743 operation too; and that float parameters are correctly scaled to fit
25744 the reported range from the VA driver.
25746 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25749 * docs/reference/libs/libs-docs.xml.in:
25750 * docs/reference/libs/libs-sections.txt:
25751 * gst-libs/gst/vaapi/Makefile.am:
25752 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25753 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25754 * gst-libs/gst/vaapi/gstvaapifilter.c:
25755 * gst-libs/gst/vaapi/gstvaapifilter.h:
25756 Add initial infrastructure for video processing.
25757 Add initial API for video processing: only scaling and color format
25758 conversion operations are supported.
25760 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25762 * gst-libs/gst/vaapi/video-format.c:
25763 * gst-libs/gst/vaapi/video-format.h:
25764 libs: add gst_vaapi_video_format_from_string() helper.
25765 Add gst_vaapi_video_format_from_string() helper function to convert from
25766 a video format string representation to a suitable GstVideoFormat. This
25767 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
25768 builds, and a proper iteration over all GstVideoFormat string representations
25769 otherwise for earlier GStreamer 0.10.x builds.
25771 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25773 * gst-libs/gst/vaapi/video-format.c:
25774 * gst-libs/gst/vaapi/video-format.h:
25775 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
25776 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
25777 VA fourcc value to a suitable GstVideoFormat.
25779 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25781 * gst-libs/gst/vaapi/gstvaapivalue.c:
25782 * gst-libs/gst/vaapi/gstvaapivalue.h:
25783 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
25784 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
25785 structures as a standard GType. This could be useful to have them
25786 described as a GValue later on.
25788 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25790 * docs/reference/libs/libs-docs.xml.in:
25791 * docs/reference/libs/libs-sections.txt:
25792 * gst-libs/gst/vaapi/Makefile.am:
25793 * gst-libs/gst/vaapi/gstvaapicontext.h:
25794 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25795 libs: drop some public APIs.
25796 Don't expose GstVaapiContext APIs and make them totally private to
25797 libgstvaapi core library. That API would also tend to disappear in
25798 a future revision. Likewise, don't expose GstVaapiDisplayCache API
25799 but keep symbols visible so that the various render backends could
25800 share a common display cache implementation in libgstvaapi.
25801 Try to clean-up the documentation from any stale entry too.
25803 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25807 tests: image: allow creation of images with interleaved patterns.
25808 Add image_generate_full() function to create interleaved color rectangles.
25809 If flags is zero, the whole frame is generated with a unique pattern. If
25810 flags is non-zero, then each field is handled individually.
25812 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25815 tests: image: fix conversion from RGB to YUV.
25816 Fix RGB to YUV conversion to preserve full data range.
25818 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25821 tests: image: try to upload images through vaDeriveImage() too.
25822 On some platforms, vaPutImage() would fail even if it does not involve
25823 color format conversion or scaling, whereas copying raw pixels through
25824 vaDeriveImage() could work instead.
25826 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25829 tests: image: add support for packed YUV formats.
25830 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
25832 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25835 tests: image: fix generation of I420/YV12 images.
25836 U/V planes were reversed, thus producing invalid images.
25838 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25841 tests: image: fix string representation for GstVideoFormat.
25843 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25845 * docs/reference/libs/libs-sections.txt:
25846 * gst-libs/gst/vaapi/Makefile.am:
25847 * gst-libs/gst/vaapi/gstvaapiimage.c:
25848 * gst-libs/gst/vaapi/gstvaapiimage.h:
25849 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
25850 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25851 * gst-libs/gst/vaapi/gstvaapisurface.c:
25852 image: clean image API up.
25853 Don't expose functions that reference a GstVaapiImageRaw, those are
25854 meant to be internal only for implementing subpictures sync. Also add
25855 a few private definitions to avoid functions calls for retrieving
25856 image size and format information.
25858 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25860 * docs/reference/libs/libs-sections.txt:
25861 * gst-libs/gst/vaapi/gstvaapiimage.c:
25862 * gst-libs/gst/vaapi/gstvaapiimage.h:
25863 image: add gst_vaapi_image_copy() helper.
25864 Add gst_vaapi_image_copy() helper function to copy images of same format
25867 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25869 * gst/vaapi/gstvaapivideoconverter_x11.c:
25870 plugins: handle video cropping in X11 pixmap converter.
25871 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
25872 we could decode from the stream.
25874 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25876 * gst/vaapi/Makefile.am:
25877 * gst/vaapi/gstvaapivideobuffer.c:
25878 * gst/vaapi/gstvaapivideoconverter_glx.c:
25879 * gst/vaapi/gstvaapivideoconverter_x11.c:
25880 * gst/vaapi/gstvaapivideoconverter_x11.h:
25881 plugins: add support for "x11-pixmap" video converter type.
25882 Install a new video converter that supports X11 pixmap targets for X11
25883 backends only, or make the GLX converter creation function chain up to
25884 the X11 converter whenever requested.
25886 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25888 * tests/simple-decoder.c:
25889 tests: simple-decoder: add support for pixmap API.
25890 Add support for the new render-to-pixmap API. Avoid flickering on
25891 platforms supporting video overlay by keeping up to 2 intermediate
25894 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25896 * tests/simple-decoder.c:
25897 tests: simple-decoder: add support for video cropping.
25898 Handle video cropping information attached to a VA surface proxy.
25900 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25904 * tests/test-decode.c:
25905 tests: add support for render-to-pixmap.
25906 Add --pixmap option to test-decode so that to allow copies of VA
25907 surface to an intermediate pixmap and rendering from that pixmap.
25908 Only X11 backends are supported for now.
25910 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25913 * gst-libs/gst/vaapi/Makefile.am:
25914 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25915 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25916 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25917 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
25918 x11: implement pixmap rendering with RENDER extension.
25919 Use hardware accelerated XRenderComposite() function, from the RENDER
25920 extension, to blit a pixmap to screen. Besides, this can also support
25921 cropping and scaling.
25923 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25925 * docs/reference/libs/libs-docs.xml.in:
25926 * docs/reference/libs/libs-sections.txt:
25927 * gst-libs/gst/vaapi/Makefile.am:
25928 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25929 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25930 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
25931 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
25932 x11: implement pixmap API.
25933 Implement the new render-to-pixmap API. The only supported pixmap format
25934 that will work is xRGB, with native byte ordering. Others might work but
25935 they were not tested.
25937 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25939 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25940 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25941 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25942 x11: update x11_get_geometry() helper function with depth output.
25943 Allow x11_get_geometry() utility function to also return the depth
25944 assigned to the X drawable.
25946 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25948 * docs/reference/libs/libs-docs.xml.in:
25949 * docs/reference/libs/libs-sections.txt:
25950 * gst-libs/gst/vaapi/Makefile.am:
25951 * gst-libs/gst/vaapi/gstvaapipixmap.c:
25952 * gst-libs/gst/vaapi/gstvaapipixmap.h:
25953 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
25954 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25955 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25956 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
25957 Add initial Pixmap API.
25958 Add API to transfer VA urfaces to native pixmaps. Also add an API to
25959 render a native pixmap, for completeness. In general, rendering to
25960 pixmap would only be useful to certain VA drivers and use cases on
25961 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
25964 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25966 * docs/reference/libs/libs-sections.txt:
25967 * gst-libs/gst/vaapi/gstvaapiimage.c:
25968 * gst-libs/gst/vaapi/gstvaapisurface.c:
25969 * gst-libs/gst/vaapi/video-format.c:
25970 * gst-libs/gst/vaapi/video-format.h:
25971 libs: add and expose gst_vaapi_video_format_to_string() helper.
25972 This is just a wrapper over gst_video_format_to_string() for older
25973 GStreamer 0.10 builds.
25975 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
25977 * gst/vaapi/gstvaapipluginutil.c:
25978 plugins: fix display type comparison in gst_vaapi_create_display().
25979 After the code got moved to create the gst_vaapi_create_display() helper,
25980 this comparison was not updated to dereference the newly-created
25981 pointer, so the code was comparing the pointer itself to the type, and
25982 therefore failing to retrieve the VA display.
25983 This fixes the following error (and gets gst-vaapi decoding again):
25984 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
25985 https://bugzilla.gnome.org/show_bug.cgi?id=704410
25986 Signed-off-by: Emilio López <emilio@elopez.com.ar>
25988 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25991 Bump version for development.
25993 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25995 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25996 mpeg2: don't output dummy pictures.
25997 Mark dummy pictures as output already so that we don't try to submit
25998 them to the upper layer since this is purely internal / temporary
25999 picture for helping the decoder.
26001 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26003 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26004 decoder: dispose GstVideoCodecFrame earlier.
26005 Once the picture was output, it is no longer necessary to keep an extra
26006 reference to the underlying GstVideoCodecFrame. So, we can release it
26007 earlier, and maybe subsequently release the associate surface proxy
26010 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26016 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26018 * docs/reference/libs/libs-sections.txt:
26019 * gst-libs/gst/vaapi/Makefile.am:
26020 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26021 * gst-libs/gst/vaapi/gstvaapiimage.c:
26022 * gst-libs/gst/vaapi/gstvaapisurface.c:
26023 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26024 * gst-libs/gst/vaapi/video-format.c:
26025 * gst-libs/gst/vaapi/video-format.h:
26026 * gst/vaapi/gstvaapidownload.c:
26027 * gst/vaapi/gstvaapiuploader.c:
26029 * tests/test-display.c:
26030 Fix new video format API.
26031 Fix new internal video format API, based on GstVideoFormat, to not
26032 clobber with system symbols. So replace the gst_video_format_* prefix
26033 with gst_vaapi_video_format_ prefix, even if the format type remains
26036 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26039 Bump library major version.
26040 Bump the library major version due to API/ABI changes that occurred in
26041 the imaging API. In particular, GstVaapiImageFormat type was replaced
26042 with the standard GstVideoFormat type. All dependent APIs were updated
26043 to match this change.
26045 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26050 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26052 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26053 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26054 decoder: fix memory leak when processing interlaced pictures.
26055 Fix memory leak when processing interlaced pictures and that occurs
26056 because the first field, represented as a GstVideoCodecFrame, never
26057 gets released. i.e. when the picture is completed, this is generally
26058 the case when the second field is successfully decoded, we need to
26059 propagate the GstVideoCodecFrame of the first field to the original
26060 GstVideoDecoder so that it could reclaim memory.
26061 Otherwise, we keep accumulating the first fields into GstVideoDecoder
26062 private frames list until the end-of-stream is reached. The frames
26063 are eventually released there, but too late, i.e. too much memory
26064 may have been consumed.
26065 https://bugzilla.gnome.org/show_bug.cgi?id=701257
26067 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26069 * gst/vaapi/gstvaapipluginutil.c:
26070 plugins: simlpify gst_vaapi_create_display() helper.
26071 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
26072 performs the necessary validation checks for the underlying VA display
26073 prior to returning to the caller. So, if an error occurred, then NULL is
26074 really returned in that case.
26076 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26078 * gst/vaapi/gstvaapipluginutil.c:
26079 plugins: add gst_vaapi_create_display() helper.
26080 https://bugzilla.gnome.org/show_bug.cgi?id=703235
26081 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26083 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26085 * gst/vaapi/gstvaapivideobufferpool.c:
26086 plugins: don't reallocate pool allocator for the same caps.
26087 If the video buffer pool config doesn't have new caps, then it's not
26088 necessary to reinstantiate the allocator. That could be a costly
26089 operation as we could do some extra heavy checking in there.
26091 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26093 * gst/vaapi/gstvaapivideomemory.c:
26094 plugins: fix ref counting of GstVaapiVideoMemory allocator.
26095 Fix reference counting issue whereby gst_memory_init() does not hold
26096 an extra reference to the GstAllocator. So, there could be situations
26097 where the last instance of GstVaapiVideoAllocator gets released before
26098 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
26100 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26102 * gst/vaapi/gstvaapiuploader.c:
26103 vaapiupload: use implicit color conversion to NV12.
26104 Always perform conversion of sources buffers to NV12 since this is
26105 the way we tested for this capability in ensure_allowed_caps(). This
26106 also saves memory bandwidth for further rendering. However, this may
26107 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
26109 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26111 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26112 pool: fix deallocation of video pools.
26113 The queue of free objects to used was deallocated with g_queue_free_full().
26114 However, this convenience function shall only be used if the original queue
26115 was allocated with g_queue_new(). This caused memory corruption, eventually
26116 leading to a crash.
26117 The correct solution is to pair the g_queue_init() with the corresponding
26118 g_queue_clear(), while iterating over all free objects to deallocate them.
26120 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
26122 * gst/vaapi/gstvaapidownload.c:
26123 vaapidownload: fix src caps format error.
26124 This fixes direct linking of vaapidownload element to xvimagesink with
26125 VA drivers supporting vaGetImage() from the native VA surface format to
26126 a different VA image format. i.e. color conversion during download.
26127 http://bugzilla.gnome.org/show_bug.cgi?id=703937
26128 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26130 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26132 * gst/vaapi/gstvaapidownload.c:
26133 vaapidownload: fix debug string for image formats.
26134 The image is now expressed as a standard GstVideoFormat, which is not
26135 a FOURCC but rather a regular enum value.
26136 This is a regression introduced in commit 09397fa.
26138 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
26140 * gst-libs/gst/vaapi/gstvaapiimage.c:
26141 image: add support for raw YUY2/UYVY image copies.
26142 Implement raw image copies for YUY2 format. Add support for UYVY format
26143 too, with the same copy function as for YUY2. Even though components
26144 ordering differs, copying line strides is essentially the same.
26145 https://bugzilla.gnome.org/show_bug.cgi?id=703939
26146 https://bugzilla.gnome.org/show_bug.cgi?id=703940
26147 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26149 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26151 * gst/vaapi/gstvaapiuploader.c:
26152 plugins: clean-up video uploader helper.
26153 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
26154 were already negotiated beforehand, and they are not used from the
26155 buffer in upstream elements.
26156 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
26157 represented as a GstVideoInfo.
26159 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26161 * gst/vaapi/gstvaapiuploader.c:
26162 plugins: use GstVideoInfo in video uploader helper.
26164 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26166 * gst/vaapi/gstvaapivideomemory.c:
26167 plugins: allow creation of VA surfaces with explicit pixel format.
26168 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
26169 with an explicit pixel format. This allows for direct rendering to
26170 VA surface memory from a software decoder.
26172 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26174 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26175 surface: fix surface pool creation with an explicit pixel format.
26176 Fix creation of surface pool objects to honour explicit pixel format
26177 specification. If this operation is not supported, then fallback to
26178 the older interface with chroma format.
26180 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26182 * gst-libs/gst/vaapi/gstvaapisurface.c:
26183 surface: try to determine the underlying VA surface format.
26184 If a VA surface was allocated with the chroma-format interface, try to
26185 determine the underlying pixel format on gst_vaapi_surface_get_format(),
26186 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
26188 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26190 * docs/reference/libs/libs-sections.txt:
26191 * gst-libs/gst/vaapi/gstvaapisurface.c:
26192 * gst-libs/gst/vaapi/gstvaapisurface.h:
26193 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26194 surface: allow creation with explicit pixel format.
26195 Make it possible to create VA surfaces with a specific pixel format.
26196 This is a new capability brought in by VA-API >= 0.34.0. If that
26197 capability is not built-in (e.g. using VA-API < 0.34.0), then
26198 gst_vaapi_surface_new_with_format() will return NULL.
26200 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26202 * docs/reference/libs/libs-sections.txt:
26203 * gst-libs/gst/vaapi/video-format.c:
26204 * gst-libs/gst/vaapi/video-format.h:
26205 surface: add helper function to get chroma type from GstVideoFormat.
26206 Add gst_video_format_get_chroma_type() helper function to determine
26207 the GstVaapiChromaType from a standard GStreamer video format. It is
26208 possible to reconstruct that from GstVideoFormatInfo but it is much
26209 simpler (and faster?) to use the local GstVideoFormatMap table.
26211 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26213 * gst-libs/gst/vaapi/gstvaapisurface.c:
26214 * gst-libs/gst/vaapi/gstvaapisurface.h:
26215 * gst-libs/gst/vaapi/gstvaapiutils.c:
26216 * gst-libs/gst/vaapi/gstvaapiutils.h:
26217 surface: add new chroma formats.
26218 Add new chroma formats available with VA-API >= 0.34.0. In particular,
26219 this includes "RGB" chroma formats, and more YUV subsampled formats.
26220 Also add a new from_GstVaapiChromaType() helper function to convert
26221 libgstvaapi chroma type to VA chroma format.
26223 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26225 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26226 pool: fix image pool to check for the video format to use.
26227 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
26228 image pool object, only if the underlying VA display does support the
26229 requested VA image format.
26231 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26233 * gst-libs/gst/vaapi/gstvaapicontext.c:
26234 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26235 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26236 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26237 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26238 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26239 * gst/vaapi/gstvaapidownload.c:
26240 * gst/vaapi/gstvaapiuploader.c:
26241 * tests/Makefile.am:
26242 * tests/test-surfaces.c:
26243 Use GstVideoInfo for video pools.
26244 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
26245 structures instead. Those are smaller, and allows for streamlining
26248 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26250 * gst-libs/gst/vaapi/gstvaapiimage.c:
26251 * gst-libs/gst/vaapi/video-format.c:
26252 Add more video formats.
26253 Add new video format mappings to VA image formats:
26254 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
26255 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
26257 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26259 * gst-libs/gst/vaapi/gstvaapiimage.c:
26260 image: fix debug message with video format.
26261 Fix debug message string with image format expressed with GstVideoFormat
26262 instead of the obsolete format that turned out to be a fourcc.
26263 This is a regression from git commit e61c5fc.
26265 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26269 * tests/test-display.c:
26270 * tests/test-textures.c:
26271 * tests/test-windows.c:
26272 tests: port to new video format API.
26274 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26276 * gst/vaapi/gstvaapidownload.c:
26277 * gst/vaapi/gstvaapiuploader.c:
26278 * gst/vaapi/gstvaapivideomemory.c:
26279 plugins: port to new video format API.
26281 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26283 * gst-libs/gst/vaapi/gstvaapiimage.c:
26284 libs: use GstVideoInfo wherever possible.
26285 In particular, use gst_video_info_from_caps() helper function in VA image
26286 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
26287 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
26289 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26291 * docs/reference/libs/libs-docs.xml.in:
26292 * docs/reference/libs/libs-sections.txt:
26293 * gst-libs/gst/vaapi/Makefile.am:
26294 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26295 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
26296 libs: drop GstVaapiImageFormat helpers.
26297 Drop GstVaapiImageFormat helpers since everything was moved to the new
26298 GstVideoFormat based API. Don't bother with backwards compatibility and
26299 just bump the library major version afterwards.
26301 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26303 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26304 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26305 * gst-libs/gst/vaapi/gstvaapiimage.c:
26306 * gst-libs/gst/vaapi/gstvaapiimage.h:
26307 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26308 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26309 libs: port to new video format API.
26311 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26313 * docs/reference/libs/libs-docs.xml.in:
26314 * docs/reference/libs/libs-sections.txt:
26315 * gst-libs/gst/vaapi/Makefile.am:
26316 * gst-libs/gst/vaapi/video-format.c:
26317 * gst-libs/gst/vaapi/video-format.h:
26318 Add new video format API.
26319 Leverage GstVideoFormat utilities from core GStreamer to provide an
26320 adaptation layer to VA image formats.
26322 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26327 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26329 * gst/vaapi/gstvaapisink.c:
26330 vaapisink: fix creation of GLX texture.
26331 Fix creation of GLX texture, to not depend on the GstCaps video size that
26332 could be wrong, especially in presence of frame cropping. So, use the size
26333 from the source VA surfaces.
26334 An optimization could be to reduce the texture size to the actual visible
26335 size on screen. i.e. scale down the texture size to match the screen dimensions,
26336 while preserving the VA surface aspect ratio. However, some VA drivers don't
26339 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26341 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26342 mpeg2: add support for video cropping.
26343 If the stream has a sequence_display_extenion, then attach the
26344 display_horizontal/display_vertical dimension as the cropping
26345 rectangle width/height to the GstVaapiPicture.
26346 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26348 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26350 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26351 vc1: add support for video cropping.
26352 If the Advanced profile has display_extension fields, then set the display
26353 width/height dimension as cropping rectangle to the GstVaapiPicture.
26354 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26356 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26358 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26359 h264: add support for video cropping.
26360 If the encoded stream has the frame_cropping_flag set, then associate
26361 the cropping rectangle to GstVaapiPicture.
26362 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26364 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26368 * tests/test-decode.c:
26369 * tests/test-subpicture.c:
26370 tests: add basic support for video cropping.
26371 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
26372 instead of a plain GstVaapiSurface. This means that we can now retrieve
26373 the frame cropping rectangle from the surface proxy, along with additional
26374 information if ever needed.
26376 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26378 * gst/vaapi/gstvaapidecode.c:
26379 * gst/vaapi/gstvaapisink.c:
26380 * gst/vaapi/gstvaapivideometa.c:
26381 plugins: add support for video cropping.
26382 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
26383 specific meta information to hold video cropping details. Make the sink
26384 support video cropping in X11 and GLX modes.
26386 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26388 * gst/vaapi/gstvaapivideometa.c:
26389 * gst/vaapi/gstvaapivideometa.h:
26390 plugins: add helper functions to set the render rectangle.
26391 Some video clips may have a clipping region that needs to propogate to
26392 the renderer. These helper functions make it possible to attach that
26393 clipping region, as a GstVaapiRectangle, the the video meta associated
26395 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26396 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26398 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26400 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26401 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26402 surfaceproxy: allow for NULL cropping rectangle.
26403 Make it possible associate an empty cropping rectangle to the surface
26404 proxy, thus resetting any cropping rectangle that was previously set.
26405 This allows for returning plain NULL when no cropping rectangle was
26406 initially set up to the surface proxy, or if it was reset to defaults.
26408 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26410 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26411 surfaceproxy: clean-up helper macros.
26412 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
26413 proxy macro argument to a GstVaapiSurfaceProxy pointer.
26415 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26417 * gst-libs/gst/vaapi/gstvaapisurface.c:
26418 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26419 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26420 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26421 surface: add simple surface info accessors as helper macros.
26422 Add helper macros to retrieve the VA surface information like size
26423 (width, height) or chroma type. This is a micro-optimization to avoid
26424 useless function calls and NULL pointer re-checks in internal routines.
26426 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26428 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26429 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26430 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26431 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26432 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26433 decoder: add support for video cropping.
26434 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
26435 cropping information from raw bitstreams to each picture being decoded.
26436 Also add helper function to surface proxy to propagate that information
26437 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
26438 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26439 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26441 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26443 * ext/codecparsers:
26444 codecparsers: update to gst-vaapi-branch commit f90de0a.
26445 f90de0a h264: fix calculation of the frame cropping rectangle
26446 535515c h264: parse the cropping rectangle separately
26448 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26450 * ext/codecparsers:
26451 codecparsers: update to gst-vaapi-branch commit 0f68a71.
26452 0f68a71 mpeg2: fix video packet header size checks
26454 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
26456 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26457 mpeg2: reset quantization matrices on new sequence headers.
26458 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
26459 shall be reset to their default values when a Sequence_Header() is
26461 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26463 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26466 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26467 mpeg2: cope with latest codecparser changes.
26468 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
26469 used in individual header parsers. Also use the new slice parsing API.
26471 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26473 * ext/codecparsers:
26474 codecparsers: update to gst-vaapi-branch commit dddd182.
26475 dddd182 mpeg2: add slice header parsing API
26476 94e6228 mpeg2: add sequence scalable extension parsing API
26477 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
26478 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
26480 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26482 * gst/vaapi/gstvaapisink.c:
26483 vaapisink: expose the raw video formats in static caps template.
26484 Expose all raw video formats in the static caps template since the
26485 vaapisink is supporting raw data. We will get the exact set of formats
26486 supported by the driver dynamically through the _get_caps() routine.
26487 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
26488 https://bugzilla.gnome.org/show_bug.cgi?id=702178
26489 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26491 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26493 * gst/vaapi/gstvaapisink.c:
26494 * gst/vaapi/gstvaapisink.h:
26495 vaapisink: add "use-glx" property for OpenGL rendering.
26496 Now that VA/GLX capable buffers are generated by default on X11, thus
26497 depending on a VA/GLX display, we stil want to use vaPutSurface() for
26498 rendering since it is faster.
26499 Anyway, OpenGL rendering in vaapisink was only meant for testing and
26500 enabling "fancy" effects to play with. This has no real value. So,
26501 disable OpenGL rendering by default.
26503 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26505 * gst/vaapi/gstvaapipluginutil.c:
26506 plugins: try to allocate a GLX display first over an X11 one.
26507 If the gstreamer-vaapi plug-in elements are built with GLX support, then
26508 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
26510 https://bugzilla.gnome.org/show_bug.cgi?id=701742
26512 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
26515 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
26516 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
26517 https://bugzilla.gnome.org/show_bug.cgi?id=698858
26518 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26520 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
26522 * gst-libs/gst/vaapi/gstvaapiimage.c:
26523 image: fix wrong check for rect bounds in copy_image().
26525 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26528 Bump version for development.
26530 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26536 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26541 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26544 * gst-libs/gst/codecparsers/Makefile.am:
26545 configure: always build the MPEG-4 parser.
26546 Always build the MPEG-4 parser for now as there are also core fixes
26547 included in the parser that cannot be tested for with API checks.
26549 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26552 configure: add --enable-builtin-codecparsers [default="yes"] option.
26553 Add flag to have all codecparsers built-in, thus ensuring that the
26554 resulting binaries have all the necessary bug fixes and this is what
26555 the QA has been testing anyway.
26556 Of course, for a completely up-to-date Linux distribution, you could
26557 also opt for --disable-builtin-codecparsers and use the system ones.
26558 Though, some core fixes could be missing, and those cannot be tested
26559 for with API checks.
26561 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26563 * ext/codecparsers:
26564 codecparsers: update to gst-vaapi-branch commit 843ce3e.
26565 843ce3e jpeg: fix default Huffman tables generation.
26566 8655187 mpeg2: fix the pixel-aspect-ratio calculation
26567 21099dc mpeg2: actually store video bitrate values
26568 dd02087 mpeg2: fix picture packet extension size check
26569 25948e9 mpeg2: increase min size for picture coding ext
26570 f1f5a40 ensure the debug category is properly initialized
26572 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26574 * debian.upstream/Makefile.am:
26575 debian: fix list of generated files for .deb packaging.
26577 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26580 * debian.upstream/Makefile.am:
26581 * debian.upstream/control.in:
26582 debian: fix libgstvaapi -dev package name.
26583 Fix libgstvaapi -dev package name so that to allow installation of both
26584 GStreamer 0.10 and 1.0.x based packages.
26586 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26591 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26593 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26594 wayland: fix memory leak of display resources.
26596 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
26598 * gst/vaapi/gstvaapisink.c:
26599 vaapisink: fix build without VA/GLX support.
26601 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26603 * gst/vaapi/gstvaapivideomemory.c:
26604 * gst/vaapi/gstvaapivideomemory.h:
26605 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
26606 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
26607 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
26608 caller. This is the only sensible enough thing to do in this mode as
26609 the underlying surface pixels need to be extracted through an explicit
26610 call to the gst_video_frame_map() function instead.
26611 A possible use-case of this is to implement a "handoff" signal handler
26612 to fakesink or identity element for further processing.
26614 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26616 * gst/vaapi/gstvaapivideomemory.c:
26617 plugins: silence check for direct-rendering mode in video memory.
26618 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
26619 mode support, and not trigger fatal-criticals if either test surface or
26620 image could not be created. Typical case: pixel format mismatch, e.g. NV12
26621 supported by most hardware vs. I420 supported by most software decoders.
26623 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26625 * gst/vaapi/gstvaapivideomemory.c:
26626 plugins: improve video memory flags safety checks.
26627 On map, ensure we have GST_MAP_WRITE flags since this is only what we
26628 support for now. Likewise, on unmap, make sure that the VA image is
26629 unmapped for either read or write, while still committing it to the
26630 VA surface if write was requested.
26632 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26634 * gst-libs/gst/vaapi/gstvaapisurface.c:
26635 surface: fix memory leak through unreleased parent context.
26636 Break the circular references between GstVaapiContext and its children
26637 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
26638 context, which holds a reference to its VA surfaces, then none of those
26640 How does this impact support for subpictures?
26641 The only situation when the parent context needs to disappear is when
26642 it is replaced with another one because of a resolution change in the
26643 video stream for instance, or a normal destroy. In this case, it does
26644 not really matter to apply subpictures to the peer surfaces since they
26645 are either gone, or those that are left in the pipe can probably bear
26646 a reinstantiation of the subpictures for it.
26647 So, parent_context is set to NULL when the parent context is destroyed,
26648 other VA surfaces can still get subpictures attached to them, individually
26649 not as a whole. i.e. subpictures for surface S1 will be created from
26650 active composition buffers and associated to S1, subpictures for S2 will
26651 be created from the next active composition buffers, etc. We don't try
26652 to cache the subpictures in those cases (pending surfaces until EOS
26653 is reached, or pending surfaces until new surfaces matching new VA context
26654 get to be used instead).
26656 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26658 * gst/vaapi/gstvaapisink.c:
26659 vaapisink: fix one-time initialization when display property is set.
26660 Fix gst_vaapisink_ensure_display() to perform one-time initialization
26661 tasks even if the `display' property was explicitly set.
26663 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26665 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26666 window: fix GLX window initialization.
26667 Make sure to create the GLX context once the window object has completed
26668 its creation. Since gl_resize() relies on the newly created window size,
26669 then we cannot simply overload the GstVaapiWindowClass::create() hook.
26670 So, we just call into gst_vaapi_window_glx_ensure_context() once the
26671 window object is created in the gst_vaapi_window_glx_new*() functions.
26673 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26675 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26676 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26677 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26678 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26679 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26680 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26681 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26682 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26683 * gst-libs/gst/vaapi/gstvaapitexture.c:
26684 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26685 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26686 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26687 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26688 display: validate display types.
26690 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26692 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26693 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26694 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26695 display: drop internal NAME_PREFIX, store the real display name.
26696 Always store a valid display name/device path, instead of adding a
26697 particular prefix. i.e. make it simply a strdup(), or "" if it was
26700 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26702 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26703 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26704 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26705 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26706 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26707 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26708 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26709 display: make it possible to lookup the display cache by type.
26710 Make it possible to add extra an extra filter to most of display cache
26711 lookup functions so that the GstVaapiDisplay instance can really match
26712 a compatible and existing display by type, instead of relying on extra
26713 string tags (e.g. "X11:" prefix, etc.).
26715 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26717 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26718 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26719 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26720 display: cope with new display cache API.
26722 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26724 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26725 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26726 display: rework display cache API.
26727 Simplify display cache API, while making it more flexible. We can now create
26728 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
26730 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26732 * tests/test-display.c:
26733 tests: improve check for display cache.
26734 Improve check for display cache infrastructure. In particular, for X11 and
26735 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
26736 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
26737 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
26738 already exists will have to generate different VA displays.
26740 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
26742 * gst/vaapi/gstvaapiuploader.c:
26743 uploader: fix memory leak in GStreamer 0.10 builds.
26744 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
26745 but it exhibited a memory leak because the surface generated for the
26746 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
26747 possible to release that surface back to the parent pool when the meta
26748 gets released, and the memory consumption kept growing.
26749 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26751 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26753 * gst/vaapi/gstvaapivideometa.c:
26754 plugins: fix gst_vaapi_video_meta_new_from_pool().
26755 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
26756 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
26757 was hereby totally broken. Fixed this regression by using the newly
26758 provided gst_vaapi_video_pool_get_object_type() function.
26760 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26762 * gst/vaapi/gstvaapiuploader.c:
26763 * gst/vaapi/gstvaapivideomemory.c:
26764 * gst/vaapi/gstvaapivideometa.c:
26765 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
26767 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26770 tests: cope with GST_VAAPI_IS_xxx() macros removal.
26772 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26774 * docs/reference/libs/libs-sections.txt:
26775 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26776 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26777 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26778 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26779 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26780 libs: add query for GstVaapiVideoPool object types.
26781 Add API to identify the underlying GstVaapiVideoPool object type.
26783 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26785 * docs/reference/libs/libs-sections.txt:
26786 * gst-libs/gst/vaapi/gstvaapicontext.c:
26787 * gst-libs/gst/vaapi/gstvaapicontext.h:
26788 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26789 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26790 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26791 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26792 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26793 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26794 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26795 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26796 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26797 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26798 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26799 * gst-libs/gst/vaapi/gstvaapiimage.c:
26800 * gst-libs/gst/vaapi/gstvaapiimage.h:
26801 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26802 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26803 * gst-libs/gst/vaapi/gstvaapiobject.c:
26804 * gst-libs/gst/vaapi/gstvaapiobject.h:
26805 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26806 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26807 * gst-libs/gst/vaapi/gstvaapisurface.c:
26808 * gst-libs/gst/vaapi/gstvaapisurface.h:
26809 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26810 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26811 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26812 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26813 * gst-libs/gst/vaapi/gstvaapitexture.c:
26814 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26815 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26816 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26817 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26818 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26819 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26820 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26821 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26822 libs: drop GST_VAAPI_IS_xxx() helper macros.
26823 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
26824 deriving from GObject and so those were only checking for whether the
26825 argument was NULL or not. This is now irrelevant, and even confusing
26826 to some extent, because we no longer have type checking.
26827 Note: this incurs more type checking (review) but the libgstvaapi is
26828 rather small, so this is manageable.
26830 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26833 Bump library major version.
26834 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
26835 This is a fundamental change that requires a new SONAME. More changes are
26836 underway to streamline the core libraries.
26837 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
26838 On one particular test (sintel HD trailer), the total number of executed
26839 instruction was reduced by 8%.
26841 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26843 * docs/reference/libs/Makefile.am:
26844 * docs/reference/libs/libs-docs.xml.in:
26845 * docs/reference/libs/libs-sections.txt:
26846 * docs/reference/libs/libs.core.types:
26847 * docs/reference/libs/libs.glx.types:
26848 * docs/reference/libs/libs.x11.types:
26849 docs: cope with removed APIs.
26850 Some APIs are dead because they are no longer based on GObject.
26852 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26854 * gst/vaapi/gstvaapidecode.c:
26855 * gst/vaapi/gstvaapidownload.c:
26856 * gst/vaapi/gstvaapipluginutil.c:
26857 * gst/vaapi/gstvaapipostproc.c:
26858 * gst/vaapi/gstvaapisink.c:
26859 * gst/vaapi/gstvaapiupload.c:
26860 * gst/vaapi/gstvaapiuploader.c:
26861 * gst/vaapi/gstvaapivideobufferpool.c:
26862 * gst/vaapi/gstvaapivideoconverter_glx.c:
26863 * gst/vaapi/gstvaapivideomemory.c:
26864 * gst/vaapi/gstvaapivideometa.c:
26865 plugins: cope with new GstVaapiMiniObject objects.
26867 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26872 * tests/simple-decoder.c:
26873 * tests/test-decode.c:
26874 * tests/test-display.c:
26875 * tests/test-subpicture.c:
26876 * tests/test-surfaces.c:
26877 * tests/test-textures.c:
26878 * tests/test-windows.c:
26879 tests: cope with new GstVaapiMiniObject objects.
26881 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26883 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26884 display: fix set_synchronous() to lock display.
26886 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26888 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26889 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26890 videopool: simplify creation of video objects pool.
26892 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26894 * gst-libs/gst/vaapi/gstvaapiobject.c:
26895 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26896 * gst-libs/gst/vaapi/gstvaapitypes.h:
26897 libs: simplify GstVaapiID definitions.
26898 Make GstVaapiID a gsize instead of guessing an underlying integer large
26899 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
26900 this is plain zero and that it is no longer passed as varargs.
26902 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26904 * gst-libs/gst/vaapi/Makefile.am:
26905 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26906 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26907 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26908 * gst-libs/gst/vaapi/gstvaapivalue.c:
26909 * gst-libs/gst/vaapi/gstvaapivalue.h:
26910 libs: drop obsolete function helpers and objects.
26911 Drop obsolete GstVaapiID related function helpers for passing them as
26914 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26916 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26917 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26918 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26919 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26920 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26921 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26922 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26923 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26924 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26925 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26926 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26927 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26928 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26929 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26930 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26931 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26932 * gst-libs/gst/vaapi/gstvaapiobject.c:
26933 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26934 libs: use GstVaapiMiniObject for display objects.
26936 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26938 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26939 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26940 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26941 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26942 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26943 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26944 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
26945 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26946 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26947 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26948 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26949 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26950 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26951 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26952 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26953 libs: use GstVaapiMiniObject for video decoders.
26954 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
26955 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
26956 helper function to let the user add a callback to a function triggered
26957 whenever the codec state (e.g. caps) changes.
26959 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26961 * docs/reference/libs/libs-sections.txt:
26962 * gst-libs/gst/vaapi/Makefile.am:
26963 * gst-libs/gst/vaapi/gstvaapicontext.c:
26964 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26965 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26966 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26967 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26968 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26969 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26970 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26971 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26972 libs: use GstVaapiMiniObject for video object pools.
26973 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
26974 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
26975 no longer used for a long time. Make object allocators static, i.e.
26976 local to the shared library.
26978 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26980 * gst-libs/gst/vaapi/gstvaapitexture.c:
26981 * gst-libs/gst/vaapi/gstvaapitexture.h:
26982 libs: use GstVaapiObject for texture objects.
26984 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26986 * gst-libs/gst/vaapi/Makefile.am:
26987 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26988 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26989 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26990 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26991 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26992 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26993 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
26994 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26995 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
26996 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26997 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26998 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
26999 libs: use GstVaapiObject for window objects.
27001 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27003 * gst-libs/gst/vaapi/gstvaapicontext.c:
27004 * gst-libs/gst/vaapi/gstvaapicontext.h:
27005 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27006 * gst-libs/gst/vaapi/gstvaapiimage.c:
27007 * gst-libs/gst/vaapi/gstvaapiimage.h:
27008 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27009 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27010 * gst-libs/gst/vaapi/gstvaapisurface.c:
27011 * gst-libs/gst/vaapi/gstvaapisurface.h:
27012 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27013 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27014 libs: use GstVaapiObject for VA objects.
27016 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27018 * gst-libs/gst/vaapi/Makefile.am:
27019 * gst-libs/gst/vaapi/gstvaapiobject.c:
27020 * gst-libs/gst/vaapi/gstvaapiobject.h:
27021 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27022 Port GstVaapiObject to GstVaapiMiniObject.
27024 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27026 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27027 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
27028 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27029 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27030 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27031 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
27032 libs: refine GstVaapiMiniObject.
27033 Drop support for user-defined data since this capability was not used
27034 so far and GstVaapiMiniObject represents the smallest reference counted
27035 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
27036 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
27037 is also possible to further simplify the layout of the object. i.e. merge
27038 GstVaapiMiniObjectBase into GstVaapiMiniObject.
27040 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27042 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27043 decoder: update picture size from the bitstream.
27044 Propagate the picture size from the bitstream to the GstVaapiDecoder,
27045 and subsequent user who installed a signal on notify::caps. This fixes
27046 decoding of TS streams when the demuxer failed to extract the required
27049 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27051 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27052 decoder: fix raw decoding mode.
27053 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
27054 surface proxy to the caller.
27056 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27058 * docs/reference/libs/libs-sections.txt:
27059 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27060 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27061 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27062 * gst/vaapi/gstvaapidecode.c:
27063 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
27064 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
27065 wait for a frame to be decoded, until the specified timeout in microseconds,
27066 prior to returning to the caller.
27067 This is a fix to performance regression from 851cc0, whereby the vaapidecode
27068 loop executed on the srcpad task was called to often, thus starving all CPU
27071 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27074 Bump version for development.
27076 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27082 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27087 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27089 * gst/vaapi/gstvaapidecode.c:
27090 vaapidecode: rework heuristics to detect decode timeout.
27091 Rework heuristics to detect when downstream element ran into errors,
27092 and thus failing to release any VA surface in due time for the current
27093 frame to get decoded. In particular, recalibrate the render time base
27094 when the first frame gets submitted downstream, or when there is no
27095 timestamp that could be inferred.
27097 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27099 * gst-libs/gst/vaapi/gstcompat.h:
27100 * gst/vaapi/gstvaapidecode.c:
27101 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
27102 Rework GstVideoDecoder::handle_frame() to decode the current frame,
27103 while possibly waiting for a free surface, and separately submit all
27104 decoded frames from a task. This makes it possible to pop and render
27105 decoded frames as soon as possible.
27107 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27109 * gst/vaapi/gstvaapidecode.c:
27110 * gst/vaapi/gstvaapidownload.c:
27111 * gst/vaapi/gstvaapisink.c:
27112 * gst/vaapi/gstvaapiupload.c:
27113 plugins: use gst_object_unref() wherever applicable.
27114 Use gst_object_unref() wherever applicable, e.g. objects derived from
27115 GstElement, GstVideoPool, etc.
27117 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27119 * docs/reference/plugins/plugins-docs.xml.in:
27120 * docs/reference/plugins/plugins-sections.txt:
27121 * docs/reference/plugins/plugins.types:
27122 docs: drop obsolete plug-ins.
27123 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
27124 i.e. vaapiupload and vaapidownload are no longer the recommended
27127 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27129 * debian.upstream/rules:
27130 debian: fix build of GStreamer 0.10 packages.
27131 Fix build of Debian packages to scan the actual GStreamer API version
27132 from the generated changelog file.
27134 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27136 * gst/vaapi/gstvaapipostproc.c:
27137 vaapipostproc: minor clean-ups.
27138 Use g_clear_object() wherever appropriate and remove dead-code.
27140 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27142 * gst/vaapi/gstvaapipostproc.c:
27143 vaapipostproc: fix reference counting buf for passthrough mode.
27144 Fix reference counting bug for passthrough mode, whereby the input buffer
27145 was propagated as is downstream through gst_pad_push() without increasing
27146 its reference count before. The was a problem when gst_pad_push() returns
27147 an error and we further decrease the reference count of the input buffer.
27149 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27151 * gst-libs/gst/vaapi/gstcompat.h:
27152 * gst/vaapi/Makefile.am:
27153 * gst/vaapi/gstvaapi.c:
27154 * gst/vaapi/gstvaapidecode.c:
27155 * gst/vaapi/gstvaapipluginutil.h:
27156 * gst/vaapi/gstvaapipostproc.c:
27157 vaapipostproc: port to GStreamer 1.0.
27158 Add support for interlaced streams with GStreamer 1.0 too. Basically,
27159 this enables vaapipostproc, though it is not auto-plugged yet. We also
27160 make sure to reply to CAPS queries, and happily handle CAPS events.
27162 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27164 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27165 decoder: fix GstVideoCodecFrame flags for interlaced contents.
27166 Fix support for interlaced contents with GStreamer 0.10. In particular,
27167 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
27169 This is a regression from commit 87e5717.
27171 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27173 * gst-libs/gst/vaapi/Makefile.am:
27174 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27175 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27176 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
27177 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
27178 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
27179 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
27180 structure was only useful to parsing and a proper GstvaapiDecoderFrame
27181 instance will be created instead.
27183 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27185 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27186 decoder: export presentation timestamp for raw decoding mode.
27187 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
27188 held any information about the expected presentation timestamp, frame
27189 duration or additional flags like interlaced or top-field-first.
27191 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27193 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27194 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27195 decoder: use new GstVaapiSurfaceProxy utility functions.
27196 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
27197 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
27198 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
27199 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
27200 than gst_vaapi_picture_output().
27202 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27204 * docs/reference/libs/libs-sections.txt:
27205 * gst-libs/gst/vaapi/Makefile.am:
27206 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27207 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27208 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
27209 surfaceproxy: add more attributes for raw decoding modes.
27210 Add more attributes for raw decoding modes, i.e. directly through the
27211 libgstvaapi helper library. In particular, add presentation timestamp,
27212 duration and a couple of flags (interlaced, TFF, RFF, one-field).
27214 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27216 * docs/reference/libs/libs-sections.txt:
27217 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27218 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27219 * gst/vaapi/gstvaapidecode.c:
27220 * tests/simple-decoder.c:
27221 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
27222 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
27223 to call some user-provided function when the surface proxy is released.
27225 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
27228 * gst-libs/gst/vaapi/Makefile.am:
27229 build: link libgstvaapi-glx-1.0.so against libdl.
27230 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
27231 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
27233 https://bugzilla.gnome.org/show_bug.cgi?id=698046
27234 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27236 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27238 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27239 decoder: fix gst_vaapi_decoder_get_codec_state().
27240 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
27241 supposed to make GstVaapiDecoder own the return GstVideoCodecState
27242 object. Only comment was updated, not the actual code.
27244 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27246 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27247 * gst/vaapi/gstvaapidecode.c:
27248 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
27249 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
27250 i.e. make the GstVaapiDecoder object own the return state so that callers
27251 that want an extra reference to it would just gst_video_codec_state_ref()
27252 it before usage. This aligns the behaviour with what we had before with
27253 gst_vaapi_decoder_get_caps().
27254 This is an ABI incompatible change, library major version was bumped from
27255 previous release (0.5.2).
27257 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27259 * gst/vaapi/gstvaapivideobufferpool.h:
27260 * gst/vaapi/gstvaapivideoconverter_glx.h:
27261 plugins: mark a few more functions as internal.
27262 Mark the following functions are internal, i.e. private to the vaapi plug-in:
27263 - gst_vaapi_video_buffer_pool_get_type()
27264 - gst_vaapi_video_converter_glx_get_type()
27265 - gst_vaapi_video_converter_glx_new()
27267 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27269 * gst/vaapi/gstvaapivideobuffer.c:
27270 plugins: implement GstSurfaceMeta API.
27271 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
27272 an unstable/deprecated API, this makes it possible to support Clutter
27273 sink with minimal changes. Tested against clutter-gst 1.9.92.
27275 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27277 * gst/vaapi/gstvaapisink.c:
27278 vaapisink: optimize GstVideoOverlayInterface::expose().
27279 When render-mode is "overlay", then it is not really useful to peek into
27280 the GstBaseSink::last_buffer, since we have our own video_buffer already
27281 recorded and maintained into GstVaapiSink.
27283 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27285 * gst/vaapi/gstvaapisink.c:
27286 vaapisink: fix memory leak of GstSample objects.
27287 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
27288 This also fixes extra unreferencing of the underlying GstBuffer in the common
27289 path afterwards (for both 0.10 or 1.0).
27291 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27293 * gst-libs/gst/vaapi/gstcompat.h:
27294 * gst/vaapi/gstvaapi.c:
27295 plugins: fix description for gst-inspect.
27296 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
27297 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
27298 incorrectly uses #name for creating the plug-in name, instead of using macro
27299 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
27301 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27305 Update build requirements for GStreamer 1.0.x support. Add section for
27306 ways to report bugs.
27308 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27313 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27315 * gst-libs/gst/vaapi/Makefile.am:
27316 * gst/vaapi/Makefile.am:
27317 Fix make dist to include all source files, in any case.
27318 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
27319 sure to include all source files in either case while generating source
27322 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27325 Bump library major version.
27326 Bump library major version, while preserving a major version of 0 for
27327 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
27328 0.10 based librarieS.
27330 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27332 * gst/vaapi/gstvaapivideomemory.c:
27333 * gst/vaapi/gstvaapivideomemory.h:
27334 plugins: implement direct-rendering mode for raw YUV buffer uploads.
27335 Allow direct-rendering (writes) into target VA surfaces.
27337 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27339 * gst/vaapi/gstvaapivideobufferpool.c:
27340 * gst/vaapi/gstvaapivideomemory.c:
27341 * gst/vaapi/gstvaapivideomemory.h:
27342 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
27343 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
27344 the last component is unmapped. Downloads are not supported yet. The aim
27345 was to first support SW decoding + HW accelerated rendering (vaapisink).
27348 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27350 * gst/vaapi/gstvaapidecode.c:
27351 vaapidecode: submit all decoded frames before decoding a new one.
27352 Make sure to purge all pending frames that were already decoded prior
27353 to decoding a new one. This helps release VA surfaces as early as
27356 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27358 * gst/vaapi/gstvaapidecode.c:
27359 vaapidecode: reply to CAPS queries.
27360 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
27361 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
27362 This fixes fallback to SW decoding if no HW decoder is available.
27364 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27366 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27367 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27368 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27369 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27370 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27371 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27372 decoder: fix unpaired GstBuffer map/unmaps.
27373 This possibly fixes a few memory leaks along the way.
27375 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27378 * gst-libs/gst/vaapi/gstcompat.h:
27379 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27380 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27381 * gst/vaapi/Makefile.am:
27382 * gst/vaapi/gstvaapi.c:
27383 * gst/vaapi/gstvaapidecode.c:
27384 * gst/vaapi/gstvaapisink.c:
27385 * gst/vaapi/gstvaapisink.h:
27386 * gst/vaapi/gstvaapiuploader.c:
27388 Allow build against either GStreamer API (0.10 or 1.0).
27389 Introduce a new configure option --with-gstreamer-api that determines
27390 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
27391 Also integrate more compatibility glue into gstcompat.h and plugins.
27393 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27395 * gst/vaapi/gstvaapidecode.c:
27396 * gst/vaapi/gstvaapisink.c:
27397 * gst/vaapi/gstvaapisink.h:
27398 plugins: use new video buffer pools.
27399 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
27400 GstBaseSink::propose_allocation() to expose that pool to upstream
27401 elements; and also implement GstVideoDecoder::decide_allocation() to
27402 actually use that pool (from downstream), if any, or create one.
27403 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27405 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27407 * gst/vaapi/Makefile.am:
27408 * gst/vaapi/gstvaapivideobufferpool.c:
27409 * gst/vaapi/gstvaapivideobufferpool.h:
27410 * gst/vaapi/gstvaapivideomemory.c:
27411 * gst/vaapi/gstvaapivideomemory.h:
27412 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
27413 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
27414 object currently holds a reference to GstVaapiVideoMeta.
27415 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27417 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27419 * gst/vaapi/gstvaapivideometa.c:
27420 * gst/vaapi/gstvaapivideometa.h:
27421 plugins: allow copies of GstVaapiVideoMeta objects.
27422 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
27423 objects created from GstVaapiVideoPool. This is mostly useful to clone a
27424 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
27427 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27429 * gst/vaapi/gstvaapivideometa.c:
27430 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
27431 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
27432 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
27433 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
27436 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27438 * gst/vaapi/Makefile.am:
27439 * gst/vaapi/gstvaapi.c:
27440 * gst/vaapi/gstvaapidecode.c:
27441 * gst/vaapi/gstvaapidownload.c:
27442 * gst/vaapi/gstvaapipluginutil.c:
27443 * gst/vaapi/gstvaapipostproc.c:
27444 * gst/vaapi/gstvaapisink.c:
27445 * gst/vaapi/gstvaapiupload.c:
27446 * gst/vaapi/gstvaapiuploader.c:
27447 * gst/vaapi/gstvaapivideobuffer.c:
27448 * gst/vaapi/gstvaapivideoconverter_glx.c:
27449 * gst/vaapi/gstvaapivideometa.c:
27450 * gst/vaapi/gstvaapivideometa.h:
27451 plugins: initial port to GStreamer 1.0.
27452 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
27453 is rather minimalistic so that to test the basic functionality.
27454 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
27455 needs polishing wrt. to GStreamer 1.x functionality and the former are
27456 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
27457 which are yet to be implemented.
27458 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27460 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27462 * gst-libs/gst/vaapi/gstcompat.h:
27465 * tests/simple-decoder.c:
27466 * tests/test-subpicture.c:
27467 tests: add support for GStreamer 1.0.
27469 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27472 * gst-libs/gst/vaapi/gstcompat.h:
27473 * gst-libs/gst/vaapi/gstvaapicontext.c:
27474 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27475 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27476 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27477 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27478 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27479 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27480 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27481 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27482 * gst-libs/gst/vaapi/gstvaapiimage.c:
27483 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27484 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27485 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27486 * gst-libs/gst/vaapi/gstvaapisurface.h:
27487 Add initial support for GStreamer 1.0.
27488 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
27489 core decoding library. The changes are kept rather minimal here so that
27490 the library retains as little dependency as possible on core GStreamer
27492 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27494 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27496 * gst/vaapi/gstvaapisink.c:
27497 vaapisink: improve check for raw YUV format mode.
27498 Improve check for raw YUV format modes by avoiding checks against strings
27499 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
27500 GstBaseSink::set_caps() is called first and if VA surface format mode is
27501 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
27502 called before set_caps(), then we just make a full check. This one is
27503 pretty rare though, e.g. it usually happens once for custom pipelines.
27505 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27507 * gst/vaapi/gstvaapipluginutil.c:
27508 plugins: don't fail if there is no overlay composition to apply.
27509 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
27510 was found. i.e. return success (TRUE). This was harmless though extra
27511 debug messages are not nice.
27512 This is a regression introduced by commit 95b8659.
27514 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27516 * gst/vaapi/gstvaapidecode.c:
27517 * gst/vaapi/gstvaapidecode.h:
27518 vaapidecode: expose the exact set of supported HW decoders.
27519 Don't return static caps that don't mean anything for the underlying codecs
27520 that are actually supported for decoding. i.e. always allocate a VA display
27521 and retrieve the exact set of HW decoders available. That VA display may be
27522 re-used later on during negotiation through GstVideoContext "prepare-context".
27523 This fixes fallback to SW decoding if no HW decoder is available.
27525 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27527 * docs/reference/libs/libs-sections.txt:
27528 * gst-libs/gst/vaapi/gstvaapicontext.c:
27529 * gst-libs/gst/vaapi/gstvaapicontext.h:
27530 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27531 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27532 decoder: drop obsolete functions.
27533 Drop the following functions that are now obsolete:
27534 - gst_vaapi_context_get_surface()
27535 - gst_vaapi_context_put_surface()
27536 - gst_vaapi_context_find_surface_by_id()
27537 - gst_vaapi_surface_proxy_new()
27538 - gst_vaapi_surface_proxy_get_context()
27539 - gst_vaapi_surface_proxy_set_context()
27540 - gst_vaapi_surface_proxy_set_surface()
27541 This is an API change.
27543 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27545 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27546 decoder: delegate surface size check to VA context reset.
27547 Now that the surface pool is reference counted in the surface proxy wrapper,
27548 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
27549 Besides, this check is already performed in gst_vaapi_context_reset_full().
27551 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27553 * docs/reference/libs/libs-sections.txt:
27554 * gst-libs/gst/vaapi/gstvaapicontext.c:
27555 * gst-libs/gst/vaapi/gstvaapicontext.h:
27556 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27557 * gst-libs/gst/vaapi/gstvaapisurface.h:
27558 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27559 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27560 decoder: simplify acquisition/release of spare surface.
27561 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
27562 proxy from the context surface pool. This change also makes sure to retain
27563 the parent surface pool in the proxy.
27564 Besides, it was also totally useless to attach/detach parent context to
27565 VA surface each time we acquire/release it. Since the whole context owns
27566 all associated VA surfaces, we can mark this as such only once and for all.
27568 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27571 Bump version for development.
27573 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27579 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27584 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27586 * gst/vaapi/gstvaapipluginutil.c:
27587 * gst/vaapi/gstvaapisink.c:
27588 plugins: fix usage of gst_vaapi_reply_to_query().
27589 Make gst_vaapi_reply_to_query() first check whether the query argument
27590 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
27591 Then, make sure vaapisink propagates the query to the parent class if
27592 it is not a video-context query.
27594 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27596 * gst/vaapi/gstvaapivideobuffer.c:
27597 * gst/vaapi/gstvaapivideobuffer.h:
27598 plugins: streamline video buffers.
27599 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
27600 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
27601 gst_vaapi_video_buffer_get_meta().
27603 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27605 * docs/reference/libs/libs-sections.txt:
27606 * gst-libs/gst/vaapi/Makefile.am:
27607 * gst/vaapi/Makefile.am:
27608 * gst/vaapi/gstvaapidecode.c:
27609 * gst/vaapi/gstvaapidownload.c:
27610 * gst/vaapi/gstvaapipostproc.c:
27611 * gst/vaapi/gstvaapisink.c:
27612 * gst/vaapi/gstvaapiupload.c:
27613 * gst/vaapi/gstvaapiuploader.c:
27614 * gst/vaapi/gstvaapivideobuffer.h:
27615 * gst/vaapi/gstvaapivideoconverter_glx.c:
27616 * gst/vaapi/gstvaapivideometa.c:
27617 * gst/vaapi/gstvaapivideometa.h:
27618 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
27619 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
27620 actual plugin elements. That's only useful there. Also inline reference
27621 counting code from GstVaapiMiniObject.
27623 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27625 * gst/vaapi/Makefile.am:
27626 * gst/vaapi/gstvaapidecode.c:
27627 * gst/vaapi/gstvaapidownload.c:
27628 * gst/vaapi/gstvaapipluginbuffer.c:
27629 * gst/vaapi/gstvaapipluginbuffer.h:
27630 * gst/vaapi/gstvaapipostproc.c:
27631 * gst/vaapi/gstvaapiupload.c:
27632 * gst/vaapi/gstvaapiuploader.c:
27633 * gst/vaapi/gstvaapivideobuffer.c:
27634 * gst/vaapi/gstvaapivideobuffer.h:
27635 plugins: drop gstvaapipluginbuffer.[ch] helper files.
27636 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
27637 to gstvaapivideobuffer.[ch], and drop the obsolete files.
27639 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27641 * docs/reference/libs/libs-sections.txt:
27642 * docs/reference/libs/libs.core.types:
27643 * gst-libs/gst/vaapi/Makefile.am:
27644 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27645 * gst/vaapi/Makefile.am:
27646 * gst/vaapi/gstvaapidownload.h:
27647 * gst/vaapi/gstvaapipluginbuffer.c:
27648 * gst/vaapi/gstvaapipostproc.h:
27649 * gst/vaapi/gstvaapivideobuffer.c:
27650 * gst/vaapi/gstvaapivideobuffer.h:
27651 * gst/vaapi/gstvaapivideoconverter_glx.h:
27652 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
27653 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
27654 actual plugin elements. That's only useful there.
27656 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27658 * gst/vaapi/gstvaapipluginutil.c:
27659 * gst/vaapi/gstvaapipluginutil.h:
27660 * gst/vaapi/gstvaapisink.c:
27661 * gst/vaapi/gstvaapivideoconverter_glx.c:
27662 plugins: use common helper function to apply compositions.
27663 Use common gst_vaapi_apply_composition() helper function to apply compositions
27664 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
27666 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27668 * gst-libs/gst/vaapi/Makefile.am:
27669 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27670 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27671 * gst/vaapi/Makefile.am:
27672 * gst/vaapi/gstvaapipluginbuffer.c:
27673 * gst/vaapi/gstvaapivideoconverter_glx.c:
27674 * gst/vaapi/gstvaapivideoconverter_glx.h:
27675 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
27676 Make sure libgstvaapi core decoding library doesn't include un-needed
27677 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
27678 Besides, even if the vaapisink element is not used, we are bound to have
27679 a correctly populated GstSurfaceBuffer from vaapidecode.
27680 Also clean-up the file along the way.
27682 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27684 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27685 vc1: fix use of possibly uninitialized variable.
27686 In decode_codec_data(), force initialization of format to zero so that
27687 we can catch up cases where codec-data has neither "format" nor "wmvversion"
27688 fields, thus making it possible to gracefully fail in this case.
27690 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27692 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27693 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
27695 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27697 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27698 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27699 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27700 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27701 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27702 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27703 decoder: sanitize codec-data decoding.
27704 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
27705 codec-data in the decoder sub-class. Provide a common shared helper
27706 function to do the actual work and delegating further to the sub-class.
27708 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27710 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27711 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27712 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27713 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27714 decoder: get rid of GstVaapiDecoderUnit::buffer field.
27715 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
27716 useless nowadays as creating sub-buffers doesn't bring any value. It
27717 actually means more memory allocations. We can't do without that in
27718 JPEG and MPEG-4:2 decoders.
27720 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27722 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27723 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27724 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27725 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27726 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27727 decoder: sanitize uses of codec frame input buffer (cosmetics).
27728 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
27731 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27733 * gst/vaapi/gstvaapisink.c:
27734 vaapisink: add helper function to apply a composition buffer.
27735 Simplify application of a composition buffer to a GstVaapiSurface, and
27736 all its peers, until that function is eventually promoted to libgstvaapi.
27738 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27740 * gst/vaapi/gstvaapisink.c:
27741 vaapisink: fix support for raw YUV buffers.
27742 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
27743 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
27744 However, we previously assumed in that case that it was a "native" VA buffer,
27745 thus not calling into GstVaapiUploader::process().
27747 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27749 * gst-libs/gst/vaapi/gstcompat.h:
27750 * gst/vaapi/gstvaapidecode.c:
27751 * gst/vaapi/gstvaapidownload.c:
27752 * gst/vaapi/gstvaapipostproc.c:
27753 * gst/vaapi/gstvaapisink.c:
27754 * gst/vaapi/gstvaapiupload.c:
27755 plugins: use modern GstElement metadata information.
27756 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
27757 basically is the same as gst_element_class_set_details_simple() in
27758 GStreamer 0.10 context.
27760 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27762 * gst/vaapi/gstvaapidecode.c:
27763 * gst/vaapi/gstvaapidownload.c:
27764 * gst/vaapi/gstvaapipostproc.c:
27765 * gst/vaapi/gstvaapisink.c:
27766 * gst/vaapi/gstvaapiupload.c:
27767 plugins: move up interfaces (cosmetics).
27768 Move GstImplementsInterface and GstVideoContext support functions up
27769 so that to keep a clear separation between the plugin element and its
27772 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27774 * gst/vaapi/gstvaapisink.c:
27775 * gst/vaapi/gstvaapiuploader.c:
27776 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
27777 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
27778 Also use the newly added gst_vaapi_image_format_from_structure() helper
27779 in GstVaapiUploader::ensure_allowed_caps().
27781 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27783 * gst/vaapi/gstvaapipluginbuffer.c:
27784 plugins: fix creation of video buffer from another source buffer.
27785 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
27786 buffer video meta since it would be unreference'd from the get_buffer()
27787 helper function. For other cases, we still use (steal) the newly created
27790 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27792 * gst/vaapi/gstvaapipluginbuffer.c:
27793 * gst/vaapi/gstvaapipluginutil.c:
27794 plugins: include "sysdeps.h" header instead of "config.h".
27796 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27798 * gst-libs/gst/vaapi/gstcompat.h:
27800 tests: modernize GstTypeFind functions.
27801 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
27802 exactly correspond to the expected behaviour.
27804 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27808 * tests/test-decode.c:
27809 * tests/test-display.c:
27810 * tests/test-h264.c:
27811 * tests/test-h264.h:
27812 * tests/test-jpeg.c:
27813 * tests/test-jpeg.h:
27814 * tests/test-mpeg2.c:
27815 * tests/test-mpeg2.h:
27816 * tests/test-mpeg4.c:
27817 * tests/test-mpeg4.h:
27818 * tests/test-textures.c:
27819 * tests/test-vc1.c:
27820 * tests/test-vc1.h:
27821 * tests/test-windows.c:
27822 tests: fix license templates.
27824 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27826 * tests/test-display.c:
27827 tests: use gst_vaapi_image_format_from_structure() in test-display.
27828 Use gst_vaapi_image_format_from_structure() helper in test-display and
27829 then extract a VAImageFormat from it instead of relying on GstCaps for
27830 YUV and RGB formats.
27832 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27837 * tests/test-decode.c:
27838 * tests/test-display.c:
27839 * tests/test-subpicture.c:
27840 * tests/test-textures.c:
27841 * tests/test-windows.c:
27842 tests: include "sysdeps.h" header instead of "config.h".
27844 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27846 * gst-libs/gst/vaapi/gstcompat.h:
27847 * gst-libs/gst/vaapi/gstvaapicontext.c:
27848 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27849 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
27850 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
27851 function with GStreamer 0.10 compatible semantics, or that tries to
27852 approach the current meaning. Basically, this is also just about moving
27853 the helper to gstcompat.h.
27855 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27857 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27858 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27859 image: add gst_vaapi_image_format_from_structure() helper.
27860 Add helper function to convert video formats from a GstStructure to a
27861 plain GstVaapiImageFormat.
27863 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27865 * gst-libs/gst/vaapi/Makefile.am:
27866 * gst-libs/gst/vaapi/gstcompat.h:
27867 * gst-libs/gst/vaapi/sysdeps.h:
27868 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
27870 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27872 * gst-libs/gst/vaapi/sysdeps.h:
27873 sysdeps: add more standard includes by default.
27875 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27878 configure: improve GStreamer API version checks.
27880 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27883 * debian.upstream/Makefile.am:
27884 * debian.upstream/changelog.in:
27885 * debian.upstream/control.in:
27886 * debian.upstream/gstreamer-vaapi-doc.install.in:
27887 * debian.upstream/libgstvaapi-dev.install.in:
27888 * debian.upstream/libgstvaapi-drm.install.in:
27889 * debian.upstream/libgstvaapi-glx.install.in:
27890 * debian.upstream/libgstvaapi-wayland.install.in:
27891 * debian.upstream/libgstvaapi-x11.install.in:
27892 * debian.upstream/libgstvaapi.install.in:
27893 * docs/reference/libs/Makefile.am:
27894 * docs/reference/libs/libs-docs.xml.in:
27895 * docs/reference/plugins/Makefile.am:
27896 * docs/reference/plugins/plugins-docs.xml.in:
27897 * gst-libs/gst/vaapi/Makefile.am:
27898 * gst/vaapi/Makefile.am:
27899 * pkgconfig/Makefile.am:
27900 * pkgconfig/gstreamer-vaapi-drm.pc.in:
27901 * pkgconfig/gstreamer-vaapi-glx.pc.in:
27902 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
27903 * pkgconfig/gstreamer-vaapi-x11.pc.in:
27904 * pkgconfig/gstreamer-vaapi.pc.in:
27905 * tests/Makefile.am:
27906 configure: rename GST_MAJORMINOR to GST_API_VERSION.
27908 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27911 configure: improve check for H.264 codecparser.
27913 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
27915 * gst/vaapi/gstvaapiuploader.c:
27916 vaapiupload: fix illegal write in ensure_image().
27917 Fix ensure_image() to only zero-initialize the first line of each plane.
27918 Properly initializing each plane to their full vertical resolution would
27919 require to actually compute it based on the image format.
27920 In particular, for NV12 images, the UV plane has half vertical resolution
27921 vs. the Y plane. So using the full image height to initialize the UV plane
27922 will obviously lead to a buffer overflow. Likewise for other YUV format.
27923 Since ensure_image() is only a helper function to initialize something,
27924 and not necessarily the whole thing, it is fine to initializ the first
27925 line only. Besides, the target surface is not rendered either.
27926 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27928 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
27930 * gst-libs/gst/codecparsers/Makefile.am:
27931 * gst-libs/gst/video/Makefile.am:
27932 build: fix compiling of local GstVideoDecoder and codecparsers.
27933 Generated source files were missing a dependency on the complete set of
27934 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
27935 to build and almost every codec parser source depends on parserutils.h.
27936 https://bugs.freedesktop.org/show_bug.cgi?id=59575
27937 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
27938 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27940 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27942 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27943 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
27944 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
27945 there is no pred_weight_table() that was parsed.
27946 This is a workaround for the VA intel-driver on Ivy Bridge.
27948 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27950 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27951 h264: use new profile definitions from codecparsers.
27953 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27955 * ext/codecparsers:
27956 codecparsers: update to gst-vaapi-branch commit 500bc02.
27957 500bc02 h264: add profile enums
27959 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27964 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27966 * ext/codecparsers:
27967 codecparsers: update to gst-vaapi-branch commit 31b1c57.
27968 8957fb7 mpeg2: add helpers to convert quantization matrices
27969 07c4034 mpeg2: store quantization matrices in zigzag scan order
27971 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27973 * tests/simple-decoder.c:
27974 tests: simple-decoder: fix build on older platforms.
27975 Make simple-decoder build and execute correctly on older platforms,
27976 and more precisely older versions of glib.
27978 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27980 * gst-libs/gst/vaapi/glibcompat.h:
27981 glibcompat: add replacement for g_async_queue_timeout_pop().
27982 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
27983 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
27984 new data to arrive in the queue.
27986 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27988 * gst-libs/gst/vaapi/glibcompat.h:
27989 glibcompat: add replacement for g_cond_wait().
27991 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27993 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27994 mpeg2: fix decoding of 4K videos.
27995 Account for slice_vertical_position_extension when vertical_size > 2800.
27997 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27999 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28000 mpeg2: fix decoding of sequence_end().
28001 There shall be only one place to call decode_current_picture(), and this
28002 is in the end_frame() hook. The EOS unit is processed after end_frame()
28003 so this means we cannot have a valid picture to decode/output at this
28006 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28008 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28009 mpeg2: improve robustness when packets are missing.
28010 Improve robustness when some expected packets where not received yet
28011 or that were not correctly decoded. For example, don't try to decode
28012 a picture if there was no valid sequence or picture headers.
28014 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28016 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28017 decoder: handle decode-only frames in raw API mode.
28018 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
28019 surface proxy, i.e. with a valid VA surface. This means that any frame
28020 marked as decode-only is simply skipped.
28022 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28024 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28025 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28026 decoder: allow frames to be dropped.
28027 If the decoder was not able to decode a frame because insufficient
28028 information was available, e.g. missing sequence or picture header,
28029 then allow the frame to be gracefully dropped without generating
28031 It is also possible that a frame is not meant to be displayed but
28032 only used as a reference, so dropping that frame is also a valid
28033 operation since GstVideoDecoder base class has extra references to
28034 that GstVideoCodecFrame that needs to be released.
28036 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28038 * gst/vaapi/gstvaapidecode.c:
28039 vaapidecode: handle decode-only frames.
28040 Decode-only frames may not have a valid surface proxy. So, simply discard
28041 them gracefully, i.e. don't create meta data information. GstVideoDecoder
28042 base class will properly handle this case and won't try to push any buffer
28043 to downstream elements.
28045 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28047 * gst/vaapi/gstvaapidecode.c:
28048 vaapidecode: add support for post-seek semantics reset.
28049 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
28050 and the creation of a new VA decoder.
28051 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28053 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28056 Bump version for development.
28058 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28064 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28066 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28067 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
28069 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28071 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28072 decoder: fix documentation for GstVaapiDecoderFrame.
28073 Drop superfluous reference to prev_slice member.
28075 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28077 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28078 decoder: assume current frame is complete at end-of-stream.
28079 Assume we got a complete frame when the end-of-stream is reached and that
28080 the current codec frame contains at least one slice data unit.
28082 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28086 * debian.upstream/copyright:
28087 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28088 * gst-libs/gst/vaapi/gstvaapicontext.c:
28089 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28090 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28091 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28092 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28093 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28094 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28095 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28096 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28097 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28098 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28099 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28100 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28101 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28102 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28103 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28104 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28105 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28106 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28107 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
28108 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28109 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28110 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28111 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28112 * gst-libs/gst/vaapi/gstvaapisurface.c:
28113 * gst-libs/gst/vaapi/gstvaapiutils.c:
28114 * gst-libs/gst/vaapi/gstvaapiutils.h:
28115 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28116 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28117 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28118 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28119 * gst-libs/gst/vaapi/sysdeps.h:
28120 * gst/vaapi/gstvaapidecode.c:
28121 * gst/vaapi/gstvaapidownload.c:
28122 * gst/vaapi/gstvaapipluginbuffer.c:
28123 * gst/vaapi/gstvaapipluginbuffer.h:
28124 * gst/vaapi/gstvaapipostproc.c:
28125 * gst/vaapi/gstvaapisink.c:
28126 * gst/vaapi/gstvaapiupload.c:
28127 * gst/vaapi/gstvaapiuploader.c:
28129 * tests/test-decode.c:
28130 * tests/test-subpicture.c:
28131 legal: fix year for some copyright notices (2013).
28133 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28135 * gst-libs/gst/vaapi/gstvaapicontext.h:
28136 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28137 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28138 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
28139 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28140 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
28141 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28142 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
28143 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
28144 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
28145 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28146 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28147 * gst-libs/gst/vaapi/gstvaapisurface.c:
28148 * gst-libs/gst/vaapi/gstvaapisurface.h:
28149 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
28150 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
28151 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28152 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28153 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28154 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
28155 * gst/vaapi/gstvaapidecode.h:
28156 * gst/vaapi/gstvaapisink.h:
28157 * tests/test-subpicture.c:
28158 legal: fix year for some copyright notices (2012).
28160 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28162 * gst-libs/gst/vaapi/gstvaapicompat.h:
28163 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
28164 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
28165 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
28166 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
28167 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
28168 * gst-libs/gst/vaapi/gstvaapiobject.c:
28169 * gst-libs/gst/vaapi/gstvaapiobject.h:
28170 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
28171 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
28172 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
28173 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28174 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28175 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
28176 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
28177 * gst-libs/gst/vaapi/gstvaapitexture.c:
28178 * gst-libs/gst/vaapi/gstvaapitexture.h:
28179 * gst-libs/gst/vaapi/gstvaapitypes.h:
28180 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
28181 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
28182 * gst-libs/gst/vaapi/gstvaapivalue.c:
28183 * gst-libs/gst/vaapi/gstvaapivalue.h:
28184 * gst-libs/gst/vaapi/gstvaapivideopool.c:
28185 * gst-libs/gst/vaapi/gstvaapivideopool.h:
28186 * gst-libs/gst/vaapi/gstvaapiwindow.h:
28187 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
28188 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
28189 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
28190 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
28191 * tests/test-display.c:
28192 * tests/test-surfaces.c:
28193 * tests/test-windows.c:
28194 legal: add Intel copyright on modified files.
28196 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28201 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28203 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28204 wayland: use a local event queue to avoid lock contention.
28205 This improves performance when rendering several surfaces from within
28206 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
28208 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28210 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28211 wayland: fix thread-safe issues.
28212 The Wayland API is not fully thread-safe and client applications shall
28213 perform locking themselves on key functions. Besides, make sure to
28214 release the lock if the _render() function fails.
28216 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28218 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28219 wayland: really wait until the pending redraw completed.
28220 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
28221 the completion of the redraw request. Use it in _render() function to
28222 actually block until the previous draw request is completed.
28224 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28226 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
28227 wayland: fix frame_redraw callback.
28228 The redraw callback needs to be attached to the surface prior to the
28229 commit. Otherwise, the callback notifies the next surface repaint,
28230 which is not the desired behaviour. i.e. we want to be notified for
28231 the surface we have just filled.
28232 Another isse was the redraw_pending was reset before the actual completion
28233 of the frame redraw callback function, thus causing concurrency issues.
28234 e.g. the callback could have been called again, but with a NULL buffer.
28236 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28238 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
28239 wayland: fix display sharing.
28240 When the Wayland display is shared, we still have to create our own local
28241 shell and compositor objects, since they are not propagated from the cache.
28242 Likewise, we also need to determine the display size or vaapisink would
28243 fail to account for the display aspect ratio, and will try to create a 0x0
28246 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28248 * ext/codecparsers:
28249 codecparsers: update to gst-vaapi-branch commit 21a098e.
28250 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
28251 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
28253 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28255 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28256 vc1: handle frames with multiple slices.
28258 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28260 * ext/codecparsers:
28261 codecparsers: update to gst-vaapi-branch commit 3fba492.
28262 3fba492 vc1: add API to parse slice headers
28264 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28266 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28267 vc1: handle CLOSED_ENTRY.
28268 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
28269 lack a reference anchor picture, these B pictures shall be discarded.
28270 https://bugs.freedesktop.org/show_bug.cgi?id=59505
28272 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28274 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28275 vc1: cope with latest codecparser changes.
28276 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
28277 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
28278 the actual value of DQPROFILE.
28280 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28282 * ext/codecparsers:
28283 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
28284 3d2c67c vc1: simplify GstVC1VopDquant structure
28286 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28288 * ext/codecparsers:
28289 codecparsers: update to gst-vaapi-branch commit 5d33da8.
28290 5d33da8 vc1: fix bitplanes decoding
28291 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
28292 0b13d2b vc1: fix calculation of ALTPQUANT
28293 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
28295 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28297 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28298 vc1: fix size of encapsulated BDU.
28299 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
28300 the size of the BDU data, starting from offset, i.e. after any start
28302 This fixes a buffer overflow during the unescaping process.
28304 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
28306 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28307 vc1: fix decoding of WMV3 videos in AVI format.
28308 The AVI demuxer (avidemux) does not set a proper "format" attribute
28309 to the generated caps. So, try to recover the video codec format from
28310 the "wmvversion" property instead.
28311 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28313 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28315 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28316 vc1: review and report errors accordingly.
28317 Use GST_ERROR() to report real errors instead of hiding them into
28320 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28322 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28323 vc1: don't create GstBuffers for all decoder units.
28324 Don't create temporary GstBuffers for all decoder units, even if they
28325 are lightweight "sub-buffers", since it is not really necessary to keep
28326 the buffer data around.
28328 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28330 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28331 vc1: implement flush() hook.
28332 Make it a simple DPB flush.
28334 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28336 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28337 vc1: implement {start,end}_frame() hooks.
28338 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28339 that to create new VA context earlier and submit VA pictures to the
28340 HW for decoding as soon as possible. i.e. don't wait for the next
28341 frame to start decoding the previous one.
28343 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28345 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28346 vc1: fix next POC for new sequence layers.
28347 Fix next POC when a new sequence layer is reached. At this point, we
28348 need to reset any previous reference picture, i.e. non B-frame.
28350 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28352 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28353 vc1: port to common GstVaapiDpb interface.
28354 Use GstVaapiDpb interface instead of maintaining our own prev and next
28355 picture pointers. While doing so, try to derive a sensible POC value.
28356 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28358 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28360 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28361 vc1: fix decode_sequence_end() to return success, not EOS.
28363 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28365 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28366 decoder: simplify gst_vaapi_decoder_get_surface().
28367 Avoid extraenous branches, i.e. immediately return with success once we
28368 have a decoded frame available.
28370 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28372 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28373 decoder: optimize and clean decode_step() up.
28374 Avoid usage of goto. Simplify decode_step() process to first accumulate all
28375 pending buffers into the GstAdapter, and then parse and decode units from
28376 that input adapter. Stop the process once a frame is fully decoded or an
28379 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28381 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28382 display: move "vaapi" debug init to libgstvaapi_init_once().
28384 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28387 * gst-libs/gst/vaapi/Makefile.am:
28388 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28389 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
28390 display: dump gstreamer-vaapi version for debugging purposes.
28392 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28394 * tests/Makefile.am:
28395 tests: simple-decoder: fix build with built-in videoutils.
28396 Fix build with built-in videoutils, i.e. when system GStreamer installation
28397 does not know about GstVideoDecoder API.
28399 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28401 * tests/simple-decoder.c:
28402 tests: simple-decoder: flush decoded frames at EOS.
28403 Flush the remaining decoded frames when an end-of-stream is reached.
28405 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28407 * tests/simple-decoder.c:
28408 tests: simple-decoder: drop use of GstVaapiVideoMeta.
28409 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
28410 in libgstvaapi forever. Rather, that'd move to plugin elements at some
28413 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28415 * tests/simple-decoder.c:
28416 tests: simple-decoder: add benchmark mode.
28417 Add --benchmark option to enable benchmark mode where rendering is not
28418 synchronized with presentation timestamps of the decoded surfaces.
28420 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28422 * tests/Makefile.am:
28423 * tests/simple-decoder.c:
28424 tests: simple-decoder: honour framerate from the bitstream.
28425 Try to honour the framerate from the bitstream, or cap the playback to
28428 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28430 * tests/simple-decoder.c:
28431 tests: simple-decoder: set window size to the surface dimensions.
28432 Set the window size to the decoded surface dimensions, if the user has
28433 not requested the application to run in full-screen mode. Besides, no
28434 effort is made to preserve aspect ratio or to center the video within
28437 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28439 * tests/Makefile.am:
28440 * tests/simple-decoder.c:
28441 tests: add simple decoder application.
28442 Add simple decoder application to show off decoding capabilities from
28443 raw bitstreams, for debugging or performance evaluation purposes.
28445 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28447 * tests/Makefile.am:
28450 tests: add codec helper utils.
28451 Add helper functions to determine the codec type from a specific file
28452 or utility functions to convert from codec type to GstCaps or from
28453 codec name to codec type.
28455 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28458 tests: allow fullscreen mode.
28459 Add new --fullscreen|-f option to create new windows in fullscreen mode.
28461 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28463 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28464 h264: implement GstVaapiDecoder::flush() as a DPB flush.
28466 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28468 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28469 h264: handle end-of-stream NALU.
28470 Handle <end-of-stream> NAL unit to actually flush any pending picture
28473 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28475 * gst/vaapi/gstvaapidecode.c:
28476 vaapidecode: handle EOS events.
28477 Flush all decoded frames to downstream when EOS is received. This is
28478 performed by implementing GstVideoDecoder::finish() hook.
28480 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28482 * gst/vaapi/gstvaapidecode.c:
28483 vaapidecode: split gvd_handle_frame() into decode/push frames.
28484 Split GstVideoDecoder::handle_frame() implementation into two functions:
28485 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
28486 for purging all decoded frames and submit them downstream.
28488 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28490 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28491 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28492 decoder: add GstVaapiDecoder::flush() hook.
28494 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28496 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28497 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28498 decoder: fix check for end-of-stream in raw API mode.
28499 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
28500 if the end-of-stream was already reached at the previous iteration.
28502 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28504 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28505 decoder: make decode_step() return once the frame is decoded.
28506 Make sure we always have a free surface left to use for decoding the
28507 current frame. This means that decode_step() has to return once a frame
28508 gets decoded. If the current adapter contains more buffers with valid
28509 frames, they will get parsed and decoded on subsequent iterations.
28511 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28513 * ext/codecparsers:
28514 codecparsers: update to gst-vaapi-branch commit b47983a.
28515 8840c2d h264: zero-initialize SPS VUI parameters
28517 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28520 Bump version for development.
28522 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28528 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28530 * docs/reference/libs/libs-docs.xml.in:
28531 * docs/reference/libs/libs-sections.txt:
28532 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28533 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28534 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28535 docs: expose new interfaces.
28537 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28542 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28544 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28545 dpb: cosmetics (clean-ups).
28547 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28549 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28550 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28551 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28552 dpb: port to GstVaapiMiniObject.
28554 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28556 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28557 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28558 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28559 dpb: drop GstVaapiDpb2 interface, keep only one class.
28560 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
28561 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
28562 around the specified picture POC.
28564 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28566 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28567 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28568 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28569 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
28570 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
28571 useful to other decoders that require 2 reference pictures, e.g. VC-1.
28572 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28574 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28577 Bump version for pre-release.
28579 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28584 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
28587 * gst-libs/gst/vaapi/gstvaapicontext.c:
28588 * gst-libs/gst/vaapi/gstvaapiutils.c:
28589 * gst-libs/gst/vaapi/sysdeps.h:
28590 * tests/test-subpicture.c:
28591 overlay: fix build without advanced GstVideoOverlayFormatFlags.
28592 Check for global-alpha support in GstVideoOverlayComposition API.
28593 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28595 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28597 * tests/test-subpicture.c:
28598 tests: add support for global-alpha subpictures.
28599 Add --global-alpha option to test-subpicture.
28601 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28603 * tests/Makefile.am:
28604 * tests/test-subpicture.c:
28605 tests: use GstVideoOverlayComposition API for subpicture test.
28607 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28609 * tests/Makefile.am:
28610 * tests/test-subpicture.c:
28611 tests: use common decoder helpers for subpicture test.
28612 Use common decoder helpers for subpicture test, thus allowing to decode
28613 sample images in an alternate format.
28615 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28617 * tests/Makefile.am:
28620 * tests/test-decode.c:
28621 tests: add decoder helpers.
28623 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28625 * gst-libs/gst/vaapi/gstvaapicontext.c:
28626 overlay: fix ordering of composition layers.
28627 Make sure to maintain the association order of composition layers when
28628 GstVideoOverlayRectangle objects are kept around (cached).
28630 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28632 * gst-libs/gst/vaapi/gstvaapicontext.c:
28633 overlay: fix support for global-alpha.
28634 Fix support for global-alpha subpictures. The previous changes brought
28635 the ability to check for GstVideoOverlayRectangle changes by comparing
28636 the underlying pixel buffer pointers. If sequence number and pixel data
28637 did not change, then this is an indication that only the global-alpha
28638 value changed. Now, try to update the underlying VA subpicture global-alpha
28640 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28642 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28644 * gst-libs/gst/vaapi/gstvaapicontext.c:
28645 overlay: detect render-rect changes.
28646 Don't re-upload VA subpicture if only the render rectangle changed.
28647 Rather deassociate the subpicture and re-associate it with the new
28650 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28652 * gst-libs/gst/vaapi/gstvaapicontext.c:
28653 overlay: fix check for pixels buffer change.
28654 A GstVideoOverlayRectangle is created whenever the underlying pixels data
28655 change. However, when global-alpha is supported, it is possible to re-use
28656 the same GstVideoOverlayRectangle but with a change to the global-alpha
28657 value. This process causes a change of sequence number, so we can no longer
28659 Still, if sequence numbers did not change, then there was no change in
28660 global-alpha either. So, we need a way to compare the underlying GstBuffer
28661 pointers. There is no API to retrieve the original pixels buffer from
28662 a GstVideoOverlayRectangle. So, we use the following heuristics:
28663 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
28664 format flags from which the GstVideoOverlayRectangle was created. This
28665 will work if there was no prior consumer of the GstVideoOverlayRectangle
28666 with alternate (non-"native") format flags.
28667 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
28668 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
28669 with flags that match the subpicture. This is needed to cope with
28670 platforms that don't support global-alpha in HW, so the gst-video
28671 layer takes care of that and fixes this up with a possibly new
28672 GstBuffer, and hence pixels data (or) in-place by caching the current
28673 global-alpha value applied. So we have to determine the rectangle
28674 was previously used, based on what previous flags were used to
28675 retrieve the ARGB pixels buffer.
28677 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28679 * gst-libs/gst/vaapi/gstvaapicontext.c:
28680 overlay: optimize cache at the GstVideoOverlayRectangle level.
28681 We previously assumed that an overlay composition changed if the number
28682 of overlay rectangles in there actually changed, or that the rectangle
28683 was updated, and thus its seqnum was also updated.
28684 Now, we can cope with cases where the GstVideoOverlayComposition grew
28685 by one or a few more overlay rectangles, and the initial overlay rectangles
28688 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28690 * gst-libs/gst/vaapi/gstvaapicontext.c:
28691 overlay: simplify caching of GstVideoOverlayComposition objects.
28692 Create the GPtrArray once in the _init() function and destroy it only
28693 in the _finalize() function. Then use overlay_clear() to remove all
28694 subpicture associations for intermediate updates, don't recreate the
28696 Make GstVaapiOverlayRectangle a reference counted object. Also make
28697 sure that overlay_rectangle_new() actually creates and associates the
28700 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28702 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28703 * gst-libs/gst/vaapi/gstvaapiutils.c:
28704 * gst-libs/gst/vaapi/gstvaapiutils.h:
28705 overlay: add support for global-alpha.
28706 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
28707 the same code path could also work for premultiplied-alpha but this
28709 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28711 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28713 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28714 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28715 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28716 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28717 * gst-libs/gst/vaapi/gstvaapisurface.c:
28719 * tests/test-subpicture.c:
28720 subpicture: add support for global-alpha.
28721 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
28722 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
28723 to address this feature.
28724 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28726 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28728 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28729 * gst-libs/gst/vaapi/gstvaapiutils.c:
28730 * gst-libs/gst/vaapi/gstvaapiutils.h:
28731 subpicture: add premultiplied-alpha and global-alpha feature flags.
28732 Add premultiplied-alpha and global-alpha feature flags, along with converters
28733 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
28734 also necessary for GstVideoOverlayComposition API.
28736 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28738 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28739 display: allow image/subpicture formats with additional flags.
28740 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
28741 and any additional flags needed. Currently, all flags are set to zero.
28743 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28745 * gst-libs/gst/codecparsers/Makefile.am:
28746 * gst-libs/gst/video/Makefile.am:
28747 * tests/Makefile.am:
28748 libs: fix build of submodule wrappers.
28749 Make sure to build codecparsers/ and videoutils/ sources against the
28750 newly generated headers when out-of-source builds are used.
28752 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28755 configure: fix checks for packages installed in non-standard roots.
28757 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28759 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28760 decoder: fix mini object implementation on 64-bit systems.
28761 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
28762 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
28763 Only a gsize can hold all bits of a pointer.
28764 Thanks to Ouping Zhang for spotting this error.
28766 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28768 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28769 mpeg2: optimize scan for the end of the frame.
28770 Heuristic: if the second start-code is available, check whether that
28771 one marks the start of a new frame because e.g. this is a sequence
28772 or picture header. This doesn't save much, since we already cache the
28775 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28777 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28778 mpeg2: optimize scan for start codes.
28779 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
28780 A start code prefix is defined by the following bytes: 00 00 01. Thus,
28781 for any group of 3 bytes (xx yy zz), we have the following possible cases:
28782 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
28783 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
28784 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
28785 4. xx == 00, yy == 00, zz == 1, we have match!
28786 This algorithm requires to peek bytes from the adapter. This increases the
28787 amount of bytes copied to a temporary buffer, but this process is much faster
28788 than scanning for all the bytes and using shift/masks. So, overall, this is
28791 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28793 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28794 mpeg2: drop useless gst_adapter_peek().
28795 Drop useless gst_adapter_peek() since the returned buffer was not used
28796 and this could incur superfluous memcpy().
28798 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28800 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28801 mpeg2: cosmetics: move parse_slice() down.
28803 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28805 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28806 mpeg2: avoid too many allocations of parser info objects.
28807 Move parsing back to decoding step, but keep functions separate for now.
28808 This is needed for future optimizations that may introduce some meta data
28809 for parsed info attached to codec frames.
28811 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28813 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28814 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28815 decoder: decoder units are no longer dynamically allocated objects.
28817 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28819 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28820 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28821 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28822 decoder: optimize pre-allocation of decoder units.
28823 Optimize pre-allocation of decoder units, thus avoiding un-necessary
28824 memory reallocations. The heuristic used is that we could have around
28825 one slice unit per macroblock line.
28827 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28829 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28830 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28831 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28832 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28833 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28834 decoder: use an array of units instead of a single-linked list.
28835 Use a GArray to hold decoder units in a frame, instead of a single-linked
28836 list. This makes 'append' calls faster, but not that much. At least, this
28837 makes things clearer.
28839 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28841 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28842 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28843 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28844 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28845 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28846 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28847 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28848 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28849 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28850 decoder: refactor decoder unit API.
28851 Allocate decoder unit earlier in the main parse() function and don't
28852 delegate this task to derived classes. The ultimate purpose is to get
28853 rid of dynamic allocation of decoder units.
28855 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28857 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28858 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
28859 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
28860 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
28862 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28864 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28865 h264: introduce parser info instead of H.264 specific decoder unit.
28866 Use a new GstVaapiParserInfoH264 data structure instead of deriving
28867 from GstVaapiDecoderUnit for H.264 specific parser information.
28869 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28871 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28872 h264: set default values for some header fields.
28873 The SPS, PPS and slice headers are not fully zero-initialized in the
28874 codecparsers/ library. Rather, the standard upstream behaviour is to
28875 initialize only certain syntax elements with some inferred values if
28876 they are not present in the bitstream.
28877 At the gstreamer-vaapi decoder level, we need to further initialize
28878 certain syntax elements with some sensible default values so that to
28879 not complicate VA drivers that just pass those verbatim to the HW,
28880 and also avoid an memset() of the whole decoder unit.
28881 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28882 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28884 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28886 * ext/codecparsers:
28887 codecparsers: update to gst-vaapi-rebased commit b47983a.
28888 b47983a h264: add inferred value for slice_beta_offset_div2
28890 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28892 * gst/vaapi/gstvaapidecode.c:
28893 * gst/vaapi/gstvaapidownload.c:
28894 * gst/vaapi/gstvaapipluginbuffer.c:
28895 * gst/vaapi/gstvaapipluginbuffer.h:
28896 * gst/vaapi/gstvaapipostproc.c:
28897 * gst/vaapi/gstvaapisink.c:
28898 * gst/vaapi/gstvaapiupload.c:
28899 * gst/vaapi/gstvaapiuploader.c:
28900 plugins: cope with new GstVaapiVideoMeta API.
28901 Update plugin elements with the new GstVaapiVideoMeta API.
28902 This also fixes support for subpictures/overlay because GstVideoDecoder
28903 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
28904 is marked as read-only. However, when comes in the textoverlay element
28905 for example, it checks whether the input buffer is writable. Since that
28906 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
28907 does not preserve the parent field, the generated buffer in textoverlay
28908 is not exploitable because we lost all VA specific information.
28909 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
28910 all information are preserved through gst_buffer_copy() since the latter
28911 does copy metadata (qdata in this case).
28913 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28915 * gst-libs/gst/vaapi/Makefile.am:
28916 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28917 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28918 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28919 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28920 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28921 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28922 videobuffer: wrap video meta into a surface buffer.
28923 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
28924 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
28925 expecting a GstSurfaceBuffer like Clutter.
28927 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28929 * gst-libs/gst/vaapi/Makefile.am:
28930 * gst-libs/gst/vaapi/gstvaapivideometa.c:
28931 * gst-libs/gst/vaapi/gstvaapivideometa.h:
28932 videobuffer: add video meta information.
28933 Add new GstVaapiVideoMeta object that holds all information needed to
28934 convey gst-vaapi specific data as a GstBuffer.
28936 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28938 * gst/vaapi/gstvaapidecode.c:
28939 vaapidecode: fix calculation of the time-out value.
28940 Fix calculation of the time-out value for cases where no VA surface is
28941 available for decoding. In this case, we need to wait until downstream
28942 sink consumed at least one surface. The time-out was miscalculated as
28943 it was always set to <current-time> + one second, which is not suitable
28944 for streams with larger gaps.
28946 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28948 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28949 decoder: always use the calculated presentation timestamp.
28950 Use PTS value computed by the decoder, which could also be derived from
28951 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
28952 the original one was miscomputed or only represented a DTS instead.
28954 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28956 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28957 h264: don't create sub-buffer for slice data.
28959 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28961 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28962 decoder: create new context when encoded resolution changes.
28963 Create a new VA context if the encoded surface size changes because we
28964 need to keep the underlying surface pool until the last one was released.
28965 Otherwise, either of the following cases could have happened: (i) release
28966 a VA surface to an inexistent pool, or (ii) release VA surface to an
28967 existing surface pool, but with different size.
28969 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28971 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28972 mpeg2: don't create sub-buffer for slice data.
28973 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
28974 frame input buffer data. This is possible because the codec frame is valid
28975 until end_frame() where we submit the VA buffers for decoding. Anyway, the
28976 slice data buffer is copied into the VA buffer when it is created.
28978 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28980 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28981 mpeg2: minor clean-ups.
28982 Drop explicit initialization of most fields that are implicitly set to
28983 zero. Remove some useless checks for NULL pointers.
28985 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28987 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28988 mpeg2: optimize scan for the second start code.
28989 Optimize scan for the second start code, on the next parse() call so that
28990 to avoid scanning again earlier bytes where we didn't find any start code.
28992 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28994 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28995 mpeg2: use sequence_display_extension() to compute PAR.
28996 Also compute pixel-aspect-ratio from sequence_display_extension(),
28997 should it exist in the bitstream.
28999 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29001 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29002 mpeg2: handle sequence_display_extension().
29004 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29006 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29007 mpeg2: implement {start,end}_frame() hooks.
29008 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
29009 that to create new VA context earlier and submit VA pictures to the
29010 HW for decoding as soon as possible. i.e. don't wait for the next
29011 frame to start decoding the previous one.
29013 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29015 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29016 mpeg2: parse slice() header earlier.
29017 Parse slice() header and first macroblock position earlier in _parse()
29018 function instead of waiting for the _decode() stage. This doesn't change
29019 anything but readability.
29021 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29023 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29024 mpeg2: add codec specific decoder unit.
29025 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
29026 GstMpegVideoPacket and additional parsed header info. Besides, we now
29027 parse as early as in the _parse() function so that to avoid un-necessary
29028 creation of sub-buffers in _decode() for video packets that are not slices.
29030 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29032 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29033 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
29034 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
29035 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
29036 decoder: introduce lists of units to decode before/after frame.
29037 Theory of operations: all units marked as "slice" are moved to the "units"
29038 list. Since this list only contains slice data units, the prev_slice pointer
29039 was removed. Besides, we now maintain two extra lists of units to be decoded
29040 before or after slice data units.
29041 In particular, all units in the "pre_units" list will be decoded before
29042 GstVaapiDecoder::start_frame() is called and units in the "post_units"
29043 list will be decoded after GstVaapiDecoder::end_frame() is called.
29045 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29047 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29048 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29049 decoder: drop useless checks for codec objects.
29050 Codec objects are used internally only and they are bound to be created
29051 with a valid GstVaapiDecoder object.
29053 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29055 * gst/vaapi/gstvaapidecode.c:
29056 vaapidecode: use GST_ERROR to print error messages.
29058 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29060 * gst/vaapi/gstvaapidecode.c:
29061 vaapidecode: avoid double release of frame on error.
29062 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
29063 was already called before and it returned an error. In that case, we were
29064 releasing the frame again, thus leading to a "double-free" condition.
29066 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29073 * gst-libs/gst/Makefile.am:
29074 * gst-libs/gst/vaapi/Makefile.am:
29075 * gst-libs/gst/video/Makefile.am:
29076 * gst/vaapi/Makefile.am:
29077 Add videoutils submodule for GstVideoDecoder APIs.
29079 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29082 configure: check for GstVideoDecoder API.
29083 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
29084 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
29085 parties may either use upstream git 0.10 branch or backport the necessary support
29086 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
29088 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29090 * docs/reference/libs/libs.core.types:
29091 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
29092 GstVaapiSurfaceProxy is no longer based on the GType system.
29094 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29096 * docs/reference/libs/libs-sections.txt:
29097 docs: fix entries for GstVaapiSurfaceProxy.
29099 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29104 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29107 * gst-libs/gst/vaapi/Makefile.am:
29108 Bump library major version.
29109 Increase library major so that to cope with API/ABI incompatible changes
29110 since 0.4.x series and avoid user issues.
29112 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29114 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29115 surfaceproxy: minor clean-ups.
29117 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29119 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29120 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29121 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29122 surfaceproxy: drop accessors to obsolete attributes.
29123 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
29124 VA surface. i.e. drop any other attribute like timestamp, duration,
29125 interlaced or top-field-first.
29127 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29129 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29130 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29131 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29132 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29133 * gst/vaapi/gstvaapidecode.c:
29134 decoder: maintain decoded frames as GstVideoCodecFrame objects.
29135 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
29136 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
29137 the strict minimum: a context and a surface.
29139 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29141 * gst/vaapi/gstvaapidecode.c:
29142 vaapidecode: output all decoded frames as soon as possible.
29143 Make sure to push all decoded frames downstream as soon as possible.
29144 This makes sure we don't need to wait for a new frame to be ready to
29145 be decoded before receiving new decoded frames.
29146 This also separates the decode process and the output process. The latter
29147 could be moved to a specific GstTask later on.
29149 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29151 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29152 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29153 decoder: add gst_vaapi_decoder_get_frame() API.
29154 Add new gst_vaapi_decoder_get_frame() function meant to be used with
29155 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
29156 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
29157 as the user-data object.
29159 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29161 * gst/vaapi/gstvaapipostproc.c:
29162 vaapipostproc: use GstBuffer flags for TFF.
29163 Determine whether the buffer represents the top-field only by checking for
29164 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
29165 flag. Also trust "interlaced" caps to determine whether the input frame
29166 is interleaved or not.
29168 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29170 * gst/vaapi/gstvaapipostproc.c:
29171 vaapipostproc: handle video sub-buffers.
29172 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
29173 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
29175 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29177 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29178 h264: optimize initialization process of decoder units.
29179 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
29180 The latter don't require zero-initialization since the codecparsers/ lib
29181 will do so for key variables already. This is not a great value per se but
29182 at least it makes it possible to check whether the default initialization
29183 decisions made in the codecparsers/ lib were right or not.
29184 This can be reverted if this exposes too many issues.
29186 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29188 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29189 h264: minor clean-ups.
29190 Drop explicit initialization of most fields that are implicitly set to
29191 zero. Drop helper macros for casting to GstVaapiPictureH264 or
29192 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
29194 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29196 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29197 h264: drop GstVaapiSliceH264 object.
29198 Use standard GstVaapiSlice object from now on since we already have
29199 parsed and recorded the slice headers (GstH264SliceHdr decode units).
29201 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29203 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29204 h264: detect new pictures from decode-units.
29205 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
29206 of assuming frame boundaries when first_mb_in_slice is zero.
29208 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29210 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29211 h264: implement {start,end}_frame() hooks.
29212 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
29213 that to create new VA context earlier and submit VA pictures to the
29214 HW for decoding as soon as possible. i.e. don't wait for the next
29215 frame to start decoding the previous one.
29217 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29219 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29220 h264: optimize scan for the second start code.
29221 Optimize scan for the second start code, on the next parse() call so that
29222 to avoid scanning again earlier bytes where we didn't find any start code.
29224 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29226 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29227 h264: add codec specific decoder unit.
29228 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
29229 NAL unit header (GstH264NalUnit) and additional parsed header info.
29230 Besides, we now parse headers as early as in the _parse() function so
29231 that to avoid un-necessary creation of sub-buffers in _decode() for
29232 NAL units that are not slices.
29233 This is a performance win by ~+1.1% only.
29235 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29237 * gst/vaapi/gstvaapisink.c:
29238 vaapisink: handle sub video-buffers.
29239 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
29240 for non raw YUV cases. Make sure vaapisink now understands those buffers.
29242 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29244 * gst/vaapi/gstvaapidecode.c:
29245 vaapidecode: use gst_vaapi_decoder_get_codec_state().
29246 Directly use the GstVideoCodecState associated with the VA decoder
29247 instead of parsing caps again.
29248 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29249 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29251 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29253 * gst/vaapi/gstvaapidecode.c:
29254 vaapidecode: use more standard helpers.
29255 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
29258 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29260 * gst/vaapi/gstvaapidecode.c:
29261 * gst/vaapi/gstvaapidecode.h:
29262 vaapidecode: move to GstVideoDecoder base class.
29263 Make vaapidecode derive from the standard GstVideoDecoder base element
29264 class. This simplifies the code to the strict minimum for the decoder
29265 element and makes it easier to port to GStreamer 1.x API.
29266 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29267 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29269 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29271 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29272 jpeg: initial port to new GstVaapiDecoder API
29274 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29276 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29277 vc1: initial port to new GstVaapiDecoder API
29279 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29281 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29282 h264: initial port to new GstVaapiDecoder API
29284 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29286 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29287 mpeg4: initial port to new GstVaapiDecoder API
29289 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29291 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29292 mpeg2: initial port to new GstVaapiDecoder API.
29294 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29296 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29297 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29298 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29299 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29300 * gst-libs/gst/vaapi/gstvaapiprofile.c:
29301 * gst-libs/gst/vaapi/gstvaapiprofile.h:
29302 decoder: use GstVideoCodecState.
29303 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
29304 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
29305 it possible to drop picture size (width, height) information, framerate
29306 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
29307 and interlace mode (is_interlaced field).
29308 This is a new API with backwards compatibility maintained. In particular,
29309 gst_vaapi_decoder_get_caps() is still available.
29310 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29311 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29313 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29315 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29316 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29317 * tests/test-decode.c:
29318 * tests/test-subpicture.c:
29319 decoder: update gst_vaapi_decoder_get_surface() semantics.
29320 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
29321 API. That is, return a GstVaapiDecoderStatus and the decoded surface
29322 as a handle to GstVaapiSurfaceProxy in parameter.
29323 This is an API/ABI change.
29325 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29327 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29328 decoder: use standard helper functions.
29329 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
29330 whenever necessary.
29332 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29334 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29335 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29336 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29337 decoder: expose new parse/decode API.
29338 Introduce new decoding process whereby a GstVideoCodecFrame is created
29339 first. Next, input stream buffers are accumulated into a GstAdapter,
29340 that is then passed to the _parse() function. The GstVaapiDecoder object
29341 accumulates all parsed units and when a complete frame or field is
29342 detected, that GstVideoCodecFrame is passed to the _decode() function.
29343 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
29344 process was successful.
29346 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29348 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29349 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29350 decoder: add {start,end}_frame() hooks.
29351 The start_frame() hook is called prior to traversing all decode-units
29352 for decoding. The unit argument represents the first slice in the frame.
29353 Some codecs (e.g. H.264) need to wait for the first slice in order to
29354 determine the actual VA context parameters.
29356 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29358 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29359 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29360 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29361 decoder: add new GstVaapiDecoder API.
29362 Split decoding process into two steps: (i) parse incoming bitstreams
29363 into simple decoder-units until the frame or field is complete; and
29364 (ii) decode the whole frame or field at once.
29365 This is an ABI change.
29367 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29369 * gst-libs/gst/vaapi/Makefile.am:
29370 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
29371 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
29372 decoder: add new "decoder-frame" object.
29373 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
29374 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
29375 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
29376 as the user-data member element.
29377 This is a libgstvaapi internal object.
29379 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29381 * gst-libs/gst/vaapi/Makefile.am:
29382 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
29383 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
29384 decoder: add new "decoder-unit" object.
29385 Introduce GstVaapiDecoderUnit which represents a fragment of the source
29386 stream to be decoded. For instance, a decode-unit will be a NAL unit for
29387 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
29389 This is a libgstvaapi internal object.
29391 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29393 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29394 Port GstVaapiFrameStore to GstVaapiMiniObject.
29396 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29398 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29399 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
29400 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29401 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29402 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29403 Port codec objects to GstVaapiMiniObject.
29405 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29407 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29408 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29409 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29410 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29411 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29412 * gst/vaapi/gstvaapidecode.c:
29413 * gst/vaapi/gstvaapipluginbuffer.c:
29414 * tests/test-decode.c:
29415 * tests/test-subpicture.c:
29416 surfaceproxy: port to GstVaapiMiniObject.
29417 GstVaapiSurfaceProxy does not use any particular functionality from
29418 GObject. Actually, it only needs a basic object type with reference
29420 This is an API and ABI change.
29422 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29424 * gst-libs/gst/vaapi/Makefile.am:
29425 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
29426 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
29427 Add GstVaapiMiniObject.
29428 Introduce a new reference counted object that is very lightweight and
29429 also provides flags and user-data functionalities. Initialization and
29430 finalization times are reduced by up to a factor 5x vs GstMiniObject
29431 from GStreamer 0.10 stack.
29432 This is a libgstvaapi internal object.
29434 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29436 * tests/Makefile.am:
29437 * tests/test-decode.c:
29438 * tests/test-mpeg4.c:
29439 * tests/test-mpeg4.h:
29440 tests: add test for MPEG-4:2 decoding.
29442 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29444 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29445 h264: initialize VA context before allocating the first slice.
29446 Fix decode_slice() to ensure a VA context exists prior to creating a
29447 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
29448 context ID. i.e. the latter was not initialized, thus causing failures
29449 on Cedar Trail for example.
29451 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
29454 configure: install plugin elements in GST_PLUGIN_PATH, if set.
29455 If GST_PLUGIN_PATH environment variable exists and points to a valid
29456 directory, then use it as the system installation path for gst-vaapi
29458 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29460 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29463 configure: downgrade glib required version to 2.28.
29465 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29467 * gst-libs/gst/vaapi/glibcompat.h:
29468 * gst/vaapi/gstvaapi.c:
29469 libs: fix compatibility with glib 2.28.
29470 Always prefer non deprecated APIs by default and provide compatibility
29471 glue for older glib versions when necessary.
29473 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29475 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29476 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
29477 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29478 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29479 libs: use glib >= 2.32 semantics for mutexes.
29480 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
29481 and termination. Basically, the new mutex objects can be used as static
29482 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
29484 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29486 * gst-libs/gst/vaapi/Makefile.am:
29487 libs: only export gst_vaapi_*() symbols.
29488 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
29489 library and the system-provided one, mainly used by videoparses/. Now,
29490 only symbols with the gst_vaapi_* prefix will be exported, if they are
29491 not marked as "hidden" to libgstvaapi.
29493 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29495 * gst/vaapi/gstvaapiuploader.c:
29496 vaapiupload: reset direct-rendering to zero when changing caps.
29497 Make sure to reset direct-rendering flag to zero when caps are changed,
29498 and only derive it to one when the next checks succeed.
29500 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29502 * gst/vaapi/gstvaapiupload.c:
29503 vaapiupload: fix sink caps to report the supported set of YUV caps.
29504 Try to allocate the GstVaapiUploader helper object prior to listing the
29505 supported image formats. Otherwise, only a single generic caps is output
29506 with no particular pixel format referenced in there.
29508 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
29510 * gst/vaapi/gstvaapiupload.c:
29511 * gst/vaapi/gstvaapiupload.h:
29512 vaapiupload: use new GstVaapiUploader helper.
29513 Use GstVaapiUploader helper that automatically handles direct rendering
29514 mode, thus making the "direct-rendering" property obsolete and hence it
29516 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
29517 really well supported and it could actually trigger degraded performance.
29518 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29520 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29522 * gst/vaapi/gstvaapisink.c:
29523 * gst/vaapi/gstvaapiuploader.c:
29524 * gst/vaapi/gstvaapiuploader.h:
29525 vaapisink: compute and expose the supported set of YUV caps.
29526 Make vaapisink expose only the set of supported caps for raw YUV buffers.
29527 Add gst_vaapi_uploader_get_caps() helper function to determine the set
29528 of supported YUV caps as source (for images). This function actually
29529 tries to zero and upload each image to a 64x64 test surface. Of course,
29530 this relies on VA drivers to not claim success if vaPutImage() is not
29531 correctly supported.
29533 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29536 * gst/vaapi/Makefile.am:
29537 * gst/vaapi/gstvaapisink.c:
29538 * gst/vaapi/gstvaapisink.h:
29539 * gst/vaapi/gstvaapiuploader.c:
29540 * gst/vaapi/gstvaapiuploader.h:
29541 vaapisink: add support for raw YUV buffers.
29542 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
29543 It is up to the caller to negotiate source caps (for images) and output
29544 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
29545 to help decide between the creation of a GstVaapiVideoBuffer or a regular
29546 GstBuffer on sink pads.
29547 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
29548 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29550 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29552 * gst-libs/gst/vaapi/gstvaapiimage.c:
29553 image: fix GstVaapiImage map and unmap.
29554 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
29555 structure correctly filled in if the image was already mapped.
29556 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
29557 was already unmapped.
29559 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
29562 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29563 videobuffer: fix memory leak for surface and image.
29564 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
29565 thus resulting on actual memory leak of GstVaapiImage when using them
29566 for downloads/uploads from VA surfaces and more specifically surfaces
29567 when the pipeline is shutdown. i.e. vaTerminate() was never called
29568 because the resources were not unreferenced, and thus not deallocated
29570 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29572 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29577 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29579 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29580 h264: fix picture size in macroblocks.
29581 The picture size signalled by sps->{width,height} is the actual size with
29582 cropping applied, not the original size derived from pic_width_in_mbs_minus1
29583 and pic_height_in_map_units_minus1. VA driver expects that original size,
29585 There is another issue pending: frame cropping information needs to be
29588 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29590 * gst-libs/gst/codecparsers/Makefile.am:
29591 codecparsers: always build parserutils first.
29592 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
29593 This is needed since that's the common dependency for actual codec
29594 parsers (gstvc1parser.c for instance).
29596 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29598 * gst-libs/gst/codecparsers/Makefile.am:
29599 codecparsers: always build the VC-1 parser library.
29600 ... this is useful to make sure pixel-aspect-ratio and framerate
29601 information are correctly parsed since we have no means to detect
29602 that at configure time.
29604 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29607 * gst-libs/gst/codecparsers/Makefile.am:
29608 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29609 mpeg2: fix PAR calculation from commit bd11bae.
29610 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
29611 correct PAR values. While doing so, require a newer version of the
29612 bitstream parser library.
29613 Note: it may be necessary to also parse the Sequence_Display_Extension()
29615 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29616 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29618 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29620 * gst-libs/gst/vaapi/Makefile.am:
29621 Fix build with the GNU gold linker.
29622 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
29623 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
29625 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
29628 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29629 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29630 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29631 wayland: port to 1.0 version of the protocol.
29632 This patch updates to relect the 1.0 version of the protocol. The main
29633 changes are the switch to wl_registry for global object notifications
29634 and the way that the event queue and file descriptor is processed.
29635 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29637 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29639 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29640 h264: fix incorrect integration of previous commit (4d31e1e).
29641 git am got confused somehow, though the end result doesn't change at
29642 all since we require both SPS and PPS to be parsed prior to decoding
29645 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29647 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29648 h264: start decoding slices after first SPS/PPS activation.
29649 Only start decoding slices when at least one SPS and PPS got activated.
29650 This fixes cases when a source represents a substream of another stream
29651 and no SPS and PPS was inserted before the first slice of the generated
29654 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29656 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29657 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
29658 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
29659 contain up to 32 fields but VA ReferenceFrames[] array expects up to
29660 16 reference frames, thus including both fields.
29662 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29664 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29665 h264: fix interlaced stream decoding with MMCO.
29666 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
29667 is equal to 1, i.e. when memory management control operations are used. In
29668 particular, when field_pic_flag is set to 0, the new reference flags shall
29669 be applied to both fields.
29671 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29673 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29674 h264: add initial support for interlaced streams.
29675 Decoded frames are only output when they are complete, i.e. when both
29676 fields are decoded. This also means that the "interlaced" caps is not
29677 propagated to vaapipostproc or vaapisink elements. Another limitation
29678 is that interlaced bitstreams with MMCO are unlikely to work.
29680 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29682 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29683 h264: split remove_reference_at() into finer units.
29684 Split remove_reference_at() into a function that actually removes the
29685 specified entry from the short-term or long-term reference picture array,
29686 and a function that sets reference flags to the desired value, possibly
29687 zero. The latters marks the picture as "unused for reference".
29689 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29691 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29692 decoder: fix gst_vaapi_picture_new_field() object type.
29693 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
29694 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
29695 shall generate a GstVaapiPictureH264 object.
29697 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29699 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29700 h264: add picture structure for reference picture marking process.
29701 Introduce new `structure' field to the H.264 specific picture structure
29702 so that to simplify the reference picture marking process. That local
29703 picture structure is derived from the original picture structure, as
29704 defined by the syntax elements field_pic_flag and bottom_field_flag.
29706 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29708 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29709 h264: introduce new frame store structure.
29710 The frame store represents a Decoded Picture Buffer entry, which can
29711 hold up to two fields. So far, the frame store is only used to hold
29714 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29716 * ext/codecparsers:
29717 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
29718 73d6aab h264: fix rbsp_more_data() implementation
29719 25d04cf h264: fix error code for invalid size parsed in SPS
29720 84798e5 fix FSF address
29722 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29724 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29725 h264: minor clean-ups.
29726 Move DPB flush up if the current picture to decode is an IDR. Besides,
29727 don't bother to check for IDR pictures in dpb_add() function since an
29728 explicit DPB flush was already performed in this case.
29730 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29732 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29733 h264: simplify reference picture marking process.
29734 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
29735 of maintaining them separately. This avoids refs/unrefs while making it
29736 possible to generate the list based on the actual picture structure.
29737 This also ensures that the list of generated ReferenceFrames[] actually
29738 matches what reference frames are available in the DPB. i.e. short_ref[]
29739 and long_ref[] entries are implied from the DPB, so there is no risk of
29740 having "dangling" references.
29742 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29744 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29745 h264: introduce per-field POC in GstVaapiPictureH264.
29746 Use the POC member available in the GstVaapiPicture base class and
29747 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
29748 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
29749 initialized to INT_MAX, so that to simplify picture POC calculation
29750 for non frame pictures.
29752 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29754 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29755 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
29756 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
29757 reference bits, thus simplifying the reference picture marking process
29758 to only track a single set of reference flags. Also introduce a new
29759 long_term_frame_idx member.
29761 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29763 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29764 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
29766 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29768 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29769 h264: fill in GstVaapiPicture structure.
29770 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
29772 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29774 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29775 h264: add vaapi_fill_picture() helper.
29776 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
29777 to VAPictureH264 structure. This is preparatory work to get rid of the
29778 local VAPictureH264 member in GstVaapiPictureH264.
29780 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29782 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29783 h264: fix activation order of picture and sequence parameters.
29784 Delay ensure_context() until we actually need a VA context for allocating
29785 new VA surfaces, and then GstVaapiPictures, but also when a real activation
29786 of a new picture parameter set occurs, thus also implying an activation
29787 of the related sequence parameter set.
29788 The most important thing was to drop the global pps and sps pointers since
29789 they may not have matched the currently activated picture parameter or
29790 sequence parameter sets at the specified decode point.
29791 Anoter positive side-effect is that this cleans up all occurrences of
29792 decode_current_picture() to only keep those useful in decode_picture(),
29793 before a new picture is allocated, or in decode_sequence_end() when
29794 an end-of-stream or end-of-sequence condition occurred.
29796 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29798 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29799 h264: fix scaling list generation.
29800 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
29801 array was partially copied to the VAIQMatrixBufferH264. While we are
29802 at it, also improve bounds checking and avoid copying 8x8 scaling
29803 lists if transform_8x8_mode_flag is set to 0.
29805 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29807 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29808 h264: fix detection of picture boundaries.
29809 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
29810 unit of a primary coded picture.
29812 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29814 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29815 h264: optimize handling of scaling lists.
29816 Don't copy scaling lists twice to an intermediate state. Rather, directly
29817 use the scaling lists from GstH264PPS since they would match those provided
29818 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
29819 available in the bitstream.
29821 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29823 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29824 h264: simplify code when MMCO is 5.
29825 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
29826 is now updated accordingly to the standard. Besides, MMCO = 5 specific
29827 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
29829 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29831 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29832 h264: fix MMCO-based reference picture marking process.
29833 Fix adaptive memory control decoded reference picture marking process
29834 implementation for operations 2 to 6, thus also fixing support for
29835 long-term reference pictures.
29837 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29839 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29840 h264: move MMCO handlers out of the loop (cosmetics).
29841 This change only splits each individual MMCO handler into several functions
29842 dedicated for each operation. This is needed to perform further work later
29845 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29848 debian: fix make dist for packaging.
29849 bzip2 tarballs are now used, so update the deb.upstream dependencies
29850 to include dist-bzip2 instead of plain old dist, and use the correct
29851 tar extract options to handle that format.
29853 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29856 configure: generate bzip2 tarballs in ustar format by default.
29858 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29861 configure: bump glib required version to 2.31.2.
29862 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
29863 rather than g_mutex_new() and g_cond_new() respectively.
29865 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
29867 * gst/vaapi/gstvaapidecode.c:
29868 * gst/vaapi/gstvaapidecode.h:
29869 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
29870 The use of heap allocated GMutex/GCond is deprecated. Instead place them
29871 inside the structure they are locking.
29872 These changes switch to use g_mutex_init/g_cond_init rather than the heap
29873 allocation functions.
29874 Because we cannot test for a NULL pointer for the GMutex/GCond we must
29875 initialise inside the GObject _init function and clear inside the _finalize
29876 which is guaranteed to only be called once and after the object is no longer
29879 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29881 * gst/vaapi/gstvaapidecode.c:
29882 vaapidecode: fix compiler warnings.
29883 Don't care of the return value for gst_vaapi_decoder_put_buffer()
29884 during destruction of the element. Don't print out (uninitialised)
29885 error code when allocation of video buffer failed.
29887 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29889 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29890 h264: add flag to compile with strict DPB ordering mode.
29891 Allow build with strict DPB ordering mode whereby evicted entries
29892 are replaced by the next entries, in order instead of optimizing
29893 it away with the last entry in the DPB.
29894 This is only useful for debugging purpose, against a reference SW
29895 decoder for example.
29897 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29899 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29900 h264: drop extra code covered by built-in codecparsers.
29901 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
29902 a newer version of codecparsers/ are used if the system provided one is
29903 now recent enough to have those required extensions.
29905 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29907 * gst-libs/gst/codecparsers/Makefile.am:
29908 codecparsers: fix generation of symlinks.
29909 Try to improve dependencies while generating symlinks to externally
29910 maintained copy of codecparsers (derived from upstream git master
29913 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29915 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29916 vc1: use framerate information from bitstream parser.
29918 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29920 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29921 vc1: use pixel-aspect-ratio from bitstream parser.
29922 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29923 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29925 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29927 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29928 mpeg2: use pixel-aspec-ratio information from bitstream parser.
29929 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29930 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29932 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29935 * gst-libs/gst/codecparsers/Makefile.am:
29936 codecparsers: h264: use submodule sources.
29937 Use newer sources from the codecparsers/ submodule for
29938 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
29939 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
29941 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29945 * gst-libs/gst/codecparsers/Makefile.am:
29946 * gst-libs/gst/codecparsers/gstjpegparser.c:
29947 * gst-libs/gst/codecparsers/gstjpegparser.h:
29948 * gst-libs/gst/vaapi/Makefile.am:
29949 codecparsers: jpeg: use submodule sources.
29951 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29958 * ext/codecparsers:
29959 Add codecparsers submodule.
29961 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29964 .gitignore: updates.
29966 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29969 autogen: fix check for gtkdocize and autoreconf.
29970 If gtkdocize or autoreconf programs were not found, then the autogen.sh
29971 script would fail to report that correctly because test -z was not passed
29972 any argument (empty string "" in this case).
29974 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29976 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29977 h264: use pixel-aspect-ratio from SPS header.
29978 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
29979 from the sequence headers.
29980 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29981 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29983 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29985 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29986 h264: add decode_nalu() helper function.
29987 Split decode_buffer() into the core infrastructure that determines
29988 the NAL units contained in the adapter and the actual function that
29989 decodes the NAL unit.
29991 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29993 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29994 h264: fix end-of-stream conditions (flush).
29995 Decode pending data in the adapter prior to processing the actual
29996 code for end-of-stream.
29998 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30000 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30001 mpeg2: add decode_packet() helper function.
30002 Split decode_buffer() into the core infrastructure that determines
30003 the packets contained in the adapter and the actual function that
30004 decodes the packet data.
30006 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30008 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30009 mpeg2: fix end-of-stream conditions (flush).
30010 Decode pending data in the adapter prior to processing the actual
30011 code for end-of-stream. Initial code from Feng Yuan.
30013 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30015 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30016 mpeg2: fix memory leak of empty packets.
30017 Fix memory leakage of empty packets, i.e. packets that only contain
30018 the start code prefix. In particular, free empty user-data packets.
30019 Besides, the codec parser will already fail gracefully if the packet
30020 to parse does not have the minimum required size. So, we can also
30021 completely drop the block of code that used to handle packets of size 4
30022 (including the start code).
30024 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30026 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30027 mpeg2: fix return value for "no-data" conditions.
30028 Fix return value when the second scan for start code fails. This means
30029 there is not enough data to determine the full extents of the current
30030 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
30031 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
30033 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30035 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30036 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
30037 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
30038 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
30039 or with a size equals to zero. In this case, that buffer is simply
30040 skipped and the function returns TRUE. A NULL buffer argument still
30041 marks the end-of-stream.
30043 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30045 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30046 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30047 decoder: drop unused functions.
30049 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
30051 * gst/vaapi/gstvaapidecode.c:
30052 vaapidecode: flush buffers when receiving EOS.
30053 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30055 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30057 * debian.upstream/Makefile.am:
30058 debian: fix make dist for packaging.
30060 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30062 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30063 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30064 wayland: cosmetics (remove tabs).
30066 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
30068 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30069 wayland: add support for windowed mode.
30070 Rather than always making the surface fullscreen instead implement the
30071 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
30072 fullscreen on not depending on that.
30073 Reviewed-by: Joe Konno <joe.konno@intel.com>
30074 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30076 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30079 Bump version for development.
30081 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30085 Fix and document build dependencies better.
30087 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30089 * debian.upstream/control.in:
30090 debian: fix GStreamer build dependencies.
30092 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30095 * debian.upstream/control.in:
30096 debian: fix Wayland build dependencies.
30098 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30100 * debian.upstream/control.in:
30101 debian: fix conditional build of packages.
30102 Make it still possible to build package even if one of the build dependencies
30103 for a specific video backend is not available.
30105 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30107 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30108 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30109 utils: drop unused GLX helpers.
30110 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
30111 extensions since they are not used throughout gstreamer-vaapi.
30113 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30115 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30116 utils: fix build with <GL/glext.h> version >= 85.
30117 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
30118 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
30119 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
30120 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
30121 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
30122 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
30123 newer versions of the <GL/glext.h> header.
30125 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30128 configure: update VA-API version requirements.
30129 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
30131 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30133 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30134 h264: review and report errors accordingly.
30135 Use GST_ERROR() to report real errors instead of hiding them into
30138 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30140 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30141 h264: exclusively use GstAdapter, drop sub-buffer hack.
30142 Maintaining the sub-buffer is rather suboptimal especially since we
30143 were also maintaining a GstAdapter. Now, we only use the GstAdapter
30144 thus requiring minor extra parsing when receiving avcC buffers.
30146 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30151 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30156 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30158 * debian.upstream/gstreamer-vaapi.install.in:
30159 debian: fix packaging on recent Ubuntu platforms.
30160 Use explicit GStreamer plugins path.
30162 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30164 * docs/reference/libs/libs-docs.xml.in:
30165 * docs/reference/libs/libs.core.types:
30166 docs: fix build for make dist.
30168 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
30170 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30171 wayland: set opaque region for YUV surface.
30172 This allows the compositor to optimize redraws and cull away changes
30173 obscured by the video surface.
30174 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30176 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30179 configure: fix check for libva-glx and libva-drm.
30181 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30183 * gst-libs/gst/vaapi/glibcompat.h:
30184 glibcompat: add replacement for g_cond_wait_until().
30186 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30188 * gst/vaapi/gstvaapidecode.c:
30189 * gst/vaapi/gstvaapidownload.c:
30190 * gst/vaapi/gstvaapipostproc.c:
30191 * gst/vaapi/gstvaapisink.c:
30192 * gst/vaapi/gstvaapiupload.c:
30193 plugins: include "sysdeps.h" instead of "config.h".
30195 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30197 * gst-libs/gst/codecparsers/gstjpegparser.c:
30198 codecparsers: jpeg: add missing includes.
30200 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30202 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30203 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30204 * gst/vaapi/gstvaapidecode.c:
30205 vaapidecode: don't reset decoder if codec type is the same.
30206 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
30207 if the underlying codec type actually changed. This makes it possible
30208 to be more tolerant with certain MPEG-2 streams that get parsed to
30209 form caps that are compatible with the previous state but minor changes
30212 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30214 * gst/vaapi/gstvaapidecode.c:
30215 vaapidecode: simplify codec lookup from caps.
30216 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
30217 the specified caps. Don't globally expose this function since this is
30218 really trivial and only used in the vaapidecode element.
30220 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30222 * gst/vaapi/gstvaapidecode.c:
30223 * gst/vaapi/gstvaapidecode.h:
30224 vaapidecode: improve "no free surface" conditions.
30225 Previously, vaapidecode would wait up to one second until a free surface
30226 is available, or it aborts decoding. Now, vaapidecode waits until the
30227 last decoded surface was to be presented, plus one second. Besides, end
30228 times are now expressed relative to the monotonic clock.
30230 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30232 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30233 * gst/vaapi/gstvaapidecode.c:
30234 decoder: propagate buffer duration downstream.
30236 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30238 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30239 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30240 surfaceproxy: add "duration" property.
30242 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30244 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30245 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30246 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30247 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30248 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30249 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30250 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30251 decoder: cope with new GstVaapiContextInfo based API.
30252 Update decoders to report the maximum number of reference frames to use.
30254 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30256 * gst-libs/gst/vaapi/gstvaapicontext.c:
30257 context: JPEG codec does not need any reference frame.
30259 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30261 * gst-libs/gst/vaapi/gstvaapicontext.c:
30262 * gst-libs/gst/vaapi/gstvaapicontext.h:
30263 context: allow number of reference frames to be set.
30264 Make it possible to specify the maximum number of references to use within
30265 a single VA context. This helps reducing GPU memory allocations to the useful
30266 number of references to be used.
30268 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30270 * gst/vaapi/gstvaapipostproc.c:
30271 vaapipostproc: fix deinterlace-{mode,method} types definition.
30273 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30275 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30276 mpeg4: fix debug info for unsupported profile.
30278 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30280 * gst-libs/gst/vaapi/gstvaapicontext.c:
30281 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30282 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30283 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30284 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30285 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30286 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30287 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30288 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30289 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30290 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30291 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30292 * gst-libs/gst/vaapi/gstvaapiimage.c:
30293 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
30294 * gst-libs/gst/vaapi/gstvaapiobject.c:
30295 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30296 * gst-libs/gst/vaapi/gstvaapisurface.c:
30297 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
30298 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30299 * gst-libs/gst/vaapi/gstvaapitexture.c:
30300 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30301 * gst-libs/gst/vaapi/gstvaapivalue.c:
30302 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30303 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30304 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30305 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30306 * gst-libs/gst/vaapi/gstvaapiwindow.c:
30307 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30308 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
30309 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30310 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30311 libs: fix build in strict ISO C mode.
30313 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30315 * gst/vaapi/gstvaapi.c:
30316 * gst/vaapi/gstvaapidecode.c:
30317 * gst/vaapi/gstvaapidownload.c:
30318 * gst/vaapi/gstvaapipostproc.c:
30319 * gst/vaapi/gstvaapisink.c:
30320 * gst/vaapi/gstvaapiupload.c:
30321 plugins: fix build in strict ISO C mode.
30323 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30325 * pkgconfig/gstreamer-vaapi-glx.pc.in:
30326 * pkgconfig/gstreamer-vaapi-x11.pc.in:
30327 * pkgconfig/gstreamer-vaapi.pc.in:
30328 pkgconfig: fix dependencies and slightly improve description.
30329 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
30330 descriptions with clearer renderer names.
30332 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
30334 * gst/vaapi/gstvaapidecode.c:
30335 vaapidecode: acquire lock only if the mutex exists.
30336 When playback stops the GstVaapiDecode object is reset into a clean
30337 state. However, surfaces may still be referenced by library users and
30338 unreferencing them after the reset triggers an access to an unset mutex.
30339 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30341 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30343 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30344 decoder: drop extraneous return for void function.
30346 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30348 * gst-libs/gst/vaapi/gstvaapiimage.c:
30349 image: don't use (void *) pointer arithmetic.
30351 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
30353 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30354 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30355 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30356 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30357 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30358 * gst-libs/gst/vaapi/gstvaapiprofile.h:
30359 * gst-libs/gst/vaapi/gstvaapisurface.h:
30360 * gst-libs/gst/vaapi/gstvaapitypes.h:
30361 * gst/vaapi/gstvaapipostproc.h:
30362 Do not forward declare enums.
30363 Forward declaring enums is not allowed by the C standard and aborts
30364 compilation if the header file is included in a C++ project.
30365 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30367 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30370 configure: fix check for VA/DRM API.
30372 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30374 * gst/vaapi/gstvaapisink.c:
30375 vaapisink: fix calculation of window size.
30376 If either dimension is out-of-bounds, then scale window to fit the
30377 display size, even if the output is to be rotated. Use the standard
30378 gst_video_sink_center_rect() function to center and scale the window
30379 wrt. the outer (display) bounds.
30381 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
30383 * gst/vaapi/gstvaapisink.c:
30384 * gst/vaapi/gstvaapisink.h:
30385 vaapisink: add video rotation support.
30386 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30388 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30390 * gst/vaapi/gstvaapipluginutil.h:
30391 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
30392 This macro helps swapping variables while maintaining the correct underlying
30393 and primitive type.
30395 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30397 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30398 display: fix display aspect ratio when display is rotated.
30400 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30403 * gst-libs/gst/vaapi/Makefile.am:
30404 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30405 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
30406 display: fix physical display size when display is rotated.
30408 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30410 * gst-libs/gst/vaapi/gstvaapivalue.c:
30411 display: fix GstVaapiRotation enumeration of values.
30413 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30415 * docs/reference/libs/libs-docs.xml.in:
30416 * docs/reference/libs/libs-sections.txt:
30417 * gst-libs/gst/vaapi/Makefile.am:
30418 * gst-libs/gst/vaapi/gstvaapivideosink.c:
30419 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30420 * gst/vaapi/gstvaapidecode.c:
30421 * gst/vaapi/gstvaapidownload.c:
30422 * gst/vaapi/gstvaapipostproc.c:
30423 * gst/vaapi/gstvaapisink.c:
30424 * gst/vaapi/gstvaapiupload.c:
30425 vaapisink: drop obsolete GstVaapiVideoSink interface.
30426 This interface was deprecated since 0.3.x series when the GstVideoContext
30427 interface was added to the main GStreamer APIs.
30429 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30431 * gst/vaapi/gstvaapisink.c:
30432 * gst/vaapi/gstvaapisink.h:
30433 vaapisink: automatically detect overlay rendering mode.
30434 Retain the VA surface until another surface is to be displayed only
30435 if VA display rendering mode is determined to be "overlay" mode.
30437 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30439 * gst/vaapi/gstvaapisink.c:
30440 * gst/vaapi/gstvaapisink.h:
30441 vaapisink: retain VA surface until another one is displayed.
30442 Keep VA surface proxy associated with the surface that is currently
30443 being displayed. This makes sure that surface is not released back
30444 to the pool of surfaces free to use for decoding. This is necessary
30445 with VA driver implementations that support rendering to an overlay
30446 pipe. Otherwise, there could be cases where we are decoding into a
30447 surface that is being displayed, hence some flickering.
30449 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30451 * gst/vaapi/gstvaapisink.h:
30452 vaapisink: fix build with older toolchains.
30453 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
30455 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30457 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30458 display: partially revert 8ebe4d6.
30459 Don't try to fix up the initial values, this could make things worse.
30460 Simply assume the driver does not support the capability in this case.
30462 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30464 * tests/test-display.c:
30465 tests: dump VA display properties.
30467 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30469 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30470 display: fix validation process of properties during discovery.
30471 Some VA drivers (e.g. EMGD) can have completely random values for initial
30472 display attributes. So, try to improve the discovery process to check the
30473 initial display attribute values actually fall within valid bounds. If not,
30474 try to reset those to some sensible values like the default value reported
30475 through vaQueryDisplayAttributes().
30477 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30479 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30480 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30481 display: add color balance properties.
30482 Add support for hue, saturation, brightness and contrast attributes.
30484 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30486 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30487 display: initialize default attribute values.
30488 Ensure the display attribute is actually supported by trying to retrieve
30489 its current value during GstVaapiDisplay creation.
30491 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30493 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30494 display: raise "notify" for property changes.
30496 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30498 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30499 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30500 display: expose display attributes as GObject properties.
30501 Expose VA display "render-mode" and "rotation" attributes as standard
30502 GObject properties.
30504 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30506 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30507 display: install properties in batch.
30508 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
30509 It is useful to maintain properties as GParamSpec so that to be able to raise
30510 "notify" signals by id instead of by name in the future.
30512 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30514 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30515 display: fix gst_vaapi_display_has_property().
30516 Append the "render-mode" and "rotation" properties, should they be supported
30517 by the underlying VA driver.
30519 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
30521 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30522 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30523 * gst-libs/gst/vaapi/gstvaapitypes.h:
30524 * gst-libs/gst/vaapi/gstvaapiutils.c:
30525 * gst-libs/gst/vaapi/gstvaapiutils.h:
30526 * gst-libs/gst/vaapi/gstvaapivalue.c:
30527 * gst-libs/gst/vaapi/gstvaapivalue.h:
30528 display: add support for rotation modes.
30529 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30531 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30533 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30534 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30535 * gst-libs/gst/vaapi/gstvaapitypes.h:
30536 * gst-libs/gst/vaapi/gstvaapivalue.c:
30537 * gst-libs/gst/vaapi/gstvaapivalue.h:
30538 display: add support for rendering modes.
30539 A rendering mode can be "overlay" or "texture"'ed blit.
30540 The former mode implies that a VA surface used for rendering can't be
30541 re-used right away for decoding, so the sink shall make provisions to
30542 retain the associated surface proxy until the next surface is to be
30544 The latter mode implies that the VA surface is implicitly copied to an
30545 intermediate backing store, or back buffer of a frame buffer, so the
30546 associated surface proxy can be disposed right away.
30548 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30550 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30551 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30552 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30553 display: add initial support for display attributes.
30554 The VA display attributes are mapped to properties so that to maintain the
30555 GStreamer terminology. Properties are to be identified by name, but internal
30556 functions are available to lookup the property by the actual VA display
30559 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30561 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30562 jpeg: fix end-of-image (EOI) handler.
30563 decode_current_picture() was converted to return a gboolean instead
30564 of a GstVaapiDecoderStatus, so we were not getting out of the decode
30565 loop as expected, or could cause an error instead.
30566 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30568 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30570 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30571 mpeg2: include start code into VA slice data buffer.
30572 Integrate the start code prefix in the slice data buffer that is submitted
30573 to the hardware. VA-API specifies that slice_data_offset is the offset to
30574 the first byte of slice data. And, for MPEG-2, slice() data begins with
30575 the slice_start_code. Some VA driver implementations (EMGD) expect this.
30577 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
30580 autogen: fix configure script generation when srcdir != builddir.
30581 This patch allows for regenerating the configure script from a build
30582 directory that is not the actual source directory.
30583 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30585 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
30588 configure: use new libtool syntax.
30589 This now requires libtool >= 2.2 to regenerate the configure script.
30590 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30592 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
30594 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30595 decoder: use g_object_notify_by_pspec().
30596 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
30597 avoid a property name lookup. i.e. this makes notifications faster to
30598 the `vaapidecode' element.
30599 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30601 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30603 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30604 wayland: handle de-interlacing flags.
30605 VA/Wayland API was updated to allow flags for bob deinterlacing.
30606 More elaborated filters will require a complete VA/VPP pipeline.
30608 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30610 * gst-libs/gst/codecparsers/gstjpegparser.c:
30611 jpeg: fix default quantization tables.
30612 Two elements in the luminance quantization table were wrong. So,
30613 gst_jpeg_get_default_quantization_tables() now reconstructs tables
30614 in zig-zag order from the standard ones (Tables K.1 and K.2).
30616 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30618 * gst-libs/gst/codecparsers/gstjpegparser.c:
30619 jpeg: compute default Huffman tables.
30620 ... instead of having them pre-calculated. This saves around 1.5 KB
30621 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
30622 to do more work. Though, the client application may have to call that
30623 function at most once, only.
30625 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30627 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30628 display: drop VAProfileNone entries from debug messages.
30630 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
30632 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30633 display: query for supported display attributes.
30634 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30636 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
30638 * gst-libs/gst/vaapi/gstvaapiutils.c:
30639 * gst-libs/gst/vaapi/gstvaapiutils.h:
30640 utils: add string_of_VADisplayAttributeType() helper.
30641 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30643 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30645 * gst/vaapi/gstvaapisink.c:
30646 vaapisink: handle VA/DRM API.
30647 This is not useful in practice but for raw performance evaluation when
30648 the sink is invoked with display=drm sync=false. fakesink could also be
30651 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30653 * gst/vaapi/Makefile.am:
30654 * gst/vaapi/gstvaapipluginutil.c:
30655 plugins: add support for headless pipelines.
30657 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30659 * tests/Makefile.am:
30661 * tests/test-display.c:
30662 * tests/test-windows.c:
30663 tests: add support for headless decoding.
30665 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30669 * debian.upstream/Makefile.am:
30670 * debian.upstream/control.in:
30671 * debian.upstream/libgstvaapi-drm.install.in:
30672 * gst-libs/gst/vaapi/Makefile.am:
30673 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30674 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30675 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30676 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
30677 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
30678 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30679 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
30680 * pkgconfig/Makefile.am:
30681 * pkgconfig/gstreamer-vaapi-drm.pc.in:
30682 Add initial support for VA/DRM.
30684 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30687 * gst-libs/gst/vaapi/Makefile.am:
30688 Fix build without X11 (again).
30689 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
30690 files list wrt. x11, glx and wayland backends.
30692 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30695 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30696 * gst-libs/gst/vaapi/gstvaapicompat.h:
30697 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30698 jpeg: update to the latest VA-API changes (0.32.1+).
30700 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30702 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30703 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30704 * gst/vaapi/gstvaapisink.c:
30705 wayland: implement display ::get_size*() hooks.
30707 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30709 * gst/vaapi/gstvaapipluginutil.c:
30710 plugins: prefer X11 rendering over GLX.
30711 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
30712 for rendering instead of texturing.
30714 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
30716 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30717 wayland: use scale fullscreen method.
30718 This makes the compositor scale the surface to fit and preserves aspect
30720 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30722 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
30724 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30725 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
30726 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30728 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30730 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30731 wayland: fix double disconnect of display.
30733 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30735 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30736 wayland: mangle display name for cache lookups.
30738 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30741 * debian.upstream/Makefile.am:
30742 * debian.upstream/control.in:
30743 * debian.upstream/libgstvaapi-wayland.install.in:
30744 * pkgconfig/Makefile.am:
30745 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
30746 wayland: add packaging files.
30748 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30750 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30751 * gst/vaapi/gstvaapipluginutil.c:
30752 * gst/vaapi/gstvaapisink.c:
30753 * pkgconfig/Makefile.am:
30754 Fix build without X11.
30756 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30758 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30759 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30760 * gst/vaapi/Makefile.am:
30761 * gst/vaapi/gstvaapipluginutil.c:
30762 * gst/vaapi/gstvaapisink.c:
30763 plugins: add support for Wayland.
30765 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30767 * tests/Makefile.am:
30769 * tests/test-display.c:
30770 * tests/test-windows.c:
30771 tests: add support for Wayland.
30773 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30777 * gst-libs/gst/vaapi/Makefile.am:
30778 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30779 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
30780 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30781 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30782 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30783 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
30784 Add initial support for VA/Wayland.
30785 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30787 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30789 * gst/vaapi/gstvaapipluginbuffer.c:
30790 plugins: fix creation of video buffer from surface proxy.
30791 Fix a regression introduced with commit 8ef490a.
30793 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30795 * gst/vaapi/gstvaapipluginbuffer.c:
30796 * gst/vaapi/gstvaapipluginutil.c:
30797 plugins: use new display types more.
30798 In particular, simplify gst_vaapi_reply_to_query() with display types.
30799 Likewise for creating new video buffers.
30801 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30803 * gst/vaapi/gstvaapidecode.c:
30804 * gst/vaapi/gstvaapidownload.c:
30805 * gst/vaapi/gstvaapipluginutil.c:
30806 * gst/vaapi/gstvaapipluginutil.h:
30807 * gst/vaapi/gstvaapipostproc.c:
30808 * gst/vaapi/gstvaapisink.c:
30809 * gst/vaapi/gstvaapiupload.c:
30810 plugins: fix display type selection and propagation.
30811 If vaapisink is in the GStreamer pipeline, then we shall allocate a
30812 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
30813 queries from vaapidecode shall get a valid answer from vaapisink.
30815 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30817 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30818 display: fix destruction of mutex.
30820 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30822 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30823 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30824 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30825 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30826 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30827 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30828 * gst/vaapi/gstvaapipluginutil.c:
30829 * gst/vaapi/gstvaapipluginutil.h:
30830 * gst/vaapi/gstvaapisink.c:
30831 display: add display types.
30832 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
30833 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
30834 type to "any", and add a "display-type" attribute.
30836 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30838 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30839 display: use prefixed display names for cache lookups.
30840 This improves display name comparisons by always allocating a valid display
30841 name. This also helps to disambiguate lookups by name in the global display
30842 cache, should a new backend be implemented.
30844 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30846 * gst/vaapi/gstvaapipluginutil.h:
30847 plugins: declare helper functions as internal.
30849 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30851 * docs/reference/libs/libs-sections.txt:
30852 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30853 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30854 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30855 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30856 * gst/vaapi/Makefile.am:
30857 * gst/vaapi/gstvaapidecode.c:
30858 * gst/vaapi/gstvaapidownload.c:
30859 * gst/vaapi/gstvaapipluginbuffer.c:
30860 * gst/vaapi/gstvaapipluginbuffer.h:
30861 * gst/vaapi/gstvaapipostproc.c:
30862 * gst/vaapi/gstvaapiupload.c:
30863 videobuffer: drop deprecated functions.
30864 Move video buffer creation routines to plugin elements. That exclusively
30865 uses *_typed_new*() variants.
30867 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30869 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30870 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30871 videobuffer: mark video buffer creation routines as deprecated.
30872 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
30873 plugin elements. So deprecate any explicit creation routines that are not the
30874 new *_typed_new*() variants.
30876 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30878 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30879 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30880 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
30881 videobuffer: factor out base and GLX implementations.
30882 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
30883 This avoids duplication of code, and makes it possible to further implement
30884 generic video buffer creation routines that automatically map to base or GLX
30887 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30889 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30890 utils: fix gl_create_context() with parent context set.
30891 If GLX window was created from a foreign Display, then that same Display shall
30892 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
30893 will now use the same Display that the parent, if available.
30894 This fixes cluttersink with the Intel GenX VA driver.
30896 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30898 * gst/vaapi/gstvaapidecode.c:
30899 * gst/vaapi/gstvaapidownload.c:
30900 * gst/vaapi/gstvaapipluginutil.c:
30901 * gst/vaapi/gstvaapipluginutil.h:
30902 * gst/vaapi/gstvaapipostproc.c:
30903 * gst/vaapi/gstvaapisink.c:
30904 * gst/vaapi/gstvaapiupload.c:
30905 pluginutils: improve automatic display type selection.
30907 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30909 * gst/vaapi/gstvaapipluginutil.c:
30910 * gst/vaapi/gstvaapipluginutil.h:
30911 pluginutils: cosmetics (indentation fixes).
30913 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30916 configure: simplify video outputs summary.
30918 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30921 * gst/vaapi/gstvaapipluginutil.c:
30922 * gst/vaapi/gstvaapipluginutil.h:
30923 * gst/vaapi/gstvaapisink.c:
30924 * gst/vaapi/gstvaapisink.h:
30925 configure: drop check for --enable-vaapisink-glx.
30926 vaapisink is now built with support for multiple display types, whenever
30927 they are enabled. The new "display" attribute is used to select a particular
30930 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30933 * gst-libs/gst/vaapi/gstvaapicompat.h:
30934 * gst/vaapi/Makefile.am:
30935 * gst/vaapi/gstvaapidecode.c:
30936 * gst/vaapi/gstvaapidownload.c:
30937 * gst/vaapi/gstvaapipluginutil.c:
30938 * gst/vaapi/gstvaapipostproc.c:
30939 * gst/vaapi/gstvaapiupload.c:
30940 * tests/test-display.c:
30941 configure: drop check for --enable-vaapi-glx.
30942 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
30943 support, or fallback to TFP+FBO if this API is not found. Now, we check for
30944 the VA/GLX API by default if --enable-glx is set. If this API is not found,
30945 we now default to use TFP+FBO.
30946 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
30947 will be removed in the future. If GLX rendering is requested, then the VA/GLX
30948 API shall be used as it covers most usages. e.g. AMD driver can't render to
30951 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30954 tests: allow GLX output, if available and selected.
30956 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30958 * tests/Makefile.am:
30961 * tests/test-decode.c:
30962 * tests/test-subpicture.c:
30963 * tests/test-surfaces.c:
30964 tests: use common display and window creation routines.
30965 Add new --output option to select the renderer. Use --list-outputs to
30966 print a list of supported renderers.
30968 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30970 * tests/Makefile.am:
30971 tests: move encoded bitstreams to libutils.la.
30973 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30975 * tests/Makefile.am:
30976 tests: build convenience library for common utilities.
30978 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30980 * tests/Makefile.am:
30981 * tests/test-display.c:
30982 tests: simplify build with various display options.
30984 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30987 configure: improve checks for X11.
30989 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30991 * tests/Makefile.am:
30992 configure: fix previous commit for GLX deps.
30994 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30997 * gst-libs/gst/vaapi/Makefile.am:
30998 configure: improve checks for GLX.
31000 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31003 * gst-libs/gst/vaapi/gstvaapicompat.h:
31004 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31005 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
31006 * gst-libs/gst/vaapi/gstvaapiutils.h:
31007 Drop support for obsolete VA-API versions < 0.30.4.
31009 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31012 * gst-libs/gst/Makefile.am:
31013 * gst-libs/gst/gstutils_version.h.in:
31014 * gst/vaapi/gstvaapisink.c:
31015 vaapisink: drop checks for new APIs used by default.
31016 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
31017 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
31018 are no longer necessary.
31020 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31023 configure: cosmetics and some minor changes.
31024 - Better grouping of feature checks
31025 - Sort list of config files to generate
31027 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31030 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31031 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31032 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31033 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31034 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
31035 * gst-libs/gst/vaapi/gstvaapiutils.h:
31036 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31037 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31038 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
31040 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31042 * gst-libs/gst/vaapi/Makefile.am:
31043 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
31044 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
31045 Drop obsolete GstVaapiTSB.
31046 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
31048 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31050 * docs/reference/libs/libs-sections.txt:
31051 docs: add missing entries for the JPEG decoder.
31053 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31056 * gst-libs/gst/vaapi/Makefile.am:
31057 * gst/vaapi/gstvaapidecode.c:
31058 * tests/test-decode.c:
31059 * tests/test-subpicture.c:
31060 Drop all references to USE_CODEC_PARSERS.
31062 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31066 * docs/reference/libs/libs-sections.txt:
31067 * docs/reference/libs/libs.core.types:
31068 * gst-libs/gst/vaapi/Makefile.am:
31069 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31070 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
31071 * gst/vaapi/gstvaapidecode.c:
31072 * gst/vaapi/gstvaapidecode.h:
31073 * tests/test-decode.c:
31074 * tests/test-subpicture.c:
31075 Drop FFmpeg-based decoders.
31076 GStreamer codecparsers-based decoders are the only supported decoders now.
31077 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
31079 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
31082 * debian.upstream/control.in:
31083 configure: bump glib required version to 2.28.
31084 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31086 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
31088 * gst/vaapi/gstvaapidecode.h:
31089 * gst/vaapi/gstvaapidownload.h:
31090 * gst/vaapi/gstvaapipostproc.h:
31091 * gst/vaapi/gstvaapisink.h:
31092 * gst/vaapi/gstvaapiupload.h:
31093 plugins: declare _get_type() functions as const.
31094 Declaring a function as const enables better optimization of calls to
31096 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31098 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
31100 * gst/vaapi/gstvaapidecode.c:
31101 * gst/vaapi/gstvaapidownload.c:
31102 * gst/vaapi/gstvaapipostproc.c:
31103 * gst/vaapi/gstvaapisink.c:
31104 * gst/vaapi/gstvaapiupload.c:
31105 plugins: use g_clear_object() wherever applicable.
31106 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31108 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
31110 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31111 * gst-libs/gst/vaapi/gstvaapicontext.h:
31112 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31113 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31114 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
31115 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
31116 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31117 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
31118 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
31119 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31120 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
31121 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31122 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
31123 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
31124 * gst-libs/gst/vaapi/gstvaapiimage.h:
31125 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
31126 * gst-libs/gst/vaapi/gstvaapiobject.h:
31127 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
31128 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
31129 * gst-libs/gst/vaapi/gstvaapisurface.h:
31130 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
31131 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31132 * gst-libs/gst/vaapi/gstvaapitexture.h:
31133 * gst-libs/gst/vaapi/gstvaapivalue.h:
31134 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31135 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
31136 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
31137 * gst-libs/gst/vaapi/gstvaapivideopool.h:
31138 * gst-libs/gst/vaapi/gstvaapivideosink.h:
31139 * gst-libs/gst/vaapi/gstvaapiwindow.h:
31140 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
31141 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
31142 libs: declare _get_type() functions as const.
31143 Declaring a function as const enables better optimization of calls
31145 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31147 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
31149 * gst-libs/gst/vaapi/glibcompat.h:
31150 * gst-libs/gst/vaapi/gstvaapicontext.c:
31151 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31152 * gst-libs/gst/vaapi/gstvaapiobject.c:
31153 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31154 * gst-libs/gst/vaapi/gstvaapisurface.c:
31155 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31156 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31157 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31158 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31159 libs: use g_clear_object() wherever applicable.
31160 This is a preferred thread-safe version. Also add an inline version of
31161 g_clear_object() if compiling with glib < 2.28.
31162 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31164 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
31168 * docs/reference/libs/Makefile.am:
31169 * gst-libs/gst/vaapi/Makefile.am:
31170 * gst-libs/gst/vaapi/gstvaapimarshal.list:
31171 * gst-libs/gst/vaapi/gstvaapiobject.c:
31172 libs: use generic g_cclosure_marshal_VOID__VOID().
31173 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31175 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31178 * gst-libs/gst/vaapi/glibcompat.h:
31179 glibcompat: drop explicit check for g_list_free_full().
31181 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31184 Bump version for development.
31186 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31188 * gst-libs/gst/codecparsers/Makefile.am:
31189 jpeg: fix make dist.
31191 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
31195 * docs/Makefile.am:
31196 configure: fix build without gtk-doc support.
31197 Also do not generate tamplate files as all the documentation is inline.
31198 Drop un-needed code in autogen.sh as well.
31199 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31201 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
31206 configure: put m4 macros and autogenerated files into m4/ directory.
31207 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31209 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
31212 configure: drop deprecated autoconf macros.
31213 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
31214 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31216 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
31219 configure: don't use AC_SUBST for some variables.
31220 PKG_CHECK_MODULES already does this for us.
31221 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31223 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31225 * gst/vaapi/gstvaapidecode.c:
31226 * gst/vaapi/gstvaapidownload.c:
31227 * gst/vaapi/gstvaapipostproc.c:
31228 * gst/vaapi/gstvaapiupload.c:
31229 plugins: add support for GstImplementsInterface.
31231 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
31234 * gst/vaapi/gstvaapidecode.c:
31235 * gst/vaapi/gstvaapidownload.c:
31236 * gst/vaapi/gstvaapipostproc.c:
31237 * gst/vaapi/gstvaapisink.c:
31238 * gst/vaapi/gstvaapiupload.c:
31239 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
31240 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31242 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
31245 * gst/vaapi/gstvaapisink.c:
31246 plugins: do not use deprecated GStreamer -base symbols.
31247 Bump GStreamer plugins -base required version to 0.10.31, needed for
31248 gst_x_overlay_got_window_handle().
31249 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31251 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
31254 * gst/vaapi/gstvaapidecode.c:
31255 * gst/vaapi/gstvaapidownload.c:
31256 * gst/vaapi/gstvaapipostproc.c:
31257 * gst/vaapi/gstvaapisink.c:
31258 * gst/vaapi/gstvaapiupload.c:
31259 plugins: do not use deprecated core GStreamer symbols.
31260 Bump GStreamer required version to 0.10.14, needed for
31261 gst_element_class_set_details_simple().
31262 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31264 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31266 * tests/test-decode.c:
31267 tests: fix build without JPEG decoder support.
31269 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31271 * tests/Makefile.am:
31272 * tests/test-decode.c:
31273 * tests/test-jpeg.c:
31274 * tests/test-jpeg.h:
31275 tests: add test for JPEG decoding.
31277 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31279 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31280 jpeg: update to match latest parser API.
31282 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31284 * gst-libs/gst/codecparsers/gstjpegparser.c:
31285 * gst-libs/gst/codecparsers/gstjpegparser.h:
31286 codecparsers: jpeg: tweak parser API.
31287 ... to allow for more consistent parsing API among various codec parsers.
31288 In particular, drop use of GList.
31290 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31293 jpeg: fix configure check for VA/JPEG decoding API.
31295 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31297 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31298 jpeg: fix build with VA-API < 0.32.0.
31300 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31305 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31308 Bump version for development.
31310 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31316 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31321 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
31323 * gst/vaapi/gstvaapipluginutil.c:
31324 vaapiplugin: fix build when compiling without GLX.
31325 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31327 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31330 configure: disable FFmpeg-based decoders.
31331 FFmpeg decoders are still available through the --enable-ffmpeg option
31332 but are no longer maintained.
31334 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31336 * gst-libs/gst/vaapi/Makefile.am:
31337 Fix build with recent GStreamer stack.
31339 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31342 * gst-libs/gst/vaapi/gstvaapicompat.h:
31343 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31344 jpeg: update to current VA/JPEG decoding API.
31346 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31348 * gst-libs/gst/codecparsers/gstjpegparser.c:
31349 * gst-libs/gst/codecparsers/gstjpegparser.h:
31350 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31351 codecparsers: jpeg: track valid quantization and Huffman tables.
31352 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
31353 to determine whether a table actually changed since the last user
31354 synchronization point. That way, this makes it possible for some
31355 hardware accelerated decoding solution to upload only those tables
31358 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
31360 * gst-libs/gst/codecparsers/gstjpegparser.c:
31361 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
31362 Use GstByteReader *_unchecked() variants as much as possible.
31363 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31365 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
31367 * gst-libs/gst/codecparsers/gstjpegparser.c:
31368 * gst-libs/gst/codecparsers/gstjpegparser.h:
31369 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31370 jpeg: add new GstJpegHuffmanTables structure.
31371 Add new GstJpegHuffmanTables helper structure to hold all possible
31372 AC/DC Huffman tables available to all components.
31373 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31375 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
31377 * gst-libs/gst/codecparsers/gstjpegparser.c:
31378 * gst-libs/gst/codecparsers/gstjpegparser.h:
31379 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31380 jpeg: make gst_jpeg_parse() support multiple scans.
31381 gst_jpeg_parse() now gathers all scans available in the supplied
31382 buffer. A scan comprises of the scan header and any entropy-coded
31383 segments or restart marker following it. The size and offset to
31384 the associated data (ECS + RST segments) are append to a new
31385 GstJpegScanOffsetSize structure.
31386 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31388 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
31390 * gst-libs/gst/codecparsers/gstjpegparser.c:
31391 * gst-libs/gst/codecparsers/gstjpegparser.h:
31392 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31393 jpeg: update to match latest parser API.
31394 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31396 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31398 * gst-libs/gst/codecparsers/gstjpegparser.h:
31399 jpeg: simplify and optimize parser API.
31401 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
31403 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31404 mpeg: fix picture used to determine backward_reference_vop_coding_type.
31405 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
31406 but Gwenole did not apply all the bits.
31407 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31409 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
31411 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31412 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
31413 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31415 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
31417 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31418 mpeg4: handle skipped frames (vop_hdr->coded = 0).
31419 Gracefully skip non VOP coded frames.
31420 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31422 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
31424 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31425 mpeg4: fix timestamp issues on too fast playback.
31426 Improve generation of presentation timestamps to be less sensitive
31427 to input stream errors. In practise, GOP is also a synchronization
31428 point for PTS calculation.
31429 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31431 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31433 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31434 Fix build without JPEG decoder.
31436 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
31438 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31439 mpeg4: fix VOP coding type of backward reference pictures.
31440 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31442 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
31444 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31445 mpeg4: fix handling of temporal reference distances.
31446 TRD and TRB fields are not large enough to hold the difference of PTS
31447 expressed with nanosecond resolution. So, compute them from the original
31449 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31451 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31453 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31454 dpb: mpeg2: cosmetics.
31455 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
31457 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31460 * gst-libs/gst/vaapi/Makefile.am:
31461 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31462 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31463 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31464 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31465 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31466 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31467 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31468 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31469 * gst/vaapi/gstvaapidecode.c:
31470 Add initial JPEG decoder.
31471 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31473 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31476 * gst-libs/gst/Makefile.am:
31477 * gst-libs/gst/codecparsers/Makefile.am:
31478 * gst-libs/gst/codecparsers/gstjpegparser.c:
31479 * gst-libs/gst/codecparsers/gstjpegparser.h:
31480 * gst-libs/gst/vaapi/Makefile.am:
31481 codecparsers: add JPEG parser.
31482 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31484 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
31486 * gst/vaapi/gstvaapidecode.c:
31487 vaapidecode: fix VA display type.
31488 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
31490 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31492 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31494 * gst/vaapi/gstvaapidecode.c:
31495 vaapidecode: fix includes when compiling for a single API.
31497 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31500 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31501 mpeg2: fix calculation of macroblock_offset.
31502 Fix decoding of streams with extra slice() information before the first
31503 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
31505 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31507 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31508 mpeg2: fix interpolation of GOP TSN from new PTS.
31509 New GOP TSN base could be mis-calculated. In particular, this fixes
31510 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
31512 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31515 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31516 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31517 mpeg2: fix decoding of high profile streams.
31518 Allow MPEG-2 High profile streams only if the HW supports that profile
31519 or no High profile specific bits are used, and thus Main profile could
31520 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
31521 set to 11 and no sequence_scalable_extension() was parsed.
31523 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31526 * gst/vaapi/gstvaapidecode.c:
31527 vaapidecode: report unsupported codec profiles.
31528 Try to gracefully abort when the HW does not support the requested
31529 profile. There is no fallback unless profiles are correctly parsed
31530 and matched through caps beforehand.
31532 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
31535 * gst/vaapi/gstvaapisink.c:
31536 vaapisink: don't resize a 'foreign' X-window.
31537 Don't forcibly resize foreign X windows. The user is responsible for
31538 their size and vaapisink shall not change this.
31539 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31541 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
31544 * gst/vaapi/gstvaapisink.c:
31545 * gst/vaapi/gstvaapisink.h:
31546 vaapisink: recalculate render rect only if caps are negotiated.
31547 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
31548 caps got negotiated. Besides, when a foreign window is provided by the
31549 user, so should the render rect.
31550 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31552 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31555 Bump version for development.
31557 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31562 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31564 * docs/reference/libs/libs-docs.xml.in:
31565 * docs/reference/libs/libs-sections.txt:
31566 * docs/reference/plugins/plugins-docs.xml.in:
31567 * docs/reference/plugins/plugins-sections.txt:
31568 * docs/reference/plugins/plugins.types:
31569 * gst-libs/gst/vaapi/gstvaapiimage.c:
31570 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31571 * gst/vaapi/gstvaapipostproc.c:
31572 Fix a few documentation issues.
31574 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31578 Update introduction and changelog.
31580 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31582 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31583 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31584 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31585 mpeg2: allocate dummy picture for first field based I-frame.
31586 In P-pictures, prediction shall be made from the two most recently
31587 decoded reference fields. However, when the first I-frame is a field,
31588 the next field of the current picture could be a P-picture but only a
31589 single field was decoded so far. In this case, create a dummy picture
31590 with POC = -1 that will be used as reference.
31591 Some VA drivers would error out if P-pictures don't have a forward
31592 reference picture. This is true in general but not in this very specific
31595 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31597 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31598 mpeg2: fix simple to main profile fallback.
31599 Allow fallback from simple to main profile when the HW decoder does
31600 not support the former profile and that no sequence_header_extension()
31601 is available to point out this.
31603 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
31605 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31606 mpeg4: improve error checking while decoding packets.
31607 decode_picture() could return an error when an MPEG-4 profile is not
31608 supported for example. In this case, the underlying VA context is not
31609 allocated and no other proper action can be taken. Likewise on exit
31610 from decode_slice().
31611 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31613 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31615 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31616 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31617 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31618 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31619 decoder: use POC to maintain the DPB.
31620 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
31621 numbers. A signed 32-bit integer should be enough for 1 year of continuous
31622 video streaming at 60 Hz.
31623 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
31624 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
31626 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31628 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31629 mpeg2: rework generation of presentation timestamps.
31630 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
31631 i.e. demuxer could not determine the PTS or the generated PTS is lower than
31632 max PTS from past pictures, then try to fix it up based on the duration of
31634 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
31635 reconstruct a current time. Also now handle wrapped TSN correctly.
31637 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31639 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31640 mpeg2: ignore empty user-data packets.
31641 Fix tcela-8.bits conformance test.
31643 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31645 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31646 mpeg2: review and report errors accordingly.
31647 Use GST_ERROR() to report real errors instead of hiding them into
31650 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31652 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31653 mpeg2: fix invalid interlaced frame in progressive sequence.
31654 Some streams, badly constructed, could have signaled an interlaced
31655 frame while the sequence was meant to be progressive. Warn and force
31656 frame to be progressive in this case.
31658 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31660 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31661 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31662 mpeg2: add support for interlaced streams.
31663 Pictures are submitted to the HW for rendering only when both fields
31664 are decoded or current picture is a full frame.
31666 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31668 * gst-libs/gst/vaapi/Makefile.am:
31669 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31670 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31671 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31672 mpeg2: add new decoded picture buffer infrastructure.
31673 Decoded pictures are now maintained into DPB, similarly to H.264.
31674 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
31676 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31678 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31679 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31680 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31681 decoder: add first-field flag to picture.
31682 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
31683 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
31684 as the first field. Any subsequent allocated field will become the second field.
31686 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31688 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31689 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31690 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31691 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31692 decoder: allow pictures to be cloned for field decoding.
31693 Add gst_vaapi_picture_new_field() function that clones a picture, while
31694 preserving the parent picture surface. i.e. the surface proxy reference
31695 count is increased and other fields copied as is. Besides, the picture
31696 is reset into a "non-output" mode.
31698 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31700 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31701 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31702 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31703 decoder: rework picture field flags.
31704 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
31705 could be propagated to the surface proxy when it is pushed for rendering.
31706 Besides, top and bottom fields are now expressed with picture structure flags
31707 from GstVaapiSurfaceRenderFlags.
31709 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31711 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31712 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31713 decoder: add OUTPUT flag to pictures.
31714 Allow pictures to be marked as output gst_vaapi_picture_output().
31716 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31718 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31719 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31720 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31721 decoder: fix semantics of SKIPPED pictures.
31722 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
31723 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
31724 has nothing to do with rendering. This only means that the currently decoded
31725 picture is just a copy of its reference picture.
31727 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31729 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31730 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31731 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31732 * gst/vaapi/gstvaapipostproc.c:
31733 vaapipostproc: get "interlaced" attribute from surface proxy.
31734 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
31735 vaapipostproc so that to handles cases where bitstream is interlaced
31736 but almost only frame pictures are generated. In this case, we should
31737 not be alternating between top/bottom fields.
31739 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31742 * debian.upstream/control.in:
31743 * gst/vaapi/Makefile.am:
31744 * gst/vaapi/gstvaapi.c:
31745 * gst/vaapi/gstvaapipostproc.c:
31746 * gst/vaapi/gstvaapipostproc.h:
31747 vaapipostproc: add new element for video postprocessing.
31748 Add vaapipostproc element for video postprocessing. So far, only basic
31749 bob deinterlacing is implemented. Interlaced mode is automatically
31750 detected based on sink caps ("interlaced" field).
31752 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31754 * docs/reference/libs/libs-sections.txt:
31755 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31756 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31757 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31758 * gst/vaapi/gstvaapisink.c:
31759 videobuffer: add surface render flags.
31760 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
31761 to be set to the video buffer. In particular, this is mostly useful for
31762 basic deinterlacing.
31764 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31766 * gst-libs/gst/vaapi/gstvaapicompat.h:
31767 compat: add compatibility glue with VA-API 0.34+ (WIP).
31769 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31771 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31772 h264: skip all Filler Data NALs.
31774 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
31776 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31777 mpeg4: check for decoder status prior to decoding packet.
31778 Make sure there is a VA surface free prior to decoding the current frame.
31779 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31781 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
31783 * gst/vaapi/gstvaapidecode.c:
31784 * gst/vaapi/gstvaapidecode.h:
31785 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
31786 Rationale: playbin2 links all elements at run-time. Once vaapidecode
31787 is created and a NEWSEGMENT event arrives, downstream element may not
31788 be ready yet. So, delay this event until next element is chained in,
31789 otherwise basesink could output "Received buffer without a new-segment.
31790 Assuming timestamps start from 0".
31791 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31793 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
31795 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31796 mpeg2: fix GOP timestamps when incorrect data is received.
31797 Some streams have incorrect GOP timestamps, or nothing set at all.
31798 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
31799 from demuxer timestamps, which are monotonic.
31800 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31802 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
31804 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31805 mpeg2: don't decode anything before the first sequence_header().
31806 Skip all pictures prior to the first sequence_header(). Besides,
31807 skip all picture_data() if there was no prior picture_header().
31808 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31810 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
31812 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31813 ffmpeg: add support for interlaced streams.
31814 Evaluate interlaced stream properties.
31815 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31817 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31819 * gst/vaapi/gstvaapidecode.c:
31820 vaapidecode: propagate interlaced and TFF properties downstream.
31821 Propagate "interlaced" caps downstream and set "tff" buffer flag
31822 appropriately to output buffers for interlaced pictures.
31823 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31825 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31827 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31828 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31829 decoder: maintain caps for interlaced streams.
31830 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
31832 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31834 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31836 * docs/reference/libs/libs-sections.txt:
31837 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31838 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31839 surfaceproxy: add TFF property.
31840 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
31841 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31843 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31846 AUTHORS: update to match current authors.
31848 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31850 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31851 mpeg2: fix is_first_field calculation.
31852 Reset is_first_field for frame pictures. Factor out locations where
31853 the flag is updated.
31855 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31857 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31858 mpeg2: catch incorrect picture_structure from bitstreams.
31859 Assume "frame" picture structure if the syntax element was zero or if
31860 progressive_frame is set.
31862 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31864 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31865 mpeg2: fix slice_vertical_position calculation (again).
31866 VA-API expects slice_vertical_position as the initial position from the
31867 bitstream. i.e. the direct slice() information. VA drivers will be fixed
31870 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31872 * gst/vaapi/gstvaapidecode.c:
31873 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
31874 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
31875 For gst_element_class_get_pad_template(), no unreferencing is necessary
31876 according to the GStreamer documentation.
31878 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31881 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31882 h264: fix slice_data_bit_offset calculation.
31883 Unlike what VA-API documentation defines, the slice_data_bit_offset
31884 represents the offset to the first macroblock in the slice data, minus
31885 any emulation prevention bytes in the slice_header().
31886 This fix copes with binary-only VA drivers that won't be fixed any
31887 time soon. Besides, this aligns with the current FFmpeg behaviour
31888 that was based on those proprietary drivers implementing the API
31891 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
31893 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31894 h264: skip all Access Unit (AU) NALs.
31895 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31897 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
31899 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31900 h264: fix modification process of reference picture lists.
31901 Construction of RefPicList0/1 could be off by one element.
31902 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31904 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31906 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31907 mpeg2: fix size calculation from sequence_extension().
31908 Original values from sequence_header() are 12-bit and the remaining
31909 2 most significant bits are coming from sequence_extension().
31910 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31912 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31914 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31915 mpeg2: fix slice_vertical_position calculation.
31916 Make sure to adjust slice_vertical_position if picture structure
31917 is a top or bottom field.
31919 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31921 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31922 decoder: add picture structure flags.
31924 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31926 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31927 mpeg2: fix decoding at end-of-sequence.
31929 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31931 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31932 mpeg2: fix slice_horizontal_position calculation.
31934 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31936 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31937 mpeg2: drop useless mb_y and mb_height members.
31939 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31941 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31942 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
31943 6.3.15 says that "some slices may have the same slice_vertical_position,
31944 since slices may start and finish anywhere". So, we can't submit the current
31945 picture to the HW right away since subsequent slices would be missing.
31947 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31949 * gst-libs/gst/vaapi/gstvaapiimage.c:
31950 image: fix source stride in picture copy.
31952 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31954 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31955 decoder: fix double buffer free with some VA drivers.
31956 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
31957 push the VA buffer object into a list of free buffers to be re-used. However,
31958 reference pictures (and data) that was kept would explicitly release the VA
31959 buffer object later on, thus possibly destroying a valid (re-used) object.
31960 Besides, some other VA drivers don't support correctly the vaRenderPicture()
31961 semantics for VA buffers disposal and would leak memory if there is no explicit
31962 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
31963 right after vaRenderPicture(). All VA drivers need to be aligned.
31965 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31967 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31968 h264: complete any current picture decoder before SPS / PPS change.
31969 This ensures the VA context is clear when the encoded resolution
31970 changes. i.e. make sure older picture is decoded with the older
31971 VA context before it changes.
31973 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31975 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31976 h264: create VA context earlier when SPS is parsed.
31978 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31980 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31981 h264: don't allocate too big data structures on stack.
31983 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31985 * gst-libs/gst/vaapi/glibcompat.h:
31986 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31987 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31988 glib: map deprecated API to glib >= 2.32 equivalents.
31989 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
31990 GRecMutex, which no longer require any prior call to g_thread_init().
31992 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31994 * gst-libs/gst/vaapi/gstvaapiutils.h:
31995 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31996 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31997 glib: fix includes.
31999 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32001 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32002 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32003 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32004 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32005 cosmetics: fix warnings (drop unused variables).
32007 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32009 * gst/vaapi/gstvaapidecode.c:
32010 vaapidecode: fix another pad template ref leak.
32012 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32014 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32015 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32016 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32017 mpeg2: fix crash when there is no free surface to decode into.
32019 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
32021 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32022 display: skip profiles which have no entrypoints.
32023 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32025 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32027 * gst/vaapi/gstvaapiupload.c:
32028 vaapiupload: use g_object_unref() for GstVaapiImage.
32030 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32032 * gst/vaapi/gstvaapidecode.c:
32033 * gst/vaapi/gstvaapidownload.c:
32034 * gst/vaapi/gstvaapisink.c:
32035 * gst/vaapi/gstvaapiupload.c:
32036 plugins: fix pad template ref leaks.
32038 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32041 Bump version for development.
32043 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32049 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32053 Mention codecparsers-based decoders, FFmpeg is now optional. Update
32054 list of support HW.
32056 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32061 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32063 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32064 decoder: allocate proxy surface earlier.
32065 This simplifies gst_vaapi_picture_output() to only update the presentation
32066 timestamp and submit the proxy to the decoder for output.
32068 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32070 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32071 decoder: fix memory leak of VA objects on exit.
32072 On sequence end, if the last decoded picture is not output for rendering,
32073 then the proxy surface is not created. In this case, the original surface
32074 must be released explicitly to the context.
32076 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32078 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32079 mpeg2: use GstAdapter to track input sequence.
32080 This fixes possible memory leaks and improves performance by removing
32083 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32086 * gst-libs/gst/vaapi/Makefile.am:
32087 * gst-libs/gst/vaapi/glibcompat.h:
32088 * gst-libs/gst/vaapi/sysdeps.h:
32089 Add glib compatibility glue for older versions.
32091 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32093 * gst-libs/gst/vaapi/Makefile.am:
32094 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32095 * gst-libs/gst/vaapi/gstvaapicontext.c:
32096 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32097 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32098 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32099 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32100 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32101 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32102 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32103 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32104 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32105 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32106 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32107 * gst-libs/gst/vaapi/gstvaapiimage.c:
32108 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32109 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32110 * gst-libs/gst/vaapi/gstvaapiobject.c:
32111 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32112 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32113 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32114 * gst-libs/gst/vaapi/gstvaapisurface.c:
32115 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32116 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32117 * gst-libs/gst/vaapi/gstvaapitexture.c:
32118 * gst-libs/gst/vaapi/gstvaapiutils.c:
32119 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32120 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32121 * gst-libs/gst/vaapi/gstvaapivalue.c:
32122 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32123 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
32124 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32125 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32126 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32127 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32128 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32129 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32130 * gst-libs/gst/vaapi/sysdeps.h:
32131 Add header for system-dependent definitions.
32133 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32135 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32136 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32137 * gst-libs/gst/vaapi/gstvaapiutils.c:
32138 * gst-libs/gst/vaapi/gstvaapiutils.h:
32139 decoder: optimize slice data buffers initialization.
32140 VA drivers may have a faster means to transfer user buffers to GPU
32141 buffers than using memcpy(). In particular, on Intel Gen graphics, we
32142 can use pwrite(). This provides for faster upload of bitstream and can
32143 help higher bitrates.
32144 vaapi_create_buffer() helper function was also updated to allow for
32145 un-mapped buffers and pre-initialized data for buffers.
32147 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32149 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32150 h264: simplify RefPicList reconstruction.
32152 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32154 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32155 h264: flush DPB when the end of the sequence is reached.
32157 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32159 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32160 h264: handle Decoded Picture Buffer (DPB).
32162 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32164 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32165 h264: fix pred_weight_table() reconstruction.
32166 Only the explicit pred_weight_table(), possibly with the inferred default
32167 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
32168 is not set for P/SP slices.
32170 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32172 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32173 h264: execute reference picture marking process (MMCO).
32175 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32177 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32178 h264: fix presentation timestamps.
32180 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32182 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32183 h264: execute reference picture marking process (sliding window).
32185 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32187 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32188 h264: handle avcC format for decoding buffers.
32190 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32192 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32193 h264: handle codec-data.
32194 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32196 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32198 * gst-libs/gst/vaapi/Makefile.am:
32199 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
32200 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
32201 * gst/vaapi/gstvaapidecode.c:
32202 * tests/test-decode.c:
32203 Add initial H.264 decoder.
32205 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32207 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32208 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
32209 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
32210 Keep a valid reference to the proxy in GstVaapiPicture so that frames
32211 marked as "used for reference" could be kept during the lifetime of the
32212 picture. i.e. don't release them too soon as they could be re-used right
32215 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32217 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32218 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32219 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32220 decoder: properly reference count pictures.
32221 This fixes cases where a GstVaapiPicture would be destroyed whereas
32222 there is still a valid instance of it in either prev, current or
32225 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32227 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32228 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32229 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32230 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32231 decoder: simplify output of decoded frames.
32232 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
32233 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
32234 is already set correctly and reference count increased, if necessary.
32236 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32238 * gst-libs/gst/vaapi/Makefile.am:
32239 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
32240 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
32241 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32242 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32243 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32244 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
32245 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
32246 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32247 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32248 decoder: rework the internal VA objects API.
32249 The new API simplifies a lot reference counting and makes it more
32250 flexible for future additions/changes. The GstVaapiCodecInfo is
32251 also gone. Rather, new helper macros are provided to allocate
32252 picture, slice and quantization matrix parameter buffers.
32254 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32256 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32257 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32258 decoder: allow slices to be attached to pictures later.
32260 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32262 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32263 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32264 decoder: add ref_count to GstVaapiPicture.
32266 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32268 * gst/vaapi/gstvaapisink.c:
32269 vaapisink: cap window size to the maximum display size.
32271 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
32273 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32274 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32275 profile: match video/x-h263 as H.263 Baseline profile.
32276 HACK: qtdemux does not report profiles for H.263. So, assume plain
32277 "video/x-h263" is H.263 Baseline profile.
32278 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32280 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32282 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32283 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32284 display: report H.263 Baseline profile.
32285 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
32286 profile (VAProfileMPEG4Simple) is supported.
32288 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32290 * gst-libs/gst/vaapi/Makefile.am:
32291 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32292 Add template for workarounds.
32294 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32296 * tests/test-decode.c:
32297 tests: error out if FFmpeg|codecparsers are not supported.
32299 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32301 * docs/reference/libs/libs-sections.txt:
32302 * gst-libs/gst/vaapi/gstvaapisurface.h:
32303 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32304 surface: don't expose gst_vaapi_surface_get_parent_context().
32305 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
32306 It's just an internal helper function. However, it's still possible to get
32307 the parent context through the "parent-context" property.
32309 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32311 * tests/Makefile.am:
32312 * tests/test-subpicture.c:
32313 tests: fix build without FFmpeg.
32315 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32318 Bump version for development.
32320 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32326 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32329 * debian.upstream/copyright:
32330 * gst-libs/gst/vaapi/gstvaapicontext.c:
32331 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32332 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32333 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32334 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32335 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32336 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32337 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32338 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32339 * gst-libs/gst/vaapi/gstvaapiimage.c:
32340 * gst-libs/gst/vaapi/gstvaapiimage.h:
32341 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32342 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32343 * gst-libs/gst/vaapi/gstvaapiutils.c:
32344 * gst-libs/gst/vaapi/gstvaapiutils.h:
32345 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32346 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32347 * gst/vaapi/gstvaapi.c:
32348 * gst/vaapi/gstvaapidecode.c:
32349 * gst/vaapi/gstvaapidownload.c:
32350 * gst/vaapi/gstvaapidownload.h:
32351 * gst/vaapi/gstvaapipluginutil.c:
32352 * gst/vaapi/gstvaapipluginutil.h:
32353 * gst/vaapi/gstvaapisink.c:
32354 * gst/vaapi/gstvaapiupload.c:
32355 * gst/vaapi/gstvaapiupload.h:
32356 * tests/test-decode.c:
32357 legal: fix year for some copyright notices.
32359 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32361 * gst-libs/gst/vaapi/gstvaapicontext.c:
32362 * gst-libs/gst/vaapi/gstvaapicontext.h:
32363 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32364 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32365 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32366 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32367 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32368 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32369 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32370 * gst-libs/gst/vaapi/gstvaapiimage.c:
32371 * gst-libs/gst/vaapi/gstvaapiimage.h:
32372 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32373 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32374 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32375 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32376 * gst-libs/gst/vaapi/gstvaapisurface.c:
32377 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32378 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32379 * gst-libs/gst/vaapi/gstvaapiutils.c:
32380 * gst-libs/gst/vaapi/gstvaapiutils.h:
32381 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32382 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32383 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32384 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32385 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32386 * gst/vaapi/gstvaapidownload.h:
32387 * gst/vaapi/gstvaapisink.h:
32388 * gst/vaapi/gstvaapiupload.h:
32389 * tests/test-decode.c:
32390 legal: add Intel copyright on modified files.
32392 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32394 * gst-libs/gst/vaapi/gstvaapi_priv.h:
32395 * gst-libs/gst/vaapi/gstvaapicompat.h:
32396 * gst-libs/gst/vaapi/gstvaapicontext.c:
32397 * gst-libs/gst/vaapi/gstvaapicontext.h:
32398 * gst-libs/gst/vaapi/gstvaapidebug.h:
32399 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32400 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32401 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32402 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32403 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32404 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32405 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32406 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32407 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
32408 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
32409 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32410 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32411 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
32412 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
32413 * gst-libs/gst/vaapi/gstvaapiimage.c:
32414 * gst-libs/gst/vaapi/gstvaapiimage.h:
32415 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32416 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32417 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32418 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
32419 * gst-libs/gst/vaapi/gstvaapiobject.c:
32420 * gst-libs/gst/vaapi/gstvaapiobject.h:
32421 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32422 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32423 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
32424 * gst-libs/gst/vaapi/gstvaapiprofile.c:
32425 * gst-libs/gst/vaapi/gstvaapiprofile.h:
32426 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32427 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32428 * gst-libs/gst/vaapi/gstvaapisurface.c:
32429 * gst-libs/gst/vaapi/gstvaapisurface.h:
32430 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32431 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
32432 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32433 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32434 * gst-libs/gst/vaapi/gstvaapitexture.c:
32435 * gst-libs/gst/vaapi/gstvaapitexture.h:
32436 * gst-libs/gst/vaapi/gstvaapitypes.h:
32437 * gst-libs/gst/vaapi/gstvaapiutils.c:
32438 * gst-libs/gst/vaapi/gstvaapiutils.h:
32439 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32440 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32441 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32442 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32443 * gst-libs/gst/vaapi/gstvaapivalue.c:
32444 * gst-libs/gst/vaapi/gstvaapivalue.h:
32445 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32446 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32447 * gst-libs/gst/vaapi/gstvaapivideopool.c:
32448 * gst-libs/gst/vaapi/gstvaapivideopool.h:
32449 * gst-libs/gst/vaapi/gstvaapivideosink.c:
32450 * gst-libs/gst/vaapi/gstvaapivideosink.h:
32451 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32452 * gst-libs/gst/vaapi/gstvaapiwindow.h:
32453 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32454 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32455 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32456 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
32457 * gst/vaapi/gstvaapidecode.c:
32458 * gst/vaapi/gstvaapidecode.h:
32459 * gst/vaapi/gstvaapidownload.c:
32460 * gst/vaapi/gstvaapidownload.h:
32461 * gst/vaapi/gstvaapisink.c:
32462 * gst/vaapi/gstvaapisink.h:
32463 * gst/vaapi/gstvaapiupload.c:
32464 * gst/vaapi/gstvaapiupload.h:
32467 * tests/test-decode.c:
32468 * tests/test-decode.h:
32469 * tests/test-display.c:
32470 * tests/test-h264.c:
32471 * tests/test-h264.h:
32472 * tests/test-mpeg2.c:
32473 * tests/test-mpeg2.h:
32474 * tests/test-surfaces.c:
32475 * tests/test-textures.c:
32476 * tests/test-vc1.c:
32477 * tests/test-vc1.h:
32478 * tests/test-windows.c:
32479 legal: fix copyright notices to include "Copyright" term.
32481 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
32483 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32484 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32485 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32486 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32488 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
32490 * gst-libs/gst/vaapi/Makefile.am:
32491 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32492 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32493 * gst/vaapi/gstvaapidecode.c:
32494 Add initial MPEG-4 decoder.
32495 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32497 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32499 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32500 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32501 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32502 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32504 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32506 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32507 vc1: fix codec-data decoding for WMV3 format.
32509 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32511 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32512 vc1: fix presentation timestamps.
32514 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32516 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32517 vc1: fix MV mode packing.
32519 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32521 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32522 vc1: handle codec-data.
32524 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32526 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32527 vc1: handle encapsulated bitstreams.
32529 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32531 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32532 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32533 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32534 vc1: fix bitplanes decoding.
32536 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32538 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32539 vc1: fix BFRACTION reconstruction.
32541 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32543 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32544 vc1: fix framerate calculation.
32546 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32548 * gst-libs/gst/vaapi/Makefile.am:
32549 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32550 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32551 * gst/vaapi/gstvaapidecode.c:
32552 * tests/test-decode.c:
32553 Add initial VC-1 decoder.
32555 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
32557 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32558 mpeg2: fix first field detection.
32559 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32561 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32563 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32564 mpeg2: fix quantisation matrix construction.
32566 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32568 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32569 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32570 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
32571 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32573 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32575 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32576 mpeg2: fix packets spanning over two buffers.
32578 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32580 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32581 mpeg2: ignore system start codes (PES headers).
32583 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32585 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32586 mpeg2: handle closed_gop.
32588 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32590 * gst-libs/gst/vaapi/Makefile.am:
32591 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32592 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32593 * gst/vaapi/gstvaapidecode.c:
32594 * tests/test-decode.c:
32595 Add initial MPEG-2 decoder.
32597 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32600 * gst-libs/gst/vaapi/Makefile.am:
32601 * gst/vaapi/gstvaapidecode.c:
32602 * tests/test-decode.c:
32603 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
32605 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32607 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32608 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32609 Add VA decoder helpers.
32611 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32613 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32614 decoder: add new error codes.
32615 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
32616 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
32618 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32620 * gst-libs/gst/vaapi/Makefile.am:
32621 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
32622 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
32623 Add timestamp buffer store helper utils.
32625 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32627 * gst-libs/gst/vaapi/gstvaapiutils.c:
32628 * gst-libs/gst/vaapi/gstvaapiutils.h:
32629 Add VA buffer helpers.
32631 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32633 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32634 utils: slight improvements to gl_bind_texture().
32636 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32638 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32639 utils: pretty-print output of gl_get_error_string().
32641 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32643 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32644 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
32646 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32648 * gst-libs/gst/vaapi/gstvaapiutils.c:
32649 utils: simplify string of VAProfile/VAEntrypoint.
32651 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32653 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32654 * gst-libs/gst/vaapi/gstvaapiutils.c:
32655 * gst-libs/gst/vaapi/gstvaapiutils.h:
32656 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
32658 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32663 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32665 * tests/test-decode.c:
32666 tests: check for shared VA displays (display cache).
32668 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32670 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32671 display: always free VA display cache if it is empty.
32673 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32675 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32676 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32677 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32678 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32679 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32680 display: use VA display cache for X11 and GLX winsys.
32682 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32684 * gst-libs/gst/vaapi/Makefile.am:
32685 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32686 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32687 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
32688 display: implement a VA display cache.
32690 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32692 * gst/vaapi/gstvaapipluginutil.c:
32693 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
32694 This ensures the display name provided to gst_vaapi_display_*_new()
32695 maps to the system defaults, instead of forcing "" that could be different
32696 from the current DISPLAY name.
32698 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32700 * gst/vaapi/gstvaapiupload.c:
32701 vaapiupload: only set caps on newly created buffers.
32702 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32704 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32706 * gst/vaapi/gstvaapisink.c:
32707 vaapisink: ensure VA display in GstBaseSink::start() hook.
32708 This ensures a VA display is ready by the time upstream elements request
32711 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32713 * gst/vaapi/gstvaapisink.c:
32714 vaapisink: don't leak GL texture.
32715 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32717 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32719 * gst/vaapi/gstvaapisink.c:
32720 vaapisink: fix calculation of render region.
32722 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32724 * gst/vaapi/gstvaapisink.c:
32725 vaapisink: automatically fit video to window.
32727 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32729 * gst/vaapi/gstvaapisink.c:
32730 vaapisink: implement GstXOverlay::set_render_rectangle().
32732 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32734 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32735 window: always check geometry when the window is mapped.
32737 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
32739 * gst-libs/gst/vaapi/gstvaapiutils.c:
32740 Add missing profiles from VA-API 0.32.0.
32741 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32743 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32746 .gitignore: add test-subpicture.
32748 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32751 Bump version for development.
32753 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32759 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32761 * tests/Makefile.am:
32762 tests: fix make dist (ship with test-subpicture-data.h).
32764 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32769 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32771 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32772 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32773 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32774 decoder: fix possible leak of VA surfaces.
32775 Under some circumstances, we could have leaked a surface, thus not
32776 releasing it to the pool of available surfaces in the VA context.
32777 The strategy is now to use a proxy earlier and automatically ref/unref
32778 whenever necessary. In particular, during the lifetime needed for FFmpeg.
32780 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32782 * docs/reference/libs/libs-sections.txt:
32783 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32784 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32785 surfaceproxy: add helper to retrieve the VA surface ID.
32787 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32789 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32790 surfaceproxy: simplify destruction.
32791 Also make sure to always make sure to release the surface back to the
32792 pool of surfaces in the associated VA context, if any.
32794 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32796 * gst/vaapi/gstvaapidecode.c:
32797 vaapidecode: fix deinitialization order.
32799 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32801 * gst-libs/gst/vaapi/gstvaapicontext.c:
32802 context: avoid self reference loops with surfaces.
32804 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32806 * debian.upstream/control.in:
32807 debian: update control.in description for new plugins.
32809 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32811 * gst/vaapi/gstvaapiupload.c:
32812 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
32813 This also fixes extra structures, beyond the one at index 0, to hold
32814 the right additional values.
32816 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32818 * gst/vaapi/gstvaapiupload.c:
32819 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
32821 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32824 * docs/reference/plugins/plugins-docs.xml.in:
32825 * docs/reference/plugins/plugins-sections.txt:
32826 * docs/reference/plugins/plugins.types:
32827 * gst/vaapi/Makefile.am:
32828 * gst/vaapi/gstvaapi.c:
32829 * gst/vaapi/gstvaapidownload.c:
32830 * gst/vaapi/gstvaapidownload.h:
32831 vaapidownload: add new plugin to download pixels from VA surfaces.
32833 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32835 * gst/vaapi/gstvaapipluginutil.c:
32836 * gst/vaapi/gstvaapipluginutil.h:
32837 vaapipluingutils: add helper to append surface caps to YUV caps.
32839 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32841 * docs/reference/libs/libs-sections.txt:
32842 * gst-libs/gst/vaapi/gstvaapiimage.c:
32843 * gst-libs/gst/vaapi/gstvaapiimage.h:
32844 image: add helpers to extract pixels to user buffers.
32846 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32848 * gst-libs/gst/vaapi/gstvaapiimage.c:
32849 image: simplify initialization of raw images from video buffers.
32851 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32853 * gst-libs/gst/vaapi/gstvaapiimage.c:
32854 image: fix update from NV12 buffers.
32856 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32858 * gst/vaapi/gstvaapiupload.c:
32859 vaapiupload: fix memory leak in _init() function.
32861 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32865 * debian.upstream/control.in:
32866 * docs/reference/plugins/plugins-docs.xml.in:
32867 * docs/reference/plugins/plugins-sections.txt:
32868 * docs/reference/plugins/plugins.types:
32869 * gst/vaapi/Makefile.am:
32870 * gst/vaapi/gstvaapi.c:
32871 * gst/vaapi/gstvaapiupload.c:
32872 * gst/vaapi/gstvaapiupload.h:
32873 Rename vaapiconvert element to vaapiupload.
32875 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32878 Bump version for development.
32880 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32886 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32891 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32893 * gst-libs/gst/vaapi/gstvaapisurface.c:
32894 * gst-libs/gst/vaapi/gstvaapisurface.h:
32895 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32896 * gst/vaapi/gstvaapisink.c:
32897 surface: apply composition to the parent context, if requested.
32899 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32901 * docs/reference/libs/libs-sections.txt:
32902 * gst-libs/gst/vaapi/gstvaapicontext.c:
32903 * gst-libs/gst/vaapi/gstvaapicontext.h:
32904 context: make it possible to apply composition globally.
32906 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32908 * gst-libs/gst/vaapi/gstvaapisurface.c:
32909 surface: fix associate subpicture to not report deassociation errors.
32911 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32913 * gst-libs/gst/vaapi/gstvaapisurface.c:
32914 surface: fix typo in debug message.
32916 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32918 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32919 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32920 * gst-libs/gst/vaapi/gstvaapisurface.c:
32921 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
32923 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32925 * docs/reference/libs/libs-sections.txt:
32926 * gst-libs/gst/vaapi/Makefile.am:
32927 * gst-libs/gst/vaapi/gstvaapicontext.c:
32928 * gst-libs/gst/vaapi/gstvaapisurface.c:
32929 * gst-libs/gst/vaapi/gstvaapisurface.h:
32930 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32931 surface: record parent context.
32933 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32935 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32936 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32937 * gst/vaapi/gstvaapidecode.c:
32938 * gst/vaapi/gstvaapisink.c:
32941 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32943 * gst-libs/gst/vaapi/gstvaapisurface.c:
32944 * gst-libs/gst/vaapi/gstvaapisurface.h:
32945 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32946 * gst/vaapi/gstvaapisink.c:
32947 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
32949 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32952 configure: check for GstVideoOverlayComposition.
32954 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32959 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32961 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32962 converter: add support for GstVideoOverlayComposition planes.
32963 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32965 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32967 * gst/vaapi/gstvaapisink.c:
32968 vaapisink: handle GstVideoOverlayComposition planes.
32969 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32971 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32973 * gst-libs/gst/vaapi/gstvaapisurface.c:
32974 surface: use unscaled overlay rectangle for blending.
32976 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32978 * gst-libs/gst/vaapi/gstvaapisurface.c:
32979 surface: fix VA image leak when an error occurred.
32981 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32983 * gst-libs/gst/vaapi/gstvaapisurface.c:
32984 * gst-libs/gst/vaapi/gstvaapisurface.h:
32985 surface: add helper to handle GstVideoOverlayComposition.
32986 This helper resets the subpictures to reflect the current composition
32987 layers provided with the buffers.
32988 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32990 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32992 * docs/reference/libs/libs-sections.txt:
32993 * gst-libs/gst/vaapi/Makefile.am:
32994 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32995 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32996 * gst/vaapi/gstvaapiconvert.c:
32997 image: add gst_vaapi_image_format_from_video() helper.
32999 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33001 * gst-libs/gst/vaapi/gstvaapiimage.c:
33002 * gst-libs/gst/vaapi/gstvaapiimage.h:
33003 image: allow updates from GstVaapiImageRaw.
33005 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33007 * gst-libs/gst/vaapi/gstvaapiimage.c:
33008 * gst-libs/gst/vaapi/gstvaapiimage.h:
33009 * gst/vaapi/gstvaapiconvert.c:
33010 * tests/test-subpicture.c:
33011 image: allow partial updates.
33013 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33015 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33016 subpicture: fix doc for gst_vaapi_subpicture_set_image().
33018 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33020 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33021 display: fix has_image_format() to check against subpicture formats.
33023 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33025 * tests/test-subpicture.c:
33026 tests: fix subpicture test.
33028 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
33030 * tests/Makefile.am:
33031 * tests/test-subpicture-data.c:
33032 * tests/test-subpicture-data.h:
33033 * tests/test-subpicture.c:
33034 tests: add test for subpictures.
33035 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33037 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33039 * gst/vaapi/gstvaapiconvert.c:
33040 * gst/vaapi/gstvaapidecode.c:
33041 Add missing video context queries.
33042 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33044 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33047 Bump version for development.
33049 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33051 * gst-libs/gst/video/Makefile.am:
33052 * gst-libs/gst/video/gstbasevideocodec.c:
33053 * gst-libs/gst/video/gstbasevideocodec.h:
33054 * gst-libs/gst/video/gstbasevideodecoder.c:
33055 * gst-libs/gst/video/gstbasevideodecoder.h:
33056 * gst-libs/gst/video/gstbasevideoutils.c:
33057 * gst-libs/gst/video/gstbasevideoutils.h:
33058 Drop unused copy of GstBaseVideoDecoder.
33060 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33066 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33069 README: update dependencies.
33071 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33076 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33079 configure: check for GstBaseSink 'query' vfunc.
33081 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33083 * gst/vaapi/Makefile.am:
33084 vaapiplugin: include local build dir to CFLAGS for generated files.
33086 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33089 autogen: don't configure if NO_CONFIGURE variable is set.
33091 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
33093 * gst/vaapi/gstvaapidecode.c:
33094 * gst/vaapi/gstvaapidecode.h:
33095 vaapidecode: return sink caps template if decoder is in NULL state.
33096 Otherwise, the decoder would always create its own X display instead
33097 of probing it from the downstream element, which is not reliable.
33098 e.g. DISPLAY is not :0 or when running on Wayland.
33099 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33101 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33103 * gst/vaapi/gstvaapiconvert.c:
33104 * gst/vaapi/gstvaapidecode.c:
33105 vaapiplugin: properly set surface type to "vaapi" in caps.
33107 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33109 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33110 decoder: drop unused headers.
33112 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33114 * gst/vaapi/gstvaapiconvert.c:
33115 * gst/vaapi/gstvaapidecode.c:
33116 vaapiplugin: properly set opengl support in caps.
33117 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33119 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33121 * gst/vaapi/gstvaapiconvert.c:
33122 * gst/vaapi/gstvaapidecode.c:
33123 vaapiplugin: allocate GLX buffers when supported.
33124 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33126 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33128 * gst-libs/gst/vaapi/Makefile.am:
33129 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33130 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
33131 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
33132 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
33133 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
33134 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
33135 videobuffer: add GLX buffer support.
33136 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33138 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33140 * gst-libs/gst/vaapi/Makefile.am:
33141 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33142 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33143 Port to GstSurfaceBuffer interface.
33144 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33146 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33148 * gst/vaapi/gstvaapidecode.c:
33149 * gst/vaapi/gstvaapisink.c:
33150 Don't use downstream buffer allocation.
33151 With the new video/x-surface abstraction, we can't rely on having a VA
33152 specific sink downstream. Also, there was no particular reason to do that.
33153 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33155 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33157 * gst-libs/gst/vaapi/Makefile.am:
33158 * gst-libs/gst/vaapi/gstvaapicontext.c:
33159 * gst-libs/gst/vaapi/gstvaapisurface.h:
33160 * gst/vaapi/gstvaapiconvert.c:
33161 * gst/vaapi/gstvaapisink.c:
33162 * tests/Makefile.am:
33163 * tests/test-surfaces.c:
33164 Change caps to use new video/x-surface generic type.
33165 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33167 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
33170 * gst-libs/gst/vaapi/Makefile.am:
33171 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33172 * gst/vaapi/Makefile.am:
33173 * gst/vaapi/gstvaapiconvert.c:
33174 * gst/vaapi/gstvaapidecode.c:
33175 * gst/vaapi/gstvaapipluginutil.c:
33176 * gst/vaapi/gstvaapipluginutil.h:
33177 * gst/vaapi/gstvaapisink.c:
33178 * gst/vaapi/gstvaapisink.h:
33179 Port to GstVideoContext interface.
33180 This new interface allows for upstream and downstream display sharing
33181 that works in both static and dynamic pipelines.
33182 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33184 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33186 * gst/vaapi/gstvaapisink.c:
33187 vaapisink: use GST_ERROR to print error messages.
33189 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33191 * gst/vaapi/Makefile.am:
33192 vaapiplugin: link against VA/GLX when enabled.
33194 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33196 * gst/vaapi/gstvaapiconvert.c:
33197 * gst/vaapi/gstvaapisink.c:
33198 Add Intel copyright information.
33200 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33202 * gst/vaapi/gstvaapisink.c:
33203 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
33205 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33209 * gst-libs/gst/Makefile.am:
33210 * gst-libs/gst/gstutils_version.h.in:
33211 Add new GStreamer version check utilities.
33213 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
33215 * gst/vaapi/gstvaapisink.c:
33216 vaapisink: replace the deprecated xoverlay API with the new one.
33217 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33219 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33222 configure: allow for pre-releases.
33224 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33226 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33227 display: destroy display on creation failure.
33228 This allows element to detect that the display creation has actually
33230 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33232 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33234 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33235 display: don't crash when config is empty.
33236 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33238 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33241 * debian.upstream/copyright:
33242 doc: mention Collabora copyrights.
33244 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33247 .gitignore: refine for generated docs.
33249 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33252 * docs/reference/plugins/Makefile.am:
33254 * gst/vaapi/Makefile.am:
33255 * gst/vaapi/gstvaapi.c:
33256 * gst/vaapi/gstvaapiconvert.c:
33257 * gst/vaapi/gstvaapiconvert.h:
33258 * gst/vaapi/gstvaapidecode.c:
33259 * gst/vaapi/gstvaapidecode.h:
33260 * gst/vaapi/gstvaapisink.c:
33261 * gst/vaapi/gstvaapisink.h:
33262 * gst/vaapiconvert/Makefile.am:
33263 * gst/vaapidecode/Makefile.am:
33264 Group all plugins into the same bundle
33265 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33267 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33270 Bump version for development.
33272 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33275 * debian.upstream/control.in:
33276 debian: build against upstream libva packages.
33278 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33280 * docs/reference/libs/Makefile.am:
33281 * docs/reference/plugins/Makefile.am:
33282 * tests/Makefile.am:
33283 Fix build on Ubuntu 11.10 (Oneric).
33285 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33290 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33294 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33296 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
33298 * gst/vaapiconvert/gstvaapiconvert.c:
33299 * gst/vaapidecode/gstvaapidecode.c:
33300 * gst/vaapisink/gstvaapisink.c:
33301 Update license in plugin definition
33302 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33304 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33307 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33308 decoder: fix use of invalid data at the end-of-stream.
33310 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33312 * gst/vaapiconvert/gstvaapiconvert.c:
33313 vaapiconvert: fix some warnings.
33315 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33318 * debian.upstream/changelog.in:
33319 * debian.upstream/control.in:
33320 * debian.upstream/copyright:
33321 * gst/vaapiconvert/gstvaapiconvert.c:
33322 * gst/vaapidecode/gstvaapidecode.c:
33323 * gst/vaapisink/gstvaapisink.c:
33324 Update with my current e-mail address.
33326 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33330 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
33332 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
33336 * tests/test-decode.c:
33337 * tests/test-decode.h:
33338 * tests/test-display.c:
33339 * tests/test-h264.c:
33340 * tests/test-h264.h:
33341 * tests/test-mpeg2.c:
33342 * tests/test-mpeg2.h:
33343 * tests/test-surfaces.c:
33344 * tests/test-textures.c:
33345 * tests/test-vc1.c:
33346 * tests/test-vc1.h:
33347 * tests/test-windows.c:
33348 switch tests licence to LGPL v2.1+
33350 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
33354 * debian.upstream/copyright:
33355 * gst/vaapiconvert/gstvaapiconvert.c:
33356 * gst/vaapiconvert/gstvaapiconvert.h:
33357 * gst/vaapidecode/gstvaapidecode.c:
33358 * gst/vaapidecode/gstvaapidecode.h:
33359 * gst/vaapisink/gstvaapisink.c:
33360 * gst/vaapisink/gstvaapisink.h:
33361 move plugins to LGPL v2.1+
33363 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33365 * gst/vaapidecode/gstvaapidecode.c:
33366 vaapidecode: fix sink caps to not expose size information.
33367 This fixes this particular issue:
33368 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
33369 a real subset of its template caps
33371 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33374 * gst/vaapidecode/gstvaapidecode.c:
33375 vaapidecode: fix decoding of MPEG-2 PS files.
33377 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33379 * gst-libs/gst/vaapi/Makefile.am:
33380 Cosmetics (sort source files).
33382 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33384 * gst/vaapiconvert/gstvaapiconvert.c:
33385 * gst/vaapiconvert/gstvaapiconvert.h:
33386 vaapiconvert: fix direct-rendering caps detection.
33388 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33390 * gst-libs/gst/vaapi/gstvaapiimage.c:
33391 Fix gst_vaapi_image_new_with_image().
33393 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33395 * gst/vaapiconvert/gstvaapiconvert.c:
33396 vaapiconvert: warn when surface failed to be updated with image.
33398 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33400 * gst/vaapiconvert/gstvaapiconvert.c:
33401 vaapiconvert: fix autodetection for vaDeriveImage() support.
33403 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33405 * gst/vaapiconvert/gstvaapiconvert.c:
33406 vaapiconvert: fix memory leak (VA surface image).
33408 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33411 * gst/vaapiconvert/gstvaapiconvert.c:
33412 vaapiconvert: fix direct-rendering mode.
33414 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33416 * docs/reference/libs/libs-sections.txt:
33417 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33418 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33419 Add gst_vaapi_video_buffer_new_from_buffer().
33420 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
33421 Any image, surface or surface proxy will be inherited from the source buffer
33422 if it is a GstVaapiVideoBuffer.
33424 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33426 * gst/vaapiconvert/gstvaapiconvert.c:
33427 vaapiconvert: protect access to direct_rendering.
33429 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33431 * gst/vaapiconvert/gstvaapiconvert.c:
33432 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
33434 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33438 * debian.upstream/copyright:
33439 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33440 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33441 * gst-libs/gst/vaapi/gstvaapisurface.h:
33442 * gst/vaapidecode/gstvaapidecode.c:
33443 * gst/vaapidecode/gstvaapidecode.h:
33444 Add Intel copyright information.
33446 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33451 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33453 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33454 Fix build with newer FFmpeg versions.
33456 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33458 * gst/vaapidecode/gstvaapidecode.c:
33459 * gst/vaapidecode/gstvaapidecode.h:
33460 Fix decoding of MPEG-2 TS files.
33462 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33464 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33465 Report caps update only once per video resolution change.
33467 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33469 * gst-libs/gst/vaapi/gstvaapisurface.h:
33470 Add canonical form (type name) of VA surface caps.
33472 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33475 Bump version for development.
33477 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33480 Use pretty build output with automake >= 1.11.
33482 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33484 * gst/vaapiconvert/Makefile.am:
33485 * gst/vaapidecode/Makefile.am:
33486 * gst/vaapisink/Makefile.am:
33487 * tests/Makefile.am:
33488 Fix build with libva headers not in a standard include dir.
33490 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33495 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33497 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33498 * gst-libs/gst/vaapi/gstvaapicompat.h:
33499 * gst-libs/gst/vaapi/gstvaapicontext.c:
33500 * gst-libs/gst/vaapi/gstvaapicontext.h:
33501 * gst-libs/gst/vaapi/gstvaapidebug.h:
33502 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33503 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33504 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33505 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33506 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33507 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33508 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33509 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33510 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33511 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33512 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33513 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33514 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33515 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33516 * gst-libs/gst/vaapi/gstvaapiimage.c:
33517 * gst-libs/gst/vaapi/gstvaapiimage.h:
33518 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33519 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33520 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33521 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33522 * gst-libs/gst/vaapi/gstvaapiobject.c:
33523 * gst-libs/gst/vaapi/gstvaapiobject.h:
33524 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33525 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33526 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33527 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33528 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33529 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33530 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33531 * gst-libs/gst/vaapi/gstvaapisurface.c:
33532 * gst-libs/gst/vaapi/gstvaapisurface.h:
33533 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33534 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33535 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33536 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33537 * gst-libs/gst/vaapi/gstvaapitexture.c:
33538 * gst-libs/gst/vaapi/gstvaapitexture.h:
33539 * gst-libs/gst/vaapi/gstvaapitypes.h:
33540 * gst-libs/gst/vaapi/gstvaapiutils.c:
33541 * gst-libs/gst/vaapi/gstvaapiutils.h:
33542 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33543 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33544 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33545 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33546 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33547 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33548 * gst-libs/gst/vaapi/gstvaapivalue.c:
33549 * gst-libs/gst/vaapi/gstvaapivalue.h:
33550 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33551 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33552 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33553 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33554 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33555 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33556 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33557 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33558 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33559 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33560 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33561 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33562 * gst/vaapiconvert/gstvaapiconvert.c:
33563 * gst/vaapiconvert/gstvaapiconvert.h:
33564 * gst/vaapidecode/gstvaapidecode.c:
33565 * gst/vaapidecode/gstvaapidecode.h:
33566 * gst/vaapisink/gstvaapisink.c:
33567 * gst/vaapisink/gstvaapisink.h:
33570 * tests/test-decode.c:
33571 * tests/test-decode.h:
33572 * tests/test-display.c:
33573 * tests/test-h264.c:
33574 * tests/test-h264.h:
33575 * tests/test-mpeg2.c:
33576 * tests/test-mpeg2.h:
33577 * tests/test-surfaces.c:
33578 * tests/test-textures.c:
33579 * tests/test-vc1.c:
33580 * tests/test-vc1.h:
33581 * tests/test-windows.c:
33582 Update copyright notice.
33584 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33587 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33588 * gst-libs/gst/vaapi/gstvaapisurface.c:
33589 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33590 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33591 * gst-libs/gst/vaapi/gstvaapitexture.c:
33592 * gst-libs/gst/vaapi/gstvaapiutils.c:
33593 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33594 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33595 * gst-libs/gst/vaapi/gstvaapivalue.c:
33596 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33597 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33598 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33599 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33600 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33601 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33602 Fix licensing terms.
33604 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33609 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33611 * debian.upstream/copyright:
33612 Fix license terms...
33614 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33616 * gst/vaapisink/gstvaapisink.c:
33617 Render pretty background only in use-reflection=true mode.
33619 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33624 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33626 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33627 Drop the GLX 1.3 requirement.
33629 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33631 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33632 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33633 Call the GLX/Pixmap related functions through the vtable.
33635 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33639 * gst-libs/gst/vaapi/Makefile.am:
33640 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33641 Drop dependency on libavformat.
33643 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33645 * gst-libs/gst/video/gstbasevideodecoder.c:
33646 * gst-libs/gst/video/gstbasevideodecoder.h:
33647 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
33649 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33651 * gst-libs/gst/video/gstbasevideodecoder.c:
33652 * gst-libs/gst/video/gstbasevideoutils.c:
33653 * gst-libs/gst/video/gstbasevideoutils.h:
33654 Drop superfluous functions.
33656 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33658 * gst-libs/gst/video/gstbasevideodecoder.c:
33659 Really drop any dependency on libgstvideo. i.e. inline the helpers.
33661 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33663 * gst-libs/gst/video/gstbasevideodecoder.c:
33664 Further drop dependency on libgstvideo.
33666 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33668 * gst-libs/gst/video/Makefile.am:
33669 * gst-libs/gst/video/gstbasevideocodec.c:
33670 * gst-libs/gst/video/gstbasevideocodec.h:
33671 * gst-libs/gst/video/gstbasevideodecoder.c:
33672 * gst-libs/gst/video/gstbasevideodecoder.h:
33673 * gst-libs/gst/video/gstbasevideoutils.c:
33674 * gst-libs/gst/video/gstbasevideoutils.h:
33675 Add GstBaseVideoDecoder from gst-plugins-bad git.
33677 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33679 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33680 Fix GLX version check.
33682 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33686 Bump version for development.
33688 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33691 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33692 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
33694 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33699 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33701 * gst-libs/gst/vaapi/gstvaapicompat.h:
33702 Fix build with older VA-API 0.29-sds.
33704 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33706 * gst/vaapisink/gstvaapisink.c:
33707 * gst/vaapisink/gstvaapisink.h:
33708 Fix upscaling in foreign window (Totem).
33710 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33712 * gst/vaapisink/gstvaapisink.c:
33713 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
33715 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33718 * gst/vaapisink/gstvaapisink.c:
33719 Fix video rendering rect within an embedder window (Totem).
33721 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33724 * gst/vaapisink/gstvaapisink.c:
33725 Disable GLX rendering when vaapisink uses a foreign X window.
33727 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33729 * gst/vaapisink/gstvaapisink.c:
33730 Simplify GLX rendering code.
33732 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33735 Bump version for development.
33737 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33742 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33744 * gst/vaapidecode/gstvaapidecode.c:
33745 Wait for at most one second for a VA surface to become available.
33747 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33751 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
33753 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33757 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33758 Fix decoder caps to report codec aliases.
33760 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33763 * gst/vaapidecode/gstvaapidecode.c:
33764 * gst/vaapidecode/gstvaapidecode.h:
33765 Fix VC-1 decoding through the playbin2 pipeline.
33767 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33769 * docs/reference/libs/libs-sections.txt:
33770 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33771 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33772 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33773 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33774 Regularly update and expose decoder caps.
33776 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33778 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33779 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33780 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33781 Add mechanism to reinsert buffer leftovers into the queue.
33783 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33786 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33787 Fix memory leak of encoded buffers.
33789 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33791 * docs/reference/libs/libs-sections.txt:
33792 * gst-libs/gst/vaapi/gstvaapicontext.c:
33793 * gst-libs/gst/vaapi/gstvaapicontext.h:
33794 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33795 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33796 Check for out-of-free-surfaces condition.
33798 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33800 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33801 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
33803 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33805 * gst/vaapisink/gstvaapisink.c:
33806 Improve debug info for gst_vaapisink_ensure_render_rect().
33808 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33811 Bump version for development.
33813 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33818 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33820 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33821 Improve previous fix.
33823 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33826 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33827 Fix a crash in the FFmpeg decoder on close.
33829 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33832 Sort platforms by name.
33834 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33838 Bump version for development.
33840 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33842 * gst/vaapisink/gstvaapisink.c:
33843 Add debug info for _show_frame().
33845 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33848 Nuke older build dir.
33850 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33852 * debian.upstream/control.in:
33853 Fix packaging deps.
33855 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33860 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33863 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33864 Fix OpenGL texture internal format (Clutter).
33866 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33871 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33873 * gst/vaapisink/gstvaapisink.c:
33874 Debug video & display PARs.
33876 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33878 * gst/vaapisink/gstvaapisink.c:
33879 Use XGetGeometry() to retrieve the window size.
33881 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33883 * gst/vaapisink/gstvaapisink.c:
33886 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33888 * gst/vaapisink/gstvaapisink.c:
33889 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
33891 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33894 Drop obsolete comment.
33896 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33901 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33903 * gst/vaapidecode/gstvaapidecode.c:
33904 Fix GstVaapiDisplay refcounting in vaapidecode.
33906 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33908 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33911 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33913 * gst/vaapisink/gstvaapisink.c:
33914 * gst/vaapisink/gstvaapisink.h:
33915 Fix render rect when the foreign window size changes.
33917 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33921 * gst/vaapisink/Makefile.am:
33922 * gst/vaapisink/gstvaapisink.c:
33923 Add GstXOverlay interface to vaapisink (e.g. for Totem).
33925 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33928 Update deps to match configure.ac versions.
33930 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33932 * gst/vaapiconvert/gstvaapiconvert.c:
33933 * gst/vaapidecode/gstvaapidecode.c:
33934 * gst/vaapisink/gstvaapisink.c:
33937 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33940 * gst/vaapidecode/Makefile.am:
33941 * gst/vaapidecode/gstvaapidecode.c:
33942 * gst/vaapidecode/gstvaapidecode.h:
33943 Fix vaapidecode to expose the HW supported caps only.
33945 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33947 * gst/vaapidecode/gstvaapidecode.c:
33948 Initialize decoder earlier.
33950 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33954 * gst/vaapidecode/gstvaapidecode.c:
33955 Fix integration within the playbin2 pipeline.
33957 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33959 * docs/reference/libs/Makefile.am:
33960 Exclude gstvaapiutils_gst.h from docs for now.
33962 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33964 * gst/vaapiconvert/gstvaapiconvert.c:
33965 * gst/vaapidecode/gstvaapidecode.c:
33966 * gst/vaapisink/gstvaapisink.c:
33967 Raise VA-API plugins ranks.
33969 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33971 * gst-libs/gst/vaapi/Makefile.am:
33972 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33973 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33974 Add gst_vaapi_display_lookup_downstream() helper.
33976 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33978 * gst/vaapidecode/gstvaapidecode.c:
33979 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
33981 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33983 * docs/reference/libs/libs-sections.txt:
33984 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33985 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33986 * gst/vaapisink/gstvaapisink.c:
33987 Expose VA display through GstVaapiVideoBuffer.
33989 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33991 * gst/vaapidecode/gstvaapidecode.c:
33992 Simplify gst_vaapidecode_set_caps() and fix memory leak.
33994 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33996 * docs/reference/libs/libs-sections.txt:
33997 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33998 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33999 Expose video pool display.
34001 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34003 * gst-libs/gst/vaapi/gstvaapivideosink.c:
34004 Stop iteration if there is no more element to examine.
34006 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34008 * gst/vaapiconvert/gstvaapiconvert.c:
34009 * gst/vaapidecode/gstvaapidecode.c:
34010 * gst/vaapisink/gstvaapisink.c:
34011 Improve plugin details.
34013 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34015 * gst-libs/gst/vaapi/gstvaapisurface.h:
34016 * gst/vaapiconvert/gstvaapiconvert.c:
34017 * gst/vaapidecode/gstvaapidecode.c:
34018 * gst/vaapisink/gstvaapisink.c:
34019 Factor out VA surface caps.
34021 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34023 * gst/vaapidecode/gstvaapidecode.c:
34024 Add gst_vaapidecode_ensure_display() helper for set-caps.
34026 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34029 Bump version for development.
34031 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34034 Really make it 0.2.0.
34036 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34041 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34043 * docs/reference/libs/Makefile.am:
34044 Don't exclude GstVaapiParamSpecs.
34046 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34048 * docs/reference/libs/Makefile.am:
34049 * docs/reference/libs/libs-sections.txt:
34050 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34051 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34054 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34056 * gst/vaapiconvert/gstvaapiconvert.c:
34057 * gst/vaapidecode/gstvaapidecode.c:
34058 * gst/vaapisink/gstvaapisink.c:
34059 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.
34061 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34063 * gst-libs/gst/vaapi/Makefile.am:
34064 Really link all helper libraries with libtool -no-undefined.
34066 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34068 * gst-libs/gst/vaapi/Makefile.am:
34069 Link helper libraries with libtool -no-undefined.
34071 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34074 * debian.upstream/gstreamer-vaapi.install.in:
34075 * gst/vaapiconvert/Makefile.am:
34076 * gst/vaapidecode/Makefile.am:
34077 * gst/vaapisink/Makefile.am:
34078 Don't build plugins with SONAME. Make them plain *.so.
34080 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34083 Improve documentation for release.
34085 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34087 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34088 Fix build with older VA-API 0.29.
34090 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34095 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34097 * tests/Makefile.am:
34100 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34102 * docs/reference/libs/Makefile.am:
34103 * docs/reference/libs/libs-docs.xml.in:
34104 * docs/reference/libs/libs-sections.txt:
34105 * docs/reference/libs/libs.core.types:
34106 * docs/reference/plugins/Makefile.am:
34107 * docs/reference/plugins/plugins-docs.xml.in:
34108 * docs/reference/plugins/plugins-sections.txt:
34109 * docs/reference/plugins/plugins.types:
34112 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34114 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34117 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34119 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34120 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34121 * gst/vaapidecode/gstvaapidecode.c:
34122 * tests/test-decode.c:
34123 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
34125 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34127 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34128 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34129 Extract framerate information from caps.
34131 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34133 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34134 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34135 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34136 Move caps initialization to parent class.
34138 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34140 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34143 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34145 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34148 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34150 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34151 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34152 More simplifications.
34154 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34156 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34157 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34158 * tests/test-decode.c:
34159 Simplify GstVaapiDecoder API.
34161 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34163 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34164 Drop obsolete defs.
34166 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34168 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34169 Drop obsolete decls.
34171 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34173 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34174 * gst/vaapidecode/gstvaapidecode.c:
34175 Add more aliases for MPEG-4 decoding.
34177 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34179 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34180 Use avctx->coded_{width,height} info to create the VA context.
34182 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34184 * tests/test-decode.c:
34185 * tests/test-decode.h:
34186 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
34188 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34190 * tests/test-decode.c:
34191 * tests/test-decode.h:
34192 * tests/test-h264.c:
34193 * tests/test-h264.h:
34194 * tests/test-mpeg2.c:
34195 * tests/test-mpeg2.h:
34196 * tests/test-vc1.c:
34197 * tests/test-vc1.h:
34198 Simplify tests info.
34200 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34202 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34203 Try to improve heuristics to use an AVCodecContextParser.
34205 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34207 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34208 Fix VC-1 decoding, it does not require any specific parser.
34210 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34212 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34213 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
34215 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34217 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34218 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34219 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
34221 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34223 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34224 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34225 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34226 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34227 * gst/vaapidecode/gstvaapidecode.c:
34228 * gst/vaapidecode/gstvaapidecode.h:
34229 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
34231 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34233 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34234 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34235 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34236 Improve WMV3 detection yet further.
34238 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34240 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34241 Fix detection of plain old WMV3 contents.
34243 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34245 * tests/test-vc1.c:
34246 Add End-of-Sequence start code.
34248 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34250 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34251 * gst/vaapidecode/gstvaapidecode.c:
34252 Fix VC-1 detection.
34254 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34256 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34257 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
34259 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34261 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34262 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34263 Drop obsolete (and wrong) code.
34265 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34267 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34268 Cosmetics (spelling).
34270 2010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34272 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34273 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34274 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34275 Try to fix timestamps (step 1). Looks OK on H55.
34277 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34279 * debian.upstream/Makefile.am:
34280 Ship with COPYING.LIB.
34282 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34287 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34288 * gst-libs/gst/vaapi/gstvaapicompat.h:
34289 * gst-libs/gst/vaapi/gstvaapicontext.c:
34290 * gst-libs/gst/vaapi/gstvaapicontext.h:
34291 * gst-libs/gst/vaapi/gstvaapidebug.h:
34292 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34293 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34294 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34295 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34296 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34297 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34298 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34299 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34300 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34301 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34302 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34303 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34304 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34305 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34306 * gst-libs/gst/vaapi/gstvaapiimage.c:
34307 * gst-libs/gst/vaapi/gstvaapiimage.h:
34308 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34309 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34310 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34311 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
34312 * gst-libs/gst/vaapi/gstvaapiobject.c:
34313 * gst-libs/gst/vaapi/gstvaapiobject.h:
34314 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34315 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34316 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
34317 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34318 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34319 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34320 * gst-libs/gst/vaapi/gstvaapisurface.h:
34321 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
34322 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34323 * gst-libs/gst/vaapi/gstvaapitexture.h:
34324 * gst-libs/gst/vaapi/gstvaapitypes.h:
34325 * gst-libs/gst/vaapi/gstvaapiutils.h:
34326 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34327 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34328 * gst-libs/gst/vaapi/gstvaapivalue.h:
34329 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34330 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34331 * gst-libs/gst/vaapi/gstvaapivideosink.h:
34332 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34333 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34334 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34335 Relicense gst-libs/ code to LGPL v2.1+.
34337 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34339 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34340 Drop extraneous comma.
34342 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34344 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34345 Drop variant=itu field to help codec detection.
34347 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34349 * gst/vaapidecode/gstvaapidecode.c:
34350 Decode as many surfaces as possible in gst_vaapidecode_step().
34352 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34354 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34355 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34356 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34357 * gst/vaapidecode/gstvaapidecode.c:
34358 * gst/vaapidecode/gstvaapidecode.h:
34359 * tests/test-decode.c:
34360 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
34362 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34367 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34369 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34370 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
34372 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34374 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34375 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34376 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
34378 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34380 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34381 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34382 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
34384 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34386 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34387 Document H.264 / AVC1 format case better.
34389 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34391 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34392 Fix H.264 decoding with AVC1 format bitstreams.
34394 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34396 * gst/vaapidecode/gstvaapidecode.c:
34397 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
34399 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34401 * gst/vaapisink/gstvaapisink.c:
34402 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
34404 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34406 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34407 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34408 Export gst_vaapi_video_buffer_new().
34410 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34412 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34413 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
34415 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34420 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34425 * gst/vaapidecode/Makefile.am:
34426 * gst/vaapidecode/gstvaapidecode.c:
34427 * gst/vaapidecode/gstvaapidecode.h:
34428 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
34430 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34432 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34433 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34434 Add gst_vaapi_decoder_pause().
34436 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34438 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34439 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34440 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34441 Use a GstTask with start/stop semantics for the decoder thread.
34443 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34445 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34446 Drop extraneous var.
34448 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34450 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34451 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34452 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
34454 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34456 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34457 Fix gst_vaapi_decoder_get_surface() status.
34459 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34461 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34462 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34463 Try to set correct timestamps to the decoded surface proxy.
34465 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34467 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34468 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34469 * tests/test-decode.c:
34470 Add timestamps to GstVaapiSurfaceProxy.
34472 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34474 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34475 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
34477 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34479 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34480 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
34482 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34484 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34485 Prefer profile from codec-data if any was found there.
34487 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34489 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34490 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
34492 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34494 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34495 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
34497 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34499 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34500 Fix VC-1 codec initialization, it really needs an extradata buffer.
34502 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34504 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34505 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34506 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.
34508 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34510 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34511 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
34513 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34515 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34516 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34517 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34518 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34519 * tests/test-decode.c:
34520 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
34522 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34524 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34525 Cosmetics (weird indentation).
34527 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34529 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34530 Cosmetics (extraneous variable, debug message).
34532 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34535 Fix check for VA-API enabled FFmpeg.
34537 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34539 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34540 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34541 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34542 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34543 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
34545 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34547 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34548 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34549 Add more error codes. Fix documentation.
34551 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34553 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34554 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
34556 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34558 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34559 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34560 * tests/test-decode.c:
34561 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
34563 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34565 * tests/test-vc1.c:
34566 Drop useless End-of-Sequence marker.
34568 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34570 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34571 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.
34573 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34575 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34576 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34577 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.
34579 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34581 * tests/test-h264.c:
34582 * tests/test-vc1.c:
34583 Regenerate correct clips.
34585 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34587 * tests/Makefile.am:
34588 * tests/test-decode.c:
34589 * tests/test-h264.c:
34590 * tests/test-h264.h:
34591 * tests/test-mpeg2.c:
34592 * tests/test-mpeg2.h:
34593 * tests/test-vc1.c:
34594 * tests/test-vc1.h:
34595 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
34596 XXX: only VC-1 decoding works at this time because of awful
34597 bugs left in GstVaapiDecoderFfmpeg et al.
34599 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34602 * gst-libs/gst/vaapi/Makefile.am:
34603 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34604 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34605 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34606 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34607 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34608 Add initial (multithreaded) decoder based on FFmpeg.
34609 There are tons of bugs left:
34610 - Decoder API not nice enough with error conditions
34611 - FFmpeg parser is sometimes broken
34612 - Packets queue can be lost
34614 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34616 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34617 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34618 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
34620 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34622 * gst-libs/gst/vaapi/gstvaapicontext.c:
34623 * gst-libs/gst/vaapi/gstvaapicontext.h:
34624 Add VA context abstraction.
34626 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34628 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34629 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
34631 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34633 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34634 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34635 Add a means to cap the number of objects allocated in the pool.
34637 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34639 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34640 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34641 Add VA entrypoint abstraction.
34643 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34645 * docs/reference/libs/libs-docs.xml.in:
34646 * docs/reference/libs/libs-sections.txt:
34647 * gst-libs/gst/vaapi/Makefile.am:
34648 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34649 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34650 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34651 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34652 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34653 * tests/test-display.c:
34654 Add VA profile abstraction.
34656 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34658 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34659 Fix OpenGL rendering on G45 systems.
34661 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34663 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34664 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
34666 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34668 * gst-libs/gst/vaapi/gstvaapitexture.c:
34669 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34670 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34671 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.
34673 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34675 * gst-libs/gst/vaapi/gstvaapitexture.c:
34676 Fix get-out conditions.
34678 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34680 * gst-libs/gst/vaapi/gstvaapitexture.c:
34681 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34682 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.
34684 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34686 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34689 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34691 * docs/reference/libs/libs-sections.txt:
34692 * gst-libs/gst/vaapi/Makefile.am:
34693 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34694 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34695 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34696 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34697 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34698 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34699 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34700 * gst-libs/gst/vaapi/gstvaapitexture.c:
34701 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34702 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34703 * tests/test-windows.c:
34704 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
34706 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34708 * gst-libs/gst/vaapi/Makefile.am:
34709 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34710 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34711 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34712 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34713 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34714 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34715 * gst-libs/gst/vaapi/gstvaapiimage.c:
34716 * gst-libs/gst/vaapi/gstvaapiobject.c:
34717 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34718 * gst-libs/gst/vaapi/gstvaapisurface.c:
34719 * gst-libs/gst/vaapi/gstvaapitexture.c:
34720 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34721 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34722 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34723 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
34725 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34727 * gst-libs/gst/vaapi/gstvaapitexture.c:
34728 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34729 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34730 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34731 Improve handling of GL contexts.
34733 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34738 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34741 Bump version for development.
34743 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34746 * debian.upstream/Makefile.am:
34747 * debian.upstream/control.in:
34748 Rename -dev package to libgstvaapi-dev.
34750 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34756 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34758 * gst-libs/gst/vaapi/gstvaapiutils.c:
34759 Fix build with VA-API < 0.30.
34761 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34764 * gst-libs/gst/vaapi/gstvaapicompat.h:
34765 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34766 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34767 * gst-libs/gst/vaapi/gstvaapitexture.c:
34768 * tests/test-display.c:
34769 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
34771 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34773 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34774 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34775 Add TFP and FBO helpers.
34777 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34779 * gst-libs/gst/vaapi/gstvaapiutils.c:
34780 * gst-libs/gst/vaapi/gstvaapiutils.h:
34781 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
34783 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34785 * gst-libs/gst/vaapi/gstvaapitexture.c:
34786 * gst-libs/gst/vaapi/gstvaapiutils.c:
34787 * gst-libs/gst/vaapi/gstvaapiutils.h:
34788 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34789 Use a shorter function name.
34791 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34793 * docs/reference/libs/libs-sections.txt:
34794 * gst-libs/gst/vaapi/gstvaapisurface.c:
34795 * gst-libs/gst/vaapi/gstvaapisurface.h:
34796 * gst-libs/gst/vaapi/gstvaapiutils.c:
34797 * gst-libs/gst/vaapi/gstvaapiutils.h:
34798 Add gst_vaapi_surface_query_status() wrapper.
34800 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34802 * docs/reference/plugins/Makefile.am:
34803 Fix leftover during migration.
34805 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34809 * docs/reference/plugins/Makefile.am:
34811 * gst/vaapiconvert/Makefile.am:
34812 * gst/vaapiconvert/gstvaapiconvert.c:
34813 * gst/vaapiconvert/gstvaapiconvert.h:
34814 * gst/vaapisink/Makefile.am:
34815 * gst/vaapisink/gstvaapisink.c:
34816 * gst/vaapisink/gstvaapisink.h:
34817 Rename to gst/ as sys/ was too vague.
34819 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34821 * gst-libs/gst/vaapi/gstvaapiimage.c:
34822 * gst-libs/gst/vaapi/gstvaapiimage.h:
34823 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34824 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34825 * gst-libs/gst/vaapi/gstvaapisurface.c:
34826 * gst-libs/gst/vaapi/gstvaapisurface.h:
34827 Try to not reference VA-API types directly.
34829 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34831 * sys/vaapisink/gstvaapisink.c:
34832 Fix reflection code to preserve aspect ratio.
34834 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34836 * sys/vaapisink/gstvaapisink.c:
34837 * sys/vaapisink/gstvaapisink.h:
34838 Fix fullscreen mode.
34840 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34842 * sys/vaapisink/gstvaapisink.c:
34843 * sys/vaapisink/gstvaapisink.h:
34844 Add OpenGL reflection effect ("use-reflection").
34846 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34849 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34850 Use a projection suitable for rotation around the Y axis.
34852 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34855 * sys/vaapisink/Makefile.am:
34856 * sys/vaapisink/gstvaapisink.c:
34857 * sys/vaapisink/gstvaapisink.h:
34858 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
34860 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34863 * debian.upstream/Makefile.am:
34864 * debian.upstream/control.in:
34865 * debian.upstream/libgstvaapi-glx.install.in:
34866 Add libgstvaapi-glx-0 package.
34868 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34870 * pkgconfig/Makefile.am:
34871 Really fix make distclean.
34873 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34875 * docs/reference/libs/Makefile.am:
34878 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34880 * pkgconfig/Makefile.am:
34881 Fix make distclean.
34883 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34885 * tests/Makefile.am:
34888 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34890 * docs/reference/libs/Makefile.am:
34891 * docs/reference/libs/libs.core.types:
34892 * docs/reference/libs/libs.glx.types:
34893 * docs/reference/libs/libs.x11.types:
34896 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34898 * sys/vaapisink/gstvaapisink.h:
34899 Fix build without GLX.
34901 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34906 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34908 * sys/vaapisink/Makefile.am:
34909 * sys/vaapisink/gstvaapisink.c:
34910 * sys/vaapisink/gstvaapisink.h:
34911 Add VA/GLX support to vaapisink.
34913 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34915 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34916 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34917 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34918 Add glXSwapBuffers() workaround for NVIDIA.
34920 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34922 * tests/Makefile.am:
34923 * tests/test-textures.c:
34924 Improve VA/GLX textures test.
34926 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34928 * gst-libs/gst/vaapi/gstvaapitexture.c:
34929 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34930 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34931 Fix texture rendering.
34933 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34935 * docs/reference/libs/libs-docs.xml.in:
34936 * docs/reference/libs/libs-sections.txt:
34937 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34938 * gst-libs/gst/vaapi/gstvaapitexture.c:
34941 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34943 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34944 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34945 Add gst_vaapi_window_glx_put_texture() helper.
34947 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34949 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34952 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34956 * tests/test-windows.c:
34959 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34961 * gst-libs/gst/vaapi/Makefile.am:
34962 * gst-libs/gst/vaapi/gstvaapitexture.c:
34963 * gst-libs/gst/vaapi/gstvaapitexture.h:
34964 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34965 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34966 Add initial VA/GLX texture abstraction though the API is not good enough yet.
34968 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34970 * docs/reference/libs/libs-sections.txt:
34971 * gst-libs/gst/vaapi/gstvaapiobject.c:
34972 * gst-libs/gst/vaapi/gstvaapiobject.h:
34973 Add gst_vaapi_object_{,un}lock_display() helpers.
34975 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34977 * tests/Makefile.am:
34980 * tests/test-windows.c:
34981 Factor out image utilities.
34983 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34985 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34986 MT-Safe: lock display.
34988 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34990 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34991 Make sure window resize completed prior to resizing the GL viewport.
34993 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34995 * gst-libs/gst/vaapi/Makefile.am:
34996 gstvaapicompat.h is a private header, don't install it.
34998 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35000 * docs/reference/libs/libs-sections.txt:
35001 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35002 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35003 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35004 Add gst_vaapi_display_{sync,flush}() helpers.
35006 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35008 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35009 * sys/vaapisink/gstvaapisink.c:
35010 * sys/vaapisink/gstvaapisink.h:
35011 Add "synchronous" mode.
35013 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35015 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35016 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35017 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
35019 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35021 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
35022 Restore GLX context only if there is one.
35024 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35026 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
35027 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
35028 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
35029 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
35030 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
35032 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35034 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35035 Check GstVaapiWindow::render() is available prior to calling it.
35037 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35039 * tests/Makefile.am:
35040 * tests/test-display.c:
35041 * tests/test-textures.c:
35042 Add VA/GLX display tests.
35044 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35047 * gst-libs/gst/vaapi/Makefile.am:
35050 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35052 * docs/reference/libs/Makefile.am:
35053 * docs/reference/libs/libs-docs.xml.in:
35054 * docs/reference/libs/libs-sections.txt:
35055 * docs/reference/libs/libs.types:
35056 Add missing API documentation.
35058 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35061 * gst-libs/gst/vaapi/Makefile.am:
35062 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
35063 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
35064 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
35065 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
35066 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
35067 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
35068 * pkgconfig/Makefile.am:
35069 * pkgconfig/gstreamer-vaapi-glx.pc.in:
35070 * tests/Makefile.am:
35071 * tests/test-textures.c:
35072 Add initial VA/GLX support.
35074 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35076 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35077 Add missing includes (for vaapi_check_status()).
35079 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35081 * gst-libs/gst/vaapi/gstvaapidebug.h:
35082 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
35084 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35086 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35087 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35088 Add gst_vaapi_window_x11_is_foreign_xid() helper.
35090 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35092 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35093 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35094 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35095 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35096 Allow derived classes to specify custom Visual and Colormap.
35098 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35100 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35101 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35102 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35103 Allow window creation with a specific visual (e.g. for GLX support).
35105 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35107 * gst-libs/gst/vaapi/gstvaapiimage.c:
35108 Fix return value on error (though it's the same in the end).
35110 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35112 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35113 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35114 Simplify initialization of VADisplay.
35116 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35119 Move __attribute__((visibility("hidden"))) check down.
35121 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35123 * docs/reference/libs/libs-sections.txt:
35124 * gst-libs/gst/vaapi/gstvaapiimage.c:
35125 * gst-libs/gst/vaapi/gstvaapiimage.h:
35126 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35127 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35128 * gst-libs/gst/vaapi/gstvaapisurface.c:
35129 * gst-libs/gst/vaapi/gstvaapisurface.h:
35130 * tests/test-surfaces.c:
35131 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
35133 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35135 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35136 Use the parent display object, no need to maintain another one.
35137 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
35139 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35141 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35142 Add more internal helpers.
35144 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35146 * gst-libs/gst/vaapi/gstvaapiimage.c:
35147 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35148 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35149 * gst-libs/gst/vaapi/gstvaapisurface.c:
35150 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35151 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35152 Rename to GST_VAAPI_OBJECT_DISPLAY().
35154 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35156 * docs/reference/libs/libs-sections.txt:
35157 * gst-libs/gst/vaapi/gstvaapiimage.c:
35158 * gst-libs/gst/vaapi/gstvaapiobject.c:
35159 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35160 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35161 * gst-libs/gst/vaapi/gstvaapisurface.c:
35162 * gst-libs/gst/vaapi/gstvaapitypes.h:
35163 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35164 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
35166 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35168 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35169 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35170 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35171 Make GstVaapiWindow* derive from GstVaapiObject.
35173 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35176 Factor out use gstreamer-vaapi (PACKAGE name).
35178 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35181 Improve versioning summary.
35183 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35185 * gst-libs/gst/vaapi/Makefile.am:
35186 gstvaapicompat.h is now a private header (not installed).
35188 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35190 * gst-libs/gst/vaapi/gstvaapiimage.c:
35191 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35192 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35193 * gst-libs/gst/vaapi/gstvaapiobject.c:
35194 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35195 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35196 Include gstvaapicompat.h in source files only, not headers.
35198 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35201 * gst-libs/gst/vaapi/Makefile.am:
35202 * sys/vaapiconvert/Makefile.am:
35203 * sys/vaapisink/Makefile.am:
35204 * tests/Makefile.am:
35205 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
35207 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35211 * gst-libs/gst/vaapi/Makefile.am:
35212 * gst-libs/gst/vaapi/gstvaapicompat.h:
35213 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35214 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35215 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35216 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35217 * gst-libs/gst/vaapi/gstvaapisurface.c:
35218 * gst-libs/gst/vaapi/gstvaapiutils.c:
35219 * gst-libs/gst/vaapi/gstvaapiutils.h:
35220 * pkgconfig/gstreamer-vaapi-x11.pc.in:
35221 * pkgconfig/gstreamer-vaapi.pc.in:
35222 * sys/vaapiconvert/Makefile.am:
35223 * sys/vaapisink/Makefile.am:
35224 * tests/Makefile.am:
35225 Add compatibility with the original VA-API 0.29.
35227 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35229 * gst-libs/gst/vaapi/gstvaapivalue.h:
35230 Add missing file (gstvaapivalue.h).
35232 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35234 * gst-libs/gst/vaapi/gstvaapiimage.c:
35235 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35236 * gst-libs/gst/vaapi/gstvaapisurface.c:
35237 Fix g_warning() invocation.
35239 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35241 * gst-libs/gst/vaapi/gstvaapisurface.c:
35242 Deassociate subpictures while destroying the surface.
35244 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35246 * gst-libs/gst/vaapi/gstvaapisurface.c:
35247 Fix destruction order of subpictures. They should be destroyed first.
35249 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35252 * gst-libs/gst/vaapi/gstvaapiimage.c:
35253 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35254 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35255 * tests/test-windows.c:
35256 Add support for AYUV format.
35258 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35260 * tests/test-windows.c:
35261 Simplify upload process and fallback to subpictures.
35263 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35265 * docs/reference/libs/libs-docs.xml.in:
35266 * docs/reference/libs/libs-sections.txt:
35267 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35270 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35272 * gst-libs/gst/vaapi/Makefile.am:
35273 * gst-libs/gst/vaapi/gstvaapiobject.c:
35274 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35275 * gst-libs/gst/vaapi/gstvaapitypes.h:
35276 * gst-libs/gst/vaapi/gstvaapivalue.c:
35277 Move GValue specific stuff to a dedicated file.
35279 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35281 * tests/test-surfaces.c:
35282 Cosmetics (lowercase for consistency).
35284 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35286 * gst-libs/gst/vaapi/gstvaapiobject.c:
35287 Cosmetics (vertical alignment).
35289 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35291 * gst-libs/gst/vaapi/gstvaapiobject.c:
35292 Fix return value on error.
35294 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35296 * docs/reference/libs/libs-sections.txt:
35297 * gst-libs/gst/vaapi/gstvaapiimage.c:
35298 * gst-libs/gst/vaapi/gstvaapiimage.h:
35299 * gst-libs/gst/vaapi/gstvaapiobject.c:
35300 * gst-libs/gst/vaapi/gstvaapiobject.h:
35301 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35302 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35303 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35304 * gst-libs/gst/vaapi/gstvaapisurface.c:
35305 * gst-libs/gst/vaapi/gstvaapisurface.h:
35306 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35307 * tests/test-surfaces.c:
35308 Move "id" down to the GstVaapiObject base.
35310 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35312 * gst-libs/gst/vaapi/gstvaapitypes.c:
35313 Cosmetics (drop extraneous empty line).
35315 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35317 * gst-libs/gst/vaapi/Makefile.am:
35318 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35319 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
35320 Add GParamSpecs for GstVaapiID.
35322 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35324 * docs/reference/libs/libs.types:
35325 Drop gst_vaapi_id_get_type().
35327 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35329 * docs/reference/libs/libs-sections.txt:
35330 * gst-libs/gst/vaapi/gstvaapitypes.h:
35331 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
35333 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35335 * docs/reference/libs/libs-sections.txt:
35336 * docs/reference/libs/libs.types:
35337 * gst-libs/gst/vaapi/Makefile.am:
35338 * gst-libs/gst/vaapi/gstvaapitypes.c:
35339 * gst-libs/gst/vaapi/gstvaapitypes.h:
35340 Add GstVaapiID abstraction.
35342 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35344 * docs/reference/libs/libs.types:
35347 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35349 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35350 * gst-libs/gst/vaapi/gstvaapiimage.c:
35351 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35352 * gst-libs/gst/vaapi/gstvaapisurface.c:
35353 Drop useless include (<va/va_backend.h>).
35355 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35357 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35358 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
35360 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35362 * gst-libs/gst/vaapi/Makefile.am:
35363 * gst-libs/gst/vaapi/gstvaapiimage.c:
35364 * gst-libs/gst/vaapi/gstvaapiobject.c:
35365 * gst-libs/gst/vaapi/gstvaapiobject.h:
35366 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35367 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35368 * gst-libs/gst/vaapi/gstvaapisurface.c:
35369 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35370 Move private definitions and accessors to gstvaapiobject_priv.h.
35372 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35374 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35375 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35376 * gst-libs/gst/vaapi/gstvaapiimage.c:
35377 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35378 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35379 * gst-libs/gst/vaapi/gstvaapiobject.c:
35380 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35381 * gst-libs/gst/vaapi/gstvaapisurface.c:
35382 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35383 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35384 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35385 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35386 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35387 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35388 Fix short descriptions.
35390 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35394 * debian.upstream/Makefile.am:
35395 * debian.upstream/changelog.in:
35396 * debian.upstream/compat:
35397 * debian.upstream/control.in:
35398 * debian.upstream/copyright:
35399 * debian.upstream/gstreamer-vaapi-doc.install.in:
35400 * debian.upstream/gstreamer-vaapi.install.in:
35401 * debian.upstream/libgstvaapi-dev.install.in:
35402 * debian.upstream/libgstvaapi-x11.install.in:
35403 * debian.upstream/libgstvaapi.install.in:
35404 * debian.upstream/rules:
35405 Generate upstream packages through make deb.upstream.
35407 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35410 Bump version for development.
35412 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35414 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35415 Use a black background for new windows.
35417 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35422 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35425 * docs/reference/libs/libs.types:
35426 * gst-libs/gst/vaapi/Makefile.am:
35427 * gst-libs/gst/vaapi/gstvaapimarshal.list:
35428 * gst-libs/gst/vaapi/gstvaapiobject.c:
35429 * gst-libs/gst/vaapi/gstvaapiobject.h:
35430 * tests/test-surfaces.c:
35431 Add "destroy" signal.
35433 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35435 * docs/reference/libs/libs-docs.xml.in:
35436 Improve gst-plugins-vaapi Library reference template.
35438 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35440 * docs/reference/libs/libs-docs.xml.in:
35441 * docs/reference/libs/libs-sections.txt:
35442 * gst-libs/gst/vaapi/Makefile.am:
35443 * gst-libs/gst/vaapi/gstvaapiimage.c:
35444 * gst-libs/gst/vaapi/gstvaapiimage.h:
35445 * gst-libs/gst/vaapi/gstvaapiobject.c:
35446 * gst-libs/gst/vaapi/gstvaapiobject.h:
35447 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35448 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35449 * gst-libs/gst/vaapi/gstvaapisurface.c:
35450 * gst-libs/gst/vaapi/gstvaapisurface.h:
35451 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35452 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
35454 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35456 * sys/vaapisink/gstvaapisink.c:
35459 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35461 * sys/vaapisink/gstvaapisink.c:
35462 Make sure VA display is valid when created with an explicit "display" name.
35464 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35466 * sys/vaapisink/gstvaapisink.c:
35467 Use plain "display" property for the X11 display name.
35469 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35471 * sys/vaapiconvert/gstvaapiconvert.c:
35472 * sys/vaapisink/gstvaapisink.c:
35473 Document vaapiconvert & vaapisink plugins.
35475 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35478 * docs/reference/Makefile.am:
35479 * docs/reference/plugins/Makefile.am:
35480 * docs/reference/plugins/plugins-docs.xml.in:
35481 * docs/reference/plugins/plugins-overrides.txt:
35482 * docs/reference/plugins/plugins-sections.txt:
35483 * docs/reference/plugins/plugins.types:
35484 Add plugins documentation template.
35486 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35488 * sys/vaapisink/gstvaapisink.c:
35489 * sys/vaapisink/gstvaapisink.h:
35490 Don't export gst_vaapisink_get_display().
35492 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35495 * docs/reference/libs/libs-docs.xml.in:
35496 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35497 * gst-libs/gst/vaapi/gstvaapiimage.c:
35498 * gst-libs/gst/vaapi/gstvaapisurface.c:
35499 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35500 Drop introspection annotations since they require gtk-doc >= 1.12.
35502 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35504 * gst-libs/gst/vaapi/gstvaapisurface.c:
35505 Add note about the fact that the surface holds an extra reference to the subpicture.
35507 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35509 * gst-libs/gst/vaapi/gstvaapiimage.c:
35510 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35511 * gst-libs/gst/vaapi/gstvaapisurface.c:
35512 Improve debugging messages.
35514 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35516 * tests/test-windows.c:
35517 Unref subpicture earlier as the surface is supposed to hold a reference to it.
35519 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35521 * docs/reference/libs/libs-sections.txt:
35522 * gst-libs/gst/vaapi/gstvaapisurface.c:
35523 * gst-libs/gst/vaapi/gstvaapisurface.h:
35524 * tests/test-windows.c:
35525 Add gst_vaapi_surface_{,de}associate_subpicture() API.
35527 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35529 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35530 Wait for MapNotify or UnmapNotify events on foreign windows too.
35532 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35534 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35535 Check whether the foreign XID is mapped at binding time.
35537 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35539 * sys/vaapisink/gstvaapisink.c:
35540 Add missing includes.
35542 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35545 * debian/Makefile.am:
35546 * debian/control.in:
35547 * debian/gstreamer-vaapi-doc.install.in:
35551 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35553 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35554 Fix warnings (drop extraneous var).
35556 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35558 * docs/reference/libs/libs-sections.txt:
35559 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35560 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
35562 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35564 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35567 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35569 * gst-libs/gst/vaapi/Makefile.am:
35570 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35571 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35572 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35573 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35574 Try to improve switch to fullscreen mode.
35576 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35578 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35579 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35580 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35581 Improve display locking and rework X event wait functions.
35583 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35585 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35586 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35587 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
35589 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35591 * gst-libs/gst/vaapi/Makefile.am:
35592 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35593 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35594 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.
35596 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35598 * docs/reference/libs/libs-sections.txt:
35599 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35600 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35601 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
35603 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35605 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35606 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35607 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35608 Add gst_vaapi_window_get_display() to base.
35610 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35612 * docs/reference/libs/libs-docs.xml.in:
35613 * docs/reference/libs/libs-sections.txt:
35614 * gst-libs/gst/vaapi/Makefile.am:
35615 * gst-libs/gst/vaapi/gstvaapitypes.h:
35616 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35617 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35618 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35619 * sys/vaapisink/gstvaapisink.c:
35620 * sys/vaapisink/gstvaapisink.h:
35621 Add GstVaapiPoint & GstVaapiRectangle data structures.
35623 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35628 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35631 * sys/vaapisink/gstvaapisink.c:
35632 * sys/vaapisink/gstvaapisink.h:
35633 Allow `vaapisink` to render videos in fullscreen mode.
35635 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35637 * docs/reference/libs/libs-sections.txt:
35638 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35639 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35640 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35641 Add gst_vaapi_window_set_fullscreen() API.
35643 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35645 * sys/vaapisink/gstvaapisink.c:
35646 Size window so that to respect the video and pixel aspect ratio.
35648 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35650 * docs/reference/libs/libs-sections.txt:
35651 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35652 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35653 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35654 * tests/test-display.c:
35655 Add gst_vaapi_display_get_pixel_aspect_ratio().
35657 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35659 * docs/reference/libs/libs-sections.txt:
35662 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35664 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35665 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35666 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35667 * tests/test-display.c:
35668 Add display size accessors.
35670 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35673 * debian/control.in:
35674 Build-Requires: gstreamer-plugins-base >= 0.10.16.
35676 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35678 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35679 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35680 * gst-libs/gst/vaapi/gstvaapiimage.h:
35681 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35682 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35683 * gst-libs/gst/vaapi/gstvaapisurface.h:
35684 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35685 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35686 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35687 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35688 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35689 Fix documentation of *Class'es.
35691 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35693 * gst-libs/gst/vaapi/gstvaapiutils.c:
35694 * gst-libs/gst/vaapi/gstvaapiutils.h:
35695 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35696 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
35698 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35700 * docs/reference/libs/libs-sections.txt:
35701 * gst-libs/gst/vaapi/gstvaapisurface.h:
35702 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35703 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
35705 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35707 * docs/reference/libs/libs-sections.txt:
35708 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35709 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35710 * sys/vaapisink/gstvaapisink.c:
35711 * tests/test-windows.c:
35712 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
35714 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35716 * docs/reference/libs/Makefile.am:
35717 Fix make dist for --enable-gtk-doc builds.
35719 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35722 Improve autogen.sh.
35724 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35728 Generate gtk-doc.make from gtkdocize.
35730 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35735 * docs/Makefile.am:
35736 * docs/reference/Makefile.am:
35737 * docs/reference/libs/Makefile.am:
35738 * docs/reference/libs/libs-docs.xml.in:
35739 * docs/reference/libs/libs-overrides.txt:
35740 * docs/reference/libs/libs-sections.txt:
35741 * docs/reference/libs/libs.types:
35742 Document public API for libgstvaapi-*.so.*.
35744 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35746 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35747 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35748 Document GstVaapiVideoBuffer.
35750 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35752 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35753 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35754 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35755 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35756 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35757 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35758 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
35760 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35762 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35763 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35764 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35765 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35766 * gst-libs/gst/vaapi/gstvaapiimage.c:
35767 * gst-libs/gst/vaapi/gstvaapiimage.h:
35768 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35769 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35770 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35771 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35772 * gst-libs/gst/vaapi/gstvaapisurface.c:
35773 * gst-libs/gst/vaapi/gstvaapisurface.h:
35774 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35775 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35776 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35777 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35778 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35779 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35780 Add tedious documentation.
35782 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35784 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35785 Beautify append_formats().
35787 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35789 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35790 Simplify GstVaapiDisplay (use GArray).
35792 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35795 * sys/vaapiconvert/gstvaapiconvert.c:
35796 * sys/vaapiconvert/gstvaapiconvert.h:
35797 Factor out direct-rendering infrastructure.
35799 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35801 * sys/vaapiconvert/gstvaapiconvert.c:
35802 * sys/vaapiconvert/gstvaapiconvert.h:
35803 Allow user to specify inout-buffers & derive-image optimizations.
35805 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35807 * sys/vaapiconvert/gstvaapiconvert.c:
35808 Reduce number of debug messaged printed out.
35810 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35812 * sys/vaapiconvert/gstvaapiconvert.c:
35813 * sys/vaapiconvert/gstvaapiconvert.h:
35814 Add vaDeriveImage() optimization.
35816 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35818 * gst-libs/gst/vaapi/gstvaapiimage.c:
35819 Fix gst_vaapi_image_create() from a foreign VA image.
35821 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35823 * gst-libs/gst/vaapi/gstvaapiimage.c:
35824 * gst-libs/gst/vaapi/gstvaapiimage.h:
35825 * gst-libs/gst/vaapi/gstvaapisurface.c:
35826 * gst-libs/gst/vaapi/gstvaapisurface.h:
35827 Add gst_vaapi_surface_derive_image() API.
35829 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35831 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35832 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35833 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35834 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().
35836 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35838 * tests/test-windows.c:
35839 Try YV12 & I420 image formats too.
35841 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35843 * gst-libs/gst/vaapi/gstvaapiimage.c:
35844 Split map/unmap functions into internal functions that don't check preconditions.
35846 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35848 * gst-libs/gst/vaapi/gstvaapiimage.c:
35849 Improve gst_vaapi_image_new() sanity checks.
35851 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35853 * tests/test-windows.c:
35856 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35858 * sys/vaapiconvert/gstvaapiconvert.c:
35859 Check if our inout buffer is still alive or default to a separate output buffer.
35861 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35863 * sys/vaapiconvert/gstvaapiconvert.c:
35864 * sys/vaapiconvert/gstvaapiconvert.h:
35865 Factor out buffers negotiation and optimization checks.
35867 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35869 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35870 * gst-libs/gst/vaapi/gstvaapiimage.c:
35871 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35872 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35873 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35874 * sys/vaapiconvert/gstvaapiconvert.h:
35877 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35879 * gst-libs/gst/vaapi/gstvaapiimage.c:
35880 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
35882 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35884 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35885 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35886 * gst-libs/gst/vaapi/gstvaapiimage.c:
35887 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35888 * gst-libs/gst/vaapi/gstvaapisurface.c:
35889 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35890 Add VA display locking utilities.
35892 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35894 * sys/vaapisink/gstvaapisink.c:
35895 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
35897 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35899 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35900 * tests/test-windows.c:
35901 Don't show window by default during creation.
35903 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35905 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35906 Fix gst_vaapi_window_x11_destroy().
35908 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35910 * sys/vaapiconvert/gstvaapiconvert.c:
35911 * sys/vaapiconvert/gstvaapiconvert.h:
35912 Alias sink & src pad buffers whenever possible.
35914 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35916 * gst-libs/gst/vaapi/gstvaapiimage.c:
35917 * gst-libs/gst/vaapi/gstvaapiimage.h:
35918 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
35920 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35922 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35923 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35924 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
35926 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35928 * sys/vaapiconvert/gstvaapiconvert.c:
35929 Fix image & surface size cache.
35931 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35934 Move gstreamer-vaapi package versioning to the top.
35936 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35939 Bump version for development.
35941 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35944 Cosmetics (shorten lines).
35946 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35952 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35954 * debian/Makefile.am:
35955 * debian/changelog.in:
35957 * debian/control.in:
35958 * debian/copyright:
35959 * debian/gstreamer-vaapi.install.in:
35960 * debian/libgstvaapi-dev.install.in:
35961 * debian/libgstvaapi-x11.install.in:
35962 * debian/libgstvaapi.install.in:
35964 Add debian packaging.
35966 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35970 Add debian packaging.
35972 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35974 * pkgconfig/Makefile.am:
35975 Silence GNU make extensions warning.
35977 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35980 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'
35982 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35986 * pkgconfig/Makefile.am:
35987 * pkgconfig/gstreamer-vaapi-x11.pc.in:
35988 * pkgconfig/gstreamer-vaapi.pc.in:
35989 Add pkgconfig files.
35991 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35994 * gst-libs/gst/vaapi/Makefile.am:
35995 * sys/vaapisink/Makefile.am:
35996 * tests/Makefile.am:
35997 Split X11 support to libgstvaapi-x11-*.so.*
35999 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36001 * gst-libs/gst/vaapi/Makefile.am:
36002 Don't install private headers.
36004 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36006 * gst-libs/gst/vaapi/gstvaapidebug.h:
36007 * gst-libs/gst/vaapi/gstvaapiutils.c:
36008 * gst-libs/gst/vaapi/gstvaapiutils.h:
36011 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36013 * gst-libs/gst/vaapi/Makefile.am:
36014 * gst-libs/gst/vaapi/gstvaapidebug.h:
36015 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36016 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36017 * gst-libs/gst/vaapi/gstvaapiimage.c:
36018 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
36019 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36020 * gst-libs/gst/vaapi/gstvaapisurface.c:
36021 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
36022 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
36023 * gst-libs/gst/vaapi/gstvaapivideopool.c:
36024 * gst-libs/gst/vaapi/gstvaapiwindow.c:
36025 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36026 Rename vaapi_debug.h to gstvaapidebug.h.
36028 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36030 * gst-libs/gst/vaapi/Makefile.am:
36031 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36032 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36033 * gst-libs/gst/vaapi/gstvaapiimage.c:
36034 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36035 * gst-libs/gst/vaapi/gstvaapisurface.c:
36036 * gst-libs/gst/vaapi/gstvaapiutils.c:
36037 * gst-libs/gst/vaapi/gstvaapiutils.h:
36038 * gst-libs/gst/vaapi/vaapi_debug.h:
36039 Move vaapi_utils.* to gstvaapiutils.*
36041 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36043 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
36044 Cosmetics (remove an extra line).
36046 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36048 * gst-libs/gst/vaapi/Makefile.am:
36049 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
36050 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
36051 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36052 Move X11 utilties to gstvaapiutils_x11.[ch].
36054 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36056 * gst-libs/gst/vaapi/Makefile.am:
36057 * gst-libs/gst/vaapi/gstvaapivideosink.c:
36058 * gst-libs/gst/vaapi/gstvaapivideosink.h:
36059 * sys/vaapiconvert/gstvaapiconvert.c:
36060 * sys/vaapisink/gstvaapisink.c:
36061 Rename GstVaapiSinkBase to GstVaapiVideoSink.
36063 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36066 * tests/Makefile.am:
36067 * tests/examples/Makefile.am:
36068 * tests/examples/generic/Makefile.am:
36069 * tests/test-display.c:
36070 * tests/test-surfaces.c:
36071 * tests/test-windows.c:
36072 Move tests to top-level tests/ directory.
36074 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36076 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36077 * gst-libs/gst/vaapi/gstvaapiimage.c:
36078 * sys/vaapiconvert/gstvaapiconvert.c:
36079 * sys/vaapiconvert/gstvaapiconvert.h:
36080 Handle I420 formats internally in GstVaapiImage.
36082 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36084 * sys/vaapiconvert/gstvaapiconvert.c:
36085 * sys/vaapiconvert/gstvaapiconvert.h:
36086 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
36088 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36090 * gst-libs/gst/vaapi/gstvaapiimage.c:
36091 Implement I420 and YV12 if the underlying implementation does not.
36093 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36095 * sys/vaapiconvert/Makefile.am:
36096 * sys/vaapiconvert/gstvaapiconvert.c:
36097 * sys/vaapiconvert/gstvaapiconvert.h:
36098 Add initial vaapiconvert plugin.
36100 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36102 * sys/vaapisink/gstvaapisink.c:
36103 * sys/vaapisink/gstvaapisink.h:
36106 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36108 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36111 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36113 * tests/examples/generic/test-windows.c:
36114 Generate R/G/B rects.
36116 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36118 * gst-libs/gst/vaapi/gstvaapisurface.c:
36119 * gst-libs/gst/vaapi/gstvaapisurface.h:
36120 Add gst_vaapi_surface_sync().
36122 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36124 * gst-libs/gst/vaapi/gstvaapiimage.c:
36125 Cosmetics (reverse args order).
36127 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36129 * gst-libs/gst/vaapi/gstvaapiimage.c:
36130 * gst-libs/gst/vaapi/gstvaapiimage.h:
36131 * gst-libs/gst/vaapi/gstvaapisurface.c:
36134 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36136 * gst-libs/gst/vaapi/Makefile.am:
36137 * gst-libs/gst/vaapi/gstvaapiwindow.c:
36138 * gst-libs/gst/vaapi/gstvaapiwindow.h:
36139 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
36140 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
36141 * tests/examples/generic/Makefile.am:
36142 * tests/examples/generic/test-windows.c:
36143 Add VA/X11 window abstraction.
36145 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36147 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36148 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36149 Add VA and X11 display accessors.
36151 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36153 * gst-libs/gst/vaapi/gstvaapiimage.c:
36156 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36158 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36161 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36163 * gst-libs/gst/vaapi/gstvaapiimage.c:
36164 * gst-libs/gst/vaapi/gstvaapiimage.h:
36165 * gst-libs/gst/vaapi/gstvaapisurface.c:
36166 * gst-libs/gst/vaapi/gstvaapisurface.h:
36167 Add gst_vaapi_{get,put}_image() API.
36169 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36171 * gst-libs/gst/vaapi/gstvaapiimage.c:
36172 * gst-libs/gst/vaapi/gstvaapiimage.h:
36173 Add gst_vaapi_image_update_from_buffer() helper.
36175 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36177 * sys/vaapisink/Makefile.am:
36178 * sys/vaapisink/gstvaapisink.c:
36179 * sys/vaapisink/gstvaapisink.h:
36180 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
36182 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36184 * tests/examples/generic/Makefile.am:
36185 * tests/examples/generic/test-surfaces.c:
36188 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36190 * gst-libs/gst/vaapi/Makefile.am:
36191 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
36192 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
36193 Add basic GstVaapiVideoBuffer.
36195 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36197 * gst-libs/gst/vaapi/Makefile.am:
36198 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
36199 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
36200 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
36201 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
36202 * gst-libs/gst/vaapi/gstvaapivideopool.c:
36203 * gst-libs/gst/vaapi/gstvaapivideopool.h:
36204 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
36206 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36208 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36209 Simplify format conversion code.
36211 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36213 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36214 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36215 Add gst_vaapi_image_format_from_caps() helper.
36217 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36219 * gst-libs/gst/vaapi/Makefile.am:
36220 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
36221 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
36222 Add VA surface pool (lazy allocator).
36224 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36226 * gst-libs/gst/vaapi/gstvaapisurface.c:
36227 * gst-libs/gst/vaapi/gstvaapisurface.h:
36228 Add gst_vaapi_surface_get_size() helper.
36230 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36232 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36233 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
36235 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36237 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36238 Reset display-name if the user provided his own X11 display.
36240 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36242 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36243 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36244 * tests/examples/generic/test-display.c:
36245 Add gst_vaapi_display_x11_new_with_display() API.
36247 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36249 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36250 * gst-libs/gst/vaapi/gstvaapiimage.h:
36251 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36252 * gst-libs/gst/vaapi/gstvaapisurface.h:
36253 Fix *_GET_CLASS() definitions...
36255 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36257 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36258 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36259 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36260 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36261 * tests/examples/generic/test-display.c:
36262 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
36264 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36266 * gst-libs/gst/vaapi/gstvaapisurface.c:
36267 * gst-libs/gst/vaapi/gstvaapisurface.h:
36268 Use GstVaapiChromaType abstraction.
36270 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36272 * gst-libs/gst/vaapi/gstvaapiimage.c:
36273 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36274 * gst-libs/gst/vaapi/gstvaapisurface.c:
36275 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
36277 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36279 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36280 Don't warn on failure, just return an appropriate error or value.
36282 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36284 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36285 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36286 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36287 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
36289 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36291 * gst-libs/gst/vaapi/Makefile.am:
36292 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
36293 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
36294 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
36296 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36298 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36299 * gst-libs/gst/vaapi/gstvaapiimage.c:
36300 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36301 * gst-libs/gst/vaapi/gstvaapisurface.c:
36302 * gst-libs/gst/vaapi/vaapi_debug.h:
36305 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36307 * gst-libs/gst/vaapi/gstvaapiimage.c:
36308 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36309 Fix GstVaapiImage and GstVaapiSubpicture initialization.
36311 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36313 * gst-libs/gst/vaapi/gstvaapisurface.c:
36314 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
36316 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36318 * tests/examples/generic/test-display.c:
36321 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36323 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36324 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36325 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36326 Fix GstVaapiDisplay initialization.
36328 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36330 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36331 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36332 Get VA image & subpicture formats as GstCaps.
36334 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36336 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36337 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36338 Add helper to convert from GstVaapiImageFormat to GstCaps.
36340 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36342 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36343 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36344 * gst-libs/gst/vaapi/gstvaapisurface.c:
36345 Cosmetics (drop unused variables).
36347 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36350 * sys/vaapiconvert/Makefile.am:
36351 * sys/vaapiconvert/gstvaapiconvert.c:
36352 * sys/vaapiconvert/gstvaapiconvert.h:
36353 * sys/vaapisink/Makefile.am:
36354 * sys/vaapisink/gstvaapisink.c:
36355 * sys/vaapisink/gstvaapisink.h:
36356 Add boilerplate for vaapiconvert and vaapisink elements.
36358 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36362 * sys/vaapiconvert/Makefile.am:
36363 Add vaapiconvert element hierarchy.
36365 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36367 * sys/vaapisink/Makefile.am:
36368 Rename to vaapisink.
36370 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36372 * gst-libs/gst/vaapi/gstvaapisurface.c:
36373 Shorter code (and more correct).
36375 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36377 * gst-libs/gst/vaapi/gstvaapisurface.c:
36378 * gst-libs/gst/vaapi/gstvaapisurface.h:
36379 Add helper to get GstVaapiDisplay from a surface.
36381 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36383 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36384 Fix subpicture formats list length.
36386 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36388 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36389 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36390 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
36392 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36394 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36395 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36396 Cosmetics (more checks, includes).
36398 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36400 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36401 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36402 Really add VA subpicture abstraction.
36404 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36406 * gst-libs/gst/vaapi/Makefile.am:
36407 * gst-libs/gst/vaapi/gstvaapiimage.c:
36408 * gst-libs/gst/vaapi/gstvaapiimage.h:
36409 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36410 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36411 * gst-libs/gst/vaapi/gstvaapisurface.c:
36412 * gst-libs/gst/vaapi/gstvaapisurface.h:
36413 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
36415 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36418 * gst-libs/gst/vaapi/Makefile.am:
36419 * gst-libs/gst/vaapi/gstvaapidisplay.c:
36420 * gst-libs/gst/vaapi/gstvaapidisplay.h:
36421 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36422 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36423 * gst-libs/gst/vaapi/vaapi_debug.h:
36424 * gst-libs/gst/vaapi/vaapi_utils.c:
36425 * gst-libs/gst/vaapi/vaapi_utils.h:
36426 * tests/examples/generic/Makefile.am:
36427 * tests/examples/generic/test-display.c:
36428 Add initial VA display abstraction.
36430 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36434 * tests/Makefile.am:
36435 * tests/examples/Makefile.am:
36436 * tests/examples/generic/Makefile.am:
36437 Add tests infrastructure.
36439 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36442 Clean up VA-API checks.
36444 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36447 Check for __attribute__((visibility("hidden"))).