=== release 1.11.91 === 2017-04-27 Sebastian Dröge * configure.ac: releasing 1.11.91 2017-04-27 15:28:02 +0300 Sebastian Dröge * po/LINGUAS: * po/el.po: * po/fur.po: po: Update translations 2017-04-27 12:56:27 +0300 Sebastian Dröge * gst/isomp4/qtdemux.c: qtdemux: Don't crash in debug output if stream==NULL That case is correctly handled below but not in the debug output. https://bugzilla.gnome.org/show_bug.cgi?id=781270 2017-04-25 17:11:27 +0300 Sebastian Dröge * gst/isomp4/qtdemux.c: qtdemux: Don't perform seeks with inconsistent seek values If gst_segment_do_seek() fails, we shouldn't try seeking on that resulting segment but just error out. Crashes further down the line otherwise. 2017-04-24 20:27:49 +0100 Tim-Philipp Müller * common: Automatic update of common submodule From 60aeef6 to 48a5d85 2017-04-24 17:31:04 +0100 Tim-Philipp Müller * tests/check/Makefile.am: * tests/check/elements/rtp-payloading.c: tests: rtp-payloading: add test for rtph264depay avc/byte-stream output Make sure avc output doesn't contain SPS/PPS inline, but byte-stream output does. 2017-04-24 17:29:37 +0100 Tim-Philipp Müller * gst/rtp/gstrtph264depay.c: rtph264depay: don't insert SPS/PPS inline for AVC output SPS/PPS are in the caps in this case and shouldn't be in the stream data. 2017-04-21 19:09:14 +0100 Sebastian Dröge * gst/rtsp/gstrtspsrc.c: rtspsrc: Chain up to the parent class' provide_clock() implementation If no clock was provided directly by rtspsrc. This behaviour was removed by f8013487c91a6ffc552a4b25aa1a70f0bd5377f8 and results in rtspsrc not providing the system clock via the rtpjitterbuffer. As a result, if another element like an audio sink, provides a clock, the pipeline would select that (when going to PAUSED/PLAYING again later). Audio clocks usually don't progress in PAUSED, and thus our live source won't be able to use the clock to produce data, making the sink never preroll and everything is stuck. 2017-04-20 11:22:15 +0200 Jürgen Sachs * gst/isomp4/qtdemux.c: qtdemux: reset sample_description_id to default Fixes stream where sample_description_id is specified in the tfhd https://bugzilla.gnome.org/show_bug.cgi?id=778337 2017-04-20 13:16:24 +0100 Sebastian Dröge * gst/multifile/gstsplitmuxsink.c: splitmuxsink: Don't use an explicit name for requesting audio pads ... unless the muxer uses the same audio pad template name as splitmuxsink. We can't request a pad called "audio_0" on a muxer that wants pads to be "sink_%d". 2017-02-23 09:31:36 +0900 ChangBok Chae * gst/flv/gstflvdemux.c: flvdemux: remove duplicated segment initialization It's also done in gst_flv_demux_cleanup(). https://bugzilla.gnome.org/show_bug.cgi?id=779106 2017-04-20 20:17:35 +1000 Xavier Claessens * gst/multifile/gstsplitmuxsink.c: splitmuxsink: Correctly catch FLUSH events in probes https://bugzilla.gnome.org/show_bug.cgi?id=767498 2017-04-19 12:28:12 +0100 Tim-Philipp Müller * gst/rtpmanager/gstrtpsession.c: * gst/rtpmanager/rtpsession.c: * gst/rtpmanager/rtpsession.h: Revert "rtpbin: pipeline gets an EOS when any rtpsources byes" This reverts commit eeea2a7fe88a17b15318d5b6ae6e190b2f777030. It breaks EOS in some sender pipelines, see https://bugzilla.gnome.org/show_bug.cgi?id=773218#c20 2017-04-14 17:01:49 +0200 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Reset adapter in more discontinuity cases In push mode we process as much as possible in the adapter. When we receive a DISCONT buffer which we can't match to an actual sample (based on the existing sample table) and there is still data remaining in the incoming adapter,there is one of two cases happening: 1) We are doing reverse playback, in which case we should flush out all pending data 2) We have leftover data from the previous incoming buffer... which we can't do anything about. For the second case, make sure we flush out the remaining data so that we can start parsing again from scratch. https://bugzilla.gnome.org/show_bug.cgi?id=781319 2017-04-14 10:56:41 +0200 Edward Hervey * gst/rtsp/gstrtspsrc.c: rtspsrc: Use GST_ELEMENT_ERROR_WITH_DETAILS Allows the application to know the exact status code that was returned by the server in a programmatic fashion. https://bugzilla.gnome.org/show_bug.cgi?id=781304 2017-04-16 18:47:56 +0900 Seungha Yang * gst/isomp4/qtdemux.c: qtdemux: Fix leak on QtDemuxStreamStsdEntry Fix unit test failure https://bugzilla.gnome.org/show_bug.cgi?id=781362 2017-04-14 13:38:53 +0300 Sebastian Dröge * gst/isomp4/atoms.c: * gst/isomp4/atoms.h: * gst/isomp4/gstqtmux.c: qtmux: Fix timescale of timecode tracks They should have ideally the same timescale of the video track, which we can't guarantee here as in theory timecode configuration and video framerate could be different. However we should set a correct timescale based on the framerate given in the timecode configuration, and not just use the framerate numerator. 2017-04-13 13:25:06 +0200 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Properly reset demuxer when all streams are EOS Make sure offset and neededbytes are properly resetted when all streams are EOS in push-mode. Avoids cases when some data might still be pushed by upstream (because it didn't yet see the resulting GST_FLOW_EOS yet) and qtdemux gets completely lost. https://bugzilla.gnome.org/show_bug.cgi?id=781266 2017-04-13 08:00:30 +0200 Edward Hervey * ext/soup/gstsouphttpsrc.c: souphttpsrc: Make more usage of error macro And make sure we actually use the provided soup_msg argument in the macro 2017-04-12 18:46:53 +0530 Nirbheek Chauhan * ext/meson.build: meson: Print message when disabling taglib on MSVC 2017-04-12 13:26:59 +0200 Edward Hervey * gst/isomp4/gstqtmux.c: qtmux: Don't forget to update pad->last_buf buf is the current pad->last_buf value. If ever it gets copied/unreffed, we need to make sure to write back the new pointer to the last_buf variable. Fixes using wrong pointer values in the case of decrasing DTS value 2017-04-12 11:33:05 +0200 Edward Hervey * tests/check/elements/.gitignore: tests: Add vp9enc to gitignore 2017-04-11 13:41:48 +0200 Jürgen Sachs * gst/isomp4/qtdemux.c: qtdemux: fix: sample description index override in tfhd not evaluated https://bugzilla.gnome.org/show_bug.cgi?id=778337 2017-04-12 11:03:24 +0200 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Add out-of-bound check Make sure we don't read invalid memory 2016-04-27 12:17:37 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: move parsing of tkhd out of stsd entry loop It needs only to be read once. 2016-04-07 12:23:35 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: check for a different stsd entry before pushing a sample Before pushing a sample, check if there was a change in the current stsd entry. This patch also assumes that the first stsd entry is used as default for the first sample. It might cause an uneeded caps renegotiation when this isn't the case. 2016-04-06 12:55:18 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: parse all stsd entries stsd can have multiple format entries, parse them all. This is required to play DVB DASH profile that uses multiple entries to identify the different available bitrates/options on dash streams The stream format-specific data is not stored into QtDemuxStreamStsdEntry 2016-04-05 14:34:00 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: rework stsd sample entries access Instead of using the stsd as a base pointer, use the actual stsd entry as the stsd can have multiple entries. This is rarely used for file playback but is a possible profile with in DVB DASH specs. This still doesn't support stsd with multiple entries but makes it easier to do so. 2016-04-05 18:00:10 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: get stsd child by index instead of type There might be multiple children with the same type 2017-04-07 16:33:18 +0300 George Kiagiadakis * tests/check/elements/rtprtx.c: tests/check/rtprtx: add checks for rtprtxqueue's max-size-{time,packets} properties https://bugzilla.gnome.org/show_bug.cgi?id=780867 2017-04-04 17:33:31 +0300 George Kiagiadakis * gst/rtpmanager/gstrtprtxqueue.c: * gst/rtpmanager/gstrtprtxqueue.h: rtprtxqueue: implement handling of the max-size-time property https://bugzilla.gnome.org/show_bug.cgi?id=780867 2017-04-10 23:49:06 +0100 Tim-Philipp Müller * autogen.sh: * common: Automatic update of common submodule From 39ac2f5 to 60aeef6 2017-04-10 08:56:00 +0000 Todor Tomov * sys/v4l2/gstv4l2bufferpool.c: v4l2object: Copy timestamp when importing buffers This is needed for V4L2_OUTPUT interface, and is harmless of V4L2_CAPTURE interfaces. This will fix timestamp in cases like: v4l2src io-mode=dmabuf ! v4l2videoNenc output-io-mode=dmabuf-import ! ... Same apply for userptr. https://bugzilla.gnome.org/show_bug.cgi?id=781119 2017-04-10 15:55:30 +0300 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Fix last_dts tracking for raw audio and similar formats Accumulate the durations directly and don't scale yet another time by the number of samples. 2017-04-07 10:48:50 +0100 Vincent Penquerc'h * tests/check/elements/splitmux.c: tests: fix leak in splitmux test https://bugzilla.gnome.org/show_bug.cgi?id=781025 2017-04-07 15:29:43 +0800 Lyon Wang * gst/audiofx/gstscaletempo.c: scaletempo: Scale GAP event timestamp and duration like for buffers https://bugzilla.gnome.org/show_bug.cgi?id=781008 2017-02-17 10:01:08 -0300 Thibault Saunier * sys/v4l2/gstv4l2videodec.c: * sys/v4l2/gstv4l2videodec.h: v4l2dec: Fix race when going from PAUSED to READY Running `gst-validate-launcher -t validate.file.playback.change_state_intensive.vorbis_vp8_1_webm` on odroid XU4 (s5p-mfc v4l2 driver) often leads to: ERROR:../subprojects/gst-plugins-good/sys/v4l2/gstv4l2videodec.c:215:gst_v4l2_video_dec_stop: assertion failed: (g_atomic_int_get (&self->processing) == FALSE) This happens when the following race happens: - T0: Main thread - T1: Upstream streaming thread - T2. v4l2dec processing thread) [The decoder is in PAUSED state] T0. The validate scenario runs `Executing (36/40) set-state: state=null repeat=40` T1- The decoder handles a frame T2- A decoded frame is push downstream T2- Downstream returns FLUSHING as it is already flushing changing state T2- The decoder stops its processing thread and sets `->processing = FALSE` T1- The decoder handles another frame T1- `->process` is FALSE so the decoder restarts its streaming thread T0- In v4l2dec-> stop the processing thread is stopped NOTE: At this point the processing thread loop never started. T0- assertion failed: (g_atomic_int_get (&self->processing) == FALSE) Here I am removing the whole ->processing logic to base it all on the GstTask state to avoid duplicating the knowledge. https://bugzilla.gnome.org/show_bug.cgi?id=778830 === release 1.11.90 === 2017-04-07 16:31:56 +0300 Sebastian Dröge * ChangeLog: * NEWS: * RELEASE: * configure.ac: * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/inspect/plugin-1394.xml: * docs/plugins/inspect/plugin-aasink.xml: * docs/plugins/inspect/plugin-alaw.xml: * docs/plugins/inspect/plugin-alpha.xml: * docs/plugins/inspect/plugin-alphacolor.xml: * docs/plugins/inspect/plugin-apetag.xml: * docs/plugins/inspect/plugin-audiofx.xml: * docs/plugins/inspect/plugin-audioparsers.xml: * docs/plugins/inspect/plugin-auparse.xml: * docs/plugins/inspect/plugin-autodetect.xml: * docs/plugins/inspect/plugin-avi.xml: * docs/plugins/inspect/plugin-cacasink.xml: * docs/plugins/inspect/plugin-cairo.xml: * docs/plugins/inspect/plugin-cutter.xml: * docs/plugins/inspect/plugin-debug.xml: * docs/plugins/inspect/plugin-deinterlace.xml: * docs/plugins/inspect/plugin-dtmf.xml: * docs/plugins/inspect/plugin-dv.xml: * docs/plugins/inspect/plugin-effectv.xml: * docs/plugins/inspect/plugin-equalizer.xml: * docs/plugins/inspect/plugin-flac.xml: * docs/plugins/inspect/plugin-flv.xml: * docs/plugins/inspect/plugin-flxdec.xml: * docs/plugins/inspect/plugin-gdkpixbuf.xml: * docs/plugins/inspect/plugin-goom.xml: * docs/plugins/inspect/plugin-goom2k1.xml: * docs/plugins/inspect/plugin-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: * gst-plugins-good.doap: * meson.build: Release 1.11.90 2017-04-07 15:18:11 +0300 Sebastian Dröge * po/af.po: * po/az.po: * po/bg.po: * po/ca.po: * po/cs.po: * po/da.po: * po/de.po: * po/el.po: * po/en_GB.po: * po/eo.po: * po/es.po: * po/eu.po: * po/fi.po: * po/fr.po: * po/gl.po: * po/hr.po: * po/hu.po: * po/id.po: * po/it.po: * po/ja.po: * po/lt.po: * po/lv.po: * po/mt.po: * po/nb.po: * po/nl.po: * po/or.po: * po/pl.po: * po/pt_BR.po: * po/ro.po: * po/ru.po: * po/sk.po: * po/sl.po: * po/sq.po: * po/sr.po: * po/sv.po: * po/tr.po: * po/uk.po: * po/vi.po: * po/zh_CN.po: * po/zh_HK.po: * po/zh_TW.po: Update .po files 2017-04-07 15:06:30 +0300 Sebastian Dröge * po/el.po: po: Update translations 2017-04-06 12:01:00 +0200 Edward Hervey * gst/audioparsers/gstaacparse.c: aacparse: streamline and improve AudioSpecificConfig parsing AudioSpecifigConfig is used in a variety of AAC streams but was being parsed differently. Instead, make everyone use the same parsing. * Remove unused 'bits' field (it was always set to 0 if present) * Add proper GAConfig parsing (to know the number of samples per frame if present). Fixes wrong rate/channels configuration in streams coming from qtdemux https://bugzilla.gnome.org/show_bug.cgi?id=780966 2017-04-05 09:46:31 -0400 Nicolas Dufresne * sys/v4l2/gstv4l2videodec.c: v4l2videodec: Fix 32bit only printf format The previous patch was using %llu for 64bits printf, which is 32bit specific. We also trace the latency in time human readable form now. 2016-03-16 16:22:48 +0100 Philipp Zabel * sys/v4l2/gstv4l2object.c: v4l2object: set streamparm for outputs that support it Without a specified framerate from the sink, the decoder frame interval should be set using the framerate of the encoded video stream. Therefore, the v4l2object should be able to change the framerate on the output if the V4L2 device accepts it. This is also necessary for mem2mem encoders so that their bitrate calculation code may work correctly and they may report the correct frame duration on the capture queue. https://bugzilla.gnome.org/show_bug.cgi?id=779466 2016-03-16 16:24:55 +0100 Philipp Zabel * sys/v4l2/gstv4l2videodec.c: v4l2videodec: only set latency if the frame duration is valid If the duration of the v4l2object is GST_CLOCK_TIME_NONE, because the sink did not specify a framerate in the caps and the driver accepts the framerate, the decoder element uses GST_CLOCK_TIME_NONE to calculate and set the element latency. While this is a bug of the capture driver, the decoder element should not use the invalid duration to calculate a latency, but print a warning instead. https://bugzilla.gnome.org/show_bug.cgi?id=779466 2016-11-23 12:17:55 -0500 Olivier Crête * sys/v4l2/gstv4l2sink.c: v4l2sink: Block in preroll_wait on unlock The correct behaviour of anything stuck in the ->render() function between ->unlock() and ->unlock_stop() is to call gst_base_sink_wait_preroll() and only return an error if this returns an error, otherwise, it must continue where it left off! https://bugzilla.gnome.org/show_bug.cgi?id=774945 2017-04-05 15:55:20 +1000 Jan Schmidt * ext/vpx/gstvp9dec.c: vp9dec: Add warnings for unsupported frame formats At least output an element warning on the bus when we encounter a frame format GStreamer doesn't currently support. 2017-04-04 17:55:13 +0200 Edward Hervey * gst/audioparsers/gstaacparse.c: aacparse: Handle Parametric Stereo with HE-AAC(v2) According to ISO/IEC:14496-2:2009 , in the case of HE-AACv2 (audioObjecType 29) parametric stereo is used (a single mono track is used and then transformations are applied to it to provide a stereo output). We therefore report two channels in the case where there is one reported in the audioChannelConfiguration. Fixes the various issues where a demuxer would report two channels, but then the parser would say there's only one channel, and then the decoder would output two channels. 2017-04-04 15:22:25 +0300 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Simplify buffer refcounting in add_buffer() and remove unneeded NULL checks 2017-04-04 15:08:33 +0300 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Select the best pad based on the cached last_buf if any last_buf is the one we're going to write next, not buf. As such we should check timestamps against that one if there is one to select the earliest pad. Also remember the currently selected pad in the very beginning when storing the first last_buf. This both solves some edge cases where not the correct next pad was selected corresponding to the target interleave. 2017-04-04 15:07:40 +0300 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Error out immediately if a timecode is to be written but downstream return not-OK 2017-04-03 11:34:49 +0200 Edward Hervey * gst/isomp4/qtdemux.c: qtdemux: Update variables before early exit This is an update of d78d5896272d78df41e696fac929e7dfb3bb3dfa We still exit as early as possible in case of non-ok/non-unlinked combined flow, but we first make sure that we update the internal position variables. This ensures that if upstreams "ignores" the flow return (and carries on pushing), we don't end up processing data with completely bogus variables/positions. 2017-03-24 00:11:13 +1300 Douglas Bagnall * gst/interleave/interleave.c: * gst/interleave/interleave.h: interleave: avoid using uninitialised ordering_map If self->channel_positions == NULL (which seems unlikely), self->default_channels_ordering_map will be used unintialised. We avoid that by keeping track of the channel_mask, which is set when the ordering map is initialised. https://bugzilla.gnome.org/show_bug.cgi?id=780331 2017-03-23 23:56:31 +1300 Douglas Bagnall * gst/interleave/interleave.c: interleave: don't overflow channel map with >64 channels When there are more than 64 channels, we don't want to exceed the bounds of the ordering_map buffer, and in these cases we don't want to rempa at all. Here we avoid doing that. https://bugzilla.gnome.org/show_bug.cgi?id=780331 2017-03-28 14:23:16 -0300 Thibault Saunier * tests/check/meson.build: meson: Use get_pkgconfig_variable instead of calling pkg-config ourself It is avalaible in meson 0.36 which is now are requirement 2017-03-28 14:22:41 -0300 Thibault Saunier * pkgconfig/gstreamer-plugins-good.pc.in: * pkgconfig/meson.build: pkgconfig: Do not ever build an installed .pc file 2017-03-28 11:15:53 -0300 Thibault Saunier * tests/check/meson.build: meson: test: Fix environment object usage 2017-03-28 11:14:47 -0300 Thibault Saunier * meson.build: * pkgconfig/gstreamer-plugins-good.pc.in: * pkgconfig/meson.build: pkgconfig: Generate the pkg-config with meson too 2017-03-27 21:52:00 +0300 Sebastian Dröge * gst/isomp4/qtdemux.c: qtdemux: In gap mode, consider the mdat offset when calculating the remaining mdat size The mdat generally does not start at offset 0, we have to include the size of the moof and whatever else was in front of the mdat. 2017-03-27 11:43:31 +0300 Sebastian Dröge * gst/isomp4/atomsrecovery.c: atomsrecovery: Error out when fseek() fails instead of silently ignoring CID 1403262 2017-03-23 22:13:05 +0100 Carlos Rafael Giani * sys/v4l2/gstv4l2object.c: v4l2object: Also add videometa if there is padding to the right and bottom https://bugzilla.gnome.org/show_bug.cgi?id=780478 2017-03-21 12:54:27 +0200 George Kiagiadakis * gst/rtpmanager/gstrtpmux.c: rtpmux: fix output segment and buffer DTS to correspond to the flattened PTS https://bugzilla.gnome.org/show_bug.cgi?id=780347 2017-03-23 17:53:19 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: * gst/isomp4/gstqtmux.h: qtmux: Remove some unused variables 2017-03-23 15:01:16 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Remove a couple of unneeded levels of indentation 2017-03-22 18:18:40 +0000 Enrique Ocaña González * gst/isomp4/qtdemux.c: qtdemux: distinguish TFDT with value 0 from no TFDT at all TFDTs with time 0 are being ignored since commit 1fc3d42f. They're mistaken with the case of not having TFDT, but those two cases must be distinguished in some way. This patch passes an extra boolean flag when the TFDT is present. This is now the condition being evaluated, instead of checking for 0 time. https://bugzilla.gnome.org/show_bug.cgi?id=780410 2017-03-22 19:15:09 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Reset current chunk after writing out timecode If we have multiple tracks with timecodes, or it's not the first track that has timecodes, or not the first buffer, we already started a chunk for media data. We now need to "close" that chunk because we wrote data for the timecode track and a new chunk has to be started for the original track the next time it has data. 2017-03-22 18:52:51 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: * gst/isomp4/gstqtmux.h: qtmux: Do timecode handling per track, not per muxer instance There could be multiple video tracks with timecodes. 2017-03-22 00:38:51 +1100 Jan Schmidt * gst/isomp4/qtdemux.c: * gst/matroska/matroska-demux.c: qtdemux: matroskademux: Ignore repeated seek events Similar to what was done in adaptivedemux, ignore seek events we've already handled - such as when they are received on every srcpad of files with lots of streams. 2017-03-21 14:55:32 +0200 Sebastian Dröge * gst/isomp4/qtdemux.c: * gst/isomp4/qtdemux.h: dashdemux: Update mdatleft from overall mdatsize and offset when observing a gap Otherwise mdatleft will have a value calculated from the initial mdatsize minus the parts of the stream that we saw, which is not including all the parts of the stream that might've been skipped. 2017-03-20 17:03:32 +0000 Tim-Philipp Müller * ext/soup/gstsouphttpsrc.c: * gst/audioparsers/gstmpegaudioparse.c: docs: update two references to the removed 'mad' plugin https://bugzilla.gnome.org/show_bug.cgi?id=776140 2017-03-20 12:03:29 +0200 George Kiagiadakis * gst/rtpmanager/gstrtprtxqueue.c: rtprtxqueue: add basic documentation and example pipelines Mostly explaining the difference between rtprtxqueue and rtprtxsend. 2017-03-17 20:58:28 -0400 Nicolas Dufresne * sys/v4l2/meson.build: v4l2: Fix meson plugin shared object name It didn't match between AutoMake and Meson, and the Meson name didn't math the plugin name (video4linux2). 2017-03-16 18:20:54 +0200 George Kiagiadakis * gst/rtpmanager/gstrtprtxreceive.c: rtprtxreceive: fix example pipelines and improve the documentation https://bugzilla.gnome.org/show_bug.cgi?id=771383 2017-03-17 14:10:40 +0000 Vincent Penquerc'h * gst/audioparsers/gstflacparse.c: * gst/audioparsers/gstflacparse.h: flacparse: fix playback if sample number does not start at 0 This reverts commit 29b807685d3c962bbe8afe351c5dca97d59eb5e0, while fixing the original breaking tests/check/pipelines/flacdec. 2017-03-17 11:30:04 +0000 Vincent Penquerc'h * gst/audioparsers/gstflacparse.c: * gst/audioparsers/gstflacparse.h: Revert "flacparse: fix playback if sample number does not start at 0" This breaks gst-validate on the build server (though not locally), and a unit test, and I can't run unit tests right now for some unrelated reason. This reverts commit 0747b56f8e7f4731d67f8d13a4bdc453dde0fdf7. 2017-03-16 17:44:41 +0200 George Kiagiadakis * gst/rtpmanager/rtpsession.c: rtpsession: print the correct variable in debug statement This debug statement is meant to print the time since the last (early) RTCP transmission, not the last regular RTCP transmission (which also happens to be set a few lines above to current_time, so the debug output is just confusing) 2017-03-16 17:42:27 +0200 George Kiagiadakis * gst/rtpmanager/gstrtprtxsend.c: rtprtxsend: convert LOG message to TRACE This is printed too often (for every chained buffer!) and just clutters the logs. 2017-03-16 14:58:45 +0100 Miguel París Díaz * gst/rtpmanager/rtpsource.c: rtpsource: fix warning message https://bugzilla.gnome.org/show_bug.cgi?id=780105 2017-03-16 13:54:54 +0000 Vincent Penquerc'h * gst/audioparsers/gstflacparse.c: * gst/audioparsers/gstflacparse.h: flacparse: fix playback if sample number does not start at 0 https://bugzilla.gnome.org/show_bug.cgi?id=777738 2017-03-15 18:58:55 +0100 Miguel París Díaz * gst/rtpmanager/rtpsource.c: * gst/rtpmanager/rtpsource.h: rtpsource: get clock-rate from pt if needed to generate SR https://bugzilla.gnome.org/show_bug.cgi?id=780105 2017-03-16 13:52:48 +0200 Sebastian Dröge * ext/soup/gstsouphttpsrc.c: souphttpsrc: Include GStreamer souphttpsrc version in default User-Agent string 2017-03-16 00:41:44 +0000 Tim-Philipp Müller * gst/rtp/gstrtph264depay.c: rtph264depay: fix crash with empty sprops-parameters https://bugzilla.gnome.org/show_bug.cgi?id=780040 2017-03-11 21:20:40 -0800 Thiago Santos * gst/isomp4/atomsrecovery.c: * gst/isomp4/atomsrecovery.h: atomsrecovery: also handle extra atoms after 'mdia' in a 'trak' Take into account the atoms at the end of the 'trak' atom when recovering it. So that its size (already computed and added in the trak size) isn't making offsets wrong. https://bugzilla.gnome.org/show_bug.cgi?id=771478 2017-03-11 12:56:33 -0800 Thiago Santos * gst/isomp4/gstqtmux.c: qtmux: avoid fallthrough to moovrecovery failure section Return before that to preserve our successfull results, otherwise no moov recovery information would be written https://bugzilla.gnome.org/show_bug.cgi?id=771478 2017-03-11 12:27:28 -0800 Thiago Santos * gst/isomp4/atomsrecovery.c: atomsrecovery: expect more atom types at the headers Skip more atoms at the header until it finds the 'mdat' to continue the moov recovery https://bugzilla.gnome.org/show_bug.cgi?id=771478 2017-03-14 16:42:25 -0400 Olivier Crête * Makefile.am: * configure.ac: * tests/examples/Makefile.am: * tests/examples/pulse/.gitignore: * tests/examples/pulse/Makefile.am: * tests/examples/pulse/pulse.c: pulse example: Remove That example only tested the property probe interface, which has been removed. The same kind of thing can now be done with the generic gst-device-monitor tool. 2017-03-14 16:38:02 -0400 Olivier Crête * sys/v4l2/gstv4l2object.h: v4l2: Remove unused macro 2017-03-14 16:35:25 -0400 Olivier Crête * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2object.h: v4l2: Remove unused definitions 2017-03-14 10:10:19 +0100 Emeric Grange * gst/isomp4/fourcc.h: * gst/isomp4/gstqtmux.c: * gst/isomp4/gstqtmuxmap.c: * gst/isomp4/qtdemux.c: * gst/isomp4/qtdemux_types.c: qtmux: add CineForm support https://bugzilla.gnome.org/show_bug.cgi?id=780024 2017-03-14 15:09:44 +0200 Sebastian Dröge * gst/isomp4/gstqtmux.c: qtmux: Only create new chunks if we have more than a single stream There's no point in creating multiple chunks otherwise, it only wastes some bytes for storing the chunk offsets. 2017-03-14 10:09:46 +0100 Emeric Grange * gst/isomp4/qtdemux.c: qtdemux: add S16L support https://bugzilla.gnome.org/show_bug.cgi?id=780022 2017-03-14 15:48:08 +1100 Jan Schmidt * tests/check/elements/splitmux.c: splitmux test: Use passed first/last timestamps Don't hard-code the expected timestamp range, use the values the caller is passing in. 2017-03-12 11:42:25 -0400 Nicolas Dufresne * Makefile.am: * docs/plugins/inspect/plugin-soup.xml: Add old plugin names to cruft list This will help fixing uninstalled setup. Also fix missing path correction in one of the plugin xml. https://bugzilla.gnome.org/show_bug.cgi?id=779344 2016-12-15 12:38:40 +0100 Michael Dutka * gst/rtp/gstrtph264depay.c: * gst/rtp/gstrtph265depay.c: rtph264depay, rtph265depay: remove stray g_debug() https://bugzilla.gnome.org/show_bug.cgi?id=779858 2017-03-10 11:24:14 +0100 Wim Taymans * gst/isomp4/gstqtmux.c: qtmux: init fourcc Initialize the fourcc to 0 so that we can detect failure later. 2017-03-08 22:50:52 -0500 Nicolas Dufresne * tests/check/Makefile.am: * tests/check/elements/level.c: * tests/check/elements/rglimiter.c: tests: Add missing LDADD for libm in tests using math.h Also, remove the math.h include for the one that just prentend to need it. 2017-03-08 22:15:46 -0500 Nicolas Dufresne * Makefile.am: * docs/plugins/gst-plugins-good-plugins-docs.sgml: Fix shout2 plugin doc generation In the previous patch, we also renamed shout2send to shout2, so it does not clash with it's feature. Though we forgot to rename it in the doc reference. This patch also add a cruft detection on the xml that made me miss this error. https://bugzilla.gnome.org/show_bug.cgi?id=779344 2017-03-04 10:52:47 -0500 Nicolas Dufresne * docs/plugins/inspect/plugin-oss4.xml: * docs/plugins/inspect/plugin-pulseaudio.xml: * docs/plugins/inspect/plugin-shout2.xml: * ext/pulse/Makefile.am: * ext/pulse/meson.build: * ext/shout2/gstshout2.c: * ext/soup/Makefile.am: * ext/soup/meson.build: * sys/oss4/Makefile.am: Fix plugin filenames to match plugin names - libgstpulse.so becomes libgstpulseaudio.so - libgstsouphttpsrc.so becomes libgstsoup.so - libgstoss4audio.so becomes libgstoss4.so https://bugzilla.gnome.org/show_bug.cgi?id=779344 2017-03-08 16:01:02 +0200 Sebastian Dröge * gst/isomp4/atoms.c: qtmux: Free EDTS instead of just clearing it and setting it to NULL 2017-03-08 15:27:32 +0200 Sebastian Dröge * gst/isomp4/atoms.c: * gst/isomp4/gstqtmux.c: qtmux: Fix some memory leaks related to timecode tracks 2017-03-04 00:34:44 +1100 Jan Schmidt * tests/check/elements/splitmux.c: splitmux: Add unit test for reverse playback Ensure that reverse playback works and generates the range of timestamps (0-3s) we expect, in monotonically descending order. 2017-02-28 11:50:45 +1100 Jan Schmidt * gst/multifile/gstsplitmuxsrc.c: splitmuxsrc: Fix reverse playback Fix the check for whether the start time of the segment has been reached when playing in reverse. Otherwise, playback stops after reaching the start of any file part, instead of continuing until all parts within the segment have played 2017-02-22 03:01:31 +1100 Jan Schmidt * gst/isomp4/qtdemux.c: qtdemux: Don't lose crypto info on a new moof We parse the next moof in advance of having pushed all samples from the previous one in some cases, and we'll still need the crypto info from the previous fragment so keep around any unused crypto info entries when adding new ones 2017-02-27 13:55:58 +0200 Sebastian Dröge * gst/isomp4/atoms.c: * gst/isomp4/atoms.h: * gst/isomp4/gstqtmux.c: qtmux: Update modification times when sending the moov https://bugzilla.gnome.org/show_bug.cgi?id=779422 2017-03-01 16:11:47 -0800 Michael Smith * gst/audioparsers/gstsbcparse.h: sbcparse: Fix up values for allocation enumeration. https://bugzilla.gnome.org/show_bug.cgi?id=779389 2017-02-28 13:10:50 +0200 George Kiagiadakis * gst/rtpmanager/gstrtprtxreceive.c: rtprtxreceive: fix potential leak of old, unassociated, association requests https://bugzilla.gnome.org/show_bug.cgi?id=722560 2017-02-28 15:47:23 +0200 Sebastian Dröge * gst/avi/gstavidemux.c: avidemux: Don't increment -1 / unset indices CID 1398545 2017-02-28 15:20:31 +0200 Sebastian Dröge * gst/isomp4/qtdemux.c: qtdemux: Protect against NULL pointer dereference for streams without caps CID 1363332 2017-02-28 12:57:02 +0200 Sebastian Dröge * gst/rtp/gstrtph263pay.c: rtph263pay: Free mac on errors CID 1212149 2017-02-28 12:45:24 +0200 Sebastian Dröge * gst/rtp/gstrtpvorbispay.c: rtpvorbispay: Add missing break to for loop 2017-02-28 11:02:54 +0100 Edward Hervey * tests/check/Makefile.am: check: Fix splitmux test CFLAGS Needs to know where the gstapp headers are 2017-02-27 21:02:51 +0200 Sebastian Dröge * gst/isomp4/qtdemux.c: qtdemux: Fix compilation with gcc 7 qtdemux.c: In function ‘qtdemux_parse_samples’: qtdemux.c:8450:39: error: ‘*’ in boolean context, suggest ‘&&’ instead [-Werror=int-in-bool-context] if (stream->samples_per_frame * stream->bytes_per_frame) { ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ 2017-02-27 21:01:23 +0200 Sebastian Dröge * gst/audioparsers/gstmpegaudioparse.c: mpegaudioparse: Fix compilation with gcc 7 gstmpegaudioparse.c: In function ‘gst_mpeg_audio_parse_reset’: gstmpegaudioparse.c:209:3: error: ‘memset’ used with length equal to number of elements without multiplication by element size [-Werror=memset-elt-size] memset (mp3parse->xing_seek_table_inverse, 0, 256); ^~~~~~ gstmpegaudioparse.c: In function ‘gst_mpeg_audio_parse_handle_first_frame’: gstmpegaudioparse.c:951:7: error: ‘memset’ used with length equal to number of elements without multiplication by element size [-Werror=memset-elt-size] memset (mp3parse->xing_seek_table_inverse, 0, 256); ^~~~~~ 2017-02-27 19:31:39 +0200 Sebastian Dröge * gst/rtp/gstrtpvorbispay.c: rtpvorbispay: When getting new headers, replace the old version of them This prevents storing an infinite amount of e.g. comment headers if they come without a new initialization header in front of them. There can only be one header of each type. 2017-02-27 19:25:35 +0200 Sebastian Dröge * tests/check/Makefile.am: * tests/check/elements/rtp-payloading.c: rtp-payloading: Add new test for Vorbis renegotiation Check if encoding, payloading, depayloading and decoding works if the stream configuration (and thus the headers) change. 2017-02-27 19:24:07 +0200 Sebastian Dröge * gst/rtp/gstrtpvorbispay.c: vorbispay: Only replace headers when receiving a new config header If we also replace all headers when receiving any possibly following comments header, we would throw away the config header before being able to make use of it. 2017-02-23 12:11:15 +0200 George Kiagiadakis * tests/check/Makefile.am: * tests/check/elements/splitmux.c: tests: splitmux: add unit test for content with sparse streams https://bugzilla.gnome.org/show_bug.cgi?id=761086 2017-02-22 11:23:19 +0200 George Kiagiadakis * gst/multifile/gstsplitmuxpartreader.c: splitmuxpartreader: ignore sparse streams when calculating the end offset of a part A sparse stream's ending timestamp can be considerably smaller than the ending timestamps of the other streams, which can lead to skipping considerable time from the next part. https://bugzilla.gnome.org/show_bug.cgi?id=761086 2017-02-22 11:21:06 +0200 George Kiagiadakis * gst/multifile/gstsplitmuxpartreader.c: splitmuxpartreader: identify sparse streams 2017-02-25 21:47:03 -0300 Edgard Lima * docs/plugins/inspect/plugin-rtp.xml: * docs/plugins/inspect/plugin-video4linux2.xml: * gst/audioparsers/gstamrparse.c: * gst/rtp/gstrtpg726depay.c: * gst/rtp/gstrtpg726depay.h: * gst/rtp/gstrtpg726pay.c: * gst/rtp/gstrtpg726pay.h: * gst/rtp/gstrtppcmadepay.c: * gst/rtp/gstrtppcmadepay.h: * gst/rtp/gstrtppcmapay.c: * gst/rtp/gstrtppcmapay.h: * gst/rtp/gstrtppcmudepay.c: * gst/rtp/gstrtppcmudepay.h: * gst/rtp/gstrtppcmupay.c: * gst/rtp/gstrtppcmupay.h: * gst/rtp/gstrtpspeexdepay.c: * gst/rtp/gstrtpspeexdepay.h: * gst/rtp/gstrtpspeexpay.c: * gst/rtp/gstrtpspeexpay.h: * sys/v4l2/gstv4l2.c: * sys/v4l2/gstv4l2bufferpool.c: * sys/v4l2/gstv4l2bufferpool.h: * sys/v4l2/gstv4l2colorbalance.c: * sys/v4l2/gstv4l2colorbalance.h: * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2object.h: * sys/v4l2/gstv4l2src.c: * sys/v4l2/gstv4l2src.h: * sys/v4l2/gstv4l2tuner.c: * sys/v4l2/gstv4l2tuner.h: * sys/v4l2/gstv4l2vidorient.c: * sys/v4l2/gstv4l2vidorient.h: * sys/v4l2/v4l2_calls.c: * sys/v4l2/v4l2_calls.h: Update Edgard Lima's email https://bugzilla.gnome.org/show_bug.cgi?id=779230 2017-02-08 13:36:00 +0000 Andrew * gst/rtpmanager/gstrtpjitterbuffer.c: * gst/rtpmanager/rtpjitterbuffer.c: * gst/rtpmanager/rtpjitterbuffer.h: rtpjitterbuffer: Don't always reset PTS to 0 after a gap In function rtp_jitter_buffer_calculate_pts: If gap in incoming RTP timestamps is more than (3 * jbuf->clock_rate) we call rtp_jitter_buffer_reset_skew which resets pts to 0. So components down the pipeline (playes, mixers) just skip frames/samples until pts becomes equal to pts before gap. In version 1.10.2 and before this checking was bypassed for packets with "estimated dts", and gaps were handled correctly. https://bugzilla.gnome.org/show_bug.cgi?id=778341 2017-02-24 15:59:41 +0200 Sebastian Dröge * meson.build: meson: Update version 2017-02-24 15:37:36 +0200 Sebastian Dröge * configure.ac: Back to development