=== release 1.13.90 === 2018-03-03 22:19:36 +0000 Tim-Philipp Müller * NEWS: * RELEASE: * configure.ac: * gst-plugins-good.doap: * meson.build: Release 1.13.90 2018-03-03 22:19:36 +0000 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/inspect/plugin-1394.xml: * docs/plugins/inspect/plugin-aasink.xml: * docs/plugins/inspect/plugin-alaw.xml: * docs/plugins/inspect/plugin-alpha.xml: * docs/plugins/inspect/plugin-alphacolor.xml: * docs/plugins/inspect/plugin-apetag.xml: * docs/plugins/inspect/plugin-audiofx.xml: * docs/plugins/inspect/plugin-audioparsers.xml: * docs/plugins/inspect/plugin-auparse.xml: * docs/plugins/inspect/plugin-autodetect.xml: * docs/plugins/inspect/plugin-avi.xml: * docs/plugins/inspect/plugin-cacasink.xml: * docs/plugins/inspect/plugin-cairo.xml: * docs/plugins/inspect/plugin-cutter.xml: * docs/plugins/inspect/plugin-debug.xml: * docs/plugins/inspect/plugin-deinterlace.xml: * docs/plugins/inspect/plugin-dtmf.xml: * docs/plugins/inspect/plugin-dv.xml: * docs/plugins/inspect/plugin-effectv.xml: * docs/plugins/inspect/plugin-equalizer.xml: * docs/plugins/inspect/plugin-flac.xml: * docs/plugins/inspect/plugin-flv.xml: * docs/plugins/inspect/plugin-flxdec.xml: * docs/plugins/inspect/plugin-gdkpixbuf.xml: * docs/plugins/inspect/plugin-goom.xml: * docs/plugins/inspect/plugin-goom2k1.xml: * docs/plugins/inspect/plugin-gtk.xml: * docs/plugins/inspect/plugin-icydemux.xml: * docs/plugins/inspect/plugin-id3demux.xml: * docs/plugins/inspect/plugin-imagefreeze.xml: * docs/plugins/inspect/plugin-interleave.xml: * docs/plugins/inspect/plugin-isomp4.xml: * docs/plugins/inspect/plugin-jack.xml: * docs/plugins/inspect/plugin-jpeg.xml: * docs/plugins/inspect/plugin-lame.xml: * docs/plugins/inspect/plugin-level.xml: * docs/plugins/inspect/plugin-matroska.xml: * docs/plugins/inspect/plugin-mpg123.xml: * docs/plugins/inspect/plugin-mulaw.xml: * docs/plugins/inspect/plugin-multifile.xml: * docs/plugins/inspect/plugin-multipart.xml: * docs/plugins/inspect/plugin-navigationtest.xml: * docs/plugins/inspect/plugin-oss4.xml: * docs/plugins/inspect/plugin-ossaudio.xml: * docs/plugins/inspect/plugin-png.xml: * docs/plugins/inspect/plugin-pulseaudio.xml: * docs/plugins/inspect/plugin-qmlgl.xml: * docs/plugins/inspect/plugin-replaygain.xml: * docs/plugins/inspect/plugin-rtp.xml: * docs/plugins/inspect/plugin-rtpmanager.xml: * docs/plugins/inspect/plugin-rtsp.xml: * docs/plugins/inspect/plugin-shapewipe.xml: * docs/plugins/inspect/plugin-shout2.xml: * docs/plugins/inspect/plugin-smpte.xml: * docs/plugins/inspect/plugin-soup.xml: * docs/plugins/inspect/plugin-spectrum.xml: * docs/plugins/inspect/plugin-speex.xml: * docs/plugins/inspect/plugin-taglib.xml: * docs/plugins/inspect/plugin-twolame.xml: * docs/plugins/inspect/plugin-udp.xml: * docs/plugins/inspect/plugin-video4linux2.xml: * docs/plugins/inspect/plugin-videobox.xml: * docs/plugins/inspect/plugin-videocrop.xml: * docs/plugins/inspect/plugin-videofilter.xml: * docs/plugins/inspect/plugin-videomixer.xml: * docs/plugins/inspect/plugin-vpx.xml: * docs/plugins/inspect/plugin-wavenc.xml: * docs/plugins/inspect/plugin-wavpack.xml: * docs/plugins/inspect/plugin-wavparse.xml: * docs/plugins/inspect/plugin-ximagesrc.xml: * docs/plugins/inspect/plugin-y4menc.xml: Update docs 2018-03-01 18:24:33 -0500 Olivier Crête * gst/flv/gstflvmux.c: * tests/check/elements/flvmux.c: flvmux: Duration & unit tests The muxed buffers will not carry the duration of the incoming buffers. https://bugzilla.gnome.org/show_bug.cgi?id=793457 2018-03-01 17:15:02 -0500 Olivier Crête * gst/flv/gstflvmux.c: flvmux: Set PTS based on running time https://bugzilla.gnome.org/show_bug.cgi?id=793457 2018-03-01 18:13:20 +0200 Sebastian Dröge * gst/rtsp/gstrtspsrc.c: rtspsrc: Ignore sendonly/recvonly attributes unless a backchannel is configured This works around a bug in various ONVIF cameras that implement the attributes the wrong way around. They still won't work with a backchannel but at least normal playback will work for the time being. It restores pre-1.14 behaviour where we would fail to preroll on any SDP that lists a recvonly stream. For 1.16 a better solution should be found. The problem here is that the ONVIF spec has the meaning of the two attributes the wrong way around in the examples, compared to RFC4566. https://bugzilla.gnome.org/show_bug.cgi?id=793715 2018-03-01 18:16:24 +0100 Mathieu Duponchelle * meson.build: meson: enable more warnings https://bugzilla.gnome.org/show_bug.cgi?id=793961 2018-03-01 00:34:20 +0100 Mathieu Duponchelle * gst/flv/gstflvmux.c: Port to latest GstAggregator segment API The aggregator segment is now exposed on the src pad https://bugzilla.gnome.org/show_bug.cgi?id=793945 2018-03-01 15:34:13 +0530 Nirbheek Chauhan * sys/directsound/gstdirectsoundplugin.c: directsoundsink: Downgrade rank to match directsoundsrc in -bad As stated in commit c2956036b8da4b8f22a63a4f5a254be03e870aa6 in -bad, the wasapi elements are now better than directsound, and should be preferred if they are available. For a later release, once the elements have more testing, we can consider moving them to -good. 2018-02-28 19:21:53 +0200 Sebastian Dröge * gst/matroska/matroska-mux.c: matroskamux: Only mark new clusters as keyframe if they start on a keyframe or we're muxing only audio Based on a patch by Nicola Murino https://bugzilla.gnome.org/show_bug.cgi?id=792775 2018-02-28 19:19:10 +0200 Sebastian Dröge * gst/matroska/matroska-mux.c: matroskamux: Clip maximum cluster duration to the maximum possible value Only up to timescale * G_MAXINT16 is possible as cluster duration, which is already higher than our default value. Using higher values would cause overflows and broken files. Based on the investigation by Nicola Murino https://bugzilla.gnome.org/show_bug.cgi?id=792775 2018-02-26 13:03:59 +0200 Sebastian Dröge * gst/matroska/matroska-mux.c: matroska-mux: Refuse caps changes after starting to write headers Matroska does not support changing the stream type and stream properties after the headers were started to be written, and for example H264 codec_data changes can't be supported. https://bugzilla.gnome.org/show_bug.cgi?id=782949 2018-02-27 16:33:53 +0100 Mathieu Duponchelle * tests/check/elements/rtpred.c: tests: fix redenc tests The default of the allow-no-red-blocks property was changed in a previous commit, thus breaking the test assumptions 2018-02-27 13:13:49 +0000 Tim-Philipp Müller * gst/rtp/rtpulpfeccommon.c: rtp: fix another debug log printf format warning on 32-bit systems rtpulpfeccommon.c:432:27: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 10 has type ‘guint64 {aka long long unsigned int}’ https://bugzilla.gnome.org/show_bug.cgi?id=793732 2018-02-26 17:02:52 +0100 Mathieu Duponchelle * gst/rtpmanager/gstrtpptdemux.c: rtpptdemux: provide example usage for ignored-payload-types 2018-02-26 16:53:08 +0100 Mathieu Duponchelle * gst/rtpmanager/gstrtpbin.c: * gst/rtpmanager/gstrtpptdemux.c: rtpbin, rtpptdemux: Add missing Since markers 2018-02-26 15:57:28 +0100 Mathieu Duponchelle * gst/rtp/gstrtpreddec.c: * gst/rtp/gstrtpredenc.c: * gst/rtp/gstrtpstorage.c: * gst/rtp/gstrtpulpfecdec.c: * gst/rtp/gstrtpulpfecenc.c: * gst/rtp/gstrtpulpfecenc.h: FEC elements: document, remove irrelevant properties The ulpfecenc "mux-seq" and "ssrc" properties were initially added because the element did more than implement ULPFEC. As it was decided that FLEXFEC would be implemented in a separate element, both properties are now unneeded and confusing. Change the default for the ulpfecenc multi-packet property, as it is expected that most users of this element will be protecting video streams. Change the default property for the rtpredenc allow-no-red-blocks property, as it should also be its default mode of operation. https://bugzilla.gnome.org/show_bug.cgi?id=793843 2018-02-24 20:05:05 +0100 Mathieu Duponchelle * gst/rtp/gstrtpgstdepay.c: rtpgstdepay: do not warn when caps were not yet received It is expected that when connecting to a stream that has already started, the caps will only arrive at the interval specified on rtpgstpay, we shouldn't be warning as this is a normal mode of operation. https://bugzilla.gnome.org/show_bug.cgi?id=793798 2018-02-22 21:53:40 +0100 Arnaud Bonatti * gst/rtp/gstrtpulpfecdec.c: rtpulpfec: fix debug log printf format warning on 32-bit platforms https://bugzilla.gnome.org/show_bug.cgi?id=793732 2018-02-22 14:58:12 +0000 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * 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-rtp.xml: * gst/rtp/gstrtpreddec.c: * gst/rtp/gstrtpredenc.c: * gst/rtp/gstrtpstorage.c: * gst/rtp/gstrtpulpfecdec.c: * gst/rtp/gstrtpulpfecenc.c: docs: hook up new RTP FEC elements https://bugzilla.gnome.org/show_bug.cgi?id=792696 2018-02-22 14:57:58 +0000 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/gst-plugins-good-plugins.args: * 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: docs: update for git master 2018-02-22 10:54:02 +0000 Tim-Philipp Müller * .gitignore: * tests/check/elements/.gitignore: .gitignore more test binaries 2018-02-21 20:46:10 +0000 Tim-Philipp Müller * tests/check/Makefile.am: tests: also dist new fec test header file 2018-02-21 20:44:26 +0000 Tim-Philipp Müller * gst/rtp/Makefile.am: rtp: dist new header files Fixes make distcheck 2018-02-21 18:52:44 +0000 Tim-Philipp Müller * gst/rtp/gstrtpreddec.c: * gst/rtp/gstrtpstorage.c: * gst/rtp/gstrtpulpfecdec.c: * gst/rtp/gstrtpulpfecenc.c: * gst/rtp/rtpulpfeccommon.c: * gst/rtp/rtpulpfeccommon.h: rtp: fec: fix build with gstreamer debug log system disabled 2018-02-21 19:59:04 +0100 Mathieu Duponchelle * gst/rtpmanager/gstrtpptdemux.c: rtpptdemux: do no assume sink caps are non NULL 2018-02-21 18:51:17 +0100 Mathieu Duponchelle * tests/check/Makefile.am: check: Fix ulpfec test build The test name was updated but not the build definition 2017-11-28 06:02:05 +0100 Mathieu Duponchelle * gst/rtpmanager/gstrtpbin.c: * gst/rtpmanager/gstrtpbin.h: rtpbin: Expose FEC support signals Also slightly refactor complete_session_src https://bugzilla.gnome.org/show_bug.cgi?id=792696 2017-11-17 03:52:03 +0100 Mikhail Fludkov * gst/rtp/Makefile.am: * gst/rtp/gstrtp.c: * gst/rtp/gstrtpreddec.c: * gst/rtp/gstrtpreddec.h: * gst/rtp/gstrtpredenc.c: * gst/rtp/gstrtpredenc.h: * gst/rtp/gstrtpstorage.c: * gst/rtp/gstrtpstorage.h: * gst/rtp/gstrtpulpfecdec.c: * gst/rtp/gstrtpulpfecdec.h: * gst/rtp/gstrtpulpfecenc.c: * gst/rtp/gstrtpulpfecenc.h: * gst/rtp/meson.build: * gst/rtp/rtpredcommon.c: * gst/rtp/rtpredcommon.h: * gst/rtp/rtpstorage.c: * gst/rtp/rtpstorage.h: * gst/rtp/rtpstoragestream.c: * gst/rtp/rtpstoragestream.h: * gst/rtp/rtpulpfeccommon.c: * gst/rtp/rtpulpfeccommon.h: * tests/check/Makefile.am: * tests/check/elements/packets.h: * tests/check/elements/rtpred.c: * tests/check/elements/rtpstorage.c: * tests/check/elements/rtpulpfec.c: * tests/check/meson.build: rtp: Implement ULPFEC (RFC 5109) We expose a set of new elements: * ULPFEC encoder / decoder * A storage element, which should be placed before jitterbuffers, and is used to store packets in order to attempt reconstruction after the jitterbuffer has sent PacketLost events * RED encoder / decoder (RFC 2198), these are necessary to use FEC in webrtc, as browsers will propose and expect ulpfec packets to be wrapped in red packets With contributions from: Mathieu Duponchelle Sebastian Dröge https://bugzilla.gnome.org/show_bug.cgi?id=792696 2017-11-28 01:11:54 +0100 Mathieu Duponchelle * gst/rtpmanager/gstrtpptdemux.c: * gst/rtpmanager/gstrtpptdemux.h: rtpptdemux: Add ignored-payload-types property Packets with these payload types will be dropped. A use case for this is FEC, where we want FEC packets to go through the jitterbuffer, but not be output by rtpbin. https://bugzilla.gnome.org/show_bug.cgi?id=792696 2017-11-20 18:08:38 +0100 Mathieu Duponchelle * gst/rtpmanager/gstrtpptdemux.c: rtpptdemux: Add ssrc to output caps It may be useful downstream https://bugzilla.gnome.org/show_bug.cgi?id=792696 2018-02-21 11:12:10 +0100 Arnaud Bonatti * ext/gtk/gstgtkbasesink.c: gtk: fix compiler warning with recent glib https://bugzilla.gnome.org/show_bug.cgi?id=793688 2018-02-21 11:35:33 +1100 Matthew Waters * ext/qt/gstqtglutility.cc: qt: don't use libEGL functions when we don't link to libEGL Use the provided wrapper available from libgstgl. https://bugzilla.gnome.org/show_bug.cgi?id=793547 2018-02-18 21:38:13 +0100 Sebastian Dröge * gst/monoscope/gstmonoscope.c: * gst/monoscope/gstmonoscope.h: monoscope: Forward the SEGMENT event from the chain function Otherwise we'll break the event order and forward the SEGMENT event before sending a CAPS event. 2018-02-16 12:25:29 +0000 James Stevenson * gst/rtsp/gstrtspsrc.c: rtspsrc: Fix missing read property of backchannel Add missing read property code for backchannel https://bugzilla.gnome.org/show_bug.cgi?id=793507 2018-02-16 09:42:59 +0000 Tim-Philipp Müller * tests/examples/rtsp/meson.build: examples: rtsp: fix meson build take 2 2018-02-16 11:30:01 +0200 Sebastian Dröge * tests/examples/rtsp/meson.build: rtsp: Fix meson.build of the example 2018-01-26 16:33:21 +0200 Sebastian Dröge * gst/rtsp/gstrtspsrc.c: rtspsrc: Implement ONVIF backchannel support via TCP 2017-10-13 18:05:54 +0300 Nirbheek Chauhan * configure.ac: * gst/rtsp/gstrtspsrc.c: * gst/rtsp/gstrtspsrc.h: * tests/examples/Makefile.am: * tests/examples/meson.build: * tests/examples/rtsp/Makefile.am: * tests/examples/rtsp/meson.build: * tests/examples/rtsp/test-onvif.c: rtspsrc: Implement ONVIF backchannel support Set backchannel=onvif to enable, and use the 'push-backchannel-sample' action signal with the correct stream id. 2018-02-16 01:49:57 +1100 Jan Schmidt * gst/multifile/gstsplitmuxsrc.c: * gst/multifile/gstsplitmuxsrc.h: splitmuxsrc: Improve not-linked handling. Don't report not-linked unless all pads have returned not-linked. 2018-02-15 19:44:19 +0000 Tim-Philipp Müller * configure.ac: * 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.13.1 === 2018-02-15 17:06:10 +0000 Tim-Philipp Müller * NEWS: * configure.ac: * gst-plugins-good.doap: * meson.build: Release 1.13.1 2018-02-15 17:05:23 +0000 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/inspect/plugin-1394.xml: * docs/plugins/inspect/plugin-aasink.xml: * docs/plugins/inspect/plugin-alaw.xml: * docs/plugins/inspect/plugin-alpha.xml: * docs/plugins/inspect/plugin-alphacolor.xml: * docs/plugins/inspect/plugin-apetag.xml: * docs/plugins/inspect/plugin-audiofx.xml: * docs/plugins/inspect/plugin-audioparsers.xml: * docs/plugins/inspect/plugin-auparse.xml: * docs/plugins/inspect/plugin-autodetect.xml: * docs/plugins/inspect/plugin-avi.xml: * docs/plugins/inspect/plugin-cacasink.xml: * docs/plugins/inspect/plugin-cairo.xml: * docs/plugins/inspect/plugin-cutter.xml: * docs/plugins/inspect/plugin-debug.xml: * docs/plugins/inspect/plugin-deinterlace.xml: * docs/plugins/inspect/plugin-dtmf.xml: * docs/plugins/inspect/plugin-dv.xml: * docs/plugins/inspect/plugin-effectv.xml: * docs/plugins/inspect/plugin-equalizer.xml: * docs/plugins/inspect/plugin-flac.xml: * docs/plugins/inspect/plugin-flv.xml: * docs/plugins/inspect/plugin-flxdec.xml: * docs/plugins/inspect/plugin-gdkpixbuf.xml: * docs/plugins/inspect/plugin-goom.xml: * docs/plugins/inspect/plugin-goom2k1.xml: * docs/plugins/inspect/plugin-gtk.xml: * docs/plugins/inspect/plugin-icydemux.xml: * docs/plugins/inspect/plugin-id3demux.xml: * docs/plugins/inspect/plugin-imagefreeze.xml: * docs/plugins/inspect/plugin-interleave.xml: * docs/plugins/inspect/plugin-isomp4.xml: * docs/plugins/inspect/plugin-jack.xml: * docs/plugins/inspect/plugin-jpeg.xml: * docs/plugins/inspect/plugin-lame.xml: * docs/plugins/inspect/plugin-level.xml: * docs/plugins/inspect/plugin-matroska.xml: * docs/plugins/inspect/plugin-mpg123.xml: * docs/plugins/inspect/plugin-mulaw.xml: * docs/plugins/inspect/plugin-multifile.xml: * docs/plugins/inspect/plugin-multipart.xml: * docs/plugins/inspect/plugin-navigationtest.xml: * docs/plugins/inspect/plugin-oss4.xml: * docs/plugins/inspect/plugin-ossaudio.xml: * docs/plugins/inspect/plugin-png.xml: * docs/plugins/inspect/plugin-pulseaudio.xml: * docs/plugins/inspect/plugin-qmlgl.xml: * docs/plugins/inspect/plugin-replaygain.xml: * docs/plugins/inspect/plugin-rtp.xml: * docs/plugins/inspect/plugin-rtpmanager.xml: * docs/plugins/inspect/plugin-rtsp.xml: * docs/plugins/inspect/plugin-shapewipe.xml: * docs/plugins/inspect/plugin-shout2.xml: * docs/plugins/inspect/plugin-smpte.xml: * docs/plugins/inspect/plugin-soup.xml: * docs/plugins/inspect/plugin-spectrum.xml: * docs/plugins/inspect/plugin-speex.xml: * docs/plugins/inspect/plugin-taglib.xml: * docs/plugins/inspect/plugin-twolame.xml: * docs/plugins/inspect/plugin-udp.xml: * docs/plugins/inspect/plugin-video4linux2.xml: * docs/plugins/inspect/plugin-videobox.xml: * docs/plugins/inspect/plugin-videocrop.xml: * docs/plugins/inspect/plugin-videofilter.xml: * docs/plugins/inspect/plugin-videomixer.xml: * docs/plugins/inspect/plugin-vpx.xml: * docs/plugins/inspect/plugin-wavenc.xml: * docs/plugins/inspect/plugin-wavpack.xml: * docs/plugins/inspect/plugin-wavparse.xml: * docs/plugins/inspect/plugin-ximagesrc.xml: * docs/plugins/inspect/plugin-y4menc.xml: docs: update plugin docs 2018-02-15 13:32:20 +0000 Tim-Philipp Müller * po/bg.po: * po/cs.po: * po/da.po: * po/de.po: * po/el.po: * po/fr.po: * po/hr.po: * po/hu.po: * po/nb.po: * po/nl.po: * po/pl.po: * po/ru.po: * po/sr.po: * po/sv.po: * po/tr.po: * po/uk.po: * po/vi.po: * po/zh_CN.po: po: update translations 2018-02-14 16:38:07 +0100 Patrick Radizi * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: allow timestamps to move backwards The original solution for #784002 incorrectly assumed that timestamps may not move backwards and changed timestamps that did so. https://bugzilla.gnome.org/show_bug.cgi?id=784002 2018-02-15 00:58:38 +0000 Tim-Philipp Müller * ext/lame/gstlamemp3enc.c: * gst/flv/gstindex.c: * sys/v4l2/gstv4l2src.c: docs: remove pointless Since: 0.10.x markers 2017-09-27 16:01:35 +0200 Alban Bedel * gst/rtp/gstrtpvorbisdepay.c: rtpvorbisdepay: fix unbounded memory usage All received configurations are parsed and added to a list, this lead to an unbounded memory usage. As the configuration is resent every second this quickly lead to a large memory usage. Add a check to only add the config if it is not already available in the list. This fix only handle the typical case of a well behaved stream, a malicious server could still send many useless configurations to raise the client memory usage. 2018-02-12 18:41:41 +0000 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/gst-plugins-good-plugins.hierarchy: * docs/plugins/inspect/plugin-qmlgl.xml: docs: add qt plugin https://bugzilla.gnome.org/show_bug.cgi?id=754094 2018-02-12 18:34:16 +0000 Tim-Philipp Müller * configure.ac: * ext/Makefile.am: * ext/meson.build: * tests/examples/meson.build: qt: hook up to build https://bugzilla.gnome.org/show_bug.cgi?id=754094 2018-02-12 18:13:17 +0000 Tim-Philipp Müller Move qt plugin from -bad https://bugzilla.gnome.org/show_bug.cgi?id=754094 2018-02-12 15:44:35 +0000 Tim-Philipp Müller * configure.ac: configure: fix build with --disable-external 2018-02-10 20:31:49 +0000 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/inspect/plugin-gtk.xml: docs: add moved gtk plugin to docs 2018-02-10 20:28:46 +0000 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/gst-plugins-good-plugins.hierarchy: * docs/plugins/gst-plugins-good-plugins.interfaces: * docs/plugins/gst-plugins-good-plugins.prerequisites: * docs/plugins/inspect/plugin-deinterlace.xml: docs: update for git master 2018-02-12 11:02:12 +0000 Tim-Philipp Müller * ext/gtk/meson.build: * ext/meson.build: * meson.build: * tests/examples/meson.build: gtk: hook up to meson build 2018-02-10 13:20:43 +0000 Tim-Philipp Müller * configure.ac: * ext/Makefile.am: * ext/gtk/Makefile.am: * tests/examples/Makefile.am: * tests/examples/gtk/.gitignore: * tests/examples/gtk/Makefile.am: gtk: hook up to autotools build 2018-02-10 12:49:36 +0000 Tim-Philipp Müller Move gtk plugin from -bad https://bugzilla.gnome.org/show_bug.cgi?id=754094 2018-02-09 11:26:56 +0100 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Fix comment typo in previous commit 2018-02-09 11:20:38 +0100 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: More 'meta' atom parsing fixes Turns out everybody is doing it their own way, so peek into the meta atom itself to figure out which spec it is following 2018-02-02 13:51:49 +0200 Sebastian Dröge * gst/isomp4/atoms.c: * gst/isomp4/atoms.h: * gst/isomp4/gstqtmux.c: qtmux: Add support for muxing svmi atom for stereoscopic video information https://bugzilla.gnome.org/show_bug.cgi?id=793120 2018-02-09 08:59:56 +0100 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Minor cleanup Just move variables to the blocks where they are used. That function is massive, could do with some splitting up for readability :( 2018-02-09 08:54:05 +0100 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Cope with difference between QTFF and ISO BMFF specs The 'meta' atom is defined differently in QTFF and BMFF, so try to guess which spec the current stream applies to by looking at the major file type. 2018-02-09 08:35:52 +0100 Edward Hervey * gst/isomp4/qtdemux_dump.c: isomp4: Make 'hdlr' atom dump more flexible The smallest possible is 24 (and not 25) bytes. The last "name" field can according to QTFF specifications not be present at all. The parser will handle this fine and so will the rest of the qtdemux code. 2018-02-09 08:35:25 +0100 Edward Hervey * gst/audiofx/audiopanoramaorc-dist.c: * gst/deinterlace/tvtime-dist.c: * gst/videobox/gstvideoboxorc-dist.c: * gst/videomixer/videomixerorc-dist.c: Update ORC files 2018-02-08 19:09:45 +0000 Tim-Philipp Müller * meson.build: meson: make version numbers ints and fix int/string comparison WARNING: Trying to compare values of different types (str, int). The result of this is undefined and will become a hard error in a future Meson release. 2017-10-01 18:21:26 +0200 Jérôme Laheurte * sys/osxvideo/cocoawindow.m: * sys/osxvideo/osxvideosink.m: osxvideosink: fix build on macOS versions < 12.0 Use value instead of version macro when testing for mac OS version, since the define for the newer version may not be defined when compiling against older versions. https://bugzilla.gnome.org/show_bug.cgi?id=788402 2018-02-07 20:15:00 +1100 Matthew Waters * ext/qt/gstqtglutility.cc: qt: don't #include platform specific gstglcontext_*.h headers They aren't public headers 2018-02-04 11:47:05 +0100 Tim-Philipp Müller * configure.ac: * tests/check/Makefile.am: autotools: use -fno-strict-aliasing where supported https://bugzilla.gnome.org/show_bug.cgi?id=769183 2017-12-04 20:12:40 +0900 Justin Kim * gst/isomp4/gstqtmux.c: * gst/multifile/gstsplitmuxsink.c: qtmux: send stream warning when refusing video caps If codec_data is changed, the stream is no longer valid. Rather than keeping running when refusing new caps, this patch send a warning to the bus. Also fix up splitmuxsink to ignore this warning while changing caps. https://bugzilla.gnome.org/show_bug.cgi?id=790000 2017-11-29 21:30:11 +0900 Justin Kim * gst/rtp/gstrtph264depay.c: rtph264depay: update output caps regardless format `codec_data` should be transfered if any information of SPS/PPS is changed. https://bugzilla.gnome.org/show_bug.cgi?id=790000 2018-01-31 19:11:16 +0100 Edward Hervey * gst/isomp4/qtdemux_dump.c: * gst/isomp4/qtdemux_dump.h: * gst/isomp4/qtdemux_types.c: isomp4: Add gmhd/gmin debugging * gmhd is a container, mark it as such so we can see/dump what is contained within * Add dumping for the Base Media Information atom (gmin) 2015-09-23 10:01:32 +0200 Matthieu Crapet * ext/jpeg/gstjpegenc.c: * ext/jpeg/gstjpegenc.h: jpegenc: add snapshot property Like pngenc, automatically send an EOS message. Example of bin: appsrc ! jpegenc snapshot=true ! filesink location=out.jpg This is especially useful for limited/slow hardware. Otherwise calling gst_video_convert_sample() is a better option (internally uses videoconvert and videoscale). https://bugzilla.gnome.org/show_bug.cgi?id=755453 2018-01-31 15:02:50 +0000 Philippe Normand * gst/interleave/interleave.c: interleave: fix memory leak of GAP buffers https://bugzilla.gnome.org/show_bug.cgi?id=793067 2018-01-31 11:38:35 +0100 Edward Hervey * gst/isomp4/qtdemux_dump.c: qtdemux_dump: Demote verbose logging to TRACE level 2018-01-31 11:22:23 +0100 Edward Hervey * gst/isomp4/qtdemux_dump.c: qtdemux: Re-enable full debug logging of stsz entries No idea why it was disabled (was the case since 2007) 2018-01-30 20:34:32 +0000 Tim-Philipp Müller * ext/taglib/meson.build: * meson.build: meson: use -fno-strict-aliasing where supported https://bugzilla.gnome.org/show_bug.cgi?id=769183 2017-12-12 00:14:02 +0900 Seungha Yang * gst/isomp4/qtdemux.h: qtdemux: Remove white space at end of line https://bugzilla.gnome.org/show_bug.cgi?id=791483 2017-12-12 00:11:24 +0900 Seungha Yang * gst/isomp4/Makefile.am: * gst/isomp4/gstisoff.c: * gst/isomp4/qtdemux.c: * gst/isomp4/qtdemux.h: * gst/isomp4/qtdemux_debug.h: * gst/isomp4/qtdemux_dump.c: * gst/isomp4/qtdemux_lang.c: * gst/isomp4/qtdemux_types.c: qtdemux: Apply qtdemux debug category to gstisoff .. instead of the use of default debug category. And, make new header to declare the debug category https://bugzilla.gnome.org/show_bug.cgi?id=791483 2018-01-25 00:46:57 +0000 Tim-Philipp Müller * gst/multifile/gstsplitmuxsrc.c: splitmuxsrc: properly set total duration on outgoing segment We would accidentally pass through the duration value from the demuxer from a single fragment, which causes problems when feeding the stream from splitmuxsrc to rtsp-server. Streaming would stop after one fragment due to that. https://bugzilla.gnome.org/show_bug.cgi?id=792861 2018-01-25 00:42:52 +0000 Tim-Philipp Müller * gst/multifile/gstsplitmuxsrc.c: splitmuxsrc: don't respond to duration query with CLOCK_TIME_NONE total_duration is initialised to CLOCK_TIME_NONE, not 0, so check for that as well in order not to return an invalid duration to a duration query. Doesn't fix anything particular observed in practice, just seemed inconsistent. 2018-01-25 20:48:42 +0100 Alicia Boya García * gst/isomp4/qtdemux.c: qtdemux: Add more prose to the comment of gst_qtdemux_find_sample() https://bugzilla.gnome.org/show_bug.cgi?id=792910 2011-02-09 12:48:00 +0000 Oleksij Rempel * ext/vpx/gstvpxdec.c: vpx: add VP8_DEBUG_TXT_* flags for postprocessing https://bugzilla.gnome.org/show_bug.cgi?id=641399 2018-01-25 21:22:10 +0200 Sebastian Dröge * sys/directsound/gstdirectsoundsink.h: directsoundsink: Add missing \ in multi-line #define 2018-01-22 15:07:38 +0200 Sebastian Dröge * sys/directsound/Makefile.am: * sys/directsound/gstdirectsounddevice.c: * sys/directsound/gstdirectsounddevice.h: * sys/directsound/gstdirectsoundplugin.c: * sys/directsound/gstdirectsoundsink.c: * sys/directsound/gstdirectsoundsink.h: directsoundsink: Add support for a DeviceProvider https://bugzilla.gnome.org/show_bug.cgi?id=792782 2018-01-23 18:37:09 +0000 Tim-Philipp Müller * gst/multifile/gstmultifilesrc.c: multifilesrc: fix up uri handler a little Fix path escaping when creating URI from location in get_uri(). Return FALSE with an error when URI can't be parsed in set_uri(). https://bugzilla.gnome.org/show_bug.cgi?id=783581 2017-06-15 13:37:28 +0200 Dimitrios Katsaros * gst/multifile/gstmultifilesrc.c: multifilesrc: implement uri handler With this patch we can now provide a set of files created by multifilesink as a source for uri elements. e.g. gst-launch-1.0 playbin uri=multifile://img%25d.ppm Note that for the %d pattern you need to replace % with %25. This is to be compliant with URL naming standards. https://bugzilla.gnome.org/show_bug.cgi?id=783581 2018-01-19 15:05:26 +0200 Vivia Nikolaidou * gst/isomp4/atoms.c: * gst/isomp4/atoms.h: * gst/isomp4/gstqtmux.c: qtmux: Make sure timecode uses the same timescale as video Don't blindly derive it from the frame rate, but try to get the per-pad configured timescale first (if it exists) https://bugzilla.gnome.org/show_bug.cgi?id=792680 2018-01-18 18:36:27 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Allow configuring trak timescale per pad/trak It generally makes not much sense to configure it for all pads/traks at once as this value is usually different for each of them. As such, add a new property on the pads in addition to the existing property on the whole muxer. https://bugzilla.gnome.org/show_bug.cgi?id=792649 2018-01-23 09:46:32 +0000 Tim-Philipp Müller * gst/flv/gstflvmux.c: Update for renamed aggregator pad API https://bugzilla.gnome.org/show_bug.cgi?id=791204 2018-01-22 12:24:18 +0200 Sebastian Dröge * gst/rtsp/gstrtspsrc.c: rtspsrc: Fix up sendonly/recvonly attribute handling We can't handle recvonly streams, sendonly streams are perfectly fine. The direction is the one from the point of view of the SDP offerer (i.e. the RTSP server), and a recvonly stream would be one where the server expects us to send media. RFC 3264, section 5.1: If the offerer wishes to only send media on a stream to its peer, it MUST mark the stream as sendonly with the "a=sendonly" attribute. This is mixed up in the ONVIF streaming specification examples, but actual implementations and conformance tools seem to not care at all about the attributes. https://bugzilla.gnome.org/show_bug.cgi?id=792376 2017-11-11 13:49:22 +0900 paul.kim * ext/soup/gstsouphttpsrc.c: souphttpsrc: Reset retry_count to 0 when GST_FLOW_FLUSHING If a lot of seek method is called very quickly, sometimes data reading and do_request occurs while seek flush event is occurring and error occurs because retry_count reaches to the max. Thus, reset retry_count if flush occurs after do_request and read_buffer. https://bugzilla.gnome.org/show_bug.cgi?id=790199 2018-01-18 15:09:04 +0100 Jan Alexander Steffens (heftig) * tests/check/elements/aacparse.c: tests: aacparser: Test that short raw frames don't get concatenated https://bugzilla.gnome.org/show_bug.cgi?id=792644 2018-01-18 14:23:07 +0100 Jan Alexander Steffens (heftig) * gst/audioparsers/gstaacparse.c: aacparse: When parsing raw input, accept frames of any size Raw AAC streams might have very small frames, e.g. 6 byte frames when encoding silence. These frames are then smaller than aacparse's default min_frame_size of 10 bytes (ADTS_MAX_SIZE). When passthrough is disabled or aacparse has to output ADTS, GstBaseParse will concatenate these short frames to the following frame before handling them to aacparse, which processes each input buffer as a single frame, producing bad output. To avoid this problem, set the min_frame_size to 1 when receiving a raw stream. https://bugzilla.gnome.org/show_bug.cgi?id=792644 2017-05-02 21:24:06 -0300 Adrián Pardini * ext/shout2/gstshout2.c: shout2send: print actual username in debug log out https://bugzilla.gnome.org/show_bug.cgi?id=782093 2018-01-15 18:13:37 +0100 Mathieu Duponchelle * gst/rtpmanager/gstrtpbin.c: * tests/check/elements/rtpbin.c: rtpbin: fix leak of elements requested by signals When the signal returns a floating reference, as its return type is transfer full, we need to sink it ourselves before passing it to gst_bin_add (which is transfer floating). This allows us to unref it in bin_remove_element later on, and thus to also release the reference we now own if the signal returns a non-floating reference as well. As we now still hold a reference to the element when removing it, we also need to lock its state and setting it to NULL before unreffing it Also update the request_aux_sender test. https://bugzilla.gnome.org/show_bug.cgi?id=792543 2018-01-17 11:10:37 +0100 Guillaume Desmottes * sys/v4l2/gstv4l2object.c: v4l2: fix division by 0 for complex video formats So complex video formats have 0 as pstride. Don't try to divide the stride in such cases. https://bugzilla.gnome.org/show_bug.cgi?id=792596 2018-01-17 11:08:25 +0100 Guillaume Desmottes * sys/v4l2/gstv4l2object.c: v4l2: display stride and width values if stride is too small https://bugzilla.gnome.org/show_bug.cgi?id=792596 2018-01-16 13:19:29 +0000 Tim-Philipp Müller * gst/multifile/gstmultifilesink.c: multifilesink: document unit of "max-file-duration" property 2018-01-12 12:21:37 +0100 Florent Thiéry * gst/udp/gstudpsrc.c: udpsrc: fix typo in documentation https://bugzilla.gnome.org/show_bug.cgi?id=792458 2018-01-12 09:53:37 +0100 Peter Seiderer * sys/v4l2/gstv4l2videodec.c: v4l2videodec: add property set/get PROP_CAPTURE_IO_MODE error handling https://bugzilla.gnome.org/show_bug.cgi?id=791841 2018-01-12 09:46:30 +0100 Peter Seiderer * sys/v4l2/gstv4l2videodec.c: v4l2videodec: fold property set/get PROP_OUTPUT_IO_MODE case into default https://bugzilla.gnome.org/show_bug.cgi?id=791841 2018-01-12 09:49:14 +0100 Peter Seiderer * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc: add property set/get PROP_CAPTURE_IO_MODE error handling https://bugzilla.gnome.org/show_bug.cgi?id=791841 2018-01-12 09:44:03 +0100 Peter Seiderer * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc: fold property set/get PROP_OUTPUT_IO_MODE case into default https://bugzilla.gnome.org/show_bug.cgi?id=791841 2018-01-11 10:44:18 +0100 Peter Seiderer * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc: fix capture-io-mode property get https://bugzilla.gnome.org/show_bug.cgi?id=791841 2018-01-11 17:47:39 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2src.c: v4l2src: Maintain downstream caps order The g_list_insert_sorted() will behave like prepend when the compare function returns 0. In our case, we want to maintain the order hence append. This fixes this issue and improve the sorting algorithm to make a 10x10 prefered over 10x200 with a preference of 10x8 (and similar cases which was badly handled). This fixes generally fixes issue were a sub-optimal format / size is picked. https://bugzilla.gnome.org/show_bug.cgi?id=792435 2017-12-21 23:02:30 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc: Also re-enabled paused task When we only run _finish(), the task is never stopped externally, instead it's only paused from the inside. We still want to restart it in this case. 2018-01-08 15:23:24 +0100 Mathieu Duponchelle * ext/flac/gstflacdec.c: * ext/flac/gstflacdec.h: flacdec: flush flac decoder on lost sync. This to allow the decoder to start searching for a new frame again. https://bugzilla.gnome.org/show_bug.cgi?id=791473 2017-12-21 22:56:51 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc: Call stop on object before renegotiation Otherwise renegotiation fails as we are still streaming. https://bugzilla.gnome.org/show_bug.cgi?id=791338 2017-12-21 22:55:49 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc: Remove dead code gst_v4l2_object_stop() will free and nullify the pool, so the following if will never be true. https://bugzilla.gnome.org/show_bug.cgi?id=791338 2017-12-21 22:29:06 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc: Delay capture pool activation This is support CODA driver which prevents setting the output format if the capture is streaming. https://bugzilla.gnome.org/show_bug.cgi?id=791338 2017-12-13 20:23:46 +0000 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2videodec.c: v4l2videodec: Add dynamic resolution change support This implements a "big hammer" reallocation method. We effectively drain and stop both side of the decoder and restart. This though is the most generic method. This change should enable on most drivers adaptive streaming. https://bugzilla.gnome.org/show_bug.cgi?id=752962 2017-12-30 01:52:13 +0000 Tim-Philipp Müller * meson.build: meson: zlib is not actually a hard requirement 2017-09-28 18:00:38 -0300 Ezequiel Garcia * ext/jpeg/gstjpegdec.c: jpeg: Fixup frames without an EOI marker Some cameras fail to send an end-of-image marker (EOI) and can't be properly decoded by either JPEG or libjpeg. This commit parses the frame, making sure it has an EOI. If there isn't one, the EOI gets added to the buffer. A similar fixup is done in the rtpjpegdepay element, and it makes sense to do it in jpegdec as well. Signed-off-by: Ezequiel Garcia https://bugzilla.gnome.org/show_bug.cgi?id=791988 2017-12-26 13:50:24 +0100 Tim-Philipp Müller * meson.build: meson: skip translations if gettext is not available 2017-12-24 13:14:06 +0100 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/gst-plugins-good-plugins.hierarchy: * docs/plugins/inspect/plugin-rtp.xml: docs: add rtpL8pay/depay to docs 2017-12-24 13:11:00 +0100 Tim-Philipp Müller * 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-gdkpixbuf.xml: * docs/plugins/inspect/plugin-isomp4.xml: * docs/plugins/inspect/plugin-matroska.xml: * docs/plugins/inspect/plugin-rtp.xml: docs: update for recent changes 2015-05-15 17:00:26 +0100 Tim Allen * gst/rtp/Makefile.am: * gst/rtp/gstrtp.c: * gst/rtp/gstrtpL8depay.c: * gst/rtp/gstrtpL8depay.h: * gst/rtp/gstrtpL8pay.c: * gst/rtp/gstrtpL8pay.h: * gst/rtp/meson.build: rtp: add L8 audio support 2017-12-23 12:45:17 +0100 Mark Nauwelaerts * gst/udp/gstudpsrc.c: udpsrc: fix typo in multicast join error message 2017-12-23 12:44:31 +0100 Mark Nauwelaerts * gst/rtsp/gstrtspsrc.c: rtspsrc: also proxy multicast-iface property to RTCP udpsrc 2015-11-02 00:41:28 +0100 Sebastian Rasmussen * gst/udp/gstmultiudpsink.c: multiudpsink: don't try to set IPV6_TCLASS on IPV4 sockets Avoids ERROR log message. https://bugzilla.gnome.org/show_bug.cgi?id=757449 2015-11-02 00:41:28 +0100 Sebastian Rasmussen * tests/check/Makefile.am: * tests/check/elements/udpsink.c: tests: udpsink: add check that sets QoS on IPv4/6 sockets https://bugzilla.gnome.org/show_bug.cgi?id=757449 2017-12-22 10:21:28 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2deviceprovider.c: v4l2deviceprovider: Don't do slow probes This is problematic in the current design at it seriously slow down startup of applications. As of now, no known application uses the colorimetry and the interlace-modes for anything (the two fields that won't be probed). So let's disable it, in the long term we'll try and find a way to interact with the provider so applicaiton could opt-in these slow probing methods for more advance configuration. 2017-12-22 10:15:48 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Don't redefine mmap64 On Linux, there exist a case where mmap64 is already a define to mmap, so avoid the redefine warning here. 2017-12-19 17:37:58 +0800 Ting-Wei Lan * configure.ac: * meson.build: * sys/v4l2/gstv4l2object.c: v4l2object: Don't use mmap64 if off_t is 64-bit The difference between mmap and mmap64 is the type of 'offset' argument. mmap64 always uses a 64-bit interger as offset, while mmap uses off_t, whose size can vary on different operating systems or architectures. However, not all operating systems support mmap64. Fortunately, although FreeBSD only has mmap, its off_t is always 64-bit regardless of architectures, so we can simply use mmap when sizeof(off_t) == 8. https://bugzilla.gnome.org/show_bug.cgi?id=791779 2017-12-22 09:17:04 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: Revert "v4l2object: Use mmap64 to match libv4l2 signature" This reverts commit b61bba48488c0a627d90f04cc9917d8c4f3f0d9b. 2017-12-19 17:37:58 +0800 Ting-Wei Lan * configure.ac: * meson.build: * sys/v4l2/gstv4l2object.c: v4l2object: Check for mmap64 before using it mmap64 is not available on FreeBSD. https://bugzilla.gnome.org/show_bug.cgi?id=791779 2017-12-20 15:23:26 -0500 Vincent Penquerc'h * gst/flv/gstflvmux.c: * gst/flv/gstflvmux.h: flv: flvmux ported to the GstAggregator This makes it possible to create a flv file from a live source and not stop when there are packet drops. https://bugzilla.gnome.org/show_bug.cgi?id=782920 2017-12-19 16:47:52 -0500 Olivier Crête * gst/udp/gstmultiudpsink.c: multiudpsink: Call gst_base_sink_wait_preroll on unlock This means that packets will not be lost on fast pause/playing cycles. Also refactor the code a little to simplify it. https://bugzilla.gnome.org/show_bug.cgi?id=774945 2017-12-19 16:22:52 -0500 Olivier Crête * tests/examples/gtk/Makefile.am: gtk example: Fix cflags in Makefile.am 2017-12-19 15:46:52 -0500 Olivier Crête * gst/udp/gstmultiudpsink.c: multiudpsink: Remove unused variable 2017-12-19 13:03:28 +0000 Tim-Philipp Müller * ext/gtk/gtkgstglwidget.c: gtk: don't include uninstalled header 2017-12-17 20:54:06 +0000 Tim-Philipp Müller * ext/qt/Makefile.am: gl: update plugins to use GstGL from -base 2017-12-17 20:54:06 +0000 Tim-Philipp Müller * ext/gtk/Makefile.am: * ext/gtk/meson.build: * tests/examples/gtk/Makefile.am: gl: update plugins to use GstGL from -base 2017-12-19 11:57:52 +0100 Edward Hervey * gst/rtsp/gstrtspsrc.c: rtspsrc: Fix two leaks * gst_event_new_stream_start() does not take ownership of the stream_id * the pipeline_request_id string that is created was not being freed 2017-12-07 22:08:42 -0500 Nicolas Dufresne * gst/videocrop/gstvideocrop.c: videocrop: Add GstVideoCropMeta support If downstream supports this meta, it will add or update it from the GstBuffer in-place rather then copying. https://bugzilla.gnome.org/show_bug.cgi?id=791453 2017-12-13 09:22:17 +0000 Sean DuBois * gst/matroska/matroska-demux.c: * gst/matroska/matroska-ids.h: * gst/matroska/matroska-mux.c: * gst/matroska/webm-mux.c: Add AV1 to matroska plugin https://bugzilla.gnome.org/show_bug.cgi?id=784160 2017-12-15 14:48:09 +0100 fengalin * gst/matroska/matroska-mux.c: * gst/matroska/matroska-read-common.c: * tests/check/elements/matroskademux.c: * tests/check/elements/matroskamux.c: matroska: fix memory leaks due to toc related updates https://bugzilla.gnome.org/show_bug.cgi?id=790686 2017-12-15 11:40:13 +0200 Sebastian Dröge * tests/check/elements/matroskamux.c: matroskamux: Fix various memory leaks in the unit test https://bugzilla.gnome.org/show_bug.cgi?id=790686 2017-12-14 19:05:36 +0100 fengalin * tests/check/elements/matroskademux.c: * tests/check/elements/matroskamux.c: matroska-mux: migrate test to gst_harness ... following the guide lines from Håvard Graff (see https://gstconf.ubicast.tv/videos/moar-better-tests/). https://bugzilla.gnome.org/show_bug.cgi?id=790686 2017-12-01 18:17:06 +0100 fengalin * gst/matroska/matroska-ids.h: * gst/matroska/matroska-mux.c: * gst/matroska/matroska-mux.h: * gst/matroska/matroska-read-common.c: * gst/matroska/matroska-read-common.h: * tests/check/elements/matroskademux.c: * tests/check/elements/matroskamux.c: matroska: re-activate and update TOC support TOC support in mastroskamux has been deactivated for a couple of years. This commit updates it to recent GstToc evolutions and introduces toc unit tests for both matroska-mux and matroska-demux. There are two UIDs for Chapters in Matroska's specifications: - The ChapterUID is a mandatory unsigned integer which internally refers to a given chapter. Except for title & language which use dedicated fields, this UID can also be used to add tags to the Chapter. The tags come in a separate section of the container. - The ChapterStringUID is an optional UTF-8 string which also uniquely refers to a chapter but from an external perspective. It can act as a "WebVTT cue identifier" which "can be used to reference a specific cue, for example from script or CSS". During muxing, the ChapterUID is generated and checked for unicity, while the ChapterStringUID receives the user defined UID. In order to be able to refer to chapters from the tags section, we maintain an internal Toc tree with the generated ChapterUID. When demuxing, the ChapterStringUIDs (if available) are assigned to the GstTocEntries UIDs and an internal toc mimicking the toc is used to keep track of the ChapterUIDs and match the tags with the appropriate GstTocEntries. https://bugzilla.gnome.org/show_bug.cgi?id=790686 2017-12-14 18:28:00 +0200 Sebastian Dröge * tests/examples/v4l2/v4l2src-renegotiate.c: v4l2src: Fix compiler error in example caused by re-declaring `index` ../tests/examples/v4l2/v4l2src-renegotiate.c:57:13: error: ‘index’ redeclared as different kind of symbol static gint index = 0; ^ 2017-12-14 14:49:01 +1100 Matthew Waters * common: Automatic update of common submodule From e8c7a71 to 3fa2c9e 2017-12-13 14:39:47 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2deviceprovider.c: * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2object.h: * sys/v4l2/gstv4l2radio.c: * sys/v4l2/gstv4l2sink.c: * sys/v4l2/gstv4l2src.c: * sys/v4l2/gstv4l2transform.c: * sys/v4l2/gstv4l2videodec.c: * sys/v4l2/gstv4l2videoenc.c: * sys/v4l2/v4l2_calls.c: v4l2object: Use a debug object for tracing This way we can pass the pad name instead of the element for tracing which helps identifying which v4l2object is used withing M2M element like decoder, encoder and transform. For the reference, pads are name :. 2017-12-13 12:06:21 +0100 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Push a GAP event if there's a second *or more* And not "more than a second" 2017-12-13 11:35:37 +0100 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Don't push GAP event if first buffer is within 1s If we saw empty segments, we previously unconditionally pushed a GAP event downstream regardless of the duration of that empty segment. In order to avoid issues with initial negotiation of downstream elements (which would negotiate to something before receiving any data due to that initial GAP event), check if there's at least a second of difference (like we do for other GAP-related checks in qtdemux) before deciding to push a GAP event downstream. 2017-12-13 10:21:17 +0100 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Don't set pared=True on underspecified audio/mpeg This *really* needs to go through a parser to figure out what the exact content type is. 2017-12-11 15:27:08 -0600 Michael Catanzaro * gst/equalizer/gstiirequalizer.c: equalizer: Fix -Wincompatible-pointer-types warning This is caused by the new type propagation for g_object_ref. https://bugzilla.gnome.org/show_bug.cgi?id=791494 2017-12-09 16:15:24 +0000 Tim-Philipp Müller * tests/check/elements/.gitignore: tests: ignore rtph264 test binary 2017-08-25 15:19:37 +0300 George Kiagiadakis * tests/check/elements/udpsrc.c: tests: udpsrc: verify the correct amount of bytes is sent to the socket https://bugzilla.gnome.org/show_bug.cgi?id=786799 2017-08-25 14:59:06 +0300 George Kiagiadakis * tests/check/elements/udpsrc.c: tests: udpsrc: ensure test won't timeout if the buffers are already received Sometimes all the buffers are received before the time we lock the check_mutex, in which case g_cond_wait will wait forever for another one. Just check if this is the case before waiting. https://bugzilla.gnome.org/attachment.cgi?id=358397 2017-08-25 14:45:52 +0300 George Kiagiadakis * tests/check/elements/udpsrc.c: tests: udpsrc: fix test_udpsrc to actually run and fix locking Previously this would silently be skipped because 1600 != 1400 and there is no assertion on this call. Also unlock check_mutex after use. https://bugzilla.gnome.org/show_bug.cgi?id=786799 2017-09-21 18:23:54 +0300 John Nikolaides * gst/multifile/gstsplitmuxsink.c: * gst/multifile/gstsplitmuxsink.h: splitmuxsink: added a "split now" action signal Now, the video file can be split at an arbitrary time chosen by the user. https://bugzilla.gnome.org/show_bug.cgi?id=787922 2017-12-08 00:31:32 +0000 Alvaro Margulis * gst/udp/gstmultiudpsink.c: multiudpsink: fix bind address leak https://bugzilla.gnome.org/show_bug.cgi?id=790986 2017-12-07 11:15:19 +0000 Tim-Philipp Müller * gst/audioparsers/gstflacparse.c: * gst/audioparsers/gstflacparse.h: Revert "flacparse: fix header rewriting being ignored" This caused broken metadata and also looks a bit dodgy. Revert until we can figure out a solution that works for all cases and doesn't break anything. This reverts commit adeee44b07a173b9ab4253216caba8f66dd43abb. https://bugzilla.gnome.org/show_bug.cgi?id=727802 https://bugzilla.gnome.org/show_bug.cgi?id=785558 2017-12-05 15:14:04 +0100 Philipp Zabel * sys/v4l2/gstv4l2videodec.c: v4l2videodec: Handle drivers that only round up height Commit 1f31715c9861 ("v4l2videodec: use visible size, not coded size, for downstream negotiation filter") added support for removing the padding obtained as the difference between width/height from G_FMT and visible width/height from G_SELECTION from the probed caps obtained via TRY_FMT. This patch fixes the padding removal for drivers that only round up height, but not width, to the padded frame size. This might happen because horizontal padding can be handled by line stride (bytesperline), but there is no such thing as plane stride in the V4L2 API for single-buffer planar formats. https://bugzilla.gnome.org/show_bug.cgi?id=791271 2017-11-01 08:21:37 -0600 Matt Staples * gst/rtsp/gstrtspsrc.c: rtspsrc: Add a signal to allow outgoing messages to be modified or dropped This feature allows applications to implement extensions to the RTSP protocol, such as those defined in the ONVIF Streaming Specification. https://bugzilla.gnome.org/show_bug.cgi?id=762884 2017-08-25 11:57:26 +0200 Haakon Sporsheim * gst/rtpmanager/rtpsession.c: * tests/check/elements/rtpsession.c: rtpsession: Handle zero length feedback packets https://bugzilla.gnome.org/show_bug.cgi?id=791074 2017-07-10 15:19:34 +0200 Florian Zwoch * gst/isomp4/qtdemux.c: qtdemux: fix debug log for 'hvcC' codec_data https://bugzilla.gnome.org/show_bug.cgi?id=784749 2017-12-01 13:04:41 +0100 Havard Graff * tests/check/elements/rtpsession.c: tests: rtpsession: refactor tests to use GstHarness This patch simplifies the tests (44% less code) and makes them much more readable. The provided SessionHarness also makes it much easier to write new tests for rtpsession. https://bugzilla.gnome.org/show_bug.cgi?id=791070 2017-11-24 10:36:01 +0200 Sebastian Dröge * gst/audioparsers/gstflacparse.c: flacparse: Request at least the full header size when parsing headers Otherwise baseparse will incrementally send us bigger buffers until the full header size is reached, which is not only pointless but also means that baseparse will reallocate and copy into a bigger buffer for every input buffers. In pull mode that's done in 64kb increments, in push mode usually in much smaller increments, causing a lot of overhead for example when parsing high-quality coverart. 2017-11-29 11:29:31 +0100 Florent Thiéry * sys/v4l2/gstv4l2object.c: v4l2object: Fix dmabuf support detection This resulted in improper selection of dmabuf on unsupported drivers. The checked ioctl errno was not correct. https://bugzilla.gnome.org/show_bug.cgi?id=790940 2017-11-27 20:10:51 +1100 Matthew Waters * common: Automatic update of common submodule From 3f4aa96 to e8c7a71 2017-11-27 14:44:58 +1100 Matthew Waters * ext/qt/gstqtglutility.cc: gl/caopengllayer: use public GstGLContext instead of Cocoa-specific one Allows keeping the GstGLCAOpenGLLayer public but not the winsys-specific context/display/window. 2017-11-26 15:13:15 +0000 Tim-Philipp Müller * configure.ac: autotools: stop controlling symbol visibility with -export-symbols-regex Instead, use -fvisibility=hidden and explicit exports via GST_EXPORT. This should result in consistent behaviour for the autotools and Meson builds. 2017-11-24 15:37:44 +0100 Edward Hervey * gst/rtsp/gstrtspsrc.c: * gst/rtsp/gstrtspsrc.h: rtspsrc: Do more checks for seekability When receiving a seek event, check whether we can actually seek based on the information the server provided. Also add more documentation on what the seekable field means 2017-11-25 00:53:42 +1100 Jan Schmidt * gst/isomp4/gstqtmux.c: qtmux: Always update reserved-duration-remaining If a reserved-max-duration is set, we should always track and update the reserved-duration-remaining estimate, even if we're not sending periodic moov updates downstream for full robust muxing. 2015-04-07 23:53:19 +1000 Jan Schmidt * gst/multifile/gstsplitmuxsink.c: * gst/multifile/gstsplitmuxsink.h: * tests/check/elements/splitmux.c: splitmuxsink: Use muxer reserved space properties if present. If the use-robust-muxing property is set, check if the assigned muxer has reserved-max-duration and reserved-duration-remaining properties, and if so set the configured maximum duration to the reserved-max-duration property, and monitor the remaining space to start a new file if the reserved header space is about to run out - even though it never ought to. 2017-11-24 08:00:21 +0100 Edward Hervey * ext/gtk/gtkgstglwidget.c: gtk: Fix possibility of NULL variable It's quite unlikely since it's initialized in instance initialization. CID #1417721 2017-11-24 16:56:03 +1100 Jan Schmidt * gst/multifile/gstsplitmuxsink.c: * tests/check/elements/splitmux.c: splitmux: Fix file switch-on-caps-change. Switching to a new fragment because the input caps have changed didn't properly end the previous file. Use the normal EOS sequence to ensure that happens. Add a test that it works. 2017-11-24 16:53:40 +1100 Jan Schmidt * ext/jpeg/gstjpegenc.c: * ext/jpeg/gstjpegenc.h: jpegenc: Update output caps on input caps change If the input changes width/height that should be reflected in the output caps, so make sure they get updated 2017-11-23 22:58:40 +1100 Jan Schmidt * ext/qt/gstqtglutility.cc: Revert "gl: Use GstGLDisplayEGL directly instead of creating a GstGLDisplayVIVFb subclass" This reverts commit 47fd4d391e775c11f529705bb0f457a9d25ba5e7. This patch is incorrect. It doesn't actually compile, and causes a crash because the viv-fb window implementation needs a native EGL handle to pass to fbCreateWindow, but the GstGLDisplayEGL handleis actually an EGLDisplay now (and gets cast to the wrong type) 2017-09-05 15:55:03 +0100 Tim-Philipp Müller * gst/rtp/gstrtph265depay.c: rtph265depay: don't insert SPS/PPS inline for hvc1 output Only for byte-stream or hev1. For hvc1 the SPS/PPS are in the caps as codec_data field and in this case they shouldn't be in the stream data as well. The output caps should be updated with the new codec_data if needed, for hvc1. 2017-09-05 15:47:42 +0100 Tim-Philipp Müller * gst/rtp/gstrtph265depay.c: * gst/rtp/gstrtph265depay.h: rtph265depay: store negotiated output format as enum We keep the boolean byte_stream around since it's nicer for readability and most of the code just cares about byte_stream or not. This is useful for future-proofing the code for when we add support for hev1 output as well. 2017-08-29 17:05:51 +0100 Tim-Philipp Müller * gst/rtp/gstrtph265depay.c: rtph265depay: add support for hvc1 as output format 2017-08-08 18:58:11 +0100 Tim-Philipp Müller * gst/rtp/gstrtph265pay.c: rtph265pay: don't add trailing zeros to VPS/PPS/SPS This would happen if input is byte-stream with four-byte sync markers instead of three-byte ones. The code that scans for sync markers will place the start of the NALU on the third-last byte of the NALU sync marker, which means that any additional zeros may be counted as belonging to the previous NALU instead of being part of the next sync marker. Fix that so we don't send VPS/SPS/PPS with trailing zeros in this case. See https://bugzilla.gnome.org/show_bug.cgi?id=732758 2017-06-16 12:41:49 +0100 Tim-Philipp Müller * gst/rtp/gstrtph265depay.c: rtph265depay: assemble AUs into downstream-allocated memory When merging NALs into AUs, use downstream-provided allocator to allocate memory and copy NALs directly into that memory when assembling them. 2017-06-16 12:30:13 +0100 Tim-Philipp Müller * gst/rtp/gstrtph265depay.c: * gst/rtp/gstrtph265depay.h: rtph265depay: try to negotiate an allocator with downstream 2017-06-16 12:13:32 +0100 Tim-Philipp Müller * gst/rtp/gstrtph265depay.c: rtph265depay: simplify buffer accumulation control flow There is no difference between pushing out a buffer directly with gst_rtp_base_depayload_push() and returning it from the process function. The base class will just call _depayload_push() on the returned buffer as well. So instead of marshalling buffers through three layers and back, just push them from one place in handle_nal() and always return NULL from the process vfunc. This simplifies the code a little. Also rename _push_fragmentation_unit() to _finish_fragmentation_unit() for clarity. Push sounds like it means being pushed out, whereas it might just be pushed into an adapter. This change has the side-effect that multiple NALs in a single STAP (such as SPS/PPS) may no longer be pushed out as a single buffer if we output NALs in byte-stream format (i.e. not aggregate AUs), but that shouldn't really make any difference to anyone. 2017-06-16 11:18:16 +0100 Tim-Philipp Müller * gst/rtp/gstrtph265depay.c: rtph265depay: fix crash with empty sprops-parameters https://bugzilla.gnome.org/show_bug.cgi?id=780040 2017-06-16 12:20:34 +0100 Tim-Philipp Müller * gst/rtp/gstrtph265depay.c: rtph265depay: minor clean-up Declutter caps update code a bit. 2017-08-08 13:10:15 +0100 Tim-Philipp Müller * tests/check/elements/rtp-payloading.c: tests: rtp-payloading: add unit test for rtph264pay codec_data Make sure no trailing zero bytes sneak into our SPS or PPS. https://bugzilla.gnome.org/show_bug.cgi?id=732758 2014-07-05 06:21:48 +0000 Philip Craig * gst/rtp/gstrtph264pay.c: rtph264pay: don't add trailing zeros to PPS/SPS This would happen if input is byte-stream with four-byte sync markers instead of three-byte ones. The code that scans for sync markers will place the start of the NALU on the third-last byte of the NALU sync marker, which means that any additional zeros may be counted as belonging to the previous NALU instead of being part of the next sync marker. Fix that so we don't send SPS/PPS with trailing zeros in this case. https://bugzilla.gnome.org/show_bug.cgi?id=732758 2017-05-20 15:50:22 +0100 Tim-Philipp Müller * tests/check/Makefile.am: * tests/check/elements/rtph264.c: * tests/files/Makefile.am: * tests/files/h264.rtp: tests: rtph264depay: add test for using downstream memory allocator 2017-06-03 00:58:05 +0100 Tim-Philipp Müller * gst/rtp/gstrtph264depay.c: rtph264depay: assemble AUs into downstream-allocated memory When merging NALs into AUs, use downstream-provided allocator to allocate memory and copy NALs directly into that memory when assembling them. 2017-06-02 21:27:40 +0100 Tim-Philipp Müller * gst/rtp/gstrtph264depay.c: * gst/rtp/gstrtph264depay.h: rtph264depay: try to negotiate an allocator with downstream 2017-06-02 20:54:20 +0100 Tim-Philipp Müller * gst/rtp/gstrtph264depay.c: rtph264depay: minor clean-up Declutter caps update code a bit. 2017-11-23 08:00:58 +0100 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Run gst-indent 2017-11-23 07:59:07 +0100 Edward Hervey * gst/replaygain/rganalysis.c: rganalysis: Fix left shift of signed values left shifting signed values is undefined. Instead of doing "x << offs" which is undefined, do the equivalent "x * (1 << offs)" which is well defined 2017-11-23 07:57:44 +0100 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Check presence of bitrate tags Check whether the tag was present before printing it out CID #1418501 2017-11-21 09:33:49 +0100 Edward Hervey * gst/rtsp/gstrtspsrc.c: rtspsrc: Use the proper maximum value for seekable it's a gfloat, not a gdouble 2017-11-18 02:27:50 +1100 Jan Schmidt * gst/isomp4/qtdemux.c: qtdemux: Use new GST_SEQNUM_INVALID constant 2017-11-18 02:01:58 +1100 Jan Schmidt * gst/multifile/gstsplitmuxpartreader.c: splitmuxsrc: Don't return FALSE from event handling. Returning FALSE because we drop an event means that internal sources like qtdemux might throw an error and break the whole pipeline. The only time it can happen is either flushing or shutdown, and those will be handled anyway. 2017-10-22 18:26:12 +0800 Jun Xie * gst/isomp4/qtdemux.c: qtdemux: reset reused QtDemuxStream while parsing a new 'trak' if QtDemuxStream is reused, then we need to reset it. https://bugzilla.gnome.org/show_bug.cgi?id=788759 2017-11-13 10:43:11 +0900 Seungha Yang * gst/isomp4/fourcc.h: * gst/isomp4/gstqtmux.c: * gst/isomp4/qtdemux.c: isomp4: Add official fourcc for VP8 codec fourcc for VP8 codec is "vp08" defined by spec. To follow it, add it to demux and change legacy VP8 fourcc "VP80" to "vp08" in mux. Also, enable sync table in case of VP8 codec. See also https://www.webmproject.org/vp9/mp4/ https://bugzilla.gnome.org/show_bug.cgi?id=790026 2017-11-13 10:38:06 +0900 Seungha Yang * gst/isomp4/fourcc.h: * gst/isomp4/gstqtmux.c: * gst/isomp4/gstqtmuxmap.c: * gst/isomp4/qtdemux.c: isomp4: Add support VP9 codec Add fourcc for VP9 codec and support it by qtdemux and qtmux See also https://www.webmproject.org/vp9/mp4/ https://bugzilla.gnome.org/show_bug.cgi?id=790026 2017-11-13 13:51:20 +0100 Edward Hervey * gst/matroska/matroska-demux.c: matroskademux: Remove bogus error message It's just informational 2017-11-10 15:51:05 +0100 Edward Hervey * gst/rtp/gstrtpmpvpay.c: rtpmpvpay: Don't create empty buffer list If there's nothing to send, just return 2017-03-13 18:14:12 +0900 paul.kim * ext/soup/gstsouphttpsrc.c: souphttpsrc: Remove range header when seek to 0 This fixes the previous range header is remained if seek to 0 is attempted. https://bugzilla.gnome.org/show_bug.cgi?id=779957 2017-11-08 16:34:01 +0100 Edward Hervey * ext/soup/gstsouphttpsrc.c: souphttpsrc: Fix seeking back to 0 This is a regression introduced by "03db374 - souphttpsrc: retry request on early termination from the server" The problem was that when seeking back to 0, we would not end up calling add_range_header() which in addition to adding range headers *ALSO* sets the read_position to the requested one. This would result in a wide variety of later failures, like reading again and again instead of stopping properly. 2017-11-07 18:03:53 +0900 Seungha Yang * gst/matroska/matroska-demux.c: * gst/matroska/matroska-ids.c: * gst/matroska/matroska-ids.h: matroskademux: Add parsing Colour element ... and forward colorimetry to downstream. The Colour element describes various color information (similar to 'colr' box in isobmff). Note that, due to the comparatively limited syntax for color information in vpx codecs, the color information in mkv/wemb container level should be used for sophisticated color handling (e.g., HDR video). https://bugzilla.gnome.org/show_bug.cgi?id=790023 2017-10-19 14:02:37 +0200 Jan Alexander Steffens (heftig) * sys/v4l2/gstv4l2deviceprovider.c: v4l2deviceprovider: Ignore touch sensing devices With GST_V4L2_USE_LIBV4L2=1, my laptop's touchpad shows up as a video source device in gst-device-monitor, but attempting to stream from it fails because the device doesn't actually support any video formats. name : Synaptics RMI4 Touch Sensor class : Video/Source caps : video/x-raw, format=(string)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1; video/x-raw, format=(string)YV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1; video/x-raw, format=(string)BGR, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1; video/x-raw, format=(string)RGB, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1; properties: udev-probed = true device.bus_path = /sys/devices/rmi4-00/rmi4-00.fn54/video4linux/v4l-touch0 sysfs.path = /sys/devices/rmi4-00/rmi4-00.fn54/video4linux/v4l-touch0 device.subsystem = video4linux device.product.name = "Synaptics\ RMI4\ Touch\ Sensor" device.capabilities = :capture: device.api = v4l2 device.path = /dev/v4l-touch0 v4l2.device.driver = rmi4_f54 v4l2.device.card = "Synaptics\ RMI4\ Touch\ Sensor" v4l2.device.bus_info = rmi4:rmi4-00.fn54 v4l2.device.version = 265480 (0x00040d08) v4l2.device.capabilities = 2501902337 (0x95200001) v4l2.device.device_caps = 354418689 (0x15200001) gst-launch-1.0 v4l2src device=/dev/v4l-touch0 ! ... v4l2-ctl -d /dev/v4l-touch0 --list-formats reports: ioctl: VIDIOC_ENUM_FMT Index : 0 Type : Video Capture Pixel Format: 'TD16' Name : 16-bit signed deltas Index : 1 Type : Video Capture Pixel Format: 'TD08' Name : 8-bit signed deltas Index : 2 Type : Video Capture Pixel Format: 'TU16' Name : 16-bit unsigned touch data https://bugzilla.gnome.org/show_bug.cgi?id=789197 2017-11-03 13:27:50 -0400 Youness Alaoui * gst/rtp/gstrtpg722pay.c: rtpg722pay: Add encoding-params to the src caps template The G722 payload only accepts G722 audio with channels=1, so it must specify the encoding-params=1 in its src caps, otherwise it causes issues with farstream which thinks it supports 2 channels G722 and when confronted with a remote that has G722/8000/2, it will negotiate it and error out with a not-negotiated when the caps don't intersect at runtime. https://bugzilla.gnome.org/show_bug.cgi?id=789878 2017-10-06 17:36:34 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2allocator.c: * sys/v4l2/gstv4l2bufferpool.c: v4l2allocator: Add support for data_offset In MPLANE mode, the driver may set data_offset, which represent some padding at the start of the buffer used internally. This portion of the data need to be skipped, though it is included in bytesused. This patch removes frame size sanity check as the method used will no longer work. This check was simply there to help detect broken kernel drivers. It would be re-implement by estimating the plane size, which is not totally trivial and may be too much work for a simple debug check. https://bugzilla.gnome.org/show_bug.cgi?id=733501 2017-07-17 17:09:18 +0300 Sebastian Dröge * gst/rtsp/gstrtspsrc.c: rtspsrc: Add "accept-certificate" signal for manually checking a TLS certificate for validity https://bugzilla.gnome.org/show_bug.cgi?id=785024 2017-10-30 19:15:56 +0900 Sangkyu Park * gst/rtsp/gstrtspsrc.c: rtspsrc: Print RTSP/SDP messages to gstreamer log instead of stdout - 'debug' property is deprecated - All RTSP messages are printed to gstreamer log with 'log' level. https://bugzilla.gnome.org/show_bug.cgi?id=788917 2017-11-01 15:29:58 +0900 Justin Kim * gst/rtpmanager/rtpsession.c: rtpsesson: downgrade message level to debug when detected XR When XR packet is detected, warning message leads to misunderstandings. Until RFC3611 is implemented in gst-plugins-base, the level needs to be downgraded to avoid confusion. https://bugzilla.gnome.org/show_bug.cgi?id=789746 2017-10-24 20:12:29 +0530 Ashish Kumar * gst/isomp4/atomsrecovery.c: gst-plugins-good: atoms_recovery: Handled buffer mapping failure https://bugzilla.gnome.org/show_bug.cgi?id=789413 2017-07-08 22:11:49 -0700 Thiago Santos * gst/isomp4/atomsrecovery.c: * gst/isomp4/atomsrecovery.h: * gst/isomp4/gstqtmoovrecover.c: atomsrecovery: read from mdat only what is on headers It is possible that the mdat has more data than what was stored in the headers file. If we put that to the output the file will have bogus data at the end and some players will complain. https://bugzilla.gnome.org/show_bug.cgi?id=784258 2017-07-05 22:23:21 -0700 Thiago Santos * gst/isomp4/atomsrecovery.c: isomp4: atomsrecovery: handle common and large atom headers Do not assume all files are large files. Check and use the short or extended atom size field only if needed. https://bugzilla.gnome.org/show_bug.cgi?id=784258 2017-10-20 11:08:24 +0200 Andreas Frisch * configure.ac: pngdec: fix build with libpng versions between 1.2 and 1.5.1 (revised) https://bugzilla.gnome.org/show_bug.cgi?id=765927 2017-10-19 18:23:34 +0200 Andreas Frisch * configure.ac: * ext/libpng/gstpngdec.c: pngdec: fix build with libpng versions between 1.2 and 1.5.1 https://bugzilla.gnome.org/show_bug.cgi?id=765927 2017-10-19 16:17:45 +0200 Andreas Frisch * ext/libpng/gstpngdec.c: pngdec: Extract icc profiles and send them downstreams for colormanagement elements https://bugzilla.gnome.org/show_bug.cgi?id=765927 2017-10-16 14:20:47 +0200 Thibault Saunier * gst/rtsp/gstrtspsrc.c: rtsp: Add missing Since marker 2017-10-13 12:25:22 +0100 Tim-Philipp Müller * ext/qt/qtplugin.pro: qt: update qmake .pro file Update for renaming of plugin file, and add some missing source files. 2017-06-13 18:51:32 +0200 Mathieu Duponchelle * ext/gdk_pixbuf/gstgdkpixbufdec.c: gstgdkpixbufdec: stop pretending to decode gifs. If you can't decode an animated gif, you can't decode a gif, so stop squatting GST_RANK_SECONDARY for that format, libav does a better job. https://bugzilla.gnome.org/show_bug.cgi?id=784683 2017-09-28 22:51:57 +0200 Philippe Renon * sys/directsound/gstdirectsoundsink.c: directsoundsink: simplify how DirecSoundBuffer is cleared we always want to clear the whole buffer so no need to start from offset even if the offset is always zero. https://bugzilla.gnome.org/show_bug.cgi?id=788847 2017-09-28 22:49:31 +0200 Philippe Renon * sys/directsound/gstdirectsoundsink.c: directsoundsink: fix comment https://bugzilla.gnome.org/show_bug.cgi?id=788847 2017-09-28 22:48:41 +0200 Philippe Renon * sys/directsound/gstdirectsoundsink.c: directsoundsink: don't call set_volume with private scaled volume use get_volume() instead to get unscaled volume https://bugzilla.gnome.org/show_bug.cgi?id=788847 2017-09-28 22:46:23 +0200 Philippe Renon * sys/directsound/gstdirectsoundsink.c: directsoundsink: remove duplicate volume initialization https://bugzilla.gnome.org/show_bug.cgi?id=788847 2017-10-10 18:04:50 +0300 Sebastian Dröge * gst/isomp4/qtdemux.c: qtdemux: Fix compiler warning qtdemux.c: In function ‘gst_qtdemux_configure_stream’: qtdemux.c:7764:34: error: suggest parentheses around ‘&&’ within ‘||’ [-Werror=parentheses] if ((stream->n_samples == 1) && (stream->first_duration == 0) ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2017-09-22 18:41:52 +0200 Nael Ouedraogo * gst/isomp4/qtdemux.c: qtdemux: fix assert when moof containing one sample Avoid computing frame rate when a stream contain moof with only one sample, to avoid an assert. The moof is considered as still picture. The same is already done for one sample given in the moov. https://bugzilla.gnome.org/show_bug.cgi?id=782217 2017-10-09 14:17:25 +0200 Thibault Saunier * gst/rtsp/gstrtspsrc.c: rtspsrc: Avoid potentially dereferencing NULL pointer CID 1418986 2017-10-08 00:07:43 +0100 Tim-Philipp Müller * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: fix debug message on pt mismatch 2017-10-07 21:11:41 +0000 Nicolas Dufresne * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc: Fix driver capability dectection Use the right set of caps when checking if caps intersect. That makes the check only select the supported devices. 2017-09-20 01:46:15 +0000 Nicolas Dufresne * sys/v4l2/gstv4l2videodec.c: * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc/dec: Don't leak template caps 2017-10-07 21:17:53 +0000 Nicolas Dufresne * sys/v4l2/gstv4l2videoenc.c: v4l2videodec: Protect against null pool in _stop This may happen if the negotiation fails, as we will have never created the pools. 2017-10-07 15:55:24 +0100 Tim-Philipp Müller * gst/rtpmanager/gstrtpbin.c: * gst/rtsp/gstrtspsrc.c: rtpbin, rtspsrc: fix compiler warnings about 64-bit integer signednes "warning: this decimal constant is unsigned only in ISO C90" with gcc 4.8.4 (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.3) 2017-10-07 15:39:18 +0100 Tim-Philipp Müller * sys/v4l2/gstv4l2object.c: v4l2: fix build without libv4l https://bugzilla.gnome.org/show_bug.cgi?id=779466 2017-10-07 14:06:38 +0300 Sebastian Dröge * gst/rtp/gstrtpsbcdepay.c: rtpsbcdepay: Fix potential NULL pointer dereference CID 1418864 2017-10-07 01:21:19 +0300 Sebastian Dröge * gst/audiofx/audioecho.c: audioecho: Micro-optimize Gives 1.28x speedup in surround-delay=false mode 2017-10-06 23:59:43 +0300 Sebastian Dröge * gst/audiofx/audioecho.c: audioecho: Don't do linear interpolation between samples Linear interpolation adds quite some noise, and it's unlikely that anybody will ever need sub-sample accurate delays. Proper resampling before that will lead to better results. 2017-09-29 22:19:42 -0400 Enrico Jorns * sys/v4l2/gstv4l2object.c: v4l2object: auto-detect dmabuf export for V4L2_IO_AUTO on capture side Issue an invalid VIDIOC_EXPBUF ioctl to the driver to check if the driver supports dmabuf export. If the driver does not implement the IOCTL, the error is ENOTTY. Any other error codes mean that the driver implements VIDIOC_EXPBUF. https://bugzilla.gnome.org/show_bug.cgi?id=779466 2017-09-24 14:35:01 -0400 Nicolas Dufresne * gst/flv/gstflvdemux.c: flvdemux: Only set pixel-aspect-ratio if specified If it's not specified, we should let the decoder figure it out. Apparently the code was already in place, all was to make the code conditional. https://bugzilla.gnome.org/show_bug.cgi?id=787795 2017-09-23 15:44:09 -0400 Nicolas Dufresne * gst/flv/gstflvdemux.c: flvdemux: Don't pull passed the EOS When a truncated FLV is provided and processed in pull mode, we may endup trying to pull passed EOS, causing a rather confusing warning as the pull offset is an integer overflow. https://bugzilla.gnome.org/show_bug.cgi?id=787795 2017-09-23 15:41:30 -0400 Nicolas Dufresne * gst/flv/gstflvdemux.c: flvdemux: Ignore invalid H.264 codec data This code basically skip over codec_data with empty payload. In this case, the codec_data variable is the size of the header for the CODEC part of Video Tag. The remaining is supposed to be the H.264 codec data, hence should not be empty. https://bugzilla.gnome.org/show_bug.cgi?id=787795 2017-09-23 15:38:07 -0400 Nicolas Dufresne * gst/flv/gstflvdemux.c: flvdemux: Avoid integer overflow on invalid CTS If the CTS is negative an would lead to a negtive PTS, clip the CTS so the PTS will be 0. https://bugzilla.gnome.org/show_bug.cgi?id=787795 2017-10-05 14:36:28 -0300 Thibault Saunier * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/inspect/plugin-isomp4.xml: docs: Update for git changes 2017-10-05 14:35:27 -0300 Thibault Saunier * gst/rtsp/gstrtspsrc.c: rtspsrc: Fix build 2017-07-13 14:46:55 -0400 Thibault Saunier * gst/rtsp/gstrtspsrc.c: rtspsrc: Handle TCP as lower transport with RTSP 2.0 Meaning that the interleave fields have to be updated as if streams setup was working when using pipelined setup request. Otherwise there is a mismatch between the server channel count and our own. This also makes RTSP 2.0 over HTTP working. https://bugzilla.gnome.org/show_bug.cgi?id=781446 2017-04-20 17:45:39 -0300 Thibault Saunier * gst/rtsp/gstrtspsrc.c: * gst/rtsp/gstrtspsrc.h: rtsp: Start implementing support for RTSP 2.0 - Handle version negotation: Added a `default-version` property so that the user can configure what to use in case the server does not support version negotation (which actually exist) - Handle pipelined requests, which allow avoiding full round trip to setup the RTP streams (request are sent in a raw, and response are handled as they arrive). - Handle the new Media-Properties header - Handle the new Seek-Style header - Handle the new Accept-Ranges header Handling of IPV6 should already be OK. We are still missing (at least) the following features (which do not seem really mandatory as they require a "persistent connection between server and client"): - Server to Client TEARDOWN command (Not so usefull fmpov) - PLAY_NOTIFY (not needed for our server yet) - Support for the new REDIRECT features and probably some more protocol changes might not be handled yet. https://bugzilla.gnome.org/show_bug.cgi?id=781446 2017-05-03 11:19:03 -0300 Thibault Saunier * gst/rtsp/gstrtspsrc.c: rtspsrc: Use a macro to debug RTSP messages Simplifying the code a little. https://bugzilla.gnome.org/show_bug.cgi?id=781446 2017-10-03 16:30:10 -0700 Reynaldo H. Verdejo Pinochet * ext/gdk_pixbuf/gstgdkpixbufsink.c: * gst/level/gstlevel.c: * gst/matroska/matroska-mux.c: * gst/multifile/gstmultifilesink.c: * gst/replaygain/gstrganalysis.c: * gst/spectrum/gstspectrum.c: Use proper GtkDoc notation for NULL/FALSE/TRUE 2017-10-02 12:35:48 -0700 Cassandra Rommel * ext/qt/gstqtglutility.cc: gl: Use GstGLDisplayEGL directly instead of creating a GstGLDisplayVIVFb subclass This simplifies the code a lot without any functional changes apart from not closing the display connection. Closing the display connection is not safe to do as it is shared between all other code in the same process and no reference counting or anything happens at the platform layer. 2017-10-01 16:09:13 +0200 Sebastian Dröge * gst/rtsp/gstrtspsrc.c: rtspsrc: Ignore medias marked as sendonly We're never going to receive anything from them, so don't create pads for them. These medias are destinations where *we* could send something. 2017-09-05 11:41:35 +0300 Sebastian Dröge * gst/rtp/gstrtpsbcdepay.c: * gst/rtp/gstrtpsbcdepay.h: sbcdepay: Add property to ignore input timestamps This then just counts samples and calculates the output timestamps based on that and the very first observed timestamp. The timestamps on the buffers are continued to be used to detect discontinuities that are too big and reset the counter at that point. When receiving data via Bluetooth, many devices put completely wrong values into the RTP timestamp field. For example iOS seems to put a timestamp in milliseconds in there, instead of something based on the current sample offset (RTP clock-rate == sample rate). https://bugzilla.gnome.org/show_bug.cgi?id=787297 2017-09-21 13:59:00 +0530 Ponnam Srinivas * gst/rtp/gstrtph265depay.c: rtph265depay: Fix Memory leak in error case https://bugzilla.gnome.org/show_bug.cgi?id=787937 2017-09-22 16:55:21 +0530 Deepak Srivastava * gst/deinterlace/gstdeinterlace.c: deinterlace: Fixed memory leak in error code path https://bugzilla.gnome.org/show_bug.cgi?id=788041 2017-09-20 09:37:59 +0530 Ponnam Srinivas * ext/libpng/gstpngenc.c: pngenc: fix memory leak in error code path Don't leak row_pointers if frame can't be mapped. https://bugzilla.gnome.org/show_bug.cgi?id=787885 2017-09-19 17:55:58 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2videodec.c: v4l2videodec: Don't leak codec name 2017-08-05 12:23:30 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2bufferpool.c: * sys/v4l2/gstv4l2bufferpool.h: * sys/v4l2/gstv4l2transform.c: * sys/v4l2/gstv4l2videodec.c: * sys/v4l2/gstv4l2videoenc.c: v4l2bufferpool: Don't stop streaming when pool is flushing The purpose of being able to flush the buffer pool is only to unlock any blocked operation. Doing streamoff/streamon had the side effect of turning off and on the camera. As we do a flush_start / flush_stop sequence when shutting down, that would cause a really quick sequence of streamoff/streamon/streamoff/close which was causing some cameras to stop working. https://bugzilla.gnome.org/show_bug.cgi?id=783945 2017-09-17 16:18:48 +0100 Tim-Philipp Müller * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: implement basic chain_list function Doesn't do anything fancy yet, but still avoids lots of unnecessary locking/unlocking that would happen if the default chain_list fallback function in GstPad got invoked. 2017-09-17 12:50:30 +0100 Tim-Philipp Müller * gst/multifile/gstmultifilesink.c: multifilesink: use new gst_buffer_list_calculate_size() 2017-09-14 13:00:56 +0200 Patrick Radizi * gst/rtpmanager/gstrtpbin.c: * gst/rtpmanager/gstrtpbin.h: * gst/rtsp/gstrtspsrc.c: * gst/rtsp/gstrtspsrc.h: rtpbin: add option for sanity checking timestamp offset Timestamp offsets needs to be checked to detect unrealistic values caused for example by NTP clocks not in sync. The new parameter max-ts-offset lets the user decide an upper offset limit. There are two different cases for checking the offset based on if ntp-sync is used or not: 1) ntp-sync enabled Only negative offsest are allowed since a positive offset would mean that the sender and receiver clocks are not in sync. Default vaule of max-ts-offset = 0 (disabled) 2) ntp-sync disabled Both positive and negative offsets are allowed. Default vaule of max-ts-offset = 3000000000 The reason for different default values is to be backwards compatible. https://bugzilla.gnome.org/show_bug.cgi?id=785733 2017-09-14 11:20:17 +0200 Patrick Radizi * gst/rtpmanager/gstrtpbin.c: * gst/rtpmanager/gstrtpbin.h: * gst/rtpmanager/gstrtpjitterbuffer.c: * gst/rtpmanager/rtpsource.c: * gst/rtsp/gstrtspsrc.c: * gst/rtsp/gstrtspsrc.h: rtpbin: add option for increasing ts_offset gradually Instant large changes to ts_offset may cause timestamps to move backwards and also cause visible effects in media playback. The new option max-ts-offset-adjustment lets the application control the rate to apply changes to ts_offset. https://bugzilla.gnome.org/show_bug.cgi?id=784002 2017-09-06 07:59:56 +0000 Jochen Henneberg * ext/qt/qtitem.cc: * ext/qt/qtitem.h: qmlglsink: Expose itemInitialized as property Instead of just signalling when ready exposing the state as a property allows us to bind at any time if player is loaded async. 2017-09-13 16:05:08 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2src.c: v4l2src: Ensure all caps a fixated The code relied on the list compare function to fixate the caps but if the caps only has one structure, the compare function will never get called. Capture device for which there is only one structure in the caps would then get some assertion and later fail badly. Instead, fixate before inserting into the list and split the reading and the fixation of the structures. 2017-09-13 11:52:09 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Don't leak the par value 2017-09-13 11:38:44 -0400 Nicolas Dufresne * tests/examples/v4l2/v4l2src-renegotiate.c: v4l2-renegotiate: Don't leak the option context 2017-09-13 11:33:33 -0400 Nicolas Dufresne * tests/examples/v4l2/v4l2src-renegotiate.c: v4l2src-renegotiate: Don't leak pipeline desc string 2017-09-13 11:32:09 -0400 Nicolas Dufresne * tests/examples/v4l2/v4l2src-renegotiate.c: v4l2-renegotiate: Change --enable-dmabuf into --io-mode= This gives allow testing dmabuf importation but also exportation buy letting user pick anything from the io-mode property on v4l2src. 2017-09-11 20:24:27 +0200 Mark Nauwelaerts * gst/matroska/matroska-demux.c: matroskademux: search_cluster should find preceding cluster before target ... since failing this constraint takes search_pos by surprise which might then end up in an infinite loop. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=787538 2017-09-07 14:33:57 +0300 George Kiagiadakis * gst/rtpmanager/gstrtprtxreceive.c: * gst/rtpmanager/gstrtprtxsend.c: rtprtx{send,receive}: improve the debug messages * use INFO/DEBUG/LOG/TRACE equaly and meaningfully; previously rtprtxsend:LOG and rtprtxreceive:LOG would generate a totally different amount of log traffic and sometimes it was impossible to see the information you wanted without useless spam being printed around * improve the wording, give a reasonable and self-explanatory amount of information * print SSRCs in hex * avoid G_FOO_FORMAT for readability (we are just printing integers) 2017-09-07 09:39:13 +0100 Tim-Philipp Müller * ext/qt/gstplugin.cc: * ext/qt/qtplugin.pro: qt: fix build with qmake Move the package defines for GST_PLUGIN_DEFINE from the command line into the source file to avoid quoting issues (-DPACKAGE_NAME="foo" means the quotes won't actually make it to the compiler and then it no longer gets a string constant). 2017-09-05 16:20:44 -0400 Nicolas Dufresne * ext/gtk/gstgtkglsink.c: Request minimum buffer even if need_pool is FALSE When tee is used, it will not request a pool, but still it wants to know how many buffers are required. https://bugzilla.gnome.org/show_bug.cgi?id=730758 2017-09-05 16:20:44 -0400 Nicolas Dufresne * ext/qt/gstqtsink.cc: Request minimum buffer even if need_pool is FALSE When tee is used, it will not request a pool, but still it wants to know how many buffers are required. https://bugzilla.gnome.org/show_bug.cgi?id=730758 2017-09-05 15:30:40 +0100 Ian Jamison * sys/v4l2/gstv4l2object.c: v4l2object: Handle BT2020 for colorspace and transfer This was not fully handled in switches and ub gst_v4l2_object_get_colorspace(); https://bugzilla.gnome.org/show_bug.cgi?id=787313 2017-09-05 15:29:24 +0100 Ian Jamison * sys/v4l2/gstv4l2object.c: v4l2object: Fix colorimetry transfer lookup for 4K video https://bugzilla.gnome.org/show_bug.cgi?id=787160 2017-09-06 11:25:53 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2src.c: v4l2src: Check if caps have changed after try_fmt try_fmt will update the caps colorimetry and interlace-mode. Before this call, those field are missing. The caps equality check was always failing when a spurious reconfigure event was received. 2017-09-06 23:55:38 +1000 Jan Schmidt * gst/isomp4/gstqtmux.c: * gst/isomp4/gstqtmuxmap.c: qtmux: Allow MPEG layer 1/2, AC3 and Opus in qtmux qtmux is supposed to be the muxer that allows all formats, with others (mp4mux and friends) being profile-restricted. 2017-09-05 12:56:44 +0100 Tim-Philipp Müller * gst/rtp/gstrtph265depay.c: rtph265depay: fix keyunit detection https://bugzilla.gnome.org/show_bug.cgi?id=787254 2017-09-05 15:42:17 +0300 Sebastian Dröge * ext/jpeg/gstjpegdec.c: jpegdec: Fix decoding of streams that don't signal exactly twice the height ... and also progressive streams. 2017-09-05 13:28:16 +0300 Sebastian Dröge * ext/jpeg/gstjpegdec.c: jpegdec: Handle interlaced MJPEG streams These come with two JPEG images per buffer of half height than signalled in the container. Changes based on Tim-Philipp Müller's 0.10 branch: https://cgit.freedesktop.org/~tpm/gst-plugins-good/log/?h=jpegdec-interlaced https://bugzilla.gnome.org/show_bug.cgi?id=568555 2017-09-01 15:00:12 +1000 Matthew Waters * ext/gtk/gstgtkglsink.c: * ext/gtk/gtkgstglwidget.c: gtkglsink: expose the created display and context correctly 1. Propagate the GstGLDisplay we create 2. Add the created GstGLContext to the propagated GstGLDisplay Otherwise with multi-branch GL pipelines involving gtkglsink, things will fall apart and errors will be genarated somewhere. 2017-09-04 17:06:39 +0200 Edward Hervey * gst/audioparsers/gstdcaparse.c: dcaparse: Really fix "usage before unmap" Previous patch would try to unref a buffer that was pushed downstream. Instead only unref when/if needed and keep usage of the cleanup: goto block 2017-09-03 15:23:10 +0530 Arun Raghavan * gst/audioparsers/gstdcaparse.c: dcaparse: Don't unmap buffer before accessing data from it The previous patch added a check for a substream header after gst_buffer_unmap(), which is incorrect. 2017-06-24 18:47:14 +0200 Matej Knopp * gst/audioparsers/gstdcaparse.c: dcaparse: preserve DTS HD substream 2017-09-01 15:56:04 +0200 Edward Hervey * ext/qt/gstqtgl.h: qt: Only include qtgui-config.h on qt >= 5.9.0 The file does not exist in previous versions 2017-08-31 14:40:44 +1000 Matthew Waters * ext/qt/gstqtgl.h: qt: the defines for QT_OPENGL_ES_2 have moved Update the includes to account for that 2017-04-26 13:50:41 +0200 Jochen Henneberg * ext/qt/qtwindow.cc: qt: ensure GL_DRAW_FRAMEBUFFER 2017-08-14 18:18:07 +0530 Arun Raghavan * gst/rtp/gstrtpsbcpay.h: rtpsbcpay: Fix some tabs that crept in somehow 2017-08-29 19:13:58 +0300 Sebastian Dröge * gst/rtpmanager/gstrtpbin.c: rtpbin: Also log local and SR RTP running times when doing ntp-sync=true 2017-08-24 17:06:38 +1000 Matthew Waters * gst/rtpmanager/gstrtpbin.c: rtpbin: also create session when creating the send_rtcp_src_%u pad If one requests the send_rtcp_src_%u pad before a recv_rtcp_sink_%u pad, the session/pad would never be created and NULL was returned. Switching the request order would work. https://bugzilla.gnome.org/show_bug.cgi?id=786718 2017-08-26 12:59:35 +0100 Tim-Philipp Müller * tests/files/Makefile.am: * tests/files/cbr_stream.mp3: * tests/files/stream.mp2: * tests/files/vbr_stream.mp3: tests: mpg123audiodec: add files needed by unit tests 2017-08-26 10:10:19 +0100 Tim-Philipp Müller * tests/check/Makefile.am: * tests/check/gst-plugins-good.supp: * tests/check/pipelines/.gitignore: * tests/check/pipelines/lame.c: * tests/check/pipelines/twolame.c: tests: add basic unit test for twolame as well 2017-08-26 09:59:22 +0100 Tim-Philipp Müller * tests/check/pipelines/lame.c: tests: lame: fix build 2017-08-26 09:52:33 +0100 Tim-Philipp Müller * tests/examples/v4l2/.gitignore: tests: ignore another binary 2017-08-26 09:41:13 +0100 Tim-Philipp Müller * REQUIREMENTS: * configure.ac: * docs/plugins/Makefile.am: * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/gst-plugins-good-plugins.hierarchy: * docs/plugins/gst-plugins-good-plugins.interfaces: * docs/plugins/inspect/plugin-twolame.xml: * ext/Makefile.am: * ext/meson.build: * ext/twolame/meson.build: * po/POTFILES.in: twolame: hook up to build system https://bugzilla.gnome.org/show_bug.cgi?id=774252 2017-08-26 09:21:44 +0100 Tim-Philipp Müller Moving twolame mp2 encoder plugin from -ugly https://bugzilla.gnome.org/show_bug.cgi?id=774252 2017-08-26 09:03:08 +0100 Tim-Philipp Müller * REQUIREMENTS: * configure.ac: * docs/plugins/Makefile.am: * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/gst-plugins-good-plugins.hierarchy: * docs/plugins/gst-plugins-good-plugins.interfaces: * docs/plugins/inspect/plugin-lame.xml: * ext/Makefile.am: * ext/lame/Makefile.am: * ext/lame/meson.build: * ext/meson.build: * po/POTFILES.in: * tests/check/Makefile.am: * tests/check/gst-plugins-good.supp: * tests/check/meson.build: lame: hook up to build system https://bugzilla.gnome.org/show_bug.cgi?id=774252 2017-08-25 21:13:58 +0100 Tim-Philipp Müller Moving lame mp3 encoder plugin from -ugly https://bugzilla.gnome.org/show_bug.cgi?id=774252 2017-08-22 12:39:43 +0100 Julien Isorce * ext/qt/gstqsgtexture.cc: * ext/qt/gstqtglutility.cc: * ext/qt/gstqtsink.cc: * ext/qt/qtwindow.cc: qt: fix broken build due to commit 2fd84a6c for gstgl https://bugzilla.gnome.org/show_bug.cgi?id=784779 2017-07-07 16:15:12 +0100 Julien Isorce * ext/gtk/Makefile.am: * ext/gtk/gstgtkglsink.c: * ext/gtk/gtkgstglwidget.c: * tests/examples/gtk/glliveshader.c: gl: do not include GL headers in public gstgl headers Except for gst/gl/gstglfuncs.h It is up to the client app to include these headers. It is coherent with the fact that gstreamer-gl.pc does not require any egl.pc/gles.pc. I.e. it is the responsability of the app to search these headers within its build setup. For example gstreamer-vaapi includes explicitly EGL/egl.h and search for it in its configure.ac. For example with this patch, if an app includes the headers gst/gl/egl/gstglcontext_egl.h gst/gl/egl/gstgldisplay_egl.h gst/gl/egl/gstglmemoryegl.h it will *no longer* automatically include EGL/egl.h and GLES2/gl2.h. Which is good because the app might want to use the gstgl api only without the need to bother about gl headers. Also added a test: cd tests/check && make libs/gstglheaders.check https://bugzilla.gnome.org/show_bug.cgi?id=784779 2017-08-20 20:41:19 -0300 Thibault Saunier * tests/check/meson.build: meson: Link mpeg123audiodec test against gstfft Fixing build error: /run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:150: undefined reference to `gst_fft_s32_new' /run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:151: undefined reference to `gst_fft_s32_window' /run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:151: undefined reference to `gst_fft_s32_fft' /run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:147: undefined reference to `gst_fft_s32_free' 2017-08-20 17:15:33 +0100 Tim-Philipp Müller * tests/check/pipelines/tagschecking.c: tests: tagschecking: remove gst-check-xmp-* temp files when done Also fix temp file creation a bit. 2017-08-20 15:49:12 +0100 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/inspect/plugin-video4linux2.xml: docs: update for changes in git 2017-08-20 15:48:24 +0100 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/gst-plugins-good-plugins.hierarchy: * docs/plugins/inspect/plugin-mpg123.xml: mpg123: add to docs 2017-08-20 13:56:19 +0100 Tim-Philipp Müller * REQUIREMENTS: * configure.ac: * ext/Makefile.am: * ext/meson.build: * ext/mpg123/meson.build: * tests/check/Makefile.am: * tests/check/elements/.gitignore: * tests/check/meson.build: mpg123: hook up to build system https://bugzilla.gnome.org/show_bug.cgi?id=774252 2017-08-20 13:48:48 +0100 Tim-Philipp Müller Moving mpg123 plugin from -ugly 2017-08-17 12:23:25 +0100 Tim-Philipp Müller * README: * common: Automatic update of common submodule From 48a5d85 to 3f4aa96 2017-08-14 15:28:22 +0800 Sky Juan * gst/audioparsers/gstac3parse.c: ac3parse: fix not-linked handling causing glitches when selecting stream Fix chain function not handling not-linked from baseparse. When an input data is separated into 2 buffers, the second buffer would not be pushed into the adapter if baseparse returns not-linked for first buffer. This caused glitches when switching streams and selecting a stream that was previously unselected. https://bugzilla.gnome.org/show_bug.cgi?id=786268 2017-08-16 13:57:50 +0200 Jan Alexander Steffens (heftig) * gst/goom2k1/filters.c: * gst/goom2k1/filters.h: * gst/goom2k1/goom_core.c: goom2k1: Convert source files to UTF-8 Causes problems with the new gtk-doc 1.26 otherwise, but is a good idea in any case. https://bugzilla.gnome.org/show_bug.cgi?id=786364 2017-08-14 03:08:41 -0500 Eduard Sinelnikov * gst/wavparse/gstwavparse.c: * gst/wavparse/gstwavparse.h: wavparse: Add support for growing WAV files With some fixes by me. 2017-08-14 17:39:15 +0530 Arun Raghavan * gst/rtp/gstrtpsbcpay.c: rtpsbcpay: Fix compile error 2017-05-21 16:01:14 +0200 Carlos Rafael Giani * ext/qt/qtitem.cc: * ext/qt/qtitem.h: qmlglsink: Add itemInitialized signal to QML item This is useful for autoplay for example. With autoplay, it is necessary to wait until the scene graph is fully set up. This signal is emitted once the QML item node is ready. So, inside a connected slot, the pipeline's state can be set to PLAYING to automatically start playback as soon as the QML script is loaded. https://bugzilla.gnome.org/show_bug.cgi?id=786246 2017-08-14 10:36:56 +0000 Jochen Henneberg * gst/rtp/gstrtpsbcpay.c: rtpsbcpay: fix if buffer size exceeds MTU The plugin queued buffer data if not all buffer data fit into a single RTP packet. Now RTP packets are pushed as long as enough data is available. 2017-07-27 17:21:48 +0300 George Kiagiadakis * ext/vpx/gstvpxenc.c: vpxenc: discard frames that have been dropped by libvpx This fixes a memory leak. When dropframe-threshold has been set, libvpx may output less frames than the input ones, which causes some GstVideoCodecFrames to queue up in GstVideoEncoder's internal frame queue with no chance of ever being all released. And because the frames keep references to the input buffers, the input buffer pool keeps allocating new buffers and memory usage grows very fast. For example the following pipeline's memory usage grows at a rate of about 1GB per minute! videotestsrc ! capsfilter caps=video/x-raw,width=1920,height=1080,framerate=30/1,format=I420 ! \ vp8enc target-bitrate=1000000 end-usage=cbr dropframe-threshold=95 ! fakesink https://bugzilla.gnome.org/show_bug.cgi?id=783086 2017-08-08 13:11:58 +0200 Mathieu Duponchelle * gst/rtpmanager/rtpstats.c: * gst/rtpmanager/rtpstats.h: rtpstats: fix unsigned integer comparisons. Callers of the API (rtpsource, rtpjitterbuffer) pass clock_rate as a signed integer, and the comparison "<= 0" is used against it, leading me to think the intention was to have the field be typed as gint32, not guint32. This led to situations where we could call scale_int with a MAX_UINT32 (-1) guint32 as the denom, thus raising an assertion. https://bugzilla.gnome.org/show_bug.cgi?id=785991 2017-08-10 14:44:35 +0100 Tim-Philipp Müller * ext/taglib/meson.build: taglib: use -fvisibility=hidden with this C++ plugin in meson too Also pass args as cpp_args. 2017-03-22 15:25:17 +0100 Michael Olbrich * gst/isomp4/qtdemux.c: qtdemux: allow larger files For really long files such as contiguous recordings of a whole day, the 50MB limit is not sufficient. https://bugzilla.gnome.org/show_bug.cgi?id=781458 2017-08-10 16:08:06 +0300 Sebastian Dröge * gst/isomp4/fourcc.h: * gst/isomp4/qtdemux.c: qtdemux: Fix offsets for reading lpcm specific fields We were reading at the completely wrong positions, 16 bytes later in the data. Also add support for high-aligned samples. 2017-08-10 14:01:09 +0100 Tim-Philipp Müller * meson.build: meson: don't export symbols by default Only plugin entry points should be exported. Currently plugins might export more symbols with the meson build, as we don't have the exports regexp there that we pass to libtool. 2017-08-10 15:14:31 +0530 Deepak Srivastava * gst/wavparse/gstwavparse.c: wavparse: Fix memory leak in wavparse element Fixing of leaking the text field of the GstWavParseNote and GstWavParseLabl structure. https://bugzilla.gnome.org/show_bug.cgi?id=785429 2017-08-08 10:37:12 +0000 Cyril Lashkevich * sys/v4l2/gstv4l2bufferpool.c: v4l2bufferpool: Don't mark jpeg frames as deltas JPEG formats are encoded, but they never have keyframe flag. But in fact they are keyframes https://bugzilla.gnome.org/show_bug.cgi?id=785990 2017-08-06 13:06:45 +0100 Philippe Normand * sys/osxvideo/Makefile.am: osxvideo: rename library according to the plugin name https://bugzilla.gnome.org/show_bug.cgi?id=785880 2017-08-02 17:16:21 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2bufferpool.c: v4l2bufferpool: Don't drop buffer ref on qbuf This function no longer take ownership of the buffer. CID 1414800 2017-08-02 17:13:55 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2videodec.c: v4l2: Enable VP9 format This was missing, preventing the encoder and decoder to work properly. This also adds support for camera that would produce VP9 (if that exists). 2017-08-02 12:28:38 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2bufferpool.h: * sys/v4l2/gstv4l2h263enc.h: * sys/v4l2/gstv4l2h264enc.h: * sys/v4l2/gstv4l2mpeg4enc.h: * sys/v4l2/gstv4l2sink.h: * sys/v4l2/gstv4l2src.h: * sys/v4l2/gstv4l2transform.h: * sys/v4l2/gstv4l2videodec.h: * sys/v4l2/gstv4l2videoenc.h: * sys/v4l2/gstv4l2vp8enc.h: * sys/v4l2/gstv4l2vp9enc.h: v4l2: Remove spurious CATEGORY_EXTERN These have been copy pasted all over the place and are not used anymore. All object have it's own category now. This fixes build warning since the VP9 decoder had vp8 category declared. 2017-08-02 10:39:46 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2h264enc.c: * sys/v4l2/gstv4l2mpeg4enc.c: * sys/v4l2/gstv4l2videoenc.c: * sys/v4l2/gstv4l2videoenc.h: * sys/v4l2/gstv4l2vp8enc.c: * sys/v4l2/gstv4l2vp9enc.c: v4l2videoenc: Move the profile/level negotation in the base class This removes duplicated code across different codec. 2017-08-02 09:36:08 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2.c: * sys/v4l2/gstv4l2h263enc.c: * sys/v4l2/gstv4l2h264enc.c: * sys/v4l2/gstv4l2mpeg4enc.c: * sys/v4l2/gstv4l2videoenc.c: * sys/v4l2/gstv4l2videoenc.h: * sys/v4l2/gstv4l2vp8enc.c: * sys/v4l2/gstv4l2vp9enc.c: v4l2videoenc: Turn gst_v4l2_is_video_enc into a helper This reduces the amount of code needed in each codec class. 2017-08-01 16:01:11 -0400 Nicolas Dufresne * sys/v4l2/Makefile.am: * sys/v4l2/gstv4l2.c: * sys/v4l2/gstv4l2vp8enc.c: * sys/v4l2/gstv4l2vp8enc.h: * sys/v4l2/gstv4l2vp9enc.c: * sys/v4l2/gstv4l2vp9enc.h: * sys/v4l2/meson.build: v4l2: Add VP8/9 encoder support 2017-07-31 11:56:05 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Use mmap64 to match libv4l2 signature https://bugzilla.gnome.org/show_bug.cgi?id=785628 2017-08-01 09:22:43 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2bufferpool.c: v4l2bufferpool: Copy flags and timestamp when importing Whenever we import from downstream pool (userptr or dmabuf-import), we should copy over the flags and timestamp, otherwise downstream will not get proper synchronization or will not be able to notice frames that has corruption in it. https://bugzilla.gnome.org/show_bug.cgi?id=785680 2017-07-31 16:09:30 -0400 Nicolas Dufresne * sys/v4l2/Makefile.am: * sys/v4l2/gstv4l2.c: * sys/v4l2/gstv4l2h263enc.c: * sys/v4l2/gstv4l2h263enc.h: * sys/v4l2/meson.build: v4l2: Add H263 Encoder support 2017-07-27 13:51:25 -0400 Nicolas Dufresne * sys/v4l2/Makefile.am: v4l2: Add missing no-inst header 2017-07-26 15:18:01 -0400 Nicolas Dufresne * sys/v4l2/Makefile.am: * sys/v4l2/gstv4l2.c: * sys/v4l2/gstv4l2mpeg4enc.c: * sys/v4l2/gstv4l2mpeg4enc.h: * sys/v4l2/gstv4l2videoenc.c: * sys/v4l2/gstv4l2videoenc.h: * sys/v4l2/meson.build: v4l2: Add interface for MPEG4 encoding 2017-07-27 10:51:07 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2.c: * sys/v4l2/gstv4l2h264enc.c: * sys/v4l2/gstv4l2h264enc.h: * sys/v4l2/gstv4l2transform.c: * sys/v4l2/gstv4l2transform.h: * sys/v4l2/gstv4l2videodec.c: * sys/v4l2/gstv4l2videodec.h: * sys/v4l2/gstv4l2videoenc.c: * sys/v4l2/gstv4l2videoenc.h: v4l2: Ignore register issue and keep probing Don't stop registering the other dynamic plugins if one registration fails. 2017-07-27 14:21:34 +0300 Sebastian Dröge * gst/law/mulaw-decode.c: mulawdec: Unmap input buffer if failing to map the output buffer 2017-07-27 09:22:25 +0530 Satya Prakash Gupta * gst/law/alaw-decode.c: alawdec: Fix Memory leak in error case https://bugzilla.gnome.org/show_bug.cgi?id=785435 2017-07-26 20:36:15 -0400 Nicolas Dufresne * sys/v4l2/ext/v4l2-common.h: * sys/v4l2/ext/v4l2-controls.h: * sys/v4l2/ext/videodev2.h: v4l2: Update external files with latest This is copied from the linux kernel with only some include changes so it works outside the kernel headers. 2017-07-18 10:41:40 +0300 Sebastian Dröge * gst/matroska/matroska-mux.c: matroskamux: For audio tracks, take the default duration from the first buffer ... if we don't have any better idea from the caps. This allows writing SimpleBlocks for a majority of audio streams where the duration of frames is usually fixed. And as a side effect, allows VLC to play streams with Opus as it only works with SimpleBlocks currently: https://trac.videolan.org/vlc/ticket/18545 https://bugzilla.gnome.org/show_bug.cgi?id=784969 2017-07-24 16:45:40 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2allocator.c: * sys/v4l2/gstv4l2bufferpool.c: * sys/v4l2/gstv4l2object.h: v4l2: Fix compilation without libv4l2 2017-07-24 16:13:56 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2allocator.c: * sys/v4l2/gstv4l2bufferpool.c: v4l2: Keep ref to element in allocator/pool Removes the FIXME/Question in the buffer pool and add a ref to the element in the GstAllocator too. This ref is strictly required to keep the GstV4l2Object structure around. 2017-07-24 14:27:05 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2object.h: v4l2object: Removed unused members 2017-07-24 14:19:02 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2allocator.c: * sys/v4l2/gstv4l2allocator.h: * sys/v4l2/gstv4l2bufferpool.c: * sys/v4l2/gstv4l2h264enc.c: * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2object.h: * sys/v4l2/gstv4l2radio.c: * sys/v4l2/gstv4l2sink.c: * sys/v4l2/gstv4l2src.c: * sys/v4l2/gstv4l2videodec.c: * sys/v4l2/gstv4l2videoenc.c: * sys/v4l2/v4l2_calls.c: v4l2: Add run-time environment to enable libv4l2 The library has started preventing a lot of interesting use cases, like CREATE_BUFS, DMABuf, usage of TRY_FMT. As the libv4l2 is totally inactive and not maintained, we decided to disable it. As a convenience we added a run-time environment that let you enable it for testing. GST_V4L2_USE_LIBV4L2=1 This of course only works if you have enabled libv4l2 at build time. 2017-07-17 10:04:02 +0200 Nicola Murino * ext/jpeg/gstjpegenc.c: jpegenc: declare quality property changeable in PLAYING state https://bugzilla.gnome.org/show_bug.cgi?id=785012 2017-07-21 23:34:59 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Fix colorimetry validation While not documented, gst_video_colorimetry_matches() only accepts well known names. Looking at the code and unit test, this seems to be on purpose, so fixing by parsing the string and compating the colorimetry structures. 2017-07-21 15:40:24 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2videoenc.c: v4l2encoder: Fix negotiation error handling The subclass negotiated function will call set_format, if that fails the pool will not be created. We ended up with an assertion. GStreamer-CRITICAL **: gst_buffer_pool_set_active: assertion 'GST_IS_BUFFER_POOL (pool)' failed 2017-07-19 22:25:49 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2src.c: v4l2src: Speedup camera startup by skipping try_fmt In this commit, we enabled skip_try_fmt_probes quirk in order to speed up the start which is known to be disastrously slow with certain USB cameras. This has the side effect that we needed to rewrite the entire negotiation process in a way that we iterate over the possible caps until we find one that works. The new negotiation method consist of extracting a preferred structure from the peer caps and using this to fixate and sort the caps. To reflect the old behaviour, we sort all resolution strictly bigger to the preferred one with the closes one first. The rest is appended, keeping the same order. We then normalize the caps in case there was some list of interlace-mode or colorimetry left. We finally iterate over all fixed caps and try it. 99% of the time, the first or the second one should work, whit the result of a single S_FMT being issues. From there, it will be relatively easy to introduce new negotiation algorithm. The current algorithm is made for optimal image quality with a scaling sink that sets it's window resolution as preference. This the case if for: v4l2src ! videoconvert ! videoscale ! ximagesink Other strategy would be needed to optimize for non-scaling sink like ximagesink or kmssink when the driver does not scale. https://bugzilla.gnome.org/show_bug.cgi?id=785156 2017-07-19 22:09:38 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2object.h: v4l2object: Introduce quirk to skip slow probes skip_try_fmt_probes quirk is set, V4L2 object will not probe for interlace-mode and colorimetry to avoid relying on try_fmt. This quirk will be used by v4l2src to avoid desastrous startup time with slow USB webcams. When this quirk is enabled, caller will have to iterate over the negotiated caps as it may contains unsupported formats. If the peer didn't choose a specific interlace-mode, or colorimetry, the value chosen by the driver is set into the caps. For this reason, when this mode is enabled, gst_v4l2_object_set_format() will require writable caps. https://bugzilla.gnome.org/show_bug.cgi?id=785156 2017-07-19 22:07:32 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: always set the GstV4l2Error on error Some of the error case were conditional to using try_fmt or not. This is slightly unexpected, always set the error so the caller can decide. https://bugzilla.gnome.org/show_bug.cgi?id=785156 2017-07-19 22:05:49 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Minor style fix and useful trace https://bugzilla.gnome.org/show_bug.cgi?id=785156 2017-07-19 22:03:29 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Fix try/s_fmt errors According to the spec,TRY_FMT cannot return EBUSY, though it can return EINVAL if it was not possible to update the format to something supported. https://bugzilla.gnome.org/show_bug.cgi?id=785156 2017-07-19 22:01:26 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Validate colorimetry in S/TRY_FMT This is in preparation for removing slow TRY_FMT probes for colorimetry. As we won't have tried that colorimetry we cannot assume the driver will accept it. https://bugzilla.gnome.org/show_bug.cgi?id=785156 2017-07-19 21:56:14 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Validate field in S/TRY_FMT This is in preparation from removing the slow TRY_FMT probes for interlacing. As we won't have tried that interlace-mode already we need to validate that the driver isn't refusing it. https://bugzilla.gnome.org/show_bug.cgi?id=785156 2017-07-21 19:01:19 +0100 Tim-Philipp Müller * tests/icles/test-accurate-seek.c: tests: icles: fix build Can't do additions/subtractions on void* pointers. 2017-07-21 11:04:17 -0400 Thibault Saunier * tests/icles/test-accurate-seek.c: tests:icles: Fix previous patch by implementing our memmem Using the string version of it will fail on '\0'. 2017-07-21 10:17:00 -0400 Thibault Saunier * tests/icles/test-accurate-seek.c: tests:icles: Do not use memmem GNU extension function As it is not avalaible on windows/msvc and we can use pure GLib for that 2017-07-20 17:21:05 -0400 Nicolas Dufresne * sys/directsound/Makefile.am: directsound: Fix .c file name in Makefile This was broken by accident, bad search and replace. 2017-07-20 11:02:10 -0400 Nicolas Dufresne * Makefile.am: * sys/waveform/Makefile.am: waveform: Fix DLL name to match plugin name https://bugzilla.gnome.org/show_bug.cgi?id=785168 2017-07-20 10:38:32 -0400 Nicolas Dufresne * Makefile.am: * sys/directsound/Makefile.am: * sys/directsound/meson.build: directsound: Fix DLL name to match plugin name https://bugzilla.gnome.org/show_bug.cgi?id=785168 2017-07-19 12:38:03 +0200 Mark Nauwelaerts * gst/isomp4/qtdemux.c: qtdemux: preferably send open-ended segment rather than repeated segment events 2017-07-19 11:27:32 +0200 Mark Nauwelaerts * gst/isomp4/qtdemux.c: qtdemux: fix seeking in fragmented file without mfra random access info ... which no longer worked due to unconditionally clearing sample info and ending up in inconsistent state. Let's tread a bit more carefully and also allow for the old seek handling that resorts to scanning if no mfra info is available. 2017-07-19 10:42:46 +0200 Nicolas Dechesne * sys/v4l2/gstv4l2videodec.c: v4l2videodec: add some useful debug messages Add a couple of useful debug traces , they happened to be useful to debug/investigate a 4K video playback issue with v4l2, so let's make these changes more permanent. Signed-off-by: Nicolas Dechesne https://bugzilla.gnome.org/show_bug.cgi?id=785109 2017-07-18 11:28:37 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2: Fix 4K colorimetry Since 1.6, the transfer function for BT2020 has been changed from BT709 to BT2020_12. It's the same function, but with more precision. As a side effect, the V4L2 colorpsace didn't match GStreamer colorspace. When GStreamer ended up making a guess, it would not match anything supported by V4L2 anymore. This this by using BT2020_12 for BT2020 colorspace and BT2020 transfer function in replacement of BT709 whenever a 4K resolution is detected. 2017-07-14 16:21:38 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Only check CROPCAP for par once The pixel aspect ratio is documented to not change unless the TV Standard is changed. So this mean that this will be uniform across all possible format and resolutions. https://bugzilla.gnome.org/show_bug.cgi?id=784674 2017-07-18 10:01:13 +0300 Sebastian Dröge * tests/check/elements/matroskamux.c: Revert "matroskamux: adjust unit test to modified behaviour" This reverts commit 8fe478c8a7746cd2c63f20d23e97e26e1a0e6192. We're back to previous behaviour 2017-07-18 00:26:11 +0200 Nicola Murino * gst/matroska/matroska-mux.c: * gst/matroska/matroska-mux.h: matroskamux: add properties to control cluster duration https://bugzilla.gnome.org/show_bug.cgi?id=784971 2017-07-17 20:47:26 -0400 Nicolas Dufresne * sys/v4l2/v4l2_calls.c: v4l2: UVC driver is named uvcvideo these days The quirk to avoid probing interlacing didn't work anymore as the driver is now name uvcvideo. This should slightly speed up camera startup. 2017-07-12 21:02:39 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Remove unused defines 2017-07-12 20:53:51 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.h: * sys/v4l2/v4l2_calls.c: v4l2: Make gst_v4l2_get_capabilities static It's not used outside of v4l2_calls.c 2017-07-12 20:49:47 -0400 Nicolas Dufresne * sys/v4l2/Makefile.am: * sys/v4l2/gstv4l2.c: * sys/v4l2/gstv4l2allocator.c: * sys/v4l2/gstv4l2bufferpool.c: * sys/v4l2/gstv4l2colorbalance.h: * sys/v4l2/gstv4l2deviceprovider.c: * sys/v4l2/gstv4l2h264enc.c: * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2object.h: * sys/v4l2/gstv4l2radio.c: * sys/v4l2/gstv4l2transform.c: * sys/v4l2/gstv4l2tuner.c: * sys/v4l2/gstv4l2videodec.c: * sys/v4l2/gstv4l2videoenc.c: * sys/v4l2/gstv4l2vidorient.c: * sys/v4l2/v4l2_calls.c: * sys/v4l2/v4l2_calls.h: v4l2: Merge v4l2_calls.h into gstv4l2object.h First step of a larger cleanup, all function from v4l2_calls are in fact methods on GstV4l2Object. This split makes the code really confusing. This also remove no longer unused macros. 2017-07-15 14:57:49 +0100 Tim-Philipp Müller * ext/mpg123/gstmpg123audiodec.c: mpg123audiodec: fix caps leak The pad template takes its own ref, so we should unref the caps. https://bugzilla.gnome.org/show_bug.cgi?id=784982 2017-07-15 12:48:19 +0100 Tim-Philipp Müller * po/meson.build: meson: po: use glib preset and read language list from LINGUAS Supported since meson 0.37, so we can use it now. 2017-07-14 12:12:56 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Trace unknown fourcc as text This makes it easier to find out what is not supported. 2017-07-14 11:54:57 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2videodec.c: * sys/v4l2/gstv4l2videoenc.c: v4l2: Don't probe for unneeded format For v4l2videodec/enc, we generate elements per formats, and in this case we can speed up the start up by only probing the format we care about. 2017-07-13 12:32:00 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2videodec.c: v4l2videodec: Implement stable element names Before that, each m2m node would be wrapped as a single, multi-format decoder element. As a unique name was needed, we where using the device name, which changes between re-boots. This led to unpredictable element names. In this patch, we generate an element per codec, using v4l2dec name. If there is multiple decoder for the same format, the following elements will be named v4l2dec. https://bugzilla.gnome.org/show_bug.cgi?id=784908 2017-07-13 14:50:44 +0300 Sebastian Dröge * ext/soup/gstsouphttpsrc.c: souphttpsrc: Post an element message with the HTTP headers on the bus too Instead of just sending a sticky event with them downstream. This allows getting the HTTP headers easily in the application, and especially also on errors. 2017-07-13 12:47:02 +0300 Sebastian Dröge * gst/isomp4/qtdemux.c: qtdemux: Fix parsing of RLE depth Regression introduced by 86b427dc70562f891a551ffc9f96cefe1cafcddd https://bugzilla.gnome.org/show_bug.cgi?id=784812 2017-07-12 15:29:32 +1000 Jan Schmidt * ext/qt/gstqtsink.cc: * ext/qt/gstqtsink.h: * ext/qt/qtitem.cc: * ext/qt/qtitem.h: qt: Use a proxy object for access to the QML widget QML can destroy the video widget at any time, leaving us with a dangling pointer. Use a lock and a proxy object to cope with that, and block in the widget destructor if there are ongoing calls into the widget. 2017-07-10 18:57:11 +0200 Philippe Renon * ext/shout2/gstshout2.h: shout2: use gint and guint in place of int and uint this fixes a compilation error with gcc 7.1.0 on mys2 where uint is not defined https://bugzilla.gnome.org/show_bug.cgi?id=784758 2017-07-07 21:15:57 +0900 Yasushi SHOJI * gst/rtp/gstrtpgsmpay.c: rtpgsmpay: fix accidental garbage data before actual payload Do not allocate payload size outbuf if appending payload buffer. The commit 137672ff1824948bda4b1b1967de8c24a0055b67 attached payload to the output buffer but forgot to remove payload allocation. That effectively doubled payload size and add zero'ed or random bytes. Makes the following pipeline work again: gst-launch-1.0 -v audiotestsrc wave=2 ! gsmenc ! rtpgsmpay ! rtpgsmdepay ! gsmdec ! autoaudiosink https://bugzilla.gnome.org/show_bug.cgi?id=784616 2017-07-01 18:57:47 +0200 Mark Nauwelaerts * gst/matroska/matroska-demux.c: matroskademux: segment seek position is expressed in buffer time ... so it need not be corrected again for stream start 2017-07-09 10:54:27 +0200 Mark Nauwelaerts * gst/avi/gstavidemux.c: avidemux: provide average bitrate tag 2017-07-07 23:49:44 -0700 Reynaldo H. Verdejo Pinochet * tests/examples/v4l2/v4l2src-renegotiate.c: examples: v4l2: fix wrong initializations brought by 4e8ad583022671c5 https://bugzilla.gnome.org/show_bug.cgi?id=682770 2015-02-27 13:03:42 -0300 Nicolas Dufresne * tests/examples/v4l2/Makefile.am: * tests/examples/v4l2/meson.build: * tests/examples/v4l2/v4l2src-renegotiate.c: examples: v4l2: add example for v4l2src renegotiation Based on work from Thiago Santos https://bugzilla.gnome.org/show_bug.cgi?id=682770 2017-07-07 11:58:10 +0100 Tim-Philipp Müller * meson.build: meson: find python3 via python3 module https://bugzilla.gnome.org/show_bug.cgi?id=783198 2017-07-05 14:44:41 +0100 Tim-Philipp Müller * tests/check/Makefile.am: tests: rtpbin: fix build in uninstalled setup 2017-07-04 17:42:25 -0400 Olivier Crête * gst/rtpmanager/rtpsession.c: * tests/check/Makefile.am: * tests/check/elements/rtpbin.c: rtpsession: Send EOS if all internal sources sent bye The ones which are not internal should not matter, and we should wait for all sources to have sent their BYEs. And add unit test https://bugzilla.gnome.org/show_bug.cgi?id=773218 2017-07-04 12:24:41 -0400 Olivier Crête * gst/rtpmanager/rtpsession.c: rtpsession: Only send EOS if all sources have been marked bye Now that multiple sender RTPSource can share the same RTPSession, we must not send an EOS unless they're all marked bye. 2017-07-04 11:49:29 -0400 Thibault Saunier * ext/libcaca/gstcacasink.c: caca: Do not include, unused, sys/time.h Which moreover makes building on windows (mingw/msvc) fail: https://ci.appveyor.com/project/thiblahute/gst-build-ge9m5 2017-07-03 11:47:13 -0400 Nicolas Dufresne * gst/rtpmanager/gstrtprtxreceive.c: rtprtxreceive: Add memory and boudary checks This element was not checking if mapping the RTP buffer and the payload worked, and was not checking if the RTX payload was large enough. https://bugzilla.gnome.org/show_bug.cgi?id=784484 2017-07-04 14:58:00 +0900 Seungha Yang * ext/soup/gstsouphttpsrc.c: souphttpsrc: Unset limit on the number of connection if soup session sharing is used Soup allows only up to two connections per host in a session, if we use default value. When session sharing is used, however, more connections might be required in a session. (e.g., multi-audio adaptive streaming case) https://bugzilla.gnome.org/show_bug.cgi?id=784495 2017-07-03 20:27:29 +0100 Tim-Philipp Müller * gst/imagefreeze/gstimagefreeze.c: imagefreeze: fix use-after-free on seek event Get seqnum before unreffing the seek event. https://bugzilla.gnome.org/show_bug.cgi?id=784486 2017-07-01 18:59:14 +0200 Mark Nauwelaerts * gst/isomp4/gstqtmux.c: qtmux: robustify time tracking for sparse subtitle stream 2017-07-01 18:59:07 +0200 Mark Nauwelaerts * gst/isomp4/gstqtmux.c: qtmux: correctly track chunk size of subtitle stream ... thereby ensuring correct chunk offset tracking for all streams. 2017-06-27 15:59:18 +0100 Julien Isorce * gst/rtpmanager/rtpstats.h: rtpstats: fix assertion 'denom > 0' failed gst_util_uint64_scale_int takes a gint as denom parameter whereas ctx->clock_rate is a guint32. It happens when gst_rtp_packet_rate_ctx_reset set clock_rate to -1. So just define clock_rate as gint like it is done in rtpsource.h https://bugzilla.gnome.org/show_bug.cgi?id=784250 2017-06-28 14:05:27 -0500 Matt Fischer * sys/v4l2/gstv4l2bufferpool.c: v4l2: Block recursive calls to resurect_buffer When resurrecting a buffer, the subsequent free call can result in the group-released handler being called again, which causes a recursive loop. This patch blocks the signal handler during the time that it executes, ensuring that the loop will not occur. https://bugzilla.gnome.org/show_bug.cgi?id=759292 2017-06-20 16:39:36 +0200 Jan Alexander Steffens (heftig) * tests/check/elements/souphttpsrc.c: tests: souphttpsrc: Avoid deprecated ssl-ca-file property SoupSession's ssl-ca-file property is deprecated. Use the recommended tls-database property. This is a bit more complex as it requires creating a GTlsFileDatabase object for an absolute (!) path to the CA certificates file. https://bugzilla.gnome.org/show_bug.cgi?id=784005 2017-06-20 16:37:55 +0200 Jan Alexander Steffens (heftig) * tests/check/elements/souphttpsrc.c: tests: souphttpsrc: Avoid deprecated server ssl properties The ssl-cert-file and ssl-key-file properties are deprecated. Use the soup_server_set_ssl_cert_file function to load the files. https://bugzilla.gnome.org/show_bug.cgi?id=784005 2017-06-20 16:34:41 +0200 Jan Alexander Steffens (heftig) * tests/check/elements/souphttpsrc.c: tests: souphttpsrc: Make ssl_cert/key_file static Just a bit of cleanup. https://bugzilla.gnome.org/show_bug.cgi?id=784005 2017-06-20 16:28:35 +0200 Jan Alexander Steffens (heftig) * tests/files/test-cert.pem: tests: souphttpsrc: Update test-cert.pem Recent GnuTLS disregards the Common Name and only looks at the Subject Alternative Name extension. Since our test-cert has no SAN extension, validation fails. Generate a new certificate with SAN. In addition to 127.0.0.1, for good measure make it valid for localhost and ::1, too. https://bugzilla.gnome.org/show_bug.cgi?id=784005 2017-06-29 15:22:39 -0400 Nicolas Dufresne * ext/soup/gstsouphttpsrc.c: souphttpsrc: Allow any type of proxy Currently we only allowed HTTP proxy. Don't filter for the scheme, just check if it looks like an URI. Soup will warn if the URI is invalid or if proxy protocol is not supported. This enables using SOCKS 4/5 which is directly implemented into GIO. https://bugzilla.gnome.org/show_bug.cgi?id=783012 2017-05-24 15:07:51 +0200 Guillaume Desmottes * sys/v4l2/gstv4l2object.c: v4l2: increase by one the number of allocated buffers Increasing this number fix a buffer starvation problem I'm hitting with a "v4l2src ! kmssink" pipeline. kmssink requests 2 buffer as it keeps a reference on the last rendered one. So we were allocating 3 buffers for the pipeline. Once the first 2 buffers have been pushed we ended up with: - one buffer queued in v4l2 - one being pushed - one kept as last rendered If this 3rd buffer is released after that v4l2 used the first one to capture we end up with a buffer starvation problem as no buffer is currently queued in v4l2 for capture. Fixing this by adding one extra buffer to the pipeline so when one buffer is being pushed downstream the other can already be queued to capture the next frame. We were already adding 3 buffers if downstream didn't reply to the allocation query. I reduced this number to 2 to compensate the extra buffer which is now always added. https://bugzilla.gnome.org/show_bug.cgi?id=783049 2017-06-29 18:59:58 +0300 Sebastian Dröge * gst/rtsp/gstrtspsrc.c: rtspsrc: Create send/recv mutexes once, not on every connect() Also fixes a crash caused by freeing an uninitialized mutex in an error case. https://bugzilla.gnome.org//show_bug.cgi?id=784282 2017-06-27 18:20:17 -0500 Matt Fischer * sys/v4l2/gstv4l2allocator.c: v4l2allocator: Fix memory leak with dmabuf This patch fixes a memory leak that is caused if the dmabuf file descriptor dup fails. Previously, _cleanup_failed_alloc() would not unref the memory because mems_allocated had not yet been incremented. https://bugzilla.gnome.org/show_bug.cgi?id=784302 2017-06-28 19:46:04 +0200 Mark Nauwelaerts * gst/isomp4/qtdemux_types.c: qtdemux: specify '_swr' atom as a container atom ... so it is parsed as an mp4 style metadata atom as written by muxer 2017-06-27 20:14:57 +0200 Mark Nauwelaerts * gst/isomp4/atoms.c: qtmux: initialize mdhd language code as undefined 2017-06-22 15:34:42 -0400 Nicolas Dufresne * gst/rtpmanager/gstrtpjitterbuffer.c: * gst/rtpmanager/rtpjitterbuffer.c: * gst/rtpmanager/rtpjitterbuffer.h: rtpjitterbuffer: Add a faststart-min-packets property When set this property will allow the jitterbuffer to start delivering packets as soon as N most recent packets have consecutive seqnum. A faststart-min-packets of zero disables this feature. This heuristic is also used in rtpsource which implements the probation mechanism and a similar heuristic is used to handle long gaps. https://bugzilla.gnome.org/show_bug.cgi?id=769536 2017-06-23 16:18:57 -0400 Thibault Saunier * meson.build: meson: Allow using glib as a subproject 2017-06-26 11:09:48 +0100 Tim-Philipp Müller * tests/examples/audiofx/meson.build: * tests/examples/cairo/meson.build: * tests/examples/equalizer/meson.build: * tests/examples/jack/meson.build: * tests/examples/level/meson.build: * tests/examples/meson.build: * tests/examples/rtp/meson.build: * tests/examples/shapewipe/meson.build: * tests/examples/spectrum/meson.build: * tests/examples/v4l2/meson.build: * tests/meson.build: meson: build examples https://bugzilla.gnome.org/show_bug.cgi?id=784134 2017-06-26 09:47:55 +0100 Tim-Philipp Müller * meson.build: meson: fix with-package-name option https://bugzilla.gnome.org/show_bug.cgi?id=784082 2017-06-26 09:38:46 +0100 Tim-Philipp Müller * tests/icles/meson.build: meson: tests: icles: simplify build file 2017-06-26 00:22:05 +0100 Tim-Philipp Müller * tests/icles/meson.build: * tests/meson.build: meson: build tests/icles/ https://bugzilla.gnome.org/show_bug.cgi?id=784134 2017-06-19 21:13:42 +0200 Mark Nauwelaerts * gst/isomp4/gstqtmux.c: * gst/isomp4/gstqtmux.h: qtmux: correctly calculate overall first_ts to ensure stream sync ... by minding and compensating for the dts_adjustment that may have been introduced in the PTS timeline. 2017-06-10 15:14:41 +0200 Mark Nauwelaerts * gst/matroska/matroska-demux.c: * gst/matroska/matroska-demux.h: matroskademux: track highest known cluster position and time ... to use as a fallback initial duration estimate and to provide for interpolation when scanning for position. 2017-06-10 13:46:20 +0200 Mark Nauwelaerts * gst/matroska/matroska-demux.c: matroskademux: improve and simplify searching for cluster and position ... avoiding inefficiency proportional to file size 2017-06-08 16:55:29 +0200 Mark Nauwelaerts * gst/matroska/matroska-demux.c: matroskademux: increase chunk size when scanning for cluster 2017-06-08 16:39:06 +0200 Mark Nauwelaerts * gst/matroska/matroska-demux.c: matroskademux: maintain variable state when searching for position ... so skipping to next cluster happens efficiently 2017-06-24 00:21:00 +0100 Tim-Philipp Müller * ext/meson.build: * ext/raw1394/meson.build: meson: build raw1394 plugin https://bugzilla.gnome.org/show_bug.cgi?id=784134 2017-06-23 23:50:00 +0100 Tim-Philipp Müller * ext/aalib/meson.build: * ext/meson.build: meson: build aalib plugin https://bugzilla.gnome.org/show_bug.cgi?id=784134 2017-06-23 23:38:27 +0100 Tim-Philipp Müller * ext/libcaca/meson.build: * ext/meson.build: meson: build caca plugin https://bugzilla.gnome.org/show_bug.cgi?id=784134 2017-06-23 20:01:59 +0100 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/inspect/plugin-1394.xml: * docs/plugins/inspect/plugin-aasink.xml: * docs/plugins/inspect/plugin-alaw.xml: * docs/plugins/inspect/plugin-alpha.xml: * docs/plugins/inspect/plugin-alphacolor.xml: * docs/plugins/inspect/plugin-apetag.xml: * docs/plugins/inspect/plugin-audiofx.xml: * docs/plugins/inspect/plugin-audioparsers.xml: * docs/plugins/inspect/plugin-auparse.xml: * docs/plugins/inspect/plugin-autodetect.xml: * docs/plugins/inspect/plugin-avi.xml: * docs/plugins/inspect/plugin-cacasink.xml: * docs/plugins/inspect/plugin-cairo.xml: * docs/plugins/inspect/plugin-cutter.xml: * docs/plugins/inspect/plugin-debug.xml: * docs/plugins/inspect/plugin-deinterlace.xml: * docs/plugins/inspect/plugin-dtmf.xml: * docs/plugins/inspect/plugin-dv.xml: * docs/plugins/inspect/plugin-effectv.xml: * docs/plugins/inspect/plugin-equalizer.xml: * docs/plugins/inspect/plugin-flac.xml: * docs/plugins/inspect/plugin-flv.xml: * docs/plugins/inspect/plugin-flxdec.xml: * docs/plugins/inspect/plugin-gdkpixbuf.xml: * docs/plugins/inspect/plugin-goom.xml: * docs/plugins/inspect/plugin-goom2k1.xml: * docs/plugins/inspect/plugin-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-level.xml: * docs/plugins/inspect/plugin-matroska.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-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-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: docs: update for git master 2017-06-23 19:52:04 +0100 Tim-Philipp Müller * README: * configure.ac: * meson.build: * po/POTFILES.in: * sys/Makefile.am: * sys/meson.build: * sys/sunaudio/Makefile.am: * sys/sunaudio/gstsunaudio.c: * sys/sunaudio/gstsunaudiomixer.c: * sys/sunaudio/gstsunaudiomixer.h: * sys/sunaudio/gstsunaudiomixerctrl.c: * sys/sunaudio/gstsunaudiomixerctrl.h: * sys/sunaudio/gstsunaudiomixeroptions.c: * sys/sunaudio/gstsunaudiomixeroptions.h: * sys/sunaudio/gstsunaudiomixertrack.c: * sys/sunaudio/gstsunaudiomixertrack.h: * sys/sunaudio/gstsunaudiosink.c: * sys/sunaudio/gstsunaudiosink.h: * sys/sunaudio/gstsunaudiosrc.c: * sys/sunaudio/gstsunaudiosrc.h: * tests/check/Makefile.am: * tests/check/elements/.gitignore: * tests/check/elements/sunaudio.c: * tests/check/meson.build: sys: remove sunaudio plugin Even though hooked up to the build system, it's clear that no one has ever built or used this with GStreamer 1.x. It wants to link against libgstinterfaces, which no longer exists. And uses 0.10-style raw audio caps. And the last meaningful change was done in 2009. Let's just remove it. 2017-06-23 19:35:28 +0100 Tim-Philipp Müller * sys/meson.build: * sys/oss4/meson.build: meson: build oss4 plugin https://bugzilla.gnome.org/show_bug.cgi?id=784134 2017-06-23 19:23:52 +0100 Tim-Philipp Müller * sys/meson.build: * sys/oss/meson.build: meson: build oss plugin https://bugzilla.gnome.org/show_bug.cgi?id=784134 2017-06-22 11:38:56 +0300 Sebastian Dröge * gst/rtsp/gstrtspsrc.c: rtspsrc: Actually use the receive lock when receiving, not the send lock 2017-06-22 01:01:40 +1000 Jan Schmidt * tests/examples/qt/qmlsink/CMakeLists.txt: qmlsink example: Add CMakeLists.txt Make it possible to build using cmake instead of qmake 2017-06-22 01:01:40 +1000 Jan Schmidt * ext/qt/qtitem.cc: qt: Remove misleading reference to GTK in qtitem.cc 2017-06-15 11:46:54 -0400 Thibault Saunier * ext/flac/gstflactag.c: flactag: Fix warning with the newly added GstStateChange values https://bugzilla.gnome.org/show_bug.cgi?id=783798 2017-06-15 19:09:26 +0200 Mathieu Duponchelle * gst/rtsp/gstrtspsrc.c: rtspsrc: do not checksum the stream id https://bugzilla.gnome.org/show_bug.cgi?id=783307 2017-06-15 23:31:24 +0100 Tim-Philipp Müller * gst/isomp4/fourcc.h: * gst/isomp4/gstqtmux.c: * gst/isomp4/gstqtmuxmap.c: * gst/isomp4/qtdemux.c: qtmux: add support for muxing PNG Demuxer already supported it. 2017-06-15 10:40:51 +0300 Sebastian Dröge * gst/rtsp/gstrtspsrc.c: * gst/rtsp/gstrtspsrc.h: rtspsrc: Use a mutex for protecting against concurrent send/receives We currently send data to the RTSP connection from multiple threads: whenever a command is to be handled and whenever RTCP is generated. This can cause data corruption or worse if both happen at the same time. As such, protect gst_rtsp_connection_send() and gst_rtsp_connection_receive() calls with a mutex. While this means that we hold a mutex during the IO operation, this is not actually a problem as the IO operation can be interrupted (gst_rtsp_connection_flush()) at any time and is blocking by itself anyway. 2017-06-15 11:50:44 +0300 Sebastian Dröge * gst/isomp4/atoms.c: qtmux: Un-merge the last two stsc entries after serializing The last entry will most likely get new samples added to it in "robust" muxing mode, changing the samples_per_chunk and thus making it wrong to keep the last two entries merged. It will run into an assertion later when adding a new sample to the chunk. Thanks to gdiener@cardinalpeak.com for the analysis of the bug and proposal for a solution. 2017-06-14 00:09:25 +0300 Sebastian Dröge * gst/wavparse/gstwavparse.c: wavparse: Actually clip to upstream size instead of size of the data chunk There might be other chunks after the data chunk, so clipping the chunk size with the data size can lead to a negative number and all following calculations go wrong and cause crashes or worse. This was introduced in 3ac119bbe2c360e28c087cf3852ea769d611b120. https://bugzilla.gnome.org/show_bug.cgi?id=783760 2017-06-13 17:40:19 +0300 Vivia Nikolaidou * gst/multifile/gstsplitmuxsink.c: splitmux: Drop allocation queries They can cause us to deadlock, while we're waiting for a new frame and upstream is waiting for the allocation query to be answered before sending a frame https://bugzilla.gnome.org/show_bug.cgi?id=783753 2017-06-01 02:03:27 +0200 Mathieu Duponchelle * gst/rtsp/gstrtspsrc.c: * gst/rtsp/gstrtspsrc.h: rtspsrc: uniquify stream ids https://bugzilla.gnome.org/show_bug.cgi?id=783307 2017-06-07 12:47:59 -0400 Thibault Saunier * tests/check/meson.build: meson: Do not use path separator in test names Avoiding warnings like: WARNING: Target "elements/audioamplify" has a path separator in its name. 2017-06-06 11:29:29 -0400 Nicolas Dufresne * tests/examples/v4l2/camctrl.c: Fix v4l2 example 2017-06-05 16:55:13 +0900 Jimmy Ohn * gst/isomp4/qtdemux.c: qtdemux: remove not needed code remove not needed code about res variable. https://bugzilla.gnome.org/show_bug.cgi?id=783422 2017-06-02 14:01:17 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc: Make sure min_buffers is valid When upstream does no use the v4l2videoenc pool, we need to activate that internal pool. Though, we relied the driver to provide a minimum required buffer, which Qualcomm Venus driver don't currently provide. https://bugzilla.gnome.org/show_bug.cgi?id=783361 2017-06-02 11:30:15 +0100 Tim-Philipp Müller * gst/rtp/gstrtph265depay.c: rtph265depay: fix caps leak 2017-05-26 16:30:06 +0100 Tim-Philipp Müller * gst/rtp/gstrtph264depay.c: rtph264depay: simplify buffer accumulation control flow There is no difference between pushing out a buffer directly with gst_rtp_base_depayload_push() and returning it from the process function. The base class will just call _depayload_push() on the returned buffer as well. So instead of marshalling buffers through three layers and back, just push them from one place in handle_nal() and always return NULL from the process vfunc. This simplifies the code a little. Also rename _push_fragmentation_unit() to _finish_fragmentation_unit() for clarity. Push sounds like it means being pushed out, whereas it might just be pushed into an adapter. This change has the side-effect that multiple NALs in a single STAP (such as SPS/PPS) may no longer be pushed out as a single buffer if we output NALs in byte-stream format (i.e. not aggregate AUs), but that shouldn't really make any difference to anyone. 2017-05-30 22:23:10 +0200 Juan Navarro * gst/rtpmanager/rtpsession.c: rtpsession: print value of unknown RTCP Payload Type This adds printing the actual value of any unknown RTCP PT to the already existing WARNING log message. https://bugzilla.gnome.org/show_bug.cgi?id=783248 2017-05-26 17:52:19 +0200 Edward Hervey * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc: Don't leak VideoCodecState CID #1409852 2017-05-26 17:48:01 +0200 Edward Hervey * ext/dv/gstdvdemux.c: dvdemux: Remove un-needed variable check if pad wasn't present by now everything would have broken before CID #1409854 2017-05-25 15:26:37 +0200 Piotr Drąg * po/POTFILES.in: po: update POTFILES https://bugzilla.gnome.org/show_bug.cgi?id=783093 2017-05-25 10:09:04 +0800 Haihua Hu * ext/qt/qtwindow.cc: glframebuffer: check frame buffer status need use specific fbo target https://bugzilla.gnome.org/show_bug.cgi?id=783065 2017-05-24 14:19:27 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2videoenc.c: v4l2videoenc: Remove unused function 2017-05-21 15:29:11 +0200 Nicolas Dufresne * sys/v4l2/ext/types-compat.h: v4l2: Don't redefine __bitwise if already set https://bugzilla.gnome.org/show_bug.cgi?id=728438 2017-05-23 14:40:56 -0400 Ayaka * sys/v4l2/Makefile.am: * sys/v4l2/gstv4l2.c: * sys/v4l2/gstv4l2h264enc.c: * sys/v4l2/gstv4l2h264enc.h: * sys/v4l2/gstv4l2videoenc.c: * sys/v4l2/gstv4l2videoenc.h: * sys/v4l2/meson.build: v4l2: Add Video Encoder support This implements H264 encoding support using generic V4L2 interface. It is reported to work with Samsung MFC driver, IXM.6 CODA driver and Qualcomm mainline Venus driver. Other platform should be supported as none of this work is platform specific. The implementation consist of a GstV4l2VideoEnc base class, which implements the core streaming functionality. This base class is implemented by GstV4l2H264Enc class that implements the caps negotiation specific to H264 profiles and level. This implementation supports hardware with multiple H264 encoder. Though, to make it simplier to use, the first discovered H264 encoder will be named v4l2h264enc. Other encoder found during discovery will have a unique name like v4l2video0h264enc. This work is the combined work of multiple developpers in the last 3 years. Thanks to all of the contributors: Ayaka Frédéric Sureau Jean-Michel Hautbois Nicolas Dufresne Pablo Anton https://bugzilla.gnome.org/show_bug.cgi?id=728438 2017-05-23 14:36:37 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2videodec.c: v4l2videodec: Remove unused forward declaration https://bugzilla.gnome.org/show_bug.cgi?id=728438 2015-10-05 16:30:46 +0100 Ayaka * sys/v4l2/gstv4l2bufferpool.c: v4l2pool: Fix wrong error message https://bugzilla.gnome.org/show_bug.cgi?id=728438 2015-10-05 16:20:19 +0100 Ayaka * sys/v4l2/gstv4l2object.c: v4l2: increase pre-allocated encoded buffer size As of today, the MFC encoder often need to exceed that 1 MB size for encoded buffer we fixed earlier for decoding. https://bugzilla.gnome.org/show_bug.cgi?id=728438 2017-05-24 16:32:30 +0100 Tim-Philipp Müller * gst/rtp/gstrtpopusdepay.c: rtpopusdepay: minor perf improvements Use the ::process_rtp_packet() vfunc to avoid mapping the RTP buffer twice. gst_rtp_buffer_get_payload_buffer() returns a new sub-buffer which will always be writable, so no need to make it writable. 2017-05-24 16:14:54 +0100 Tim-Philipp Müller * gst/rtp/gstrtpopusdepay.c: * gst/rtp/gstrtpopuspay.c: rtp: opus: use existing utility funcs for copying/dropping metas We had our own copies of those while the code was in -bad, but now we can use the existing utility functions instead of re-implementing them. 2017-05-24 12:57:10 +0100 Tim-Philipp Müller * gst/rtp/gstrtp.c: * gst/rtp/gstrtpL16depay.c: * gst/rtp/gstrtpL24depay.c: * gst/rtp/gstrtpac3depay.c: * gst/rtp/gstrtpac3pay.c: * gst/rtp/gstrtpamrdepay.c: * gst/rtp/gstrtpamrpay.c: * gst/rtp/gstrtpbvdepay.c: * gst/rtp/gstrtpceltdepay.c: * gst/rtp/gstrtpceltpay.c: * gst/rtp/gstrtpg722depay.c: * gst/rtp/gstrtpg723pay.c: * gst/rtp/gstrtpg726depay.c: * gst/rtp/gstrtpg729depay.c: * gst/rtp/gstrtpg729pay.c: * gst/rtp/gstrtpgsmdepay.c: * gst/rtp/gstrtpgsmpay.c: * gst/rtp/gstrtph261depay.c: * gst/rtp/gstrtph261pay.c: * gst/rtp/gstrtph263depay.c: * gst/rtp/gstrtph263pay.c: * gst/rtp/gstrtph263pdepay.c: * gst/rtp/gstrtph263ppay.c: * gst/rtp/gstrtph264depay.c: * gst/rtp/gstrtph264pay.c: * gst/rtp/gstrtph265depay.c: * gst/rtp/gstrtph265pay.c: * gst/rtp/gstrtpilbcdepay.c: * gst/rtp/gstrtpj2kdepay.c: * gst/rtp/gstrtpj2kpay.c: * gst/rtp/gstrtpjpegdepay.c: * gst/rtp/gstrtpjpegpay.c: * gst/rtp/gstrtpmp4adepay.c: * gst/rtp/gstrtpmp4apay.c: * gst/rtp/gstrtpmp4vdepay.c: * gst/rtp/gstrtpmp4vpay.c: * gst/rtp/gstrtpmpadepay.c: * gst/rtp/gstrtpmpapay.c: * gst/rtp/gstrtpmpvdepay.c: * gst/rtp/gstrtpmpvpay.c: * gst/rtp/gstrtppcmadepay.c: * gst/rtp/gstrtppcmudepay.c: * gst/rtp/gstrtpqcelpdepay.c: * gst/rtp/gstrtpsbcdepay.c: * gst/rtp/gstrtpsbcpay.c: * gst/rtp/gstrtpsirendepay.c: * gst/rtp/gstrtpspeexdepay.c: * gst/rtp/gstrtpspeexpay.c: * gst/rtp/gstrtpsv3vdepay.c: * gst/rtp/gstrtptheorapay.c: * gst/rtp/gstrtputils.c: * gst/rtp/gstrtputils.h: * gst/rtp/gstrtpvorbispay.c: * gst/rtp/gstrtpvp8depay.c: * gst/rtp/gstrtpvp8pay.c: * gst/rtp/gstrtpvp9depay.c: * gst/rtp/gstrtpvp9pay.c: * gst/rtp/gstrtpvrawdepay.c: * gst/rtp/gstrtpvrawpay.c: rtp: cache meta tag quarks and add more utility functions for metas Every g_quark_from_static_string() is a hash table lookup serialised on the global quark lock in GLib. Let's just look up the two quarks we need once and cache them locally for future use. While we're at it, add new utility functions for the two most commonly used tags (audio + video). Make first argument a gpointer so we don't have to cast and make the code ugly. These are used for logging purposes only anyway. 2017-05-24 11:33:05 +0530 vijay * gst/audioparsers/gstaacparse.c: aacparse : Fix, Caps were not set while reusing aacparse While reusing aacparse caps were not set.This fix enables aacparse to reuse in same pipeline. https://bugzilla.gnome.org/show_bug.cgi?id=783027 2017-05-21 17:45:34 +0100 Tim-Philipp Müller * Makefile.am: * config.h.meson: * meson.build: meson: don't need config.h.meson any longer 2017-05-21 15:26:12 +0200 Carlos Rafael Giani * ext/qt/gstqsgtexture.cc: * ext/qt/gstqsgtexture.h: qmlglsink: Add dummy texture that is shown as placeholder for NULL buffers https://bugzilla.gnome.org/show_bug.cgi?id=782917 2017-04-24 16:55:22 +0300 George Kiagiadakis * ext/shout2/gstshout2.c: * ext/shout2/gstshout2.h: shout2send: use non-blocking I/O and a configurable network operations timeout This allows timing out on network errors much earlier (currently it takes ~15min to timeout) and we can still unlock and change state in the meantime. https://bugzilla.gnome.org/show_bug.cgi?id=571722 2017-05-21 10:37:19 +0100 Tim-Philipp Müller * ext/taglib/meson.build: * meson.build: meson: make C++ compiler optional It's only needed for the taglib plugin which is optional. 2017-05-21 10:33:43 +0100 Tim-Philipp Müller * gst/multifile/multifile.vproj: multifile: remove some cruft 2017-05-20 17:09:52 +0200 Josep Torra * sys/osxaudio/gstosxcoreaudio.c: osxaudio: fixes playback of mono streams with no channel-mask field in caps Fixes a negotiation error seen when trying to playback of a .MOV file with a mono AAC audio stream decoded by avcdec_aac that doesn't set channel-mask field but sink was requiring channel-mask=0x3. 2015-09-06 20:49:59 +0530 Ravi Kiran K N * ext/dv/gstdvdemux.c: * ext/dv/gstdvdemux.h: dvdemux: Push tag event to both pads Tags are pushed to "videosrcpad"/"audiosrcpad" in gst_dvdemux_add_pad() method, however they will be NULL in this method, hence tags are not pushed. Instead, send tag event to "pad" created gst_dvdemux_add_pad(). Signal no-more-pads when both pads are created https://bugzilla.gnome.org/show_bug.cgi?id=743657 2017-05-20 14:53:42 +0100 Tim-Philipp Müller * meson.build: * meson_options.txt: * tests/check/elements/autodetect.c: meson: add options to set package name and origin https://bugzilla.gnome.org/show_bug.cgi?id=782172 2017-05-20 11:40:33 +0100 Luis de Bethencourt * gst/multifile/gstmultifilesink.c: multifilesink: fix property name in example pipeline Since the move from CVS the property name of the documentation example has been filename instead of location. Users trying the gst-launch command as is will get: no property name "filename" in element Fixing it. 2017-05-20 11:13:40 +0200 Josep Torra * sys/osxvideo/cocoawindow.m: * sys/osxvideo/osxvideosink.m: osxvideo: fix macOS 10.12 deprecation warnings Add #defines to allow older versions of macOS to use the new constant names. 2017-05-13 09:05:57 +0200 Edward Hervey * gst/isomp4/fourcc.h: * gst/isomp4/qtdemux.c: * gst/isomp4/qtdemux_types.c: isomp4: Safely ignore [skip] atoms Instead of warning about them 2017-05-18 15:23:14 +0300 Simon Himmelbauer * ext/qt/gstqtglutility.cc: qt: Use GST_GL_HAVE_PLATFORM_CGL instead of GST_GL_HAVE_PLATFORM_COCOA The latter is not used/available anymore since years. Also fix a typo in the include path for the Cocoa GL display header. 2017-05-18 15:10:30 +0300 Sebastian Dröge * ext/soup/gstsouphttpsrc.c: * ext/soup/gstsouphttpsrc.h: souphttpsrc: Make session sharing thread-safe on our side https://bugzilla.gnome.org/show_bug.cgi?id=780140 2017-05-18 10:43:19 +0100 Tim-Philipp Müller * ext/shout2/gstshout2.c: * gst/audiofx/gstscaletempoplugin.c: Fix up package name and origin in some plugins 2017-05-15 19:51:47 +0300 Sebastian Dröge * sys/v4l2/gstv4l2allocator.c: * sys/v4l2/gstv4l2bufferpool.c: gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent https://bugzilla.gnome.org/show_bug.cgi?id=743062 2017-05-15 14:22:34 +0300 Sebastian Dröge * ext/raw1394/gst1394clock.c: 1394: Sink the clock reference in the constructor This is now needed as GstClock does not do that internally anymore, because that broke bindings. https://bugzilla.gnome.org/show_bug.cgi?id=743062 2017-05-17 10:58:05 +0800 Haihua Hu * ext/qt/gstqtglutility.cc: qml: Add EGL platform support for x11 backend Add support for EGL platform when x11 is available. This can work e.g. on imx6 platform. https://bugzilla.gnome.org/show_bug.cgi?id=782718 2017-04-28 23:05:35 -0400 Nicolas Dufresne * ext/pulse/pulseutil.h: pulse: Accept MPEG 1 layer 3 version 2.5 https://bugzilla.gnome.org/show_bug.cgi?id=781929 2017-05-16 13:50:16 -0400 Nicolas Dufresne * configure.ac: * ext/aalib/Makefile.am: * ext/cairo/Makefile.am: * ext/dv/Makefile.am: * ext/flac/Makefile.am: * ext/gdk_pixbuf/Makefile.am: * ext/jack/Makefile.am: * ext/jpeg/Makefile.am: * ext/libcaca/Makefile.am: * ext/libpng/Makefile.am: * ext/pulse/Makefile.am: * ext/raw1394/Makefile.am: * ext/shout2/Makefile.am: * ext/soup/Makefile.am: * ext/speex/Makefile.am: * ext/taglib/Makefile.am: * ext/vpx/Makefile.am: * ext/wavpack/Makefile.am: * gst/alpha/Makefile.am: * gst/apetag/Makefile.am: * gst/audiofx/Makefile.am: * gst/audioparsers/Makefile.am: * gst/auparse/Makefile.am: * gst/autodetect/Makefile.am: * gst/avi/Makefile.am: * gst/cutter/Makefile.am: * gst/debugutils/Makefile.am: * gst/deinterlace/Makefile.am: * gst/dtmf/Makefile.am: * gst/effectv/Makefile.am: * gst/equalizer/Makefile.am: * gst/flv/Makefile.am: * gst/flx/Makefile.am: * gst/goom/Makefile.am: * gst/goom2k1/Makefile.am: * gst/icydemux/Makefile.am: * gst/id3demux/Makefile.am: * gst/imagefreeze/Makefile.am: * gst/interleave/Makefile.am: * gst/isomp4/Makefile.am: * gst/law/Makefile.am: * gst/level/Makefile.am: * gst/matroska/Makefile.am: * gst/monoscope/Makefile.am: * gst/multifile/Makefile.am: * gst/multipart/Makefile.am: * gst/replaygain/Makefile.am: * gst/rtp/Makefile.am: * gst/rtpmanager/Makefile.am: * gst/rtsp/Makefile.am: * gst/shapewipe/Makefile.am: * gst/smpte/Makefile.am: * gst/spectrum/Makefile.am: * gst/udp/Makefile.am: * gst/videobox/Makefile.am: * gst/videocrop/Makefile.am: * gst/videofilter/Makefile.am: * gst/videomixer/Makefile.am: * gst/wavenc/Makefile.am: * gst/wavparse/Makefile.am: * gst/y4m/Makefile.am: * sys/directsound/Makefile.am: * sys/oss/Makefile.am: * sys/oss4/Makefile.am: * sys/osxaudio/Makefile.am: * sys/osxvideo/Makefile.am: * sys/sunaudio/Makefile.am: * sys/v4l2/Makefile.am: * sys/waveform/Makefile.am: * sys/ximage/Makefile.am: Remove plugin specific static build option Static and dynamic plugins now have the same interface. The standard --enable-static/--enable-shared toggle are sufficient. 2017-05-16 14:07:56 -0400 Nicolas Dufresne * ext/twolame/Makefile.am: Remove plugin specific static build option Static and dynamic plugins now have the same interface. The standard --enable-static/--enable-shared toggle are sufficient. 2017-05-16 14:07:56 -0400 Nicolas Dufresne * ext/lame/Makefile.am: Remove plugin specific static build option Static and dynamic plugins now have the same interface. The standard --enable-static/--enable-shared toggle are sufficient. 2017-05-16 14:07:56 -0400 Nicolas Dufresne * ext/mpg123/Makefile.am: Remove plugin specific static build option Static and dynamic plugins now have the same interface. The standard --enable-static/--enable-shared toggle are sufficient. 2017-05-16 14:05:52 -0400 Nicolas Dufresne * ext/gtk/Makefile.am: Remove plugin specific static build option Static and dynamic plugins now have the same interface. The standard --enable-static/--enable-shared toggle are sufficient. 2017-05-16 14:05:52 -0400 Nicolas Dufresne * ext/qt/Makefile.am: Remove plugin specific static build option Static and dynamic plugins now have the same interface. The standard --enable-static/--enable-shared toggle are sufficient. 2017-05-12 17:53:57 +0300 Vivia Nikolaidou * gst/multifile/gstsplitmuxsink.c: * gst/multifile/gstsplitmuxsink.h: splitmuxsink: Add alignment-threshold argument If a non-reference stream is behind the reference stream by an amount of time smaller than the alignment threshold (in nsec), it counts as being after it. https://bugzilla.gnome.org/show_bug.cgi?id=782563 2017-05-16 12:56:15 +0300 Vivia Nikolaidou * gst/isomp4/gstqtmux.c: qtmux: Do not check timecode data for mp4 container Timecode trak is only supported for mov right now, not for mp4. That code would otherwise create an invalid trak if the muxed video contained timecode metadata. https://bugzilla.gnome.org/show_bug.cgi?id=782684 2017-05-11 20:01:15 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: When accepting renegotiation, just return TRUE and change nothing We only accept new caps if they are basically the same. We don't want to reset anything as if the caps are new, otherwise various state could get out of sync with the current run. 2017-05-11 19:21:22 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: In prefill mode, only pad buffers with > 0 sized memories as needed Adding a 0-byte memory has not much effect. Also add some debug output. 2017-05-10 15:58:41 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Lateness is in QT timescale, diff in GstClockTime Print the right one in debug output to get meaningful numbers. 2017-05-10 14:31:40 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Error out if a gap edit list has to be written in prefill mode We don't have any space reserved for this in the moov and the pre-finalized moov would have broken A/V synchronization. Error out here now 2017-05-10 11:42:09 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Calculate with reserved moov size instead of last moov size We have some padding added after the initial moov, so a bigger updated moov can be handled to some degree and is expected. Previously we just ignored the padding and errored out in cases when the padding would've just been enough. 2017-05-10 11:12:23 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Error out directly if sending filler data results in a flow error CID 1405994 2017-05-09 16:02:43 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: In prefill mode, handle the case when only the first chunk was ever used 2017-05-09 09:47:10 -0400 Nicolas Dufresne * ext/qt/gstplugin.cc: qmlgl: Make the plugin name match the pugin file name 2017-03-16 15:12:07 +0200 Sebastian Dröge * ext/soup/gstsouphttpsrc.c: souphttpsrc: Use a in-memory cookie jar by default in sessions we created This ensures that cookies are stored and used as set by the server, and shared with other souphttpsrc that use the same SoupSession. https://bugzilla.gnome.org/show_bug.cgi?id=780140 2017-03-16 13:58:41 +0200 Sebastian Dröge * ext/soup/gstsouphttpsrc.c: * ext/soup/gstsouphttpsrc.h: souphttpsrc: Implement soup session sharing souphttpsrc now shares its SoupSession with other elements in the pipeline via GstContext if possible (session-wide settings are all the defaults), or if the context was forced by the application. This allows multiple souphttpsrcs to reuse connections, cookies, etc. https://bugzilla.gnome.org/show_bug.cgi?id=780140 2017-03-09 10:15:34 +0200 Sebastian Dröge * gst/isomp4/atoms.c: * gst/isomp4/atoms.h: * gst/isomp4/gstqtmux.c: * gst/isomp4/gstqtmux.h: qtmux: Add new prefill recording mode This sets up a moov with the correct sample positions beforehand and only works with constant framerate, I-frame only streams. Currently only support for ProRes and raw audio is implemented but adding new codecs is just a matter of defining appropriate maximum frame sizes. https://bugzilla.gnome.org/show_bug.cgi?id=781447 2017-03-29 14:01:25 +0300 Sebastian Dröge * gst/isomp4/gstqtmux.c: * gst/isomp4/gstqtmux.h: qtmux: Error out on discontinuities/gaps when muxing raw audio When muxing raw audio, we have no way of storing timestamps but are just storing a continuous stream of audio samples. If the difference between the expected and the real timestamp becomes to big, we should error out instead of silently creating files with wrong A/V sync. https://bugzilla.gnome.org/show_bug.cgi?id=780679 2017-05-09 11:41:25 +0200 Sebastian Dröge * ext/vpx/gstvpxdec.c: vpxdec: Set fb->priv to NULL after freeing just in case https://bugzilla.gnome.org/show_bug.cgi?id=782359 2017-05-08 15:22:00 +0000 Dustin Spicuzza * sys/directsound/gstdirectsoundsink.c: * sys/directsound/gstdirectsoundsink.h: directsoundsink: Use GstClock API instead of Sleep() for waiting It's more accurate and allows cancellation. https://bugzilla.gnome.org/show_bug.cgi?id=773681 2017-05-08 15:05:45 +0000 Tim-Philipp Müller * ext/vpx/gstvp9dec.c: vpx: fix build against older libvpx versions Such as 1.3.0 as on raspbian. 2017-05-03 23:23:10 +0530 Nirbheek Chauhan * sys/directsound/gstdirectsoundsink.c: directsoundsink: Fix corner case causing large CPU usage We were unnecessarily looping/goto-ing repeatedly when we had exactly the amount of data as the free space, and also when the free space was too small. This, as it turns out, is a very common scenario with Directsound on Windows. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=773681 We have to do polling here because the event notification API that Directsound exposes cannot be used with live playback since all events must be registered in advance with the capture buffer, you cannot add/remove them once playback has begun. Directsoundsrc had the same problem. See also: https://bugzilla.gnome.org/show_bug.cgi?id=781249 2017-05-03 23:31:00 +0530 Nirbheek Chauhan * sys/directsound/gstdirectsoundsink.c: directsoundsink: Clean up some debug logging Don't need to print the function name, gstreamer does it for you. https://bugzilla.gnome.org/show_bug.cgi?id=773681 2017-05-06 22:30:20 +0100 Tim-Philipp Müller * gst/matroska/matroska-ids.h: matroskademux: improve index memory usage Re-arrange order of index entry struct members to avoid padding bytes in the middle of the struct, thus potentially reducing the overall size of the struct and reducing memory used by the index. On Linux x86_64 the size goes down from 32 bytes to 24 bytes for each index entry. 2017-05-04 18:59:14 +0300 Sebastian Dröge * configure.ac: * meson.build: Back to development