platform/upstream/gstreamer.git
11 years agosouphttpsrc: fix critical setting a NULL uri redirection
Andoni Morales Alastruey [Tue, 13 Aug 2013 10:02:29 +0000 (12:02 +0200)]
souphttpsrc: fix critical setting a NULL uri redirection

11 years agosouphttpsrc: add redirection to the URI query
Andoni Morales Alastruey [Fri, 12 Jul 2013 23:50:56 +0000 (01:50 +0200)]
souphttpsrc: add redirection to the URI query

11 years agoqtdemux: elst should offset samples instead of buffers
Matej Knopp [Wed, 31 Jul 2013 08:42:07 +0000 (10:42 +0200)]
qtdemux: elst should offset samples instead of buffers

The current approach where buffers are offset is not ideal, as during seek
and loop current time is compared to sample times.

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

11 years agovideomixer: Send EOS if buf_end >= segment.stop
Thibault Saunier [Wed, 7 Aug 2013 17:32:07 +0000 (19:32 +0200)]
videomixer: Send EOS if buf_end >= segment.stop

That means the whole segment is already played, and we are sure we
are EOS at that point.

Also handle segment seeks, and do not send EOS in that case.

11 years agoavidemux: send proper stream_start event
Matej Knopp [Sun, 4 Aug 2013 12:40:38 +0000 (14:40 +0200)]
avidemux: send proper stream_start event

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

11 years agomatroskademux: Don't print warnings during flushing and stop as soon as possible
Sebastian Dröge [Thu, 8 Aug 2013 09:51:17 +0000 (11:51 +0200)]
matroskademux: Don't print warnings during flushing and stop as soon as possible

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

11 years agortpvp8depay: mark key frames and delta frames properly
Tim-Philipp Müller [Wed, 7 Aug 2013 10:14:38 +0000 (11:14 +0100)]
rtpvp8depay: mark key frames and delta frames properly

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

11 years agosession: add NACK feedback in RTCP
Wim Taymans [Mon, 5 Aug 2013 21:23:57 +0000 (23:23 +0200)]
session: add NACK feedback in RTCP

11 years agosource: add methods to register NACK
Wim Taymans [Mon, 5 Aug 2013 21:22:16 +0000 (23:22 +0200)]
source: add methods to register NACK

Add a method to register a missing packet for an ssrc along with
methods to get the missing packets and clear them.

11 years agosession: handle Retransmission event and schedule NACK
Wim Taymans [Sun, 4 Aug 2013 21:05:36 +0000 (23:05 +0200)]
session: handle Retransmission event and schedule NACK

Handle the retransmission event from downstream and use it to schedule a NACK
request.

11 years agosession: pass data to remove func
Wim Taymans [Mon, 5 Aug 2013 21:20:29 +0000 (23:20 +0200)]
session: pass data to remove func

Pass the data to the remove function because we are going to deref it when there
is pli or fir.

11 years agoqtdemux: Fix compilation
Thibault Saunier [Tue, 6 Aug 2013 13:28:50 +0000 (15:28 +0200)]
qtdemux: Fix compilation

11 years agoqtdemux: Raw buffer DTS should always be CLOCK_TIME_NONE
Thibault Saunier [Tue, 6 Aug 2013 13:17:44 +0000 (15:17 +0200)]
qtdemux: Raw buffer DTS should always be CLOCK_TIME_NONE

11 years agovideomixer: Make sure to send EOS if the buffer end time equals the segment end time
Thibault Saunier [Tue, 6 Aug 2013 09:58:38 +0000 (11:58 +0200)]
videomixer: Make sure to send EOS if the buffer end time equals the segment end time

Otherwize EOS never gets sent in that particular case.

11 years agogoom: Ensure src caps are writable
Sjoerd Simons [Mon, 5 Aug 2013 06:49:50 +0000 (08:49 +0200)]
goom: Ensure src caps are writable

In some cases the src caps determined by goom weren't writable, causing
a bunch of assertion failures and failed caps. Fixed by always
explicitely making the caps writable

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

11 years agosession: use common send_rtcp method
Wim Taymans [Sun, 4 Aug 2013 21:18:29 +0000 (23:18 +0200)]
session: use common send_rtcp method

Reuse the send_rtcp method that already asks for the current time when
requesting a keyframe.

11 years agosession: Don't use ClockTimeDiff for unsigned delays
Wim Taymans [Sun, 4 Aug 2013 21:12:50 +0000 (23:12 +0200)]
session: Don't use ClockTimeDiff for unsigned delays

11 years agoqtmux: Use buffer PTS if DTS is not set
Edward Hervey [Sun, 4 Aug 2013 14:52:15 +0000 (16:52 +0200)]
qtmux: Use buffer PTS if DTS is not set

Avoids ending up with completely bogus scaled duration/pts when new
buffers have invalid DTS.

11 years agotests: skip https test if there's no TLS support in soup/glib
Tim-Philipp Müller [Sun, 4 Aug 2013 13:32:47 +0000 (14:32 +0100)]
tests: skip https test if there's no TLS support in soup/glib

11 years agortpdec: use generic marshaller
Tim-Philipp Müller [Sun, 4 Aug 2013 10:20:41 +0000 (11:20 +0100)]
rtpdec: use generic marshaller

11 years agov4l2: remove unused enumtypes and use generic marshaller
Tim-Philipp Müller [Sun, 4 Aug 2013 09:52:33 +0000 (10:52 +0100)]
v4l2: remove unused enumtypes and use generic marshaller

11 years agoudp: remove unused marshal and enumtypes files
Tim-Philipp Müller [Sun, 4 Aug 2013 09:47:38 +0000 (10:47 +0100)]
udp: remove unused marshal and enumtypes files

11 years agortpmanager: use generic marshaller
Tim-Philipp Müller [Sun, 4 Aug 2013 08:38:19 +0000 (09:38 +0100)]
rtpmanager: use generic marshaller

11 years agojitterbuffer: send event in right direction
Wim Taymans [Sat, 3 Aug 2013 22:13:07 +0000 (00:13 +0200)]
jitterbuffer: send event in right direction

11 years agotests: create/remove orc directory at proper time
David Schleef [Sat, 3 Aug 2013 00:38:34 +0000 (17:38 -0700)]
tests: create/remove orc directory at proper time

Before automake creates .deps directories, and during distclean.

11 years agosession: add FIR and PLI like other RTCP packets
Wim Taymans [Fri, 2 Aug 2013 22:25:44 +0000 (00:25 +0200)]
session: add FIR and PLI like other RTCP packets

Add the FIR and PLI packets like the other RTCP packet instead of from the
on-sending-rtcp default signal handler.

11 years agojitterbuffer: fix property ranges
Wim Taymans [Fri, 2 Aug 2013 15:22:55 +0000 (17:22 +0200)]
jitterbuffer: fix property ranges

11 years agojitterbuffer: push retransmission events
Wim Taymans [Fri, 2 Aug 2013 14:42:52 +0000 (16:42 +0200)]
jitterbuffer: push retransmission events

11 years agobuild: add subdir-objects to AM_INIT_AUTOMAKE
Lubosz Sarnecki [Fri, 2 Aug 2013 12:12:16 +0000 (14:12 +0200)]
build: add subdir-objects to AM_INIT_AUTOMAKE

Fixes warnings with automake 1.14

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

11 years agojitterbuffer: add support for retransmission retry
Wim Taymans [Fri, 2 Aug 2013 12:54:56 +0000 (14:54 +0200)]
jitterbuffer: add support for retransmission retry

When we didn't receive a packet after requesting retransmission, retry
asking for retransmission for a certain period.

11 years agojitterbuffer: add properties
Wim Taymans [Fri, 2 Aug 2013 12:19:54 +0000 (14:19 +0200)]
jitterbuffer: add properties

Add properties to control retransmission parameters

11 years agojitterbuffer: use corrected timeout when rescheduling
Wim Taymans [Fri, 2 Aug 2013 10:44:58 +0000 (12:44 +0200)]
jitterbuffer: use corrected timeout when rescheduling

When we recalculate the timeout, use the corrected timeout value depending on
the timer type.

11 years agojitterbuffer: update timers after queueing
Wim Taymans [Fri, 2 Aug 2013 10:43:00 +0000 (12:43 +0200)]
jitterbuffer: update timers after queueing

Else we might update the timer needlessly for duplicates.

11 years agojitterbuffer: move method up
Wim Taymans [Fri, 2 Aug 2013 10:42:08 +0000 (12:42 +0200)]
jitterbuffer: move method up

11 years agojitterbuffer: small cleanup
Wim Taymans [Fri, 2 Aug 2013 04:28:32 +0000 (06:28 +0200)]
jitterbuffer: small cleanup

11 years agojitterbuffer: unschedule old expected packets
Wim Taymans [Thu, 1 Aug 2013 21:26:06 +0000 (23:26 +0200)]
jitterbuffer: unschedule old expected packets

When we receive a new packet, unschedule old outstanding packets when their
seqnum is too far away.

11 years agojitterbuffer: refactor timer update
Wim Taymans [Thu, 1 Aug 2013 21:29:23 +0000 (23:29 +0200)]
jitterbuffer: refactor timer update

11 years agojitterbuffer: update timers when removing
Wim Taymans [Thu, 1 Aug 2013 21:24:29 +0000 (23:24 +0200)]
jitterbuffer: update timers when removing

Update the timers when we remove a timer.
Handle canceled timers, make them unschedule the current timer and
trigger the timeout code.

11 years agojitterbuffer: fix typo
Wim Taymans [Thu, 1 Aug 2013 21:22:02 +0000 (23:22 +0200)]
jitterbuffer: fix typo

11 years agojitterbuffer: improve timeout management
Wim Taymans [Thu, 1 Aug 2013 13:40:52 +0000 (15:40 +0200)]
jitterbuffer: improve timeout management

If we change the seqnum of an existing timer and we were waiting for
that timer, unschedule it. If we change the timeout of an existing timer and we
were waiting on it, only unschedule when the new time is smaller.

11 years agojitterbuffer: install timer for expected arrival
Wim Taymans [Thu, 1 Aug 2013 13:05:35 +0000 (15:05 +0200)]
jitterbuffer: install timer for expected arrival

Install a timer that is triggered when the expected arrival time of a packet
expired.

11 years agojitterbuffer: improve unschedule of timers
Wim Taymans [Thu, 1 Aug 2013 12:56:00 +0000 (14:56 +0200)]
jitterbuffer: improve unschedule of timers

Conflicts:
gst/rtpmanager/gstrtpjitterbuffer.c

11 years agojitterbuffer: move code around
Wim Taymans [Thu, 1 Aug 2013 10:21:53 +0000 (12:21 +0200)]
jitterbuffer: move code around

11 years agojitterbuffer: estimate inter packet spacing
Wim Taymans [Thu, 1 Aug 2013 10:07:11 +0000 (12:07 +0200)]
jitterbuffer: estimate inter packet spacing

When we see two packets with consecutive seqnums and a different RTP time, use
the DTS difference as the inter packet spacing estimate.

11 years agojitterbuffer: keep track of current timeout
Wim Taymans [Thu, 1 Aug 2013 10:01:15 +0000 (12:01 +0200)]
jitterbuffer: keep track of current timeout

11 years agojitterbuffer: cleanup timer handling
Wim Taymans [Thu, 1 Aug 2013 09:49:10 +0000 (11:49 +0200)]
jitterbuffer: cleanup timer handling

11 years agojitterbuffer: reset is only possible with a GAP
Wim Taymans [Thu, 1 Aug 2013 09:40:41 +0000 (11:40 +0200)]
jitterbuffer: reset is only possible with a GAP

11 years agojitterbuffer: operate on DTS
Wim Taymans [Thu, 1 Aug 2013 09:29:32 +0000 (11:29 +0200)]
jitterbuffer: operate on DTS

Make the jitterbuffer schedule the timeouts based on the DTS instead
of the PTS. This makes it all smoother with reordered frames and gives
the decoder time to reorder the frames in time.

11 years agojitterbuffer: rename timout variable
Wim Taymans [Thu, 1 Aug 2013 09:14:12 +0000 (11:14 +0200)]
jitterbuffer: rename timout variable

11 years agojitterbuffer: small cleanup
Wim Taymans [Wed, 31 Jul 2013 15:08:58 +0000 (17:08 +0200)]
jitterbuffer: small cleanup

11 years agojitterbuffer: block output in paused or buffering
Wim Taymans [Wed, 31 Jul 2013 14:59:58 +0000 (16:59 +0200)]
jitterbuffer: block output in paused or buffering

11 years agojitterbuffer: store pts in timer
Wim Taymans [Wed, 31 Jul 2013 14:59:09 +0000 (16:59 +0200)]
jitterbuffer: store pts in timer

Only store the pts in the timer so that we can both do timeouts with timings on
the input and output of the jitterbuffer.

11 years agortpjitterbuffer: refactor jitterbuffer
Wim Taymans [Tue, 30 Jul 2013 21:14:24 +0000 (23:14 +0200)]
rtpjitterbuffer: refactor jitterbuffer

Refactor the jitterbuffer code. Make separate function for peeking a buffer,
pushing the next buffer, waiting for timeouts and handling the timeouts.

The main loop now tries to push as many buffers as it can until it runs out of
buffers or when it detects a seqnum discont. Then it will wait for some event to
happen before attempting to push more buffers.

Make methods to register timeouts in an array. These timeouts are registered
when we detect a missing packet, sync for the first packet or when we find an
estimation for the end-of-stream.

This greatly simplifies and clarifies the code and also makes it possible to
register more complicated timeout schemes later.

11 years agortpjitterbuffer: use NULL to ignore percent
Wim Taymans [Tue, 30 Jul 2013 16:52:58 +0000 (18:52 +0200)]
rtpjitterbuffer: use NULL to ignore percent

If we pass NULL to pop and push we ignore the percent result.

11 years agojitterbuffer: refactor
Wim Taymans [Tue, 30 Jul 2013 05:00:19 +0000 (07:00 +0200)]
jitterbuffer: refactor

Move eos estimation into separate function

11 years agoflvdemux: don't leak stream_id string
Tim-Philipp Müller [Tue, 30 Jul 2013 13:28:19 +0000 (14:28 +0100)]
flvdemux: don't leak stream_id string

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

11 years agopo: update translations
Tim-Philipp Müller [Mon, 29 Jul 2013 18:53:52 +0000 (19:53 +0100)]
po: update translations

11 years agotests: ignore new test binaries
Tim-Philipp Müller [Mon, 29 Jul 2013 18:48:54 +0000 (19:48 +0100)]
tests: ignore new test binaries

11 years agoBack to development
Sebastian Dröge [Mon, 29 Jul 2013 12:47:49 +0000 (14:47 +0200)]
Back to development

11 years agoRelease 1.1.3
Sebastian Dröge [Mon, 29 Jul 2013 11:42:18 +0000 (13:42 +0200)]
Release 1.1.3

11 years agoUpdate .po files
Sebastian Dröge [Mon, 29 Jul 2013 11:42:05 +0000 (13:42 +0200)]
Update .po files

11 years agogst: Don't swap start/stop for negative rates in the SEGMENT query
Sebastian Dröge [Mon, 29 Jul 2013 10:12:41 +0000 (12:12 +0200)]
gst: Don't swap start/stop for negative rates in the SEGMENT query

11 years agoqtdemux: Check for data size when parsing h264 codec data from strf atom
Matej Knopp [Mon, 29 Jul 2013 09:18:40 +0000 (11:18 +0200)]
qtdemux: Check for data size when parsing h264 codec data from strf atom

11 years agomatroskademux: Implement SEGMENT query
Sebastian Dröge [Mon, 29 Jul 2013 08:53:54 +0000 (10:53 +0200)]
matroskademux: Implement SEGMENT query

11 years agoflvdemux: Implement SEGMENT query
Sebastian Dröge [Mon, 29 Jul 2013 08:53:47 +0000 (10:53 +0200)]
flvdemux: Implement SEGMENT query

11 years agoavidemux: Implement SEGMENT query
Sebastian Dröge [Mon, 29 Jul 2013 08:50:59 +0000 (10:50 +0200)]
avidemux: Implement SEGMENT query

11 years agoqtdemux: Support H264 fourcc
Matej Knopp [Sat, 27 Jul 2013 16:10:22 +0000 (18:10 +0200)]
qtdemux: Support H264 fourcc

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

11 years agoflacenc: Fix handling of image tags
Sebastian Dröge [Sun, 28 Jul 2013 16:09:33 +0000 (18:09 +0200)]
flacenc: Fix handling of image tags

The caps should be used to get the mimetype and there is
only an info structure for the GstSample if the image-type
is not NONE.

11 years agoflacenc: Don't crash if there is no image tag information
Sebastian Dröge [Sun, 28 Jul 2013 16:04:32 +0000 (18:04 +0200)]
flacenc: Don't crash if there is no image tag information

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

11 years agoavidemux: Fix duration reporting in push mode
Sebastian Dröge [Sun, 28 Jul 2013 15:38:56 +0000 (17:38 +0200)]
avidemux: Fix duration reporting in push mode

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

11 years agoavidemux: Don't forget unmapping and unreffing buffer
Sebastian Dröge [Sun, 28 Jul 2013 15:32:27 +0000 (17:32 +0200)]
avidemux: Don't forget unmapping and unreffing buffer

11 years agoavidemux: unmap buffer
Matej Knopp [Fri, 26 Jul 2013 19:06:17 +0000 (21:06 +0200)]
avidemux: unmap buffer

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

11 years agosession: don't make buffer writable prematurely
Wim Taymans [Fri, 26 Jul 2013 20:31:41 +0000 (22:31 +0200)]
session: don't make buffer writable prematurely

There is no reason to make the SR buffer writable at this point. This is better
delayed until needed.

11 years agosession: ignore RTCP for inactive sources
Wim Taymans [Fri, 26 Jul 2013 20:25:50 +0000 (22:25 +0200)]
session: ignore RTCP for inactive sources

11 years agosession: small cleanup
Wim Taymans [Fri, 26 Jul 2013 20:25:17 +0000 (22:25 +0200)]
session: small cleanup

11 years agosession: handle partial RTCP report blocks
Wim Taymans [Fri, 26 Jul 2013 15:17:31 +0000 (17:17 +0200)]
session: handle partial RTCP report blocks

When we have more SSRCs to report than what fit in an RTCP packet, use a
generation counter to make sure all of them end up in a packet eventually.

11 years agosession: create SSRC before doing session cleanup
Wim Taymans [Fri, 26 Jul 2013 15:23:10 +0000 (17:23 +0200)]
session: create SSRC before doing session cleanup

Make the internal source before we do session cleanup

11 years agosession: reorganize the report block code
Wim Taymans [Fri, 26 Jul 2013 15:21:08 +0000 (17:21 +0200)]
session: reorganize the report block code

11 years agomatroskademux: fix memory leak in check_subtitle_buffer
Matej Knopp [Fri, 26 Jul 2013 14:02:01 +0000 (16:02 +0200)]
matroskademux: fix memory leak in check_subtitle_buffer

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

11 years agosession: refactor active and sender checks
Wim Taymans [Fri, 26 Jul 2013 12:21:40 +0000 (14:21 +0200)]
session: refactor active and sender checks

11 years agosession: remove internal sources on timeout
Wim Taymans [Fri, 26 Jul 2013 10:06:35 +0000 (12:06 +0200)]
session: remove internal sources on timeout

When an internal source times out and becomes a receiver, remove it.

11 years agosession: create an internal source for RTCP
Wim Taymans [Fri, 26 Jul 2013 09:47:56 +0000 (11:47 +0200)]
session: create an internal source for RTCP

When we need to do RTCP and we don't have an internal source yet,
make one.

11 years agosession: remove old code to change SSRC
Wim Taymans [Fri, 26 Jul 2013 08:47:28 +0000 (10:47 +0200)]
session: remove old code to change SSRC

Remove code used to change the SSRC after a collision. We now send
a RECONFIGURE event upstream to make the upstream element change the SSRC.

11 years agosource: don't update packet SSRC
Wim Taymans [Fri, 26 Jul 2013 08:42:44 +0000 (10:42 +0200)]
source: don't update packet SSRC

Remove the code to update the SSRC in packets, it can never be called now that
we always use a source with matching packet SSRC.

11 years agosession: delay allocation of internal source
Wim Taymans [Fri, 26 Jul 2013 08:24:22 +0000 (10:24 +0200)]
session: delay allocation of internal source

Allocate the internal source when we receive a caps with the SSRC or when we see
a buffer with the SSRC.

11 years agosession: generate reconfigure on collision
Wim Taymans [Fri, 26 Jul 2013 08:00:58 +0000 (10:00 +0200)]
session: generate reconfigure on collision

When we detect a collision, change the SSRC that we suggest upstream
and trigger RECONFIGURE. This should make upstream select a new SSRC.

11 years agosession: produce RTCP for all internal sources
Wim Taymans [Fri, 26 Jul 2013 07:37:24 +0000 (09:37 +0200)]
session: produce RTCP for all internal sources

Loop over all the internal sources and produce RTCP. We also need
to queue the RTCP packets and send them when we are finished.

11 years agosession: deprecate internal source and ssrc properties
Wim Taymans [Thu, 25 Jul 2013 23:40:20 +0000 (01:40 +0200)]
session: deprecate internal source and ssrc properties

Deprecate the internal source and internal ssrc properties. There might
be more than one internal source.

11 years agosession: internal sources don't use probation
Wim Taymans [Thu, 25 Jul 2013 23:29:08 +0000 (01:29 +0200)]
session: internal sources don't use probation

11 years agosession: give caps to session
Wim Taymans [Thu, 25 Jul 2013 23:24:07 +0000 (01:24 +0200)]
session: give caps to session

Let the session parse the caps and update its SSRC when needed.

11 years agosession: make method to suggest available SSRC
Wim Taymans [Thu, 25 Jul 2013 23:14:04 +0000 (01:14 +0200)]
session: make method to suggest available SSRC

Make a method to suggest the best available SSRC. This is the SSRC of the last
created internal source and is used to instruct upstream to produce this
SSRC.

11 years agosession: keep SDES and set on new internal sources
Wim Taymans [Thu, 25 Jul 2013 23:01:49 +0000 (01:01 +0200)]
session: keep SDES and set on new internal sources

Keep track of the SDES ourselves and set it on all newly created
internal sources.

11 years agosession: make method to make internal sources
Wim Taymans [Thu, 25 Jul 2013 22:48:25 +0000 (00:48 +0200)]
session: make method to make internal sources

Add a method to obtain an internal source and use it to create
our internal source

11 years agosession: count internal sources and how many are senders
Wim Taymans [Thu, 25 Jul 2013 22:29:41 +0000 (00:29 +0200)]
session: count internal sources and how many are senders

11 years agortpsession: separate BYE marking and scheduling
Wim Taymans [Thu, 25 Jul 2013 22:14:29 +0000 (00:14 +0200)]
rtpsession: separate BYE marking and scheduling

First mark sources with BYE and then schedule the BYE RTCP message.

11 years agosession: get SSRC from RTCP packet itself
Wim Taymans [Thu, 25 Jul 2013 21:56:46 +0000 (23:56 +0200)]
session: get SSRC from RTCP packet itself

Get the SSRC from the RTCP packet instead.

11 years agosession: fix bandwidth calculation
Wim Taymans [Thu, 25 Jul 2013 21:51:34 +0000 (23:51 +0200)]
session: fix bandwidth calculation

We iterate over all sources and the internal one is also in the
hashtable so avoid adding it twice.

11 years agosession: add some docs
Wim Taymans [Thu, 25 Jul 2013 21:38:08 +0000 (23:38 +0200)]
session: add some docs

11 years agosession: Rearrange RTCP reporting a little
Wim Taymans [Thu, 25 Jul 2013 21:11:05 +0000 (23:11 +0200)]
session: Rearrange RTCP reporting a little

Make a function to generate an RTCP packet for a source, pass the source as a
parameter.
Move timeout of collisions to session cleanup phase.

11 years agosession: move check for is_early around
Wim Taymans [Thu, 25 Jul 2013 20:39:04 +0000 (22:39 +0200)]
session: move check for is_early around

Move the check for the early RTCP to where it is needed and used.