=== release 1.14.1 === 2018-05-17 13:25:00 +0100 Tim-Philipp Müller * ChangeLog: * NEWS: * RELEASE: * configure.ac: * gst-plugins-good.doap: * meson.build: Release 1.14.1 2018-05-17 13:25:00 +0100 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/inspect/plugin-1394.xml: * docs/plugins/inspect/plugin-aasink.xml: * docs/plugins/inspect/plugin-alaw.xml: * docs/plugins/inspect/plugin-alpha.xml: * docs/plugins/inspect/plugin-alphacolor.xml: * docs/plugins/inspect/plugin-apetag.xml: * docs/plugins/inspect/plugin-audiofx.xml: * docs/plugins/inspect/plugin-audioparsers.xml: * docs/plugins/inspect/plugin-auparse.xml: * docs/plugins/inspect/plugin-autodetect.xml: * docs/plugins/inspect/plugin-avi.xml: * docs/plugins/inspect/plugin-cacasink.xml: * docs/plugins/inspect/plugin-cairo.xml: * docs/plugins/inspect/plugin-cutter.xml: * docs/plugins/inspect/plugin-debug.xml: * docs/plugins/inspect/plugin-deinterlace.xml: * docs/plugins/inspect/plugin-dtmf.xml: * docs/plugins/inspect/plugin-dv.xml: * docs/plugins/inspect/plugin-effectv.xml: * docs/plugins/inspect/plugin-equalizer.xml: * docs/plugins/inspect/plugin-flac.xml: * docs/plugins/inspect/plugin-flv.xml: * docs/plugins/inspect/plugin-flxdec.xml: * docs/plugins/inspect/plugin-gdkpixbuf.xml: * docs/plugins/inspect/plugin-goom.xml: * docs/plugins/inspect/plugin-goom2k1.xml: * docs/plugins/inspect/plugin-gtk.xml: * docs/plugins/inspect/plugin-icydemux.xml: * docs/plugins/inspect/plugin-id3demux.xml: * docs/plugins/inspect/plugin-imagefreeze.xml: * docs/plugins/inspect/plugin-interleave.xml: * docs/plugins/inspect/plugin-isomp4.xml: * docs/plugins/inspect/plugin-jack.xml: * docs/plugins/inspect/plugin-jpeg.xml: * docs/plugins/inspect/plugin-lame.xml: * docs/plugins/inspect/plugin-level.xml: * docs/plugins/inspect/plugin-matroska.xml: * docs/plugins/inspect/plugin-mpg123.xml: * docs/plugins/inspect/plugin-mulaw.xml: * docs/plugins/inspect/plugin-multifile.xml: * docs/plugins/inspect/plugin-multipart.xml: * docs/plugins/inspect/plugin-navigationtest.xml: * docs/plugins/inspect/plugin-oss4.xml: * docs/plugins/inspect/plugin-ossaudio.xml: * docs/plugins/inspect/plugin-png.xml: * docs/plugins/inspect/plugin-pulseaudio.xml: * docs/plugins/inspect/plugin-qmlgl.xml: * docs/plugins/inspect/plugin-replaygain.xml: * docs/plugins/inspect/plugin-rtp.xml: * docs/plugins/inspect/plugin-rtpmanager.xml: * docs/plugins/inspect/plugin-rtsp.xml: * docs/plugins/inspect/plugin-shapewipe.xml: * docs/plugins/inspect/plugin-shout2.xml: * docs/plugins/inspect/plugin-smpte.xml: * docs/plugins/inspect/plugin-soup.xml: * docs/plugins/inspect/plugin-spectrum.xml: * docs/plugins/inspect/plugin-speex.xml: * docs/plugins/inspect/plugin-taglib.xml: * docs/plugins/inspect/plugin-twolame.xml: * docs/plugins/inspect/plugin-udp.xml: * docs/plugins/inspect/plugin-video4linux2.xml: * docs/plugins/inspect/plugin-videobox.xml: * docs/plugins/inspect/plugin-videocrop.xml: * docs/plugins/inspect/plugin-videofilter.xml: * docs/plugins/inspect/plugin-videomixer.xml: * docs/plugins/inspect/plugin-vpx.xml: * docs/plugins/inspect/plugin-wavenc.xml: * docs/plugins/inspect/plugin-wavpack.xml: * docs/plugins/inspect/plugin-wavparse.xml: * docs/plugins/inspect/plugin-ximagesrc.xml: * docs/plugins/inspect/plugin-y4menc.xml: Update docs 2018-05-17 12:37:35 +0100 Tim-Philipp Müller * po/hr.po: Update translations 2018-05-15 14:56:04 -0400 Thibault Saunier * gst/isomp4/qtdemux.c: Revert "qtdemux: also push buffers without encryption info instead of dropping them" This reverts commit 762e9c645ec13513c62eb5a3800d7406e01cdcb7. This was pushed by mistake 2018-05-15 14:55:58 -0400 Thibault Saunier * gst/isomp4/qtdemux.c: * gst/isomp4/qtdemux.h: Revert "qtdemux: add context for a preferred protection" This reverts commit 0ba62ba4805e2cdbed17fa9934762d685be42fd4. This was pushed by mistake 2018-05-15 14:55:46 -0400 Thibault Saunier * ext/soup/gstsouphttpsrc.c: * ext/soup/gstsouphttpsrc.h: Revert "souphttpsrc: cookie jar and context query support" This reverts commit 6715af9933a6607e5d86ac6fc1bcf476761cbf10. This was pushed by mistake 2018-04-22 10:40:19 -0300 Thibault Saunier * ext/jpeg/gstjpegenc.c: jpegenc: Accept sof-marker=4 sof-marker is 4 when input is in the RGB colorspace. https://bugzilla.gnome.org/show_bug.cgi?id=795463 2017-04-24 17:22:02 +0000 Enrique Ocaña González * gst/isomp4/qtdemux.c: qtdemux: also push buffers without encryption info instead of dropping them 2017-06-21 17:59:21 +0200 Xabier Rodriguez Calvar * gst/isomp4/qtdemux.c: * gst/isomp4/qtdemux.h: qtdemux: add context for a preferred protection qtdemux selected the first system corresponding to a working GStreamer decryptor. With this change, before selecting that decryptor, qtdemux will check if it has context (a preferred decryptor id) and if not, it will request it. The request includes track-id, available key system ids for the available decryptors and even the events so that the init data is accessible. [eocanha@igalia.com: select the preferred protection system even if not available] Test "4. ClearKeyVideo" in YouTube leanback EME conformance tests 2016 for H.264[1] uses a media file[2] with cenc encryption which embeds 'pssh' boxes with the init data for the Playready and Widevine encryption systems, but not for the ClearKey encryption system (as defined by the EMEv0.1b spec[3] and with the encryption system id defined in [4]). Instead, the ClearKey encryption system is manually selected by the web page code (even if not originally detected by qtdemux) and the proper decryption key is dispatched to the decryptor, which can then decrypt the video successfully. [1] http://yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/2016.html?test_type=encryptedmedia-test&webm=false [2] http://yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/media/car_cenc-20120827-86.mp4 [3] https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1b/encrypted-media/encrypted-media.html#simple-decryption-clear-key [4] https://www.w3.org/Bugs/Public/show_bug.cgi?id=24027#c2 https://bugzilla.gnome.org/show_bug.cgi?id=770107 2015-10-28 12:00:09 +0100 Philippe Normand * ext/soup/gstsouphttpsrc.c: * ext/soup/gstsouphttpsrc.h: souphttpsrc: cookie jar and context query support Use a volatile Cookie jar to store cookies and handle the context query so that session data can be shared with other elements (like adaptivedemux). https://bugzilla.gnome.org/show_bug.cgi?id=726314 2017-08-25 11:59:00 +0200 Mikhail Fludkov * gst/rtpmanager/rtpsession.c: * tests/check/elements/rtpsession.c: rtpsession: Fix on-feedback-rtcp race If there is an external source which is about to timeout and be removed from the source hashtable and we receive feedback RTCP packet with the media ssrc of the source, we unlock the session in rtp_session_process_feedback before emitting 'on-feedback-rtcp' signal allowing rtcp timer to kick in and grab the lock. It will get rid of the source and rtp_session_process_feedback will be left with RTPSource with ref count 0. The fix is to grab the ref to the RTPSource object in rtp_session_process_feedback. https://bugzilla.gnome.org/show_bug.cgi?id=795139 2017-11-27 10:56:47 +0100 Stian Selnes * gst/rtpmanager/rtpsession.c: rtpsession: Add missing lock around sess->ssrcs iteration https://bugzilla.gnome.org/show_bug.cgi?id=795139 2014-10-05 15:51:18 +0200 Matej Knopp * gst/audioparsers/gstdcaparse.c: dcaparse: do not accept header with invalid channel count https://bugzilla.gnome.org/show_bug.cgi?id=737928 2018-05-10 13:57:30 +0200 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Initialize riff library Avoids debugging message issues. Also just use the main riff header 2018-05-05 16:32:59 +0200 Tim-Philipp Müller * gst/rtp/gstrtpvrawpay.c: rtpvrawpay: don't use buffer lists if everything fits into one buffer People might use very large mtu sizes where every payload fits into a single output packet. https://bugzilla.gnome.org/show_bug.cgi?id=795758 2018-04-23 11:26:12 -0400 Olivier Crête * gst/flv/gstflvmux.c: flvmux: Don't wake up the muxer unless there is data https://bugzilla.gnome.org/show_bug.cgi?id=795332 2018-04-23 11:19:18 -0400 Olivier Crête * gst/flv/gstflvmux.c: flvmux: Save the current position in the output segment https://bugzilla.gnome.org/show_bug.cgi?id=795332 2018-04-19 17:53:51 -0400 Olivier Crête * gst/flv/gstflvmux.c: * tests/check/elements/flvmux.c: flvmux: Wait for caps from both srcs before writing header Wait for caps on all pads to start writing data even when source is live. Includes unit test by Havard Graff that simulates it. https://bugzilla.gnome.org/show_bug.cgi?id=794722 2018-04-16 21:27:47 +0300 Sebastian Dröge * gst/audioparsers/gstflacparse.c: flacparse: Drain the parser when a CAPS event is received After a CAPS event, in theory a new stream can start and it might start with the FLAC headers again. We can't detect FLAC headers in the middle of the stream, so we drain the parser to be able to detect either FLAC headers after the CAPS event or the continuation of the previous stream. This fixes for example gst-launch-1.0 audiotestsrc num-buffers=200 ! flacenc ! c. \ audiotestsrc num-buffers=200 freq=880 ! flacenc ! c. \ concat name=c ! rtpgstpay ! udpsink host=127.0.0.1 port=5000 gst-launch-1.0 udpsrc multicast-group=127.0.0.1 port=5000 \ caps=application/x-rtp,media=application,clock-rate=90000,encoding-name=X-GST ! \ rtpgstdepay ! flacparse ! flacdec ! audioconvert ! pulsesin 2018-04-04 15:50:55 +0200 Kirill Marinushkin * configure.ac: configure: Fix hard-coded enabled v4l2 probe on Linux/ARM Currently, enable_v4l2_probe is hard-coded to "yes" on linux, platforms arm and aarch64. This even overrides the --disable-v4l2-probe argument. As a result, it is impossible to disable v4l2_probe. It becomes a problem for use-cases, when startup time is critical, because the v4l2_probe feature increases the initialization time. This commit makes the v4l2_probe feature configurable. On linux, platforms arm and aarch64, the default value is still "yes". But now it can be disabled by the --disable-v4l2-probe argument. https://bugzilla.gnome.org/show_bug.cgi?id=795200 2018-04-13 13:29:06 +0200 Guillaume Desmottes * sys/v4l2/gstv4l2transform.c: * sys/v4l2/gstv4l2videodec.c: * sys/v4l2/gstv4l2videoenc.c: * sys/v4l2/v4l2_calls.c: v4l2: rely on gst_v4l2_dup() to set no_initial_format and keep_aspect gst_v4l2_dup() will now take care of setting v4l2capture->no_initial_format and keep_aspect instead of doing it manually. Fix a typo as keep_aspect was set twice on v4l2output but never on v4l2capture. https://bugzilla.gnome.org/show_bug.cgi?id=795028 2018-04-17 17:57:16 +0300 Sebastian Dröge * gst/rtsp/gstrtspsrc.c: * tests/examples/rtsp/test-onvif.c: Revert "rtspsrc: Fix up sendonly/recvonly attribute handling" This reverts commit af273b4de9eb292c0b6af63665e10ca015895902. While RFC 3264 (SDP) says that sendonly/recvonly are from the point of view of the requester, the actual RTSP RFCs (RFC 2326 / 7826) disagree and say the opposite, just like the ONVIF standard. Let's follow those RFCs as we're doing RTSP here, and add a property at a later time if needed to switch to the SDP RFC behaviour. https://bugzilla.gnome.org/show_bug.cgi?id=793964 2018-04-13 22:49:43 +0200 Mathieu Duponchelle * gst/isomp4/gstqtmux.c: qtmux: Fix leak gst_qt_mux_can_renegotiate () gets called everywhere following that pattern: return gst_qt_mux_can_renegotiate (ref(self)); This means the reference must be released both in the success and failure cases, it was only done in the success case. 2018-04-13 22:44:14 +0200 Mathieu Duponchelle * gst/flv/gstflvmux.c: flvmux: aggregate should not push EOS itself Instead it is expected to return GST_FLOW_EOS, and let the base class handle that. 2018-04-13 23:01:20 +0200 Mathieu Duponchelle * gst/flv/gstflvmux.c: flvmux: unref return of aggregator_pad_peek_buffer We ended up leaking every single buffer going through the muxer, which is far from ideal 2018-04-11 20:28:00 +0000 Whoopie * sys/v4l2/gstv4l2object.c: v4l2object: Disable DMABuf for emulated formats libv4l2 does not prevent exporting DMABuf even when emulated formats are in use. As a side effect, userspace ends up with buffers of the original formats which will cause issues. https://bugzilla.gnome.org/show_bug.cgi?id=795097 2018-04-08 20:42:16 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Only use BT2020_12 for BT2020 v4l2 colorspace BT2020_12 is not represented in V4L2, so drivers providing full colority for BT2020 will set V4L2_XFER_FUNC_709 transfer function. To fix the issue, we bump this to BT2020_12 if the resoltion is 4K, but we should only do that if the colorspace is BT2020 to start with, otherwise it's not possible to use normal BT709 for 4K 8bit formats. 2018-04-08 13:43:56 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Always set the colorimetry in S_FMT So far we were only setting colorimetry for OUTPUT devices (v4l2sink or m2m sink pad). This prevented selecting through caps negotiation the colorimetry for CAPTURE devices (v4l2src or m2m src pad). This is rarely selectable, but trying is harmless. 2018-04-11 17:54:38 +0300 Vivia Nikolaidou * gst/multifile/gstsplitmuxsink.c: splitmuxsink: Don't send fragment-opened-closed message if the reference ctx is NULL It can happen during teardown that the reference context becomes NULL. In that case, trying to send the fragment-opened-closed message would lead to a crash. 2018-04-11 21:41:58 +0200 Sebastian Dröge * gst/monoscope/gstmonoscope.c: monoscope: Only fixate pixel-aspect-ratio if the field exists 2018-04-10 21:15:48 +0200 Sebastian Dröge * gst/monoscope/gstmonoscope.c: monoscope: Fixate pixel-aspect-ratio too and make sure the final caps are completely fixated Otherwise e.g. this fails with assertions: gst-launch-1.0 audiotestsrc ! audioconvert ! monoscope ! videoconvert ! \ videoscale ! video/x-raw,width=800,height=600 ! ximagesink 2018-03-08 10:10:01 +0100 Edward Hervey * gst/isomp4/gstqtmux.c: qtmux: Add comments and doc about prefill mode 2018-04-04 01:48:44 +0200 Mathieu Duponchelle * gst/rtpmanager/gstrtprtxsend.c: rtxsend: fix wrong memory layout assumption The code responsible for creating retransmitted buffers assumed the stored buffer had been created with rtp_buffer_new_allocate when copying the extension data, which isn't necessarily the case, for example when the rtp buffers come from a udpsrc. https://bugzilla.gnome.org/show_bug.cgi?id=794958 2018-03-04 15:14:08 +0100 Carlos Rafael Giani * configure.ac: * ext/qt/gstqtglutility.cc: qt: Get EGL native display from QPA if platform header is available https://bugzilla.gnome.org/show_bug.cgi?id=792378 2018-03-21 00:19:37 +0900 Seungha Yang * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2object.h: v4l2: Fix unknown type name ‘off_t’ error Fix following build error gstv4l2object.h:197:17: error: unknown type name ‘off_t’ gint fd, off_t offset); ^ https://bugzilla.gnome.org/show_bug.cgi?id=794533 2018-03-22 15:20:47 +0100 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Check sample count is valid in PIFF parsing The value stored in cenc_aux_sample_count wasn't in sync with the parsing code that followed which checks whether all entries are valid and present. Only write the actual sample count when we know for sure. CID #1427087 2018-03-20 11:36:32 +0200 Sebastian Dröge * gst/rtp/gstrtpreddec.c: * gst/rtp/gstrtpredenc.c: * gst/rtp/gstrtpulpfecdec.c: * gst/rtp/gstrtpulpfecenc.c: * gst/rtp/rtpstoragestream.c: * tests/check/elements/rtpred.c: * tests/check/elements/rtpulpfec.c: rtp: Fix compilation with non-C99 compilers By moving variable declarations out of loop headers.