+=== release 1.15.1 ===
+
+2019-01-17 01:59:28 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * configure.ac:
+ * gst-plugins-good.doap:
+ * meson.build:
+ Release 1.15.1
+
+2019-01-17 01:59:28 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/plugins/gst-plugins-good-plugins.args:
+ * docs/plugins/gst-plugins-good-plugins.hierarchy:
+ * docs/plugins/gst-plugins-good-plugins.signals:
+ * 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
+
+2019-01-17 01:59:18 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * po/af.po:
+ * po/az.po:
+ * po/bg.po:
+ * po/ca.po:
+ * po/cs.po:
+ * po/da.po:
+ * po/de.po:
+ * po/el.po:
+ * po/en_GB.po:
+ * po/eo.po:
+ * po/es.po:
+ * po/eu.po:
+ * po/fi.po:
+ * po/fr.po:
+ * po/fur.po:
+ * po/gl.po:
+ * po/hr.po:
+ * po/hu.po:
+ * po/id.po:
+ * po/it.po:
+ * po/ja.po:
+ * po/lt.po:
+ * po/lv.po:
+ * po/mt.po:
+ * po/nb.po:
+ * po/nl.po:
+ * po/or.po:
+ * po/pl.po:
+ * po/pt_BR.po:
+ * po/ro.po:
+ * po/ru.po:
+ * po/sk.po:
+ * po/sl.po:
+ * po/sq.po:
+ * po/sr.po:
+ * po/sv.po:
+ * po/tr.po:
+ * po/uk.po:
+ * po/vi.po:
+ * po/zh_CN.po:
+ * po/zh_HK.po:
+ * po/zh_TW.po:
+ Update translations
+
+2019-01-16 14:11:44 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/gtk/gtkgstglwidget.c:
+ gtk/gl: Only unbind buffers/vertex attrib arrays if we can't directly bind the vertex array to 0
+ Binding the vertex array to 0 will unbind everything else already.
+ In the previous order older versions of the Intel GL driver caused
+ errors to be printed for every single call when disabling the vertex
+ attrib arrays after binding the vertex array to 0.
+
+2019-01-16 00:57:46 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/meson.build:
+ meson: enable tests for orc code
+
+2018-11-29 16:07:08 +0100 Patrick Radizi <patrickr@axis.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ * gst/rtsp/gstrtspsrc.h:
+ rtspsrc: send GstRTSPSrcTimeout message on timeout
+ The GstRTSPSrcTimeout message is sent by the rtspsrc when it receives
+ the on-timeout signal from rtpsession. This can be used by an
+ application for error handling.
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/499
+
+2019-01-09 17:52:28 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/flv/gstflvdemux.c:
+ flvdemux: Handle the encoder metadata the same as metadatacreator
+ And store it in our ENCODER tag.
+
+2019-01-09 17:48:36 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/flv/gstflvmux.c:
+ * gst/flv/gstflvmux.h:
+ flvmux: Add encoder metadata to the header
+ And also add a property for setting this. By default it has the same
+ value as the metadatacreator metadata.
+ Various software is using encoder instead of metadatacreator, others are
+ using them both for different purposes. As such it's useful to have
+ support for setting both here.
+
+2018-05-28 14:41:05 +0530 Arun Raghavan <arunsr@codeaurora.org>
+
+ * ext/pulse/pulsesink.c:
+ * ext/pulse/pulsesrc.c:
+ * ext/pulse/pulsesrc.h:
+ * ext/pulse/pulseutil.c:
+ * ext/pulse/pulseutil.h:
+ pulsesrc: Move to extended stream API
+ This is needed as a precursor to allowing capture of IEC61937
+ formats. We now also need to include the channel map while converting
+ format info to caps so that a correct channel mask is generated for
+ pulsesrc's caps.
+
+2019-01-09 16:27:16 +0100 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+ * tests/check/elements/rtph265.c:
+ test: rtph265pay: Verify we only mark the last fragment
+
+2019-01-09 16:24:54 +0100 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+ * tests/check/elements/rtph265.c:
+ test: rtph265pay: Use a bigger test frame
+ The existing frame's last slice is too small to be used for
+ fragmentation tests.
+
+2019-01-09 15:59:16 +0100 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+ * tests/check/elements/rtph264.c:
+ test: rtph264pay: Verify we only mark the last fragment
+
+2019-01-09 16:25:36 +0100 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+ * gst/rtp/gstrtph265pay.c:
+ rtph265pay: Only mark the last fragment of an AU
+ Commit e721071dcac9f231e5e10b4bb31323658a6cdd1a removed the check for
+ the end of fragmentation. As a result, all fragments of an AU's last
+ NALU were marked.
+
+2019-01-09 15:56:51 +0100 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+ * gst/rtp/gstrtph264pay.c:
+ rtph264pay: Only mark the last fragment of an AU
+ Commit 4add820cce278213ede3d5fce427ea92e0619b6f removed the check for
+ the end of fragmentation. As a result, all fragments of an AU's last
+ NALU were marked.
+ Potential fix for https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/540
+
+2019-01-09 11:48:52 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxpartreader.c:
+ * gst/multifile/gstsplitmuxsrc.c:
+ splitmuxsrc: Refactor part preparation code and remove "prepared" signal from reader helper object
+ We don't need a special signal anymore but can directly work with
+ async-done
+
+2019-01-09 11:42:36 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxpartreader.c:
+ * gst/multifile/gstsplitmuxpartreader.h:
+ * gst/multifile/gstsplitmuxsrc.c:
+ * gst/multifile/gstsplitmuxsrc.h:
+ splitmuxsrc: Implement state change asynchronously instead of blocking
+ Blocking in change_state() is a recipe for disaster, even more so if
+ we wait for another thread that also calls into various element API and
+ could then lead to deadlocks on e.g. the state lock.
+
+2019-01-05 23:10:46 +0400 Marc-André Lureau <marcandre.lureau@redhat.com>
+
+ * ext/pulse/pulsesrc.c:
+ pulsesrc: fix checking for invalid stream index
+ PA_INVALID_INDEX, the default value, is unfortunately !0.
+ Setting the volume before the stream is created will put the ring
+ buffer in error state. Unfortunately, that's what spice-gtk does.
+
+2018-12-20 12:14:46 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Split CEA608 buffers correctly so that each output buffer represents a single frame
+
+2018-12-20 11:45:36 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Refactor buffer pushing into its own function
+
+2018-12-20 11:31:58 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Extract CEA608 framerate from the (first) video stream
+ EA608 closed caption tracks are a bit special in that each sample
+ can contain CCs for multiple frames, and CCs can be omitted and have to
+ be inferred from the duration of the sample then.
+ As such we take the framerate from the (first) video track here for
+ CEA608 as there must be one CC byte pair for every video frame
+ according to the spec.
+ For CEA708 all is fine and there is one sample per frame.
+
+2018-12-30 21:55:28 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * tests/check/meson.build:
+ tests: Enable more unit tests on Windows
+
+2018-12-30 21:54:44 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * tests/check/elements/audioamplify.c:
+ * tests/check/elements/audiodynamic.c:
+ * tests/check/elements/audioinvert.c:
+ * tests/check/elements/audiopanorama.c:
+ * tests/check/elements/avimux.c:
+ * tests/check/elements/avisubtitle.c:
+ * tests/check/elements/capssetter.c:
+ * tests/check/elements/level.c:
+ * tests/check/elements/matroskamux.c:
+ * tests/check/elements/multifile.c:
+ * tests/check/elements/qtdemux.h:
+ * tests/check/elements/qtmux.c:
+ * tests/check/elements/rtp-payloading.c:
+ * tests/check/elements/shapewipe.c:
+ * tests/check/elements/spectrum.c:
+ * tests/check/elements/splitmux.c:
+ * tests/check/elements/udpsrc.c:
+ * tests/check/elements/videobox.c:
+ * tests/check/elements/videocrop.c:
+ * tests/check/elements/videofilter.c:
+ * tests/check/elements/videomixer.c:
+ * tests/check/elements/wavpackparse.c:
+ * tests/check/elements/y4menc.c:
+ * tests/check/generic/states.c:
+ tests: Remove pointless unistd.h include
+
+2018-12-26 20:27:58 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Don't leak allocated index memory
+ Don't forget to free returned memory from _search_pos()
+
+2018-12-25 15:31:44 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/files/Makefile.am:
+ tests: dist new rtph265.rtp file
+ Fixes make distcheck.
+
+2018-12-25 14:51:38 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/plugins/Makefile.am:
+ * docs/plugins/gst-plugins-good-plugins.args:
+ * docs/plugins/gst-plugins-good-plugins.hierarchy:
+ * docs/plugins/inspect/plugin-audiofx.xml:
+ * gst/audiofx/Makefile.am:
+ * gst/audiofx/audiofx.c:
+ * gst/audiofx/gststereo.c:
+ * gst/audiofx/meson.build:
+ audiofx: add stereo element which was moved from -bad to build
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/457
+
+2018-12-25 13:07:23 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ Move stereo plugin from -bad
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/457
+
+2018-12-22 17:55:51 +0100 Philippe Normand <philn@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Offset correction for track language code parsing
+ The duration field being a uint64, is stored in 8 bytes, not 4. So the offset of
+ the following field, language code, needs to be updated accordingly so that the
+ parsed language code is not garbage.
+
+2018-12-21 10:59:22 +0100 Juan Navarro <juan.navarro@gmx.es>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Accept NULL for "port-range" property
+ The documentation of "port-range" implies that passing NULL should be
+ valid, but currently it is not. Without this check, the sscanf() call
+ will crash.
+
+2018-12-19 14:28:54 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/plugins/gst-plugins-good-plugins.signals:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpbin.h:
+ * tests/check/Makefile.am:
+ * tests/check/elements/.gitignore:
+ * tests/check/elements/rtpbundle.c:
+ * tests/check/meson.build:
+ * tests/examples/rtp/.gitignore:
+ * tests/examples/rtp/Makefile.am:
+ * tests/examples/rtp/client-rtpbundle.c:
+ * tests/examples/rtp/meson.build:
+ * tests/examples/rtp/server-rtpbundle.c:
+ Revert "rtpbin: receive bundle support"
+ This reverts commit dcd3ce9751cdef0b5ab1fa118355f92bdfe82cb3.
+ This functionality was implemented for gstopenwebrtc, but it
+ turned out this was not actually needed for webrtc bundling
+ support, as shown in webrtcbin. It also doesn't correspond
+ to any standards.
+ This is an API break, but nothing should actually depend on
+ this, at least not for its initial purpose.
+ Changes in rtpbin.c were reverted manually, to preserve some
+ refactoring that had occurred in the original commit.
+ Fixes #537
+
+2018-12-19 11:36:37 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph264pay.c:
+ * gst/rtp/gstrtph265pay.c:
+ rtph264pay/rtph265pay: Fix use after free
+ We can't assume a buffer that has been pushed in the adapter is still
+ valid. This fixes a use after free detect when running test on jenkins.
+
+2018-12-19 22:51:11 +0900 KimTaeSoo <myrandy1@gmail.com>
+
+ * tests/check/pipelines/tagschecking.c:
+ tagschecking: Use gst_message_parse_warning in case of GST_MESSAGE_WARNING
+ Bus message handler of tags checking unit test uses gst_message_parse_error()
+ in case of GST_MESSAGE_ERROR and GST_MESAGE_WARNING.
+ If gst_message_parse_error() is called in case of GST_MESSAGE_WARNING, assert occurs.
+ So modified to use gst_message_parse_warning() in case of GST_MESSAGE_WARNING.
+
+2018-12-19 09:51:10 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * tests/check/Makefile.am:
+ test: rtph264/265: Add libgstrtp in auto-tool makefile
+
+2018-12-18 12:43:30 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * tests/check/Makefile.am:
+ * tests/check/elements/rtph265.c:
+ * tests/check/meson.build:
+ * tests/files/h265.rtp:
+ test: rtph265: Copy and port tests from rtph264
+ This copy and port all the relevant tests from rtph264.
+
+2018-12-14 17:54:36 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * tests/check/elements/rtph264.c:
+ test: rtph264depay: Check the marker is converted to flag
+
+2018-12-14 17:53:17 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * tests/check/elements/rtph264.c:
+ test: rtph264depay: Check that EOS drains the depayloaded
+ In AU mode, the depayloader may have accumulated NALs, test that
+ these NALs are drained and not dropped.
+
+2018-12-14 15:30:21 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * tests/check/elements/rtph264.c:
+ test: rtph264pay: Add tests for marker bit
+ Test that marker bit is transferred when input buffer has the
+ marker flag set but also that it's set whenever the payloader
+ receives complete AU.
+
+2018-12-13 15:57:24 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * tests/check/elements/rtph264.c:
+ test: rtph264pay: Verify slices timestamp
+ This test make sure that timestamps are properly transfered
+ to each NALU.
+
+2018-12-04 16:06:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * tests/check/elements/rtph264.c:
+ * tests/check/meson.build:
+ test: rtph264pay: Add reserved nals test
+
+2018-12-18 13:16:44 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph265pay.c:
+ rtph265pay: Don't wait for next nal when input is aligned
+ This is the same as what was done on rtph264pay in the patch
+ d5d28055c1e816e90e8c2d1151816b0c3e760ff3
+
+2018-12-18 12:53:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph265depay.c:
+ rtph265depay: Drain on EOS event
+
+2018-12-18 12:50:40 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph265depay.c:
+ rtph265depay: Factor out the code that push
+ This will be needed to implement draining on EOS.
+
+2018-12-17 16:48:53 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph264depay.c:
+ rtph264depay: Drain on EOS event
+
+2018-12-14 18:19:42 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph264depay.c:
+ rtph264depay: Factor out the code that push
+ This will be needed to implement draining on EOS.
+
+2018-12-14 15:51:51 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph264pay.c:
+ * gst/rtp/gstrtph265pay.c:
+ rtph26xpay: Remove unused IS_ACCESS_UNIT macro
+ This macro is not longer used. It was secretly checking if that nal was
+ a slice, and confusingly name to that one may think it was checking if
+ the nal is an AUD.
+
+2018-10-03 14:14:17 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph265pay.c:
+ rtph265pay: Fix reading timestamps from adapter
+ The code was reading the timestamp from the adapter before pushing the
+ new buffer into it. As a side effect, if the adapter was empty, we'd end
+ up using an older timestamp. In alignment=au, it means that all
+ timestamp was likely one frame in the past, while in alignment=nal, with
+ multiple slices per frame, the first slice would have the timestamp of
+ the previous one.
+
+2018-10-03 13:46:08 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph265depay.c:
+ rtph265pay: Forward the marker bit as buffer flag
+ We have a buffer flag to represent the marker bit (when present).
+ Forward this bit by setting the buffer flag accordingly.
+
+2018-10-03 13:44:56 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph265pay.c:
+ rtph265pay: Properly set the marker bit
+ The marker bit is used for efficient decoding. The assumption that
+ it should be set on the AUD is wrong, since the AUD is conceptually
+ starts the frame, while the marker is to indicate the end.
+ So properly set the marker bit as soon as we know we are ending an
+ AU and also whenever upstream have set the GST_BUFFER_FLAG_MARKER
+ flag.
+
+2018-09-25 11:49:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph264pay.c:
+ rtph264pay: Fix reading timestamps from adapter
+ The code was reading the timestamp from the adapter before pushing the
+ new buffer into it. As a side effect, if the adapter was empty, we'd end
+ up using an older timestamp. In alignment=au, it means that all
+ timestamp was likely one frame in the past, while in alignment=nal, with
+ multiple slices per frame, the first slice would have the timestamp of
+ the previous one.
+
+2018-09-24 15:31:12 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph264pay.c:
+ rtph264pay: Properly set the marker bit
+ The marker bit is used for efficient decoding. The assumption that
+ it should be set on the AUD is wrong, since the AUD is conceptually
+ starts the frame, while the marker is to indicate the end.
+ So properly set the marker bit as soon as we know we are ending an
+ AU and also whenever upstream have set the GST_BUFFER_FLAG_MARKER
+ flag.
+
+2018-09-24 15:27:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph264depay.c:
+ rtph264depay: Forward the marker bit as buffer flag
+ We have a buffer flag to represent the marker bit (when present).
+ Forward this bit by setting the buffer flag accordingly.
+
+2018-09-21 20:22:43 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtph264pay.c:
+ rtph264pay: Protect against use of reserved NAL types
+ Don't allow external encoder to use one of the reserved NAL type
+ implicated in NAL aggreation. These out-of-spec NAL types, if passed
+ from the outside world will lead to an invalid RTP payload being
+ created.
+
+2018-12-07 21:46:12 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * meson.build:
+ * tests/check/meson.build:
+ * tests/meson.build:
+ tests: Enable unit test on Windows
+ Allow run some unit tests on Windows.
+ * Remove hardcoded path separator in whitelist env for Meson to choose
+ OS-specific separator automatically (i.e., ';' for windows and ':' for *nix)
+ * Add dependency explicitly for some test cases, otherwise plugins couldn't be
+ loaded on uninstalled environment of Windows.
+
+2018-12-18 20:39:40 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * meson.build:
+ * tests/check/meson.build:
+ meson: Prefer to use join_paths() over '/'
+ ... to avoid mixing '/' and '\' in a path string on Windows.
+
+2018-12-17 18:04:37 +0000 Jonny Lamb <jonnylamb@jonnylamb.com>
+
+ * tests/check/elements/rtpulpfec.c:
+ rtpulpfec: stop and start the harness when setting error-after
+ gstreamer!55 makes some changes to how the `error-after` counter works
+ which breaks this test. This change makes the test not rely on the
+ ability to alter `error-after` at runtime and explicitly stops and
+ starts the harness before pushing data.
+ An alternative would be to add another argument to
+ `harness_rtpulpfecdec` to set `error-after` on construction but that's
+ slightly more long-winded. so I went for this approach instead.
+ Fixes #532, even though that's already closed.
+
+2018-12-17 18:59:34 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * tests/check/Makefile.am:
+ * tests/check/elements/.gitignore:
+ * tests/check/elements/rtpaux.c:
+ * tests/check/meson.build:
+ tests: remove rtpaux test
+ The initial mission statement for this test was:
+ * demonstrate usage of the request-aux-* signals in rtpbin
+ * test the rtx elements
+ We have examples that serve the first use case, and better
+ (harnessed) tests for the second use case.
+ This test is slow and racy, it served its purpose but can now
+ be removed.
+ Fixes #533
+
+2018-12-17 19:18:43 +0100 Nicola Murino <nicola.murino@gmail.com>
+
+ * ext/soup/gstsouphttpsrc.c:
+ * ext/soup/gstsouphttpsrc.h:
+ souphttpsrc: check difference in time from the last socket read before changing blocksize
+ If the pipeline consumes the data slower than the available network speed,
+ for example because sync=true, is useless to increase the blocksize and
+ reading in too big blocksizes can cause the connection to time out
+ Closes #463
+
+2018-08-08 09:27:09 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: Avoid code duplication
+ The function gst_v4l2_object_add_interlace_mode() has repeating code so
+ it's best use a loop instead. That will make it easy and simple to add
+ additional interlace modes in a following patch.
+
+2018-06-27 23:20:33 +0200 Zeeshan Ali <zeenix@collabora.co.uk>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: Make use of gst_video_interlace_mode_to_string()
+ Instead of a custom map to translate the interlace modes to strings, let's
+ make use of the base API provided.
+
+2018-12-17 13:45:36 +0100 Nicola Murino <nicola.murino@gmail.com>
+
+ * sys/osxaudio/gstosxcoreaudio.c:
+ osxcoreaudio: fix typo
+ kAudioFormatFlagIsSignedInteger is a format flags
+ Closes #394
+
+2018-12-17 09:33:39 +0100 Edward Hervey <edward@centricular.com>
+
+ * ext/qt/gstqtgl.h:
+ qtgl: Handle OPENGL header guard changes
+ In 2018 khronos changed the gl header guards. If we don't detect
+ this properly we would end up with plenty of symbol redifinition
+ (since we would be importing twice the "same" header).
+ Instead detect if the "newer" header was already included and if
+ so define the "old" define to avoid this situation
+ Fixes #523
+
+2018-12-10 17:34:03 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstqtmuxmap.c:
+ * gst/isomp4/qtdemux.c:
+ isomp4: Replace GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW with CEA608_S334_1A
+ For the demuxer we have to select line offset 0 for the time being as
+ this information is not passed over MOV.
+
+2018-12-13 20:45:23 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/rtpjitterbuffer.c:
+ rtpjitterbuffer tests: Validate the number of buffers
+
+2018-12-13 19:17:43 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * tests/check/elements/rtpjitterbuffer.c:
+ rtpjitterbuffer: Run all timers immediately on EOS
+ When the EOS event is received, run all timers immediately and avoid
+ pushing the EOS downstream before this has been run. This ensures that
+ the lost packet statistics are accurate.
+
+2018-12-13 19:16:11 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/rtpjitterbuffer.c:
+ rtpjitterbuffer test: Stop jitterbuffer before pads to avoid race
+ The teardown of the pads checks the refcount, but there are timers
+ inside the jitterbuffer that can push things, so if we're not lucky,
+ things could be pushed while the pads are being shut down. Putting the
+ jitterbuffer to NULL first avoids this.
+
+2018-11-22 10:41:29 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Stop waiting after EOS
+ After EOS is received, it is pointless to wait for further events,
+ specially waiting on timers. This patches fixes two cases where we could
+ wait instead of returning GST_FLOW_EOS and trigger a spin of the loop
+ function when EOS is queued, regardless if this EOS is the queue head or
+ not.
+
+2018-10-27 13:41:46 +0200 Jochen Henneberg <jh@henneberg-systemdesign.com>
+
+ * ext/flac/gstflacdec.c:
+ flacdec: Use new channel count for audio info
+
+2018-10-27 13:36:16 +0200 Jochen Henneberg <jh@henneberg-systemdesign.com>
+
+ * ext/flac/gstflacdec.c:
+ flacdec: Caps may have changed on FLAC metadata change
+ If the decoder signals metadata change we need to update the output
+ format and negotiate with downstream elements.
+
+2018-10-27 13:28:56 +0200 Jochen Henneberg <jh@henneberg-systemdesign.com>
+
+ * ext/flac/gstflacdec.c:
+ flacdec: Reset decoder on set_format()
+ Any call to set_format() could mean that the stream type changed so we
+ reset the decoder and mark got_headers FALSE.
+
+2018-12-05 18:42:55 +0100 Jochen Henneberg <jh@henneberg-systemdesign.com>
+
+ * gst/audioparsers/gstflacparse.c:
+ flacparse: On sink caps change restart parser
+ Draining the parser is not enough here, on caps change we need to
+ reset it so it is ready to accept new caps.
+
+2018-12-04 18:50:51 +0100 Jochen Henneberg <jh@henneberg-systemdesign.com>
+
+ * gst/rtp/gstrtpgstdepay.c:
+ rtpgstdepay: Update pad caps if inline caps change
+ If the inlined caps change while using the same CV we need to update the
+ source pad caps.
+
+2018-12-14 12:21:58 +0900 Justin Kim <jeongseok.kim@sk.com>
+
+ * sys/osxvideo/meson.build:
+ osxvideo: meson: Add dependencies by using appleframeworks
+ Otherwise, it fails to link.
+ gst-build#13
+
+2018-12-07 19:09:30 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/cairo/gstcairooverlay.c:
+ cairooverlay: Optimize premultiplication/unpremultiplication loops
+ Pull in video frame fields into local variables. Without this the
+ compiler must assume that they could've changed on every use and read
+ them from memory again.
+ This reduces the inner loop from 6 memory reads per pixels to 4, and the
+ number of writes stays at 3.
+
+2018-12-05 19:37:13 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Put framerate into the closedcaption caps if it can be calculated from the stream
+ Using the same calculation used for video streams.
+
+2018-12-05 19:31:25 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Set timescale of closedcaption tracks to the one of the main video track
+
+2018-12-05 17:24:13 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * common:
+ Automatic update of common submodule
+ From ed78bee to 59cb678
+
+2018-11-19 18:20:52 +0000 Maciej Wolny <maciej.wolny@codethink.co.uk>
+
+ * gst/flv/gstflvmux.h:
+ * sys/v4l2/gstv4l2allocator.h:
+ Remove duplicate declarations
+ This causes 'redefinition of typedef ...' errors on GCC 4.5.3
+
+2018-11-30 23:56:12 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/Makefile.am:
+ tests: rtpssrcdemux: fix uninstalled autotools build and distcheck
+
+2018-11-30 19:29:30 +0100 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: set need_segment after a second moov
+ stream.segment should be updated with the values of the current edit
+ list, also when a new `moov` is received. Unfortunately this was not
+ being the case because of an early return.
+ As a consequence of this bugs, no end of movie clipping was being
+ performed on the new moov and no segment event was being emitted.
+ When performing stream switching (e.g. in MSE) the new moov may have a
+ different edit list. This is often the case when switching between
+ baseline H.264 (which lacks B-frames) and more demanding profiles. For
+ this reason it's important to emit a new segment in order to be able
+ to get matching stream times.
+
+2018-11-29 22:42:34 +0100 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Initialize QtDemuxStream.segment in its constructor
+ This patch moves the initialization of QtDemuxStream.segment from
+ gst_qtdemux_add_stream() to _create_stream(). This ensures the segment
+ is always initialized when the stream is created.
+ Otherwise the segment format is left as GST_FORMAT_UNDEFINED in the case
+ were a track is reparsed and qtdemux_reuse_and_configure_stream() is
+ called instead of gst_qtdemux_add_stream(). (See
+ qtdemux_expose_streams() in the non streams-aware case.)
+
+2018-11-29 13:48:33 +0100 Miguel Paris <mparisdiaz@gmail.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ rtpsession: properly handle rtcp_feedback_retention_window
+ - Consider GST_CLOCK_TIME_NONE as not to be used.
+ - Complete "rtcp-feedback-retention-window" property getter/setter
+ implementation.
+
+2018-11-29 13:02:53 +0100 Miguel Paris <mparisdiaz@gmail.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsource.c:
+ * gst/rtpmanager/rtpsource.h:
+ rtpsource: properly prune RTCP packets out of feedback_retention_window
+ Closes #522
+
+2018-11-29 13:01:44 +0100 Miguel Paris <mparisdiaz@gmail.com>
+
+ * gst/rtpmanager/rtpsource.c:
+ rtpsource: properly compare buffer PTSs
+
+2018-11-29 12:58:18 +0100 Miguel Paris <mparisdiaz@gmail.com>
+
+ * gst/rtpmanager/rtpsource.c:
+ rtpsource: retain_rtcp_packet: warning if invalid running_time
+
+2018-11-29 12:55:38 +0100 Miguel Paris <mparisdiaz@gmail.com>
+
+ * gst/rtpmanager/gstrtpsession.c:
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsession.h:
+ rtpsession: properly set the running_time for rtcp packet info
+
+2018-11-29 14:54:06 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtpmanager/gstrtpssrcdemux.c:
+ rtpssrcdemux: Rename confusingly name lock macros
+ This is an extra internal recurisve lock use to avoid having to take
+ both sink pad streams lock all the time. This patch renamed it
+ INTERLNAL_STREAM_LOCK/UNLOCK() to avoid confusion with possible upstream
+ GST_PAD API.
+
+2018-11-28 17:14:11 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtpmanager/gstrtpssrcdemux.c:
+ rtpssrcdemux: Hold on internal stream lock while pushing sticky
+ This reverts "6f3734c305 rtpssrcdemux: Only forward stick events while
+ holding the sinkpad stream lock" and actually hold on the internal
+ stream lock. This prevents in some needed case having a second
+ streaming thread poping in and messing up event ordering.
+
+2018-11-27 17:10:57 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * tests/check/Makefile.am:
+ * tests/check/elements/rtpssrcdemux.c:
+ * tests/check/meson.build:
+ test: rtpssrcdemux: Test event forwarding
+ This the first unit test of this element. It adds a test that verify
+ that events are forwarded correctly.
+
+2015-11-04 12:52:17 +0100 Matej Knopp <matej.knopp@gmail.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: fix handling of MS ACM audio
+ Pass riff codec-data as strf, not strd, which is where
+ gst_riff_create_audio_caps() expects the WAVEFORMATEXTENSIBLE
+ data.
+ https://bugzilla.gnome.org/show_bug.cgi?id=757583
+ Fixes #234
+
+2018-11-28 05:52:16 +0200 Jordan Petridis <jordan@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/rtp/gstrtpg722pay.c:
+ * gst/rtpmanager/gstrtpmux.c:
+ * gst/udp/gstudpsrc.c:
+ * sys/v4l2/gstv4l2jpegenc.c:
+ * tests/check/elements/rtpmux.c:
+ * tests/check/elements/rtpsession.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
+
+2018-11-26 08:10:24 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/videocrop/gstaspectratiocrop.c:
+ aspectcropration: Fix potential unref of NULL pointer
+
+2018-11-25 11:31:11 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/videocrop/gstaspectratiocrop.c:
+ * gst/videocrop/gstaspectratiocrop.h:
+ aspectcropratio: Set caps from the streaming thread on property changes
+ Otherwise it might lead to deadlocks
+ See https://gitlab.gnome.org/GNOME/pitivi/issues/2259
+ Closes #518
+
+2018-11-23 14:01:35 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtpmanager/gstrtpssrcdemux.c:
+ rtpssrcdemux: Forward serialized events to all pads
+ While forwarding serialized event, we use gst_pad_forward() function.
+ In the forward callback (GstPadForwardFunction) we always return
+ TRUE. Returning true there will stop the dispatching procedure. As a
+ side effect, only one events is receiving the events. This breaks
+ when sending EOS from the applicaiton, it also breaks the latency
+ tracer.
+
+2018-11-24 19:13:28 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * meson.build:
+ meson: Specify encoding to UTF-8 when building with MSVC
+ Use build arguments consistent with core and -base. This can also
+ remove noisy "C4819" warning of non-us locale MSVC.
+
+2018-11-21 15:11:00 -0500 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * meson.build:
+ Check for zlib header
+
+2018-11-21 18:53:39 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.h:
+ v4l2: Properly fix Android build
+ The previous patch did not even compile on any possible platform or C
+ standard. That commit also didn't have a proper commit message.
+ Android ships Linux with a different signature for ioctl. They first
+ released an ioctl with int as request type, and later "fixed" it by
+ adding an override with unsign, which is still not matching Linux and
+ BSD implementation which uses unsigned long int.
+
+2018-11-21 16:11:02 -0500 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * sys/v4l2/gstv4l2object.h:
+ Fix ioctl() signature on Android
+
+2018-10-09 16:43:08 -0400 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * meson.build:
+ Fix zlib detection when there is no pkg-config file
+
+2018-11-19 20:05:39 +0530 Arun Raghavan <arunsr@codeaurora.org>
+
+ * ext/pulse/pulsesink.c:
+ * ext/pulse/pulsesrc.c:
+ * ext/pulse/pulseutil.c:
+ * ext/pulse/pulseutil.h:
+ pulse: Expose the correct max rate that we support
+ PulseAudio defines PA_RATE_MAX as the maximum sampling rate that it
+ supports. We were previously exposing a maximum rate of INT_MAX, which
+ is incorrect, but worked because nothing was really using a rate greater
+ than 384000 kHz.
+ While playing DSD data, we hit a case where there might be very high
+ sample rates (>1MHz), and pulsesink fails during stream creation with
+ such streams because it erroneously advertises that it supports such
+ rates.
+ Since PA_RATE_MAX is #define'd to (8*48000U), we can't just use it in
+ the caps string. Instead, we fix up the rate to what we actually support
+ whenever we use our macro caps.
+
+2018-11-14 08:57:55 +0100 Alicia Boya García <aboya@igalia.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-demux.h:
+ matroskademux: Defer seeks received before GST_MATROSKA_READ_STATE_DATA
+ This patch enables matroskademux to receive seeks before it reaches
+ GST_MATROSKA_READ_STATE_DATA.
+ Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/514
+ This also enables receiving seeks in the element READY state.
+ When such a seek is received, it is stored to be later handled when
+ GST_MATROSKA_READ_STATE_DATA is reached.
+
+2018-10-16 12:38:46 +0200 Linus Svensson <linussn@axis.com>
+
+ * gst/rtpmanager/gstrtpsession.c:
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsession.h:
+ * gst/rtpmanager/rtpsource.c:
+ rtpsession: Implement reset
+ Reset RTPSession when rtpsession changes state from PAUSED to READY.
+ Without this change, a stored last_rtptime in RTPSource could interfere
+ with RTP timestamp generation in RTCP Sender Report.
+ Fixes #510
+
+2018-11-06 15:05:54 +0100 Linus Svensson <linussn@axis.com>
+
+ * tests/check/elements/rtpsession.c:
+ rtpsession: test: Plug memory leak
+
+2018-11-13 00:37:11 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/gstrtpfunnel.c:
+ * gst/rtpmanager/gstrtpfunnel.h:
+ rtpfunnel: Stop using G_DECLARE_FINAL_TYPE
+ Fixes #516
+
+2018-11-12 13:42:29 +0200 Jordan Petridis <jordan@centricular.com>
+
+ * .gitlab-ci.yml:
+ Add Gitlab CI configuration
+ This commit adds a .gitlab-ci.yml file, which uses a feature
+ to fetch the config from a centralized repository. The intent is
+ to have all the gstreamer modules use the same configuration.
+ The configuration is currently hosted at the gst-ci repository
+ under the gitlab/ci_template.yml path.
+ Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
+
+2018-10-18 22:23:31 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Read driver selected interlace mode
+ If there was no interlace-mode field in the caps. Read back the value
+ selected by the driver. This way, if the driver does not support
+ progressive, then it will automatically negotiate the returned mode
+ unless this mode is not supported by GStreamer.
+ This method was already used for colorimetry. Just like colorimetry, the
+ interlace mode is not longer probed by v4l2src dues to performance
+ issues.
+ Fixes #511
+
+2018-05-17 21:58:25 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroska: implement preliminary support for the bitrate query
+ Return the size / total duration as a ballpark estimate.
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
+
+2018-05-17 21:53:56 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ isomp4: add preliminary support for the bitrate query
+ Return the upstream size over the duration as a first estimate.
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
+
+2018-11-06 23:02:21 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: Sink jitterbuffer/storage before passing as parameters to signals
+ Otherwise signal handlers from bindings will take ownership of them as
+ they are still floating, and we won't own a reference inside rtpbin
+ anymore.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/515
+
+2018-10-27 18:00:52 +0100 Havard Graff <havard.graff@gmail.com>
+
+ * tests/check/elements/flvmux.c:
+ flvmux: Test that timestamps are always increasing
+ Decreasing timestamps break rtmpsink.
+ With contributions from Olivier Crête.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796382
+
+2018-10-27 19:27:12 +0100 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/flv/gstflvmux.c:
+ * gst/flv/gstflvmux.h:
+ flvmux: Force timestamps to always be increasing
+ https://bugzilla.gnome.org/show_bug.cgi?id=796382
+
+2018-11-05 05:36:26 +0000 Matthew Waters <matthew@centricular.com>
+
+ * .gitmodules:
+ Update common submodule location
+ Remove the git directory
+
+2018-11-05 12:16:46 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * .gitmodules:
+ * gst-plugins-good.doap:
+ Clone the code from gitlab
+ This fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/513
+
+2018-11-01 20:37:12 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Ignore corrupted CTTS box
+ If ctts (CompositionOffsetBox) has larger sample_offset
+ (offset between PTS and DTS) than (2 * duration) of the stream,
+ assume the ctts box to be corrupted and ignore the box.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797262
+
+2018-10-23 09:45:36 +0100 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/audiofx/gstscaletempo.c:
+ scaletempo: Implement SEGMENT query
+ https://bugzilla.gnome.org/show_bug.cgi?id=797313
+
+2018-10-23 09:42:21 +0100 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/wavparse/gstwavparse.c:
+ wavparse: Implement SEGMENT query
+ https://bugzilla.gnome.org/show_bug.cgi?id=797313
+
+2018-10-28 17:12:59 +0000 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/dtmf/gstdtmfsrc.c:
+ dtmfsrc: Declare output as interleaved
+ This element doesn't support planar audio yet.
+
+2018-10-28 14:09:21 +0000 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * tests/icles/meson.build:
+ meson: Add some missing test dependencies
+ Without these dependencies, the enumtype may not be generated when the
+ test is built, which will cause a compile failure.
+
+2018-10-28 14:07:54 +0000 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * tests/check/meson.build:
+ meson: Cleanup old FIXMEs that relied on meson changes
+
+2018-10-16 17:28:00 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ * tests/check/elements/rtpsession.c:
+ rtpsession: Allow changing the SDES at runtime
+ Make it possible to modify the SDES in a packet at runtime.
+ https://bugzilla.gnome.org/show_bug.cgi?id=763502
+
+2018-03-01 17:25:07 +0100 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/atoms.c:
+ * gst/isomp4/gstqtmux.c:
+ qtmux: round to nearest when computing mehd and tkhd duration
+ This fixes a bug where in some files mehd.fragment_duration is one unit
+ less than the actual duration of the fragmented movie, as explained below:
+ mehd.fragment_duration is computed by scaling the end timestamp of
+ the last frame of the movie in (in nanoseconds) by the movie timescale.
+ In some situations, the end timestamp is innacurate due to lossy conversion to
+ fixed point required by GstBuffer upstream.
+ Take for instance a movie with 3 frames at exactly 3 fps.
+ $ gst-launch-1.0 -v videotestsrc num-buffers=3 \
+ ! video/x-raw, framerate="(fraction)3/1" \
+ ! x264enc \
+ ! fakesink silent=false
+ dts: 999:59:59.333333334, pts: 1000:00:00.000000000, duration: 0:00:00.333333333
+ dts: 999:59:59.666666667, pts: 1000:00:00.666666666, duration: 0:00:00.333333334
+ dts: 1000:00:00.000000000, pts: 1000:00:00.333333333, duration: 0:00:00.333333333
+ The end timestamp is calculated by qtmux in this way:
+ end timestamp = last frame DTS + last frame DUR - first frame DTS =
+ = 1000:00:00.000000000 + 0:00:00.333333333 - 999:59:59.333333334 =
+ = 0:00:00.999999999
+ qtmux needs to round this timestamp to the declared movie timescale, which can
+ ameliorate this distortion, but it's important that round-neareast is used;
+ otherwise it would backfire badly.
+ Take for example a movie with a timescale of 30 units/s.
+ 0.999999999 s * 30 units/s = 29.999999970 units
+ A round-floor (as it was done before this patch) would set fragment_duration to
+ 29 units, amplifying the original distorsion from 1 nanosecond up to 33
+ milliseconds less than the correct value. The greatest distortion would occur
+ in the case where timescale = framerate, where an entire frame duration would
+ be subtracted.
+ Also, rounding is added to tkhd duration computation too, which
+ potentially has the same problem.
+ https://bugzilla.gnome.org/show_bug.cgi?id=793959
+
+2018-05-16 14:15:13 +0200 Marc Leeman <marc.leeman@gmail.com>
+
+ * gst/udp/gstudpsrc.c:
+ udpsrc: print information about bind_error socket error
+ In some cases, a bind error occurs during operation. Printing
+ the information about the problem is critical for finding the
+ conflict
+ https://bugzilla.gnome.org/show_bug.cgi?id=797340
+
+2018-10-17 12:58:08 +0200 Johan Bjäreholt <johanbj@axis.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-ids.c:
+ * gst/matroska/matroska-read-common.c:
+ matroska-demux: Fix caps memleak
+ https://bugzilla.gnome.org/show_bug.cgi?id=797326
+
+2018-10-11 09:24:53 +0900 Wonchul Lee <w.lee@lge.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: fix typo resurect to resurrect
+ https://bugzilla.gnome.org/show_bug.cgi?id=797273
+
+2018-10-18 12:29:00 +0530 Amit Pandya <apandya@nvidia.com>
+
+ * sys/v4l2/Makefile.am:
+ * sys/v4l2/gstv4l2.c:
+ * sys/v4l2/gstv4l2h265enc.c:
+ * sys/v4l2/gstv4l2h265enc.h:
+ * sys/v4l2/meson.build:
+ v4l2videoenc: Add HEVC support
+ Add HEVC encoder support.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797141
+
+2018-10-19 17:37:28 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2allocator.c:
+ vl42allocator: Don't dup exported dmabufs
+ We can now use the new GstFAllocator to ask the allocator not to close
+ the wrapped FD. This way the dup is no longer needed.
+
+2018-10-19 17:14:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2allocator.c:
+ v4l2allocator: Don't dup imported DMABuf FD
+ There is no specific needs to duplicate the FD. Unlike the exportation,
+ we don't depend on code that will call close. This will make debugging
+ easyer since the traced FD will match the exporter.
+
+2018-10-23 13:04:34 +0200 Johan Bjäreholt <johanbj@axis.com>
+
+ * gst/matroska/matroska-ids.c:
+ matroska-ids: Fix uninitialized memory in contexts
+ https://bugzilla.gnome.org/show_bug.cgi?id=797327
+
+2018-10-19 17:02:11 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstqtmux.h:
+ qtmux: Add property for providing a threshold after which we create an edit list for gaps at the start
+ https://bugzilla.gnome.org/show_bug.cgi?id=797290
+
+2018-10-22 12:21:54 +0100 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/atoms.c:
+ qtmux: Correctly set tkhd width/height to the display size
+ It was previously set to the display aspect ratio, e.g. 4x3, 16x9, etc.
+ but should be set to the display size.
+ This is a regression from e655d47dfce1652630fe8ff5fb6be56370087004
+ (1.5.1) and was correct before that.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797318
+
+2018-10-21 11:15:15 +0900 Yeongjin Jeong <gingerbk247@gmail.com>
+
+ * tests/check/elements/flvmux.c:
+ tests: flvmux: Fix pushing invalid audio caps in tests
+ Previous commit created caps with incorrect aac codec data
+ that did not match the audio channel.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797256
+
+2018-10-20 00:10:04 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Fix build with GLib versions < 2.54
+ g_ptr_array_find_with_equal_func was introduced in glib 2.54
+ which is a higher version than our minimum required one.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797239
+
+2018-10-17 13:52:20 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * tests/check/elements/rtpsession.c:
+ rtpsession: fix up GHashTable-behavior dependent tests
+ GHashTable iteration order changed in recent GLib,
+ and tests were relying on that.
+ https://mail.gnome.org/archives/desktop-devel-list/2018-October/msg00016.html
+
+2018-10-07 20:07:39 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Don't switch active streams and old streams ...
+ ... before the old streams is not exposed yet for MSS stream.
+ In case of DASH, newly configured streams will be exposed
+ whenever demux got moov without delay.
+ Meanwhile, since there is no moov box in MSS stream,
+ the caps will act like moov. Then, there is delay for exposing new pads
+ until demux got the first moof.
+ So, following scenario is possible only for MSS but not for DASH,
+ STREAM-START -> CAPS -> (configure stream but NOT EXPOSED YET)
+ -> STREAM-START-> CAPS (configure stream again).
+ In above scenario, we can reuse old stream without any stream reconfigure.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797239
+
+2018-10-07 16:43:34 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux.h:
+ qtdemux: Use GPtrArray to store QtDemuxStream structure
+ GPtrArray has less overhead than linked list and the length also
+ can be auto updated by using it.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797239
+
+2018-10-07 16:50:45 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Make QtDemuxStream refcounted structure
+ This a prework for porting GPtrArray.
+ Refcounting will help the use of g_ptr_array_new_with_free_func()
+ with QtDemuxStream structure
+ https://bugzilla.gnome.org/show_bug.cgi?id=797239
+
+2018-10-06 20:19:40 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Make function foreach method friendly
+ https://bugzilla.gnome.org/show_bug.cgi?id=797239
+
+2018-07-26 15:25:06 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Only set width/height in caps if they're non-0
+ If they are not valid, then let a downstream parser complete them.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796878
+
+2018-08-16 12:07:30 +0200 Wim Taymans <wtaymans@redhat.com>
+
+ * gst/avi/gstavidemux.c:
+ avidemux: fix misleading debug line
+
+2018-06-22 16:00:11 +0100 Philippe Normand <philn@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Avoid warning when reporting about decryptors
+ https://bugzilla.gnome.org/show_bug.cgi?id=796652
+
+2018-10-17 14:15:33 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/audiofx/meson.build:
+ * gst/deinterlace/meson.build:
+ * gst/videobox/meson.build:
+ * gst/videomixer/meson.build:
+ meson: Replace empty configuration_data() with copy keyword
+ Use 'copy' keyword to avoid meson warning message.
+ Note that 'copy' keyword in configure_file() is available
+ since meson 0.47.0
+ https://bugzilla.gnome.org/show_bug.cgi?id=797298
+
+2018-10-16 15:42:12 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Do not hardcode frames_of_daily_jam
+ Apart from the obvious drawbacks of hardcoding, the drawback here was
+ that, if we subtracted 2 frames (instead of 2.6) from the target running
+ time, we'd request the next keyframe a bit too far into the future,
+ which would make our files split at the wrong position.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797293
+
+2018-10-02 19:32:47 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Allow up to 1% of frame rate for lateness
+ https://bugzilla.gnome.org/show_bug.cgi?id=797290
+
+2018-09-18 13:15:06 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/gstrtpfunnel.c:
+ rtpfunnel: fix shutdown
+ By disposing of the ssrc_to_pad map in finalize instead of
+ dispose.
+
+2017-10-18 11:14:36 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/Makefile.am:
+ * gst/rtpmanager/gstrtpfunnel.c:
+ * gst/rtpmanager/gstrtpfunnel.h:
+ * gst/rtpmanager/gstrtpmanager.c:
+ * gst/rtpmanager/meson.build:
+ * tests/check/Makefile.am:
+ * tests/check/elements/rtpfunnel.c:
+ * tests/check/meson.build:
+ Initial commit of GstRtpFunnel
+ For funneling together rtp-streams into a single session.
+ Use-cases include multiplexing and bundle.
+
+2018-10-12 22:33:15 +0900 Yeongjin Jeong <gingerbk247@gmail.com>
+
+ * tests/check/elements/flvdemux.c:
+ tests: flvdemux: Add new test for channel detect using aac codec-data
+ https://bugzilla.gnome.org/show_bug.cgi?id=797275
+
+2018-10-11 16:36:17 +0900 Yeongjin Jeong <gingerbk247@gmail.com>
+
+ * gst/flv/gstflvdemux.c:
+ flvdemux: Use aac codec-data to adjust channels if needed
+ Flv does not support various channels in AAC stream format, for example
+ flvdemux detect an audio channels of 2(stereo) when the AAC really is 1(mono).
+ https://bugzilla.gnome.org/show_bug.cgi?id=797275
+
+2018-10-11 14:31:20 +0900 Yeongjin Jeong <gingerbk247@gmail.com>
+
+ * tests/check/elements/flvmux.c:
+ tests: flvmux: Add new test for caps change after starting to write headers
+ https://bugzilla.gnome.org/show_bug.cgi?id=797256
+
+2018-10-05 17:16:26 +0900 Yeongjin Jeong <gingerbk247@gmail.com>
+
+ * gst/flv/gstflvmux.c:
+ * gst/flv/gstflvmux.h:
+ flvmux: Don't refuse caps changes after starting to write headers in streamable mode.
+ Flv does support changing the stream type and stream properties
+ after the headers were started to be written, and for example H264
+ codec_data changes can be supported.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797256
+
+2018-10-11 13:55:01 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Fix if condition in drop-frame timecode wrap-around
+ Was previously: if ( x | y && a == b). Changed it into if ((x & y) && (a
+ == b)).
+
+2018-10-09 16:39:11 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Subtract daily jam offset when day wraps around
+ For drop-frame framerates, when the expected next max timecode wraps
+ around at the end of the day, we have to subtract the offset of the
+ daily jam, otherwise we end up with a duration that's a few frames too
+ long.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797270
+
+2017-09-25 14:30:13 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtpmux.c:
+ * tests/check/elements/rtpmux.c:
+ rtpmux: respect downstream "timestamp-offset" in caps.
+ https://bugzilla.gnome.org/show_bug.cgi?id=795162
+
+2016-06-07 14:38:19 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtpmux.c:
+ * gst/rtpmanager/gstrtpmux.h:
+ * tests/check/elements/rtpmux.c:
+ rtpmux: cleanup ssrc-handling code a bit
+ And add some better logging.
+ https://bugzilla.gnome.org/show_bug.cgi?id=795162
+
+2016-05-04 11:48:04 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtpmux.c:
+ rtpmux: protect against NULL caps
+ Due to state-changes deactivating the pad from another thread,
+ this can happen.
+ https://bugzilla.gnome.org/show_bug.cgi?id=795162
+
+2015-07-22 09:47:22 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtpmux.c:
+ * tests/check/elements/rtpmux.c:
+ rtpmux: property should overrule both upstream and downstream
+ https://bugzilla.gnome.org/show_bug.cgi?id=762213
+ https://bugzilla.gnome.org/show_bug.cgi?id=795162
+
+2018-10-08 20:45:08 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ meson: use new 'python' module instead of deprecated
+ https://github.com/mesonbuild/meson/pull/4169
+
+2018-10-08 20:35:15 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/examples/gtk/meson.build:
+ meson: only build gtk gl examples if gst-gl was found
+ And fix typo in glliveshader example binary name.
+
+2018-10-03 16:17:22 +0200 Peter Körner <git@mazdermind.de>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: accept pads named 'sink' on the muxer, handle static pads as well
+ https://bugzilla.gnome.org/show_bug.cgi?id=797241
+
+2018-09-25 17:44:15 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/cairo/gstcairooverlay.c:
+ * ext/cairo/gstcairooverlay.h:
+ cairooverlay: Don't map input buffers if we just attach the overlay as meta
+ https://bugzilla.gnome.org/show_bug.cgi?id=797091
+
+2018-09-25 17:02:26 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/cairo/gstcairooverlay.c:
+ * ext/cairo/gstcairooverlay.h:
+ cairooverlay: Add overlay as meta to the buffers if we can
+ This requires that downstream supports it and
+ draw-on-transparent-surface is enabled.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797091
+
+2018-09-25 15:34:40 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/cairo/gstcairooverlay.c:
+ cairooverlay: Pre-multiply and un-premultiply alpha in case of ARGB32
+ Cairo expects pre-multiplied alpha, we work on un-premultiplied alpha.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797091
+
+2018-09-25 15:31:20 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/cairo/gstcairooverlay.c:
+ * ext/cairo/gstcairooverlay.h:
+ cairooverlay: Add property for drawing on a transparent surface and then blending
+ This allows us to use the GstVideoOverlayComposition API and correctly
+ handle pre-multiplied alpha, while also only doing the alpha conversion
+ once instead of twice for the whole frame.
+ At a later point we can attach the meta to the buffer instead of
+ blending ourselves if downstream supports that.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797091
+
+2018-10-03 17:34:49 +0200 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-read-common.c:
+ matroskdemux: do not use MapInfo.data after unmapping
+ And minor gst-indenting
+
+2018-09-30 19:28:07 +0200 Yacine Bandou <yacine.bandou@softathome.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-ids.c:
+ * gst/matroska/matroska-ids.h:
+ * gst/matroska/matroska-read-common.c:
+ * gst/matroska/matroska-read-common.h:
+ matroska: Add the WebM encrypted content support in matroskademux
+ This commit:
+ 1. Reads the WebM and Matroska ContentEncryption subelements.
+ 2. Creates a GST_PROTECTION event for each ContentEncryption, which
+ will be sent before pushing the first source buffer.
+ The DRM system id field in this event is set to GST_PROTECTION_UNSPECIFIED_SYSTEM_ID,
+ because it isn't specified neither by Matroska nor by the WebM spec.
+ 3. Reads the protection information of encrypted Block/SimpleBlock and
+ extracts the IV and the partitioning format (subsamples).
+ 4. Creates the metadata protection for each encrypted Block/SimpleBlock,
+ with those informations: KeyID (extracted from ContentEncryption element),
+ IV and partitioning format.
+ 5. Adds a new caps for WebM encrypted content named "application/x-webm-enc",
+ with the following new fields:
+ "encryption-algorithm": The encryption algorithm used.
+ values: "None", "DES", "3DES", "Twofish", "Blowfish", "AES".
+ "encoding-scope": The field that describes which Elements have been modified.
+ Values: "frame", "codec-data", "next-content".
+ "cipher-mode": The cipher mode used in the encryption.
+ Values: "None", "CTR".
+ https://bugzilla.gnome.org/show_bug.cgi?id=765275
+
+2018-09-26 17:43:05 +0300 John Nikolaides <jnikolaides@toolsonair.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: Added a split-at-running-time action signal
+ The video file can now be split at an arbitrary time, given by the user
+ as an argument to the action signal.
+ https://bugzilla.gnome.org/show_bug.cgi?id=787922
+
+2018-09-21 19:47:44 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/rtp/gstrtpmp4gdepay.c:
+ * gst/rtp/gstrtpmp4gdepay.h:
+ rtpmp4gdepay: detect broken senders who send AAC with ADTS frames
+ Strip ADTS headers if we detect any, apparently some Sony cameras
+ send AAC with ADTS headers. We could also change the stream-format
+ in the output caps, but that would be unexpected to pipeline builders
+ and would not exactly be backwards compatible.
+
+2018-09-21 18:17:25 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/rtp/gstrtpmp4gdepay.c:
+ rtpmp4gdepay: factor out pushing of output buffer
+
+2018-09-26 13:29:42 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/imagefreeze/gstimagefreeze.c:
+ imagefreeze: Allow ANY capsfeatures
+
+2018-09-26 00:06:09 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/plugins/gst-plugins-good-plugins.args:
+ * docs/plugins/gst-plugins-good-plugins.signals:
+ * docs/plugins/inspect/plugin-audioparsers.xml:
+ * docs/plugins/inspect/plugin-video4linux2.xml:
+ docs: update for git master
+
+2018-06-22 12:05:17 +0100 Philippe Normand <philn@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: PIFF track encryption box support
+ The PIFF track encryption box is a UUID box containing the default encryption
+ values that should be used for PIFF sample encryption.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796647
+
+2018-09-24 11:45:46 +0200 Nicola Murino <nicola.murino@gmail.com>
+
+ * sys/osxaudio/gstosxcoreaudio.c:
+ osxaudio: add support for parsing more channel layouts ...
+ ... and fallback to gst_audio_info_set_format for not yet supported layouts.
+ Fix audio playback on iOS 12.
+ Based on patch from Byron Schiel <byron@canary.is>
+ https://bugzilla.gnome.org/show_bug.cgi?id=796919
+
+2018-09-22 17:22:46 +0200 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: turn impossible condition into an assert
+ qtdemux_update_streams() is only ever called after checking
+ `qtdemux->streams_aware` is TRUE. There is no need to check for that
+ condition again.
+ `qtdemux->streams_aware` is only modified when the demuxer is
+ hard-resetted, which is mutually exclusive with demuxing, so it cannot
+ be modified during the call.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797191
+
+2018-09-21 22:24:02 +0200 Alicia Boya García <aboya@igalia.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Emit no-more-pads after parsing Tracks
+ Currently matroskademux does not emit no-more-pads until the first
+ Cluster is parsed, even though the Tracks have already been parsed and
+ from that point on there can be no more tracks.
+ This is important in MSE because the browser needs to know when the MSE
+ initialization segment has been completely parsed so that it can expose
+ the tracks to the user. Some applications depend on this been done
+ before they feed frames to the demuxer.
+ As a consequence, historically WebKit has relied on hacks such as
+ listening to the `pad-added` event, which made impossible to support
+ multiple tracks in the same file. Let's fix that.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797187
+
+2018-09-21 20:38:02 +0200 Alicia Boya García <aboya@igalia.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Parse successive Tracks elements
+ This patch allows matroskademux to parse a second Tracks element,
+ erroring out if the tracks are not compatible (different number, type or
+ codec) and emitting new caps and tag events should they have changed.
+ https://bugzilla.gnome.org/show_bug.cgi?id=793333
+
+2018-09-21 16:23:57 +0200 Alicia Boya García <aboya@igalia.com>
+
+ matroskademux: Refactor track parsing out from adding tracks
+ This splits gst_matroska_demux_add_stream() into:
+ * gst_matroska_demux_parse_stream(): will read the Matroska bytestream
+ and fill a GstMatroskaTrackContext.
+ * gst_matroska_demux_parse_tracks(): will check there are no repeated
+ tracks.
+ * gst_matroska_demux_add_stream(): creates and sets up the pad for the
+ track.
+ https://bugzilla.gnome.org/show_bug.cgi?id=793333
+
+2017-11-30 20:44:23 +0100 Alicia Boya García <ntrrgc@gmail.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Allow Matroska headers to be read more than once
+ This is necessary for MSE, where a new MSE initialization segment may be
+ appended at any point. These MSE initialization segments consist of an
+ entire WebM file until the first Cluster element (not included). [1]
+ Note that track definitions are ignored on successive headers, they must
+ match, but this is not checked by matroskademux (look for
+ `(!demux->tracks_parsed)` in the code).
+ Source pads are not altered when the new headers are read.
+ This patch has been splitted from the original patch from eocanha in [2].
+ [1] https://www.w3.org/TR/mse-byte-stream-format-webm/
+ [2] https://bug334082.bugzilla-attachments.gnome.org/attachment.cgi?id=362212
+ https://bugzilla.gnome.org/show_bug.cgi?id=793333
+
+2018-08-16 21:42:37 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: Implement split-after
+ The behaviour of split-now is to output the current GOP after
+ starting a new file.
+ The newly-added split-after signal will output the current GOP
+ to the old file if possible once a new GOP is opened.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796982
+
+2018-09-20 12:12:55 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/flv/gstflvmux.c:
+ flvmux: Don't leak codec_data buffer
+ Use gst_buffer_replace() to prevent buffer leak
+ https://bugzilla.gnome.org/show_bug.cgi?id=797179
+
+2018-09-18 18:13:52 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Set Closed Caption track width/height to that of the first video track
+ Otherwise software like Premiere or Final Cut Pro won't like our files.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797111
+
+2018-09-19 11:45:59 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ * meson_options.txt:
+ meson: add glib-checks option to disable API guards and such
+ We want this enabled by default, also in releases, but people
+ may want to disable this for performance-critical workloads or
+ on embedded devices.
+
+2018-09-19 11:45:00 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson_options.txt:
+ meson: fix missing closing bracket in option descriptions
+
+2018-09-06 20:10:30 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Initialize caption track language code to 0 instead of "und"
+ Without this, Final Cut considers it "non-standard" and 0 (english) is a
+ good default for closed captions.
+ https://bugzilla.gnome.org/show_bug.cgi?id=797111
+
+2018-09-13 03:16:32 +0000 Song Bing <bing.song@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: Add HEVC decoder support
+ https://bugzilla.gnome.org/show_bug.cgi?id=771686
+
+2018-09-13 02:35:39 +0000 Nicolas Dufresne <nicolas@ndufresne.ca>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: Move capture probe after input format is set
+ This is to support Amlogic CODEC driver which does not provide a full
+ list of formats when the driver is initially opened. GStreamer does
+ not strictly need this full list initially, but only later, in order
+ to negotiate with downstream if multiple format can be selected.
+ With this change, we will no longer probe twice the device, since the
+ probed list can be directly used for negotation.
+
+2018-09-11 16:46:34 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ * sys/v4l2/gstv4l2videoenc.c:
+ v4l2: Add a debug message beforing waiting for codec stop
+ Add a debug message right before waiting for the driver.
+ This is useful in order to debug drivers without a properly
+ implemented decoder or encoder stop command.
+
+2018-09-10 13:18:45 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2/gstv4l2.c:
+ v4l2: Add a debug message indicating probe operation
+ It's useful to see the v4l2 element running the probe
+ operation, to confirm it's turned on and working.
+
+2018-09-10 13:18:30 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2/Makefile.am:
+ * sys/v4l2/gstv4l2.c:
+ * sys/v4l2/gstv4l2jpegenc.c:
+ * sys/v4l2/gstv4l2jpegenc.h:
+ * sys/v4l2/meson.build:
+ v4l2: Add JPEG encoding support
+ This commit adds the support for V4L JPEG stateful encoders.
+
+2018-09-10 16:20:52 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2/Makefile.am:
+ * sys/v4l2/gstv4l2.c:
+ * sys/v4l2/gstv4l2fwhtenc.c:
+ * sys/v4l2/gstv4l2fwhtenc.h:
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2videodec.c:
+ * sys/v4l2/meson.build:
+ v4l2: Add FWHT codec support
+ The recently added vicodec (virtual codec) V4L driver
+ uses the Fast Walsh-Hadamard Transform for encoding
+ and decoding.
+ Add support for it.
+
+2018-09-12 21:28:24 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/ext/v4l2-common.h:
+ * sys/v4l2/ext/v4l2-controls.h:
+ * sys/v4l2/ext/videodev2.h:
+ v4l2: Sync kernel header with linuxtv tree
+ This notably add HEVC and FWHT support, and VP8/9 profiles are now an
+ enumeration and their control exposed as a menu.
+
+2018-09-12 17:24:00 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Allow up to 1 trak timescale unit of lateness in prefill mode
+ For 59.94 FPS, it's common to set 60000 as timescale. For that
+ timescale, if the audio is late by as little as 0:00:00.000016666
+ (definitely less than one audio sample), lateness gets rounded to 1.
+ Added a safeguard that allows lateness up to 1 sample with the specific
+ trak's timescale, to make sure that values less than e.g. one audio
+ sample won't break the prefill mode. What will happen in this case is
+ that the audio will get squeezed back to the video's timestamp, which in
+ practice means that the audio will be 0.000016666 seconds early (with
+ the patch).
+ https://bugzilla.gnome.org/show_bug.cgi?id=797133
+
+2018-09-10 20:20:39 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Fix indentation
+
+2018-09-11 00:18:32 +0000 Nicolas Dufresne <nicolas@ndufresne.ca>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Protect against zero PAR num/demu
+ This fixes an assertion when the driver implement CROPCAP but does
+ not set the PAR.
+
+2018-09-12 00:52:19 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/audioparsers/gstwavpackparse.c:
+ wavpackparse: fix handling of correction streams
+ Accept wavpack correction streams (.wvc) on sink pad, so
+ that wavpackparse can also be used to packetise correction
+ streams.
+ Fix parsing of subblock ID tags - the higher bits are
+ flags and are not part of the ID. This resulted in
+ correction blocks not being recognised properly and
+ the output not having the right (correction) caps.
+
+2018-09-07 18:47:22 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/speex/meson.build:
+ meson: Explicitly pass -DWIN32 while building speex
+ The speex headers assume that WIN32 will always be defined when
+ building on Windows, but this is only true by default on MinGW.
+ Always set it explicitly.
+
+2018-09-06 13:13:19 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/flv/gstflvmux.c:
+ flvmux: Don't omit streamheader from caps on downstream reconfigure
+ The reconfigured downstream elements (e.g., dynamically added sink element)
+ most likely require the flv streamheader
+ https://bugzilla.gnome.org/show_bug.cgi?id=797089
+
+2018-09-05 16:11:00 -0700 Martin Kelly <mkelly@xevo.com>
+
+ * gst/matroska/matroska-mux.c:
+ * gst/matroska/matroska-mux.h:
+ matroskamux: don't store used UIDs
+ Currently, whenever we generate a 128-bit UID, we store it in a list and
+ return 0 if we ever encounter a collision. This is so mathematically
+ improbable that it's not worth checking for, so we can save memory and
+ time by not tracking the UID. Even if a collision happened, a list of
+ only 10 UIDs would be unlikely to detect it.
+ This article has a good description of how improbable a collision is:
+ https://en.wikipedia.org/wiki/Universally_unique_identifier#Collisions
+ https://bugzilla.gnome.org/show_bug.cgi?id=797086
+
+2018-09-06 20:06:10 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/atoms.c:
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Use existing helper function to create "und" language code
+
+2018-09-05 20:15:57 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/meson.build:
+ meson: Don't skip plugins that don't build with MSVC
+ We now have options for all plugins, so we will just disable these in
+ the cerbero recipe instead. These require external deps, so they won't
+ affect gst-build either.
+
+2018-09-03 16:04:33 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/mpg123/gstmpg123audiodec.h:
+ mpg123: Remove ssize_t fallback, not needed anymore
+ The mpg123 headers now contain a definition for ssize_t and building
+ with MSVC fails because of a redefinition for ssize_t
+
+2018-07-31 12:52:36 +0200 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Keep sample data from the current fragment only (push mode)
+ This patch clears the sample table whenever the demuxing of a new
+ fragment begins. This avoids increasing memory usage for long videos.
+ This behavior was already present when upstream_format_is_time; this
+ patch extends it to all push mode operation (e.g. Media Source
+ Extensions).
+ https://bugzilla.gnome.org/show_bug.cgi?id=796899
+
+2018-09-01 09:30:23 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * meson.build:
+ * sys/osxaudio/meson.build:
+ meson: Fix osxaudio build on iOS
+ Must define HAVE_IOS, and use appleframeworks dependency to ensure the
+ right frameworks are picked up.
+
+2018-08-22 19:23:53 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Only offer MMAP/DMABUF pool
+ The propose allocation was offering a pool even in DMABUF_IMPORT or
+ USERPTR mode. These pool are internal only.
+
+2018-08-22 17:51:52 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2transform.c:
+ * sys/v4l2/gstv4l2transform.h:
+ v4l2transform: Add "disable-passthrough" property
+ This allow forcing going through the transform driver even if there
+ isn't an conversion happening. This is usedful when the m2m driver can
+ be used to adapt the type of memory between two drivers.
+
+2018-08-31 14:25:09 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ deinterlace: Reset frame/tc/caption pointer to NULL after moving it in the history
+
+2018-08-29 09:51:42 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/rtp/gstrtpmp4vpay.c:
+ rtpmp4vpay: Increase ranking
+ Both rtpmp4vpay and rtpmp4gpay support MPEG4 elementary streams. But
+ the most supported variant is the video-specific one (rtpmp4vpay),
+ therefore increase the rank of that one so that auto-plugging of
+ payloaders for MPEG4 elementary streams ends up picking that one
+ and not the generic one.
+
+2018-08-15 12:53:34 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: implement keyframe search also without cluster prev size
+ If we have cluster prev size (GStreamer muxer will write it by default),
+ we can go back to the previous cluster efficiently, but if we don't then
+ just search backwards until we find a cluster ebml identifier, like we
+ do when searching for clusters in the bisection loop.
+
+2018-08-15 12:14:24 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-demux.h:
+ matroskademux: make max backtrack distance for keyframe search configurable
+ Add property instead of hardcoding it in the code.
+ In some scenarios such as CCTV variable fps and extra long GOPs are
+ used to minimise storage space, for example. In those cases there might
+ not be any keyframes for many minutes, so provide a property to override
+ the max allowed distance.
+ https://bugzilla.gnome.org/show_bug.cgi?id=790696
+
+2018-08-15 11:49:57 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: set limit how much to backtrack to find a keyframe
+ If we seek without an index and land on a cluster that starts
+ with a delta frame.
+ https://bugzilla.gnome.org/show_bug.cgi?id=790696
+
+2018-08-15 11:25:21 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-demux.h:
+ matroskademux: no need to search for keyframes for intra-only streams
+ If the video streams are all I-frame only then we don't need to look
+ for a cluster with a keyframe, we can just assume there will be one.
+ https://bugzilla.gnome.org/show_bug.cgi?id=790696
+
+2018-08-15 01:10:32 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: figure out if we have prev_size when starting up
+ This is useful to know in case someone initiates a seek or
+ direction change before we reach the second cluster.
+
+2018-08-08 12:37:54 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: try to ensure keyframe when seeking without index
+ When seeking in pull mode without an index (because there is no index
+ or the file is still being written to) we bisect to find the right
+ cluster to jump to. However, it's possible the cluster we found doesn't
+ start with a keyframe, which leads to decoding errors, so if we know
+ that the found cluster starts with a delta frame try to scan back to
+ previous clusters until we find one that starts with a keyframe or
+ we are back at the beginning. Theoretically it's possible that all
+ clusters but the first one do not start with a keyframe and the
+ keyframes are in the middle of clusters, but this is extremely
+ unusual, so we will cover this case with a basic sanity check.
+ This problem is especially problematic with content recorded with
+ dynamic GOP and FPS, where long GOP lengths and low FPS may cause a
+ large set of clusters to lack key frames. Playback would then be
+ started on a non-keyframe cluster, and the large number of such frames
+ would make the content impossible to decode fo a long stretch of time.
+ Based on patch by: Mats Lindestam <matslm@axis.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=790696
+
+2017-01-18 10:27:38 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-demux.h:
+ matroskademux: extract cluster prevsize if available
+ This is useful for reverse playback/trickmodes
+ without an index, and will also be useful in the
+ seek handler if we need to scan back to find a cluster
+ that starts with a keyframe.
+ https://bugzilla.gnome.org/show_bug.cgi?id=790696
+
+2018-07-25 19:27:01 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Validate stride/offset when importing
+ This will prevent situation where buffer size allow importing but rendering
+ goes wrong due to a miss-match in expected stride and offset.
+ https://bugzilla.gnome.org/show_bug.cgi?id=583890
+
+2018-08-01 13:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2object.h:
+ v4l2object: Add a method to try and import buffers
+ This method will check if a buffer, base on it's video meta,
+ can be imported. It will also try and adapt the request stride
+ in case this is the only that miss-match.
+ https://bugzilla.gnome.org/show_bug.cgi?id=583890
+
+2018-08-01 12:07:20 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2allocator.c:
+ v4l2allocator: Trace the buffer index we import to
+ https://bugzilla.gnome.org/show_bug.cgi?id=583890
+
+2018-07-25 22:16:59 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Fix typo in error message
+ https://bugzilla.gnome.org/show_bug.cgi?id=583890
+
+2018-07-24 12:07:22 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Only queue buffer if preparation worked
+ The preparation code imports the buffer, doing bunch of
+ validation. Only queue the buffer in the driver if the
+ importation worked. This way we don't rely on the driver
+ to validate.
+ https://bugzilla.gnome.org/show_bug.cgi?id=583890
+
+2018-07-24 12:05:45 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Only allow DMABuf export for STREAMING device
+ DMABuf exportation requires mmap, which requires STREAMING
+ capabilities.
+ https://bugzilla.gnome.org/show_bug.cgi?id=583890
+
+2018-07-13 14:42:21 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Activate the other pool first
+ This change has no effect. We will need to acquire a buffer from the
+ pool later in order to validate / adapt with the video alignment for
+ the downstream buffers.
+ https://bugzilla.gnome.org/show_bug.cgi?id=583890
+
+2018-07-09 15:33:02 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2src.c:
+ v4l2src: Simplify format handling
+ Always initially use try_format(), delaying set_format() to when the
+ allocation is being negotiated. This avoid having two code paths, and
+ will be help adding support for properly importing buffers of specific
+ strides and offsets.
+ https://bugzilla.gnome.org/show_bug.cgi?id=583890
+
+2018-08-23 22:57:35 +0200 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-ids.h:
+ * gst/matroska/matroska-mux.c:
+ * gst/matroska/matroska-parse.c:
+ matroska: fix handling of FlagInterlaced
+ This is an enum not a boolean, and a value of 2 signals
+ that the video is progressive, but we would mistakenly set
+ interlace-mode=mixed on the output caps.
+ https://bugzilla.gnome.org/show_bug.cgi?id=787206
+
+2018-08-09 15:14:05 +0200 Philipp Zabel <p.zabel@pengutronix.de>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: complete colorspace info in debug log
+ The desired colorimetry is logged with all parameters (colorpsace,
+ range, matrix, and transfer function), but of the values actually
+ set by the driver, only colorspace is logged. Complete the debug
+ log message to display all colorimetry parameters:
+ Desired colorspace is 8:1:1:1
+ Got format of 640x480, format YU12, nb planes 1, colorspace 8
+ ->
+ Desired colorspace is 8:1:1:1
+ Got format of 640x480, format YU12, nb planes 1, colorspace 8:0:0:0
+ https://bugzilla.gnome.org/show_bug.cgi?id=796940
+
+2018-08-09 15:12:57 +0200 Philipp Zabel <p.zabel@pengutronix.de>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: fix typo in comment
+ https://bugzilla.gnome.org/show_bug.cgi?id=796940
+
+2018-08-09 15:08:59 +0200 Philipp Zabel <p.zabel@pengutronix.de>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: improve colorspace handling for JPEG sources
+ gstjpegdec sets 1:4:0:0 colorimetry (full range BT.601 YCbCr encoding
+ with unknown primaries and unknown transfer function). This currently
+ gets translated to bt601 or bt709 depending on resolution.
+ Both cases result in a negotiation failure:
+ ERROR: from element /GstPipeline:pipeline0/v4l2video0convert:v4l2video0convert0: Device '/dev/video0' does not support 1:4:0:0 colorimetry
+ Improve the guessing game by selecting JPEG colorimetry (JPEG colorspace
+ with sRGB transfer function) under these specific conditions, and loosen
+ the matching so that 1:4:0:0 input gets accepted if the device is
+ actually configured to 1:4:7:1 (V4L2_PIX_FMT_JPEG default).
+ https://bugzilla.gnome.org/show_bug.cgi?id=796940
+
+2018-08-09 17:24:35 +0200 Philipp Zabel <p.zabel@pengutronix.de>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: stop V4L2 from zeroing extended colorimetry for non-mplane
+ Setting the priv field to a magic value stops V4L2 core from zeroing
+ the extended colorimetry fields quantization, ycbcr_enc, and xfer_func
+ for non-mplane queues.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796940
+
+2018-08-19 15:39:16 +0200 Zeeshan Ali <zeenix@collabora.co.uk>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: Remove a trailing whitespace
+ Otherwise, the latest gst-indent check doesn't pass.
+
+2018-08-18 21:08:55 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ * meson_options.txt:
+ meson: add options to disable gobject cast checks and glib asserts
+ ... and define G_DISABLE_DEPRECATED for development versions,
+ like we do in autotools.
+
+2018-08-18 21:01:52 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * REQUIREMENTS:
+ * ext/jpeg/meson.build:
+ meson: find libjpeg via pkg-config
+ This effectively (but optionally) requires libjpeg-turbo which
+ ships with a .pc file and is what pretty much everyone these days
+ uses anyway for libjpeg, so shouldn't be a problem hopefully.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796947
+
+2018-08-17 17:35:43 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/udp/gstudpsrc.c:
+ udpsrc: Fix build when SO_RCVBUFFORCE is not defined
+ This shoudl fix the mingw build.
+
+2018-08-17 14:17:39 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/udp/gstudpsrc.c:
+ udpsrc: Balance Linux value of get/set_rcvbuf
+ On Linux, the kernel returns twice the size as it will allocate extra
+ space for accouting. We devides this value by two in order to ensure
+ that get/set value now match. This fixes the set buffer size validation
+ and allow having a nice warning when the size if surpassed and the
+ process does not have CAP_NET_ADMIN capabilities.
+ https://bugzilla.gnome.org/show_bug.cgi?id=727067
+
+2018-08-17 14:05:04 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+ * gst/udp/gstudpsrc.c:
+ updsrc: set udp buffer size forcibly
+ The udp buffer size is limited to a maximum of around 100K.
+ Some apps need to set the force bufsize for their own operation.
+ Use the SO_RCVBUFFORCE option in order to override the rmem_max limit
+ of linux kernel. Require user to have the CAP_NET_ADMIN privilege to
+ work.
+ Original patch from Kyungnam Bae <kyungnam.bae@lge.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=727067
+
+2018-08-17 13:59:00 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+ * gst/udp/gstudpsrc.c:
+ udpsrc: factor out gst_udpsrc_get_rcvbuf()
+ No semantic change.
+ https://bugzilla.gnome.org/show_bug.cgi?id=727067
+
+2018-08-17 19:11:21 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/libcaca/meson.build:
+ * meson_options.txt:
+ meson: Rename caca option to libcaca
+ All options must match the plugin directory name.
+
+2018-08-17 18:56:54 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * meson_options.txt:
+ * sys/directsound/meson.build:
+ * sys/meson.build:
+ * sys/osxaudio/meson.build:
+ * sys/osxvideo/meson.build:
+ * sys/waveform/meson.build:
+ meson: Add build files for osxaudio, osxvideo, waveform
+ osxaudio is for macOS and iOS
+ osxvideo is for macOS
+ waveform is for Windows
+
+2018-08-17 14:44:26 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/plugins/gst-plugins-good-plugins.args:
+ * docs/plugins/gst-plugins-good-plugins.signals:
+ * docs/plugins/inspect/plugin-audiofx.xml:
+ * docs/plugins/inspect/plugin-deinterlace.xml:
+ * docs/plugins/inspect/plugin-isomp4.xml:
+ * docs/plugins/inspect/plugin-jpeg.xml:
+ * docs/plugins/inspect/plugin-matroska.xml:
+ * docs/plugins/inspect/plugin-multifile.xml:
+ docs: update for changes in master
+
+2018-08-17 11:45:47 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/examples/Makefile.am:
+ examples: dist qt examples
+ https://bugzilla.gnome.org/show_bug.cgi?id=796968
+
+2018-08-17 00:27:59 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * meson.build:
+ * meson_options.txt:
+ * tests/meson.build:
+ meson: Add an option for tests
+ This is needed because we don't always have gstreamer-check available,
+ for instance inside Cerbero on iOS.
+
+2018-08-16 18:55:29 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ * gst/multifile/gstsplitmuxsink.c:
+ mp4 robust muxing: improve documentation and logging
+
+2018-07-03 23:11:56 +0200 Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+ * gst/rtp/gstrtph264pay.c:
+ * gst/rtp/gstrtph265pay.c:
+ rtph26*pay: Update param set timestamp even if parameters unchanged
+ rtph264pay and rtph265pay skip updating the parameter set timestamp if
+ the units they see contain no new configuration. This can result in
+ them injecting duplicate parameters.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796748
+
+2018-08-15 13:43:53 +0200 Ulf Olsson <ulfo@axis.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ * gst/rtsp/gstrtspsrc.h:
+ rtspsrc: Add support for SET_PARAMETER and GET_PARAMETER using signals
+ https://bugzilla.gnome.org/show_bug.cgi?id=792131
+
+2018-08-15 02:28:20 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Don't leak old muxer/sink in async mode
+ Make sure to clear the reference taken earlier in the function
+ when switching muxer/sink asynchronously so they don't leak
+
+2018-08-15 02:10:25 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: Fix reference counting loop
+ The stream context was holding a reference to the
+ internal queue and pads, with pad probes that were
+ in turn holding references to the stream context.
+ This lead to a leak if the request pads weren't explicitly
+ released.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796893
+
+2018-08-11 16:45:25 +0800 Roland Jon <rlandjon@gmail.com>
+
+ * gst/audioparsers/gstaacparse.c:
+ aacparse: fix codec_data buffer leak
+ https://bugzilla.gnome.org/show_bug.cgi?id=740101
+
+2018-08-02 16:12:45 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Handle closed captions as subtitle streams
+
+2018-08-02 08:40:17 +0200 Iñigo Huguet <inigohuguet@hotmail.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2src: fix first input used is always used next times
+ The input from an v4l2 device that was used the first time was
+ remembered for next times, and set again always the pipeline is
+ set to READY state. This was making that users wasn't able to
+ select a different input without having to create a new pipeline.
+ This patch makes that v4l2src element forget previous used input
+ when going to NULL state, so it will check again for the current
+ selected input when going again to READY state. Users can change
+ to NULL state, select a new input with a VIDIOC_S_INPUT ioctl
+ and change to PLAYING again.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796908
+
+2018-08-02 13:40:09 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: The sample size we have to reserve is 256+8 bytes for the header for CDP packets
+
+2018-08-02 12:27:45 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Properly allocate 256 bytes per CDP packet in prefill mode
+ Instead of allowing 256 but only pre-allocating 100.
+
+2018-08-02 12:27:17 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ Revert "qtmux: Allow for CDP packets up to 320 bytes"
+ This reverts commit 5eed1d49bdb7e7a632c7135656c482ed38a6ac2a.
+ 255 is actually the maximum, there's a bug if more is arriving.
+
+2018-08-01 16:50:03 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Allow for CDP packets up to 320 bytes
+ Apparently they can be bigger than 256 bytes sometimes.
+
+2018-07-13 22:31:04 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtpopuspay.c:
+ * gst/rtp/gstrtpvp8pay.c:
+ * gst/rtp/gstrtpvp9pay.c:
+ rtppayload: Fix VP8/VP9/OPUS dual encoding name handling
+ All these were copy pasted and would lead to assertion when chained with
+ rtpmux. This commit rewrite the negotiation with downstream. This also
+ drop the fallback to ancient names if the pad is unlinked. This was
+ completly arbitrary decision that made no sense.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796809
+
+2018-08-01 12:06:23 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/qt/gstqtgl.h:
+ qt: Ensure GL headers are included
+ Otherwise there may be no valid typedef of GLsync.
+ ...
+ /usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:93:24: note: in definition of macro 'GST_GL_EXT_FUNCTION'
+ ret (GSTGLAPI *name) args;
+ ^~~~
+ /usr/include/gstreamer-1.0/gst/gl/glprototypes/sync.h:33:23: error: 'GLsync' has not been declared
+ (GLsync sync))
+ ^~~~~~
+ ...
+ https://bugzilla.gnome.org/show_bug.cgi?id=796879
+
+2018-08-01 03:18:58 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * sys/oss4/meson.build:
+ meson: Fix oss4 header checks
+ Otherwise, oss4 ends up getting built when force-disabled.
+
+2018-08-01 01:10:49 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * sys/v4l2/meson.build:
+ meson: Fix missing variable in v4l2 build
+
+2018-07-31 12:47:47 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtdemux: Don't assert in prefill mode if a track has no samples at all
+ Just write it with a duration of 0, no samples, etc.
+
+2018-07-31 12:33:54 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Don't assert if a file does not have any active streams
+ ** (gst-play-1.0:9113): CRITICAL **: 12:31:54.360: qtdemux_is_streams_update: assertion 'qtdemux->active_streams != NULL' failed
+
+2018-07-30 13:33:28 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Reserve 256 bytes for CDP packets in pre-fill mode
+ 92 is sometimes too small and compared to the wasted space for other
+ codecs 256 bytes is small (and should be the maximum CDP packet size)
+
+2018-07-25 07:35:28 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * ext/aalib/meson.build:
+ * ext/cairo/meson.build:
+ * ext/dv/meson.build:
+ * ext/flac/meson.build:
+ * ext/gdk_pixbuf/meson.build:
+ * ext/gtk/meson.build:
+ * ext/jack/meson.build:
+ * ext/jpeg/meson.build:
+ * ext/lame/meson.build:
+ * ext/libcaca/meson.build:
+ * ext/libpng/meson.build:
+ * ext/mpg123/meson.build:
+ * ext/pulse/meson.build:
+ * ext/qt/meson.build:
+ * ext/raw1394/meson.build:
+ * ext/shout2/meson.build:
+ * ext/soup/meson.build:
+ * ext/speex/meson.build:
+ * ext/taglib/meson.build:
+ * ext/twolame/meson.build:
+ * ext/vpx/meson.build:
+ * ext/wavpack/meson.build:
+ * gst/matroska/meson.build:
+ * gst/meson.build:
+ * meson.build:
+ * meson_options.txt:
+ * sys/directsound/meson.build:
+ * sys/meson.build:
+ * sys/oss/meson.build:
+ * sys/oss4/meson.build:
+ * sys/v4l2/meson.build:
+ * sys/ximage/meson.build:
+ * tests/examples/qt/qmlsink/meson.build:
+ * tests/examples/qt/qmlsrc/meson.build:
+ * tests/icles/meson.build:
+ * tests/meson.build:
+ meson: Add feature options for all plugins
+ Checks for GL, Qt5, and C++ are still automagic. FIXMEs have been
+ added for these so they can be fixed later.
+ https://bugzilla.gnome.org/show_bug.cgi?id=795107
+
+2018-07-25 17:15:53 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ * gst/deinterlace/gstdeinterlacemethod.h:
+ deinterlace: Closed caption pass-through
+ Pass through closed caption data when deinterlacing. When two
+ deinterlaced frames are created for the same interlaced frame (e.g.
+ fields=all), the second of the two frames will have no closed caption
+ data.
+ Also fixed memory leaks related to timecode meta pass-through.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796876
+
+2018-07-25 18:37:48 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstqtmuxmap.c:
+ qtmux: Implement muxing of AV1 into MP4 files
+ According to
+ https://aomediacodec.github.io/av1-isobmff/
+
+2018-07-25 17:09:06 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/matroska/matroska-mux.c:
+ matroskamux: Put codec_data as CodecPrivate for AV1
+
+2018-07-25 17:08:53 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/matroska/matroska-mux.c:
+ matroskamux: Accept muxing AV1
+
+2018-07-25 16:51:38 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/isomp4/fourcc.h:
+ * gst/isomp4/qtdemux_types.c:
+ qtdemux: Recognize more AV1 atoms
+
+2018-07-25 16:39:18 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Extract codec_data for AV1
+ According to
+ https://github.com/Matroska-Org/matroska-specification/blob/av1-mappin/codec/av1.md
+
+2018-07-25 14:31:39 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/isomp4/fourcc.h:
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Extract AV1 codec_data and put it in the caps
+ Also extract the presentation-delay and put it in the caps.
+
+2018-07-25 10:43:11 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/isomp4/fourcc.h:
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux_dump.c:
+ * gst/isomp4/qtdemux_types.c:
+ qtdemux: Add initial support for AV1 demuxing
+ Following the spec at
+ https://aomediacodec.github.io/av1-isobmff/
+
+2018-07-27 00:41:57 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ * gst/rtsp/gstrtspsrc.h:
+ rtspsrc: Add a small configurable teardown delay
+ This causes rtspsrc to send a teardown and wait on
+ PAUSED->READY transition, with a configurable delay.
+ Otherwise, typically teardown never gets sent in
+ playbin / uridecodebin where the transition back to NULL
+ happens too quickly.
+ The timeout is set to 100ms default.
+ https://bugzilla.gnome.org/show_bug.cgi?id=751994
+
+2018-07-26 16:43:28 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtp/gstrtpgstdepay.c:
+ * gst/rtp/gstrtpgstpay.c:
+ * gst/rtp/gstrtpgstpay.h:
+ rtpgstpay: Add support for force-keyunit events
+ This triggers immediate re-sending of the configuration data in-band.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796877
+
+2018-07-13 19:45:19 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtp/gstrtpgstpay.c:
+ * gst/rtp/gstrtph264pay.c:
+ * gst/rtp/gstrtph265pay.c:
+ * gst/rtp/gstrtpmp4vpay.c:
+ * gst/rtp/gstrtptheorapay.c:
+ * gst/rtp/gstrtpvorbispay.c:
+ rtp: Use running_time instead of PTS for config-interval calculations
+ PTS can start again from a different offset while the running time is
+ increasing. The only thing that matters here is the running time.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796807
+
+2018-07-19 22:48:34 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * tests/examples/gtk/meson.build:
+ * tests/examples/meson.build:
+ example: Build GTK and GTK GL example code
+
+2018-07-19 17:31:03 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
+
+ * gst/rtp/gstrtpL8pay.c:
+ rtpL8pay: don't try to modify a read-only structure
+ Just remove the code. It's not doing anything useful anyways. The modified
+ caps are the result of a caps query, so either not used afterwards of a
+ reference to some internal caps of another element that should not be
+ modified.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796837
+
+2018-07-17 08:23:54 +0200 Iñigo Huguet <inigohuguet@fanamoel.com>
+
+ * ext/qt/gstqtgl.h:
+ qmlgl: Fix conflicting declaration of type GLsync for non-android
+ https://bugzilla.gnome.org/show_bug.cgi?id=796821
+
+2018-07-16 19:03:39 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ * gst/deinterlace/gstdeinterlace.h:
+ * gst/deinterlace/gstdeinterlacemethod.h:
+ deinterlace: Timecode pass-through
+ When it is trivial to pass-through a timecode, by only removing the
+ "interlaced" flag, do pass-through. Otherwise, double the fps_n and
+ adjust the "frames" field.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796818
+
+2018-07-17 00:03:19 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmux: Improve handling of repeated timestamps
+ When handling input with timestamps that repeat, sometimes
+ splitmuxsink would get confused and ignore a keyframe.
+ The logic in question is a holdover from before the cmd queue
+ moved the file cutting to the multiqueue output side and made
+ it deterministic, so it's no longer needed on the input
+ here.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796773
+
+2018-07-17 01:33:55 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsrc.c:
+ Revert "splitmuxsrc: Make sure events are writable"
+ This reverts commit 3ac5430311b20f30814cdabf5724fb687748bb5b.
+ There's no need to make a freshly created event writable,
+ and the other half of this patch was already fixed
+ and pushed in f2f15a1
+
+2018-07-16 23:43:29 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsrc.c:
+ splitmuxsrc: Make sure events are writable
+ Before setting the seqnum on events sent downstream,
+ make sure they are writable.
+
+2018-07-13 16:51:24 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Validate that capture buffers were queued
+ When the pool is started, we allocate and release buffer, expecting
+ the pool release-buffer handler to queue them. Though, as we rely
+ on release function, there is no direct way to detect that this
+ process didn't work.
+ To check this, validate that the number of queued buffer is the same
+ as the number of allocated buffers. This allow returning an error
+ when buffer importation was refused by the driver.
+ https://bugzilla.gnome.org/show_bug.cgi?id=583890
+
+2018-07-13 16:02:02 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Only return eos for M2M devices
+ This will avoid sending EOS on v4l2src when a driver sends an empty
+ buffers. This case would be a bug in the driver, but yet the camera
+ should keep running.
+ This also removes the check for corrupted buffers, as this check is
+ already done later.
+ https://bugzilla.gnome.org/show_bug.cgi?id=794842
+
+2018-07-13 15:58:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2.c:
+ * sys/v4l2/v4l2-utils.h:
+ * sys/v4l2/v4l2_calls.c:
+ v4l2: Add a macro to check for M2M
+ https://bugzilla.gnome.org/show_bug.cgi?id=794842
+
+2018-07-13 14:41:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2allocator.c:
+ v4l2allocator: Fix userptr importation
+ The length passed to the driver was always 0 instead of the size of
+ the memory. This would fail validation in videobuf2.
+
+2018-07-12 15:11:39 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Remove duplicate check
+ We were calling gst_v4l2_is_buffer_valid() before and inside
+ gst_v4l2_buffer_pool_qbuf() as we needed to access the group. The second
+ check failed since the writability of the buffer get inherited from the
+ GstMemory, which lead to pipeline failure. As we cannot avoid the extra
+ ref, it would be racy otherwise, just pass the group to _dbuf() so it
+ does not have to call gst_v4l2_is_buffer_valid() again.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796692
+
+2017-08-25 11:58:12 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtpsession.c:
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsession.h:
+ * tests/check/elements/rtpsession.c:
+ rtpsession: Don't start the RTCP thread until it's needed
+ Always wait with starting the RTCP thread until either a RTP or RTCP
+ packet is sent or received. Special handling is needed to make sure the
+ RTCP thread is started when requesting an early RTCP packet.
+ We want to wait with starting the RTCP thread until it's needed in order
+ to not send RTCP packets for an inactive source.
+ https://bugzilla.gnome.org/show_bug.cgi?id=795139
+
+2018-07-11 12:21:44 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2object.h:
+ * sys/v4l2/gstv4l2src.c:
+ v4l2src: Try to avoid TRY_FMT when camera is streaming
+ Some camera firmware crash is TRY_FMT is called during streaming. As a
+ side effect. This try and detect that the same format as currently
+ running is about to be tried, and skip renegotiation.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796789
+
+2018-07-09 13:59:02 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: Protect double calls to set_format()
+ In some cases, set_format() may get called twice before the output
+ format is set. Running an allocation query in this case is both not
+ needed and will cause assertion due tot he NULL caps.
+
+2018-07-08 20:08:18 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/audiofx/gstscaletempo.c:
+ scaletempo: Mark as Audio in classification
+
+2018-07-06 15:21:33 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Store and propagate SEGMENT sequence numbers
+ * When receiving a segment in TIME, use that seqnum
+ * Only reset the stored sequence number when doing HARD reset
+ (and not when we get a FLUSH event from upstream)
+
+2018-07-01 15:27:32 -0400 Michael Tretter <m.tretter@pengutronix.de>
+
+ * sys/v4l2/gstv4l2transform.c:
+ v4l2transform: Implement stable element name
+ The first converter to be found will now gain the name v4l2convert.
+ Other converters will be named after the m2m dev node end point they are
+ attached to.
+ https://bugzilla.gnome.org/show_bug.cgi?id=784958
+
+2018-06-13 17:39:57 +0100 Philippe Normand <philn@igalia.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Set subtitle tag title from TrackName field
+ GUI applications can then use the title tag to set menu items or labels
+ representing the track.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796567
+
+2018-06-28 19:08:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2videoenc.c:
+ v4l2videoenc: Only renegotiate with upstream
+ When the decoder get linked further, it will receive a renegotiation
+ event from downstream. This case is not supported and should be ignored.
+ This fixes issues when this encoder is used inside an GstRtspServer
+ pipeline.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796525
+
+2018-06-09 23:58:01 +0200 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux.h:
+ qtdemux: rework segment event pushing, again
+ This patch aims at fixing the recent regressions in the adaptive test
+ suite.
+ All segment pushing in push mode is now done with
+ gst_qtdemux_check_send_pending_segment(), which is idempotent and
+ handles both edit lists cases and cases where the upstream TIME segments
+ have to be sent directly.
+ Fragmented files that start with a non-zero tfdt are also taken into
+ account, but their handling has been vastly simplified: now they are
+ handled as implicit default seeks so there is no need to extend the
+ GstSegment formulas as was being done before.
+ qtdemux->segment.duration is no longer modified when
+ upstream_format_is_time, respecting in this way the durations provided
+ by dashdemux and fixing bugs in reverse playback tests where mangled
+ durations appeared in the emitted segments.
+ https://bugzilla.gnome.org/show_bug.cgi?id=752603
+
+2018-06-17 02:01:59 +0200 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Don't send EOS during upstream reverse playback
+ Upstream driving elements such as dashdemux often do reverse playback by
+ feeding qtdemux with the fragments containing the requested playback
+ range in reverse order.
+ But the requested playback range stop may be somewhere in the
+ middle of a fragment. In that case, a naive pts >= segment.stop
+ condition may declare end of segment prematurely when demuxing this
+ first fragment.
+ This used not to happen because there were places in moov parsing where
+ segment.stop was overwritten to GST_CLOCK_TIME_NONE even if
+ upstream_format_is_time -- resulting in this case in a segment with rate
+ < 0 and stop == -1 and hence not triggering the EOS check, but that was
+ likely an accident.
+ This patch modifies the EOS check to take this case into account, not
+ sending EOS when upstream_format_is_time if rate < 0.
+ This fixes adaptive.dash.playback.seek_end_live.DASHIF_livestream_testpic_2s
+ https://bugzilla.gnome.org/show_bug.cgi?id=752603
+
+2018-02-06 13:51:14 +0100 Peter Seiderer <ps.report@gmx.net>
+
+ * sys/v4l2/gstv4l2transform.c:
+ v4l2transform: fold property set/get PROP_OUTPUT_IO_MODE case into default
+ https://bugzilla.gnome.org/show_bug.cgi?id=796714
+
+2018-06-22 14:56:31 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2videoenc.c:
+ v4l2videoenc: Don't set colorimetry on capture
+ The colorimetry will be set along with the raw format and those fields
+ will then be copied from sink to src caps by the gst encoder.
+ https://bugzilla.gnome.org/show_bug.cgi?id=791471
+
+2018-06-27 16:57:29 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Really always set colorimetry
+ This fixes patch dd1c5aed656e07e3dad01f83410f3af16cfb14cf which
+ pretended to always set colorimetry but the patch was incomplete.
+ This is again best effort considering the spec says that for CAPTURE
+ you may only read this value.
+
+2018-06-26 15:04:39 +0200 Michael Tretter <m.tretter@pengutronix.de>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: do not call streamon while pool is flushing
+ gst_v4l2_buffer_pool_flush() executes streamoff for the output, but
+ streamoff->streamon for the capture of the decoder.
+ gst_v4l2_buffer_pool_streamon() on capture assumes that is able to
+ resurrect the buffers from the pool, but acquiring buffers fails if the
+ buffer pool is still flushing.
+ The decoder needs to stop flushing the pools before calling
+ gst_v4l2_buffer_pool_flush() to restart the v4l2 device. Otherwise
+ starting the decoding thread might fail, because there are no buffers in
+ the capture pool.
+ This fixes a regression that was introduced in 97985a335c78
+ ("v4l2videodec: Add dynamic resolution change support").
+ https://bugzilla.gnome.org/show_bug.cgi?id=796681
+
+2018-06-25 16:03:17 +0200 Philipp Zabel <p.zabel@pengutronix.de>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: use S_SELECTION instead of S_CROP in gst_v4l2_object_set_crop
+ The S_CROP call doesn't work on mem2mem output queues. Use the
+ S_SELECTION call to set the crop rectangle and only fall back to
+ S_CROP for ancient kernels.
+ This will allow v4l2videoenc to set the coded size on the output
+ queue via S_FMT and then set the visible size via the crop rectangle,
+ as required by the V4L2 codec API.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796672
+
+2018-06-27 13:46:00 +0000 Marian Mihailescu <mihailescu2m@gmail.com>
+
+ * sys/v4l2/gstv4l2videoenc.c:
+ v4l2videoenc: activate capture pool after output pool
+ Some drivers need output buffers set before capture buffers.
+ CODA cannot set output format if capture is streaming.
+ Exynos MFC fails on output STREAMON if capture is already streaming.
+ This patch delays capture activation until output is configured and
+ streaming
+ https://bugzilla.gnome.org/show_bug.cgi?id=796693
+
+2018-06-23 23:44:19 +0200 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/gtk/gtkgstglwidget.c:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * gst/rtpmanager/gstrtpsession.c:
+ Update for g_type_class_add_private() deprecation in recent GLib
+ https://gitlab.gnome.org/GNOME/glib/merge_requests/7
+
+2018-06-20 10:03:59 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/soup/gstsouphttpsrc.c:
+ souphttpsrc: Protect input stream with lock
+ This was the last remaining place where modifying/unreffing the
+ input stream was not protected by the lock
+ https://bugzilla.gnome.org/show_bug.cgi?id=796639
+
+2018-06-18 12:13:48 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxsrc.c:
+ splitmuxsrc: Make sure events are writable before setting their seqnum
+
+2018-05-28 15:19:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Drop truncated frames
+ Drop truncated frames regardless if they have the ERROR flag or not.
+ Truncated frame causes video frame map failure in many elements
+ including cluttersink, glupload etc.
+
+2018-04-02 12:59:33 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Try return input buffer soon
+ In this patch we use a non-blocking poll in order to return all input
+ buffers (buffers from v4l2-output queue). This prevent holding too long
+ on upstreaming buffer in importing.
+ https://bugzilla.gnome.org/show_bug.cgi?id=794904
+
+2018-06-07 13:56:03 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/qt/meson.build:
+ * tests/examples/qt/qmlsink/meson.build:
+ * tests/examples/qt/qmlsrc/meson.build:
+ qt: also check for un-suffixed moc
+ e.g. Qt windows installer doesn't have suffixes
+
+2018-06-06 11:44:33 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Do not set INVALID seqnum on events
+
+2018-06-01 22:47:10 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * tests/check/elements/qtdemux.c:
+ tests: qtdemux: Add checking exposed segment event
+ https://bugzilla.gnome.org/show_bug.cgi?id=796480
+
+2018-06-01 21:08:10 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Forward upstream time-format segment without mapping
+ Sample table based segment event (genereted by qtdemux) could break
+ presentation timeline. For example, qtdemux should not modify upstream
+ time format segment (e.g., adaptivedemux use case)
+ https://bugzilla.gnome.org/show_bug.cgi?id=796480
+
+2018-04-19 08:14:47 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Seek handling is always done with a valid event
+ Remove the checks
+
+2018-06-06 07:46:54 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/wavparse/gstwavparse.c:
+ wavparse: Don't set invalid seqnum on events
+ Some codepath will call gst_wavparse_perform_seek without an event
+ and therefore without a valid seqnum
+
+2018-05-25 12:28:04 +0200 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Clarify field name about stream-encryption-system
+ This field is actually only informatory and the user can potentially
+ choose something else. EME tests in WebKit testsuite actually doesn't
+ take it into and force another encryption system to be used, and expects
+ to be given the occasion to do so.
+ This basically also reverts 3e063703b3a51b8aaa7f75f36c4660c583a60e93.
+
+2018-05-28 11:01:42 -0700 Thiago Santos <thiagossantos@gmail.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: mark segment as sent after pushing when moov is received
+ Otherwise we would try to send it a second time if the same moov is
+ received or in any other situation that might trigger segment sending.
+ https://bugzilla.gnome.org/show_bug.cgi?id=752603
+
+2018-05-28 10:59:14 -0700 Thiago Santos <thiagossantos@gmail.com>
+
+ * tests/check/elements/qtdemux.c:
+ tests: qtdemux: Avoid using data beyond array and improve error msg
+ Makes it easier to debug the failures as well as prevents problems
+ reading out of bounds data.
+
+2018-05-16 20:16:44 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Don't open the device in get property
+ This is both racy and inefficient. This function is still missing some
+ locking which will be address in later patch.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796185
+
+2018-05-27 20:29:47 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/elements/rtpstorage.c:
+ * tests/check/elements/rtpulpfec.c:
+ tests: rtpstorage: fix potential crashes / test failures on 32-bit
+ Pass 64 bits to g_object_set() for 64-bit integer properties like
+ rtpstorage's "size-time" property.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796429
+
+2018-05-13 21:59:49 -0700 Thiago Santos <thiagossantos@gmail.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: do not update segment.stop is it is not a valid time
+ Otherwise it overflows and starts having a meaningful and wrong value.
+ https://bugzilla.gnome.org/show_bug.cgi?id=752603
+
+2016-04-26 16:54:30 -0300 Thiago Santos <thiagoss@osg.samsung.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: offset edts segments by the min timestamp of the stream
+ Otherwise if the stream is starting at timestamp=X it would wait
+ 'X' to start playing.
+ https://bugzilla.gnome.org/show_bug.cgi?id=752603
+
+2016-04-26 14:34:16 -0300 Thiago Santos <thiagoss@osg.samsung.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux.h:
+ qtdemux: rework segment event pushing
+ Instead of always keeping a safe segment (start=0) event from the beginning,
+ delay the creation of this event to when we really know the timestamp of the
+ first sample. This is important to properly start fragmented streams that
+ we might join in the middle or to play isolated fragment files that might
+ have an advanced tfdt.
+ https://bugzilla.gnome.org/show_bug.cgi?id=752603
+
+2018-05-25 10:49:21 +0200 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Do not unref a NULL stream_tags
+ stream->stream_tags is reset to NULL once we expose the stream and
+ these have been consumed, we need to check that when cleaning up
+ the stream.
+
+2018-05-25 10:17:29 +0200 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Do not run the preferred decryptor context query if no decryptor avalaible
+ Ultimately this avoids a segfault as the code expect a non NULL array
+ here.
+
+2018-03-30 17:03:13 +0200 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Allow edit lists on fragmented files on push mode
+ Fragmented files often use elst.duration=0 which before
+ ee78825eaef2c5fffac7d6c5526fe18cec6b3eef was wrongly interpreted as
+ having no frames.
+ Since that issue has now been fixed, there is no reason to disable edit
+ lists in fragmented files. This commit enables them, therefore producing
+ correct stream time for files containing edit lists.
+ https://bugzilla.gnome.org/show_bug.cgi?id=793058
+
+2018-05-24 12:58:00 +0200 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: fix computation of first_duration for fragmented files in push mode
+ Since ca068865c391e87932b1268d0c675be233dd2ffe the duration of the first
+ frame is not used for estimating the frame rate.
+ For this purpose, stream->first_duration was initialized with the
+ duration of the first frame. In fragmented files, this was previously
+ done by peeking the first moof, but that can only be done in pull mode.
+ Fortunately, we don't really need to do that, at least with the current
+ design: When we are estimating the frame rate we already have the
+ sample table, regardless of the scheduling mode and whether the file is
+ fragmented or not, so we can obtain first_duration there much more
+ reliably.
+ This fixes frame rate estimation for fragmented files in push mode.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796384
+
+2017-06-13 17:42:55 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ * tests/check/elements/splitmux.c:
+ splitmuxsink: Added new async-finalize mode
+ This mode is useful for muxers that can take a long time to finalize a
+ file. Instead of blocking the whole upstream pipeline while the muxer is
+ doing its stuff, we can unlink it and spawn a new muxer+sink combination
+ to continue running normally.
+ This requires us to receive the muxer and sink (if needed) as factories,
+ optionally accompanied by their respective properties structures. Also
+ added the muxer-added and sink-added signals, in case custom code has to
+ be called for them.
+ https://bugzilla.gnome.org/show_bug.cgi?id=783754
+
+2018-05-23 19:00:48 +0200 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Don't send gaps bigger than 1 second (now in push mode too)
+ This applies the same workaround to gaps that is being used in pull
+ mode.
+ https://bugzilla.gnome.org/show_bug.cgi?id=778426
+
+2018-05-23 20:08:56 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Properly handle edit list in push mode
+ If there are empty segments in edit list, demux should
+ adjust "accumulated_base" to apply it into running time.
+ https://bugzilla.gnome.org/show_bug.cgi?id=778426
+
+2018-05-22 22:14:03 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/matroska/matroska-mux.c:
+ matroska-mux: write colorimetry
+ This is a straightforward translation of 5dd39d8, can be trivially
+ checked by running:
+ gst-launch-1.0 -v videotestsrc ! video/x-raw, colorimetry=2:4:7:1 ! \
+ matroskamux ! matroskademux ! fakesink
+ and verifying that the colorimetry is correctly preserved.
+ https://bugzilla.gnome.org/show_bug.cgi?id=796344
+
+2018-03-31 17:19:03 +0200 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: fix buggy duration in edits with duration=0 in fragmented files without a mehd
+ https://bugzilla.gnome.org/show_bug.cgi?id=794858
+
+2018-05-23 13:14:27 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/rtp/gstrtph264depay.c:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/rtpsession.h:
+ * gst/rtsp/gstrtspsrc.c:
+ * gst/udp/gstmultiudpsink.c:
+ docs: fix typos
+
+2018-03-31 18:42:47 +0900 Seungha Yang <pudding8757@gmail.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Clarify variable name
+ As defined by spec, use "empty edit". It's more straightforward.
+ https://bugzilla.gnome.org/show_bug.cgi?id=778426
+
+2017-06-21 17:59:21 +0200 Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+ * 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
+
+2017-05-20 16:55:40 +0000 Enrique Ocaña González <eocanha@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: also push buffers without encryption info instead of dropping them
+ Test "17. PlayReadyH264Video" in YouTube leanback EME conformance tests 2016
+ for H.264[1] uses a media file[2] with cenc encryption whose first two 'moof'
+ boxes have no encryption information (no 'saiz' and 'saio' boxes).
+ Those boxes are actually not encrypted and the current qtdemux implementation
+ was just dropping them, breaking the test use case.
+ This patch detects those kind of situations and just lets the unencrypted
+ buffers pass. Of course, this needs some collaboration by the decryptors,
+ which should also do the same and not to try to decrypt those clear buffers.
+ [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/oops_cenc-20121114-142.mp4
+ https://bugzilla.gnome.org/show_bug.cgi?id=770107
+
+2018-05-21 11:49:08 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ meson: use cdata.set_quoted() in more places
+
+2018-05-21 11:46:59 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ * meson_options.txt:
+ meson: add 'nls' option to disable translations
+ And enable by default. Was implicitly disabled because
+ ENABLE_NLS was not defined.
+
+2016-02-09 14:00:00 -0800 Andre McCurdy <armccurdy@gmail.com>
+
+ * ext/taglib/gstid3v2mux.cc:
+ id3v2mux: ensure valid sentinal for gst_structure_get()
+ gst_structure_get() is declared with G_GNUC_NULL_TERMINATED, ie
+ __attribute__((__sentinel__)), which means gcc will generate a
+ warning if the last parameter passed to the function is not NULL
+ (where a valid NULL in this context is defined as zero with any
+ pointer type).
+ The C code callers to gst_structure_get() within gst-plugins-good
+ use the C NULL definition (ie ((void*)0)), which is a valid sentinel.
+ However gstid3v2mux.cc uses the C++ NULL definition (ie 0L), which
+ is not a valid sentinel without an explicit cast to a pointer type.
+ Upstream-Status: Pending
+ Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+
+2016-02-03 18:12:38 -0800 Andre McCurdy <armccurdy@gmail.com>
+
+ * ext/raw1394/gstdv1394src.c:
+ * ext/raw1394/gsthdv1394src.c:
+ raw1394: avoid including <sys/poll.h> directly
+ Note from Edward Hervey: Patch from git.yoctoproject.org
+ musl libc generates warnings if <sys/poll.h> is included directly.
+ Upstream-Status: Pending
+ Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+
+2018-02-23 13:38:32 +0100 Alicia Boya García <aboya@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux_parse_segments: remove superfluous variable
+ https://bugzilla.gnome.org/show_bug.cgi?id=793751
+
+2018-04-23 13:29:30 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/flv/gstflvmux.c:
+ flvmux: Remove custom get_next_time implementation
+ GstAggregator now does the same thing in the simple implementation.
+ https://bugzilla.gnome.org/show_bug.cgi?id=795486
+
+2018-05-15 11:50:30 +0100 Havard Graff <havard.graff@gmail.com>
+
+ * tests/check/elements/rtpsession.c:
+ rtpsession: Add tests for PLI and FIR
+ https://bugzilla.gnome.org/show_bug.cgi?id=795139
+
+2018-04-30 08:41:19 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtpsession.c:
+ rtpsession: make "clear-pt-map" action signal actually work
+ Needed for PLI + FIR unit tests in follow-up commit.
+ https://bugzilla.gnome.org/show_bug.cgi?id=795139
+
+2016-10-06 16:08:38 +0200 Mikhail Fludkov <misha@pexip.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ rtpsession: Avoid unnecessary copy of stats structure
+ The code before copied GstStructure twice. The first time inside
+ gst_value_set_structure and the second time in g_value_array_append.
+ Optimized version does no copies, just transfers ownership to
+ GValueArray. It takes advantage of the fact that array has already
+ enough elements preallocated and the memory is zero initialized.
+ https://bugzilla.gnome.org/show_bug.cgi?id=795139
+
+2018-05-15 10:35:09 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/replaygain/gstrgvolume.c:
+ Revert "BugFix : Change peak value to normalize audio file with fallback gain"
+ This reverts commit 36e49fd6f872f0b3f33083107a55fb7f671a47d0.
+ Breaks unit test, someone needs to investigate if it's the
+ patch's fault or if the test needs adjusting/updating.
+ https://bugzilla.gnome.org/show_bug.cgi?id=673970
+
+2016-12-13 10:13:52 +0100 Stian Selnes <stian@pexip.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ * tests/check/elements/rtpsession.c:
+ rtpsession: Drop packet if trying to send from non-internal source
+ If obtain_internal_source() returns a source that is not internal it
+ means there exists a non-internal source with the same ssrc. Such an
+ ssrc collision should be handled by sending a GstRTPCollision event
+ upstream and choose a new ssrc, but for now we simply drop the packet.
+ Trying to process the packet further will cause it to be pushed
+ usptream (!) since the source is not internal (see source_push_rtp()).
+ https://bugzilla.gnome.org/show_bug.cgi?id=795139
+
+2018-05-14 00:29:24 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: tag disabled streams with FLAG_UNSELECT
+ So they're never picked as default, only by explicit
+ user action.
+ https://bugzilla.gnome.org/show_bug.cgi?id=690911
+
+2018-05-14 21:06:55 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Print expected/actual values in debug log on mismatch in prefill mode
+ This helps debugging a lot.
+
+2018-04-10 18:05:47 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ * tests/check/Makefile.am:
+ * tests/check/elements/rtpsession.c:
+ rtpsession: Try media_ssrc if no src can be found for PLI sender_ssrc
+ Some RTP stacks out there does not set the sender_ssrc. In order to be
+ more robust, try to lookup the media_ssrc before dropping the PLI.
+ https://bugzilla.gnome.org/show_bug.cgi?id=795139
+
+2017-08-25 11:59:00 +0200 Mikhail Fludkov <misha@pexip.com>
+
+ * 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 <stian@pexip.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ rtpsession: Add missing lock around sess->ssrcs iteration
+ https://bugzilla.gnome.org/show_bug.cgi?id=795139
+
+2017-08-25 11:22:47 +0200 John-Mark Bell <jmb@pexip.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ * tests/check/elements/rtpsession.c:
+ rtpsession: do not emit RBs for internal senders.
+ These are the sources we send from, so there is no reason to
+ report receive statistics for them (as we do not receive on them,
+ and the remote side has no knowledge of them).
+ https://bugzilla.gnome.org/show_bug.cgi?id=795139
+
+2018-04-10 18:22:57 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * tests/check/elements/rtpsession.c:
+ tests: rtpsession: fix indentation
+ https://bugzilla.gnome.org/show_bug.cgi?id=795139
+
+2018-05-12 08:03:28 +0200 Edward Hervey <edward@centricular.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2: Fix typo in debug messages
+ It's a decoder, not an encoder :)
+ https://bugzilla.gnome.org/show_bug.cgi?id=795941
+
+2018-03-22 18:00:37 +0100 Vivia Nikolaidou <vivia@toolsonair.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Added caption_%u pad template
+ For closed-caption-enabled muxers (e.g. qtmux)
+
+2018-05-10 13:57:30 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Initialize riff library
+ Avoids debugging message issues. Also just use the main riff header
+
+2018-05-08 20:31:41 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * tests/check/elements/qtdemux.c:
+ * tests/check/elements/qtdemux.h:
+ tests: qtdemux: Add test for stream change
+ Add test case to verify track-id change and stream change
+ https://bugzilla.gnome.org/show_bug.cgi?id=684790
+
+2018-05-08 20:30:18 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux.h:
+ qtdemux: Protect _expose_streams() from flush event
+ Flush during stream change can break autoplugging or the
+ flush event could be dropped.
+ https://bugzilla.gnome.org/show_bug.cgi?id=684790
+
+2018-05-08 20:26:41 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux.h:
+ qtdemux: Try to expose whenever got new moov or new stream-start
+ Whenever got new moov or new stream-start,
+ demux will try to expose new pad by following rule.
+ Comparing stream-id in the current moov with previous one, then
+ * If matched stream-id is found from previous one,
+ reuse existing pad (most common case)
+ * Otherwise, expose new pad with new stream-start
+ * No more used stream will be freed
+ https://bugzilla.gnome.org/show_bug.cgi?id=684790
+
+2018-05-08 20:10:39 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Remove duplication of initializing member variables
+ Most initialization of variables in gst_qtdemux_init() are duplicated in
+ gst_qtdemux_reset() function.
+ https://bugzilla.gnome.org/show_bug.cgi?id=684790
+
+2018-05-08 20:09:10 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Create stream whenever got new moov
+ Whenever demux got moov, demux will create new stream. Only exception is
+ duplicated track-id in a moov box. In that case the first stream
+ will be accepted. This patch is pre-work for rework of moov handling.
+ https://bugzilla.gnome.org/show_bug.cgi?id=684790
+
+2018-05-08 19:57:11 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Store stream-id to manage streams
+ In order to figure out stream change such as
+ track-id change or stream-id change, demux will store
+ stream-id per QtDemuxStream structure.
+ https://bugzilla.gnome.org/show_bug.cgi?id=684790
+
+2018-05-08 19:39:02 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux.h:
+ qtdemux: Use GList to manage QtDemuxStream
+ * Move to GList from static array
+ * Logging track-id instead of array index. It's more meaningful.
+ https://bugzilla.gnome.org/show_bug.cgi?id=684790
+
+2018-05-08 18:44:15 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Adjust the number of args of some functions
+ To be used with g_list_free_full in the next patch
+ https://bugzilla.gnome.org/show_bug.cgi?id=684790
+
+2018-05-08 18:22:58 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Add parentheses in macro
+ https://bugzilla.gnome.org/show_bug.cgi?id=684790
+
+2018-03-19 23:36:13 +0100 Marinus Schraal <mschraal@gnome.org>
+
+ * gst/isomp4/qtdemux.c:
+ isomp4: Use full date time if available
+ The ©day tag contains a full date time, use it for the DATE_TIME tag
+ instead of just the DATE tag. This overrules the unreliable qt creation
+ time.
+ https://bugzilla.gnome.org/show_bug.cgi?id=731029
+
+2018-03-15 22:59:39 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Fix doc comment markers
+
+2016-02-02 18:58:24 +0200 Kyrylo Polezhaiev <kirushyk@gmail.com>
+
+ * gst/icydemux/gsticydemux.c:
+ icydemux: avoid timestamp field initialisation for tag event
+ This field is not used and will be removed in 2.0 API.
+ https://bugzilla.gnome.org/show_bug.cgi?id=761462
+
+2014-10-05 15:51:18 +0200 Matej Knopp <matej.knopp@gmail.com>
+
+ * gst/audioparsers/gstdcaparse.c:
+ dcaparse: do not accept header with invalid channel count
+ https://bugzilla.gnome.org/show_bug.cgi?id=737928
+
+2018-05-05 19:27:24 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * meson.build:
+ * meson_options.txt:
+ * sys/v4l2/meson.build:
+ meson: Update option names to omit disable_ and with- prefixes
+ Also yield common options to the outer project (gst-build in our case)
+ so that they don't have to be set manually.
+
+2012-04-12 09:53:24 +0200 Anthony Violo <anthony.violo@ubicast.eu>
+
+ * gst/replaygain/gstrgvolume.c:
+ BugFix : Change peak value to normalize audio file with fallback gain
+ https://bugzilla.gnome.org/show_bug.cgi?id=673970
+
+2018-05-05 16:32:59 +0200 Tim-Philipp Müller <tim@centricular.com>
+
+ * 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-04 15:50:55 +0200 Kirill Marinushkin <kmarinushkin@de.adit-jv.com>
+
+ * 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-23 11:26:12 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * 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 <olivier.crete@collabora.com>
+
+ * 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 <olivier.crete@collabora.com>
+
+ * 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-13 13:29:06 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+ * 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-24 14:06:10 -0400 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * ext/cairo/meson.build:
+ * ext/dv/meson.build:
+ * ext/flac/meson.build:
+ * ext/gdk_pixbuf/meson.build:
+ * ext/gtk/meson.build:
+ * ext/jack/meson.build:
+ * ext/jpeg/meson.build:
+ * ext/lame/meson.build:
+ * ext/libpng/meson.build:
+ * ext/mpg123/meson.build:
+ * ext/pulse/meson.build:
+ * ext/shout2/meson.build:
+ * ext/soup/meson.build:
+ * ext/speex/meson.build:
+ * ext/taglib/meson.build:
+ * ext/twolame/meson.build:
+ * ext/vpx/meson.build:
+ * ext/wavpack/meson.build:
+ * gst/alpha/meson.build:
+ * gst/apetag/meson.build:
+ * gst/audiofx/meson.build:
+ * gst/audioparsers/meson.build:
+ * gst/auparse/meson.build:
+ * gst/autodetect/meson.build:
+ * gst/avi/meson.build:
+ * gst/cutter/meson.build:
+ * gst/debugutils/meson.build:
+ * gst/deinterlace/meson.build:
+ * gst/dtmf/meson.build:
+ * gst/effectv/meson.build:
+ * gst/equalizer/meson.build:
+ * gst/flv/meson.build:
+ * gst/flx/meson.build:
+ * gst/goom/meson.build:
+ * gst/goom2k1/meson.build:
+ * gst/icydemux/meson.build:
+ * gst/id3demux/meson.build:
+ * gst/imagefreeze/meson.build:
+ * gst/interleave/meson.build:
+ * gst/isomp4/meson.build:
+ * gst/law/meson.build:
+ * gst/level/meson.build:
+ * gst/matroska/meson.build:
+ * gst/monoscope/meson.build:
+ * gst/multifile/meson.build:
+ * gst/multipart/meson.build:
+ * gst/replaygain/meson.build:
+ * gst/rtp/meson.build:
+ * gst/rtpmanager/meson.build:
+ * gst/rtsp/meson.build:
+ * gst/shapewipe/meson.build:
+ * gst/smpte/meson.build:
+ * gst/spectrum/meson.build:
+ * gst/udp/meson.build:
+ * gst/videobox/meson.build:
+ * gst/videocrop/meson.build:
+ * gst/videofilter/meson.build:
+ * gst/videomixer/meson.build:
+ * gst/wavenc/meson.build:
+ * gst/wavparse/meson.build:
+ * gst/y4m/meson.build:
+ * meson.build:
+ * sys/directsound/meson.build:
+ * sys/v4l2/meson.build:
+ * sys/ximage/meson.build:
+ Meson: Generate pc file for all plugins in good
+ https://bugzilla.gnome.org/show_bug.cgi?id=794568
+
+2018-04-25 10:58:41 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ meson: use -Wl,-Bsymbolic-functions where supported
+ Just like the autotools build.
+
+2018-04-25 10:37:40 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Read caption from input buffer
+ And not from unallocated output buffer GstMapInfo
+ CID #1435131
+
+2018-02-07 11:00:18 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/atoms.c:
+ * gst/isomp4/atoms.h:
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstqtmux.h:
+ * gst/isomp4/gstqtmuxmap.c:
+ * gst/isomp4/gstqtmuxmap.h:
+ isomp4: qtmux: Add Closed Caption support
+ Supports CEA 608 and CEA 708 CC streams
+ Also supports usage in "Robust Prefill" mode if the incoming caption
+ stream is constant (i.e. there is one incoming CC buffer for each
+ video frame).
+ https://bugzilla.gnome.org/show_bug.cgi?id=606643
+
+2018-02-06 15:38:00 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/atoms.c:
+ * gst/isomp4/atoms.h:
+ isomp4: Make 'gmhd' atom usage more generic
+ Only the 'gmin' atom is required. Any other entry within it are
+ optional.
+ https://bugzilla.gnome.org/show_bug.cgi?id=606643
+
+2018-04-22 10:40:19 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * 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
+
+2018-04-02 16:06:35 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtp/gstrtpulpfecdec.c:
+ * gst/rtp/gstrtpulpfecdec.h:
+ * tests/check/elements/rtpulpfec.c:
+ ulpfecdec: output perfect seqnums
+ ULP FEC, as defined in RFC 5109, has the protected and protection
+ packets sharing the same ssrc, and a different payload type, and
+ implies rewriting the seqnums of the protected stream when encoding
+ the protection packets. This has the unfortunate drawback of not
+ being able to tell whether a lost packet was a protection packet.
+ rtpbasedepayload relies on gaps in the seqnums to set the DISCONT
+ flag on buffers it outputs. Before that commit, this created two
+ problems:
+ * The protection packets don't make it as far as the depayloader,
+ which means it will mark buffers as DISCONT every time the previous
+ packets were protected
+ * While we could work around the previous issue by looking at
+ the protection packets ignored and dropped in rtpptdemux, we
+ would still mark buffers as DISCONT when a FEC packet was lost,
+ as we cannot know that it was indeed a FEC packet, even though
+ this should have no impact on the decoding of the stream
+ With this commit, we consider that when using ULPFEC, gaps in
+ the seqnums are not a reliable indicator of whether buffers should
+ be marked as DISCONT or not, and thus rewrite the seqnums on
+ the decoding side as well to form a perfect sequence, this
+ obviously doesn't prevent the jitterbuffer from doing its job
+ as the ulpfec decoder is downstream from it.
+ https://bugzilla.gnome.org/show_bug.cgi?id=794909
+
+2018-04-17 17:57:16 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * 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-16 21:27:47 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * 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-16 10:52:56 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * README:
+ * common:
+ Automatic update of common submodule
+ From 3fa2c9e to ed78bee
+
+2018-04-05 16:05:12 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/meson.build:
+ * ext/qt/gstqtglutility.cc:
+ * ext/qt/meson.build:
+ * tests/examples/meson.build:
+ * tests/examples/qt/meson.build:
+ * tests/examples/qt/qmlsink/CMakeLists.txt:
+ * tests/examples/qt/qmlsink/meson.build:
+ * tests/examples/qt/qmlsink/play.pro:
+ * tests/examples/qt/qmlsink/qmlsink.qrc:
+ * tests/examples/qt/qmlsrc/grabqml.pro:
+ * tests/examples/qt/qmlsrc/meson.build:
+ * tests/examples/qt/qmlsrc/qmlsrc.qrc:
+ meson: add build files for the qml plugin
+ Tested on linux with X11/wayland and semi-tested on Windows.
+ Windows crashes on item destruction however this is better than nothing.
+ Fix up some win32 build issues on the way with mismatched {} and
+ G_STMT_{START,END}
+
+2018-04-13 23:02:26 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * tests/check/elements/flvmux.c:
+ flvmux test: refactor looped test.
+ Looping the test 500 times to only execute the test once every
+ 33 times means we inited and deinited gstreamer 467 times
+ for no reason at all, which was annoying when running the test
+ with valgrind.
+
+2018-04-13 23:01:20 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * 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-13 22:49:43 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * 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 <mathieu@centricular.com>
+
+ * 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 21:19:02 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * tests/check/gst-plugins-good.supp:
+ valgrind supps: ignore gnutls leaking a certificate
+ After investigating, we do dispose of the TLS connections
+ appropriately in the souphttpsrc test, which in turn
+ calls gnutls_deinit, but certificates get leaked anyway.
+
+2018-04-13 20:35:24 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * tests/check/elements/souphttpsrc.c:
+ souphttpsrc test: free g_get_current_dir return
+
+2018-04-13 20:31:07 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * tests/check/gst-plugins-good.supp:
+ valgrind supps: bring getaddrinfo suppression from -base
+
+2018-04-13 20:28:35 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * tests/check/gst-plugins-good.supp:
+ valgrind supps: ignore more twolame conditional moves
+
+2018-04-13 17:37:47 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * tests/check/elements/rtpulpfec.c:
+ rtpulpfec tests: Fix leaks
+
+2018-02-16 23:40:50 +0100 Alicia Boya García <aboya@igalia.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Add comment about Opus clipping
+ https://bugzilla.gnome.org/show_bug.cgi?id=793523
+
+2018-04-11 20:28:00 +0000 Whoopie <whoopie79@gmx.com>
+
+ * 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 <nicolas.dufresne@collabora.com>
+
+ * 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 <nicolas.dufresne@collabora.com>
+
+ * 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 21:41:58 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/monoscope/gstmonoscope.c:
+ monoscope: Only fixate pixel-aspect-ratio if the field exists
+
+2018-04-11 17:54:38 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * 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 09:12:09 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Run gst_iterator_foreach() as long as it returns GST_ITERATOR_RESYNC
+ CID 1434160
+
+2018-04-11 08:51:32 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Fix comparision for extra caption atom
+ We want to make sure we have *enough* data for the potential 2nd
+ caption atom.
+ CID #1434161
+
+2018-04-11 08:42:54 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Handle bogus caption samples
+ Corrupted files could potentially have multiple cdat/cdt2 atoms in
+ a sample entry, which is unclear how to handle.
+ Ignore repeated ones.
+ CID #1434162
+ CID #1434159
+
+2018-04-10 21:15:48 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * 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 <bilboed@bilboed.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Add comments and doc about prefill mode
+
+2018-02-06 14:36:50 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Refactor pad re-negotiation code
+ It was similar for all pads
+ https://bugzilla.gnome.org/show_bug.cgi?id=606643
+
+2018-01-31 15:10:03 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/fourcc.h:
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux_types.c:
+ qtdemux: Detect and expose CEA 608/708 Closed Caption tracks
+ https://bugzilla.gnome.org/show_bug.cgi?id=606643
+
+2018-04-04 01:48:44 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * 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-04-02 23:04:06 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpbin.h:
+ rtpbin: new signal "get-storage"
+ Similar to the get-session and get-internal-session signals,
+ we expose a get-storage signal in addition to the
+ get-internal-storage signal to give access to the actual
+ element for applications that need to set properties on the
+ element, in particular "size-time"
+ https://bugzilla.gnome.org/show_bug.cgi?id=794910
+
+2018-03-29 19:19:21 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: Add new reset-muxer property
+ With this the muxer is not set to NULL after each segment but instead
+ only flush events are sent to it to reset the EOS state.
+ As a result, the muxer will keep stream state and e.g. mpegtsmux will
+ keep the packet continuity counter continuous between segments as needed
+ by hlssink2.
+ https://bugzilla.gnome.org/show_bug.cgi?id=794816
+
+2018-04-02 12:48:50 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/icles/Makefile.am:
+ * tests/icles/meson.build:
+ * tests/icles/v4l2src-test.c:
+ tests: remove broken and now pointless v4l2src-test
+ This tests APIs that don't exist any longer and also doesn't
+ work at all, and was last touched in a meaningful way in 2006.
+
+2018-03-21 00:19:37 +0900 Seungha Yang <pudding8757@gmail.com>
+
+ * 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
+
+2017-05-25 03:44:39 +0200 Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: reject segment seeks
+ https://bugzilla.gnome.org/show_bug.cgi?id=784681
+
+2018-02-13 11:50:05 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Handle variant of vorbis in mp4
+ Comes from gpac apparently. The codec_data uses the same packing
+ mechanism as matroska.
+ https://bugzilla.gnome.org/show_bug.cgi?id=738244
+
+2018-03-22 15:20:47 +0100 Edward Hervey <edward@centricular.com>
+
+ * 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-04 15:14:08 +0100 Carlos Rafael Giani <dv@pseudoterminal.org>
+
+ * 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-06 02:14:34 +0100 Petr Kulhavy <brain@jikos.cz>
+
+ * gst/udp/gstudpsrc.c:
+ * gst/udp/gstudpsrc.h:
+ udpsrc: switch to using a buffer pool
+ This exposes a new property, mtu, which is used to determine the
+ initial size of buffers from the buffer pool. If received data
+ exceeds this, the element gracefully handles that in a manner similar
+ to what we had previously: a large memory gets filled and reallocated
+ at the next call to "fill".
+ The default size is set to 1500, which should cover most use cases.
+ With contributions from Mathieu Duponchelle <mathieu@centricular.com>
+ https://bugzilla.gnome.org/show_bug.cgi?id=772841
+
+2016-11-15 09:39:31 +0100 Petr Kulhavy <brain@jikos.cz>
+
+ * gst/udp/gstudpsrc.h:
+ udpsrc: optimize GstUdpSrc object for cache performance
+ Optimize GstUdpSrc for cache performance.
+ Move the hot properties, which are used by the read function, to the top:
+ @used_socket, @addr, @cancellable, @skip_first_bytes, @timeout,
+ @retrieve_sender_address.
+ Remove the unused property @ttl.
+ Where needed reorder so that holes are avoided (the 64-bit @timeout)
+ https://bugzilla.gnome.org/show_bug.cgi?id=772841
+
+2018-03-05 12:48:15 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Fix seeking on streams with frame reordering
+ The samples table is sorted by DTS, not PTS. As such we can only get the
+ correct result when using a binary search on it, if we search for the
+ DTS.
+ Also if we only ever search for the frame, where the following frame is
+ the first one with a PTS after the search position, we will generally
+ stop searching too early if frames are reordered.
+ In forwards playback this is not really a problem (after the decoder
+ reordered the frames, clipping is happening), in reverse playback
+ it means that we can output one or more frames too few as we stop too
+ early and the decoder would never receive it.
+ https://bugzilla.gnome.org/show_bug.cgi?id=782118
+
+2018-03-20 11:36:32 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * 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.
+
+2018-03-20 09:24:19 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * NEWS:
+ * RELEASE:
+ * configure.ac:
+ * 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:
+ * meson.build:
+ Back to development
+
=== release 1.14.0 ===
2018-03-19 20:18:22 +0000 Tim-Philipp Müller <tim@centricular.com>
souphttpsrc: Make session sharing thread-safe on our side
https://bugzilla.gnome.org/show_bug.cgi?id=780140
+2017-05-18 10:53:48 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/audiofx/gststereo.c:
+ stereo: fix typo in plugin description
+
2017-05-18 10:43:19 +0100 Tim-Philipp Müller <tim@centricular.com>
* ext/shout2/gstshout2.c:
2017-03-08 15:01:13 -0300 Thibault Saunier <thibault.saunier@osg.samsung.com>
+ * gst/audiofx/gststereo.c:
+ docs: Port all docstring to gtk-doc markdown
+
+2017-03-08 15:01:13 -0300 Thibault Saunier <thibault.saunier@osg.samsung.com>
+
* ext/gtk/gstgtkbasesink.c:
* ext/gtk/gstgtkglsink.c:
* ext/gtk/gstgtksink.c:
Otherwise we'll run into an assertion on specially crafted files.
https://bugzilla.gnome.org/show_bug.cgi?id=773643
+2016-10-27 09:11:26 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/audiofx/gststereo.c:
+ Explicitly define float constants as float
+ With MSVC, this gives the following warning:
+ warning C4305: 'function': truncation from 'double' to 'gfloat'
+ Apparently, MSVC does not figure out what type to use for constants
+ based on the assignment. This warning is very spammy, so let's try to
+ fix it.
+
2016-10-27 11:23:51 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* meson.build:
Base class for the vp8dec and vp9dec.
https://bugzilla.gnome.org/show_bug.cgi?id=755510
+2015-12-14 11:09:46 +0900 Vineeth TM <vineeth.tm@samsung.com>
+
+ * gst/audiofx/gststereo.c:
+ plugins-bad: Fix example pipelines
+ rename gst-launch --> gst-launch-1.0
+ replace old elements with new elements(ffmpegcolorspace -> videoconvert, ffenc_** -> avenc_**)
+ fix caps in examples
+ https://bugzilla.gnome.org/show_bug.cgi?id=759432
+
2015-06-10 09:17:08 -0400 Xavier Claessens <xavier.claessens@collabora.com>
* configure.ac:
Rename property enums from ARG_ to PROP_
Property enum items should be named PROP_ for consistency and readability.
+2015-04-27 10:55:13 +0100 Luis de Bethencourt <luis.bg@samsung.com>
+
+ * gst/audiofx/gststereo.c:
+ Rename property enums from ARG_ to PROP_
+ Property enum items should be named PROP_ for consistency and readability.
+
2015-04-25 02:49:58 +0300 Ilya Konstantinov <ilya.konstantinov@gmail.com>
* gst/rtpmanager/gstrtpjitterbuffer.c:
osxvideosink: fix segfault when dealing with padded frames
Fixes crashes with vtdec ! osxvideosink where VideoToolbox outputs padded UYVY
+2013-12-06 17:58:13 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/audiofx/gststereo.c:
+ stereo: Port to GStreamer 1.0 API
+
2013-12-05 12:15:29 +0100 Sebastian Dröge <sebastian@centricular.com>
* gst/law/mulaw-decode.c:
2012-11-03 20:38:00 +0000 Tim-Philipp Müller <tim@centricular.net>
+ * gst/audiofx/gststereo.c:
+ * gst/audiofx/gststereo.h:
+ Fix FSF address
+ https://bugzilla.gnome.org/show_bug.cgi?id=687520
+
+2012-11-03 20:38:00 +0000 Tim-Philipp Müller <tim@centricular.net>
+
* gst/dtmf/gstdtmfdetect.c:
* gst/dtmf/gstdtmfdetect.h:
* gst/dtmf/gstdtmfsrc.c:
2012-10-17 17:34:26 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+ * gst/audiofx/gststereo.c:
+ Use gst_element_class_set_static_metadata()
+ where possible. Avoids some string copies. Also re-indent
+ some stuff. Also some indent fixes here and there.
+
+2012-10-17 17:34:26 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
* gst/dtmf/gstdtmfdetect.c:
* gst/dtmf/gstdtmfsrc.c:
* gst/dtmf/gstrtpdtmfdepay.c:
2012-09-14 17:08:49 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+ * gst/audiofx/gststereo.c:
+ replace gst_element_class_set_details_simple with gst_element_class_set_metadata
+
+2012-09-14 17:08:49 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
* gst/dtmf/gstdtmfsrc.c:
* gst/dtmf/gstrtpdtmfdepay.c:
replace gst_element_class_set_details_simple with gst_element_class_set_metadata
2012-04-05 18:02:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * gst/audiofx/gststereo.c:
+ gst: Update for GST_PLUGIN_DEFINE() API changes
+
+2012-04-05 18:02:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
* gst/dtmf/gstdtmf.c:
gst: Update for GST_PLUGIN_DEFINE() API changes
* tests/examples/v4l2/camctrl.c:
controller: port to new controller location and api
+2011-11-04 18:52:35 +0100 Stefan Sauer <ensonic@users.sf.net>
+
+ * gst/audiofx/gststereo.c:
+ controller: port to new controller location and api
+
2011-11-04 17:39:15 +0100 Wim Taymans <wim.taymans@collabora.co.uk>
* gst/rtsp/gstrtspsrc.c:
rtph264depay: fix segfault on empty payload
https://bugzilla.gnome.org/show_bug.cgi?id=635843
+2010-11-25 19:24:56 +0100 Edward Hervey <bilboed@bilboed.com>
+
+ * gst/audiofx/gststereo.c:
+ stereo: Remove dead assignments
+
2010-11-25 19:06:27 +0100 Edward Hervey <bilboed@bilboed.com>
* gst/dtmf/gstrtpdtmfdepay.c:
2010-10-19 13:43:14 +0300 Stefan Kost <ensonic@users.sf.net>
+ * gst/audiofx/gststereo.c:
+ various (gst): add missing G_PARAM_STATIC_STRINGS flags
+ Canonicalize property names as needed.
+
+2010-10-19 13:43:14 +0300 Stefan Kost <ensonic@users.sf.net>
+
* gst/dtmf/gstdtmfsrc.c:
* gst/dtmf/gstrtpdtmfdepay.c:
* gst/dtmf/gstrtpdtmfsrc.c:
2010-03-18 17:30:26 +0100 Benjamin Otte <otte@redhat.com>
+ * gst/audiofx/gststereo.c:
+ gst_element_class_set_details => gst_element_class_set_details_simple
+
+2010-03-18 17:30:26 +0100 Benjamin Otte <otte@redhat.com>
+
* gst/dtmf/gstdtmfdetect.c:
* gst/dtmf/gstdtmfsrc.c:
* gst/dtmf/gstrtpdtmfdepay.c:
* gst/qtdemux/qtdemux.c: (qtdemux_audio_caps):
Correctly distinguish 8bit vs 16bit raw audio. Fixes #542410.
+2008-07-10 18:51:11 +0000 Stefan Kost <ensonic@users.sourceforge.net>
+
+ Document one more.
+ Original commit message from CVS:
+ * docs/plugins/Makefile.am:
+ * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
+ * docs/plugins/gst-plugins-bad-plugins-sections.txt:
+ * docs/plugins/gst-plugins-bad-plugins.args:
+ * docs/plugins/gst-plugins-bad-plugins.hierarchy:
+ * docs/plugins/gst-plugins-bad-plugins.interfaces:
+ * docs/plugins/gst-plugins-bad-plugins.prerequisites:
+ * docs/plugins/gst-plugins-bad-plugins.signals:
+ * docs/plugins/inspect/plugin-stereo.xml:
+ * gst/stereo/gststereo.c:
+ Document one more.
+
2008-07-08 21:05:18 +0000 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
gst/qtdemux/qtdemux.c: Set pixel-aspect-ratio in caps using display width and height provided in track.
as the convolution is done out of place anyway. Should
be done in place later.
+2007-08-09 17:39:47 +0000 Sebastian Dröge <slomo@circular-chaos.org>
+
+ Port the stereo element to GStreamer 0.10.
+ Original commit message from CVS:
+ * configure.ac:
+ * gst/stereo/Makefile.am:
+ * gst/stereo/gststereo.c: (gst_stereo_base_init),
+ (gst_stereo_class_init), (gst_stereo_init),
+ (gst_stereo_transform_ip), (gst_stereo_set_property),
+ (gst_stereo_get_property):
+ * gst/stereo/gststereo.h:
+ Port the stereo element to GStreamer 0.10.
+
2007-08-09 10:54:05 +0000 Thomas Vander Stichele <thomas@apestaart.org>
po/: Updated translations.
* sys/vcd/vcdsrc.h:
Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
+2006-06-01 22:00:26 +0000 Stefan Kost <ensonic@users.sourceforge.net>
+
+ Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
+ Original commit message from CVS:
+ * ext/alsaspdif/alsaspdifsink.h:
+ * ext/amrwb/gstamrwbdec.h:
+ * ext/amrwb/gstamrwbenc.h:
+ * ext/amrwb/gstamrwbparse.h:
+ * ext/arts/gst_arts.h:
+ * ext/artsd/gstartsdsink.h:
+ * ext/audiofile/gstafparse.h:
+ * ext/audiofile/gstafsink.h:
+ * ext/audiofile/gstafsrc.h:
+ * ext/audioresample/gstaudioresample.h:
+ * ext/bz2/gstbz2dec.h:
+ * ext/bz2/gstbz2enc.h:
+ * ext/dirac/gstdiracdec.h:
+ * ext/directfb/dfbvideosink.h:
+ * ext/divx/gstdivxdec.h:
+ * ext/divx/gstdivxenc.h:
+ * ext/dts/gstdtsdec.h:
+ * ext/faac/gstfaac.h:
+ * ext/gsm/gstgsmdec.h:
+ * ext/gsm/gstgsmenc.h:
+ * ext/ivorbis/vorbisenc.h:
+ * ext/libfame/gstlibfame.h:
+ * ext/nas/nassink.h:
+ * ext/neon/gstneonhttpsrc.h:
+ * ext/polyp/polypsink.h:
+ * ext/sdl/sdlaudiosink.h:
+ * ext/sdl/sdlvideosink.h:
+ * ext/shout/gstshout.h:
+ * ext/snapshot/gstsnapshot.h:
+ * ext/sndfile/gstsf.h:
+ * ext/swfdec/gstswfdec.h:
+ * ext/tarkin/gsttarkindec.h:
+ * ext/tarkin/gsttarkinenc.h:
+ * ext/theora/theoradec.h:
+ * ext/wavpack/gstwavpackdec.h:
+ * ext/wavpack/gstwavpackparse.h:
+ * ext/xine/gstxine.h:
+ * ext/xvid/gstxviddec.h:
+ * ext/xvid/gstxvidenc.h:
+ * gst/cdxaparse/gstcdxaparse.h:
+ * gst/cdxaparse/gstcdxastrip.h:
+ * gst/colorspace/gstcolorspace.h:
+ * gst/festival/gstfestival.h:
+ * gst/freeze/gstfreeze.h:
+ * gst/gdp/gstgdpdepay.h:
+ * gst/gdp/gstgdppay.h:
+ * gst/modplug/gstmodplug.h:
+ * gst/mpeg1sys/gstmpeg1systemencode.h:
+ * gst/mpeg1videoparse/gstmp1videoparse.h:
+ * gst/mpeg2sub/gstmpeg2subt.h:
+ * gst/mpegaudioparse/gstmpegaudioparse.h:
+ * gst/multifilesink/gstmultifilesink.h:
+ * gst/overlay/gstoverlay.h:
+ * gst/playondemand/gstplayondemand.h:
+ * gst/qtdemux/qtdemux.h:
+ * gst/rtjpeg/gstrtjpegdec.h:
+ * gst/rtjpeg/gstrtjpegenc.h:
+ * gst/smooth/gstsmooth.h:
+ * gst/smoothwave/gstsmoothwave.h:
+ * gst/spectrum/gstspectrum.h:
+ * gst/speed/gstspeed.h:
+ * gst/stereo/gststereo.h:
+ * gst/switch/gstswitch.h:
+ * gst/tta/gstttadec.h:
+ * gst/tta/gstttaparse.h:
+ * gst/videodrop/gstvideodrop.h:
+ * gst/xingheader/gstxingmux.h:
+ * sys/directdraw/gstdirectdrawsink.h:
+ * sys/directsound/gstdirectsoundsink.h:
+ * sys/dxr3/dxr3audiosink.h:
+ * sys/dxr3/dxr3spusink.h:
+ * sys/dxr3/dxr3videosink.h:
+ * sys/qcam/gstqcamsrc.h:
+ * sys/vcd/vcdsrc.h:
+ Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
+
2006-06-01 21:07:26 +0000 Stefan Kost <ensonic@users.sourceforge.net>
Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
Define GstElementDetails as const and also static (when defined as
global)
+2006-04-25 21:56:38 +0000 Stefan Kost <ensonic@users.sourceforge.net>
+
+ Define GstElementDetails as const and also static (when defined as global)
+ Original commit message from CVS:
+ * ext/amrwb/gstamrwbdec.c:
+ * ext/amrwb/gstamrwbenc.c:
+ * ext/amrwb/gstamrwbparse.c:
+ * ext/arts/gst_arts.c:
+ * ext/artsd/gstartsdsink.c:
+ * ext/audiofile/gstafparse.c:
+ * ext/audiofile/gstafsink.c:
+ * ext/audiofile/gstafsrc.c:
+ * ext/audioresample/gstaudioresample.c:
+ * ext/bz2/gstbz2dec.c:
+ * ext/bz2/gstbz2enc.c:
+ * ext/cdaudio/gstcdaudio.c:
+ * ext/directfb/dfbvideosink.c:
+ * ext/divx/gstdivxdec.c:
+ * ext/divx/gstdivxenc.c:
+ * ext/dts/gstdtsdec.c: (gst_dtsdec_base_init):
+ * ext/faac/gstfaac.c: (gst_faac_base_init):
+ * ext/faad/gstfaad.c:
+ * ext/gsm/gstgsmdec.c:
+ * ext/gsm/gstgsmenc.c:
+ * ext/hermes/gsthermescolorspace.c:
+ * ext/ivorbis/vorbisfile.c:
+ * ext/lcs/gstcolorspace.c:
+ * ext/libfame/gstlibfame.c:
+ * ext/libmms/gstmms.c: (gst_mms_base_init):
+ * ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init):
+ * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init):
+ * ext/nas/nassink.c: (gst_nassink_base_init):
+ * ext/neon/gstneonhttpsrc.c:
+ * ext/sdl/sdlaudiosink.c:
+ * ext/sdl/sdlvideosink.c:
+ * ext/shout/gstshout.c:
+ * ext/snapshot/gstsnapshot.c:
+ * ext/sndfile/gstsf.c:
+ * ext/swfdec/gstswfdec.c:
+ * ext/tarkin/gsttarkindec.c:
+ * ext/tarkin/gsttarkinenc.c:
+ * ext/theora/theoradec.c:
+ * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
+ * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
+ * ext/xvid/gstxviddec.c:
+ * ext/xvid/gstxvidenc.c:
+ * gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_base_init):
+ * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_base_init):
+ * gst/chart/gstchart.c:
+ * gst/colorspace/gstcolorspace.c:
+ * gst/deinterlace/gstdeinterlace.c:
+ * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init):
+ * gst/festival/gstfestival.c:
+ * gst/filter/gstbpwsinc.c:
+ * gst/filter/gstiir.c:
+ * gst/filter/gstlpwsinc.c:
+ * gst/freeze/gstfreeze.c:
+ * gst/games/gstpuzzle.c: (gst_puzzle_base_init):
+ * gst/librfb/gstrfbsrc.c:
+ * gst/mixmatrix/mixmatrix.c:
+ * gst/mpeg1sys/gstmpeg1systemencode.c:
+ * gst/mpeg1videoparse/gstmp1videoparse.c:
+ * gst/mpeg2sub/gstmpeg2subt.c:
+ * gst/mpegaudioparse/gstmpegaudioparse.c:
+ * gst/multifilesink/gstmultifilesink.c:
+ * gst/overlay/gstoverlay.c:
+ * gst/passthrough/gstpassthrough.c:
+ * gst/playondemand/gstplayondemand.c:
+ * gst/qtdemux/qtdemux.c:
+ * gst/rtjpeg/gstrtjpegdec.c:
+ * gst/rtjpeg/gstrtjpegenc.c:
+ * gst/smooth/gstsmooth.c:
+ * gst/smoothwave/gstsmoothwave.c:
+ * gst/spectrum/gstspectrum.c:
+ * gst/speed/gstspeed.c:
+ * gst/stereo/gststereo.c:
+ * gst/switch/gstswitch.c:
+ * gst/tta/gstttadec.c: (gst_tta_dec_base_init):
+ * gst/tta/gstttaparse.c: (gst_tta_parse_base_init):
+ * gst/vbidec/gstvbidec.c:
+ * gst/videocrop/gstvideocrop.c:
+ * gst/videodrop/gstvideodrop.c:
+ * gst/virtualdub/gstxsharpen.c:
+ * gst/xingheader/gstxingmux.c: (gst_xing_mux_base_init):
+ * gst/y4m/gsty4mencode.c:
+ * sys/cdrom/gstcdplayer.c:
+ * sys/directdraw/gstdirectdrawsink.c:
+ * sys/directsound/gstdirectsoundsink.c:
+ * sys/glsink/glimagesink.c:
+ * sys/qcam/gstqcamsrc.c:
+ * sys/v4l2/gstv4l2src.c:
+ * sys/vcd/vcdsrc.c: (gst_vcdsrc_base_init):
+ * sys/ximagesrc/ximagesrc.c:
+ Define GstElementDetails as const and also static (when defined as
+ global)
+
2006-04-25 21:39:46 +0000 Stefan Kost <ensonic@users.sourceforge.net>
Define GstElementDetails as const and also static (when defined as global)
* sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_class_init):
Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)
+2006-04-08 21:48:01 +0000 Stefan Kost <ensonic@users.sourceforge.net>
+
+ Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)
+ Original commit message from CVS:
+ * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_class_init):
+ * ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_class_init):
+ * ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_class_init):
+ * ext/arts/gst_arts.c: (gst_arts_class_init):
+ * ext/artsd/gstartsdsink.c: (gst_artsdsink_class_init):
+ * ext/audiofile/gstafsink.c: (gst_afsink_class_init):
+ * ext/audiofile/gstafsrc.c: (gst_afsrc_class_init):
+ * ext/audioresample/gstaudioresample.c:
+ * ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init):
+ * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_class_init):
+ * ext/divx/gstdivxdec.c: (gst_divxdec_class_init):
+ * ext/hermes/gsthermescolorspace.c:
+ (gst_hermes_colorspace_class_init):
+ * ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_class_init):
+ * ext/jack/gstjack.c: (gst_jack_class_init):
+ * ext/jack/gstjackbin.c: (gst_jack_bin_class_init):
+ * ext/lcs/gstcolorspace.c: (gst_colorspace_class_init):
+ * ext/libfame/gstlibfame.c: (gst_fameenc_class_init):
+ * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_class_init):
+ * ext/nas/nassink.c: (gst_nassink_class_init):
+ * ext/shout/gstshout.c: (gst_icecastsend_class_init):
+ * ext/snapshot/gstsnapshot.c: (gst_snapshot_class_init):
+ * ext/sndfile/gstsf.c: (gst_sf_class_init):
+ * ext/swfdec/gstswfdec.c: (gst_swfdecbuffer_class_init),
+ (gst_swfdec_class_init):
+ * ext/tarkin/gsttarkindec.c: (gst_tarkindec_class_init):
+ * ext/tarkin/gsttarkinenc.c: (gst_tarkinenc_class_init):
+ * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_class_init):
+ * gst/chart/gstchart.c: (gst_chart_class_init):
+ * gst/colorspace/gstcolorspace.c: (gst_colorspace_class_init):
+ * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_class_init):
+ * gst/festival/gstfestival.c: (gst_festival_class_init):
+ * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init):
+ * gst/filter/gstiir.c: (gst_iir_class_init):
+ * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init):
+ * gst/librfb/gstrfbsrc.c: (gst_rfbsrc_class_init):
+ * gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_class_init):
+ * gst/mpeg1sys/gstmpeg1systemencode.c:
+ (gst_system_encode_class_init):
+ * gst/mpeg1videoparse/gstmp1videoparse.c:
+ (gst_mp1videoparse_class_init):
+ * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_class_init):
+ * gst/mpegaudioparse/gstmpegaudioparse.c:
+ (gst_mp3parse_class_init):
+ * gst/overlay/gstoverlay.c: (gst_overlay_class_init):
+ * gst/passthrough/gstpassthrough.c: (passthrough_class_init):
+ * gst/playondemand/gstplayondemand.c: (play_on_demand_class_init):
+ * gst/rtjpeg/gstrtjpegdec.c: (gst_rtjpegdec_class_init):
+ * gst/rtjpeg/gstrtjpegenc.c: (gst_rtjpegenc_class_init):
+ * gst/smooth/gstsmooth.c: (gst_smooth_class_init):
+ * gst/smoothwave/gstsmoothwave.c: (gst_smoothwave_class_init):
+ * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init):
+ * gst/stereo/gststereo.c: (gst_stereo_class_init):
+ * gst/switch/gstswitch.c: (gst_switch_class_init):
+ * gst/tta/gstttadec.c: (gst_tta_dec_class_init):
+ * gst/tta/gstttaparse.c: (gst_tta_parse_class_init):
+ * gst/vbidec/gstvbidec.c: (gst_vbidec_class_init):
+ * gst/videocrop/gstvideocrop.c: (gst_video_crop_class_init):
+ * gst/virtualdub/gstxsharpen.c: (gst_xsharpen_class_init):
+ * gst/y4m/gsty4mencode.c: (gst_y4mencode_class_init):
+ * sys/cdrom/gstcdplayer.c: (cdplayer_class_init):
+ * sys/directsound/gstdirectsoundsink.c:
+ (gst_directsoundsink_class_init):
+ * sys/dxr3/dxr3audiosink.c: (dxr3audiosink_class_init):
+ * sys/dxr3/dxr3spusink.c: (dxr3spusink_class_init):
+ * sys/dxr3/dxr3videosink.c: (dxr3videosink_class_init):
+ * sys/qcam/gstqcamsrc.c: (gst_qcamsrc_class_init):
+ * sys/v4l2/gstv4l2colorbalance.c:
+ (gst_v4l2_color_balance_channel_class_init):
+ * sys/v4l2/gstv4l2tuner.c: (gst_v4l2_tuner_channel_class_init),
+ (gst_v4l2_tuner_norm_class_init):
+ * sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_class_init):
+ Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)
+
2006-04-08 21:21:45 +0000 Stefan Kost <ensonic@users.sourceforge.net>
Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)
2006-04-01 10:09:11 +0000 Thomas Vander Stichele <thomas@apestaart.org>
+ * gst/audiofx/gststereo.c:
+ rework build; add translations for v4l2
+ Original commit message from CVS:
+ rework build; add translations for v4l2
+
+2006-04-01 10:09:11 +0000 Thomas Vander Stichele <thomas@apestaart.org>
+
* gst/equalizer/gstiirequalizer.c:
* gst/qtdemux/qtdemux.c:
* gst/spectrum/gstspectrum.c:
* ext/lame/gstlame.h:
Port lame plugin
+2005-07-05 10:51:49 +0000 Andy Wingo <wingo@pobox.com>
+
+ Way, way, way too many files: Remove crack comment from the 2000 era.
+ Original commit message from CVS:
+ 2005-07-05 Andy Wingo <wingo@pobox.com>
+ * Way, way, way too many files:
+ Remove crack comment from the 2000 era.
+
2005-07-05 10:51:41 +0000 Andy Wingo <wingo@pobox.com>
Way, way, way too many files: Remove crack comment from the 2000 era.
* gst/monoscope/gstmonoscope.c: (gst_monoscope_class_init):
debug info
+2004-07-27 21:51:30 +0000 Steve Lhomme <steve.lhomme@free.fr>
+
+ * gst/audiofx/gststereo.c:
+ fix local includes and 64 bits constants
+ Original commit message from CVS:
+ fix local includes and 64 bits constants
+
2004-07-26 15:42:18 +0000 Benjamin Otte <otte@gnome.org>
ext/lame/gstlame.c: add debugging category, add error checks like checking return values of setup calls, make sure it...
Original commit message from CVS:
don't trust lame_init to set good values as defaults
+2004-03-15 19:32:27 +0000 Thomas Vander Stichele <thomas@apestaart.org>
+
+ * gst/audiofx/gststereo.c:
+ don't mix tabs and spaces
+ Original commit message from CVS:
+ don't mix tabs and spaces
+
2004-03-15 19:32:25 +0000 Thomas Vander Stichele <thomas@apestaart.org>
* ext/lame/gstlame.c:
Original commit message from CVS:
don't mix tabs and spaces
+2004-03-15 16:32:54 +0000 Johan Dahlin <johan@gnome.org>
+
+ *.h: Revert indenting
+ Original commit message from CVS:
+ * *.h: Revert indenting
+
2004-03-15 16:32:53 +0000 Johan Dahlin <johan@gnome.org>
*.h: Revert indenting
Original commit message from CVS:
* *.h: Revert indenting
+2004-03-14 22:34:33 +0000 Thomas Vander Stichele <thomas@apestaart.org>
+
+ * gst/audiofx/gststereo.c:
+ * gst/audiofx/gststereo.h:
+ gst-indent
+ Original commit message from CVS:
+ gst-indent
+
2004-03-14 22:34:30 +0000 Thomas Vander Stichele <thomas@apestaart.org>
* ext/lame/gstlame.c:
Original commit message from CVS:
Uses new tagging framework
+2003-12-04 10:37:38 +0000 Andy Wingo <wingo@pobox.com>
+
+ * gst/audiofx/gststereo.c:
+ remove copyright field from plugins
+ Original commit message from CVS:
+ remove copyright field from plugins
+
2003-12-04 10:37:35 +0000 Andy Wingo <wingo@pobox.com>
* ext/lame/gstlame.c:
Original commit message from CVS:
change _connect to _link
+2003-11-16 22:02:23 +0000 Leif Johnson <leif@ambient.2y.net>
+
+ * gst/audiofx/gststereo.c:
+ + checking in plugin category changes
+ Original commit message from CVS:
+ + checking in plugin category changes
+
+2003-11-07 12:47:02 +0000 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
+
+ * gst/audiofx/gststereo.h:
+ Remove all config.h includes from header files, add it to each source file and remove duplicate config.h includes fro...
+ Original commit message from CVS:
+ Remove all config.h includes from header files, add it to each source file and remove duplicate config.h includes from several source files
+
2003-11-07 12:46:51 +0000 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/lame/gstlame.h:
Original commit message from CVS:
Remove all config.h includes from header files, add it to each source file and remove duplicate config.h includes from several source files
+2003-11-02 22:34:11 +0000 Benjamin Otte <otte@gnome.org>
+
+ * gst/audiofx/gststereo.c:
+ fix for new plugin system
+ Original commit message from CVS:
+ fix for new plugin system
+
2003-11-02 00:13:26 +0000 Iain Holmes <iain@prettypeople.org>
* ext/lame/gstlame.c:
Original commit message from CVS:
Fix typo in Andy's commit
+2003-10-08 16:08:19 +0000 Andy Wingo <wingo@pobox.com>
+
+ * gst/audiofx/gststereo.c:
+ /GstBuffer/GstData/ in the API where you can pass events. Fix the plugins to deal with that. Fixes #113488.
+ Original commit message from CVS:
+ /GstBuffer/GstData/ in the API where you can pass events. Fix the plugins to deal with that. Fixes #113488.
+
2003-10-08 16:08:10 +0000 Andy Wingo <wingo@pobox.com>
* ext/lame/gstlame.c:
Original commit message from CVS:
patch from hadess, modified
+2003-06-29 19:46:13 +0000 Benjamin Otte <otte@gnome.org>
+
+ * gst/audiofx/gststereo.c:
+ compatibility fix for new GST_DEBUG stuff.
+ Original commit message from CVS:
+ compatibility fix for new GST_DEBUG stuff.
+ Includes fixes for missing includes for config.h and unistd.h
+ I only ensured for plugins I can build that they work, so if some of them are still broken, you gotta fix them yourselves unfortunately.
+
2003-06-29 19:46:09 +0000 Benjamin Otte <otte@gnome.org>
* ext/lame/gstlame.c:
Original commit message from CVS:
api change
+2002-09-18 19:02:52 +0000 Christian Schaller <uraeus@gnome.org>
+
+ * gst/audiofx/gststereo.c:
+ plugins part of license field patch
+ Original commit message from CVS:
+ plugins part of license field patch
+
2002-09-18 19:02:46 +0000 Christian Schaller <uraeus@gnome.org>
* ext/lame/gstlame.c:
Original commit message from CVS:
reorder
+2002-04-20 21:42:51 +0000 Andy Wingo <wingo@pobox.com>
+
+ * gst/audiofx/gststereo.c:
+ a hack to work around intltool's brokenness a current check for mpeg2dec details->klass reorganizations an element br...
+ Original commit message from CVS:
+ * a hack to work around intltool's brokenness
+ * a current check for mpeg2dec
+ * details->klass reorganizations
+ * an element browser that uses details->klass
+ * separated cdxa parse out from the avi directory
+
+2002-04-11 20:42:26 +0000 Andy Wingo <wingo@pobox.com>
+
+ * gst/audiofx/gststereo.c:
+ GstPadTemplate <-> gst_pad_template <-> GST_PAD_TEMPLATE same with *factory and typefind.
+ Original commit message from CVS:
+ GstPadTemplate <-> gst_pad_template <-> GST_PAD_TEMPLATE
+ same with *factory and typefind.
+ also, some -Werror fixes.
+
2002-04-11 20:42:25 +0000 Andy Wingo <wingo@pobox.com>
* ext/lame/gstlame.c:
* filter newlines out of GST_DEBUG statements to reflect new core behavior
* fixes to adder's caps, again
+2002-03-20 21:45:04 +0000 Andy Wingo <wingo@pobox.com>
+
+ * gst/audiofx/gststereo.c:
+ * gst/audiofx/gststereo.h:
+ s/Gnome-Streamer/GStreamer/
+ Original commit message from CVS:
+ s/Gnome-Streamer/GStreamer/
+
2002-03-20 21:45:03 +0000 Andy Wingo <wingo@pobox.com>
* ext/lame/gstlame.c:
Original commit message from CVS:
fix compile error (untested)
+2002-03-19 04:10:06 +0000 Andy Wingo <wingo@pobox.com>
+
+ * gst/audiofx/gststereo.c:
+ removal of //-style comments don't link plugins to core libs -- the versioning is done internally to the plugins with...
+ Original commit message from CVS:
+ * removal of //-style comments
+ * don't link plugins to core libs -- the versioning is done internally to the plugins with the plugin_info struct,
+ and symbol resolution is lazy, so we can always know if a plugin can be loaded by the plugin_info data. in theory.
+
2002-03-19 04:10:05 +0000 Andy Wingo <wingo@pobox.com>
* ext/lame/Makefile.am:
* link plugins to GST_LIBS
* rearrange rules to a common format
+2001-12-22 23:26:33 +0000 Andy Wingo <wingo@pobox.com>
+
+ * gst/audiofx/gststereo.c:
+ * gst/audiofx/gststereo.h:
+ Initial revision
+ Original commit message from CVS:
+ Initial revision
+
2001-12-21 12:47:09 +0000 Wim Taymans <wim.taymans@gmail.com>
* ext/lame/gstlame.c:
GSTREAMER 1.16 RELEASE NOTES
-GStreamer 1.16 has not been released yet. It is scheduled for release
-around September 2018.
+GStreamer 1.16 has not been released yet. It is scheduled for release in
+January/February 2019.
-1.15.0.1 is the unstable development version that is being developed in
+1.15.x is the unstable development version that is being developed in
the git master branch and which will eventually result in 1.16.
-The plan for the 1.16 development cycle is yet to be confirmed, but it
-is expected that feature freeze will be around August 2017 followed by
-several 1.15 pre-releases and the new 1.16 stable release in September.
-
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.
See https://gstreamer.freedesktop.org/releases/1.16/ for the latest
version of this document.
-_Last updated: Tuesday 20 March 2018, 01:30 UTC (log)_
+_Last updated: Monday 14 January 2019, 13:00 UTC (log)_
Introduction
Highlights
-- this section will be completed in due course
+- GStreamer WebRTC stack gained support for data channels for
+ peer-to-peer communication based on SCTP, BUNDLE support, as well as
+ support for multiple TURN servers.
+
+- AV1 video codec support for Matroska and QuickTime/MP4 containers
+ and more configuration options and supported input formats for the
+ AOMedia AV1 encoder
+
+- Support for Closed Captions and other Ancillary Data in video
+
+- Spport for planar (non-interleaved) raw audio
+
+- GstVideoAggregator, compositor and OpenGL mixer elements are now in
+ -base
+
+- New alternate fields interlace mode where each buffer carries a
+ single field
+
+- WebM and Matroska ContentEncryption support in the Matroska demuxer
+
+- new WebKit WPE-based web browser source element
+
+- Video4Linux: HEVC encoding and decoding, JPEG encoding, and improved
+ dmabuf import/export
+
+- Hardware-accelerated Nvidia video decoder gained support for VP8/VP9
+ decoding, whilst the encoder gained support for H.265/HEVC encoding.
+
+- Many improvements to the Intel Media SDK based hardware-accelerated
+ video decoder and encoder plugin (msdk): dmabuf import/export for
+ zero-copy integration with other components; VP9 decoding; 10-bit
+ HEVC encoding; video post-processing (vpp) support including
+ deinterlacing; and the video decoder now handles dynamic resolution
+ changes.
+
+- The ASS/SSA subtitle overlay renderer can now handle multiple
+ subtitles that overlap in time and will show them on screen
+ simultaneously
+
+- The Meson build is now feature-complete (*) and it is now the
+ recommended build system on all platforms. The Autotools build is
+ scheduled to be removed in the next cycle.
+
+- The GStreamer Rust bindings and Rust plugins module are now
+ officially part of upstream GStreamer.
+
+- Many performance improvements
Major new features and changes
Noteworthy new API
-- this section will be filled in in due course
+- GstAggregator has a new "min-upstream-latency" property that forces
+ a minimum aggregate latency for the input branches of an aggregator.
+ This is useful for dynamic pipelines where branches with a higher
+ latency might be added later after the pipeline is already up and
+ running and where a change in the latency would be disruptive. This
+ only applies to the case where at least one of the input branches is
+ live though, it won’t force the aggregator into live mode in the
+ absence of any live inputs.
+
+- GstBaseSink gained a "processing-deadline" property and
+ setter/getter API to configure a processing deadline for live
+ pipelines. The processing deadline is the acceptable amount of time
+ to process the media in a live pipeline before it reaches the sink.
+ This is on top of the systemic latency that is normally reported by
+ the latency query. This defaults to 20ms and should make pipelines
+ such as “v4lsrc ! xvimagesink” not claim that all frames are late in
+ the QoS events. Ideally, this should replace max_lateness for most
+ applications.
+
+- RTCP Extended Reports (XR) parsing according to RFC 3611:
+ Loss/Duplicate RLE, Packet Receipt Times, Receiver Reference Time,
+ Delay since the last Receiver (DLRR), Statistics Summary, and VoIP
+ Metrics reports.
+
+- a new mode for interlaced video was added where each buffer carries
+ a single field of interlaced video, with buffer flags indicating
+ whether the field is the top field or bottom field. Top and bottom
+ fields are expected to alternate in this mode. Caps for this
+ interlace mode must also carry a format:Interlaced caps feature to
+ ensure backwards compatibility.
+
+- The video library has gained support for three new raw pixel
+ formats:
+
+ - Y410: packed 4:4:4 YUV, 10 bits per channel
+ - Y210: packed 4:2:2 YUV, 10 bits per channel
+ - NV12_10LE40: fully-packed 10-bit variant of NV12_10LE32,
+ i.e. without the padding bits
+
+- GstRTPSourceMeta is a new meta that can be used to transport
+ information about the origin of depayloaded or decoded RTP buffers,
+ e.g. when mixing audio from multiple sources into a single stream. A
+ new "source-info" property on the RTP depayloader base class
+ determines whether depayloaders should put this meta on outgoing
+ buffers. Similarly, the same property on RTP payloaders determines
+ whether they should use the information from this meta to construct
+ the CSRCs list on outgoing RTP buffers.
+
+- gst_sdp_message_from_text() is a convenience constructor to parse
+ SDPs from a string which is particularly useful for language
+ bindings.
+
+Support for Planar (Non-Interleaved) Raw Audio
+
+Raw audio samples are usually passed around in interleaved form in
+GStreamer, which means that if there are multiple audio channels the
+samples for each channel are interleaved in memory, e.g.
+|LEFT|RIGHT|LEFT|RIGHT|LEFT|RIGHT| for stereo audio. A non-interleaved
+or planar arrangement in memory would look like
+|LEFT|LEFT|LEFT|RIGHT|RIGHT|RIGHT| instead, possibly with
+|LEFT|LEFT|LEFT| and |RIGHT|RIGHT|RIGHT| residing in separate memory
+chunks or separated by some padding.
+
+GStreamer has always had signalling for non-interleaved audio, but it
+was never actually properly implemented in any elements. audioconvert
+would advertise support for it, but wasn’t actually able to handle it.
+
+With this release we now have full support for non-interleaved audio as
+well, which means more efficient integration with external APIs that
+handle audio this way, but also more efficient processing of certain
+operations like interleaving multiple 1-channel streams into a
+multi-channel stream which can be done without memory copies now.
+
+New API to support this has been added to the GStreamer Audio support
+library: There is now a new GstAudioMeta which describes how data is
+laid out inside the buffer, and buffers with non-interleaved audio must
+always carry this meta. To access the non-interleaved audio samples you
+must map such buffers with gst_audio_buffer_map() which works much like
+gst_buffer_map() or gst_video_frame_map() in that it will populate a
+little GstAudioBuffer helper structure passed to it with the number of
+samples, the number of planes and pointers to the start of each plane in
+memory. This function can also be used to map interleaved audio buffers
+in which case there will be only one plane of interleaved samples.
+
+Of course support for this has also been implemented in the various
+audio helper and conversion APIs, base classes, and in elements such as
+audioconvert, audioresample, audiotestsrc, audiorate.
+
+Support for Closed Captions and Other Ancillary Data in Video
+
+The video support library has gained support for detecting and
+extracting Ancillary Data from videos as per the SMPTE S291M
+specification, including:
+
+- a VBI (Video Blanking Interval) parser that can detect and extract
+ Ancillary Data from Vertical Blanking Interval lines of component
+ signals. This is currently supported for videos in v210 and UYVY
+ format.
+
+- a new GstMeta for closed captions: GstVideoCaptionMeta. This
+ supports the two types of closed captions, CEA-608 and CEA-708,
+ along with the four different ways they can be transported (other
+ systems are a superset of those).
+
+- a VBI (Video Blanking Interval) encoder for writing ancillary data
+ to the Vertical Blanking Interval lines of component signals.
+
+The new closedcaption plugin in gst-plugins-bad then makes use of all
+this new infrastructure and provides the following elements:
+
+- cccombiner: a closed caption combiner that takes a closed captions
+ stream and another stream and adds the closed captions as
+ GstVideoCaptionMeta to the buffers of the other stream.
+
+- ccextractor: a closed caption extractor which will take
+ GstVideoCaptionMeta from input buffers and output them as a separate
+ closed captions stream.
+
+- ccconverter: a closed caption converter that can convert between
+ different formats
+
+- line21decoder: extract line21 closed captions from SD video streams
+
+- cc708overlay: decodes CEA 608/708 captions and overlays them on
+ video
+
+Additionally, the following elements have also gained Closed Caption
+support:
+
+- qtdemux and qtmux support CEA 608/708 Closed Caption tracks
+
+- mpegvideoparse extracts Closed Captions from MPEG-2 video streams
+
+- decklinkvideosink can output closed captions and decklinkvideosrc
+ can extract closed captions
+
+- playbin and playbin3 learned how to autoplug CEA 608/708 CC overlay
+ elements
+
+The rsclosedcaption plugin in the Rust plugins collection includes a
+MacCaption (MCC) file parser and encoder.
New Elements
-- this section will be filled in in due course
+- overlaycomposition: New element that allows applications to draw
+ GstVideoOverlayCompositions on a stream. The element will emit the
+ "draw" signal for each video buffer, and the application then
+ generates an overlay for that frame (or not). This is much more
+ performant than e.g. cairooverlay for many use cases, e.g. because
+ pixel format conversions can be avoided or the blitting of the
+ overlay can be delegated to downstream elements (such as
+ gloverlaycompositor). It’s particularly useful for cases where only
+ a small section of the video frame should be drawn on.
+
+- gloverlaycompositor: New OpenGL-based compositor element that
+ flattens any overlays from GstVideoOverlayCompositionMetas into the
+ video stream.
+
+- glalpha: New element that adds an alpha channel to a video stream.
+ The values of the alpha channel can either be set to a constant or
+ can be dynamically calculated via chroma keying. It is similar to
+ the existing alpha element but based on OpenGL. Calculations are
+ done in floating point so results may not be identical to the output
+ of the existing alpha element.
+
+- rtpfunnel funnels together rtp-streams into a single session. Use
+ cases include multiplexing and bundle. webrtcbin uses it to
+ implement BUNDLE support.
+
+- testsrcbin is a source element that provides an audio and/or video
+ stream and also announces them using the recently-introduced
+ GstStream API. This is useful for testing elements such as playbin3
+ or uridecodebin3 etc.
+
+- New closed caption elements: cccombiner, ccextractor, ccconverter,
+ line21decoder and cc708overlay (see above)
+
+- wpesrc: new source element acting as a Web Browser based on WebKit
+ WPE
+
+- Two new OpenCV-based elements: cameracalibrate and cameraundistort
+ who can communicate to figure out distortion correction parameters
+ for a camera and correct for the distortion.
+
+- new sctp plugin based on usrsctp with sctpenc and sctpdec elements
New element features and additions
-- this section will be filled in in due course
+- playbin3, playbin and playsink have gained a new "text-offset"
+ property to adjust the positioning of the selected subtitle stream
+ vis-a-vis the audio and video streams. This uses subtitleoverlay’s
+ new "subtitle-ts-offset" property. GstPlayer has gained matching API
+ for this, namely gst_player_get_text_video_offset().
+
+- playbin3 buffering improvements: in network playback scenarios there
+ may be multiple inputs to decodebin3, and buffering will be done
+ before decodebin3 using queue2 or downloadbuffer elements inside
+ urisourcebin. Since this is before any parsers or demuxers there may
+ not be any bitrate information available for the various streams, so
+ it was difficult to configure the buffering there smartly within
+ global constraints. This was improved now: The queue2 elements
+ inside urisourcebin will now use the new bitrate query to figure out
+ a bitrate estimate for the stream if no bitrate was provided by
+ upstream, and urisourcebin will use the bitrates of the individual
+ queues to distribute the globally-set "buffer-size" budget in bytes
+ to the various queues. urisourcebin also gained "low-watermark" and
+ "high-watermark" properties which will be proxied to the internal
+ queues, as well as a read-only "statistics" property which allows
+ querying of the minimum/maximum/average byte and time levels of the
+ queues inside the urisourcebin in question.
+
+- splitmuxsink has gained a couple of new features:
+
+ - new "async-finalize" mode: This mode is useful for muxers or
+ outputs that can take a long time to finalize a file. Instead of
+ blocking the whole upstream pipeline while the muxer is doing
+ its stuff, we can unlink it and spawn a new muxer + sink
+ combination to continue running normally. This requires us to
+ receive the muxer and sink (if needed) as factories via the new
+ "muxer-factory" and "sink-factory" properties, optionally
+ accompanied by their respective properties structures (set via
+ the new "muxer-properties" and "sink-properties" properties).
+ There are also new "muxer-added" and "sink-added" signals in
+ case custom code has to be called for them to configure them.
+
+ - "split-at-running-time" action signal: When called by the user,
+ this action signal ends the current file (and starts a new one)
+ as soon as the given running time is reached. If called multiple
+ times, running times are queued up and processed in the order
+ they were given.
+
+ - "split-after" action signal to finish outputting the current GOP
+ to the current file and then start a new file as soon as the GOP
+ is finished and a new GOP is opened (unlike the existing
+ "split-now" which immediately finishes the current file and
+ writes the current GOP into the next newly-started file).
+
+ - "reset-muxer" property: when unset, the muxer is reset using
+ flush events instead of setting its state to NULL and back. This
+ means the muxer can keep state across resets, e.g. mpegtsmux
+ will keep the continuity counter continuous across segments as
+ required by hlssink2.
+
+- qtdemux gained PIFF track encryption box support in addition to the
+ already-existing PIFF sample encryption support, and also allows
+ applications to select which encryption system to use via a
+ "drm-preferred-decryption-system-id" context in case there are
+ multiple options.
+
+- qtmux: the "start-gap-threshold" property determines now whether an
+ edit list will be created to account for small gaps or offsets at
+ the beginning of a stream in case the start timestamps of tracks
+ don’t line up perfectly. Previously the threshold was hard-coded to
+ 1% of the (video) frame duration, now it is 0 by default (so edit
+ list will be created even for small differences), but fully
+ configurable.
+
+- rtpjitterbuffer has improved end-of-stream handling
+
+- rtpmp4vpay will be prefered over rtpmp4gpay for MPEG-4 video in
+ autoplugging scenarios now
+
+- rtspsrc now allows applications to send RTSP SET_PARAMETER and
+ GET_PARAMETER requests using action signals.
+
+- rtspsrc also has a small (100ms) configurable teardown delay by
+ default to try and make sure an RTSP TEARDOWN request gets sent out
+ when the source element shuts down. This will block the downward
+ PAUSED to READY state change for a short time, but can be unset
+ where it’s a problem. Some servers only allow a limited number of
+ concurren clients, so if no proper TEARDOWN is sent clients may have
+ problems connecting to the server for a while.
+
+- souphttpsrc behaves better with low bitrate streams now. Before it
+ would increase the read block size too quickly which could lead to
+ it not reading any data from the socket for a very long time with
+ low bitrate streams that are output live downstream. This could lead
+ to servers kicking off the client.
+
+- filesink: do internal buffering to avoid performance regression with
+ small writes since we bypass libc buffering by using writev()
+
+- identity: add "eos-after" property and fix "error-after" property
+ when the element is reused
+
+- input-selector: lets context queries pass through, so that
+ e.g. upstream OpenGL elements can use contexts and displays
+ advertised by downstream elements
+
+- queue2: avoid ping-pong between 0% and 100% buffering messages if
+ upstream is pushing buffers larger than one of its limits, plus
+ performance optimisations
+
+- opusdec: new "phase-inversion" property to control phase inversion.
+ When enabled, this will slightly increase stereo quality, but
+ produces a stream that when downmixed to mono will suffer audio
+ distortions.
+
+- The x265enc HEVC encoder also exposes a "key-int-max" property to
+ configure the maximum allowed GOP size now.
+
+- decklinkvideosink has seen stability improvements for long-running
+ pipelines (potential crash due to overflow of leaked clock refcount)
+ and clock-slaving improvements when performing flushing seeks
+ (causing stalls in the output timeline), pausing and/or buffering.
+
+- srtpdec, srtpenc: add support for MKIs which allow multiple keys to
+ be used with a single SRTP stream
+
+- The srt Secure Reliable Transport plugin has integrated server and
+ client elements srt{client,server}{src,sink} into one (srtsrc and
+ srtsink), since SRT connection mode can be changed by uri
+ parameters.
+
+- h264parse and h265parse will handle SEI recovery point messages and
+ mark recovery points as keyframes as well (in addition to IDR
+ frames)
+
+- webrtcbin: "add-turn-server" action signal to pass multiple ICE
+ relays (TURN servers).
+
+- The removesilence element has received various new features and
+ properties, such as a
+ "threshold"1 property, detecting silence only after minimum silence time/buffers, a“silent”property to control bus message notifications as well as a“squash”`
+ property.
+
+- AOMedia AV1 decoder gained support for 10/12bit decoding whilst the
+ AV1 encoder supports more image formats and subsamplings now and
+ acquired support for rate control and profile related configuration.
+
+- The Fraunhofer fdkaac plugin can now be built against the 2.0.0
+ version API and has improved multichannel support
+
+- kmssink now supports unpadded 24-bit RGB and can configure mode
+ setting from video info, which enables display of multi-planar
+ formats such as I420 or NV12 with modesetting. It has also gained a
+ number of new properties: The "restore-crtc" property does what it
+ says on the tin and is enabled by default. "plane-properties" and
+ "connector-properties" can be used to pass custom properties to the
+ DRM.
+
+- waylandsink has a "fullscreen" property now.
Plugin and library moves
-- this section will be filled in in due course
+- The stereo element was moved from -bad into the existing audiofx
+ plugin in -good. If you get duplicate type registration warnings
+ when upgrading, check that you don’t have a stale gststereo plugin
+ lying about somewhere.
+
+GstVideoAggregator, compositor, and OpenGL mixer elements moved from -bad to -base
+
+GstVideoAggregator is a new base class for raw video mixers and muxers
+and is based on [GstAggregator][aggregator]. It provides defined-latency
+mixing of raw video inputs and ensures that the pipeline won’t stall
+even if one of the input streams stops producing data.
+
+As part of the move to stabilise the API there were some last-minute API
+changes and clean-ups, but those should mostly affect internal elements.
+Most notably, the "ignore-eos" pad property was renamed to
+"repeat-after-eos" and the conversion code was moved to a
+GstVideoAggregatorConvertPad subclass to avoid code duplication, make
+things less awkward for subclasses like the OpenGL-based video mixer,
+and make the API more consistent with the audio aggregator API.
+
+It is used by the compositor element, which is a replacement for
+‘videomixer’ which did not handle live inputs very well. compositor
+should behave much better in that respect and generally behave as one
+would expected in most scenarios.
+
+The compositor element has gained support for per-pad blending mode
+operators (SOURCE, OVER, ADD) which determines what operator to use for
+blending this pad over the previous ones. This can be used to implement
+crossfading.
+
+A number of OpenGL-based video mixer elements (glvideomixer, glmixerbin,
+glvideomixerelement, glstereomix, glmosaic) which are built on top of
+GstVideoAggregator have also been moved from -bad to -base now. These
+elements have been merged into the existing OpenGL plugin, so if you get
+duplicate type registration warnings when upgrading, check that you
+don’t have a stale gstopenglmixers plugin lying about somewhere.
Plugin removals
-- this section will be filled in in due course
+The following plugins have been removed from gst-plugins-bad:
+
+- The experimental daala plugin has been removed, since it’s not so
+ useful now that all effort is focused on AV1 instead, and it had to
+ be enabled explicitly with --enable-experimental anyway.
+
+- The spc plugin has been removed. It has been replaced by the gme
+ plugin.
+
+- The acmmp3dec and acmenc plugins for Windows have been removed. ACM
+ is an ancient legacy API and there was no point in keeping them
+ around for a licensed mp3 decoder now that mp3 patents have expired
+ and we have a decoder in -good. We also didn’t ship these in our
+ cerbero-built Windows packages, so it’s unlikely that they’ll be
+ missed.
Miscellaneous API additions
-- this section will be filled in in due course
+- GstBitwriter: new generic bit writer API to complement the existing
+ bit reader
+
+- gst_buffer_new_wrapped_bytes() creates a wrap buffer from a GBytes
+
+- gst_caps_set_features_simple() sets a caps feature on all the
+ structures of a GstCaps
+
+- New GST_QUERY_BITRATE query: This allows determining from downstream
+ what the expected bitrate of a stream may be which is useful in
+ queue2 for setting time based limits when upstream does not provide
+ timing information. tsdemux, qtdemux and matroskademux have basic
+ support for this query on their sink pads.
+
+- elements: there is a new “Hardware” class specifier. Elements
+ interacting with hardware devices should specify this classifier in
+ their element factory class metadata. This is useful to advertise as
+ one might need to put such elements into READY state to test if the
+ hardware is present in the system for example.
+
+- protection: Add a new definition for unspecified system protection
+
+- take functions for various mini objects that didn’t have them yet:
+ gst_query_take(), gst_message_take(), gst_tag_list_take(),
+ gst_buffer_list_take(). Unlike the various _replace() functions
+ _take() does not increase the reference count but takes ownership of
+ the mini object passed.
+
+- clear functions for various mini object types and GstObject which
+ unrefs the object or mini object (if non-NULL) and sets the variable
+ pointed to to NULL: gst_clear_structure(), gst_clear_tag_list(),
+ gst_clear_query(), gst_clear_message(), gst_clear_event(),
+ gst_clear_caps(), gst_clear_buffer_list(), gst_clear_buffer(),
+ gst_clear_mini_object(), gst_clear_object()
+
+- miniobject: new API gst_mini_object_add_parent() and
+ gst_mini_object_remove_parent()to set parent pointers on mini objects to ensure correct writability: Every container of miniobjects now needs to store itself as parent in the child object, and remove itself again later. A mini object is then only writable if there is at most one parent, that parent is writable itself, and the reference count of the mini object is 1.GstBuffer(for memories),GstBufferList(for buffers),GstSample(for caps, buffer, bufferlist), andGstVideoOverlayComposition`
+ were updated accordingly. Without this it was possible to have
+ e.g. a buffer list with a refcount of 2 used in two places at once
+ that both modify the same buffer with refcount 1 at the same time
+ wrongly thinking it is writable even though it’s really not.
+
+- poll: add API to watch for POLLPRI and stop treating POLLPRI as a
+ read. This is useful to wait for video4linux events which are
+ signalled via POLLPRI.
+
+- sample: new API to update the contents of a GstSample and make it
+ writable: gst_sample_set_buffer(), gst_sample_set_caps(),
+ gst_sample_set_segment(), gst_sample_set_info(), plus
+ gst_sample_is_writable() and gst_sample_make_writable(). This makes
+ it possible to reuse a sample object and avoid unnecessary memory
+ allocations, for example in appsink.
+
+- ClockIDs now keep a weak reference to underlying clock to avoid
+ crashes in basesink in corner cases where a clock goes away while
+ the ClockID is still in use, plus some new API
+ (gst_clock_id_get_clock(), gst_clock_id_uses_clock()) to check the
+ clock a ClockID is linked to.
+
+- The GstCheck unit test library gained a
+ fail_unless_equals_clocktime() convenience macro as well as some new
+ GstHarness API for for proposing meta APIs from the allocation
+ query: gst_harness_add_propose_allocation_meta(). ASSERT_CRITICAL()
+ checks in unit tests are now skipped if GStreamer was compiled with
+ GST_DISABLE_GLIB_CHECKS.
+
+- gst_audio_buffer_truncate() convenience function to truncate a raw
+ audio buffer
+
+
+Miscellaneous performance and memory optimisations
+
+As always there have been many performance and memory usage improvements
+across all components and modules. Some of them (such as dmabuf
+import/export) have already been mentioned elsewhere so won’t be
+repeated here.
+
+The following list is only a small snapshot of some of the more
+interesting optimisations that haven’t been mentioned in other contexts
+yet:
+
+- The GstVideoEncoder and GstVideoDecoder base classes now release the
+ STREAM_LOCK when pushing out buffers, which means (multi-threaded)
+ encoders and decoders can now receive and continue to process input
+ buffers whilst waiting for downstream elements in the pipeline to
+ process the buffer that was pushed out. This increases throughput
+ and reduces processing latency, also and especially for
+ hardware-accelerated encoder/decoder elements.
+
+- GstQueueArray has seen a few API additions
+ (gst_queue_array_peek_nth(), gst_queue_array_set_clear_func(),
+ gst_queue_array_clear()) so that it can be used in other places like
+ GstAdapter instead of a GList, which reduces allocations and
+ improves performance.
+
+- appsink now reuses the sample object in pull_sample() if possible
+
+- rtpsession only starts the RTCP thread when it’s actually needed now
+
+- udpsrc uses a buffer pool now and the GstUdpSrc object structure was
+ optimised for better cache performance
GstPlayer
-- this section will be filled in in due course
+- API was added to fine-tune the synchronisation offset between
+ subtitles and video
Miscellaneous changes
-- this section will be filled in in due course
+- As a result of moving to different FFmpeg APIs, encoder and decoder
+ elements exposed by the GStreamer FFmpeg wrapper plugin (gst-libav)
+ may have seen possibly incompatible changes to property names and/or
+ types, and not all properties exposed might be functional. We are
+ still reviewing the new properties and aim to minimise breaking
+ changes at least for the most commonly-used properties, so please
+ report any issues you run into!
OpenGL integration
-- this section will be filled in in due course
+- The OpenGL mixer elements have been moved from -bad to
+ gst-plugins-base (see above)
+
+- The Mesa GBM backend now supports headless mode
+
+- gloverlaycompositor: New OpenGL-based compositor element that
+ flattens any overlays from GstVideoOverlayCompositionMetas into the
+ video stream.
+
+- glalpha: New element that adds an alpha channel to a video stream.
+ The values of the alpha channel can either be set to a constant or
+ can be dynamically calculated via chroma keying. It is similar to
+ the existing alpha element but based on OpenGL. Calculations are
+ done in floating point so results may not be identical to the output
+ of the existing alpha element.
+
+- glupload: Implement direct dmabuf uploader, the idea being that some
+ GPUs (like the Vivante series) can actually perform the YUV->RGB
+ conversion internally, so no custom conversion shaders are needed.
+ To make use of this feature, we need an additional uploader that can
+ import DMABUF FDs and also directly pass the pixel format, relying
+ on the GPU to do the conversion.
Tracing framework and debugging improvements
-- this section will be filled in in due course
+- There is now a GDB PRETTY PRINTER FOR VARIOUS GSTREAMER TYPES: For
+ GstObject pointers the type and name is added, e.g.
+ 0x5555557e4110 [GstDecodeBin|decodebin0]. For GstMiniObject pointers
+ the object type is added, e.g. 0x7fffe001fc50 [GstBuffer]. For
+ GstClockTime and GstClockTimeDiff the time is also printed in human
+ readable form, e.g. 150116219955 [+0:02:30.116219955].
+
+- GDB EXTENSION WITH TWO CUSTOM GDB COMMANDS gst-dot AND gst-print:
+
+ - gst-dot creates dot files that a very close to what
+ GST_DEBUG_BIN_TO_DOT_FILE() produces, but object properties and
+ buffer contents such as codec-data in caps are not available.
+
+ - gst-print produces high-level information about a GStreamer
+ object. This is currently limited to pads for GstElements and
+ events for the pads. The output may look like this:
+
+ (gdb) gst-print pad.object.parent
+ GstMatroskaDemux (matroskademux0) {
+ SinkPad (sink, pull) {
+ }
+ SrcPad (video_0, push) {
+ events:
+ stream-start:
+ stream-id: 0463ccb080d00b8689bf569a435c4ff84f9ff753545318ae2328ea0763fd0bec/001:1274058367
+ caps: video/x-theora
+ width: 1920
+ height: 800
+ pixel-aspect-ratio: 1/1
+ framerate: 24/1
+ streamheader: < 0x5555557c7d30 [GstBuffer], 0x5555557c7e40 [GstBuffer], 0x7fffe00141d0 [GstBuffer] >
+ segment: time
+ rate: 1
+ tag: global
+ container-format: Matroska
+ }
+ SrcPad (audio_0, push) {
+ events:
+ stream-start:
+ stream-id: 0463ccb080d00b8689bf569a435c4ff84f9ff753545318ae2328ea0763fd0bec/002:1551204875
+ caps: audio/mpeg
+ mpegversion: 4
+ framed: true
+ stream-format: raw
+ codec_data: 0x7fffe0014500 [GstBuffer]
+ level: 2
+ base-profile: lc
+ profile: lc
+ channels: 2
+ rate: 44100
+ segment: time
+ rate: 1
+ tag: global
+ container-format: Matroska
+ tag: stream
+ audio-codec: MPEG-4 AAC audio
+ language-code: en
+ }
+ }
+
+- gst_structure_to_string() now serialises the actual value of
+ pointers when serialising GstStructures instead of claiming they’re
+ NULL. This makes debug logging in various places less confusing,
+ because it’s clear now that structure fields actually hold valid
+ objects. Such object pointer values will never be deserialised
+ however.
Tools
-- this section will be filled in in due course
+- gst-inspect-1.0 has coloured output now and will automatically use a
+ pager if the output does not fit on a page. This only works in a
+ unix environment and if the output is not piped. If you don’t like
+ the colours you can disable them by setting the
+ GST_INSPECT_NO_COLORS=1 environment variable or passing the
+ --no-colors command line option.
GStreamer RTSP server
-- this section will be filled in in due course
+- Improved backlog handling when using TCP interleaved for data
+ transport. Before there was a fixed maximum size for backlog
+ messages, which was prone to deadlocks and made it difficult to
+ control memory usage with the watch backlog. The RTSP server now
+ limits queued TCP data messages to one per stream, moving queuing of
+ the data into the pipeline and leaving the RTSP connection
+ responsive to RTSP messages in both directions, preventing all those
+ problems.
+
+- Initial ULP Forward Error Correction support in rtspclientsink and
+ for RECORD mode in the server.
+
+- API to explicitly enable retransmission requests (RTX)
+
+- Lots of multicast-related fixes
+
+- rtsp-auth: Add support for parsing .htdigest files
GStreamer VAAPI
GStreamer Python Bindings
-- this section will be filled in in due course
+- add binding for gst_pad_set_caps()
+- pygobject dependency requirement was bumped to >= 3.8
-Build and Dependencies
+- new audiotestsrc, audioplot, and mixer plugin examples, and a
+ dynamic pipeline example
-- this section will be filled in in due course
+GStreamer C# Bindings
+
+- bindings for the GstWebRTC library
+
+
+GStreamer Rust Bindings
+
+The GStreamer Rust bindings are now officially part of the GStreamer
+project and are also maintained in the GStreamer GitLab.
+
+The releases will generally not be synchronized with the releases of
+other GStreamer parts due to dependencies on other projects.
+
+Also unlike the other GStreamer libraries, the bindings will not commit
+to full API stability but instead will follow the approach that is
+generally taken by Rust projects, e.g.:
+
+1) 0.12.X will be completely API compatible with all other 0.12.Y
+ versions.
+2) 0.12.X+1 will contain bugfixes and compatible new feature additions.
+3) 0.13.0 will _not_ be backwards compatible with 0.12.X but projects
+ will be able to stay at 0.12.X without any problems as long as they
+ don’t need newer features.
+
+The current stable release is 0.12.2 and the next release series will be
+0.13, probably around March 2019.
+
+At this point the bindings cover most of GStreamer core (except for most
+notably GstAllocator and GstMemory), and most parts of the app, audio,
+base, check, editing-services, gl, net. pbutils, player, rtsp,
+rtsp-server, sdp, video and webrtc libraries.
+
+Also included is support for creating subclasses of the following types
+and writing GStreamer plugins:
-Platform-specific improvements
+- gst::Element
+- gst::Bin and gst::Pipeline
+- gst::URIHandler and gst::ChildProxy
+- gst::Pad, gst::GhostPad
+- gst_base::Aggregator and gst_base::AggregatorPad
+- gst_base::BaseSrc and gst_base::BaseSink
+- gst_base::BaseTransform
+
+Changes to 0.12.X since 0.12.0
+
+Fixed
+
+- PTP clock constructor actually creates a PTP instead of NTP clock
+
+Added
+
+- Bindings for GStreamer Editing Services
+- Bindings for GStreamer Check testing library
+- Bindings for the encoding profile API (encodebin)
+
+- VideoFrame, VideoInfo, AudioInfo, StructureRef implements Send and
+ Sync now
+- VideoFrame has a function to get the raw FFI pointer
+- From impls from the Error/Success enums to the combined enums like
+ FlowReturn
+- Bin-to-dot file functions were added to the Bin trait
+- gst_base::Adapter implements SendUnique now
+- More complete bindings for the gst_video::VideoOverlay interface,
+ especially
+ gst_video::is_video_overlay_prepare_window_handle_message()
+
+Changed
+
+- All references were updated from GitHub to freedesktop.org GitLab
+- Fix various links in the README.md
+- Link to the correct location for the documentation
+- Remove GitLab badge as that only works with gitlab.com currently
+
+Changes in git master for 0.13
+
+Fixed
+
+- gst::tag::Album is the album tag now instead of artist sortname
+
+Added
+
+- Subclassing infrastructure was moved directly into the bindings,
+ making the gst-plugin crate deprecated. This involves many API
+ changes but generally cleans up code and makes it more flexible.
+ Take a look at the gst-plugins-rs crate for various examples.
+
+- Bindings for CapsFeatures and Meta
+- Bindings for
+ ParentBufferMeta,VideoMetaandVideoOverlayCompositionMeta`
+- Bindings for VideoOverlayComposition and VideoOverlayRectangle
+- Bindings for VideoTimeCode
+
+- UniqueFlowCombiner and UniqueAdapter wrappers that make use of the
+ Rust compile-time mutability checks and expose more API in a safe
+ way, and as a side-effect implement Sync and Send now
+
+- More complete bindings for Allocation Query
+- pbutils functions for codec descriptions
+- TagList::iter() for iterating over all tags while getting a single
+ value per tag. The old ::iter_tag_list() function was renamed to
+ ::iter_generic() and still provides access to each value for a tag
+- Bus::iter() and Bus::iter_timed() iterators around the corresponding
+ ::pop*() functions
+
+- serde serialization of Value can also handle Buffer now
+
+- Extensive comments to all examples with explanations
+- Transmuxing example showing how to use typefind, multiqueue and
+ dynamic pads
+- basic-tutorial-12 was ported and added
+
+Changed
+
+- Rust 1.31 is the minimum supported Rust version now
+- Update to latest gir code generator and glib bindings
+
+- Functions returning e.g. gst::FlowReturn or other “combined” enums
+ were changed to return split enums like
+ Result<gst::FlowSuccess, gst::FlowError> to allow usage of the
+ standard Rust error handling.
+
+- MiniObject subclasses are now newtype wrappers around the underlying
+ GstRc<FooRef> wrapper. This does not change the API in any breaking
+ way for the current usages, but allows MiniObjects to also be
+ implemented in other crates and makes sure rustdoc places the
+ documentation in the right places.
+
+- BinExt extension trait was renamed to GstBinExt to prevent conflicts
+ with gtk::Bin if both are imported
+
+- Buffer::from_slice() can’t possible return None
+
+- Various clippy warnings
+
+
+GStreamer Rust Plugins
+
+Like the GStreamer Rust bindings, the Rust plugins are now officially
+part of the GStreamer project and are also maintained in the GStreamer
+GitLab.
+
+In the 0.3.x versions this contained infrastructure for writing
+GStreamer plugins in Rust, and a set of plugins.
+
+In git master that infrastructure was moved to the GLib and GStreamer
+bindings directly, together with many other improvements that were made
+possible by this, so the gst-plugins-rs repository only contains
+GStreamer elements now.
+
+Elements included are:
+
+- Tutorials plugin: identity, rgb2gray and sinesrc with extensive
+ comments
+
+- rsaudioecho, a port of the audiofx element
+
+- rsfilesrc, rsfilesink
+
+- rsflvdemux, a FLV demuxer. Not feature-equivalent with flvdemux yet
+
+- threadshare plugin: ts-appsrc, ts-proxysrc/sink, ts-queue, ts-udpsrc
+ and ts-tcpclientsrc elements that use a fixed number of threads and
+ share them between instances. For more background about these
+ elements see Sebastian’s talk “When adding more threads adds more
+ problems - Thread-sharing between elements in GStreamer” at the
+ GStreamer Conference 2017.
+
+- rshttpsrc, a HTTP source around the hyper/reqwest Rust libraries.
+ Not feature-equivalent with souphttpsrc yet.
+
+- togglerecord, an element that allows to start/stop recording at any
+ time and keeps all audio/video streams in sync.
+
+- mccparse and mccenc, parsers and encoders for the MCC closed caption
+ file format.
+
+Changes to 0.3.X since 0.3.0
+
+- All references were updated from GitHub to freedesktop.org GitLab
+- Fix various links in the README.md
+- Link to the correct location for the documentation
+
+Changes in git master for 0.4
+
+- togglerecord: Switch to parking_lot crate for mutexes/condition
+ variables for lower overhead
+- Merge threadshare plugin here
+- New closedcaption plugin with mccparse and mccenc elements
+- New identity element for the tutorials plugin
+
+- Register plugins statically in tests instead of relying on the
+ plugin loader to find the shared library in a specific place
+
+- Update to the latest API changes in the GLib and GStreamer bindings
+- Update to the latest versions of all crates
+
+
+Build and Dependencies
+
+- The MESON BUILD SYSTEM BUILD IS NOW FEATURE-COMPLETE (*) and it is
+ now the recommended build system on all platforms and also used by
+ Cerbero to build GStreamer on all platforms. The Autotools build is
+ scheduled to be removed in the next cycle. Developers who currently
+ use gst-uninstalled should move to gst-build. The build option
+ naming has been cleaned up and made consistent and there are now
+ feature options to enable/disable plugins and various other features
+ on a case-by-case basis. (*) with the exception of plugin docs which
+ will be handled differently in future
+
+- Symbol export in libraries is now controlled via explicit exports
+ using symbol visibility or export defines where supported, to ensure
+ consistency across all platforms. This also allows libraries to have
+ exports that vary based on detected platform features and configure
+ options as is the case with the GStreamer OpenGL integration library
+ for example. A few symbols that had been exported by accident in
+ earlier versions may no longer be exported. These symbols will not
+ have had declarations in any public header files then though and
+ would not have been usable.
+
+- The GStreamer FFmpeg wrapper plugin (gst-libav) now depends on
+ FFmpeg 4.x and uses the new FFmpeg 4.x API and stopped relying on
+ ancient API that was removed with the FFmpeg 4.x release. This means
+ that it is no longer possible to build this module against an older
+ system-provided FFmpeg 3.x version. Use the internal FFmpeg 4.x copy
+ instead if you build using autotools, or use gst-libav 1.14.x
+ instead which targets the FFmpeg 3.x API and _should_ work fine in
+ combination with a newer GStreamer. It’s difficult for us to support
+ both old and new FFmpeg APIs at the same time, apologies for any
+ inconvenience caused.
+
+- Hardware-accelerated Nvidia video encoder/decoder plugins nvdec and
+ nvenc can be built against CUDA Toolkit versions 9 and 10.0 now. The
+ dynlink interface has been dropped since it’s deprecated in 10.0.
+
+- The (optional) OpenCV requirement has been bumped to >= 3.0.0 and
+ the plugin can also be built against OpenCV 4.x now.
+
+- New sctp plugin based on usrsctp (for WebRTC data channels)
+
+
+Platform-specific changes and improvements
Android
-- this section will be filled in in due course
+- The way that GIO modules are named has changed due to upstream GLib
+ natively adding support for loading static GIO modules. This means
+ that any GStreamer application using gnutls for SSL/TLS on the
+ Android or iOS platforms (or any other setup using static libraries)
+ will fail to link looking for the g_io_module_gnutls_load_static()
+ function. The new function name is now
+ g_io_gnutls_load(gpointer data). data can be NULL for a static
+ library. Look at this commit for the necessary change in the
+ examples.
macOS and iOS
-- this section will be filled in in due course
+- macOS binaries should be fully relocatable now
+
+- The way that GIO modules are named has changed due to upstream GLib
+ natively adding support for loading static GIO modules. This means
+ that any GStreamer application using gnutls for SSL/TLS on the
+ Android or iOS platforms (or any other setup using static libraries)
+ will fail to link looking for the g_io_module_gnutls_load_static()
+ function. The new function name is now
+ g_io_gnutls_load(gpointer data). data can be NULL for a static
+ library. Look at this commit for the necessary change in the
+ examples.
Windows
-- this section will be filled in in due course
+- The webrtcdsp element is shipped again as part of the Windows binary
+ packages, the build system issue has been resolved.
+- ‘Inconsistent DLL linkage’ warnings when building with MSVC have
+ been fixed
-Contributors
+- Hardware-accelerated Nvidia video encoder/decoder plugins nvdec and
+ nvenc build on Windows now, also with MSVC and using Meson.
-- this section will be filled in in due course
+- The ksvideosrc camera capture plugin supports 16-bit grayscale video
+ now
+
+- The wasapisrc audio capture element implements loopback recording
+ from another output device or sink
-... and many others who have contributed bug reports, translations, sent
+- wasapisink recover from low buffer levels in shared mode and some
+ exclusive mode fixes
+
+- dshowsrc now implements the GstDeviceMonitor interface
+
+
+Contributors
+
+Aleix Conchillo Flaqué, Alessandro Decina, Alexandru Băluț, Alex Ashley,
+Alexey Chernov, Alicia Boya García, Amit Pandya, Andoni Morales
+Alastruey, Andreas Frisch, Andre McCurdy, Andy Green, Anthony Violo,
+Antoine Jacoutot, Antonio Ospite, Arun Raghavan, Aurelien Jarno,
+Aurélien Zanelli, ayaka, Bananahemic, Bastian Köcher, Branko Subasic,
+Brendan Shanks, Carlos Rafael Giani, Christoph Reiter, Corentin Noël,
+Daeseok Youn, Daniel Drake, Daniel Klamt, Dardo D Kleiner, David Ing,
+David Svensson Fors, Devarsh Thakkar, Dimitrios Katsaros, Edward Hervey,
+Emilio Pozuelo Monfort, Enrique Ocaña González, Ezequiel Garcia, Fabien
+Dessenne, Fabrizio Gennari, Florent Thiéry, Francisco Velazquez,
+Freyr666, Garima Gaur, Gary Bisson, George Kiagiadakis, Georg Lippitsch,
+Georg Ottinger, Geunsik Lim, Göran Jönsson, Guillaume Desmottes, H1Gdev,
+Haihao Xiang, Haihua Hu, Harshad Khedkar, Havard Graff, He Junyan,
+Hoonhee Lee, Hosang Lee, Hyunjun Ko, Ingo Randolf, Iñigo Huguet, James
+Stevenson, Jan Alexander Steffens, Jan Schmidt, Jerome Laheurte, Jimmy
+Ohn, Joakim Johansson, Jochen Henneberg, Johan Bjäreholt, John-Mark
+Bell, John Nikolaides, Jonathan Karlsson, Jonny Lamb, Jordan Petridis,
+Josep Torra, Joshua M. Doe, Jos van Egmond, Juan Navarro, Jun Xie,
+Junyan He, Justin Kim, Kai Kang, Kim Tae Soo, Kirill Marinushkin, Kyrylo
+Polezhaiev, Lars Petter Endresen, Linus Svensson, Louis-Francis
+Ratté-Boulianne, Luis de Bethencourt, Luz Paz, Lyon Wang, Maciej Wolny,
+Marc-André Lureau, Marc Leeman, Marcos Kintschner, Marian Mihailescu,
+Marinus Schraal, Mark Nauwelaerts, Marouen Ghodhbane, Martin Kelly,
+Matej Knopp, Mathieu Duponchelle, Matteo Valdina, Matthew Waters,
+Matthias Fend, memeka, Michael Drake, Michael Gruner, Michael Olbrich,
+Michael Tretter, Miguel Paris, Mike Wey, Mikhail Fludkov, Naveen
+Cherukuri, Nicola Murino, Nicolas Dufresne, Niels De Graef, Nirbheek
+Chauhan, Norbert Wesp, Ognyan Tonchev, Olivier Crête, Omar Akkila,
+Patricia Muscalu, Patrick Radizi, Patrik Nilsson, Paul Kocialkowski, Per
+Forlin, Peter Körner, Peter Seiderer, Petr Kulhavy, Philippe Normand,
+Philippe Renon, Philipp Zabel, Pierre Labastie, Roland Jon, Roman
+Sivriver, Rosen Penev, Russel Winder, Sam Gigliotti, Sean-Der, Sebastian
+Dröge, Seungha Yang, Sjoerd Simons, Snir Sheriber, Song Bing, Soon,
+Thean Siew, Sreerenj Balachandran, Stefan Ringel, Stephane Cerveau,
+Stian Selnes, Suhas Nayak, Takeshi Sato, Thiago Santos, Thibault
+Saunier, Thomas Bluemel, Tianhao Liu, Tim-Philipp Müller, Tomasz
+Andrzejak, Tomislav Tustonić, U. Artie Eoff, Ulf Olsson, Varunkumar
+Allagadapa, Víctor Guzmán, Víctor Manuel Jáquez Leal, Vincenzo Bono,
+Vineeth T M, Vivia Nikolaidou, Wang Fei, wangzq, Whoopie, Wim Taymans,
+Wind Yuan, Wonchul Lee, Xabier Rodriguez Calvar, Xavier Claessens,
+Haihao Xiang, Yacine Bandou, Yeongjin Jeong, Yuji Kuwabara, Zeeshan Ali,
+
+… and many others who have contributed bug reports, translations, sent
suggestions or helped testing.
1.16.0
-1.16.0 is scheduled to be released around September 2018.
+1.16.0 is scheduled to be released around January/February 2019.
Known Issues
-- The webrtcdsp element is currently not shipped as part of the
- Windows binary packages due to a build system issue.
+- possibly breaking/incompatible changes to properties of wrapped
+ FFmpeg decoders and encoders (see above).
+
+- The way that GIO modules are named has changed due to upstream GLib
+ natively adding support for loading static GIO modules. This means
+ that any GStreamer application using gnutls for SSL/TLS on the
+ Android or iOS platforms (or any other setup using static libraries)
+ will fail to link looking for the g_io_module_gnutls_load_static()
+ function. The new function name is now
+ g_io_gnutls_load(gpointer data). See Android/iOS sections above for
+ further details.
Schedule for 1.18
-Our next major feature release will be 1.16, and 1.15 will be the
-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.
+Our next major feature release will be 1.18, and 1.17 will be the
+unstable development version leading up to the stable 1.18 release. The
+development of 1.17/1.18 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 August 2017 followed by
-several 1.15 pre-releases and the new 1.16 stable release in September.
+The plan for the 1.18 development cycle is yet to be confirmed, but it
+is expected that feature freeze will be around July 2019 followed by
+several 1.17 pre-releases and the new 1.18 stable release in
+August/September.
-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.18 will be backwards-compatible to the stable 1.16, 1.14, 1.12, 1.10,
+1.8, 1.6, 1.4, 1.2 and 1.0 release series.
------------------------------------------------------------------------
-_These release notes have been prepared by Tim-Philipp Müller._
+_These release notes have been prepared by Tim-Philipp Müller with_
+_contributions from Sebastian Dröge._
_License: CC BY-SA 4.0_