Hello community,
here is the log from the commit of package gstreamer-plugins-vaapi for
openSUSE:Factory checked in at 2019-06-14 20:24:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-vaapi (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-vaapi.new.4811 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-vaapi"
Fri Jun 14 20:24:41 2019 rev:33 rq:707917 version:1.14.5
Changes:
--------
---
/work/SRC/openSUSE:Factory/gstreamer-plugins-vaapi/gstreamer-plugins-vaapi.changes
2018-10-12 13:10:21.635328208 +0200
+++
/work/SRC/openSUSE:Factory/.gstreamer-plugins-vaapi.new.4811/gstreamer-plugins-vaapi.changes
2019-06-14 20:24:42.850794803 +0200
@@ -1,0 +2,8 @@
+Fri May 31 22:33:31 UTC 2019 - Bjørn Lie <[email protected]>
+
+- Update to version 1.14.5:
+ + Thread-safety and memory leak fixes.
+ + Improve caps negotiation if downstream takes ANY caps.
+ + Fix build with -DG_DISABLE_ASSERT.
+
+-------------------------------------------------------------------
Old:
----
gstreamer-vaapi-1.14.4.tar.xz
New:
----
gstreamer-vaapi-1.14.5.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-vaapi.spec ++++++
--- /var/tmp/diff_new_pack.IOOoQS/_old 2019-06-14 20:24:44.098794399 +0200
+++ /var/tmp/diff_new_pack.IOOoQS/_new 2019-06-14 20:24:44.102794398 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gstreamer-plugins-vaapi
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%define gst_branch 1.0
Name: gstreamer-plugins-vaapi
-Version: 1.14.4
+Version: 1.14.5
Release: 0
Summary: Gstreamer VA-API plugins
License: LGPL-2.1-or-later
++++++ gstreamer-vaapi-1.14.4.tar.xz -> gstreamer-vaapi-1.14.5.tar.xz ++++++
++++ 1925 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/ChangeLog new/gstreamer-vaapi-1.14.5/ChangeLog
--- old/gstreamer-vaapi-1.14.4/ChangeLog 2018-10-03 00:14:40.000000000
+0200
+++ new/gstreamer-vaapi-1.14.5/ChangeLog 2019-05-29 19:10:28.000000000
+0200
@@ -1,3 +1,153 @@
+=== release 1.14.5 ===
+
+2019-05-29 18:10:27 +0100 Tim-Philipp Müller <[email protected]>
+
+ * ChangeLog:
+ * NEWS:
+ * configure.ac:
+ * gstreamer-vaapi.doap:
+ * meson.build:
+ Release 1.14.5
+
+2019-05-29 18:10:27 +0100 Tim-Philipp Müller <[email protected]>
+
+ * docs/plugins/inspect/plugin-vaapi.xml:
+ Update docs
+
+2019-05-11 19:29:26 +0200 He Junyan <[email protected]>
+
+ * gst/vaapi/gstvaapidecode.c:
+ * gst/vaapi/gstvaapipluginbase.c:
+ * gst/vaapi/gstvaapipluginbase.h:
+ * gst/vaapi/gstvaapipostproc.c:
+ * gst/vaapi/gstvaapisink.c:
+ plugins: Add more check for allowed raw caps.
+ The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
+ pad and src pad, which cause some bugs. For sink pad, we need to
verify
+ vaPutImage() while for the src pad we need to verify vaGetImage().
+ For vaapidecoderXXX kind of plugins, the case is more complex. We need
+ to verify whether the decoded result(in some surface, NV12 format most
+ of the time) can be vaGetImage to some raw image format. Add more
check
+ to fix all these problems.
+ Fixes: #123
+ Signed-off-by: He Junyan's avatarHe Junyan <[email protected]>
+
+2018-11-28 05:56:44 +0200 Jordan Petridis <[email protected]>
+
+ * gst/vaapi/gstvaapisink.c:
+ Run gst-indent through the files
+ This is required before we enabled an indent test in the CI.
+ https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
+
+2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <[email protected]>
+
+ * 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-05-10 18:29:10 +0800 He Junyan <[email protected]>
+
+ * 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.
+
https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/87
+
+2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <[email protected]>
+
+ * 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-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <[email protected]>
+
+ * gst/vaapi/gstvaapipluginutil.c:
+ plugin: if any caps in downstream, negotiate raw video
+ When downstream has any caps, vaapi should not shovel vaapi featured
+ buffers, but rather plain raw video, assuming always the worst case
+ scenario (downstream cannot handle featured video memory but raw
+ system memory buffers).
+ This patch query the peer caps without any filter, to know if
+ donwstream just ask for any caps, if so jump to the color space
+ checking, otherwise do the caps intersection and continue with the
+ feature selection algorithm.
+ Fixes: #139
+
+2019-02-13 10:39:59 -0500 Adam Jackson <[email protected]>
+
+ * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
+ glx: Stop specifying GLX_DEPTH_SIZE
+ This code is just confused. It's asking for at least as many bits of
+ (z-axis) depth as the root window has bits of (color) depth. For
rgb565
+ or rgb888 this is harmless, but at 10 bits per channel this demands a
+ 30-bit or deeper Z buffer. While some hardware could in principle do a
+ 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on
Intel
+ and AMD).
+ We're not actually using the Z buffer, so just stop asking for one.
+
+2019-01-15 14:33:11 +0800 Wangfei <[email protected]>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: before set surface proxy, check if it already been
created and exist.
+ Fix the deinterlace black frame when playing with glimagesink:
+ gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
+ ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
+
+2018-12-18 10:44:21 +0800 Wangfei <[email protected]>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: fix csc fail when only change width or height.
+
+2018-11-20 16:07:44 +0800 Xiang, Haihao <[email protected]>
+
+ * gst/vaapi/gstvaapivideomemory.c:
+ Close dmabuf_fd
+ Otherwise it will result in resource leak when failed to create
+ dmabuf memory
+
+2018-11-14 11:34:20 +0100 Michael Olbrich <[email protected]>
+
+ * gst/vaapi/gstvaapipostproc.c:
+ vaapipostproc: add some missing locking
+ gst_vaapi_plugin_base_close() removed the raw caps that are used
indirectly
+ in gst_vaapipostproc_transform_caps(). The usage is already protected
by
+ the mutex.
+ This is needed when the pipeline is stopped during startup.
+
+2018-11-12 13:39:51 +0100 Michael Olbrich <[email protected]>
+
+ * gst/vaapi/gstvaapiencode.c:
+ vaapiencode: don't start src pad task in set_format
+ Otherwise the task may be restarted during shutdown. Start the task in
+ gst_vaapiencode_handle_frame() instead.
+
+2019-02-08 09:21:28 +0300 Denis Nagorny <[email protected]>
+
+ * gst-libs/gst/vaapi/gstvaapidisplay.c:
+ libs: display: lock ensure_profile()
+ Thread safety patch for ensure_profile() function
+ Fixes #133
+
=== release 1.14.4 ===
2018-10-02 23:14:39 +0100 Tim-Philipp Müller <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/NEWS new/gstreamer-vaapi-1.14.5/NEWS
--- old/gstreamer-vaapi-1.14.4/NEWS 2018-10-03 00:14:38.000000000 +0200
+++ new/gstreamer-vaapi-1.14.5/NEWS 2019-05-29 19:10:26.000000000 +0200
@@ -5,13 +5,16 @@
GStreamer 1.14.0 was originally released on 19 March 2018.
-The latest bug-fix release in the 1.14 series is 1.14.3 and was released
-on 16 September 2018.
+The latest bug-fix release in the 1.14 series is 1.14.5 and was released
+on 29 May 2019.
+
+1.14.5 will likely be the last release in the 1.14 release series which
+has now been superseded by the 1.16 release series.
See https://gstreamer.freedesktop.org/releases/1.14/ for the latest
version of this document.
-_Last updated: Sunday 16 September 2018, 13:00 UTC (log)_
+_Last updated: Wednesday 29 May 2019, 12:00 UTC (log)_
Introduction
@@ -1519,6 +1522,187 @@
list of changes. For the full list of changes please refer to the GIT
logs or ChangeLogs of the particular modules.
+1.14.5
+
+The fifth and likely last 1.14 bug-fix release (1.14.5) was released on
+29 May 2019.
+
+This release only contains bugfixes and it should be safe to update from
+1.14.x.
+
+Highlighted bugfixes in 1.14.5
+
+GStreamer core
+
+- aggregator: take the pad lock around queue gap event removal
+- aggregator: don’t leak gap buffer when out of segment
+- buffer: fix possible memory corruption in gst_buffer_foreach_meta()
+ when removing metas
+- bus: Make removing of signal/bus watches thread-safe
+- bus: Don’t allow removing signal watches with gst_bus_remove_watch()
+- controlbinding: Check if the weak pointer was cleared before
+ explicitly removing it
+- ptp clock: Wait for ANNOUNCE before selecting a master; increase
+ tolerance for late follow-up and delay-resp
+- segment: Allow stop == -1 in gst_segment_to_running_time() and
+ negative rate
+- g-i: annotations fixes
+
+gst-plugins-base
+
+- audioconvert: fix endianness conversion for unpacked formats
+ (e.g. S24_32BE)
+- audioringbuffer: Fix wrong memcpy address when reordering channels
+- decodebin2: Make sure to remove pad probes when freeing
+ GstDecodeGroup
+- glviewconvert: fix output when a transformation matrix is used
+- glupload: prevent segfault when updating caps
+- gl/egl: Determine correct format on dmabuf import
+- glupload: dmabuf: be explicit about gl formats used
+- id3tag: validate the year from v1 tags before passing to GstDateTime
+- rtpbasepayload: fix sequence numbers when using buffer lists
+- rtspconnection: fix security issue, potential heap overflow
+ (CVE-2019-9928)
+- rtspconnection: fix GError set over the top of a previous GError
+- rtspconnection: do not duplicate authentication headers
+- subparse: don’t assert when failing to parse subrip timestamp
+- video: various convert sample frame fixes
+- video-converter: fix conversion from I420_10LE/BE, I420_12LE/BE,
+ A420_10LE/BE to BGRA/RGBA which created corrupted output
+- video-format: Fix GBRA_10/12 alpha channel pixel strides
+
+gst-plugins-good
+
+- flv: Use 8kHz sample rate for alaw/mulaw audio
+- flvdemux: Do not error out if the first added and chained pad is not
+ linked
+- flvmux: try harder to make sure timestamps are always increasing
+- gdkpixbufdec: output a TIME segment which is what’s expected for raw
+ video
+- matroskademux: fix handling of MS ACM audio
+- matroska: fix handling of FlagInterlaced
+- pulsesink: Deal with not being able to convert a format to caps
+- rtph265depay, rtph264depay; aggregation packet marker handling fixes
+- rtpmp4gdepay: detect broken senders who send AAC with ADTS frames
+- rtprawdepay: keep buffer pool around when flushing/seeking
+- rtpssrcdemux: Forward serialized events to all pads
+- qmlglsink: Handle OPENGL header guard changes
+- qtdemux: fix track language code parsing; ignore corrupted CTTS box
+- qtmux: Correctly set tkhd width/height to the display size
+- splitmuxsink: various timecode meta handling fixes
+- splitmuxsink: make work with audio-only encoders as muxers,
+ e.g. wavenc
+- v4l2sink: fix pool-less allocation query handling
+- v4l2dec/enc: fix use after free when handling events
+- vpx: Fix build against libvpx 1.8
+- webmmux: allow resolutions above 4096
+
+gst-plugins-ugly
+
+- sid: Fix cross-compilation by using AC_TRY_LINK instead of
+ AC_TRY_RUN
+- x264: Only enable dynamic loading code for x264 before v253
+
+gst-plugins-bad
+
+- assrender: fix disappearing subtitles when seeking back in time
+- decklinkvideosink: fix segfault when audiosink is closed before
+ videosink
+- decklinkvideosrc: respect pixel format property even if mode is set
+ to auto
+- d3dvideosink: Fix calculating buffer size of packed format; don’t
+ leak thread object
+- dtls: Don’t abort on non-fatal issues, make work with newer OpenSSL
+ versions
+- msdk: more robust error handling; fix intel sdk libdir path
+- nvenc: Ensure drain all frames on finish; fix element reuse and
+ clean up properly
+- openh264dec: Fix handling of errors when doing EOS
+- shmsrc: fixes a crash when is-live is true due a race condition
+- shmsink: fix possible (racy) deadlock on shutdown
+- siren: Fix invalid floating point operation
+- tsdemux: Skew correction improvements: use upstream DTS if set
+- wasapi: number of segments was always 2 (the absolute minimum) by
+ accident
+- wasapi: Fix infinite loop when the device disappears
+
+gst-libav
+
+- libav: Update internal snapshot to ffmpeg n3.4.6
+- avdemux: fix negative pts if start_time is bigger than the ts
+
+gst-rtsp-server
+
+- rtsp-client: Fix crash in close handler and remove timeout GSource
+ on cleanup
+- rtsp-stream: Use cached address when allocating sockets
+- rtsp-media: Handle set state when preparing
+- rtsp-media: Fix race condition in finish_unprepare
+- rtsp-stream: Use seqnum-offset for rtpinfo
+- rtsp-stream: add source elements to the pipeline before activation
+ for stream-status create message
+
+gst-editing-services
+
+- Fix compilation with latest GLib
+- layer: Resort clips before syncing priorities
+- timeline: Better handle loading inconsistent timelines
+
+gstreamer-vaapi
+
+- thread-safety and memory leak fixes
+- improve caps negotiation if downstream takes ANY caps
+- fix build with -DG_DISABLE_ASSERT
+
+gst-omx
+
+- fix caps leak
+
+cerbero
+
+- Add support for MacOSX 10.14, iOS 12.1, Fedora 29/30, Linux Mint
+ Tara (19)
+- Miscellaneous tarball download / error handling improvements
+- disable parallel builds by default on Windows
+
+Contributors to 1.14.5
+
+Aaron Boxer, Adam Jackson, Aleix Conchillo Flaqué, Alexandru Băluț,
+Alicia Boya García, Andreas Frisch, Antonio Ospite, Arun Raghavan,
+Benjamin Berg, Brad Reitmeyer, Christopher Snowhill, Daniel Drake,
+Daniel Stone, Dardo D Kleiner, David Ing, Denis Nagorny, Edward Hervey,
+Erlend Eriksen, Florent Thiéry, Freyr666, Göran Jönsson, Guillaume
+Desmottes, Haihao Xiang, Haihua Hu, Havard Graff, He Junyan, Helmut
+Grohne, Ilya Smelykh, Jacek Tomaszewski, James Cowgill, Jan Alexander
+Steffens (heftig), Jan Schmidt, Johan Bjäreholt, Jordan Petridis, Josep
+Torra, Joshua M. Doe, Justin Kim, Kristofer Bjorkstrom, Lars Petter
+Endresen, Lars Wiréen, Linus Svensson, Lucas Stach, Maciej Wolny,
+Marc-André Lureau, Marc Leeman, Marcos Kintschner, Marco Trevisan
+(Treviño), Marouen Ghodhbane, Matej Knopp, Mathieu Duponchelle, Matthew
+Waters, Michael Olbrich, Michael Tretter, mrk501, Naveen Cherukuri,
+Nicola Murino, Nicolas Dufresne, Niels De Graef, Nirbheek Chauhan,
+okuoku, Olivier Crête, Patricia Muscalu, Per Forlin, Peter Körner,
+Philippe Normand, Philipp Zabel, Roland Jon, Russel Winder, Santiago
+Carot-Nemesio, Sebastian Dröge, Seungha Yang, Sjoerd Simons, Thiago
+Santos, Thibault Saunier, Tim-Philipp Müller, Tobias Ronge, Tomislav
+Tustonić, U. Artie Eoff, Víctor Manuel Jáquez Leal, Vincenzo Bono, Vivia
+Nikolaidou, Wangfei, Wim Taymans, Xabier Rodriguez Calvar, Xavier
+Claessens, Xiang, Haihao, Yeongjin Jeong, and many others. Thank you
+all!
+
+List of bugs fixed in 1.14.5
+
+For a full list of bugfixes see Bugzilla. Note that this is not the full
+list of changes. For the full list of changes please refer to the GIT
+logs or ChangeLogs of the particular modules.
+
+During the release cycle issue and patch tracking moved from bugzilla to
+gitlab, so information about this release may be on either of those two
+trackers.
+
+MRs with milestone 1.14.5:
+https://gitlab.freedesktop.org/groups/gstreamer/-/merge_requests?scope=all&utf8=%E2%9C%93&state=all&milestone_title=1.14.5
+
Known Issues
@@ -1541,12 +1725,8 @@
unstable development version leading up to the stable 1.16 release. The
development of 1.15/1.16 will happen in the git master branch.
-The plan for the 1.16 development cycle is yet to be confirmed, but it
-is expected that feature freeze will be around September 2018 followed
-by several 1.15 pre-releases and the new 1.16 stable release in October.
-
-1.16 will be backwards-compatible to the stable 1.14, 1.12, 1.10, 1.8,
-1.6, 1.4, 1.2 and 1.0 release series.
+1.16.0 was released on 19 April 2019 and is backwards-compatible to the
+stable 1.14, 1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/configure.ac new/gstreamer-vaapi-1.14.5/configure.ac
--- old/gstreamer-vaapi-1.14.4/configure.ac 2018-10-03 00:13:48.000000000
+0200
+++ new/gstreamer-vaapi-1.14.5/configure.ac 2019-05-29 19:09:36.000000000
+0200
@@ -1,7 +1,7 @@
# gstreamer-vaapi package version number
m4_define([gst_vaapi_major_version], [1])
m4_define([gst_vaapi_minor_version], [14])
-m4_define([gst_vaapi_micro_version], [4])
+m4_define([gst_vaapi_micro_version], [5])
m4_define([gst_vaapi_nano_version], [0])
m4_define([gst_vaapi_version],
[gst_vaapi_major_version.gst_vaapi_minor_version.gst_vaapi_micro_version])
@@ -16,17 +16,17 @@
dnl - interfaces added -> increment AGE
dnl - interfaces removed -> AGE = 0
# gstreamer-vaapi library (libtool) version number
-m4_define([gst_vaapi_lt_current], [1404])
+m4_define([gst_vaapi_lt_current], [1405])
m4_define([gst_vaapi_lt_revision], [0])
-m4_define([gst_vaapi_lt_age], [1404])
+m4_define([gst_vaapi_lt_age], [1405])
# glib version number
m4_define([glib_version], [2.40])
# gstreamer version number
-m4_define([gst_version], [1.14.4])
-m4_define([gst_plugins_base_version], [1.14.4])
-m4_define([gst_plugins_bad_version], [1.14.4])
+m4_define([gst_version], [1.14.5])
+m4_define([gst_plugins_base_version], [1.14.5])
+m4_define([gst_plugins_bad_version], [1.14.5])
# Wayland minimum version number
m4_define([wayland_api_version], [1.0.2])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/docs/plugins/html/gstreamer-vaapi-plugins-plugin-vaapi.html
new/gstreamer-vaapi-1.14.5/docs/plugins/html/gstreamer-vaapi-plugins-plugin-vaapi.html
---
old/gstreamer-vaapi-1.14.4/docs/plugins/html/gstreamer-vaapi-plugins-plugin-vaapi.html
2018-10-03 00:14:43.000000000 +0200
+++
new/gstreamer-vaapi-1.14.5/docs/plugins/html/gstreamer-vaapi-plugins-plugin-vaapi.html
2019-05-29 19:10:31.000000000 +0200
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.14.4</td>
+<td>1.14.5</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/docs/plugins/inspect/plugin-vaapi.xml
new/gstreamer-vaapi-1.14.5/docs/plugins/inspect/plugin-vaapi.xml
--- old/gstreamer-vaapi-1.14.4/docs/plugins/inspect/plugin-vaapi.xml
2018-10-03 00:14:39.000000000 +0200
+++ new/gstreamer-vaapi-1.14.5/docs/plugins/inspect/plugin-vaapi.xml
2019-05-29 19:10:27.000000000 +0200
@@ -3,7 +3,7 @@
<description>VA-API based elements</description>
<filename>../../gst/vaapi/.libs/libgstvaapi.so</filename>
<basename>libgstvaapi.so</basename>
- <version>1.14.4</version>
+ <version>1.14.5</version>
<license>LGPL</license>
<source>gstreamer-vaapi</source>
<package>gstreamer-vaapi</package>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapidecode.c
new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapidecode.c
--- old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapidecode.c 2018-09-16
17:37:53.000000000 +0200
+++ new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapidecode.c 2019-05-17
10:19:22.000000000 +0200
@@ -238,8 +238,9 @@
out_caps = gst_caps_make_writable (out_caps);
gst_caps_append (out_caps, gst_caps_from_string
(GST_VAAPI_MAKE_DMABUF_CAPS));
- raw_caps = gst_vaapi_plugin_base_get_allowed_raw_caps
- (GST_VAAPI_PLUGIN_BASE (decode));
+ raw_caps = gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps
+ (GST_VAAPI_PLUGIN_BASE (decode),
+ GST_VIDEO_INFO_FORMAT (&decode->decoded_info));
if (!raw_caps) {
gst_caps_unref (out_caps);
GST_WARNING_OBJECT (decode, "failed to create raw sink caps");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapiencode.c
new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapiencode.c
--- old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapiencode.c 2018-03-23
21:47:55.000000000 +0100
+++ new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapiencode.c 2019-05-09
01:03:06.000000000 +0200
@@ -591,7 +591,6 @@
gst_vaapiencode_set_format (GstVideoEncoder * venc, GstVideoCodecState * state)
{
GstVaapiEncode *const encode = GST_VAAPIENCODE_CAST (venc);
- gboolean ret;
g_return_val_if_fail (state->caps != NULL, FALSE);
@@ -610,12 +609,6 @@
encode->input_state = gst_video_codec_state_ref (state);
encode->input_state_changed = TRUE;
- ret = gst_pad_start_task (GST_VAAPI_PLUGIN_BASE_SRC_PAD (encode),
- (GstTaskFunction) gst_vaapiencode_buffer_loop, encode, NULL);
-
- if (!ret)
- return FALSE;
-
/* Store some tags */
{
GstTagList *tags = gst_tag_list_new_empty ();
@@ -650,16 +643,24 @@
GstVideoCodecFrame * frame)
{
GstVaapiEncode *const encode = GST_VAAPIENCODE_CAST (venc);
+ GstPad *const srcpad = GST_VAAPI_PLUGIN_BASE_SRC_PAD (encode);
GstVaapiEncoderStatus status;
GstVaapiVideoMeta *meta;
GstVaapiSurfaceProxy *proxy;
GstFlowReturn ret;
GstBuffer *buf;
+ GstTaskState task_state;
#if USE_H264_FEI_ENCODER
GstVaapiFeiVideoMeta *feimeta = NULL;
GstVaapiEncodeClass *const klass = GST_VAAPIENCODE_GET_CLASS (venc);
#endif
+ task_state = gst_pad_get_task_state (srcpad);
+ if (task_state == GST_TASK_STOPPED || task_state == GST_TASK_PAUSED)
+ if (!gst_pad_start_task (srcpad,
+ (GstTaskFunction) gst_vaapiencode_buffer_loop, encode, NULL))
+ goto error_task_failed;
+
buf = NULL;
ret = gst_vaapi_plugin_base_get_input_buffer (GST_VAAPI_PLUGIN_BASE (encode),
frame->input_buffer, &buf);
@@ -697,6 +698,13 @@
return GST_FLOW_OK;
/* ERRORS */
+error_task_failed:
+ {
+ GST_ELEMENT_ERROR (venc, RESOURCE, FAILED,
+ ("Failed to start encoding thread."), (NULL));
+ gst_video_codec_frame_unref (frame);
+ return GST_FLOW_ERROR;
+ }
error_buffer_invalid:
{
if (buf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapipluginbase.c
new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapipluginbase.c
--- old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapipluginbase.c 2018-05-16
01:23:36.000000000 +0200
+++ new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapipluginbase.c 2019-05-17
10:19:22.000000000 +0200
@@ -1253,51 +1253,96 @@
#endif
}
+static GArray *
+extract_allowed_surface_formats (GstVaapiDisplay * display,
+ GArray * img_formats, GstVideoFormat specified_format,
+ GstPadDirection direction)
+{
+ guint i;
+ GArray *out_formats;
+ GstVaapiSurface *surface = NULL;
+
+ g_assert (direction == GST_PAD_SRC || direction == GST_PAD_SINK);
+
+ out_formats =
+ g_array_sized_new (FALSE, FALSE, sizeof (GstVideoFormat),
+ img_formats->len);
+ if (!out_formats)
+ return NULL;
+
+ for (i = 0; i < img_formats->len; i++) {
+ const GstVideoFormat img_format =
+ g_array_index (img_formats, GstVideoFormat, i);
+ GstVaapiImage *image;
+ GstVideoInfo vi;
+ GstVideoFormat surface_format;
+ gboolean res;
+
+ if (img_format == GST_VIDEO_FORMAT_UNKNOWN)
+ continue;
+
+ surface_format =
+ (specified_format == GST_VIDEO_FORMAT_UNKNOWN) ?
+ img_format : specified_format;
+ if (!surface) {
+ gst_video_info_set_format (&vi, surface_format, 64, 64);
+ surface = gst_vaapi_surface_new_full (display, &vi, 0);
+ if (!surface)
+ continue;
+ }
+
+ image = gst_vaapi_image_new (display, img_format, 64, 64);
+ if (!image) {
+ /* Just reuse the surface if the format is specified */
+ if (specified_format == GST_VIDEO_FORMAT_UNKNOWN)
+ gst_vaapi_object_replace (&surface, NULL);
+
+ continue;
+ }
+
+ res = FALSE;
+ if (direction == GST_PAD_SRC) {
+ res = gst_vaapi_surface_get_image (surface, image);
+ } else {
+ res = gst_vaapi_surface_put_image (surface, image);
+ }
+ if (res)
+ g_array_append_val (out_formats, img_format);
+
+ gst_vaapi_object_unref (image);
+ /* Just reuse the surface if the format is specified */
+ if (specified_format == GST_VIDEO_FORMAT_UNKNOWN)
+ gst_vaapi_object_replace (&surface, NULL);
+ }
+
+ if (out_formats->len == 0) {
+ g_array_unref (out_formats);
+ return NULL;
+ }
+ return out_formats;
+}
+
static gboolean
-ensure_allowed_raw_caps (GstVaapiPluginBase * plugin)
+ensure_allowed_raw_caps (GstVaapiPluginBase * plugin, GstVideoFormat format,
+ GstPadDirection direction)
{
GArray *formats, *out_formats;
- GstVaapiSurface *surface;
GstVaapiDisplay *display;
- guint i;
GstCaps *out_caps;
gboolean ret = FALSE;
if (plugin->allowed_raw_caps)
return TRUE;
- out_formats = formats = NULL;
- surface = NULL;
-
+ out_formats = NULL;
display = gst_vaapi_display_ref (plugin->display);
formats = gst_vaapi_display_get_image_formats (display);
if (!formats)
goto bail;
-
out_formats =
- g_array_sized_new (FALSE, FALSE, sizeof (GstVideoFormat), formats->len);
+ extract_allowed_surface_formats (display, formats, format, direction);
if (!out_formats)
goto bail;
-
- surface =
- gst_vaapi_surface_new (display, GST_VAAPI_CHROMA_TYPE_YUV420, 64, 64);
- if (!surface)
- goto bail;
-
- for (i = 0; i < formats->len; i++) {
- const GstVideoFormat format = g_array_index (formats, GstVideoFormat, i);
- GstVaapiImage *image;
-
- if (format == GST_VIDEO_FORMAT_UNKNOWN)
- continue;
- image = gst_vaapi_image_new (display, format, 64, 64);
- if (!image)
- continue;
- if (gst_vaapi_surface_put_image (surface, image))
- g_array_append_val (out_formats, format);
- gst_vaapi_object_unref (image);
- }
-
out_caps = gst_vaapi_video_format_new_template_caps_from_list (out_formats);
if (!out_caps)
goto bail;
@@ -1311,25 +1356,41 @@
g_array_unref (formats);
if (out_formats)
g_array_unref (out_formats);
- if (surface)
- gst_vaapi_object_unref (surface);
gst_vaapi_display_unref (display);
return ret;
}
/**
- * gst_vaapi_plugin_base_get_allowed_raw_caps:
+ * gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps:
+ * @plugin: a #GstVaapiPluginBase
+ *
+ * Returns the raw #GstCaps allowed by the element.
+ *
+ * Returns: the allowed raw #GstCaps or %NULL
+ **/
+GstCaps *
+gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps (GstVaapiPluginBase *
plugin)
+{
+ if (!ensure_allowed_raw_caps (plugin, GST_VIDEO_FORMAT_UNKNOWN,
GST_PAD_SINK))
+ return NULL;
+ return plugin->allowed_raw_caps;
+}
+
+/**
+ * gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps:
* @plugin: a #GstVaapiPluginBase
+ * @format: a #GstVideoFormat, the format we need to check
*
* Returns the raw #GstCaps allowed by the element.
*
* Returns: the allowed raw #GstCaps or %NULL
**/
GstCaps *
-gst_vaapi_plugin_base_get_allowed_raw_caps (GstVaapiPluginBase * plugin)
+gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps (GstVaapiPluginBase *
+ plugin, GstVideoFormat format)
{
- if (!ensure_allowed_raw_caps (plugin))
+ if (!ensure_allowed_raw_caps (plugin, format, GST_PAD_SRC))
return NULL;
return plugin->allowed_raw_caps;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapipluginbase.h
new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapipluginbase.h
--- old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapipluginbase.h 2018-03-23
21:47:55.000000000 +0100
+++ new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapipluginbase.h 2019-05-17
10:19:22.000000000 +0200
@@ -251,7 +251,12 @@
G_GNUC_INTERNAL
GstCaps *
-gst_vaapi_plugin_base_get_allowed_raw_caps (GstVaapiPluginBase * plugin);
+gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps (GstVaapiPluginBase *
plugin);
+
+G_GNUC_INTERNAL
+GstCaps *
+gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps (
+ GstVaapiPluginBase * plugin, GstVideoFormat format);
G_GNUC_INTERNAL
void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapipluginutil.c
new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapipluginutil.c
--- old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapipluginutil.c 2018-07-18
18:43:21.000000000 +0200
+++ new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapipluginutil.c 2019-05-09
01:05:12.000000000 +0200
@@ -591,21 +591,31 @@
{
GstVaapiCapsFeature feature = GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED;
guint i, j, num_structures;
- GstCaps *out_caps, *caps = NULL;
+ GstCaps *peer_caps, *out_caps = NULL, *caps = NULL;
static const guint feature_list[] = { GST_VAAPI_CAPS_FEATURE_VAAPI_SURFACE,
GST_VAAPI_CAPS_FEATURE_DMABUF,
GST_VAAPI_CAPS_FEATURE_GL_TEXTURE_UPLOAD_META,
GST_VAAPI_CAPS_FEATURE_SYSTEM_MEMORY,
};
- out_caps = gst_pad_peer_query_caps (pad, allowed_caps);
- if (!out_caps)
+ /* query with no filter */
+ peer_caps = gst_pad_peer_query_caps (pad, NULL);
+ if (!peer_caps)
goto cleanup;
-
- if (gst_caps_is_any (out_caps) || gst_caps_is_empty (out_caps))
+ if (gst_caps_is_empty (peer_caps))
goto cleanup;
+ /* filter against our allowed caps */
+ out_caps = gst_caps_intersect_full (allowed_caps, peer_caps,
+ GST_CAPS_INTERSECT_FIRST);
+
+ /* default feature */
feature = GST_VAAPI_CAPS_FEATURE_SYSTEM_MEMORY;
+
+ /* if downstream requests caps ANY, system memory is preferred */
+ if (gst_caps_is_any (peer_caps))
+ goto find_format;
+
num_structures = gst_caps_get_size (out_caps);
for (i = 0; i < num_structures; i++) {
GstCapsFeatures *const features = gst_caps_get_features (out_caps, i);
@@ -638,13 +648,14 @@
if (!caps)
goto cleanup;
+find_format:
if (out_format_ptr) {
GstVideoFormat out_format;
GstStructure *structure;
const GValue *format_list;
/* if the best feature is SystemMemory, we should use the first
- * caps in the peer caps set, which is the preferred by
+ * caps in the filtered peer caps set, which is the preferred by
* downstream. */
if (feature == GST_VAAPI_CAPS_FEATURE_SYSTEM_MEMORY)
gst_caps_replace (&caps, out_caps);
@@ -666,6 +677,7 @@
cleanup:
gst_caps_replace (&caps, NULL);
gst_caps_replace (&out_caps, NULL);
+ gst_caps_replace (&peer_caps, NULL);
return feature;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapipostproc.c
new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapipostproc.c
--- old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapipostproc.c 2018-03-23
21:47:55.000000000 +0100
+++ new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapipostproc.c 2019-05-17
10:19:22.000000000 +0200
@@ -318,6 +318,7 @@
{
GstVaapiPostproc *const postproc = GST_VAAPIPOSTPROC (trans);
+ g_mutex_lock (&postproc->postproc_lock);
ds_reset (&postproc->deinterlace_state);
gst_vaapi_plugin_base_close (GST_VAAPI_PLUGIN_BASE (postproc));
@@ -325,6 +326,7 @@
gst_video_info_init (&postproc->sinkpad_info);
gst_video_info_init (&postproc->srcpad_info);
gst_video_info_init (&postproc->filter_pool_info);
+ g_mutex_unlock (&postproc->postproc_lock);
return TRUE;
}
@@ -721,13 +723,15 @@
if (!outbuf_meta)
goto error_create_meta;
- proxy =
- gst_vaapi_surface_proxy_new_from_pool (GST_VAAPI_SURFACE_POOL
- (postproc->filter_pool));
- if (!proxy)
- goto error_create_proxy;
- gst_vaapi_video_meta_set_surface_proxy (outbuf_meta, proxy);
- gst_vaapi_surface_proxy_unref (proxy);
+ if (!gst_vaapi_video_meta_get_surface_proxy (outbuf_meta)) {
+ proxy =
+ gst_vaapi_surface_proxy_new_from_pool (GST_VAAPI_SURFACE_POOL
+ (postproc->filter_pool));
+ if (!proxy)
+ goto error_create_proxy;
+ gst_vaapi_video_meta_set_surface_proxy (outbuf_meta, proxy);
+ gst_vaapi_surface_proxy_unref (proxy);
+ }
if (deint) {
deint_flags = (tff ? GST_VAAPI_DEINTERLACE_FLAG_TOPFIELD : 0);
@@ -1066,7 +1070,7 @@
if (GST_VIDEO_INFO_WIDTH (&postproc->srcpad_info) !=
GST_VIDEO_INFO_WIDTH (&postproc->sinkpad_info)
- && GST_VIDEO_INFO_HEIGHT (&postproc->srcpad_info) !=
+ || GST_VIDEO_INFO_HEIGHT (&postproc->srcpad_info) !=
GST_VIDEO_INFO_HEIGHT (&postproc->sinkpad_info))
postproc->flags |= GST_VAAPI_POSTPROC_FLAG_SIZE;
@@ -1092,7 +1096,7 @@
return FALSE;
}
- raw_caps = gst_vaapi_plugin_base_get_allowed_raw_caps
+ raw_caps = gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps
(GST_VAAPI_PLUGIN_BASE (postproc));
if (!raw_caps) {
gst_caps_unref (out_caps);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapipostprocutil.c
new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapipostprocutil.c
--- old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapipostprocutil.c 2018-03-23
21:47:55.000000000 +0100
+++ new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapipostprocutil.c 2019-05-17
10:19:22.000000000 +0200
@@ -709,9 +709,11 @@
/* we don't need to do format conversion if GL_TEXTURE_UPLOAD_META
* is negotiated */
- if (f != GST_VAAPI_CAPS_FEATURE_GL_TEXTURE_UPLOAD_META
- && postproc->format != format)
+ if (f == GST_VAAPI_CAPS_FEATURE_GL_TEXTURE_UPLOAD_META) {
+ postproc->format = DEFAULT_FORMAT;
+ } else if (postproc->format != format) {
postproc->format = format;
+ }
return outcaps;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapisink.c
new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapisink.c
--- old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapisink.c 2018-03-23
21:47:55.000000000 +0100
+++ new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapisink.c 2019-05-17
10:19:22.000000000 +0200
@@ -452,7 +452,7 @@
PointerMotionMask | ExposureMask | StructureNotifyMask);
if (!sink->foreign_window)
- x11_event_mask |= ButtonPressMask | ButtonReleaseMask;
+ x11_event_mask |= ButtonPressMask | ButtonReleaseMask;
if (sink->window) {
gst_vaapi_display_lock (GST_VAAPI_DISPLAY (display));
@@ -1215,7 +1215,7 @@
/* Ensures possible raw caps earlier to avoid race conditions at
* get_caps() */
- if (!gst_vaapi_plugin_base_get_allowed_raw_caps (plugin))
+ if (!gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps (plugin))
return FALSE;
return TRUE;
@@ -1251,7 +1251,8 @@
out_caps = gst_caps_from_string (surface_caps_str);
raw_caps =
- gst_vaapi_plugin_base_get_allowed_raw_caps (GST_VAAPI_PLUGIN_BASE
(sink));
+ gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps (GST_VAAPI_PLUGIN_BASE
+ (sink));
if (!raw_caps)
return out_caps;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapivideomemory.c
new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapivideomemory.c
--- old/gstreamer-vaapi-1.14.4/gst/vaapi/gstvaapivideomemory.c 2018-03-23
21:47:55.000000000 +0100
+++ new/gstreamer-vaapi-1.14.5/gst/vaapi/gstvaapivideomemory.c 2019-05-09
01:03:24.000000000 +0200
@@ -1060,6 +1060,7 @@
error_create_dmabuf_memory:
{
GST_ERROR ("failed to create DMABUF memory");
+ close (dmabuf_fd);
gst_vaapi_buffer_proxy_unref (dmabuf_proxy);
return NULL;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst-libs/gst/vaapi/gstvaapidisplay.c
new/gstreamer-vaapi-1.14.5/gst-libs/gst/vaapi/gstvaapidisplay.c
--- old/gstreamer-vaapi-1.14.4/gst-libs/gst/vaapi/gstvaapidisplay.c
2018-09-16 17:37:53.000000000 +0200
+++ new/gstreamer-vaapi-1.14.5/gst-libs/gst/vaapi/gstvaapidisplay.c
2019-05-09 01:02:58.000000000 +0200
@@ -469,8 +469,12 @@
VAStatus status;
gboolean success = FALSE;
- if (priv->has_profiles)
+ GST_VAAPI_DISPLAY_LOCK (display);
+
+ if (priv->has_profiles) {
+ GST_VAAPI_DISPLAY_UNLOCK (display);
return TRUE;
+ }
priv->decoders = g_array_new (FALSE, FALSE, sizeof (GstVaapiConfig));
if (!priv->decoders)
@@ -553,6 +557,7 @@
cleanup:
g_free (profiles);
g_free (entrypoints);
+ GST_VAAPI_DISPLAY_UNLOCK (display);
return success;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst-libs/gst/vaapi/gstvaapiencoder.c
new/gstreamer-vaapi-1.14.5/gst-libs/gst/vaapi/gstvaapiencoder.c
--- old/gstreamer-vaapi-1.14.4/gst-libs/gst/vaapi/gstvaapiencoder.c
2018-03-23 21:47:55.000000000 +0100
+++ new/gstreamer-vaapi-1.14.5/gst-libs/gst/vaapi/gstvaapiencoder.c
2019-05-09 01:05:31.000000000 +0200
@@ -329,6 +329,8 @@
roi = (GstVideoRegionOfInterestMeta *)
gst_buffer_iterate_meta_filtered (input, &state,
GST_VIDEO_REGION_OF_INTEREST_META_API_TYPE);
+ if (!roi)
+ continue;
/* ignore roi if overflow */
if ((roi->x > G_MAXINT16) || (roi->y > G_MAXINT16)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
new/gstreamer-vaapi-1.14.5/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
--- old/gstreamer-vaapi-1.14.4/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
2018-03-23 21:47:55.000000000 +0100
+++ new/gstreamer-vaapi-1.14.5/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
2019-05-10 19:16:20.000000000 +0200
@@ -2716,6 +2716,7 @@
{
GstVaapiEncoder *const base_encoder = GST_VAAPI_ENCODER_CAST (encoder);
guint mb_size, i;
+ gboolean ret;
if (encoder->idr_period < base_encoder->keyframe_period)
encoder->idr_period = base_encoder->keyframe_period;
@@ -2725,8 +2726,9 @@
encoder->qp_i = encoder->init_qp;
mb_size = encoder->mb_width * encoder->mb_height;
- g_assert (gst_vaapi_encoder_ensure_num_slices (base_encoder,
encoder->profile,
- encoder->entrypoint, (mb_size + 1) / 2, &encoder->num_slices));
+ ret = gst_vaapi_encoder_ensure_num_slices (base_encoder, encoder->profile,
+ encoder->entrypoint, (mb_size + 1) / 2, &encoder->num_slices);
+ g_assert (ret);
if (encoder->num_bframes > (base_encoder->keyframe_period + 1) / 2)
encoder->num_bframes = (base_encoder->keyframe_period + 1) / 2;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst-libs/gst/vaapi/gstvaapiencoder_h265.c
new/gstreamer-vaapi-1.14.5/gst-libs/gst/vaapi/gstvaapiencoder_h265.c
--- old/gstreamer-vaapi-1.14.4/gst-libs/gst/vaapi/gstvaapiencoder_h265.c
2018-07-18 18:43:21.000000000 +0200
+++ new/gstreamer-vaapi-1.14.5/gst-libs/gst/vaapi/gstvaapiencoder_h265.c
2019-05-10 19:19:59.000000000 +0200
@@ -2023,6 +2023,7 @@
GstVaapiH265ReorderPool *reorder_pool;
GstVaapiH265RefPool *ref_pool;
guint ctu_size;
+ gboolean ret;
if (encoder->idr_period < base_encoder->keyframe_period)
encoder->idr_period = base_encoder->keyframe_period;
@@ -2032,9 +2033,10 @@
encoder->qp_i = encoder->init_qp;
ctu_size = encoder->ctu_width * encoder->ctu_height;
- g_assert (gst_vaapi_encoder_ensure_num_slices (base_encoder,
encoder->profile,
- GST_VAAPI_ENTRYPOINT_SLICE_ENCODE, (ctu_size + 1) / 2,
- &encoder->num_slices));
+ ret = gst_vaapi_encoder_ensure_num_slices (base_encoder, encoder->profile,
+ GST_VAAPI_ENTRYPOINT_SLICE_ENCODE, (ctu_size + 1) / 2,
+ &encoder->num_slices);
+ g_assert (ret);
gst_vaapi_encoder_ensure_max_num_ref_frames (base_encoder, encoder->profile,
GST_VAAPI_ENTRYPOINT_SLICE_ENCODE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gst-libs/gst/vaapi/gstvaapiutils_glx.c
new/gstreamer-vaapi-1.14.5/gst-libs/gst/vaapi/gstvaapiutils_glx.c
--- old/gstreamer-vaapi-1.14.4/gst-libs/gst/vaapi/gstvaapiutils_glx.c
2018-03-23 21:47:55.000000000 +0100
+++ new/gstreamer-vaapi-1.14.5/gst-libs/gst/vaapi/gstvaapiutils_glx.c
2019-05-09 01:04:40.000000000 +0200
@@ -853,8 +853,6 @@
/* Initialize FBConfig attributes */
for (attr = fbconfig_attrs; *attr != GL_NONE; attr += 2);
- *attr++ = GLX_DEPTH_SIZE;
- *attr++ = wattr.depth;
if (wattr.depth == 32) {
*attr++ = GLX_ALPHA_SIZE;
*attr++ = 8;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/gstreamer-vaapi.doap
new/gstreamer-vaapi-1.14.5/gstreamer-vaapi.doap
--- old/gstreamer-vaapi-1.14.4/gstreamer-vaapi.doap 2018-10-03
00:13:48.000000000 +0200
+++ new/gstreamer-vaapi-1.14.5/gstreamer-vaapi.doap 2019-05-29
19:09:36.000000000 +0200
@@ -27,6 +27,16 @@
<release>
<Version>
+ <revision>1.14.5</revision>
+ <branch>1.14</branch>
+ <name></name>
+ <created>2019-05-29</created>
+ <file-release
rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-1.14.5.tar.xz"
/>
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.14.4</revision>
<branch>1.14</branch>
<name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/m4/libtool.m4
new/gstreamer-vaapi-1.14.5/m4/libtool.m4
--- old/gstreamer-vaapi-1.14.4/m4/libtool.m4 2018-10-03 00:13:55.000000000
+0200
+++ new/gstreamer-vaapi-1.14.5/m4/libtool.m4 2019-05-29 19:09:42.000000000
+0200
@@ -4063,7 +4063,8 @@
if AC_TRY_EVAL(ac_compile); then
# Now try to grab the symbols.
nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe"
\> $nlist) && test -s "$nlist"; then
+ $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext |
$lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD
+ if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \>
$nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
mv -f "$nlist"T "$nlist"
@@ -4703,6 +4704,12 @@
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
+ # flang / f18. f95 an alias for gfortran or flang on Debian
+ flang* | f18* | f95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
# icc used to be incompatible with GCC.
# ICC 10 doesn't accept -KPIC any more.
icc* | ifort*)
@@ -6438,7 +6445,7 @@
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 |
$GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 |
$GREP -v "^Configured with:" | $GREP " \-L"'
else
GXX=no
@@ -6813,7 +6820,7 @@
# explicitly linking system object files so we need to strip them
# from the output so that they don't get included in the library
# dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v
conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac;
done; func_echo_all "$list"'
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v
conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac;
done; func_echo_all "$list"'
;;
*)
if test yes = "$GXX"; then
@@ -6878,7 +6885,7 @@
# explicitly linking system object files so we need to strip them
# from the output so that they don't get included in the library
# dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v
conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac;
done; func_echo_all "$list"'
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v
conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac;
done; func_echo_all "$list"'
;;
*)
if test yes = "$GXX"; then
@@ -7217,7 +7224,7 @@
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext
2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext
2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
else
# FIXME: insert proper C++ library support
@@ -7301,7 +7308,7 @@
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v
conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v
conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
else
# g++ 2.7 appears to require '-G' NOT '-shared' on this
# platform.
@@ -7312,7 +7319,7 @@
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext
2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext
2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
fi
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh
old/gstreamer-vaapi-1.14.4/meson.build new/gstreamer-vaapi-1.14.5/meson.build
--- old/gstreamer-vaapi-1.14.4/meson.build 2018-10-03 00:13:48.000000000
+0200
+++ new/gstreamer-vaapi-1.14.5/meson.build 2019-05-29 19:09:36.000000000
+0200
@@ -1,5 +1,5 @@
project('gstreamer-vaapi', 'c',
- version : '1.14.4',
+ version : '1.14.5',
meson_version : '>= 0.40.1',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])