summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2020-06-19 19:27:11 +0100
committerTim-Philipp Müller <tim@centricular.com>2020-06-19 19:27:13 +0100
commit41bf465196836158b8eb797c055093315f1bf9bd (patch)
tree7f893bd02d96df8280eb8273dc075d93fa2cc8c0 /ChangeLog
parentbf7d4bda494dd51cd22ffadcd9dcfda3cdb77305 (diff)
Release 1.17.11.17.1
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog3869
1 files changed, 3817 insertions, 52 deletions
diff --git a/ChangeLog b/ChangeLog
index 10889028..92a037ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,3820 @@
+=== release 1.17.1 ===
+
+2020-06-19 19:27:11 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * gstreamer-vaapi.doap:
+ * meson.build:
+ Release 1.17.1
+
+2020-06-19 15:21:56 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ Update plugin docs and add more plugins
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
+
+2020-06-11 08:32:05 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
+ libs: wayland: display: only handle the first output
+ Right now, all outputs are handled. The means that the registry object for
+ all but the last are leaked. As a result the sizes are not used correctly.
+ With two outputs, at first the mode and physical size of the second output
+ are used. If the first output changes the mode, then the physical size of
+ the second output is used in combination with the resolution of the first
+ output. The resulting pixel aspect ratio is incorrect.
+ There seems to be no way to determine on which output the window is shown,
+ so just use the first one to get consistent results.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
+
+2020-06-11 18:15:17 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapipluginbase.c:
+ plugins: pluginbase: Do not destroy display when _close()
+ When the element's state changes to NULL, it can still receive
+ queries, such as the image formats. The display is needed in such
+ queries but not well protected for MT safe.
+ For example, ensure_allowed_raw_caps() may still use the display
+ while it is disposed by gst_vaapi_plugin_base_close() because of
+ the state change.
+ We can keep the display until the element is destroyed. When the
+ state changes to NULL, and then changes to PAUSED again, the display
+ can be correctly set(if type changes), or leave untouched.
+ Fix: #260
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
+
+2020-06-09 21:19:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ libs: context: use correct printing modifier
+ GstVaapiID is an alias of gsize, thus its modifier is platform
+ dependant.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
+
+2020-06-06 00:42:46 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapivalue.c:
+ plugins: uddate gst_type_mark_as_plugin_api() calls
+
+2020-03-05 18:12:27 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: h265: Enable tile in VA command.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
+
+2020-03-05 17:56:51 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: h265: Add ensure_tile to calculate tiles.
+ We need consider tiles and slices together, separate tiles uniformly
+ and then assign slices uniformly to each tiles.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
+
+2020-04-30 14:19:29 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapidisplay.h:
+ libs: display: add a quirk for iHD driver tile encoding.
+ The iHD driver has a requirement that one slice can not span tiles
+ when tile is enabled, which is not required by hevc spec.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
+
+2020-03-05 17:40:43 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: h265: Add tile info to bitstream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
+
+2020-03-05 17:29:41 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: h265: promote level if tile is enabled.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
+
+2020-03-05 17:07:28 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
+ libs: encoder: h265: Add num-tile-cols/rows properties.
+ These properties are used for support of tile encoding. We just
+ support uniform mode of tile encoding, that is, separating picture
+ equally by (num-tile-cols X num-tile-rows).
+ According to HEVC spec A1, the max number of tiles in column is 20
+ and in rows is 22, so add two constant definitions.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
+
+2020-03-05 16:21:24 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: h265: extract slice creation from add_slice_headers
+ extract slice creation details from add_slice_headers, and let the
+ add_slice_headers just focuses on calculating slice start address
+ and CTU number.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
+
+2020-03-05 12:44:45 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
+ libs: encoder: Add a helper function to check the tile support.
+ Encoding by tiles separation now is a very common feature for all
+ relative new codecs, such as HEVC, AV1, and VP9. Just make this
+ check as a common helper function of the encoder base class.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
+
+2020-05-13 18:02:07 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiprofile.c:
+ * gst-libs/gst/vaapi/gstvaapiprofile.h:
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
+ libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
+
+2020-05-13 16:05:59 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ libs: decoder: update reference list for SCC.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
+
+2020-05-13 15:46:29 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ libs: decoder: H265: Fill picture and slice SCC parameters.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
+
+2020-05-13 15:00:53 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
+ libs: util: H265: recognize the SCC profiles.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
+
+2020-05-13 14:53:46 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiprofile.c:
+ * gst-libs/gst/vaapi/gstvaapiprofile.h:
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: profile: Add screen extended main/main10/main444 define.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
+
+2020-04-03 14:53:40 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
+ * gst/vaapi/gstvaapiencode_h265.c:
+ libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
+ Using YUY2 as the input of the encoder can generate main 4:2:2 bit
+ streams and using Y210 as the input of the encoder can generate main
+ 4:2:2 10 bit streams.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
+
+2020-05-29 16:40:20 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
+ We need to use the chroma_format_idc as the index for getting the
+ SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
+ The wrong SubWidthC or SubHeightC make us calculate a wrong right
+ or bottom offset for crop size and generate garbage in output.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
+
+2020-05-29 15:37:24 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
+ libs: encoder: h265: Fix chrome idc for 444 10 bits
+ GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
+ to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
+
+2020-06-03 18:37:22 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/meson.build:
+ doc: Require hotdoc >= 0.11.0
+
+2020-06-03 18:49:53 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ doc: Fix wrong link to GstVideoDirectionMethod
+
+2020-06-03 17:38:10 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/gst_plugins_cache.json:
+ * meson_options.txt:
+ docs: Update plugin cache with the new format
+ And fix the default URL which should not be inside quotes.
+
+2020-06-03 17:37:48 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapivalue.c:
+ * gst/vaapi/gstvaapipostproc.c:
+ Use gst_type_mark_as_plugin_api() for all non-element plugin types
+
+2020-05-23 22:09:17 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
+ * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
+ * gst-libs/gst/vaapi/gstvaapicontext.h:
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
+ * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
+ * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
+ * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
+ * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
+ * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
+ * gst-libs/gst/vaapi/gstvaapiimage.h:
+ * gst-libs/gst/vaapi/gstvaapiobject.c:
+ * gst-libs/gst/vaapi/gstvaapiobject.h:
+ * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
+ * gst-libs/gst/vaapi/gstvaapiprofile.h:
+ * gst-libs/gst/vaapi/gstvaapisubpicture.c:
+ * gst-libs/gst/vaapi/gstvaapisubpicture.h:
+ * gst-libs/gst/vaapi/gstvaapisurface.h:
+ * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
+ * gst-libs/gst/vaapi/gstvaapivideopool.c:
+ * gst-libs/gst/vaapi/meson.build:
+ libs: delete all gstvaapiobject related files.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
+
+2020-05-23 20:48:54 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ libs: surface: return fail immediately if can not create subpicture
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
+
+2020-05-23 14:00:58 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapisubpicture.c:
+ * gst-libs/gst/vaapi/gstvaapisubpicture.h:
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ * tests/internal/image.c:
+ libs: subpicture: Make subpicture a standard GstMiniObject.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
+
+2020-05-26 02:19:15 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ libs: decoder: h264: Add ref flags for splited field.
+ When split one frame into fields, the second field should also
+ copy the reference flags.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
+
+2020-05-25 15:46:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ libs: decoder: h264: disallow multiple slice group
+ As far as we know there are no VAAPI drivers supporting FMO, which
+ migth be used in baseline streams.
+ This commit is a continuation of
+ https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
+
+2020-05-20 10:50:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
+ * gst/vaapi/gstvaapidecode.c:
+ * gst/vaapi/gstvaapidecode_props.c:
+ * gst/vaapi/gstvaapidecode_props.h:
+ vaapidecoder: h264: remove baseline as constrained property
+ From now on always the baseline is going to be treated as constrained without
+ need of setting a property.
+ Since the property was added along the development cycle (1.17 / commit
+ 866a9f06) and never released, we assume that it is safe to remove it.
+ Fixes: #252
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
+
+2020-05-21 11:37:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * README:
+ README: update VP9 decoder and encoder
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
+
+2020-05-21 13:42:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
+ This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
+ so let's align this plugin with other libraries / softwares.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
+
+2020-05-18 18:29:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ vaapivideobufferpool: fix meta overwrite
+ commit 7ac2a207 added a regression by erroneously assumed that
+ GstVaapiVideoMeta is actually a GstMeta, which is not.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
+
+2020-05-17 09:55:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ * gst/vaapi/gstvaapivideometa_texture.c:
+ * gst/vaapi/gstvaapivideometa_texture.h:
+ vaapivideopool: Set pooled flag to added metas.
+ So this could hint filters how to use these metas.
+ Had to change the return value for texutre upload meta in order
+ to flag it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
+
+2020-05-16 20:49:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
+ * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ libs: use array_unref() rather than array_free()
+ It is more convinience and thread-safe.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
+
+2020-04-10 22:20:35 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapi.c:
+ plugin: use register_type to replace get_type for encode init.
+ xxx_register_type will detect the template sink caps and is needed
+ to be called at init time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
+
+2020-04-10 22:05:50 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode_vp9.c:
+ * gst/vaapi/gstvaapiencode_vp9.h:
+ plugins: encode: Modify sink template of vp9 encode.
+ Use gst_vaapi_detect_codec_caps to get more precise template caps.
+ Also implement gst_vaapiencode_vp9_register_type, which should be
+ called at plugin register time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
+
+2020-04-10 22:05:18 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode_vp8.c:
+ * gst/vaapi/gstvaapiencode_vp8.h:
+ plugins: encode: Modify sink template of vp8 encode.
+ Use gst_vaapi_detect_codec_caps to get more precise template caps.
+ Also implement gst_vaapiencode_vp8_register_type, which should be
+ called at plugin register time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
+
+2020-04-10 22:04:34 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode_mpeg2.c:
+ * gst/vaapi/gstvaapiencode_mpeg2.h:
+ plugins: encode: Modify sink template of mpeg2 encode.
+ Use gst_vaapi_detect_codec_caps to get more precise template caps.
+ Also implement gst_vaapiencode_mpeg2_register_type, which should be
+ called at plugin register time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
+
+2020-04-10 22:03:49 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode_h265.c:
+ * gst/vaapi/gstvaapiencode_h265.h:
+ plugins: encode: Modify sink template of h265 encode.
+ Use gst_vaapi_detect_codec_caps to get more precise template caps.
+ Also implement gst_vaapiencode_h265_register_type, which should be
+ called at plugin register time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
+
+2020-04-10 22:00:38 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ * gst/vaapi/gstvaapiencode_h264.h:
+ plugins: encode: Modify sink template of h264 encode.
+ Use gst_vaapi_detect_codec_caps to get more precise template caps.
+ Also implement gst_vaapiencode_h264_register_type, which should be
+ called at plugin register time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
+
+2020-04-10 22:11:34 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode_jpeg.c:
+ * gst/vaapi/gstvaapiencode_jpeg.h:
+ plugins: encode: Modify sink template of jpeg encode.
+ Use gst_vaapi_detect_codec_caps to get more precise template caps.
+ Also implement gst_vaapiencode_jpeg_register_type, which should be
+ called at plugin register time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
+
+2020-04-23 00:02:02 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode.h:
+ plugin: encode: add a helper macro to register encode type.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
+
+2020-04-10 21:44:05 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapipluginutil.c:
+ * gst/vaapi/gstvaapipluginutil.h:
+ plugins: util: Add a helper function to detect supported caps.
+ This helper function iterate all profiles and entrypoints belong
+ to the specified codec, query the VAConfigAttribRTFormat and list
+ all possible video formats.
+ This function is used by each codec to get the template sink caps
+ (for encode) or src caps(for decode) at register time, when just
+ all possible formats are listed and no need to be very accurate.
+ So there is no context created for the performance reason. Most
+ codecs just use YUV kinds of formats as the input/output, so we do
+ not include RGB kinds of formats. User can specified more formats
+ in extra_fmts(For example, jpeg may need BGRA) if needed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
+
+2020-04-10 21:27:32 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode.c:
+ * gst/vaapi/gstvaapipluginutil.c:
+ * gst/vaapi/gstvaapipluginutil.h:
+ plugin: encode: extract the allowed caps maker as a helper function.
+ Extract all logic about making caps for encode's sink as a standalone
+ helper function. It can be reused.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
+
+2020-04-10 21:21:43 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/video-format.c:
+ * gst-libs/gst/vaapi/video-format.h:
+ libs: video-format: add a helper function of get_formats_by_chroma.
+ The function iterates all supported video formats and returns the
+ formats belong to the specified chroma type.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
+
+2020-05-16 21:03:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapitexture.c:
+ * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
+ libs: texture: remove unused headers include
+ This is continuation of
+ https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
+
+2020-05-16 19:58:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
+ * gst-libs/gst/vaapi/gstvaapiimage.h:
+ * gst-libs/gst/vaapi/gstvaapisurface.h:
+ libs: removed duplicated function declarations
+ Some headers had duplicated inlined function declaration. This was
+ for gtkdoc, but now GStreamer uses hotdoc and the internal library
+ documentation is not generated. So let's remove these extra lines.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
+
+2020-04-18 19:32:24 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapitexture.c:
+ * gst-libs/gst/vaapi/gstvaapitexture.h:
+ * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
+ * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
+ * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
+ * gst-libs/gst/vaapi/gstvaapitexturemap.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
+ * gst/vaapi/gstvaapivideometa_texture.c:
+ * tests/internal/test-textures.c:
+ libs: texture: Make texture a standard GstMiniObject.
+ We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
+ the qdata of miniobject and avoid extending the base texture class.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
+
+2020-04-26 12:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * README:
+ Update README
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
+
+2020-04-21 18:00:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
+ libs: display: drm: use g_strcmp0 to be null safe
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
+
+2020-04-26 13:30:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * gst/vaapi/gstvaapipluginutil.c:
+ vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
+ We may build this plugin with window system support but run it without
+ window system. Without this patch, the following pipeline will trigger a
+ segfault when running it without window system.
+ gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
+
+2020-04-21 11:16:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * meson.build:
+ build: use join_paths() for driverdir
+
+2020-04-21 09:04:51 +0000 Veerabadhran G <vegopala@amd.com>
+
+ * README:
+ README: Update supported hardware
+ Added the AMD hardware list to the "Hardware Requirements" section.
+
+2020-04-04 13:58:00 +0200 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
+ * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
+ * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
+ libs: bufferproxy: remove GstMemory reference
+ Since bufferproxy and surface are not referenced circularly, there's
+ no need to keep, in the buffer proxy, a reference to the GstMemory
+ where it is held. This patch removes that handling.
+
+2020-03-15 23:29:05 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
+ * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
+ * gst/vaapi/gstvaapivideomemory.c:
+ libs,plugin: break surface-bufferproxy circular reference
+ The bufferproxy may reference the surface and the surface may also
+ reference the bufferproxy, producing a circular reference, which might
+ lead to serious resource leak problems.
+ Now make the relationship clearer, the bufferproxy's references is
+ transfered to surface, while bufferproxy just keeps the surface's
+ address without increasing its reference count.
+ The surface can be created through a bufferproxy like in
+ gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
+ get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
+ both cases the surface holds a bufferproxy's reference.
+
+2020-04-03 18:43:52 +0200 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
+ * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
+ * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
+ libs: bufferproxy: rename parent memeber as surface
+
+2020-03-15 22:07:31 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ plugin: bufferpool: use hashmap to cache dmabuf mem-surface
+ The old way of refer memory by bufferproxy is not a good one, since it
+ make the logic error prone.
+ Now it is established a map between surface-bufferproxy and its GstMemory,
+ caching the memory bound by a surface looked for the specified surface.
+
+2020-03-15 21:50:24 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ * gst/vaapi/gstvaapivideobufferpool.h:
+ plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
+ Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
+ In fact, no one is using that flag, and all vaapi buffers should
+ have GstVaapiVideoMeta.
+
+2020-02-13 09:43:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ * gst/vaapi/gstvaapipostproc.h:
+ vaapipostproc: enable HDR10 tone mapping
+
+2020-02-13 09:00:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapifilter.h:
+ libs: filter: HDR10 tone mapping support
+ Add support for HDR10 tone mapping (since VA-API 1.4.0).
+
+2020-04-02 15:14:15 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiprofile.c:
+ * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
+ * gst/vaapi/gstvaapiencode_h265.c:
+ libs: encoder: h265: Support MAIN 4:4:4 10 profile.
+ Using Y410 as the input of the encoder can generate main_444_10 bit
+ streams.
+
+2020-04-02 15:19:41 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ libs: encoder: fix an inexact trace info in chroma type check.
+
+2020-03-31 12:22:31 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ libs: encoder: make sure format array is not NULL when returning TRUE
+ This fixed segfault when running the pipeline below with iHD driver
+ (commit efe5e9a) on ICL
+ gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
+ fakesink
+
+2020-03-18 13:28:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder.h:
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
+ * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
+ * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
+ * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
+ * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
+ * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
+ * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
+ * gst-libs/gst/vaapi/gstvaapidisplay.h:
+ * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
+ * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
+ * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
+ * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
+ * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
+ * gst-libs/gst/vaapi/gstvaapifilter.h:
+ * gst-libs/gst/vaapi/gstvaapitexturemap.h:
+ * gst-libs/gst/vaapi/gstvaapiwindow.h:
+ * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
+ * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
+ * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
+ * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
+ * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
+ libs: extend g_autoptr support
+
+2020-03-26 22:40:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideometa.c:
+ vaapivideometa: remove compiler warning
+
+2020-03-22 20:59:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * meson.build:
+ * meson_options.txt:
+ build: Add meson's option package-origin.
+ This options is added to synchronize with other gstreamer packages
+ build configuration.
+ Though, to avoid breaking distro configuration it is set, as default,
+ the issues gitlab's url, instead of the used string
+ "Unkown package origin".
+ Also, set_quoted is used for string based cdata.
+
+2020-02-25 13:45:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: deprecate format, width and size parameters
+ Since they should only be controlled by caps negotiation.
+
+2020-03-18 16:41:01 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiprofile.c:
+ * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
+ * gst/vaapi/gstvaapidecode.c:
+ libs,plugins: decoder: Add -intra profile support for hevc.
+ In hevc, we can consider the -intra profile a subset of the none
+ -intra profile. The -intra profiles just contain I frames and we
+ definitely can use the none -intra profiles's context to decode
+ them.
+ Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+2020-03-04 12:35:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: h265: support ICQ/QVBR BRC
+ Enable support for ICQ and QVBR bitrate control.
+ The code is essentially the same for h264 ICQ/QVBR support
+ which was added in commit 9e0c133a2403.
+
+2020-03-19 11:19:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ libs: encoder: set VA HRD param before RC param
+ This is a workaround for intel-media-driver bug
+ https://github.com/intel/media-driver/issues/865
+ The driver will force the RC method to CBR for HEVCe
+ when it parses the HRD param. Thus, any RC method
+ param submitted "prior" to the HRD param will be lost.
+ Therefore, VBR, ICQ and QVBR for HEVCe can't be
+ effectively enabled if the RC method param "precedes"
+ the HRD param.
+ To work around this issue, set the HRD param before
+ the RC method param so the driver will parse the RC
+ method param "after" the HRD param.
+ Afaict, other codecs in the driver (and other drivers)
+ do not appear to be dependent on the order of HRD and
+ RC param submission.
+
+2019-11-25 14:16:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapidisplay.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
+ vaapijpegenc: Add a quantization quirk for iHD driver
+ iHD driver shifts the value by 50 when calculating quantization for JPEG
+ encoding, so we should add 50 in this plugin for iHD driver too.
+
+2020-03-13 21:49:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
+ * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
+ * gst-libs/gst/vaapi/gstvaapipixmap.c:
+ * gst-libs/gst/vaapi/gstvaapipixmap.h:
+ * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
+ * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
+ * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
+ * gst-libs/gst/vaapi/gstvaapiwindow.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow.h:
+ * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
+ * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
+ * gst-libs/gst/vaapi/meson.build:
+ * meson.build:
+ * tests/internal/output.c:
+ * tests/internal/output.h:
+ * tests/internal/simple-decoder.c:
+ * tests/internal/test-decode.c:
+ libs: remove GstVaapiPixmap
+ GstVaapiPixmap is an abstract base class which only implementation
+ were GstVaapiPixmapX11. This class were used for a special type of
+ rendering in the tests apps, utterly unrelated in GStreamer.
+ Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
+ we should remove this unused API.
+ This removal drops libxrender dependency.
+
+2020-03-17 18:51:19 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: utils: Add HEVC Main444 sting in string_of_VAProfile
+ HEVCMain444_10 is already a supported profile and misses the strings.
+
+2020-03-17 12:47:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapi.c:
+ plugin: don't error if cannot create display
+ This might generated errors on automatic tools such as CI. Let's
+ rather just raise a warning and let continue.
+
+2020-03-09 01:52:57 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * tests/check/meson.build:
+ test: fix a ninja test failure for vaapioverlay.
+ That test case only works with drm display, so the build such as
+ meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
+ -Dwith_glx=no
+ gets a failure when run ninja test. Just enable this test when drm
+ is enabled.
+
+2020-02-07 23:56:13 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapivideopool.c:
+ libs: videopool: fix a condition race for pool allocate.
+
+2020-03-05 13:22:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ vaapivideobufferpool: force video meta if sizes are different
+ The strides and offsets could be the same, but the allocation
+ size might be different (e.g. alignment). Thus, ensure we also
+ set the flag to copy from VA memory to system memory when alloc
+ size differs.
+ Fixes #243
+
+2020-03-05 14:18:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: don't set base sink caps twice
+ Base class's sink pad caps are already set when calling set_format().
+ There's no need to call it again in gst_vaapidecode_negotiate().
+
+2020-03-05 13:26:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: unlock stream if caps update fails
+ If caps update fail a dead lock occurs since the stream mutex is not
+ unlocked.
+
+2020-03-03 15:24:32 +0800 Xu Guangxin <guangxin.xu@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ libs: decoder: h265: parser state after update dependent slice
+ If the dependent_slice_segment_flag is true, most slice info derived from last slice.
+ So we need check the slice type after we call populate_dependent_slice_hdr
+
+2020-02-16 12:21:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapidisplay.h:
+ libs: display: force RGBA image format for i965 driver
+ Since commit 32bf6f1e GLTextureUpload is broken because i965
+ doesn't report properly RGBA support. It could be possible to use RGBx
+ but GLTextureUpload only regotiates RGBA.
+ The simplest fix to this regression is adding synthetically the RGBA
+ format in the internal format map.
+
+2020-02-14 19:30:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ libs: display: iterate all quirks table
+ Instead of break at the fist foud quirk in the table, iterate all over
+ so it would be feasible to add several quirks for one driver per
+ element in array.
+
+2020-02-25 12:05:28 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ libs: filter: handle RGB to/from YUV color primary driver quirk
+ The intel-media-driver (iHD) can't convert output color
+ primaries when doing YUV to/from RGB CSC. Thus, we must
+ keep the output color primaries the same as the input
+ color primaries for this case.
+ fixes #238
+
+2020-02-25 12:00:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapidisplay.h:
+ libs: display: add YUV to/from RGB color primary quirk
+ The intel-media-driver (iHD) can't convert output color
+ primaries when doing YUV to/from RGB CSC.
+
+2020-02-28 11:33:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideomemory.c:
+ Revert "vaapivideomemory: Store surface allocation flags."
+ This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
+ it rewrites the buffer size whilst surface allocation flags are
+ stored when allocator_params_init() is called since fab890ce.
+ Fix: #239
+
+2020-01-27 18:19:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideomemory.c:
+ vaapivideomemory: Try surface with allocation flags.
+ When a vaapi allocator is instantiated, it first try to generate a
+ surface with the specified configuration.
+ This patch adds, in this tried buffer, the requested allocation flags.
+
+2020-01-27 18:10:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideomemory.c:
+ vaapivideomemory: Store surface allocation flags.
+ Store surface allocation flags passed to the vaapi allocator in
+ GObject's qdata, because it might be used by the vaapivideobufferpool
+ when recreating the allocator given any resolution change.
+
+2020-01-24 19:32:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.h:
+ libs: surface: Add hints to allocation flags.
+ When creating surfaces it is possible to pass to VA hints of its usage,
+ so the driver may do some optimizations.
+ This commit adds the handling of encoding/decoding hints.
+
+2020-01-24 22:08:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.h:
+ * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
+ * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
+ * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
+ * gst-libs/gst/vaapi/gstvaapiwindow.c:
+ * tests/internal/test-filter.c:
+ * tests/internal/test-surfaces.c:
+ libs: surface: surfacepool: Add allocation flags in constructors.
+
+2020-02-22 16:06:13 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * meson.build:
+ build: let the build fail if none if X11, wayland or drm.
+ In fact, gst_vaapi_create_test_display only test x11, wayland and
+ drm, no glx and egl entries. So if none of them is enabled, no
+ vaapi element can be detected.
+
+2020-02-21 00:58:47 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * tests/internal/test-display.c:
+ test: avoid unused warning for test-display
+ meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
+ -Dwith_glx=no buildir
+ generate unused warnings.
+
+2020-02-21 00:50:47 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * meson.build:
+ build: fix meson build error when without x11.
+ meson -Dwith_x11=no build_dir
+ can not success build the project because the glx is still enabled.
+ We need to disable GLX when X11 is disabled.
+
+2020-02-14 19:53:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
+ Intel HW has limitation on max_transform_hierarchy_depth_inter and
+ max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
+ other HWs if other HWs may support other values
+ [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
+
+2020-02-21 07:37:50 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ * gst/vaapi/gstvaapipostprocutil.c:
+ vaapipostproc: do not compensate for crop/direction if no VPP
+ If we do not have functional VPP, then cropping and video
+ direction is non-functional and we should avoid calling
+ any of the gst_vaapi_filter* APIs.
+
+2020-02-21 06:54:47 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: only set VPP colorimetry when VPP is available
+ If we don't have functional vpp then we should not call
+ gst_vaapi_filter_set_colorimetry.
+
+2020-02-16 01:25:37 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ * gst/vaapi/gstvaapivideomemory.c:
+ * gst/vaapi/gstvaapivideomemory.h:
+ videobufferpool: don't reset surface when created internally
+ The bug fixing, in commit 89f202ea, just considers the case when
+ surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
+ which is typically a decoder's behavior. But vaapipostproc doesn't
+ provide any surface when calling gst_buffer_pool_acquire_buffer(),
+ thus a surface is created when GstMemory is allocated.
+ If the surface proxy in buffer's meta is reset at
+ buffer_pool_reset_buffer(), that surface will be destroyed and it
+ won't be available anymore. But GstBuffers are cached in the buffer
+ pool and they are reused again, hence only those images are rendered
+ repeatedly.
+ Fixes: #232
+
+2020-02-16 17:19:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiblend.c:
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst/vaapi/gstvaapi.c:
+ libs: blend: filter: handle finalize() if display isn't assigned
+ I've just discovered iHD driver in Skylake doesn't have VideoProc
+ entry point, hence, in this platform, when vaapioverlay is tried to be
+ registered, critical warnings are raised because blend doesn't have a
+ display assigned.
+ As it is possible to have drivers without EntryPointVideoProc it is
+ required to handle it gracefully. This patch does that: only tries to
+ register vaapioverlay if the testing display has VPP and finalize()
+ vmethods, in filter and blend, bail out if display is NULL.
+
+2020-02-15 11:02:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: filter: guard all color properties to VA-API 1.2.0
+ Older VA-API (0.39.0) doesn't have VAProcColorProperties.
+ Thus, guard all colorimetry -> VA-API support to version
+ 1.2.0.
+ Fixes #234
+
+2020-02-17 08:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ libs: decoder: h265: set parser info state at decoding codec data
+ Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
+ parser info in sps array. If that parser info comes from decoding
+ codec data, that parser info will have an undefined state which might
+ break ensure_sps().
+ This patch sets the parser info state, at decoding codec data, with
+ the internal parser state. This is similar with h264 decoder apprach.
+ Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
+
+2020-02-07 15:24:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: demote log message to trace level
+
+2020-02-14 14:45:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/video-format.c:
+ libs: video-format: set general vaapi log category
+ Instead of logging in an unspecified category, set the default vaapi.
+
+2020-02-15 11:44:48 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: utils: guard EncSliceLP for VA-API < 0.39.1
+ Relates to #234
+
+2020-02-14 16:17:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
+
+2020-02-11 11:31:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ libs: remove crumbs of libva < 0.39
+ All these guarded code seem like leftovers of commit 920b1ec7a. This
+ patch completes that missing clean up.
+
+2020-02-11 00:38:40 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: VA explicit color standard not supported until 1.2.0
+ VAProcColorStandardExplicit and associated VAProcColorProperties
+ (primaries, transfer and matrix) are not supported until
+ VA-API 1.2.0.
+ Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
+ if VA-API < 1.2.0.
+ Fixes #231
+
+2020-02-10 09:31:15 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: utils: WA: use explicit for sRGB colorimetry
+ Addresses #228 on iHD side. It seems iHD can't handle
+ VAProcColorStandardSRGB in all situations for vpp. But
+ it has no problem when we specify the sRGB parameters
+ via VAProcColorStandardExplicit parameters.
+
+2020-02-07 11:25:31 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ libs: filter: set vpp input/output color range
+ We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
+ And, the [iHD] driver essentially computes the same color
+ range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
+ cases were gstreamer computes it automatically. But,
+ if the user wants to make it explicit, we should try
+ to honor it.
+
+2020-02-07 11:20:11 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ * gst-libs/gst/vaapi/gstvaapiutils.h:
+ libs: utils: map GstVideoColorRange to VAAPI VPP
+
+2020-02-07 15:28:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: don't remove chroma-site nor colorimetry
+ Since now they can be handled by vaapipostproc.
+
+2020-02-04 14:17:43 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostprocutil.c:
+ vaapipostproc: use sink resolution to calculate src colorimetry
+ The default output colorimetry is persuaded by the output
+ resolution, which is too naive when doing VPP cropping
+ and/or scaling. For example, scaling 4K(sink)->1080P(src)
+ resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
+ colorimetry selection and some drivers don't support that
+ mode in vpp.
+ Thus, if output (i.e. downstream) does not specify a
+ colorimetry then we use the input resolution instead of the
+ output resolution to create the default colorimetry. Also,
+ note that we still use the output format since it may be a
+ different color space than the input. As in the example
+ above, this will result in bt2020(sink)->bt2020(src)
+ colorimetry selection and all drivers (afaik) should support
+ that in vpp.
+
+2020-02-04 09:57:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostprocutil.c:
+ vaapipostproc: set srcpad colorimetry unconditionally
+ We always need a srcpad colorimetry for VAAPI VPP
+ operations.
+ Also, check the return value of _set_colorimetry.
+
+2020-01-30 12:34:07 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostprocutil.c:
+ vaapipostproc: do not override explicit srcpad colorimetry
+ If colorimetry has been set by a capsfilter (e.g.
+ vaapipostproc ! video/x-raw,colorimetry=bt709) then
+ don't try to override it. Previously, the aforementioned
+ capsfilter will fail to negotiate if default colorimetry
+ is not the same as the capsfilter (e.g. 4K resolutions).
+
+2020-01-30 09:37:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: set vpp filter colorimetry
+ Set the input and output colorimetry for vpp filter.
+
+2020-01-30 09:34:10 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapifilter.h:
+ libs: filter: support vpp input/output color standard
+ Add API function to allow setting the input and output vpp
+ color standard from GstVideoColorimetry.
+
+2020-02-04 11:32:54 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ * gst-libs/gst/vaapi/gstvaapiutils.h:
+ libs: utils: map GstVideoColorimetry to VAAPI VPP
+ Fallback to VAProcColorStandardExplicit if there is no
+ 1:1 mapping.
+
+2020-02-04 10:27:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapidisplay.h:
+ libs: display: add vpp color standard quirk for i965 driver
+ The i965 does not properly report supported vpp color
+ standards.
+
+2020-02-02 18:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ vaapivideobufferpool: dmabuf implies allocator
+ Some code can be optimized since only if the dmabuf allocator is set,
+ the internal flag of dmabuf is TRUE, thus there's no need to evaluate
+ the allocator address.
+
+2020-01-29 11:55:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ vaapivideobufferpool: reject configuration if allocator isn't vaapi
+ If the requested allocator in set_config() is not a VAAPI valid one,
+ reject the configuration, instead of lying and using a private one.
+ This patch superseeds !254 and !24
+
+2020-01-29 11:55:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ vaapivideobufferpool: add explanation for allocator reconfig
+
+2020-01-29 11:54:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ vaapivideobufferpool: check for vaapi meta first
+ If the configured meta doesn't request vaapi meta then it is not a
+ vaapi buffer pool. Bail out as soon as possible.
+
+2020-01-29 11:52:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ vaapivideobufferpool: turn errors into warnings
+ set_config() vmethod should fail gracefully, thus upstream could
+ negotiate another pool if possible.
+ Instead of sending error messages to the bus, let demote the level
+ to warning.
+
+2020-01-29 11:51:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ libs: display: log out vendor string when available
+ This is useful while asking for logs to know the used driver.
+
+2020-01-27 11:49:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ libs: surface: initialize VASurfaceAttribExternalBuffers
+ Initialize VASurfaceAttribExternalBuffers using compiler's syntax
+ rather than using memset().
+
+2020-01-27 11:44:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ libs: surface: merge two loops into one
+ Merge two loops into one for setting offsets and strides in the
+ external buffer descriptor.
+
+2020-01-22 10:42:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.h:
+ * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
+ * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
+ libs: surface: surfacepool: rename variable for clearity
+ In order to be readable, the meaningless 'flags' is renamed to
+ surface_allocation_flags, which is clearer.
+
+2020-01-27 18:40:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ vaapivideobufferpool: Reuse internal allocator is possible.
+ Instead of creating a new allocator when upstream requests a different
+ allocator, this patch tries to reuse the internal allocator if it was
+ already initializated.
+ If the stream changes, then either one will be unref and a new
+ allocator is created.
+
+2020-01-27 18:05:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ vaapivideobufferpool: Log messages in proper category.
+ The log messages where logged in the GstBufferPool category because
+ the instance was not properly casted. This fix that situation.
+
+2020-01-16 11:49:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapidisplay.h:
+ * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
+ * gst/vaapi/gstvaapipluginbase.c:
+ libs: display: driver quirks mechanism
+ This mechanism comes from ffmpeg vaapi implementation, where they have
+ their own quirks.
+ A specific driver is identified by a substring present in the vendor
+ string. If that substring is found, a set of bitwise flags are store.
+ These flags can be accessed through the function
+ gst_vaapi_display_has_driver_quirks().
+ The purpose for this first quirks is to disable the put image try for
+ AMD Gallium driver (see [1]).
+ 1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
+
+2020-01-15 23:07:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapipluginutil.c:
+ plugins: renable Mesa Gallium driver
+
+2020-01-24 11:55:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ vaapivideobufferpool: validate returned meta
+ Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
+ the acquired buffer is not null.
+ This situation should be very "pathological", but still it is better
+ be safe since that meta might be used later to create a new dma
+ buffer.
+
+2020-01-22 18:50:36 +0100 Philipp Zabel <p.zabel@pengutronix.de>
+
+ * gst/vaapi/gstvaapivideobufferpool.c:
+ vaapivideobufferpool: always update/release the underlying surface proxy
+ gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
+ releases the last reference on an exported DMA buffer. This should
+ release the underlying surface proxy. To avoid releasing the wrong
+ surface due to a stale surface proxy reference in the buffer's
+ GstVaapiVideoMeta, always update the reference to the correct surface
+ in gst_vaapi_video_buffer_pool_acquire_buffer().
+
+2020-01-23 16:56:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ * gst-libs/gst/vaapi/gstvaapicontext.h:
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.h:
+ libs: context: select vaCreateSurfaces version according attributes
+ This commit tries to centralize the selection of vaCreateSurfaces
+ version, instead of having fallbacks everywhere.
+ These fallbacks are hacks, added because new drivers use the latest
+ version of vaCreateSurfaces (with surface attributes) [1], meanwhile
+ old drivers (or profiles as JPEG decoder in i965) might rather use the
+ old version.
+ In order to select which method, there's detected hack: each config
+ context has a list of valid formats, in the case of JPEG decoder the
+ list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
+ handled correctly by the current gstreamer-vaapi code [2].
+ The hack consist in identify if the format list contains an arbitrary
+ preferred format (which is suposedly well supported by
+ gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
+ the the old version of vaCreateSurfaces is used, and the surfaces wil
+ be mapped into a image with their own color format.
+ 1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
+ 2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
+
+2020-01-21 19:35:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ libs: context: add debug category for context
+
+2020-01-22 20:20:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiblend.c:
+ libs: blend: guard VA_BLEND_GLOBAL_ALPHA
+
+2020-01-21 14:09:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ vaapiencode: promote info to warning
+ Let's notify user about using constrained-baseline instead on
+ requested basline profile.
+
+2019-06-28 15:41:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
+ * gst/vaapi/gstvaapidecode.c:
+ * gst/vaapi/gstvaapidecode_props.c:
+ * gst/vaapi/gstvaapidecode_props.h:
+ vaapih264dec: Add a property to assume constrained-baseline
+ When baseline-as-constrained is set, the decoder will expose support
+ for baseline decoding and assume that the baseline content is
+ constrained-baseline. This can be handy to decode streams in hardware
+ that would otherwise not be possible to decode. A lot of baseline
+ content is in fact constrained.
+
+2020-01-17 16:19:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ * gst/vaapi/gstvaapipluginutil.c:
+ vaapih264enc: accept baseline as constrained baseline compatible
+
+2020-01-17 14:24:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ vaapih264enc: update level in src caps
+ And, if downstream requests a specific level, the caps are not
+ negotiated, because there is no mechanism right now to specify a
+ custom level in the internal encoder.
+
+2020-01-17 17:12:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
+
+2020-01-17 13:38:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ vaapih264enc: force byte-stream if avc isn't supported
+ Removing the validation in gst_vaapiencode_h264_get_caps() since that
+ ought be handled in gst_vaapiencode_h264_set_config()
+
+2020-01-08 17:37:22 +0100 Philipp Zabel <p.zabel@pengutronix.de>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ vaaph264enc: suppress avc if the driver does not support packed headers
+ Do not negotiate AVC output if the driver does not support it.
+
+2020-01-08 17:16:35 +0100 Philipp Zabel <p.zabel@pengutronix.de>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
+ libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
+ AVC output requires packed header support in the driver.
+
+2020-01-17 13:07:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ vaapih264enc: intersect the new proposed caps
+ Instead of just leave to keep the proposed caps, with the best profile
+ in the allowed caps, is its intersected again.
+
+2020-01-17 12:58:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ vaapih264enc: propose new profile caps and fixate it
+ When the available caps doesn't intersect with the allowed caps in the
+ pipeline, a new caps is proposed rather than just expecting to
+ iterate.
+ Later, the intersected caps (profile_caps) is fixated in order to
+ extract the configuration.
+
+2020-01-17 13:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
+ Add a common fail code path for gst_vaapiencode_h264_set_config().
+
+2020-01-17 12:54:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ libs: encoder: unref formats array if none
+ The formats array is always created, in order to keep the logic and
+ to avoid broken caps, if this formats array doesn't contain any
+ elements, it has to be unref and the function should return NULL.
+
+2020-01-17 14:22:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ vaapih264enc: fix log message
+ Before the log wasn't processed because wrong instance pointer.
+
+2019-06-22 00:44:25 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
+ * gst/vaapi/gstvaapiencode_h265.c:
+ plugin: encode: Add H265 main-444 profile.
+ Expose the main-444 profile to h265enc caps, when the upstream
+ chooses to use VUYA as input, we choose main 4:4:4 profile to encode
+ the frames.
+
+2020-01-15 19:36:00 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: h265: Consider main-444 profile when encoding.
+ Add support of main-444 profile for parameter setting and packed header
+ generation.
+
+2020-01-15 23:04:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
+ * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
+ * gst/vaapi/gstvaapiencode.c:
+ vaapiencode: DMABuf only if PRIME is available
+ Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
+ memory type is available in the VA surface attributes of codec
+ context.
+
+2020-01-16 09:14:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * hooks/pre-commit.hook:
+ Add hooks/pre-commit.hook
+ meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
+ Copied and pasted pre-commit.hook from other gstreamer modules to make
+ sure gstreamer-vaapi follows the same code style
+
+2019-12-26 16:45:51 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: h265: Set encoder paramters base on entrypoint.
+ When the tune is NONE, we now can choose entrypoint freely. So the
+ GST_VAAPI_ENCODER_TUNE macro may not return the correct current
+ entrypoint.
+ We also delay CTU size calculation after entrypoint has been decided.
+
+2019-12-28 19:18:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
+ * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
+ * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ * gst-libs/gst/vaapi/gstvaapicontext.h:
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
+ * gst-libs/gst/vaapi/gstvaapifei_objects.c:
+ * gst-libs/gst/vaapi/gstvaapifei_objects.h:
+ * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
+ * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
+ * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
+ * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
+ * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
+ * gst-libs/gst/vaapi/gstvaapiprofile.c:
+ * gst-libs/gst/vaapi/gstvaapiprofile.h:
+ * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
+ * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
+ * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
+ * gst-libs/gst/vaapi/meson.build:
+ * gst/vaapi/gstvaapi.c:
+ * gst/vaapi/gstvaapiencode.c:
+ * gst/vaapi/gstvaapiencode.h:
+ * gst/vaapi/gstvaapiencode_h264_fei.c:
+ * gst/vaapi/gstvaapiencode_h264_fei.h:
+ * gst/vaapi/gstvaapifeivideometa.c:
+ * gst/vaapi/gstvaapifeivideometa.h:
+ * gst/vaapi/meson.build:
+ * meson.build:
+ * tests/internal/meson.build:
+ * tests/internal/test-fei-enc-in.c:
+ * tests/internal/test-fei-enc-out.c:
+ Remove all FEI related
+ FEI encoders are not actively mantained neither tested, and it is
+ using infrastructure that is changing and FEI is stopping this
+ effort.
+ Also it is required to rethink how FEI can be used in GStreamer.
+
+2020-01-14 11:17:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapioverlay.c:
+ vaapioverlay: ensure sinkpad has current buffer
+ Use the gst_video_aggregator_pad_has_current_buffer API
+ to check if the current sinkpad has a queued buffer before
+ attempting to obtain a input buffer from the base plugin.
+ If the sinkpad does not have a current buffer, then it is
+ either not producing them yet (e.g. current time < sinkpad
+ start time) or it has reached EOS.
+ Previously, we only handled EOS case.
+ Example:
+ gst-launch-1.0 videotestsrc num-buffers=100 \
+ ! vaapipostproc ! vaapioverlay name=overlay \
+ ! vaapisink videotestsrc timestamp-offset=1000000000 \
+ num-buffers=100 ! video/x-raw,width=160,height=120 \
+ ! overlay.
+
+2020-01-14 18:57:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapioverlay.c:
+ vaapioverlay: unroll the recursive call
+ Recursive functions are elegant but dangerous since they might
+ overflow the stack. It is better to turn them into a list tranversal
+ if possible, as this case.
+
+2020-01-14 18:46:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiblend.c:
+ * gst/vaapi/gstvaapioverlay.c:
+ vaapioverlay: add minimal documentation
+
+2020-01-14 18:25:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiblend.c:
+ * gst-libs/gst/vaapi/gstvaapiblend.h:
+ * gst/vaapi/gstvaapioverlay.c:
+ libs: blend: simplify generator API
+ Instead of using a parent structure that has to be derived by API
+ consumers, this change propse a simplification by using the common
+ pattern of GTK of passing a function pointer and user data which will
+ be passed as its parameter. That user data contains the state and the
+ function will be called to update that state.
+
+2020-01-10 10:14:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiblend.c:
+ * gst-libs/gst/vaapi/gstvaapiblend.h:
+ libs: blend: remove begin/render/end API
+ This API was risky and is superseded by the surface
+ generator (process) API.
+ Resolves #219
+
+2020-01-10 10:12:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapioverlay.c:
+ vaapioverlay: use blend surface generator API
+ See #219
+
+2020-01-10 09:54:30 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiblend.c:
+ * gst-libs/gst/vaapi/gstvaapiblend.h:
+ libs: blend: add surface generator API
+ This new API allows the user to call a single method (process)
+ which handles the [display] lock/unlock logic internally for
+ them.
+ This API supersedes the risky begin, render, end API.
+ It eliminates the need for the user to call a lock method
+ (process_begin) before processing the input buffers
+ (process_render) and calling an unlock method (process_end)
+ afterwards.
+ See #219
+
+2019-12-23 14:29:08 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst/vaapi/gstvaapiencode.c:
+ * gst/vaapi/gstvaapiencode.h:
+ * gst/vaapi/gstvaapiencode_h264.c:
+ * gst/vaapi/gstvaapiencode_h265.c:
+ plugin: encode: List all possible profiles to detect input formats.
+ The current get_profile just return one possible profile for the encode,
+ which is not enough. For example, if we want to support HEVC 4:4:4
+ profile, the input of encode should be VYUA rather than NV12 in HEVC
+ main profile. So the command line:
+ gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
+ caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
+ tune=low-power init-qp=30 ! fakesink
+ can not work because vaapih265enc just report NV12 in sink caps, we need
+ to specify the profile obviously like:
+ gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
+ caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
+ tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
+ profile=main-444 ! fakesink
+ The encode should have the ability to choose the profile based on input
+ format automatically. If the input video format is VUYA, the main-444
+ profile should be auto choosed.
+ We modify to let get_allowed_profiles of each encode sub class to return
+ an array of all supported profiles based on downstream's allowed caps, or
+ return NULL if no valid profiles specified by downstream.
+ If no allowed profiles found, all profiles which belong to the current
+ encoder's codec will be the candidates.
+ The function gst_vaapi_encoder_get_surface_attributes collects the surface's
+ attributes for that profile list we just get.
+ So for this case, both NV12 and VUYA should be returned.
+ TODO: some codec like VP9, need to implement the get_profile() function.
+
+2020-01-08 15:07:36 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapipluginutil.c:
+ * gst/vaapi/gstvaapipluginutil.h:
+ plugin: util: add helper function to detect profiles in caps.
+
+2020-01-08 15:04:18 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ libs: encoder: add a helper function to get all supported profiles
+
+2020-01-13 15:34:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder.c:
+ libs: decoder: Don't unref null object
+ ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
+ gst_vaapi_context_unref: assertion 'context != NULL' failed
+
+2020-01-10 09:26:44 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapioverlay.c:
+ plugins: overlay: use proper NULL check on double pointer
+ Check the address of the variable is not NULL,
+ not the address of the pointer.
+
+2020-01-08 23:42:21 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
+ libs: codedbuf: delete a useless field.
+ The context field in GstVaapiCodedBuffer is not inited correctly
+ and is never used, just delete it.
+
+2019-12-29 17:57:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapipluginutil.c:
+ plugins: add iHD driver in whitelist
+
+2020-01-02 21:02:40 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: modify 265 SPS header's profile compatibility flag.
+ Make the SPS profile compatibility flags more precisely conform to
+ the HEVC Spec.
+
+2020-01-06 19:39:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * tests/check/elements/vaapioverlay.c:
+ test: vaapioverlay: bail test if not available
+ vaapioverlay is only registered if the VA driver support the blend
+ operation.
+ This patch only executes the test if vaapioverlay is available,
+ otherwise the test is bail out without raising an error.
+
+2020-01-06 14:53:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * tests/check/elements/vaapioverlay.c:
+ tests: vaapioverlay: force drm backend
+
+2019-12-22 17:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiblend.c:
+ libs: blend: update to new mini-object API
+
+2019-11-19 13:48:22 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * tests/check/elements/vaapioverlay.c:
+ * tests/check/meson.build:
+ tests: check: add basic vaapioverlay test
+ Add test_overlay_position test to verify sink_1 input
+ is overlayed onto sink_0 input at the appropriate
+ position.
+
+2019-11-14 12:03:57 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapi.c:
+ * gst/vaapi/gstvaapioverlay.c:
+ * gst/vaapi/gstvaapioverlay.h:
+ * gst/vaapi/meson.build:
+ plugins: add vaapioverlay plugin
+ A plugin similar to the base compositor element but
+ uses VA-API VPP blend functions to accelerate the
+ overlay/compositing.
+ Simple example:
+ gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
+ ! tee name=testsrc ! queue \
+ ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
+ name=overlay ! vaapisink testsrc. ! queue ! overlay.
+
+2019-11-14 12:02:19 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiblend.c:
+ * gst-libs/gst/vaapi/gstvaapiblend.h:
+ * gst-libs/gst/vaapi/meson.build:
+ libs: add a vaapi blend class
+ Support for the VA-API VPP blend functions.
+
+2019-11-14 11:54:59 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipluginbase.c:
+ * gst/vaapi/gstvaapipluginbase.h:
+ plugins: base: add GstVideoAggregator subclass support
+
+2020-01-05 19:32:16 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiimage.c:
+ libs: image: init all image fields correctly.
+
+2020-01-06 17:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ doc: fix pipeline typo in vaapipostproc
+
+2020-01-02 21:11:44 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: modify 265 VPS header fields.
+ vps_base_layer_internal_flag and vps_base_layer_available_flag
+ have been clearly defined now.
+
+2020-01-01 19:54:13 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
+ libs: display: fix a resource leak in X11 pixmap format.
+
+2020-01-02 18:00:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
+ * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
+ libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
+
+2019-12-30 14:09:17 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst/vaapi/gstvaapiencode.c:
+ libs: encoder: get surfaces resolution the same time with formats.
+ We can get all the information about the video format at one shot
+ when we create the test context for getting the supported formats.
+ The current way to get the width and height ranges are inefficient,
+ since it calls the function gst_vaapi_profile_caps_append_encoder()
+ and it creates another temporal context to detect the resolution
+ information.
+ Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+2019-12-28 17:42:55 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ libs: encoder: vp9: fix code style
+
+2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ libs: encoder: set entrypoint based on tune automatically
+ Some profile, such as H265_MAIN_444 on new Intel platform, may only
+ support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
+ problems:
+ 1. We need to specify the tune mode like `vaapih265enc tune=low-power`
+ every time when we need to use this kind of profile. Or we can not
+ create the encoder context successfully.
+ 2. More seriously, we set the entrypoint to a fixed value in
+ init_context_info() and so the create_test_context_config() can not
+ create the test context for these profile and can not get the
+ supported video formats, either.
+ We now change the entrypoint setting based on the tune option of the
+ encoder. If no tune property provided, we just choose the first
+ available entrypoint.
+
+2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ libs: encoder: set context info profile by encoder
+ Instead of init_context_info() setting the passed profile, it is
+ assumed that it has to be set by each encoder.
+ Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+2019-12-27 18:49:02 +0100 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ * gst-libs/gst/vaapi/gstvaapiprofile.h:
+ libs: context: add invalid entrypoint symbol
+ The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
+ zero, which was already used as an invalid value tacitly. This patch
+ only makes it explicit.
+ Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+2019-12-29 01:13:29 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
+ libs: pixmap: Fix a pixmap creation crash.
+ We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
+ pixmap creation, which causes crash if we run the internal test case
+ of:
+ test-decode --pixmap
+
+2019-12-22 14:35:18 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode.c:
+ plugin: encode: set allowed_sinkpad_caps to empty.
+ We now set encode->allowed_sinkpad_caps to NULL if we fail to get
+ surfaces formats. This causes two problem:
+ 1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
+ which changes its behavior. It will use encode's sinkpad template
+ rather than empty caps to do the clip job. So even if we fail to set
+ allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
+ valid caps.
+ 2. We should just set the allowed_sinkpad_caps once. The NULL point
+ make the ensure_allowed_sinkpad_caps function works again and again.
+
+2019-12-22 15:22:57 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ libs: encoder: Add NULL pointer check for context when finalize.
+ Context may be NULL if pipeline fail in early stage, and the
+ ensure_context will not be called. Need to add a pointer protection
+ for it.
+
+2019-12-20 06:38:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipluginbase.c:
+ plugins: base: do not reset can_dmabuf
+ Don't reset the can_dmabuf field. This restores the
+ close/reset logic that existed prior to commit
+ ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
+ dmabuf support.
+ Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
+ once during startup, but may need to reset the other private
+ fields multiple times during negotiation. Thus, can_dmabuf
+ should be exempt from the resets.
+ Fixes #208
+
+2019-12-06 00:21:12 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode.c:
+ plugin: encode: Refine encode's sink caps.
+ The old manner to get the encode's sink caps is not correct.
+ Such as 264 encode, it gets:
+ video/x-raw(memory:VASurface),
+ format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
+ P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
+ height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
+ video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
+ width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
+ framerate=(fraction)[ 0/1, 2147483647/1 ];
+ video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
+ height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+ where the formats for memory:VASurface and memory:DMABuf are superfluous.
+ All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
+ input format for encoder.
+ We should get:
+ video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
+ height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
+ video/x-raw(memory:VASurface), format=(string){ NV12 },
+ width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
+ framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
+ format=(string){ NV12 }, width=(int)[ 32, 4096 ],
+ height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+ as the correct result.
+
+2019-12-20 08:37:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapiprofile.h:
+ libs: display: code clean up
+
+2019-12-12 21:34:21 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
+ * gst-libs/gst/vaapi/gstvaapiprofile.h:
+ libs: display: refine the profile/entrypoint map.
+ The old way make the one config for each profile/entrypoint pair,
+ which is not very convenient for description the relationship
+ between them. One profile may contain more than one entrypoints
+ to within it, so a set like data structure should be more suitable.
+
+2019-12-19 14:19:10 +0100 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
+ * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.h:
+ * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
+ * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
+ * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
+ * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
+ * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
+ * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
+ * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
+ * gst-libs/gst/vaapi/gstvaapivideopool.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
+ * gst/vaapi/gstvaapipluginbase.c:
+ * gst/vaapi/gstvaapivideomemory.c:
+ * gst/vaapi/gstvaapivideometa.c:
+ * gst/vaapi/gstvaapivideometa_texture.c:
+ * tests/internal/image.c:
+ * tests/internal/test-filter.c:
+ * tests/internal/test-surfaces.c:
+ * tests/internal/test-windows.c:
+ libs: surface: port to GstMiniObject
+ GstVaapiMiniObject and GstVaapiObject are deprecated.
+ This is the first step to remove them by porting GstVaapiSurface as
+ a GstMiniBuffer descendant.
+ Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+2019-12-19 18:26:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ libs: surface: rename create function names to init
+ There are several internal functions with 'create' name, but they
+ don't create any new structure, but rather it initializes that
+ structure. Renaming those function to reflect better their purpose.
+
+2019-12-19 14:17:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ libs: surface: use macro accessors
+
+2019-12-19 13:46:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
+ libs: surface: fix internal documentation
+
+2019-12-18 18:00:49 +0100 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
+ * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
+ * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
+ * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
+ * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
+ * gst-libs/gst/vaapi/gstvaapivideopool.c:
+ libs: codedbuffer: port to GstMiniObject
+ GstVaapiMiniObject and GstVaapiObject are deprecated.
+ This is the first step to remove them by porting GstVaapiCodedBuffer
+ as a GstMiniBuffer descendant.
+ Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+2019-12-18 12:57:01 +0100 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiimage.c:
+ * gst-libs/gst/vaapi/gstvaapiimage.h:
+ * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
+ * gst-libs/gst/vaapi/gstvaapisubpicture.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
+ * gst-libs/gst/vaapi/gstvaapivideopool.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
+ * gst/vaapi/gstvaapipluginbase.c:
+ * gst/vaapi/gstvaapivideomemory.c:
+ * gst/vaapi/gstvaapivideometa.c:
+ * tests/internal/image.c:
+ * tests/internal/simple-encoder.c:
+ * tests/internal/test-fei-enc-in.c:
+ * tests/internal/test-filter.c:
+ * tests/internal/test-windows.c:
+ libs: image: port to GstMiniObject base class
+ GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
+ first step to remove them, by porting GstVaapiImage as a
+ GstMiniObject.
+ Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+2019-09-24 01:01:22 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
+ * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ * gst-libs/gst/vaapi/gstvaapicontext.h:
+ * gst-libs/gst/vaapi/gstvaapidecoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
+ libs: context: port to a plain C structure
+ The GstVaapiMiniObject is obsolete and we need to replace it. This
+ patch turns GstVaapiContext into a plain C structure with its own
+ reference counting mechanism.
+ Also this patch removes unused overlays attributes.
+ Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+2019-12-18 00:40:58 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ * gst/vaapi/gstvaapiencode_h264_fei.c:
+ * gst/vaapi/gstvaapiencode_h265.c:
+ * gst/vaapi/gstvaapiencode_jpeg.c:
+ * gst/vaapi/gstvaapiencode_mpeg2.c:
+ * gst/vaapi/gstvaapiencode_vp8.c:
+ * gst/vaapi/gstvaapiencode_vp9.c:
+ plugin: encode: change the dmabuf caps to all supported formats.
+ The encode's dmabuf caps definition is obsolete, it can support
+ more formats now. Re-define it to include all supported formats
+ in video format map.
+
+2019-12-17 17:09:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ libs: encoder: h264fei: remove unnecessary check
+ Issue detected by Coverity
+ `info_to_pack.h264_slice_header` is always allocated by
+ gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
+ in doesn't make much sense. But it requires to be free on the error
+ path.
+ There may be a null pointer dereference, or else the comparison
+ against null is unnecessary.
+ In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
+ pointer comparison already dereference the pointer earlier
+
+2019-12-17 17:05:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
+ libs: encoder: h264fei: remove unnecessary assert
+ Issue detected by Coverity
+ An unsigned value can never be negative, so this test will always
+ evaluate the same way.
+ In add_slice_headers: An unsigned value can never be less than 0
+
+2019-12-17 16:57:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ libs: encoder: h264fei: remove unnecessary check
+ Issue detected by Coverity
+ There may be a null pointer dereference, or else the comparison
+ against null is unnecessary.
+ In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
+ pointer comparison already dereference the pointer earlier
+
+2019-12-17 16:49:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
+ libs: encoder: h264fei: don't free memory on stack
+ Issue detected by Coverity
+ `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
+ declared in the stack, but it is free in
+ gst_vaapi_feienc_h264_encode() as if declared on the heap.
+ This patch initializes the structure and removes the free.
+ A non-heap pointer is placed on the free list, likely causing a crash
+ later.
+ In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
+ expression, which can never be heap allocated.
+
+2019-12-17 13:22:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ libs: encoder: h264fei: fix surface leak
+ Issue detected by Coverity
+ If the FEI mode is not handled the created resources should be
+ released and return and error code.
+ The system resource will not be reclaimed and reused, reducing the
+ future availability of the resource.
+ In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
+ system resources
+
+2019-12-17 13:09:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * tests/check/elements/vaapipostproc.c:
+ tests: check return calling of gst_navigation_event_parse.*
+ This issue was detected by Coverity.
+ If the function returns an error value, the error value may be mistaken
+ for a normal value.
+ In cb_mouse_event: Value returned from a function is not checked for
+ errors before being used
+
+2019-12-16 16:25:02 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode_h264.c:
+ * gst/vaapi/gstvaapiencode_h264_fei.c:
+ * gst/vaapi/gstvaapiencode_h265.c:
+ * gst/vaapi/gstvaapiencode_jpeg.c:
+ * gst/vaapi/gstvaapiencode_mpeg2.c:
+ * gst/vaapi/gstvaapiencode_vp8.c:
+ * gst/vaapi/gstvaapiencode_vp9.c:
+ plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
+ Then encode plugin just supports raw formats declared in vaapi video
+ format map. This modification makes the template caps more precise.
+
+2019-11-14 11:13:51 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipluginbase.c:
+ plugins: base: add GstPad param to internal helper functions
+ The base plugin public API function implementations determine
+ which pad should be passed to the internal helper functions.
+ Currently, only the base plugin static sinkpad and static
+ srcpad are supported/used. However, this change enables future
+ API functions to be added that can accept a pad (i.e. request pad)
+ from an element subclass (e.g. a GstVideoAggregator subclass).
+
+2019-11-12 12:21:52 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipluginbase.c:
+ * gst/vaapi/gstvaapipluginbase.h:
+ plugins: base: manage pad-specific data in a single struct
+ Define a struct (GstVaapiPadPrivate) to encapsulate the
+ pad-specific data (i.e. buffer pool, allocator, info,
+ caps, etc.).
+ Add an interface to retrieve the data struct for a given
+ pad.
+ Finally, update the base plugin to use the data struct
+ throughout the implementation.
+ This will enable us to easily extend the base plugin in the
+ future to allow for N-to-1 pad subclasses (e.g. overlay/
+ composite).
+
+2019-10-29 15:13:44 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ * gst/vaapi/gstvaapiencode.c:
+ * gst/vaapi/gstvaapipluginbase.h:
+ * gst/vaapi/gstvaapipostproc.c:
+ plugins: use plugin base macros to access pad specific data
+ Don't access base struct fields directly since the underlying
+ definition can change. Instead, use the accessor macros.
+
+2019-12-03 00:52:45 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ libs: decoder: Modify decode src's template raw formats
+ We do not need to maintain a standalone list of decoder's output
+ template for raw formats and that is easy to make mistake(for
+ example, the AYVU is wrong in that list, should be VUYA).
+ Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
+ src template.
+
+2019-12-11 14:11:13 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ libs: postproc: Modify src/sink template raw formats
+ We need to provide more precise template caps for postproc's src
+ and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
+ available which are really superfluous.
+
+2019-12-10 18:40:42 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * tests/check/elements/vaapipostproc.c:
+ Do not mix declaration and code
+
+2019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ libs: decoder: h265: skip all pictures prior the first I-frame
+ Don't try to decode until the first I-frame is received within the
+ currently active sequence. i965 H265 decoder don't show any artifact
+ but it crashes.
+ Fixes: #98
+
+2019-11-27 01:44:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/video-format.c:
+ libs: video-format: remove dead code
+
+2019-10-31 00:59:34 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/video-format.c:
+ * gst-libs/gst/vaapi/video-format.h:
+ * gst/vaapi/gstvaapipluginutil.h:
+ libs: video-format: add GST_VAAPI_FORMATS_ALL
+ GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
+ as a caps template string, and make them available in caps with
+ memory:VASurface feature.
+ Fixes: #199
+
+2019-11-06 22:37:12 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/video-format.c:
+ * tests/internal/test-windows.c:
+ libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
+ We only support VUYA format in gst vaapi now, need to correct
+ the mapping.
+
+2019-10-09 15:13:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * tests/check/elements/vaapipostproc.c:
+ tests: check: vaapipostproc test_orientation_mouse_events
+ Test that vaapipostproc properly translates mouse events
+ when using video-direction (orientation).
+
+2019-10-09 10:11:54 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * tests/check/elements/vaapipostproc.c:
+ * tests/check/meson.build:
+ tests: check: vaapipostproc test_crop_mouse_events
+ Test that vaapipostproc properly translates mouse events
+ when cropping.
+
+2019-10-08 12:20:26 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * meson.build:
+ * meson_options.txt:
+ * tests/check/elements/vaapipostproc.c:
+ * tests/check/meson.build:
+ * tests/meson.build:
+ tests: check: initial unit test support
+ Add minimal unit test toolchain files and a simple
+ vaapipostproc unit test.
+
+2019-10-08 12:19:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * meson.build:
+ * tests/examples/meson.build:
+ * tests/examples/test-roi.c:
+ * tests/examples/test-vaapicontext.c:
+ * tests/examples/test-vaapipostproc.c:
+ * tests/examples/test-vaapisink.c:
+ * tests/internal/codec.c:
+ * tests/internal/codec.h:
+ * tests/internal/decoder.c:
+ * tests/internal/decoder.h:
+ * tests/internal/image.c:
+ * tests/internal/image.h:
+ * tests/internal/meson.build:
+ * tests/internal/output.c:
+ * tests/internal/output.h:
+ * tests/internal/simple-decoder.c:
+ * tests/internal/simple-encoder.c:
+ * tests/internal/test-decode.c:
+ * tests/internal/test-decode.h:
+ * tests/internal/test-display.c:
+ * tests/internal/test-fei-enc-in.c:
+ * tests/internal/test-fei-enc-out.c:
+ * tests/internal/test-filter.c:
+ * tests/internal/test-h264.c:
+ * tests/internal/test-h264.h:
+ * tests/internal/test-jpeg.c:
+ * tests/internal/test-jpeg.h:
+ * tests/internal/test-mpeg2.c:
+ * tests/internal/test-mpeg2.h:
+ * tests/internal/test-mpeg4.c:
+ * tests/internal/test-mpeg4.h:
+ * tests/internal/test-subpicture-data.c:
+ * tests/internal/test-subpicture-data.h:
+ * tests/internal/test-subpicture.c:
+ * tests/internal/test-surfaces.c:
+ * tests/internal/test-textures.c:
+ * tests/internal/test-vc1.c:
+ * tests/internal/test-vc1.h:
+ * tests/internal/test-windows.c:
+ * tests/internal/y4mreader.c:
+ * tests/internal/y4mreader.h:
+ * tests/meson.build:
+ tests: move examples and tests to subfolders
+ This makes way for adding unit (check) tests.
+
+2019-10-14 01:01:27 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * .gitmodules:
+ * Makefile.am:
+ * autogen.sh:
+ * common:
+ * configure.ac:
+ * git.mk:
+ * gst-libs/Makefile.am:
+ * gst-libs/gst/Makefile.am:
+ * gst-libs/gst/vaapi/Makefile.am:
+ * gst/Makefile.am:
+ * gst/vaapi/Makefile.am:
+ * m4/Makefile.am:
+ * tests/Makefile.am:
+ * tests/elements/Makefile.am:
+ Remove autotools build
+
+2019-10-10 15:26:36 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: fix off-by-one coord translations
+ When translating navigation x,y coordinates for
+ video-direction, it is necessary to subtract 1
+ when using the video dimensions to compute the
+ new x,y coordinates. That is, a 100x200 image
+ should map coordinates in x=[0-99],y=[0-199].
+ This issue was found with unit tests provided
+ in !182.
+
+2019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
+ libs: window: x11: Avoid usage of deprecated API
+
+2019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * meson.build:
+ build: halt meson configuration if no renderer API
+ We should halt meson configuration if there is no render API
+ installed (either DRM, Wayland or X11).
+ That behavior was already in autotools but missed in meson. This patch
+ brings it back.
+ Fixes: #196
+
+2019-10-09 12:12:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ libs: filter: fix default orientation regression
+ Fix regression introduced in f232f87f7082
+
+2019-10-07 11:53:23 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ libs: filter: use OP_DATA_DEFAULT_VALUE macro
+
+2019-10-07 11:39:19 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ libs: filter: use macro for returning op default value
+ The code is essentially the same for getting all op default
+ values. Thus, use a macro to help minimize code duplication
+ and [hopefully] encourage using the same mechanism for all
+ default getters.
+
+2019-10-07 09:56:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ libs: filter: query param spec for default scale method
+ Related: #159
+
+2019-10-07 09:44:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ libs: filter: query param spec for default skin-tone values
+ Related: #159
+
+2019-10-02 12:54:52 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ libs: filter: query param spec for default video-direction
+ Related: #159
+
+2019-10-07 10:23:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * .gitignore:
+ add .gitignore
+
+2019-09-05 16:40:52 +0800 Yan Wang <yan.wang@linux.intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapifilter.h:
+ * gst/vaapi/gstvaapipostproc.c:
+ * gst/vaapi/gstvaapipostproc.h:
+ vaapipostproc: Use level value for skin-tone-enhancement filter.
+ Currently the parameter of skin-tone-enhancement filter is forced
+ to zero. In fact it could be set different value by the user.
+ So create a new property named as "skin-tone-enhancement-level"
+ for accepting the used defined parameter value.
+ At the same time, skin-tone-enhancement is marked as deprecated.
+ When skin-tone-enhancement-level is set, skin-tone-enhancement
+ will be ignored.
+
+2019-09-21 13:39:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
+ g_return_val_fail() documentations says:
+ If expr evaluates to FALSE, the current function should be
+ considered to have undefined behaviour (a programmer error).
+ The only correct solution to such an error is to change the
+ module that is calling the current function, so that it avoids
+ this incorrect call.
+ So it was missused in a couple parts of the H264 and H265 internal
+ decoders. This patch changes that to plain conditionals.
+ Also, it was included a couple code-style fixes.
+
+2019-09-23 19:52:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * tests/simple-encoder.c:
+ * tests/test-fei-enc-in.c:
+ libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
+ Since GstVaapiEncoder is a descendant of of GstObject, there is no
+ need to keep a custom ref()/unref() methods. This patch deletes them.
+
+2019-09-24 01:03:02 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ libs: encoder: correct encoder's ref/unref function.
+ GstVaapiEncoder now is a standard gstobject and need to use
+ gst_object_ref/unref functions.
+
+2019-09-19 12:09:20 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapiencode_h264_fei.c:
+ gst: encode: h264_fei: remove useless comparison
+ The expression "len >= 0" is always true since "len"
+ is an unsigned type. And it is clear that the writers
+ intention was not to write "len > 0" since we handle
+ len == 0 in the ensuing "if (len < 3)" conditional
+ block.
+
+2019-09-19 11:17:24 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ libs: encoder: h264_fei: fix potential overflow before widen
+ Found by static analysis. encoder->mb_width * encoder->mb_height
+ is evaluated using 32-bit arithmetic before widen. Thus, cast
+ at least one of these to guint64 to avoid overflow.
+
+2019-09-19 10:56:13 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ libs: encoder: h264_fei: remove dead error condition
+ Found by static analysis. The feipak is always null
+ when we reach the error target.
+
+2019-09-19 10:49:11 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: utils: add missing break in switch
+
+2019-09-11 11:56:35 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/video-format.c:
+ libs: video-format: Make all YUV format available
+ The YUV formats have no ambiguity for drivers, so we can add them all.
+ Some old driver(i965) does not implement full get/put image functions
+ but can use derive image funtions for the YUV format. It does not
+ report that kind of formats correctly in image query, but will derive
+ that YUV format image from surface. The dynamic mapping of YUV format
+ will block that manner.
+ Adding more YUV format mapping has no side effect. So considering the
+ legacy driver conformance, we add all YUV formats mapping statically
+ and dynamic mapping RBG formats
+ Fix: #189
+ Fix: #190
+
+2019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
+ * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
+ egl: Fix racyness in display thread creation
+ Multiple different scenarios could break the display thread creation and
+ end up blocking waiting for thread o be created. Fix them all by
+ correctly waiting for a new boolean to become valid.
+
+2019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
+ egl: don't advertise a wrapped EGLContext as actually wrapped
+ It's not actually wrapped as we create a new EGLContext from the passed
+ in EGLContext. As a result, the created EGLContext was never destroyed.
+
+2019-09-16 23:28:31 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ libs: h264decoder: do not return error for unhandled NAL unit.
+ Some streams have error data introducing unknown NAL type. There are
+ also kinds of NAL types we do not want to handle. The old manner will
+ set a decoder error when encounter this, which cause a latent crash bug.
+ The decoder may successfully decode the picture and insert it into DPB.
+ But there are error NAL units after the AU which cause the post unit error
+ and make that frame dropped. The later output of the picture still want
+ to ref that frame and crash.
+ No need to set decoder error when can not recognize or handle the NAL
+ unit, just skip it and continue.
+ Fix: #191
+
+2019-09-11 14:32:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
+ * gst/vaapi/gstvaapiencode.c:
+ libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
+ This patch makes use of GST_PARAM_USER_SHIFT to define the internal
+ param in encoders to decide which parameters to expose. Thus
+ gstreamer-vaapi will not interfere with any change in GStreamer in the
+ future.
+ Also, the internal symbol was change to
+ GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
+
+2019-09-09 18:06:51 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiimage.c:
+ * gst-libs/gst/vaapi/video-format.c:
+ libs: Add BGR10A2_LE support for color space conversion.
+ Fix: #179
+
+2019-08-23 14:41:06 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ libs: surface: add pointer check for surface_new_from_formats.
+ The command line:
+ gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
+ vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink
+ will crash on i965 driver because of no pointer check.
+ We now generate the video format map between GST format and VA format
+ dynamically based on the image format returned by vaQueryImageFormats.
+ i965 driver does to report image format of 444P and Y800 forcc, while
+ the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
+ not recognize these format and pass a NULL pointer to
+ gst_vaapi_surface_new_from_formats.
+ We need to add a pointer check here and let the fallback logic handle
+ this case correctly.
+ Other drivers work well.
+
+2019-09-07 13:23:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: utils: guard the VAEntrypointFEI symbol
+ VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
+
+2019-09-05 14:48:22 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ * gst-libs/gst/vaapi/video-format.c:
+ * gst-libs/gst/vaapi/video-format.h:
+ libs: video-format: Refine the video format mapping.
+ Improve the mapping between va format and gst format. The new map
+ will be generated dynamically, based on the query result of image
+ format in VA driver. Also consider the ambiguity of RGB color
+ format in LSB mode.
+
+2019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com>
+
+ * gst/vaapi/gstvaapipluginutil.c:
+ pluginutil: Remove Mesa from drivers white list
+ The Mesa Gallium driver is poorly tested currently, leading to bad user
+ experience for AMD users. The driver can be added back to the white list at
+ runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
+
+2019-07-08 14:18:00 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ * gst/vaapi/gstvaapipostproc.h:
+ * gst/vaapi/gstvaapipostprocutil.c:
+ vaapipostproc: allow cropping via properties
+ Add crop-left, crop-right, crop-top and crop-bottom
+ properties to vaapipostproc.
+
+2019-08-30 17:31:45 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: rotate outbuf and crop meta if forwarding
+ When forwarding crop meta to downstream, the output
+ buffer and crop meta need to be rotated, too.
+ Test:
+ for i in 90r 180 90l vert horiz ul-lr ur-ll
+ do
+ gst-launch-1.0 -vf videotestsrc num-buffers=500 \
+ ! videocrop top=100 bottom=30 left=40 right=20 \
+ ! vaapipostproc video-direction=$i \
+ ! vaapisink & \
+ gst-launch-1.0 -vf videotestsrc num-buffers=500 \
+ ! videocrop top=100 bottom=30 left=40 right=20 \
+ ! vaapipostproc video-direction=$i \
+ ! identity drop-allocation=true \
+ ! vaapisink
+ done
+
+2019-08-30 14:14:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: fix output buffer WxH for crop meta forwarding
+ Adding crop meta x,y to w,h only compensates for left,top
+ cropping. But we also need to compensate for right,bottom
+ cropping.
+ The video meta contains the appropriate w,h (uncropped)
+ values, so use it instead.
+ Test:
+ gst-launch-1.0 -vf videotestsrc num-buffers=500 \
+ ! videocrop top=50 bottom=30 left=40 right=20 \
+ ! vaapipostproc ! vaapisink & \
+ gst-launch-1.0 -vf videotestsrc num-buffers=500 \
+ ! videocrop top=50 bottom=30 left=40 right=20 \
+ ! vaapipostproc ! identity drop-allocation=1 \
+ ! vaapisink
+
+2019-09-04 10:52:51 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: handle size and direction together in src events
+ Mapping a pointer event needs to consider both size and
+ video-direction operations together, not just one or the other.
+ This fixes an issue where x,y were not being mapped correctly
+ for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
+ the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set. Thus,
+ the first condition in the pointer event handling was entered and
+ x,y scale factor were incorrectly computed due to srcpad WxH
+ swap.
+ This also fixes all cases where both video-direction and scaling
+ are enabled at the same time.
+ Test that all pointer events map appropriately:
+ for i in `seq 0 7`
+ do
+ GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
+ ! vaapipostproc video-direction=${i} width=300 \
+ ! vaapisink
+ GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
+ ! vaapipostproc video-direction=${i} width=300 height=200 \
+ ! vaapisink
+ GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
+ ! vaapipostproc video-direction=${i} height=200 \
+ ! vaapisink
+ GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
+ ! vaapipostproc video-direction=${i} \
+ ! vaapisink
+ done
+
+2019-08-20 14:22:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ * gst/vaapi/gstvaapipostproc.h:
+ vaapipostproc: advertise crop meta is handled
+ Advertise to upstream that vaapipostproc can handle
+ crop meta.
+ When used in conjunction with videocrop plugin, the
+ videocrop plugin will only do in-place transform on the
+ crop meta when vaapipostproc advertises the ability to
+ handle it. This allows vaapipostproc to apply the crop
+ meta on the output buffer using vaapi acceleration.
+ Without this advertisement, the videocrop plugin will
+ crop the output buffer directly via software methods,
+ which is not what we desire.
+ vaapipostproc will not apply the crop meta if downstream
+ advertises crop meta handling; vaapipostproc will just
+ forward the crop meta to downstream. If crop meta is
+ not advertised by downstream, then vaapipostproc will
+ apply the crop meta.
+ Examples:
+ 1. vaapipostproc will forward crop meta to vaapisink
+ gst-launch-1.0 videotestsrc \
+ ! videocrop left=10 \
+ ! vaapipostproc \
+ ! vaapisink
+ 2. vaapipostproc will do the cropping
+ gst-launch-1.0 videotestsrc \
+ ! videocrop left=10 \
+ ! vaapipostproc \
+ ! identity drop-allocation=1 \
+ ! vaapisink
+
+2019-08-29 18:44:36 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
+ libs: encoder: clean two virtual func in encoder class
+ set_property and get_default_properties functions are no longer
+ needed for encoder class.
+
+2019-08-29 18:43:30 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
+ libs: encoder: delete old set_property and property enum feienc264
+
+2019-08-29 18:39:27 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
+ libs: encoder: delete old set_property and property enum in h264 fei
+
+2019-08-29 18:37:58 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
+ libs: encoder: delete old set_property and property enum in vp9
+
+2019-08-29 18:36:51 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
+ libs: encoder: delete old set_property and property enum in vp8
+
+2019-08-29 18:35:59 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
+ libs: encoder: delete old set_property and property enum in mpeg2
+
+2019-08-29 18:34:57 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
+ libs: encoder: delete old set_property and property enum in jpeg
+
+2019-08-29 18:31:56 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
+ libs: encoder: delete old set_property and property enum in h265
+
+2019-08-29 18:30:07 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
+ libs: encoder: delete old set_property and property enum in h264
+
+2019-08-29 18:17:42 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
+ libs: encoder: delete EncoderPropInfo related functions
+
+2019-08-29 16:13:19 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ libs: encoder: delete encoder_set_property
+ We no longer need this obsolete set_property function now after
+ switch to standard gobject's property manner.
+ Also delete the old encoder's property enum in the header file.
+
+2019-08-29 15:59:43 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
+ libs: encoder: delete properties_get_default for base class
+
+2019-08-29 15:52:04 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode.c:
+ * gst/vaapi/gstvaapiencode.h:
+ plugin: encode: delete useless init_properties.
+ Also delete the get_properties function in encode class. We now
+ use g_object_class_list_properties to get all properties for
+ internal encoder class.
+
+2019-08-29 15:43:45 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode.c:
+ * gst/vaapi/gstvaapiencode.h:
+ plugin: encode: delete set/get_property func in encode class
+ Use standard gobject's property functions to replace the old way.
+
+2019-08-29 15:31:16 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode.c:
+ * gst/vaapi/gstvaapiencode.h:
+ plugin: encode: delete gst_vaapiencode_init_properties
+ No need to init the properties got by get_default_properties func
+ now. The properties are inited correctly in internal encoder class.
+
+2019-08-29 15:19:10 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
+ libs: encoder: delete 3 useless init macro
+
+2019-08-29 15:16:26 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
+ libs: encoder: delete get_default_properties of feienc
+
+2019-08-29 15:14:14 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
+ libs: encoder: delete get_default_properties of H264 Fei
+
+2019-08-29 15:07:17 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
+ libs: encoder: delete get_default_properties of VP9
+
+2019-08-29 15:06:25 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
+ libs: encoder: delete get_default_properties of VP8
+
+2019-08-29 15:03:52 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
+ libs: encoder: delete get_default_properties of MPEG2
+
+2019-08-29 15:03:19 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
+ libs: encoder: delete get_default_properties of JPEG
+
+2019-08-30 19:15:38 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
+ libs: encoder: delete get_default_properties of H265
+
+2019-08-29 14:59:12 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
+ libs: encoder: delete get_default_properties of H264
+
+2019-08-29 14:53:59 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ libs: encoder: delete the useless constructed func for encoder.
+
+2019-08-26 23:16:33 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
+ libs: encoder: implement get_view_ids for h264 encoder.
+
+2019-08-20 23:56:33 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst/vaapi/gstvaapiencode.c:
+ * gst/vaapi/gstvaapiencode_h264.c:
+ * gst/vaapi/gstvaapiencode_h264_fei.c:
+ * gst/vaapi/gstvaapiencode_h265.c:
+ * gst/vaapi/gstvaapiencode_jpeg.c:
+ * gst/vaapi/gstvaapiencode_mpeg2.c:
+ * gst/vaapi/gstvaapiencode_vp8.c:
+ * gst/vaapi/gstvaapiencode_vp9.c:
+ gst: encode: enable new type of property mechanism.
+
+2019-08-20 22:16:35 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapiencode.c:
+ * gst/vaapi/gstvaapiencode.h:
+ gst: encode: add property help functions for encoder properties.
+ The encoder is a true gstobject now and all the properties are using
+ gobject's properties mechanism. Add help functions to handle the properties
+ between encode and encoder class.
+ The basic idea is mapping the same property between encoder and encode. All
+ the encoder's properties will have the same name, the same type in encode.
+ The set/get property function just forward the property setting/getting to
+ the encoder using the same property name and value. Because the encoder is
+ created on needed, we need to cache the property setting in encode.
+
+2019-08-30 18:39:32 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
+ libs: encoder: add flags to all encoder properties.
+ G_PARAM_CONSTRUCT make all properties init correctly, we do not
+ need to init the properties manually.
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
+ flag, means need to expose the property to according encode class.
+
+2019-08-20 17:00:39 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ libs: encoder: Add properties for h264 encoder fei.
+ Install properties for h264 encoder fei class. Also set the new get/set
+ property functions for gobject class. Still use the old properties
+ way now and this new feature will be enabled later.
+
+2019-08-20 15:58:30 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
+ libs: encoder: Add properties for h264 fei encoder.
+ Install properties for h264 fei encoder class. Also set the new get/set
+ property functions for gobject class. Still use the old properties
+ way now and this new feature will be enabled later.
+
+2019-08-20 15:29:27 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ libs: encoder: Add properties for vp9 encoder.
+ Install properties for vp9 encoder class. Also set the new get/set
+ property functions for gobject class. Still use the old properties
+ way now and this new feature will be enabled later.
+
+2019-08-20 15:01:02 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
+ libs: encoder: Add properties for vp8 encoder.
+ Install properties for vp8 encoder class. Also set the new get/set
+ property functions for gobject class. Still use the old properties
+ way now and this new feature will be enabled later.
+
+2019-08-20 14:31:58 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
+ libs: encoder: Add properties for mpeg2 encoder.
+ Install properties for mpeg2 encoder class. Also set the new get/set
+ property functions for gobject class. Still use the old properties
+ way now and this new feature will be enabled later.
+
+2019-08-20 14:53:06 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
+ libs: encoder: Add properties for jpeg encoder.
+ Install properties for jpeg encoder class. Also set the new get/set
+ property functions for gobject class. Still use the old properties
+ way now and this new feature will be enabled later.
+
+2019-08-20 14:12:36 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: Add properties for h265 encoder.
+ Install properties for h265 encoder class. Also set the new get/set
+ property functions for gobject class. Still use the old properties
+ way now and this new feature will be enabled later.
+
+2019-08-20 01:33:40 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ libs: encoder: Add properties for h264 encoder.
+ Install properties for h264 encoder class. Also set the new get/set
+ property functions for gobject class. Still use the old properties
+ way now and this new feature will be enabled later.
+
+2019-08-19 15:38:09 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ libs: encoder: add properties and prop help functions
+ Add all common properties to encoder base class. rate-control and
+ tune are moved to sub class.
+
+2019-08-29 14:38:49 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
+ libs: encoder: delete useless gst_vaapi_encoder_new func.
+ GstVaapiEncoder is a abstract gobject and never be created directly.
+
+2019-07-27 00:55:53 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
+ * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
+ lib: encoder: gstobjectfy all vaapi encoders.
+ Replace all gstvaapiobject in vaapi encoders with standard gstobject.
+ Let the gstobject common logic to handle all the init and finalize
+ works. But the property install/set/get still use the old way, need
+ to be improved later.
+
+2019-08-29 12:11:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: check for filter before appending caps
+ While ensuring the allowed sink pad caps, the filter attributes set
+ the frame size restriction, but it is not ensured, at that moment,
+ that the filter is already instantiaded.
+ In order to silence the glib logs, this patch add only calls
+ gst_vaapi_filter_append_caps() if the filter is instantiated.
+
+2019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/vaapi/gstvaapidecodebin.c:
+ Classify vaapidecodebin as a hardware decoder
+
+2019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ libs: postproc: fix a memory leak point.
+ filter_ops and filter_formats should already have valid value when
+ the function gst_vaapipostproc_ensure_filter_caps re-enter
+
+2019-08-27 01:30:36 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_core.c:
+ libs: util: Fix a memory leak in config_surface_attributes_get
+
+2019-08-22 14:33:54 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: support transform ROI meta
+ This will benefit the use case like:
+ src ---> encode ---> decode ---> circle ROI ---> sink
+ | |
+ --> analyse to -->
+ get ROI
+
+2019-08-23 19:10:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/vaapi/gstvaapidecodedoc.c:
+ docstrings: port ulinks to markdown links
+
+2019-08-20 17:05:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/Makefile.am:
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
+ * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
+ * gst-libs/gst/vaapi/meson.build:
+ libs: remove context's overlay
+ The context overlay was an optimization to apply a video composition
+ to all the surfaces bound to a context.
+ But since commit 18031dc6 this optimization was disabled, so it is
+ better just get rid of it.
+
+2019-08-20 16:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.c:
+ * gst-libs/gst/vaapi/gstvaapisurface.h:
+ * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
+ * gst/vaapi/gstvaapipluginutil.c:
+ * tests/test-subpicture.c:
+ libs: remove surface's parent context
+ In commit 18031dc6 surface's parent context is not assigned because of
+ circular references. Since then (2013), there's has no issue with
+ subpictures attached to a context, the current only users of this API.
+ This patch cleans up all of related code with the unused surface's
+ parent context.
+
+2019-08-18 13:53:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: guard if no structure is available in caps
+
+2019-08-18 13:53:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapifilter.h:
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: append frame size restrictions in caps
+
+2019-08-18 13:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
+ libs: profilecaps: refactor common code
+
+2019-08-16 19:35:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapiencode.c:
+ vaapiencode: set frame size restrictions in caps
+ Fixes: #12
+
+2019-08-16 19:28:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst/vaapi/gstvaapiencode.c:
+ vaapiencode: enhance how the profile is defined
+ This code doesn't define the profile used by the internal encoder, but
+ it used to "predict" which is going to be used and to get the caps
+ restrictions.
+ Before the profile was predicted by checking the donwstream caps, but
+ sometimes they are not defined, setting an unknown profile. In order
+ to enhances this situation, the encoder asks to internal encoder if it
+ has one. If so, it is used.
+ To ask the internal encoder's profile a new accessor function was
+ added: gst_vaapi_encoder_get_profile()
+
+2019-08-16 19:26:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
+ * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
+ libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
+ Previously it was just a boilerplate. Now it is real implementation.
+
+2019-08-16 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: utils: treat va_rt_format as bitwise flag
+ The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
+ is a bitwise flag with *all* the supported chroma types.
+ Previously it was assumed that the return value was a single value,
+ thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
+ simple case. But it is wrong.
+ This patch changes the case block with a sequence of ifs testing the
+ bitwise. For now we assume a "priority" list in the testing sequence.
+
+2019-08-16 18:07:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ * gst-libs/gst/vaapi/gstvaapiprofile.c:
+ * gst-libs/gst/vaapi/gstvaapiprofile.h:
+ * tests/test-display.c:
+ libs: profile: add gst_vaapi_profile_get_va_name()
+ gst_vaapi_profile_get_name() returns a proper name for
+ GstCaps. Nonetheless, there are many profiles which don't have a name
+ representation for that realm.
+ gst_vaapi_profile_get_va_name() returns the name of the profile
+ according to its VAProfile name.
+ This new funtion is used in the encoder error message.
+
+2019-08-05 19:47:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/Makefile.am:
+ * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
+ * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
+ * gst-libs/gst/vaapi/meson.build:
+ * gst/vaapi/gstvaapidecode.c:
+ libs: profilecaps: move caps config into a new file
+ Implement all the appending of frame size restrictions in caps, for
+ encoders and decoders, in a new source file.
+
+2019-08-05 19:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder.c:
+ libs: decoder: ref the caps as property
+
+2019-08-02 16:56:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ * gst-libs/gst/vaapi/gstvaapicontext.h:
+ libs: context: add gst_vaapi_context_get_surface_attributes()
+ This function copies the surface attributes from the context's object
+ to the caller.
+
+2019-08-02 12:46:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
+ * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ * gst-libs/gst/vaapi/gstvaapiutils.h:
+ libs: move memory types conversions to gstvaapiutils
+ And add more supported memory types by current VA.
+
+2019-08-01 19:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_core.c:
+ * gst-libs/gst/vaapi/gstvaapiutils_core.h:
+ libs: utils: remove unused function gst_vaapi_get_surface_formats()
+
+2019-08-01 19:46:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapicontext.c:
+ * gst-libs/gst/vaapi/gstvaapicontext.h:
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ libs: context, filter: use new surface attributes API
+
+2019-08-01 19:13:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_core.c:
+ * gst-libs/gst/vaapi/gstvaapiutils_core.h:
+ libs: utils: add gst_vaapi_config_surface_attributes_get()
+ To extract the surface restrictions per config using a new structure:
+ GstVaapiConfigSurfaceAttributes
+
+2019-07-31 13:08:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_core.c:
+ Split the surface attribute retrieval
+
+2019-07-15 21:51:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: handle navigation downstream event
+ When navigation events contains coordiantes those have to be mapped
+ to the new size and/or orientation.
+
+2019-07-15 21:23:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * tests/elements/test-vaapisink.c:
+ test-vaapisink: also use vaapipostproc to change orientation
+
+2019-07-15 21:27:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapifilter.h:
+ * gst/vaapi/gstvaapipostproc.c:
+ * gst/vaapi/gstvaapipostproc.h:
+ * gst/vaapi/gstvaapipostprocutil.c:
+ vaapipostproc: handle image-orientation upstream event
+ Now that vaapipostproc can possible handle video-direction, it
+ should also handle the image-orientation event from upstream if
+ video-direction property is set to auto.
+
+2019-07-26 22:09:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: add missing locks when adding flags
+
+2019-07-26 22:05:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: update filter before fixate caps
+ It is requiered to know if postproc is capable to change the video
+ direction before fixating the source caps.
+ In order to do it, it'ss required to know if there's a functional VPP,
+ but that's checked at create() vmethod, which occurs after caps
+ fixating.
+ This patch checks for a functional VPP at fixate caps and, if so,
+ checks for the enabled filtes and later do the caps fixations.
+
+2019-07-26 19:46:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapivalue.c:
+ * gst-libs/gst/vaapi/gstvaapivalue.h:
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: element warning if video direction is unsupported
+ If the video direction is unsupported by the driver, an element
+ warning is posted in the bus to notify the application.
+ gst_vaapi_enum_type_get_nick() was added in the library thus it can
+ be used elsewhere. It retrives the nick from an enum gtype.
+
+2019-07-26 19:09:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ libs: filter: check mirror and rotation caps only once
+ This patch locks the display before querying the pipeline caps and
+ stores the mirror and rotation capabilities, thus they are not queried
+ every time the video direction is set.
+
+2019-08-16 19:51:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ libs: encoder: vp9: set VP9_0 profile as default
+ Commit 0afc8131 introduced a regression and only NV12 format were
+ admitted, failing in any other valid color format.
+ This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
+
+2019-08-16 13:25:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ libs: filter: fail if first color balance value is invalid
+
+2019-08-06 19:24:08 +0800 Yan Wang <yan.wang@linux.intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ * gst-libs/gst/vaapi/gstvaapiutils.h:
+ libs: filter: set all color balance values
+ When set multiple settings of color balance like hue, saturation,
+ brightness and contrast for vaapipostproc, they should be set as
+ parameters of color balance filter, at the same color balance
+ filter calling.
+ Otherwise, multiple color balance filter calling will cause
+ previous setting get reset by the last calling with default value.
+ Fixes #182.
+ Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
+
+2019-08-16 11:02:08 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ libs: h265dec: remove limitation of get iq matrix
+ According hevc spec, scaling_list_data is not related
+ to chroma_format_idc.
+
+2019-05-30 23:52:51 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapivideopool.c:
+ libs: videopool: fix undocumented behavior and counting
+ gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
+ because it locks twice the same mutex.
+ Also, n had different meanings in the current code: as an increase
+ value and as a new total of allocated surfaces.
+ This patche removes the undocumented behavoir (usually a deadlock) and
+ fixes the meaning of n as the new total of allocated surfaces.
+ Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+2019-07-17 11:56:45 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: utils: Add missing entries for string_of_VAEntrypoint.
+
+2019-07-18 22:01:01 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ libs: encoder: Consider vp9 profiles based on input format.
+ Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
+ Fix: #184
+
+2019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapivideomemory.c:
+ vaapivideomemory: demote error message to info
+ The main reason to demote the message's level is because it is not an
+ error, it's a possible output of the trial and there's a code path
+ that handles it.
+ Secondly, it's very annoying when using gallium driver for radeon.
+
+2019-07-18 13:32:46 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
+ * gst-libs/gst/vaapi/gstvaapitypes.h:
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ * gst-libs/gst/vaapi/gstvaapivalue.c:
+ libs: encoder: h264: support ICQ/QVBR bitrate control mode
+ ICQ is Intelligent Constant Quality. It will use the initial QP
+ vaule of icq-quality-factor to adjust QP at MB level intelligently
+ to improve subjective quality.
+ QVBR is Quality defined VBR. It will use qvbr-quality-factor to
+ adjust QP for each MB to get enough quality picture without waste
+ of bits.
+
+2019-08-05 10:51:24 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapitypes.h:
+ libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
+ The value return from GST_VAAPI_RATECONTROL_MASK will be used by
+ GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
+ deal with unsigned int. Otherwise there may be an error of out of
+ range of integer if we define few more rate-control mode.
+
+2019-06-07 09:54:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapidecodebin.c:
+ vaapidecodebin: set queue's max size buffers to 1
+ Otherwise the queue will swallow all the available decoder's surfaces
+ reaching a dead-lock.
+ This setting might impact the bin's peformance, but it's a trade-off.
+
+2019-06-07 09:53:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapidecodebin.c:
+ vaapidecodebin: set properties default values
+
+2019-05-31 13:12:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: don't error if can't push buffers downtream
+ When the code path goes to push buffers downstream when no surface
+ available in decoder context, and it fails the code bails out with a
+ fatal error.
+ That behavior is wrong, since it shouldn't be fatal. The use case is
+ when the video stream is disabled.
+ This patch just ignores the errors in this situation and demotes the
+ level of a log message.
+
+2019-05-18 13:24:35 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
+ libs: encoder: h264,h265: add new property "max-qp"
+ Add new property "max-qp" to allow set the maximum quantisation
+ parameter values.
+
+2019-05-23 10:18:52 -0400 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ libs: encoder: vp9: add low power mode encode
+ By now, this feature only support by media-driver on Ice Lake
+ platform, more information you can reference:
+ https://github.com/intel/media-driver
+
+2019-07-15 15:33:07 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipostprocutil.c:
+ vaapipostproc: update PAR when rotating
+ When rotating, swap pixel-aspect-ratio during
+ negotiation.
+ Fixes #181
+
+2019-07-01 15:26:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ * gst-libs/gst/vaapi/gstvaapiutils.h:
+ * gst/vaapi/gstvaapipostprocutil.c:
+ vaapipostproc: add rotation support
+ Adds vpp rotation support to vaapipostproc. Uses
+ property video-direction. Default is identity (no
+ rotation).
+ Closes #104
+
+2019-05-22 10:47:30 -0400 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
+ Intel media-driver requires enablement of diff_cu_qp_delta_depth when
+ cu_qp_delta_enabled_flag enabled.
+ Fixes: #177
+
+2019-07-01 17:02:33 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: encoder: Add MB ratecontrol mode to get its string
+
+2019-07-01 16:52:00 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ libs: encoder: refine guard of bitrate control mode
+ Remove useless guard of all bitrate control mode's guard except MB
+ which is define in VA-API version 0.39.1.
+
+2019-06-29 00:08:40 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
+ h264: Update for parse_vui_params parameter removal.
+ Update calls to the h264 parser lib for removal of the
+ parse_vui_params parameter.
+
+2019-06-24 16:26:56 -0400 Wang Zhanjun <zhanjunx.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
+ libs: dec: vp9: do not use display size as decoded size
+ If display size is smaller than current frame size, then the crop size
+ will be set as display size, which either crashes the pipeline or the
+ output MD5 does not match. Rather it should use the actual decoded size.
+ This patch removes the cropping set. For rendering we can use aspect
+ ratio to set display size.
+ Fixes #175
+ Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
+ Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
+
+2019-06-28 16:32:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * README:
+ Update README
+
+2019-06-25 19:11:12 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
+ * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
+ libs: dec: h265: Consider chroma_bit_depth to choose chrome type
+ For some main-10 stream, sometime the luma is 8 bits while chrome is more
+ than 8 bits, which cause using the wrong NV12 surface as the render target
+ and decoding error.
+ Fix #176
+
+2019-06-25 10:31:20 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst/vaapi/gstvaapidecode.c:
+ vaapidecode: set initial decode format according surface chroma type
+ For surfaces with different chroma type, it is prefer to initialize
+ a format which chroma type should be same with surface chroma type
+ instead of using fixed NV12.
+
+2019-05-30 09:48:51 -0400 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
+ * gst-libs/gst/vaapi/gstvaapiimage.c:
+ * gst-libs/gst/vaapi/video-format.c:
+ * gst/vaapi/gstvaapidecode.c:
+ * gst/vaapi/gstvaapipluginutil.h:
+ libs: decoder: jpeg: add support 400/411/422/444 chroma type
+ When create vaapi surface, it is better to use the chroma type get
+ from jpeg file instead of using fixed 420 format. And the correct
+ chroma type can be determined by horizontal_factor/vertical_factor
+ flags that get from jpegparse.
+
+2019-06-22 00:05:24 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
+ libs: dec: h265: Fix profile_idc mapping.
+ The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
+ wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
+ happened to be the correct value.
+ We only support Annex A profile_idc (1-4).
+
+2019-06-10 20:46:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapipluginbase.c:
+ plugins: remove last negotiated video info if caps are same
+ If the allocation caps and negotiated caps are the same,
+ then ensure any previously negotiated video info is also
+ removed. This can occur when multi-resolution video
+ decoding returns to it's original resolution.
+ Fixes #170
+
+2019-06-10 20:39:28 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst/vaapi/gstvaapivideomemory.c:
+ vaapivideomemory: allow negotiated info to be removed
+ Allow NULL negotiated_vinfo to be passed into
+ gst_allocator_set_vaapi_negotiated_video_info to allow
+ any previously set info to be removed.
+
+2019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
+ libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
+ When input frame's formate changes, vp{8,9} encoders don't reset their frame
+ counter, hence the newly created frame could become a P-frame, leading to some
+ major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
+ prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
+ GstVaapiEncoderVP9 implementations.
+
+2019-05-31 12:30:03 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ libs: encoder: increase bitrate prop max value
+ There are many profile levels that can support
+ more than 102400 kbps. Thus, increase the max
+ allowed bitrate property value from 102400 kbps
+ to 2048000 kbps (same as msdk encoder plugins).
+
+2019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
+ libs: mpeg2 encoder: No packed header for SPS and PPS
+ Dislable passing down packed PPS and PPS to driver if driver does
+ not want it.
+ Fix: #168
+
+2019-05-31 23:10:33 +0200 Niels De Graef <niels.degraef@barco.com>
+
+ * configure.ac:
+ * meson.build:
+ * tests/output.c:
+ meson: Bump minimal GLib version to 2.44
+ This means we can use some newer features and get rid of some
+ boilerplate code using the G_DECLARE_* macros.
+ As discussed on IRC, 2.44 is old enough by now to start depending on it.
+
+2019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
+ libs: dec: vp9: clear parser pointer after release
+ Fix an use-after-release of the parser pointer in VP9 decoder.
+
+2019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru>
+
+ * gst/vaapi/gstvaapiencode.c:
+ vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
+ This fixes a deadlock in gst_vaapiencode_change_state, which was due to
+ srcpad's chain function was locked waiting for available buffers. Since the
+ coded buffers in codedbuf_queue become available after sinkpad consume the
+ encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
+ are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
+ available buffers and holds the stream_lock of the srcpad.
+
+2019-05-29 23:08:22 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst-libs/gst/vaapi/gstvaapitypes.h:
+ * gst/vaapi/gstvaapidecodebin.c:
+ * gst/vaapi/gstvaapidecodedoc.c:
+ * gst/vaapi/gstvaapiencode_h264.c:
+ * gst/vaapi/gstvaapiencode_h264_fei.c:
+ * gst/vaapi/gstvaapiencode_h265.c:
+ * gst/vaapi/gstvaapiencode_jpeg.c:
+ * gst/vaapi/gstvaapiencode_mpeg2.c:
+ * gst/vaapi/gstvaapiencode_vp8.c:
+ * gst/vaapi/gstvaapiencode_vp9.c:
+ * gst/vaapi/gstvaapipostproc.c:
+ * gst/vaapi/gstvaapisink.c:
+ doc: remove xml from comments
+
+2019-05-13 16:39:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapifilter.c:
+ * gst-libs/gst/vaapi/gstvaapifilter.h:
+ * gst-libs/gst/vaapi/gstvaapiutils.c:
+ * gst-libs/gst/vaapi/gstvaapiutils.h:
+ * gst/vaapi/gstvaapipostproc.c:
+ * gst/vaapi/gstvaapipostproc.h:
+ vaapipostproc: add mirror support
+ Adds vpp mirroring support to vaapipostproc. Use
+ property video-direction. Valid values are identity,
+ horiz or vert. Default is identity (no mirror).
+ Closes #89
+ v2: Use GstVideoOrientationMethod enum
+ v3: Don't warn for VA_MIRROR_NONE.
+ Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
+ v4: Query VAAPI caps when setting mirror value
+ instead of during per-frame processing.
+ v5: Return TRUE in warning cases when setting mirror value.
+
+2019-05-29 01:35:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
+ * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
+ * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
+ * gst/vaapi/gstvaapidecodebin.c:
+ * gst/vaapi/gstvaapisink.c:
+ doc: fix some incorrect gtk-doc links
+
+2019-05-16 09:22:42 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/gst_plugins_cache.json:
+ docs: Update plugin cache
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
+
+2019-05-16 16:46:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurface.h:
+ libs: surface: fix documentation format
+
+2019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
+ When enable low delay B, the reference list 1 will be same with
+ reference list 0, so need reset the num_ref_idx_l1_active_minus1
+ to num_ref_idx_l0_active_minus1.
+ Fixes: #160
+
+2019-05-13 19:05:43 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/meson.build:
+ meson: Fix call to wrong function
+
+2018-10-22 11:48:29 +0200 Thibault Saunier <tsaunier@igalia.com>
+
+ * Makefile.am:
+ * configure.ac:
+ * docs/Makefile.am:
+ * docs/gst_plugins_cache.json:
+ * docs/index.md:
+ * docs/meson.build:
+ * docs/plugins/Makefile.am:
+ * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
+ * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
+ * docs/plugins/gstreamer-vaapi-plugins.types:
+ * docs/plugins/inspect/plugin-vaapi.xml:
+ * docs/plugins/running.xml:
+ * docs/sitemap.txt:
+ * docs/version.entities.in:
+ * gst/vaapi/meson.build:
+ * meson.build:
+ * meson_options.txt:
+ docs: Port to hotdoc
+
+2019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
+ libs: encoder: not call ensure_num_slices inside g_assert
+ g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
+ defined. The function inside the g_assert will take no effect and
+ we will fail to set the correct slice number.
+
+2019-04-29 09:52:39 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
+ libs: h265: dec: Add extension flags setting.
+ Use VAPictureParameterBufferHEVCExtension&
+ VASliceParameterBufferHEVCExtension to pass extension setting from
+ some extension profile clips which may include these information.
+ The hevc extension setting only supported after libva release 2.2.0
+ (API 1.2.0).
+
+2019-05-01 12:56:55 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
+ libs: encoder: add target-percentage property
+ Allow users to set the target-percentage for
+ variable rate controls. The default value is
+ 70 (as hard-coded prior).
+ v2: minimum allowed value changed from 0 to 1
+ v3: target-percentage unchanged if CBR used
+ Resolves #129
+
+2019-05-09 00:09:21 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
+
+2019-05-08 23:39:20 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
+ * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
+ libs: encoder: Enable trellis quantization method.
+ The advanced trellis algorithm is supported in VA driver. We add
+ its support as a property named "trellis" of encoder.
+ It only works for H264 now, should be more in future.
+
+2019-05-07 11:03:51 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
+ libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
+ According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
+ type, so we need to add subsampling_x&subsampling_y to fix it.
+ Here is the relationship between chroma type and profile and
+ subsampling_x&subsampling_y according to vp9 spec:
+ ------------------------------------------
+ Profile | Bit depth | Chroma subsampling |
+ ------------------------------------------
+ 0 | 8 | 420 |
+ ------------------------------------------
+ 1 | 8 | 422,440,444 |
+ ------------------------------------------
+ 2 | 10, 12 | 420 |
+ ------------------------------------------
+ 3 | 10, 12 | 422,440,444 |
+ ------------------------------------------
+ -----------------------------------------------
+ Subsampling_x | Subsampling_y | Chroma format |
+ -----------------------------------------------
+ 0 | 0 | 444 |
+ -----------------------------------------------
+ 0 | 1 | 440 |
+ -----------------------------------------------
+ 1 | 0 | 422 |
+ -----------------------------------------------
+ 1 | 1 | 420 |
+ -----------------------------------------------
+
+2019-04-16 18:33:54 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiimage.c:
+ * gst-libs/gst/vaapi/video-format.c:
+ libs: Add packed 24 RGB format support.
+ Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
+ packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
+ type. This kind of surface will just be created by new API with fourcc
+ and no old style chrome based creation is available.
+ fixes: #151
+
+2019-03-15 14:29:41 +0800 Wangfei <fei.w.wang@intel.com>
+
+ * gst/vaapi/gstvaapiencode.c:
+ * gst/vaapi/gstvaapiencode_h264.c:
+ * gst/vaapi/gstvaapiencode_h264_fei.c:
+ * gst/vaapi/gstvaapiencode_h265.c:
+ * gst/vaapi/gstvaapiencode_jpeg.c:
+ * gst/vaapi/gstvaapiencode_mpeg2.c:
+ * gst/vaapi/gstvaapiencode_vp8.c:
+ * gst/vaapi/gstvaapiencode_vp9.c:
+ vaapiencode: handle DMABuf caps feature in sink pad
+ Add DMABuff caps features in all encoders' sink pad.
+
+2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder.c:
+ libs: encoder: continue if roi meta is NULL
+ Coverity scan bug:
+ If the function actually returns a null value, a null pointer
+ dereference will occur.
+ In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
+ function which returns null is dereferenced without checking
+
+2019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
+ lib: decoder: vp9: Set chroma_type by VP9 bit_depth
+ The decoder's surface chroma type should depend on the bit depth
+ of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
+ 10 bits surface as the decoder result.
+ Fixes #155
+
+2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst/vaapi/gstvaapipostprocutil.c:
+ vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
+ https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
+ with commit 3e992d8a
+ Since gst_vaapi_find_preferred_caps_feature() returns a color format
+ from caps negotiation, different from the default one (NV12), the
+ postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
+ feature is negotiated, no color transformation shall be done.
+ Nonetheless, with commit 3e992d8a the requested format changes
+ firstly, because there's no video sink yet, so ANY caps are
+ negotiated; but later, when there's a video sink and a caps
+ renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
+ format conversion still ongoing. It is required to reset that
+ conversion.
+ This patch force default color format when GL_TEXTURE_UPLOAD is
+ selected as preferred, thus avoiding the color conversion.
+ Fixes: #157
+
+2019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com>
+
+ * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
+ libs: surface: fix double free when dmabuf export fails
+ Happens if vaAcquireBufferHandle fails.
+
+2019-04-29 20:10:39 +0800 He Junyan <junyan.he@hotmail.com>
+
+ * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
+ libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
+
+2019-04-19 10:43:35 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * RELEASE:
+ * configure.ac:
+ * docs/plugins/inspect/plugin-vaapi.xml:
+ * meson.build:
+ Back to development
+
=== release 1.16.0 ===
2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
@@ -14904,8 +18721,6 @@
* configure.ac:
Bump version for development.
-=== release 0.5.9 ===
-
2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* AUTHORS:
@@ -16584,8 +20399,6 @@
* configure.ac:
Bump version for development.
-=== release 0.5.8 ===
-
2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* debian.upstream/control.in:
@@ -18598,8 +22411,6 @@
* configure.ac:
Bump version for development.
-=== release 0.5.7 ===
-
2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* gst/vaapi/Makefile.am:
@@ -19599,8 +23410,6 @@
* configure.ac:
Bump version for development.
-=== release 0.5.6 ===
-
2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* NEWS:
@@ -20147,8 +23956,6 @@
* configure.ac:
Bump version for development.
-=== release 0.5.5 ===
-
2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
@@ -20686,8 +24493,6 @@
* configure.ac:
Bump version for development.
-=== release 0.5.4 ===
-
2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* NEWS:
@@ -21234,8 +25039,6 @@
* configure.ac:
Bump version for development.
-=== release 0.5.3 ===
-
2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* NEWS:
@@ -21733,8 +25536,6 @@
* configure.ac:
Bump version for development.
-=== release 0.5.2 ===
-
2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* NEWS:
@@ -22220,8 +26021,6 @@
* configure.ac:
Bump version for development.
-=== release 0.5.1 ===
-
2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* NEWS:
@@ -22686,8 +26485,6 @@
* configure.ac:
Bump version for development.
-=== release 0.5.0 ===
-
2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* NEWS:
@@ -25723,8 +29520,6 @@
* configure.ac:
Bump version for development.
-=== release 0.3.6 ===
-
2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* configure.ac:
@@ -26038,8 +29833,6 @@
bitstream. i.e. the direct slice() information. VA drivers will be fixed
accordingly.
-=== release 0.3.5 ===
-
2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* gst/vaapi/gstvaapidecode.c:
@@ -26213,8 +30006,6 @@
* configure.ac:
Bump version for development.
-=== release 0.3.4 ===
-
2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* NEWS:
@@ -26492,8 +30283,6 @@
* configure.ac:
Bump version for development.
-=== release 0.3.3 ===
-
2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* NEWS:
@@ -26927,8 +30716,6 @@
* configure.ac:
Bump version for development.
-=== release 0.3.2 ===
-
2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* NEWS:
@@ -27056,8 +30843,6 @@
* configure.ac:
Bump version for development.
-=== release 0.3.1 ===
-
2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* NEWS:
@@ -27238,8 +31023,6 @@
* gst-libs/gst/video/gstbasevideoutils.h:
Drop unused copy of GstBaseVideoDecoder.
-=== release 0.3.0 ===
-
2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
* NEWS:
@@ -27670,8 +31453,6 @@
* tests/Makefile.am:
Fix build with libva headers not in a standard include dir.
-=== release 0.2.6 ===
-
2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
* configure.ac:
@@ -27886,8 +31667,6 @@
* gst-libs/gst/vaapi/gstvaapicompat.h:
Fix build with older VA-API 0.29-sds.
-=== release 0.2.4 ===
-
2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
* gst/vaapisink/gstvaapisink.c:
@@ -27921,8 +31700,6 @@
* configure.ac:
Bump version for development.
-=== release 0.2.3 ===
-
2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
* NEWS:
@@ -27999,8 +31776,6 @@
* configure.ac:
Bump version for development.
-=== release 0.2.2 ===
-
2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
* NEWS:
@@ -28069,8 +31844,6 @@
* gst/vaapisink/gstvaapisink.c:
Use XGetGeometry() to retrieve the window size.
-=== release 0.2.1 ===
-
2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
* gst/vaapisink/gstvaapisink.c:
@@ -28221,8 +31994,6 @@
* configure.ac:
Bump version for development.
-=== release 0.2.0 ===
-
2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
* NEWS:
@@ -28935,8 +32706,6 @@
* configure.ac:
Bump version for development.
-=== release 0.1.2 ===
-
2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
* configure.ac:
@@ -29606,8 +33375,6 @@
* configure.ac:
Bump version for development.
-=== release 0.1.1 ===
-
2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
* gst-libs/gst/vaapi/gstvaapiutils_x11.c:
@@ -30137,8 +33904,6 @@
* configure.ac:
Bump version for development.
-=== release 0.1.0 ===
-
2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
* configure.ac: