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 <bjorn....@gmail.com> + +- 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 <t...@centricular.com> + + * ChangeLog: + * NEWS: + * configure.ac: + * gstreamer-vaapi.doap: + * meson.build: + Release 1.14.5 + +2019-05-29 18:10:27 +0100 Tim-Philipp Müller <t...@centricular.com> + + * docs/plugins/inspect/plugin-vaapi.xml: + Update docs + +2019-05-11 19:29:26 +0200 He Junyan <junyan...@hotmail.com> + + * 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 <junyan...@hotmail.com> + +2018-11-28 05:56:44 +0200 Jordan Petridis <jor...@centricular.com> + + * 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 <vjaq...@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-05-10 18:29:10 +0800 He Junyan <junyan...@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. + https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/87 + +2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaq...@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-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaq...@igalia.com> + + * 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 <a...@redhat.com> + + * 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 <fei.w.w...@intel.com> + + * 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 <fei.w.w...@intel.com> + + * gst/vaapi/gstvaapipostproc.c: + vaapipostproc: fix csc fail when only change width or height. + +2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xi...@intel.com> + + * 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 <m.olbr...@pengutronix.de> + + * 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 <m.olbr...@pengutronix.de> + + * 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 <denis.nago...@intel.com> + + * 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 <t...@centricular.com> 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' ])