platform/upstream/gstreamer.git
9 years agortpbin/session: Add new ntp-time-source property and deprecate use-pipeline-clock...
Sebastian Dröge [Fri, 12 Jun 2015 21:29:19 +0000 (23:29 +0200)]
rtpbin/session: Add new ntp-time-source property and deprecate use-pipeline-clock property

The new property allows to select the time source that should be used for the
NTP time in RTCP packets. By default it will continue to calculate the NTP
timestamp (1900 epoch) based on the realtime clock. Alternatively it can use
the UNIX timestamp (1970 epoch), the pipeline's running time or the pipeline's
clock time. The latter is especially useful for synchronizing multiple
receivers if all of them share the same clock.

If use-pipeline-clock is set to TRUE, it will override the ntp-time-source
setting and continue to use the running time plus 70 years. This is only kept
for backwards compatibility.

9 years agotests: qtmux: test for muxing with DTS outside the segment
Thiago Santos [Tue, 7 Apr 2015 19:03:42 +0000 (16:03 -0300)]
tests: qtmux: test for muxing with DTS outside the segment

https://bugzilla.gnome.org/show_bug.cgi?id=740575

9 years agoqtdemux: Adjust segment according to ctts offset
Nicolas Dufresne [Thu, 11 Jun 2015 21:26:49 +0000 (17:26 -0400)]
qtdemux: Adjust segment according to ctts offset

In presence of a CTTS, the segment start/stop must be offset so
the segment start/stop include the PTS. This is needed since the
PTS cannot be negative in this format. This fixes issues where the
running time of the first buffer isn't at the start.

https://bugzilla.gnome.org/show_bug.cgi?id=740575

9 years agoqtmux: Handle DTS with negative running time
Nicolas Dufresne [Sat, 4 Apr 2015 00:34:42 +0000 (20:34 -0400)]
qtmux: Handle DTS with negative running time

As QT works with duration, simply bring back first DTS to 0 and shift
forward the PTS of the same amount.

https://bugzilla.gnome.org/show_bug.cgi?id=740575

9 years agoflvmux: Add negative runtime DTS support
Nicolas Dufresne [Wed, 10 Jun 2015 22:15:52 +0000 (18:15 -0400)]
flvmux: Add negative runtime DTS support

This is done by using new feature of the CollectPad clip function
which sets the DTS as a gint64 in the collected data. It also simplify
the code a bit.

https://bugzilla.gnome.org/show_bug.cgi?id=740575

9 years agortpbin: Rename some variables and debug output to make more sense
Sebastian Dröge [Fri, 12 Jun 2015 21:06:24 +0000 (23:06 +0200)]
rtpbin: Rename some variables and debug output to make more sense

Local and remote were mixed up in a few places, and the time we store here is
not UNIX time (1970 epoch), but NTP time (1900 epoch) in nanoseconds.

9 years agoosxaudio: fix latency property query on RemoteIO
Ilya Konstantinov [Fri, 12 Jun 2015 16:21:10 +0000 (19:21 +0300)]
osxaudio: fix latency property query on RemoteIO

AudioUnitGetProperty would fail with kParamErr (-50) every time,
simply because size wasn't initialized.

Now it returns zero latency, but at least it doesn't fail.

https://bugzilla.gnome.org/show_bug.cgi?id=750868

9 years agopulsesrc: Fix mapping of latency parameters to buffer attributes
Arun Raghavan [Tue, 7 Apr 2015 08:36:16 +0000 (14:06 +0530)]
pulsesrc: Fix mapping of latency parameters to buffer attributes

9 years agomatroska-demux: Actually set detected 3D info into output caps.
Jan Schmidt [Thu, 11 Jun 2015 15:56:37 +0000 (01:56 +1000)]
matroska-demux: Actually set detected 3D info into output caps.

Use the information read from the StereoMode info
to configure multiview-mode and multiview-flags in the
video caps.

9 years agosplitmuxsink: Take released-but-not-yet-output bytes into account
Jan Schmidt [Thu, 11 Jun 2015 03:36:54 +0000 (13:36 +1000)]
splitmuxsink: Take released-but-not-yet-output bytes into account

When deciding whether it's time to switch to a new file, take into
account data that's been released for pushing, but hasn't yet
been pushed - because downstream is slow or the threads haven't been
scheduled.

Fixes a race in the unit test and probably in practice - sometimes
failing to switch when it should for an extra GOP or two.

Also fix a problem in splitmuxsrc where playback sometimes
stalls at startup if types are found too quickly.

https://bugzilla.gnome.org/show_bug.cgi?id=750747

9 years agoatoms: remove custom gst_buffer_new function in favor of core version
Thiago Santos [Thu, 11 Jun 2015 04:04:51 +0000 (01:04 -0300)]
atoms: remove custom gst_buffer_new function in favor of core version

Remove a custom specialized version of gst_buffer_new_wrapped by
using gst_buffer_new_wrapped_full inside a macro to simplify
parameters and give it a more meaningful name.
It is only used to create temporary buffers to have its data copied.

9 years agoatoms: simplify free form data atoms creation
Thiago Santos [Thu, 11 Jun 2015 03:14:41 +0000 (00:14 -0300)]
atoms: simplify free form data atoms creation

Avoid creating an intermediary buffer or memory area just
to copy into an atom's data area.

9 years agoqtmux: add AC-3 muxing support
Thiago Santos [Thu, 11 Jun 2015 01:27:27 +0000 (22:27 -0300)]
qtmux: add AC-3 muxing support

Adds AC-3 muxing support. It is defined for mp4 and 3gp formats.

One extra feature that was added was the ability to add extension
atoms after set_caps as the AC-3 extension atom needs some data
that has to be extracted from the stream itself and is not
present on caps.

9 years agoqtmux: remove unused type MP4S
Thiago Santos [Thu, 11 Jun 2015 01:36:59 +0000 (22:36 -0300)]
qtmux: remove unused type MP4S

9 years agoqtmux: remove duplicate attribute value set
Thiago Santos [Thu, 11 Jun 2015 01:29:01 +0000 (22:29 -0300)]
qtmux: remove duplicate attribute value set

It is also set a few lines below

9 years agomatroska: Implement basic stereoscopic video support
Jan Schmidt [Wed, 10 Jun 2015 14:22:54 +0000 (00:22 +1000)]
matroska: Implement basic stereoscopic video support

Implement support for the packed video formats WebM
uses, not all the values that Matroska might use.

In practice, it's really hard to find any samples in the
wild of any.

Supported in both the muxer and demuxer.

9 years agoqtdemux: Add basic support for MPEG-A stereoscopic video
Jan Schmidt [Tue, 9 Jun 2015 15:26:15 +0000 (01:26 +1000)]
qtdemux: Add basic support for MPEG-A stereoscopic video

The MPEG-A format provides an extension to the ISO base media
file format to store stereoscopic content encoded with different
codecs like H.264 and MPEG-4:2. The stereo video media information(svmi)
atom declares the presence and storage method for the video.

Stereo video information for MPEG-A can also be supplied through
the 'stvi' atom (ref: ISO/IEC_14496-12, ISO/IEC_23000-11), which
is not implemented in this patch.

Also missing is support for stereo video encoded as separate video tracks
for now.

Based on a patch by Sreerenj Balachandran <sreerenj.balachandran@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=611157

9 years agosouphttpsrc: Add tls-database property
Xavier Claessens [Tue, 2 Jun 2015 20:15:35 +0000 (16:15 -0400)]
souphttpsrc: Add tls-database property

https://bugzilla.gnome.org/show_bug.cgi?id=750298

9 years agortp: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()
Sebastian Dröge [Wed, 10 Jun 2015 12:33:50 +0000 (14:33 +0200)]
rtp: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()

The mix between all these in the RTP code is confusing, let's try to be
consistent.

9 years agortpmanager: clarify negative lost packets in stats
Ilya Konstantinov [Wed, 10 Jun 2015 11:49:50 +0000 (14:49 +0300)]
rtpmanager: clarify negative lost packets in stats

Also:
- Move notes on units before field documentation.
- Unify documentation style.

https://bugzilla.gnome.org/show_bug.cgi?id=750653

9 years agosouphttpsrc: fix getter of "ssl-use-system-ca-file"
Xavier Claessens [Wed, 10 Jun 2015 10:38:39 +0000 (06:38 -0400)]
souphttpsrc: fix getter of "ssl-use-system-ca-file"

https://bugzilla.gnome.org/show_bug.cgi?id=750298

9 years agoqtdemux: fix reverse playback
Vineeth TM [Wed, 10 Jun 2015 00:49:47 +0000 (09:49 +0900)]
qtdemux: fix reverse playback

When performing seek, segment->start is being updated with desired_offset,
but in case of reverse playback segment->start should be 0 and
segment->stop should be updated with desired offset.

https://bugzilla.gnome.org/show_bug.cgi?id=750675

9 years agogstv4l2bufferpool: handle -EPIPE from DQBUF to signal EOS
Philipp Zabel [Wed, 21 Jan 2015 17:09:03 +0000 (18:09 +0100)]
gstv4l2bufferpool: handle -EPIPE from DQBUF to signal EOS

The V4L2 decoder signals EOS by returning -EPIPE from DQBUF after the
last buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=743338

9 years agortspsrc: Add a GTlsInteraction property
Xavier Claessens [Sun, 7 Jun 2015 01:09:19 +0000 (21:09 -0400)]
rtspsrc: Add a GTlsInteraction property

It can be used for TLS client authentication.

https://bugzilla.gnome.org/show_bug.cgi?id=750471

9 years agov4l2: Allow scaling in the v4l2*convert element
Enrico Jorns [Fri, 9 Jan 2015 10:36:11 +0000 (11:36 +0100)]
v4l2: Allow scaling in the v4l2*convert element

This is inspired of videoscale and videoconvert elements.

https://bugzilla.gnome.org/show_bug.cgi?id=742917

9 years agortpmanager: document units of stats and arguments
Ilya Konstantinov [Tue, 9 Jun 2015 16:02:55 +0000 (19:02 +0300)]
rtpmanager: document units of stats and arguments

Also, minor spelling and style corrections.

https://bugzilla.gnome.org/show_bug.cgi?id=750653

9 years agocruft: add the obsolete tmpl dir to cruft-dirs
Stefan Sauer [Tue, 9 Jun 2015 12:42:27 +0000 (14:42 +0200)]
cruft: add the obsolete tmpl dir to cruft-dirs

9 years agoAutomatic update of common submodule
Edward Hervey [Tue, 9 Jun 2015 09:30:22 +0000 (11:30 +0200)]
Automatic update of common submodule

From d9a3353 to 6015d26

9 years agoFix common version
Edward Hervey [Tue, 9 Jun 2015 05:04:07 +0000 (07:04 +0200)]
Fix common version

Was accidently downgraded by 87a4884acd8655a6591d735a1d944ecb5ea3de16

9 years agov4l2: Also set colorimetry on output devices
Nicolas Dufresne [Mon, 8 Jun 2015 23:11:41 +0000 (19:11 -0400)]
v4l2: Also set colorimetry on output devices

This completes the code that set the colorimetry on output
device.

9 years agov4l2: Add missing SMTP240M matrix
Nicolas Dufresne [Mon, 8 Jun 2015 23:10:34 +0000 (19:10 -0400)]
v4l2: Add missing SMTP240M matrix

This is missing in the doc, but was in the header.

9 years agogoom: possible uninitialized variables warning
Luis de Bethencourt [Mon, 8 Jun 2015 22:00:16 +0000 (23:00 +0100)]
goom: possible uninitialized variables warning

Build fails with the latest snapshot of gcc-4.9 because param1 and param2 might
possibly be used uninitialized. They are set depending on the cases of a switch
statement and the compiler sees this as not a complete guarantee.
Set them to 0 if the switch statement falls down to the default case.

https://bugzilla.gnome.org/show_bug.cgi?id=750566#c6

9 years agov4l2object: Fully implement colorimetry support
Nicolas Dufresne [Mon, 8 Jun 2015 21:24:38 +0000 (17:24 -0400)]
v4l2object: Fully implement colorimetry support

This fixes wrong mapping for sRGB as in GStreamer sRGB correctly
apply to RGB formats, while in V4L2 it's an alias for sYCC. Also
add support for the new quantization (range), ycbcr_encoding (matrix)
and xfer_func (transfer) enumeration.

9 years agov4l2: Update kernel headers to latest from media tree
Nicolas Dufresne [Mon, 8 Jun 2015 21:01:15 +0000 (17:01 -0400)]
v4l2: Update kernel headers to latest from media tree

This is the latest from media tree. This should enable more development
of the v4l2 elements. This includes new flags requires to fix draining
path in decoder, colorimetry and much more.

9 years agoAutomatic update of common submodule
Stefan Sauer [Mon, 8 Jun 2015 21:07:55 +0000 (23:07 +0200)]
Automatic update of common submodule

From d37af32 to d9a3353

9 years agortpvp8depay: potential access beyond end of array
Chris Clayton [Mon, 8 Jun 2015 18:42:30 +0000 (19:42 +0100)]
rtpvp8depay: potential access beyond end of array

Compiling (with gcc-4.9-20150603) produces an error because of an access beyond
the end of an array. This patch fixes the error by initializing the loop
control/array index variable (i) to 1 and returning i - 1 when a match is found.
Also, because the values stored in the array increase in value as the index
increases, the >= test unnecessary, so it is removed.

9 years agosplitmuxsink: Don't accumulate more than 2 GOPs
Jan Schmidt [Wed, 29 Apr 2015 16:52:58 +0000 (02:52 +1000)]
splitmuxsink: Don't accumulate more than 2 GOPs

Don't allow large amounts of data to queue up - we only need
the GOP we're writing, and the GOP we're accumulating.

9 years agoisomp4: fsync after sending updates in robust mode
Jan Schmidt [Thu, 16 Apr 2015 00:44:49 +0000 (10:44 +1000)]
isomp4: fsync after sending updates in robust mode

Use the new GstBuffer SYNC_AFTER flag to trigger an fsync
after updating the moov or mdat atom, and after updating the free
atom to make it visible.

9 years agoisomp4: Only set moov header into streamheader at EOS
Jan Schmidt [Thu, 2 Apr 2015 13:57:20 +0000 (00:57 +1100)]
isomp4: Only set moov header into streamheader at EOS

Only update the moov header into the caps if it's the finalised
moov at EOS time. Avoids posting a bogus moov at startup and
repeated updates in robust-recording mode

9 years agotests: Update mp4 mux test for mdat placeholder change
Jan Schmidt [Thu, 2 Apr 2015 14:44:15 +0000 (01:44 +1100)]
tests: Update mp4 mux test for mdat placeholder change

The mp4 muxer now writes a place-holder mdat as a free
atom followed by a 0-byte mdat that covers the rest of the
file, making it possible to rewrite it as 64-bit, or leave
it as-is if nothing else is written afterward

9 years agoisomp4: Implement robust muxing using ping-pong strategy
Jan Schmidt [Wed, 1 Apr 2015 00:15:38 +0000 (11:15 +1100)]
isomp4: Implement robust muxing using ping-pong strategy

Implement a robust recording mode, where the output
file is always in a playable state, seeking and rewriting
the moov header at a configurable interval. Rewriting
moov is done using reserved space at the start of
the file, and a ping-pong strategy where the moov
is replaced atomically so it's never invalid.

Track when tags have actually changed, and don't write them into
the moov unless they've changed. Clear any existing tags when
re-writing them, so we can do progressive moov updating in robust
recording mode.

Write placeholder mdat as a free atom plus a 32-bit mdat
with '0' size, which means "rest of the file" in the spec.

Re-write it later to a full 64-bit extended size atom if needed.

9 years agoisomp4: Update edit list when re-writing moov
Jan Schmidt [Tue, 31 Mar 2015 13:58:52 +0000 (00:58 +1100)]
isomp4: Update edit list when re-writing moov

Correctly update any edit lists each time the moov is recalculated,
updating existing table entries if they already exist instead of just
adding new ones.

9 years agoisomp4: Remove an extra bracket in a comment.
Jan Schmidt [Tue, 7 Apr 2015 15:41:18 +0000 (01:41 +1000)]
isomp4: Remove an extra bracket in a comment.

9 years agosplitmuxsrc: Protect total_duration state variable with the object lock.
Jan Schmidt [Thu, 19 Mar 2015 09:29:44 +0000 (20:29 +1100)]
splitmuxsrc: Protect total_duration state variable with the object lock.

Prevent deadlocks from downstream querying duration from the streaming thread.

9 years agoAutomatic update of common submodule
Stefan Sauer [Sun, 7 Jun 2015 21:06:20 +0000 (23:06 +0200)]
Automatic update of common submodule

From 21ba2e5 to d37af32

9 years agogoom: clean dereferences of private structure
Luis de Bethencourt [Sun, 7 Jun 2015 18:24:20 +0000 (19:24 +0100)]
goom: clean dereferences of private structure

https://bugzilla.gnome.org/show_bug.cgi?id=742875

9 years agogoom2k1: clean dereferences of private structure
Luis de Bethencourt [Sun, 7 Jun 2015 18:20:04 +0000 (19:20 +0100)]
goom2k1: clean dereferences of private structure

https://bugzilla.gnome.org/show_bug.cgi?id=742875

9 years agoAutomatic update of common submodule
Stefan Sauer [Sun, 7 Jun 2015 15:32:01 +0000 (17:32 +0200)]
Automatic update of common submodule

From c408583 to 21ba2e5

9 years agodocs: remove variables that we define in the snippet from common
Stefan Sauer [Sun, 7 Jun 2015 15:01:37 +0000 (17:01 +0200)]
docs: remove variables that we define in the snippet from common

This is syncing our Makefile.am with upstream gtkdoc.

9 years agoAutomatic update of common submodule
Stefan Sauer [Sun, 7 Jun 2015 15:16:19 +0000 (17:16 +0200)]
Automatic update of common submodule

From d676993 to c408583

9 years agoBack to development
Sebastian Dröge [Sun, 7 Jun 2015 14:44:37 +0000 (16:44 +0200)]
Back to development

9 years agoRelease 1.5.1
Sebastian Dröge [Sun, 7 Jun 2015 08:46:34 +0000 (10:46 +0200)]
Release 1.5.1

9 years agoUpdate .po files
Sebastian Dröge [Sun, 7 Jun 2015 08:38:28 +0000 (10:38 +0200)]
Update .po files

9 years agortpsession: Override the SSRC from the packets' SSRC if none was given via caps or...
Sebastian Dröge [Sun, 7 Jun 2015 08:32:38 +0000 (10:32 +0200)]
rtpsession: Override the SSRC from the packets' SSRC if none was given via caps or property

9 years agopo: Update translations
Sebastian Dröge [Sun, 7 Jun 2015 07:35:38 +0000 (09:35 +0200)]
po: Update translations

9 years agov4l2: Don't warn when optional CID are not implement
Nicolas Dufresne [Fri, 5 Jun 2015 19:32:10 +0000 (15:32 -0400)]
v4l2: Don't warn when optional CID are not implement

gst_v4l2_get_attributre() shall only be used when the CID is expected
to be supported. Otherwise, we get unwanted warning posted to the bus.

9 years agortpsession: Only suggest our internal ssrc if it's not a random one and was selected...
Sebastian Dröge [Fri, 5 Jun 2015 14:43:08 +0000 (16:43 +0200)]
rtpsession: Only suggest our internal ssrc if it's not a random one and was selected as internal ssrc

https://bugzilla.gnome.org/show_bug.cgi?id=749581

9 years agointerleave: error when channel-positions-from-input=False
Vineeth TM [Thu, 4 Jun 2015 05:18:01 +0000 (14:18 +0900)]
interleave: error when channel-positions-from-input=False

self->channels is being incremented only when
channel-positions-from-input is set as TRUE. So in case of FALSE
self->func is not set and hence creating assertion error.
Hence removing the condition to increment self->channels.

https://bugzilla.gnome.org/show_bug.cgi?id=744211

9 years agortpjitterbuffer: Add support for receiving reduced size RTCP
Sebastian Dröge [Fri, 5 Jun 2015 08:33:11 +0000 (10:33 +0200)]
rtpjitterbuffer: Add support for receiving reduced size RTCP

It worked before but gave warnings, now we just ignore RTCP
packets that don't start with a SR. As all we're interested
in here are SRs.

9 years agortpssrcdemux: Add support for reduce size rtcp
Jose Antonio Santos Cadenas [Wed, 3 Jun 2015 10:22:42 +0000 (12:22 +0200)]
rtpssrcdemux: Add support for reduce size rtcp

According to RFC 5506, reduce size packages can be sent, this
packages may not be compound, so we need to add support for
getting ssrc from other types of packages.

https://bugzilla.gnome.org/show_bug.cgi?id=750327

9 years agortpsession: Add support for receiving reduced size rtcp
Jose Antonio Santos Cadenas [Wed, 3 Jun 2015 11:14:44 +0000 (13:14 +0200)]
rtpsession: Add support for receiving reduced size rtcp

See RFC 5506

https://bugzilla.gnome.org/show_bug.cgi?id=750332

9 years agoaacparse: Add support for channel configurations 11, 12 and 14 and 7 actually has...
Sebastian Dröge [Thu, 4 Jun 2015 14:09:41 +0000 (16:09 +0200)]
aacparse: Add support for channel configurations 11, 12 and 14 and 7 actually has 8 channels

ISO/IEC 14496-3:2009/PDAM 4 added 11, 12 and 14.

9 years agoasteriskh263: Un-rank clashing depayloader
Nicolas Dufresne [Wed, 3 Jun 2015 12:57:57 +0000 (08:57 -0400)]
asteriskh263: Un-rank clashing depayloader

This depayloader clash with the standard one for H263p. It produces an
H263p stream with a modified header. It uses encoding-name that is the
same as H263p (H263-1998) though the resulting ES is not decodable or
parsable in GStreamer, making it unsuable in dynamic pipeline. This
patch unrank this specialized depayloader since it can only be used in
custom pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=739935

9 years agogoom2k1: remove variables not needed anymore
Luis de Bethencourt [Tue, 2 Jun 2015 17:09:48 +0000 (18:09 +0100)]
goom2k1: remove variables not needed anymore

https://bugzilla.gnome.org/show_bug.cgi?id=742875

9 years agogoom2k1: rebase to use the audiovisualizer class
Luis de Bethencourt [Tue, 2 Jun 2015 16:52:46 +0000 (17:52 +0100)]
goom2k1: rebase to use the audiovisualizer class

Rebase to have goom2k1 using the common GstAudioVisualizer class

https://bugzilla.gnome.org/show_bug.cgi?id=742875

9 years agogoom: rebase to use the audiovisualizer class
Luis de Bethencourt [Tue, 2 Jun 2015 16:29:36 +0000 (17:29 +0100)]
goom: rebase to use the audiovisualizer class

9 years agocheck: Use GST_CHECK_MAIN () macro everywhere
Edward Hervey [Tue, 2 Jun 2015 14:27:24 +0000 (16:27 +0200)]
check: Use GST_CHECK_MAIN () macro everywhere

Makes source code smaller, and ensures we go through common initialization
path (like the one that sets up XML unit test output ...)

9 years agortpsession: Only schedule a timer when we actually have to send RTCP
Sebastian Dröge [Tue, 26 May 2015 12:47:31 +0000 (14:47 +0200)]
rtpsession: Only schedule a timer when we actually have to send RTCP

Otherwise we will have 10s-100s of thread wakeups in feedback profiles, create
RTCP packets, etc. just to suppress them in 99% of the cases (i.e. if no
feedback is actually pending and no regular RTCP has to be sent).

This improves CPU usage and battery life quite a lot.

https://bugzilla.gnome.org/show_bug.cgi?id=746543

9 years agortpsession: Remove useless goto
Sebastian Dröge [Fri, 22 May 2015 10:44:03 +0000 (13:44 +0300)]
rtpsession: Remove useless goto

https://bugzilla.gnome.org/show_bug.cgi?id=746543

9 years agoexamples: Set RTP profile to AVPF for rtpaux examples
Sebastian Dröge [Thu, 21 May 2015 09:54:47 +0000 (12:54 +0300)]
examples: Set RTP profile to AVPF for rtpaux examples

https://bugzilla.gnome.org/show_bug.cgi?id=746543

9 years agortspsrc: Set RTP profile on the rtpsession objects
Sebastian Dröge [Mon, 4 May 2015 14:41:50 +0000 (16:41 +0200)]
rtspsrc: Set RTP profile on the rtpsession objects

https://bugzilla.gnome.org/show_bug.cgi?id=746543

9 years agortpbin: Add rtp-profile property for setting the default profile of newly created...
Sebastian Dröge [Thu, 21 May 2015 11:13:56 +0000 (14:13 +0300)]
rtpbin: Add rtp-profile property for setting the default profile of newly created sessions

https://bugzilla.gnome.org/show_bug.cgi?id=746543

9 years agortpsession: Only put RRs and full SDES into regular RTCP packets
Sebastian Dröge [Mon, 4 May 2015 09:51:41 +0000 (11:51 +0200)]
rtpsession: Only put RRs and full SDES into regular RTCP packets

If we may suppress the packet due to the rules of RFC4585 (i.e. when
below the t-rr-int), we can send a smaller RTCP packet without RRs
and full SDES. In theory we could even send a minimal RTCP packet
according to RFC5506, but we don't support that yet.

https://bugzilla.gnome.org/show_bug.cgi?id=746543

9 years agortpsession: Keep track of tp/tn and t_rr_last separately
Sebastian Dröge [Mon, 4 May 2015 11:51:50 +0000 (13:51 +0200)]
rtpsession: Keep track of tp/tn and t_rr_last separately

Otherwise we can't properly schedule RTCP in feedback profiles as we need to
distinguish the time when we last checked for sending RTCP (tp) but might have
suppressed it, and the time when we last actually sent a non-early RTCP
packet.

This together with the other changes should now properly implement RTCP
scheduling according to RFC4585, and especially allow us to send feedback
packets a lot if needed but only send regular RTCP packets every once in a
while.

https://bugzilla.gnome.org/show_bug.cgi?id=746543

9 years agortpsession: Add property for selecting RTP profile (AVP/AVPF/etc)
Sebastian Dröge [Mon, 4 May 2015 09:42:08 +0000 (11:42 +0200)]
rtpsession: Add property for selecting RTP profile (AVP/AVPF/etc)

And modify our RTCP scheduling algorithm accordingly. We now can send more
RTCP packets if needed for feedback, but will throttle full RTCP packets by
rtcp-min-interval (t-rr-int from RFC4585).

In non-feedback mode, rtcp-min-interval is Tmin from RFC3550, which is
statically set to 1s or 0s by RFC4585. Tmin defines how often we should
send RTCP packets at most.

https://bugzilla.gnome.org/show_bug.cgi?id=746543

9 years agomulawdec: Let baseclass estimate bitrate
Olivier Crête [Sat, 30 May 2015 21:41:05 +0000 (17:41 -0400)]
mulawdec: Let baseclass estimate bitrate

This makes playback directly from a file work with the right caps.

9 years agodynudpsink: keep GCancellable fd around instead of re-creating it constantly
Tim-Philipp Müller [Wed, 27 May 2015 15:31:23 +0000 (16:31 +0100)]
dynudpsink: keep GCancellable fd around instead of re-creating it constantly

And create it only when starting the element.

9 years agoudpsink, multiudpsink: keep GCancellable fd around instead of re-creating it constantly
Tim-Philipp Müller [Wed, 27 May 2015 14:55:56 +0000 (15:55 +0100)]
udpsink, multiudpsink: keep GCancellable fd around instead of re-creating it constantly

Otherwise we constantly create/close event file descriptors,
every time we call g_socket_condition_timed_wait() or
g_socket_send_message(s)(), i.e. a lot. Which is not
particularly good for performance.

Can't create GCancellable in ::start() here because it's used
in client_new() which may be called via the add-client action
signal which may be called before the element is up and running.

9 years agoudpsrc: keep GCancellable fd around instead of re-creating it constantly
Tim-Philipp Müller [Tue, 19 May 2015 17:13:16 +0000 (18:13 +0100)]
udpsrc: keep GCancellable fd around instead of re-creating it constantly

Otherwise we constantly create/close event file descriptors,
every single time we call g_socket_condition_timed_wait() or
g_socket_receive_message(), i.e. twice per packet received!
This was not particularly good for performance.

Also only create GCancellable on start-up.

9 years agomatroska: overwritten value assignment
Luis de Bethencourt [Tue, 26 May 2015 14:33:37 +0000 (15:33 +0100)]
matroska: overwritten value assignment

curpos is set and immediately after, set again. Remove the redundant
assignment.

https://bugzilla.gnome.org/show_bug.cgi?id=749909

9 years agortpvrawdepay: don't shadow existing outbuf variable
Tim-Philipp Müller [Sat, 23 May 2015 12:47:17 +0000 (13:47 +0100)]
rtpvrawdepay: don't shadow existing outbuf variable

And fix unref of the wrong one which will contain NULL
in an error code path.

9 years agortpvrawdepay: map/unmap output frame only once, not for every input packet
Tim-Philipp Müller [Sat, 23 May 2015 12:23:22 +0000 (13:23 +0100)]
rtpvrawdepay: map/unmap output frame only once, not for every input packet

Map output buffer after creating it and keep it mapped
until we're done with it instead of mapping/unmapping
it for every single input buffer.

9 years agoqtdemux: remove fixme from 2006
Thiago Santos [Mon, 25 May 2015 11:47:47 +0000 (08:47 -0300)]
qtdemux: remove fixme from 2006

It has been verified by use over time.

9 years agoqtdemux: fix reverse playback of fragmented media
Thiago Santos [Sat, 23 May 2015 17:36:41 +0000 (14:36 -0300)]
qtdemux: fix reverse playback of fragmented media

qtdemux creates a samples array and gets the timestamps for buffers by
accumulating their durations. When doing reverse playback of fragments,
accumulating samples will lead to wrong timestamps as the timestamps
should go decreasing from fragment to fragment and the accumulation
will produce wrong results.

In this case, when receiving a discont for fragmented reverse playback,
the previous samples information should be flushed before new data
is processed.

9 years agosplitfilesrc: Implement binary search in find_part_for_offset
Jimmy Ohn [Fri, 22 May 2015 16:03:18 +0000 (01:03 +0900)]
splitfilesrc: Implement binary search in find_part_for_offset

Implement binary search using gst_util_array_binary_search

https://bugzilla.gnome.org/show_bug.cgi?id=749690

9 years agortpsession: Don't crash if we receive FIR/PLI from a source we don't know
Sebastian Dröge [Thu, 21 May 2015 10:26:53 +0000 (13:26 +0300)]
rtpsession: Don't crash if we receive FIR/PLI from a source we don't know

9 years agortpsession: Fix collection of statistics
Santiago Carot-Nemesio [Thu, 21 May 2015 07:35:58 +0000 (09:35 +0200)]
rtpsession: Fix collection of statistics

Stats should be collected on the media rtp source not in the
sender one.

https://bugzilla.gnome.org/show_bug.cgi?id=749669

9 years agomultifilesink: Add a new max-duration file switching mode
Edward Hervey [Mon, 20 Apr 2015 08:07:30 +0000 (10:07 +0200)]
multifilesink: Add a new max-duration file switching mode

This new mode ensures that files will never exceed a certain duration
based on incoming buffer PTS (and duration if present)

Note:
* You need timestamped buffers (duh). If some of the incoming buffers don't
  have PTS, then it will just accept them in the current file

9 years agomultifilesink: streamline the file-switch code a bit
Edward Hervey [Fri, 17 Apr 2015 14:18:32 +0000 (16:18 +0200)]
multifilesink: streamline the file-switch code a bit

Use the same functions regardless of the mode we are using

9 years agomultifilesink: add "aggregate-gops" property to process GOPs as a whole
Edward Hervey [Thu, 2 Apr 2015 12:35:18 +0000 (13:35 +0100)]
multifilesink: add "aggregate-gops" property to process GOPs as a whole

This property can be used in combination with next-file=max-size
(and perhaps a future next-file=max-duration) to make sure that
each file part starts cleanly with a key frame and the appropriate headers.

In order for this property to work correctly, upstream elements should make
sure than any headers that need to be written in a standalone file are:
1) in the streamheader caps field
2) and/or in the stream as one or more buffers marked with GST_BUFFER_FLAG_HEADER
   that are just before the keyframe buffer

This is useful for MPEG-TS/MPEG-PS file segmenting in
combination with mpegtsmux or mpegpsmux.

Original patch by: Tim-Philipp Müller <tim@centricular.com>

9 years agortspsrc: Use single-include header for the RTSP library
Sebastian Dröge [Wed, 20 May 2015 13:37:22 +0000 (16:37 +0300)]
rtspsrc: Use single-include header for the RTSP library

9 years agoudp: don't use soon-to-be-deprecated g_cancellable_reset()
Tim-Philipp Müller [Fri, 24 Oct 2014 22:47:21 +0000 (23:47 +0100)]
udp: don't use soon-to-be-deprecated g_cancellable_reset()

From the API documentation: "Note that it is generally not
a good idea to reuse an existing cancellable for more
operations after it has been cancelled once, as this
function might tempt you to do. The recommended practice
is to drop the reference to a cancellable after cancelling
it, and let it die with the outstanding async operations.
You should create a fresh cancellable for further async
operations."

https://bugzilla.gnome.org/show_bug.cgi?id=739132

9 years agoRevert "doc: Workaround gtkdoc issue"
Stefan Sauer [Mon, 18 May 2015 18:13:01 +0000 (20:13 +0200)]
Revert "doc: Workaround gtkdoc issue"

This reverts commit 1797c8f8b12d7f4c7a9444c94f34f4d08ec85945.

This is fixed by the gtk-doc 1.23 release.
<para> cannot contain <refsect2>:
http://www.docbook.org/tdg/en/html/para.html
http://www.docbook.org/tdg/en/html/refsect2.html

9 years agortpg726pay: fix caps leak
Nicola Murino [Mon, 18 May 2015 14:40:21 +0000 (16:40 +0200)]
rtpg726pay: fix caps leak

https://bugzilla.gnome.org/show_bug.cgi?id=749544

9 years agortpg726depay: don't leak input buffer
Nicola Murino [Mon, 18 May 2015 14:34:13 +0000 (16:34 +0200)]
rtpg726depay: don't leak input buffer

https://bugzilla.gnome.org/show_bug.cgi?id=749543

9 years agortpsource: Queue bad packets instead of dropping them
Sebastian Dröge [Mon, 18 May 2015 14:38:31 +0000 (17:38 +0300)]
rtpsource: Queue bad packets instead of dropping them

So we can send them out once we found the next, consecutive sequence number in
case one is following.

9 years agortpsource: Use g_queue_foreach() to unref all buffers in queues
Sebastian Dröge [Mon, 18 May 2015 14:38:14 +0000 (17:38 +0300)]
rtpsource: Use g_queue_foreach() to unref all buffers in queues

9 years agortpsource: Refactor seqnum comparison code a bit
Sebastian Dröge [Mon, 18 May 2015 14:19:31 +0000 (17:19 +0300)]
rtpsource: Refactor seqnum comparison code a bit

9 years agortpsource: Allow sequence number wraparound during probation
Sebastian Dröge [Mon, 18 May 2015 14:08:53 +0000 (17:08 +0300)]
rtpsource: Allow sequence number wraparound during probation

9 years agortpsource: Make sequence number comparison code more readable
Sebastian Dröge [Mon, 18 May 2015 14:07:23 +0000 (17:07 +0300)]
rtpsource: Make sequence number comparison code more readable

... by using gst_rtp_buffer_compare_seqnum() and signed integers
instead of implictly using effects of integer over/underflows.