Commit e4da670a authored by Sebastian Dröge's avatar Sebastian Dröge 🍵

Release 1.11.90

parent b6c0d403
=== release 1.11.90 ===
2017-04-07 Sebastian Dröge <>
releasing 1.11.90
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
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.
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
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!
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.
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.
2017-03-28 14:23:16 -0300 Thibault Saunier <>
* tests/check/
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/
* pkgconfig/
pkgconfig: Do not ever build an installed .pc file
2017-03-28 11:15:53 -0300 Thibault Saunier <>
* tests/check/
meson: test: Fix environment object usage
2017-03-28 11:14:47 -0300 Thibault Saunier <>
* pkgconfig/
* pkgconfig/
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
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
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.
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
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/
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
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
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
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
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
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.
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
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
2017-03-14 16:42:25 -0400 Olivier Crête <>
* tests/examples/
* tests/examples/pulse/.gitignore:
* tests/examples/pulse/
* 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
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
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 <>
* 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.
2016-12-15 12:38:40 +0100 Michael Dutka <>
* gst/rtp/gstrtph264depay.c:
* gst/rtp/gstrtph265depay.c:
rtph264depay, rtph265depay: remove stray g_debug()
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/
* 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
2017-03-08 22:15:46 -0500 Nicolas Dufresne <>
* 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.
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/
* ext/pulse/
* ext/shout2/gstshout2.c:
* ext/soup/
* ext/soup/
* sys/oss4/
Fix plugin filenames to match plugin names
- becomes
- becomes
- becomes
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
2017-03-01 16:11:47 -0800 Michael Smith <>
* gst/audioparsers/gstsbcparse.h:
sbcparse: Fix up values for allocation enumeration.
2017-02-28 13:10:50 +0200 George Kiagiadakis <>
* gst/rtpmanager/gstrtprtxreceive.c:
rtprtxreceive: fix potential leak of old, unassociated, association requests
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/
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/
* 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/
* tests/check/elements/splitmux.c:
tests: splitmux: add unit test for content with sparse streams
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.
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: