Commit e016a70a authored by Sebastian Dröge's avatar Sebastian Dröge

Release 1.7.1

parent 752d2f3a
=== release 1.7.1 ===
2015-12-24 Sebastian Dröge <>
releasing 1.7.1
2015-12-24 12:22:32 +0100 Sebastian Dröge <>
* po/cs.po:
* po/de.po:
* po/el.po:
* po/hu.po:
* po/nb.po:
* po/nl.po:
* po/pl.po:
* po/ru.po:
* po/sr.po:
* po/sv.po:
* po/uk.po:
* po/vi.po:
* po/zh_CN.po:
po: Update translations
2015-12-21 09:57:33 -0300 Thiago Santos <>
* gst/isomp4/qtdemux.c:
* gst/isomp4/qtdemux.h:
qtdemux: drop flushes from our own offset seek
Prevents downstream from receiving flushes for a seek only in
upstream. Those seeks are only to start reading from the right
offset when skipping or returning to qt atoms.
2015-11-11 16:53:19 +0100 Thibault Saunier <>
* gst/matroska/matroska-demux.c:
matroskademux: Always set the channel mask for PCM streams
Just use the gst_audio_channel_get_fallback_mask function for now as
the specification is too complicated and nobody implements it.
2015-12-21 11:37:26 +0100 Thomas Roos <>
* sys/directsound/gstdirectsoundsink.c:
directsoundsink: Fix sleep for buffer-time lower than 200000
2015-12-21 12:31:19 +0100 Sebastian Dröge <>
configure: Use -Bsymbolic-functions if available
While this is more useful for libraries, some of our plugins with multiple
files and some internal API can also benefit from this.
2015-12-18 15:34:52 +0000 William Manley <>
* gst/debugutils/progressreport.c:
* gst/debugutils/progressreport.h:
progressreport: add support for using format=buffers with do-query=false
This is useful for investigating and debugging pipelines which are
producing buffers at a slower/faster rate than you would expect.
2015-12-18 15:49:43 -0500 Nicolas Dufresne <>
* sys/v4l2/gstv4l2object.c:
v4l2object: Update formats table
This change add all the new RGB based format. Those format removes the
ambiguity with the ALPHA channel. Some other missing multiplanar format
has been added with some additional cleanup.
2015-12-18 05:17:15 +1100 Jan Schmidt <>
* gst/isomp4/gstqtmux.c:
qtmux: Don't write invalid edit list start time.
Avoid writing a negative number as a large positive
integer in an edit list when the first_ts is smaller
than the first_dts - which can happen when the first
packet received has a PTS but no DTS.
2015-12-04 23:16:45 +1100 Jan Schmidt <>
* gst/multifile/gstsplitmuxsink.c:
splitmuxsink: Only update running time when it increases.
Don't increment running time from every buffer. The correct
logic to only increment when running time advances is a
little further down, so delete this left-over line.
2015-11-18 11:01:20 +0100 Thibault Saunier <>
* gst/matroska/matroska-mux.c:
matroska-mux: Implement prores support
2015-11-18 16:20:38 +1100 Jan Schmidt <>
* gst/matroska/matroska-demux.c:
* gst/matroska/matroska-ids.h:
matroska-demux: Play ProRes video streams
Generate video/x-prores caps for ProRes video streams.
Every frame needs an 8 byte header prepended, as described in
so do that in a post-processing callback.
2015-12-18 10:18:09 +0530 Ravi Kiran K N <>
* ext/dv/gstdvdec.h:
dvdec: Remove unused fields
Remove unused fields frame_len and space
2015-12-17 16:03:04 +0100 Vincent Dehors <>
* gst/rtp/gstrtpj2kdepay.c:
rtpj2kdepay: Push one JPEG2000 frame per buffer, not a buffer list with multiple buffers
2015-12-16 11:43:58 +0000 Luis de Bethencourt <>
* ext/raw1394/gstdv1394src.c:
* ext/raw1394/gsthdv1394src.c:
dv1394: log error if failed to set socket status flag
Log an error message if failed to set write or read socket as
CID 1139608
CID 1139609
2015-12-15 17:10:00 +0000 Dave Craig <>
* gst/audioparsers/gstaacparse.c:
* gst/audioparsers/gstac3parse.c:
* gst/audioparsers/gstamrparse.c:
* gst/audioparsers/gstdcaparse.c:
* gst/audioparsers/gstflacparse.c:
* gst/audioparsers/gstmpegaudioparse.c:
* gst/audioparsers/gstsbcparse.c:
* gst/audioparsers/gstwavpackparse.c:
audioparsers: Check for NULL return value of gst_pad_get_current_caps()
2015-12-16 09:35:53 +0100 Sebastian Dröge <>
* 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-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-shout2send.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 to git
2015-12-15 14:27:22 -0500 Nicolas Dufresne <>
* ext/vpx/
vpx: Add missing headers in
This fixes distcheck.
2015-09-24 12:57:00 +0530 Prashant Gotarne <>
* ext/vpx/
* ext/vpx/gstvp8enc.c:
* ext/vpx/gstvp8enc.h:
* ext/vpx/gstvp9enc.c:
* ext/vpx/gstvp9enc.h:
* ext/vpx/gstvpxenc.c:
* ext/vpx/gstvpxenc.h:
vpx: created common baseclass GstVPXEnc
GstVP8Enc and GstVP9Enc has almost 80% code in common.
created common baseclass GstVPXEnc for GstVP8Enc and GstVP9Enc
2015-12-15 12:57:53 -0500 Nicolas Dufresne <>
* ext/vpx/gstvp9dec.c:
* ext/vpx/gstvpxdec.c:
* ext/vpx/gstvpxdec.h:
vpxdec: Remove unneeded add video_meta
This also remove copies for VP8, which was not correctly in place
in previous related patch.
2015-12-15 09:49:24 +0530 Prashant Gotarne <>
* ext/vpx/
* ext/vpx/gstvp8dec.c:
* ext/vpx/gstvp8dec.h:
* ext/vpx/gstvp9dec.c:
* ext/vpx/gstvp9dec.h:
* ext/vpx/gstvpxdec.c:
* ext/vpx/gstvpxdec.h:
vpx: created common base class GstVPXdec for vpx decoders
Base class for the vp8dec and vp9dec.
2015-06-10 09:17:08 -0400 Xavier Claessens <>
* ext/soup/gstsouphttpsrc.c:
* ext/soup/gstsouphttpsrc.h:
souphttpsrc: Add GTlsInteraction property
2015-12-14 09:05:06 -0500 Evan Callaway <>
* gst/rtsp/gstrtspsrc.c:
rtspsrc: Retry connection if tunneling needs authentication
Leverage response from gst_rtsp_connection_connect_with_response to
determine if the connection should be retried using authentication. If
so, add the appropriate authentication headers based upon the response
and retry the connection.
2015-12-14 14:19:05 +0000 Luis de Bethencourt <>
* gst/rtsp/gstrtspsrc.c:
rtspsrc: check port-range format
The string could exist but with a wrong format, in that case we still want
to reset the values of client_port_range.min and max like we do if there is
no string.
CID 1139593
2015-12-14 14:55:12 +0100 Thomas Roos <>
* sys/directsound/gstdirectsoundsink.c:
directsoundsink: Check device property and fail if device can't be found
Don't use default if a specific device is set but it can't be found.
2015-12-14 14:15:00 +0100 Thomas Roos <>
* sys/directsound/gstdirectsoundsink.c:
directsoundsink: Fix handling of the mute property
- set mute value at startup
- correct set and get mute functions
2015-12-11 11:23:13 +0100 Thomas Roos <>
* sys/directsound/gstdirectsoundsink.c:
directsoundsink: Check the return value of GetStatus() too to decide if there was an error
If GetStatus() fails, the status itself won't be very meaningful but we also
have to look at its return value. This fixes blocking pipelines when removing
sound devices or during other errors, where we wouldn't notice the error and
then wait forever.
2015-12-10 17:41:46 +0000 Luis de Bethencourt <>
* gst/isomp4/atoms.c:
* gst/isomp4/atoms.h:
* gst/isomp4/gstqtmux.c:
isomp4: remove unused parameters in build_*_extension
AtomTRAK parameter is not used by build_mov_alac_extension(),
build_jp2h_extension(), or build_mov_alac_extension() and can be
2015-12-10 15:11:07 +0000 Luis de Bethencourt <>
* gst/isomp4/gstqtmux.c:
isomp4: replace variable only used once
Replace has_shift variable with value since it is only use once.
2015-12-09 12:24:09 +0200 Sebastian Dröge <>
* gst/rtpmanager/gstrtpjitterbuffer.c:
rtpjitterbuffer: Fix packet dropping after a big discont
We would queue 5 consective packets before considering a reset and a proper
discont here. Instead of expecting the next output packet to have the current
seqnum (i.e. the fifth), expect it to have the first seqnum. Otherwise we're
going to drop all queued up packets.
2015-12-09 11:49:02 +0530 Ravi Kiran K N <>
* gst/interleave/interleave.h:
interleave: Remove unsed field
Remove unused field collect_event in interleave.
2015-12-07 16:33:14 +0100 Edward Hervey <>
* gst/isomp4/qtdemux.c:
qtdemux: Stop pushing data as soon as possible in push-mode
When working in push-mode, we attempt to push out everything currently
buffered in the adapter.
This has two pitfalls:
* We could stop earlier (the moment we get a non-ok or non-not-linked)
* We return the last combined flow return, which might be completely
different from the previous combined flow return
2015-12-07 09:08:09 -0500 Nicolas Dufresne <>
* common:
Automatic update of common submodule
From b319909 to 86e4663
2015-12-07 14:41:51 +0200 Sebastian Dröge <>
* gst/rtpmanager/rtpsession.c:
rtpsession: Add a warning if an empty RTCP packet is tried to be sent
2015-11-30 19:20:13 -0500 Nicolas Dufresne <>
* ext/vpx/gstvp8dec.c:
* ext/vpx/gstvp8dec.h:
* ext/vpx/gstvp9dec.c:
* ext/vpx/gstvp9dec.h:
vpxdec: Use GstMemory to avoid copies
With the VPX decoders it's not simple to use downstream buffer pool,
because we don't know the image size and alignment when buffers get
allocated. We can though use GstAllocator (for downstream, or the system
allocator) to avoid a copy before pushing if downstream supports
GstVideoMeta. This would still cause a copy for sink that requires
specialized memory and does not have a GstAllocator for that, though
it will greatly improve performance for sink like glimagesink and
cluttersink. To avoid allocating for every buffer, we also use a
internal buffer pool.
2015-11-30 08:42:35 +0100 Edward Hervey <>
* gst/audioparsers/gstaacparse.c:
aacparse: Avoid over-skipping when checking LOAS config
There might be multiple LOAS config in a row in a full frame. The first
one might be a multi-layer config (which we can't properly parse yet)...
but then followed by a valid (single-layer) one.
The code was previously skipping whole frames (instead of just the LOAS
config we failed to read) resulting in multiple frames (seen up to 6s in
some situation) being dropped before finally getting the configuration.
2015-11-25 17:08:56 +0100 Edward Hervey <>
* gst/avi/gstavidemux.c:
avidemux: Properly set SPARSE stream flags for subpicture/subtitle
And while we're at it, also detect 'DXSA' as being a variant fourcc
of 'DXSB' for XSUB
2015-11-30 21:23:52 -0800 Reynaldo H. Verdejo Pinochet <>
* tests/check/elements/souphttpsrc.c:
tests: souphttpsrc: grammar fix
2015-11-30 21:01:17 -0800 Reynaldo H. Verdejo Pinochet <>
* tests/check/elements/souphttpsrc.c:
tests: souphttpsrc: switch shoutcast stream provider
Fixes failing ICY test. Previous provider has
streaming disabled outside UK.
2015-11-18 16:10:11 +0100 Michael Olbrich <>
* gst/avi/gstavimux.c:
avimux: don't crash if we never got audio caps before stopping
auds.blockalign is set once the first caps arrive. If
gst_avi_mux_stop_file() is called before this happens then auds.blockalign
is zero and gst_avi_mux_audsink_set_fields() cause a crash:
avipad->parent.hdr.rate = avipad->auds.av_bps / avipad->auds.blockalign;
2015-12-01 18:20:23 +0100 Wim Taymans <>
* sys/v4l2/gstv4l2bufferpool.c:
v4l2bufferpool: don't block when resurecting a buffer
When we are resurecting a buffer, don't block. instead let us copy a
2015-12-01 00:30:08 -0300 Thiago Santos <>
* gst/wavparse/gstwavparse.c:
wavparse: remove extra variable to improve readability
Makes it easier to see that the event is being replaced/unrefed
2015-12-01 00:22:36 -0300 Thiago Santos <>
* gst/wavparse/gstwavparse.c:
wavparse: respect seqnum in seek events
Propagate the original seek seqnum to events originated from
seeking to make sure they have the same value
2015-12-01 00:03:21 -0300 Thiago Santos <>
* gst/wavparse/gstwavparse.c:
wavparse: flush upstream when seeking in pull mode
Makes sure upstream will unblock and return the thread so that
seeking can continue
2015-11-27 09:27:29 +0100 Anton Bondarenko <>
* gst/rtp/gstrtph264pay.c:
rtph264pay: add "send SPS/PPS with every key frame" mode
It's not enough to have timeout or event based SPS/PPS information sent
in RTP packets. There are some scenarios when key frames may appear
more frequently than once a second, in which case the minimum timeout
for "config-interval" of 1 second for sending SPS/PPS is not sufficient.
It might also be desirable in general to make sure the SPS/PPS is
available with every keyframe (packet loss aside), so receivers can
actually pick up decoding immediately from the first keyframe if
SPS/PPS is not signaled out of band.
This patch adds the possibility to send SPS/PPS with every key frame. This
mode can be enabled by setting "config-interval" property to -1. In this
case the payloader will add SPS and PPS before every key (IDR) frame.
2015-11-27 09:03:51 +0100 Tim-Philipp Müller <>
* gst/rtp/gstrtph264pay.c:
* gst/rtp/gstrtph264pay.h:
* tests/check/elements/rtp-payloading.c:
rtph264pay: change config-interval property type from uint to int
This way we can use -1 as special value, which is nicer than MAXUINT.
This is backwards compatible even with the GValue API, as shown by
a unit test.
2015-11-26 21:46:11 +0000 Luis de Bethencourt <>
* gst/isomp4/qtdemux.c:
qtdemux: add support for Opus
Add support for demuxing Opus encapsulated in MP4 files, based on the
following spec:
2015-11-25 22:48:32 +0000 Luis de Bethencourt <>
* gst/isomp4/qtdemux.c:
qtdemux: use macro for codec_name
Use _codec() macro instead of duplicating code.
2015-03-25 16:32:55 +0100 Philipp Zabel <>
* sys/v4l2/gstv4l2videodec.c:
v4l2: videodec: choose format from caps
2015-03-27 15:02:33 +0100 Philipp Zabel <>
* sys/v4l2/gstv4l2object.c:
* sys/v4l2/gstv4l2object.h:
v4l2: add gst_v4l2_object_probe_caps
Add a variant of gst_v4l2_object_get_caps that bypasses the probed_caps cache.
2015-11-19 17:20:55 -0500 Nicolas Dufresne <>
* sys/v4l2/gstv4l2.c:
v4l2-probe: Skip devices without supported formats
2015-11-13 12:35:59 -0500 Nicolas Dufresne <>
* sys/v4l2/gstv4l2.c:
v4l2: Track /dev/video* to triggered required probe
If something in /dev/video* get added, removed or replaced, we need to
probe the devices again in order to ensure the dynamic devices are up to
2015-11-25 14:51:40 +1100 Alessandro Decina <>
* gst/rtpmanager/rtpsession.c:
rtpmanager: rtpsession: don't send empty RTCP packets
generate_rtcp can produce empty packets when reduced size RTCP is turned on.
Skip them since it doesn't make sense to push them and they cause errors with
elements that expect RTCP packets to contain data (like srtpenc).
2015-11-24 10:57:28 -0300 Thiago Santos <>
* gst/isomp4/qtdemux.c:
qtdemux: restore the segment on case of soft reset
When seeking back to restore the mdat position a flush is pushed
through and it resets downstream segment information. Make sure
that after the flush (that does a soft reset) a segment will
be pushed again
Fixes regressions spotted at
2015-11-20 12:44:22 +0000 Graham Leggett <>
* gst/multifile/gstmultifilesink.c:
multifilesink: fix spelling of variable
2015-11-20 11:05:51 +0000 Luis de Bethencourt <>
* gst/isomp4/fourcc.h:
* gst/isomp4/qtdemux.c:
qtdemux: unite duplicate FourCC
Unite in fourcc.h the FourCCs that are used twice or more in qtdemux
2015-11-19 15:33:45 -0500 Nicolas Dufresne <>
* sys/v4l2/gstv4l2transform.c:
* sys/v4l2/gstv4l2videodec.c:
v4l2: Fix capture/output-io-mode properties
There was some miss-match in the implementation. This makes it
concistent, though functionally it worked, except the video decoder
output-io-mode getter.
2015-11-19 19:48:06 +0000 Luis de Bethencourt <>
* gst/isomp4/atoms.c:
atoms: remove unused argument of build_mov_wave_extension()
AtomTrak * trak argument of build_move_wave_extension() isn't used.
Removing it.
2015-11-19 19:28:20 +0000 Luis de Bethencourt <>
* gst/isomp4/fourcc.h:
* gst/isomp4/qtdemux.c:
qtdemux: remove duplicate FourCC
Use the available FourCCs in fourcc.h instead of duplicating them.
2015-11-19 18:36:39 +0000 Luis de Bethencourt <>
* gst/isomp4/atoms.c:
* gst/isomp4/fourcc.h:
* gst/isomp4/gstqtmux.c:
isomp4: centralize all FourCC
10 FourCCs generated with GST_MAKE_FOURCC() in gstqtmux.c and atoms.c
already exist in fourcc.h. Don't duplicate these and use them directly.
Plus moving 6 to fourcc.h, to centralize them all.
2015-11-19 17:32:12 +0000 Luis de Bethencourt <>
* gst/matroska/webm-mux.c:
matroska/webmmux: fix outdated example launch lines
Update gst-launch-0.10 lines to gst-launch-1.0
2015-11-16 13:26:50 +0000 Luis de Bethencourt <>
* gst/isomp4/atoms.c:
* gst/isomp4/atoms.h:
* gst/isomp4/fourcc.h:
* gst/isomp4/gstqtmux.c:
* gst/isomp4/gstqtmuxmap.c:
isomp4: add support for Opus in mp4mpux
Add support for muxing MP4 files containing Opus. Based on the spec
detailed here:
2015-11-18 19:10:56 +0200 Sebastian Dröge <>
* gst/isomp4/qtdemux.c:
qtdemux: Replace tabs with spaces
2015-11-18 19:07:53 +0200 Sebastian Dröge <>
* gst/isomp4/qtdemux.c:
qtdemux: Cast to signed integers to prevent unsigned compare between negative and positive numbers
This fixes seeking if the first entries in the samples table are negative. The
binary search would always fail on this as the array would not be sorted if
interpreting the negative numbers as huge positive numbers. This caused us to
always output buffers from the beginning after a seek instead of close to the
seek position.
Also add a case to the comparison function for equality.
2015-11-18 16:01:48 +0000 Luis de Bethencourt <>
* gst/matroska/matroska-mux.c:
matroskamux: remove duplicate check
We want 1 or 2 streamheaders, the check if (bufarr->len != 1 &&
bufarr->len != 2) is enough. Not need to check if bufarr->len is <= 0 or
> 255.
2015-11-18 14:48:36 +0900 Vineeth TM <>
* ext/soup/gstsouphttpclientsink.c:
souphttpclientsink: Fix error leak and handle error
g_thread_try_new allows for possiblity of failures. In case it fails,
error is not handled and leaked.