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.
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
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
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
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
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.
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
Arun Raghavan [Tue, 7 Apr 2015 08:36:16 +0000 (14:06 +0530)]
pulsesrc: Fix mapping of latency parameters to buffer attributes
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.
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
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.
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.
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.
Thiago Santos [Thu, 11 Jun 2015 01:36:59 +0000 (22:36 -0300)]
qtmux: remove unused type MP4S
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
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.
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
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
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.
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
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
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
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
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
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
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
Stefan Sauer [Tue, 9 Jun 2015 12:42:27 +0000 (14:42 +0200)]
cruft: add the obsolete tmpl dir to cruft-dirs
Edward Hervey [Tue, 9 Jun 2015 09:30:22 +0000 (11:30 +0200)]
Automatic update of common submodule
From
d9a3353 to
6015d26
Edward Hervey [Tue, 9 Jun 2015 05:04:07 +0000 (07:04 +0200)]
Fix common version
Was accidently downgraded by
87a4884acd8655a6591d735a1d944ecb5ea3de16
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.
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.
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
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.
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.
Stefan Sauer [Mon, 8 Jun 2015 21:07:55 +0000 (23:07 +0200)]
Automatic update of common submodule
From
d37af32 to
d9a3353
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.
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.
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.
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
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
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.
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.
Jan Schmidt [Tue, 7 Apr 2015 15:41:18 +0000 (01:41 +1000)]
isomp4: Remove an extra bracket in a comment.
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.
Stefan Sauer [Sun, 7 Jun 2015 21:06:20 +0000 (23:06 +0200)]
Automatic update of common submodule
From
21ba2e5 to
d37af32
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
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
Stefan Sauer [Sun, 7 Jun 2015 15:32:01 +0000 (17:32 +0200)]
Automatic update of common submodule
From
c408583 to
21ba2e5
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.
Stefan Sauer [Sun, 7 Jun 2015 15:16:19 +0000 (17:16 +0200)]
Automatic update of common submodule
From
d676993 to
c408583
Sebastian Dröge [Sun, 7 Jun 2015 14:44:37 +0000 (16:44 +0200)]
Back to development
Sebastian Dröge [Sun, 7 Jun 2015 08:46:34 +0000 (10:46 +0200)]
Release 1.5.1
Sebastian Dröge [Sun, 7 Jun 2015 08:38:28 +0000 (10:38 +0200)]
Update .po files
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
Sebastian Dröge [Sun, 7 Jun 2015 07:35:38 +0000 (09:35 +0200)]
po: Update translations
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.
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
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
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.
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
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
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.
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
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
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
Luis de Bethencourt [Tue, 2 Jun 2015 16:29:36 +0000 (17:29 +0100)]
goom: rebase to use the audiovisualizer class
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 ...)
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
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
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
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
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
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
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
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
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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
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
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
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
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>
Sebastian Dröge [Wed, 20 May 2015 13:37:22 +0000 (16:37 +0300)]
rtspsrc: Use single-include header for the RTSP library
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
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
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
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
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.
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
Sebastian Dröge [Mon, 18 May 2015 14:19:31 +0000 (17:19 +0300)]
rtpsource: Refactor seqnum comparison code a bit
Sebastian Dröge [Mon, 18 May 2015 14:08:53 +0000 (17:08 +0300)]
rtpsource: Allow sequence number wraparound during probation
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.