platform/upstream/gst-rtsp-server.git
9 years agoFix timeout function signatures across tests and examples
Alistair Buxton [Thu, 23 Apr 2015 17:53:08 +0000 (18:53 +0100)]
Fix timeout function signatures across tests and examples

9 years agotests: define GST_CHECK_TEST_ENVIRONMENT_BEACON
Tim-Philipp Müller [Thu, 23 Apr 2015 16:27:40 +0000 (17:27 +0100)]
tests: define GST_CHECK_TEST_ENVIRONMENT_BEACON

Make sure the test environment is set up.

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

9 years agoconfigure: bump automake requirement to 1.14 and autoconf to 2.69
Tim-Philipp Müller [Thu, 23 Apr 2015 16:22:59 +0000 (17:22 +0100)]
configure: bump automake requirement to 1.14 and autoconf to 2.69

This is only required for builds from git, people can still
build tarballs if they only have older autotools.

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

9 years agoconfigure.ac: uncomment gettext version setup
Vincent Penquerc'h [Mon, 20 Apr 2015 07:49:57 +0000 (08:49 +0100)]
configure.ac: uncomment gettext version setup

Fixes autogen.sh. It would run autopoint, which would complain
that it could not find the gettext version in configure.ac.

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

9 years agotest-video-rtx: set exact payload type to PCMA payloader
Hyunjun Ko [Wed, 15 Apr 2015 01:06:30 +0000 (10:06 +0900)]
test-video-rtx: set exact payload type to PCMA payloader

Setting wrong payload type causes failure to do retransmission through audio stream

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

9 years agortsp-stream: fix to get valid each stream data for request-aux-sender signal
Hyunjun Ko [Wed, 15 Apr 2015 00:45:23 +0000 (09:45 +0900)]
rtsp-stream: fix to get valid each stream data for request-aux-sender signal

Because of duplicated g_signal_connect for request-aux-sender signal,
wrong stream pointer is passed to the signal handler.
Instead of passing each stream, pass stream array and get the relevant stream.

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

9 years agoUpdate autogen.sh to latest version from common
Tim-Philipp Müller [Mon, 6 Apr 2015 09:32:52 +0000 (10:32 +0100)]
Update autogen.sh to latest version from common

Fixes build after aclocal_check etc. helpers have been removed.

9 years agoAutomatic update of common submodule
Tim-Philipp Müller [Fri, 3 Apr 2015 17:58:26 +0000 (18:58 +0100)]
Automatic update of common submodule

From bc76a8b to c8fb372

9 years agortsp-stream: Limit the queues to 1 buffer
Sebastian Dröge [Mon, 23 Mar 2015 20:03:20 +0000 (21:03 +0100)]
rtsp-stream: Limit the queues to 1 buffer

We only need them to be able to pre-roll, queueing up more data here
is only going to harm latency and memory usage.

9 years agortsp-stream: Update comment and ASCII art to the latest code
Sebastian Dröge [Mon, 23 Mar 2015 19:59:52 +0000 (20:59 +0100)]
rtsp-stream: Update comment and ASCII art to the latest code

We have a queue in front of the udpsink too to prevent the pipeline from
locking up.

9 years agortsp-media: Properly return first rtptime
Nicolas Dufresne [Sat, 21 Mar 2015 15:04:05 +0000 (11:04 -0400)]
rtsp-media: Properly return first rtptime

Instead we where returning first GstBuffer timestamp. This would result
in clock skew and unwanted behaviour in RTSP playback.

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

9 years agortsp-stream: Don't leave buffer mapped
Nicolas Dufresne [Wed, 18 Mar 2015 20:44:19 +0000 (16:44 -0400)]
rtsp-stream: Don't leave buffer mapped

If the seq is NULL, the RTP buffer was left mapped. We should always
unmap the buffer.

9 years agoFix typo in README
Sebastian Dröge [Sun, 15 Mar 2015 12:27:39 +0000 (12:27 +0000)]
Fix typo in README

9 years agoFix double semicolons
Tim-Philipp Müller [Tue, 10 Mar 2015 09:39:22 +0000 (09:39 +0000)]
Fix double semicolons

9 years agortsp-stream: Get the seqnum-base and other information from the last buffer in the...
Sebastian Dröge [Mon, 9 Mar 2015 15:00:07 +0000 (16:00 +0100)]
rtsp-stream: Get the seqnum-base and other information from the last buffer in the sink

This gives more accurate values than asking the payloader. There might be
queueing happening between the payloader and the sink.

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

9 years agortsp-media: Don't seek for PLAY if the position will not change
Sebastian Dröge [Mon, 9 Mar 2015 12:00:25 +0000 (13:00 +0100)]
rtsp-media: Don't seek for PLAY if the position will not change

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

9 years agortsp-media: Don't include payload type in the caps for framesize
Sebastian Dröge [Mon, 9 Mar 2015 09:21:49 +0000 (10:21 +0100)]
rtsp-media: Don't include payload type in the caps for framesize

When the sdp media attribute framesize are converted to caps
the <payload> should not be included.

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

Based on the patch for rtspsrc by Linus Svensson <linussn@axis.com>

9 years agortsp-sdp: add payload type to the sdp framesize attribute
Linus Svensson [Wed, 26 Feb 2014 21:34:06 +0000 (22:34 +0100)]
rtsp-sdp: add payload type to the sdp framesize attribute

The sdp framesize attribute is desribed in RFC6064. It is specified
for payloading of H263 and has the following form
a=framesize:<payload type> <width>-<height>. The <width>-<height> part
should be added to the caps in a payloader and the <payload type> should
be added by the rtsp-server.

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

9 years agoexamples: test-uri: fix tainted variable
Luis de Bethencourt [Tue, 3 Mar 2015 13:51:01 +0000 (13:51 +0000)]
examples: test-uri: fix tainted variable

Insignificant but this keeps Coverity happy.

CID #1268404

9 years agoexamples: Add a simple example of network synch for live streams.
Jan Schmidt [Mon, 2 Mar 2015 14:49:42 +0000 (01:49 +1100)]
examples: Add a simple example of network synch for live streams.

An example server and client that works for synchronising live streams
only - as it can't support pause/play.

9 years agortsp-media-factory: Add functions to set/get the media gtype
Jan Schmidt [Mon, 2 Mar 2015 14:49:42 +0000 (01:49 +1100)]
rtsp-media-factory: Add functions to set/get the media gtype

Allow specifying the GType of a GstRtspMedia subclass to create
as a simpler way to get the factory to create a custom
GstRtspMedia sub-class, without subclassing GstRtspMediaFactory.

9 years agortsp-media: fix double unlock in _get_buffer_size()
Gregor Boirie [Fri, 27 Feb 2015 16:45:42 +0000 (17:45 +0100)]
rtsp-media: fix double unlock in _get_buffer_size()

Fixes an abort when calling gst_rtsp_media_get_buffer_size()
because of double g_mutex_unlock () usage.

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

9 years agortsp-session: Use monotonic time for RTSP session timeout
Kent-Inge Ingesson [Thu, 19 Feb 2015 08:43:16 +0000 (10:43 +0200)]
rtsp-session: Use monotonic time for RTSP session timeout

Changed RTSP session timeout handling to monotonic time
and deprecating the API for current system time.

This fixes timeouts when the system time changes.

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

9 years agortsp-client: Only error out in PLAY if seeking actually failed
Sebastian Dröge [Fri, 13 Feb 2015 10:21:16 +0000 (12:21 +0200)]
rtsp-client: Only error out in PLAY if seeking actually failed

If the media was just not seekable, we continue from whatever position we are
and let the client decide if that is what is wanted or not.

Only if the actual seek failed, we can't really recover and should error out.

9 years agortsp-stream: Add necessary queues between tee and multiudpsink
Andreas Frisch [Thu, 12 Feb 2015 09:46:28 +0000 (10:46 +0100)]
rtsp-stream: Add necessary queues between tee and multiudpsink

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

9 years agortsp-media: If seeking fails, don't wait forever for the media to preroll again
Sebastian Dröge [Thu, 12 Feb 2015 14:48:46 +0000 (16:48 +0200)]
rtsp-media: If seeking fails, don't wait forever for the media to preroll again

Instead error out properly the same way as if the SEEKING query already
failed.

9 years agortsp-stream: minor code formatting fix
Tim-Philipp Müller [Wed, 11 Feb 2015 17:24:38 +0000 (17:24 +0000)]
rtsp-stream: minor code formatting fix

9 years agortsp-media: fix logic for collect_streams
Luis de Bethencourt [Tue, 10 Feb 2015 16:39:58 +0000 (16:39 +0000)]
rtsp-media: fix logic for collect_streams

Fix the logic of gst_rtsp_media_collect_streams() so after looping collecting
all streams it knows if it got any, and can check if the transport mode is OK.

CID #1268400

9 years agortsp-media: Don't set the transport mode based on what elements we find
Sebastian Dröge [Mon, 9 Feb 2015 09:21:50 +0000 (10:21 +0100)]
rtsp-media: Don't set the transport mode based on what elements we find

Just print a warning if the one that was set before disagrees with what
elements we found. It must already be set to something before as this
function is called after we received the SDP from ANNOUNCE in RECORD mode,
and we would reject ANNOUNCE if the RECORD flag was not set.

9 years agotests: rtspserver: rename shadowed variable
Tim-Philipp Müller [Sun, 8 Feb 2015 18:05:50 +0000 (18:05 +0000)]
tests: rtspserver: rename shadowed variable

We have two different 'sink' variables here,
rename one of them for clarity.

9 years agortsp-client: fix awkward if clause
Tim-Philipp Müller [Sun, 8 Feb 2015 12:08:36 +0000 (12:08 +0000)]
rtsp-client: fix awkward if clause

9 years agoexamples: test-uri: improve uri argument handling and accept file names
Tim-Philipp Müller [Fri, 6 Feb 2015 19:34:17 +0000 (19:34 +0000)]
examples: test-uri: improve uri argument handling and accept file names

Print an error if the argument passed is not a URI and can't
be converted into one, or no arguments have been provided.

9 years agoexamples: test-uri: don't remove mount point after 10 seconds
Tim-Philipp Müller [Fri, 6 Feb 2015 19:15:40 +0000 (19:15 +0000)]
examples: test-uri: don't remove mount point after 10 seconds

It's very irritating when trying to test stuff repeatedly
and serves no real purpose other than showing that it can
be done.

9 years agoexamples: add new test-record to .gitignore
Tim-Philipp Müller [Wed, 21 Jan 2015 17:32:21 +0000 (17:32 +0000)]
examples: add new test-record to .gitignore

9 years agortsp-media: Use flags to distinguish between PLAY and RECORD media
Sebastian Dröge [Wed, 28 Jan 2015 17:54:01 +0000 (18:54 +0100)]
rtsp-media: Use flags to distinguish between PLAY and RECORD media

9 years agotest-record: Set latency for playback-style example to 2s instead of 200ms
Sebastian Dröge [Wed, 28 Jan 2015 16:49:16 +0000 (17:49 +0100)]
test-record: Set latency for playback-style example to 2s instead of 200ms

9 years agotests: add some unit tests for ANNOUNCE and RECORD
Tim-Philipp Müller [Wed, 21 Jan 2015 17:27:56 +0000 (17:27 +0000)]
tests: add some unit tests for ANNOUNCE and RECORD

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

9 years agortsp-client: fix a couple of leaks in handle_announce
Tim-Philipp Müller [Wed, 21 Jan 2015 16:32:44 +0000 (16:32 +0000)]
rtsp-client: fix a couple of leaks in handle_announce

9 years agortsp-media: Expose latency setting for setting the rtpbin latency
Sebastian Dröge [Mon, 19 Jan 2015 12:20:39 +0000 (13:20 +0100)]
rtsp-media: Expose latency setting for setting the rtpbin latency

9 years agotest-record: Use GOptionContext to parse the server port and take the pipeline from...
Sebastian Dröge [Sat, 17 Jan 2015 09:28:13 +0000 (10:28 +0100)]
test-record: Use GOptionContext to parse the server port and take the pipeline from the commandline

9 years agortsp-stream: Put the timestamp of receival of the initial packet over TCP on the...
Sebastian Dröge [Fri, 16 Jan 2015 19:48:42 +0000 (20:48 +0100)]
rtsp-stream: Put the timestamp of receival of the initial packet over TCP on the first buffer

9 years agoAdd initial support for RECORD
Sebastian Dröge [Fri, 9 Jan 2015 11:40:47 +0000 (12:40 +0100)]
Add initial support for RECORD

We currently only support media that is RECORD or PLAY only, not both at once.

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

9 years agortsp-stream: RTCP and RTP transport cache cookies seperated
Anila Balavan [Fri, 30 Jan 2015 11:50:20 +0000 (12:50 +0100)]
rtsp-stream: RTCP and RTP transport cache cookies seperated

RTCP packets were not sent because the same tr_cache_cookie was used for
both RTP and RTCP. So only one of the tr_cache lists were populated
depending on which one was sent first. If the tr_cache list is not
populated then no packets can be sent. Most often this happened to be
RTCP. Now seperate RTCP and RTP transport cache cookies are added which
resulted in both the tr_cache_lists to be populated regardless of which
one was sent first.

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

9 years agortsp-stream: fix false compiler warning
Tim-Philipp Müller [Wed, 21 Jan 2015 14:57:03 +0000 (14:57 +0000)]
rtsp-stream: fix false compiler warning

rtsp-stream.c:3034: error: ‘visited’ may be used uninitialized in this function

9 years agortsp-client: log interleaved data received
Tim-Philipp Müller [Mon, 19 Jan 2015 20:35:15 +0000 (20:35 +0000)]
rtsp-client: log interleaved data received

9 years agortsp-client: fix unintentional fallthrough to debug warning when receiving interleave...
Tim-Philipp Müller [Mon, 19 Jan 2015 20:18:20 +0000 (20:18 +0000)]
rtsp-client: fix unintentional fallthrough to debug warning when receiving interleaved data

9 years agortsp-client: If we have a single-stream media and SETUP contains no control, use...
Sebastian Dröge [Mon, 19 Jan 2015 12:09:20 +0000 (13:09 +0100)]
rtsp-client: If we have a single-stream media and SETUP contains no control, use the one and only stream

9 years agortsp-client: Use a random session ID in the SDP
Sebastian Dröge [Sun, 18 Jan 2015 18:08:36 +0000 (19:08 +0100)]
rtsp-client: Use a random session ID in the SDP

RFC4566 Section 5.2 says that it should make the username, session id,
nettype, addrtype and unicast address tuple globally unique. Always using
1188340656180883 is not going to guarantee that: https://xkcd.com/221/

Instead let's create a 64 bit random number, which at least brings us
closer to the goal of global uniqueness.

https://tools.ietf.org/html/rfc4566#section-5.2

9 years agoexamples: Don't call gst_init() and gst_get_option_group()
Sebastian Dröge [Sat, 17 Jan 2015 09:29:36 +0000 (10:29 +0100)]
examples: Don't call gst_init() and gst_get_option_group()

The latter calls the former at the appropriate time.

9 years agortsp-client: Drop trailing \0 of RTSP DATA messages
Sebastian Dröge [Fri, 16 Jan 2015 19:04:01 +0000 (20:04 +0100)]
rtsp-client: Drop trailing \0 of RTSP DATA messages

We add a trailing \0 in GstRTSPConnection to make parsing of
string message bodies easier (e.g. the SDP from DESCRIBE) but
for actual data this means we have to drop it or otherwise
create invalid data.

9 years agortsp-stream: Have one copy of the transports cache for RTP and RTCP each
Göran Jönsson [Fri, 16 Jan 2015 10:10:20 +0000 (11:10 +0100)]
rtsp-stream: Have one copy of the transports cache for RTP and RTCP each

Fixes crash when two threads access handle_new_sample() at the same
time, one for RTP, one for RTCP.

Otherwise, when iterating over the transports cache, it might be modified by
another thread at the same time if the transports cookie has changed.

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

9 years agortsp-stream: Set format=TIME on our app sources for TCP
Sebastian Dröge [Thu, 15 Jan 2015 18:34:20 +0000 (19:34 +0100)]
rtsp-stream: Set format=TIME on our app sources for TCP

9 years agoRevert "rtsp-session-pool: Make sure session IDs are properly URI-escaped"
Sebastian Rasmussen [Tue, 13 Jan 2015 14:29:29 +0000 (15:29 +0100)]
Revert "rtsp-session-pool: Make sure session IDs are properly URI-escaped"

This reverts commit 935e8f852d050b4939f1d0f44b38e9b55a2fbe36.

RFC 2326 states that session IDs may consist of alphanumeric as well as
the safe characters $-_.+ -- N.B. the percent character is not allowed.

Previously the session ID was URI-escaped, this meant that any character
which was not alphanumeric or any of the characters +-._~ would be
percent encoded. While the RFC (surprisingly) mentions that linear white
space in session IDs should be URI-escaped, it does not say anything
about other characters. Moreover no white space is allowed in the
session ID. Finally the percent character which is the result of
URI-escaping is not allowed in a session ID.

So there is no reason to do any URI-escaping, and now it is removed.

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

9 years agoAutomatic update of common submodule
Stefan Sauer [Mon, 12 Jan 2015 15:14:12 +0000 (16:14 +0100)]
Automatic update of common submodule

From f2c6b95 to bc76a8b

9 years agoFix 'make check' from top-level directory
Tim-Philipp Müller [Wed, 31 Dec 2014 13:04:57 +0000 (13:04 +0000)]
Fix 'make check' from top-level directory

9 years agoexamples: Add command-line parsing and take a 'port' argument
Nirbheek Chauhan [Tue, 30 Dec 2014 12:43:49 +0000 (18:13 +0530)]
examples: Add command-line parsing and take a 'port' argument

This allows users to run multiple servers on different ports for testing.

Only done for examples that actually take arguments and hence are capable of
outputting different streams for each instance on each port.

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

9 years agortsp-client: Add a send_message default signal handler
Sebastian Dröge [Mon, 29 Dec 2014 11:06:50 +0000 (12:06 +0100)]
rtsp-client: Add a send_message default signal handler

This allows subclasses to easily hook into the response sending
mechanism without doing everything from a signal, which seems
awkward from subclasses.

9 years agoAutomatic update of common submodule
Sebastian Dröge [Thu, 18 Dec 2014 09:56:44 +0000 (10:56 +0100)]
Automatic update of common submodule

From ef1ffdc to f2c6b95

9 years agoconfigure: add --disable-examples switch
Sebastian Rasmussen [Wed, 17 Dec 2014 19:02:05 +0000 (20:02 +0100)]
configure: add --disable-examples switch

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

9 years agoexamples: add a retransmisison example implementing RFC4588
Matthew Waters [Mon, 1 Dec 2014 12:42:34 +0000 (23:42 +1100)]
examples: add a retransmisison example implementing RFC4588

Currently only SSRC-multiplexed rtx streams are supported

9 years agortsp-stream: Fix some minor memory leaks
Sebastian Dröge [Tue, 16 Dec 2014 15:46:15 +0000 (16:46 +0100)]
rtsp-stream: Fix some minor memory leaks

9 years agortsp-media: Some minor cleanup
Sebastian Dröge [Tue, 16 Dec 2014 15:46:06 +0000 (16:46 +0100)]
rtsp-media: Some minor cleanup

9 years agortsp-stream: Fix compiler warnings
Sebastian Dröge [Tue, 16 Dec 2014 15:42:13 +0000 (16:42 +0100)]
rtsp-stream: Fix compiler warnings

rtsp-stream.c:1351:3: error: non-void function 'gst_rtsp_stream_get_retransmission_time' should return a value [-Wreturn-type]
  g_return_if_fail (GST_IS_RTSP_STREAM (stream));
  ^

rtsp-stream.c:1384:3: error: non-void function 'gst_rtsp_stream_get_retransmission_pt' should return a value [-Wreturn-type]
  g_return_if_fail (GST_IS_RTSP_STREAM (stream));
  ^

9 years agomedia: implement ssrc-multiplexed retransmission support
Matthew Waters [Wed, 26 Nov 2014 14:12:36 +0000 (01:12 +1100)]
media: implement ssrc-multiplexed retransmission support

based off RFC 4588 and the server-rtpaux example in -good

9 years agortsp: Ref transports in hash table.
Göran Jönsson [Fri, 28 Nov 2014 11:45:14 +0000 (12:45 +0100)]
rtsp: Ref transports in hash table.

Also ref streams for transports.
This solves a crash when reciving a rtcp after teardown but before
client finalize.

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

9 years agoAutomatic update of common submodule
Edward Hervey [Thu, 27 Nov 2014 16:13:05 +0000 (17:13 +0100)]
Automatic update of common submodule

From 7bb2bce to ef1ffdc

9 years agoclient: refactor cleanup of cached media
Wim Taymans [Fri, 7 Nov 2014 11:48:53 +0000 (12:48 +0100)]
client: refactor cleanup of cached media

9 years agotests: Remove FIXME
Linus Svensson [Thu, 23 Oct 2014 11:39:10 +0000 (13:39 +0200)]
tests: Remove FIXME

The session leak is now fixed, lets remove those FIXME comments.

9 years agotests: Test to setup two sessions on one connection
Linus Svensson [Thu, 23 Oct 2014 15:54:37 +0000 (17:54 +0200)]
tests: Test to setup two sessions on one connection

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

9 years agotests: Test setup with tcp transport
Linus Svensson [Fri, 24 Oct 2014 10:05:27 +0000 (12:05 +0200)]
tests: Test setup with tcp transport

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

9 years agoclient: Configure transport after creating session media
Linus Svensson [Fri, 24 Oct 2014 10:04:54 +0000 (12:04 +0200)]
client: Configure transport after creating session media

The default implementation of configure_client_transport() in
rtsp-client uses the session media when it chooses channels for
interleaved traffic.

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

9 years agoclient: Stop caching media in client when doing setup
Linus Svensson [Thu, 23 Oct 2014 10:54:03 +0000 (12:54 +0200)]
client: Stop caching media in client when doing setup

If the media has been managed by a session media, it should not be
cached in the client any longer. The GstRTSPSessionMedia object is now
responsible for unpreparing the GstRTSPMedia object using
gst_rtsp_media_unprepare(). Unprepare the media when finalizing the
session media.

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

10 years agortsp-stream: unref srtp decoder when leaving bin
Aleix Conchillo Flaqué [Sat, 1 Nov 2014 06:01:53 +0000 (23:01 -0700)]
rtsp-stream: unref srtp decoder when leaving bin

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

10 years agortsp-client: mikey memory leaks
Aleix Conchillo Flaqué [Thu, 30 Oct 2014 04:01:39 +0000 (21:01 -0700)]
rtsp-client: mikey memory leaks

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

10 years agoAutomatic update of common submodule
Sebastian Dröge [Mon, 27 Oct 2014 17:01:35 +0000 (18:01 +0100)]
Automatic update of common submodule

From 84d06cd to 7bb2bce

10 years agoParallelise 'make check-valgrind'
Tim-Philipp Müller [Fri, 24 Oct 2014 16:48:04 +0000 (17:48 +0100)]
Parallelise 'make check-valgrind'

10 years agoAutomatic update of common submodule
Tim-Philipp Müller [Tue, 21 Oct 2014 12:04:14 +0000 (13:04 +0100)]
Automatic update of common submodule

From a8c8939 to 84d06cd

10 years agoAutomatic update of common submodule
Stefan Sauer [Tue, 21 Oct 2014 11:00:49 +0000 (13:00 +0200)]
Automatic update of common submodule

From 36388a1 to a8c8939

10 years agortsp-media: deactivate media when shutting down from paused
Vincent Penquerc'h [Wed, 1 Oct 2014 11:12:30 +0000 (07:12 -0400)]
rtsp-media: deactivate media when shutting down from paused

This was only done when going directly from playing.

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

10 years agortsp-client: add stream transport to context
Aleix Conchillo Flaqué [Mon, 20 Oct 2014 22:40:59 +0000 (15:40 -0700)]
rtsp-client: add stream transport to context

We add the stream transport to the context so we can get the configured
client stream transport in the setup request signal.

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

10 years agostream: release lock even not all transports have been removed
Aleix Conchillo Flaqué [Thu, 2 Oct 2014 19:02:48 +0000 (12:02 -0700)]
stream: release lock even not all transports have been removed

We don't want to keep the lock even we return FALSE because not all the
transports have been removed. This could lead into a deadlock.

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

10 years agortsp-sdp: Rename clock-base and seqnum-base to timestamp-offset and seqnum-offset
Olivier Crête [Fri, 10 Oct 2014 22:43:00 +0000 (18:43 -0400)]
rtsp-sdp: Rename clock-base and seqnum-base to timestamp-offset and seqnum-offset

These were renamed in GstRTPBasePayload in 1.0

10 years agoclient: set session media to NULL without the lock
Aleix Conchillo Flaqué [Tue, 30 Sep 2014 23:36:51 +0000 (16:36 -0700)]
client: set session media to NULL without the lock

We need to set session medias to NULL without the client lock otherwise
we can end up in a deadlock if another thread is waiting for the lock
and media unprepare is also waiting for that thread to end.

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

10 years agortsp-media: Set state to UNPREPARING in all cases
Sebastian Dröge [Tue, 30 Sep 2014 20:22:45 +0000 (23:22 +0300)]
rtsp-media: Set state to UNPREPARING in all cases

10 years agomedia: set state to unpreparing when unprepare is initiated
Ognyan Tonchev [Tue, 30 Sep 2014 17:17:04 +0000 (19:17 +0200)]
media: set state to unpreparing when unprepare is initiated

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

10 years agortsp-client: Remove backlog limit while processings requests
Sebastian Rasmussen [Mon, 29 Sep 2014 23:35:02 +0000 (01:35 +0200)]
rtsp-client: Remove backlog limit while processings requests

If the backlog limit is kept two cases of deadlocks may be
encountered when streaming over TCP. Without the backlog
limit this deadlocks can not happen, at the expence of
memory usage.

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

10 years agortsp-client: do not free main context before rtsp watch
Ognyan Tonchev [Mon, 22 Sep 2014 11:32:06 +0000 (13:32 +0200)]
rtsp-client: do not free main context before rtsp watch

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

10 years agotests: Extend unit test timeout to accomodate for valgrind
Branko Subasic [Fri, 19 Sep 2014 16:29:00 +0000 (18:29 +0200)]
tests: Extend unit test timeout to accomodate for valgrind

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

10 years agortsp-*: Treat sending packets to clients as keepalive
Branko Subasic [Fri, 19 Sep 2014 16:28:50 +0000 (18:28 +0200)]
rtsp-*: Treat sending packets to clients as keepalive

As long as gst-rtsp-server can successfully send RTP/RTCP data to
clients then the client must be reading. This change makes the server
timeout the connection if the client stops reading.

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

10 years agortsp-client: Allow backlog to grow while expiring session
Branko Subasic [Fri, 19 Sep 2014 16:28:30 +0000 (18:28 +0200)]
rtsp-client: Allow backlog to grow while expiring session

Allow the send backlog in the RTSP watch to grow to unlimited size while
attempting to bring the media pipeline to NULL due to a session
expiring.  Without this change the appsink element cannot change state
because it is blocked while rendering data in the new_sample callback.
This callback will block until it has successfully put the data into the
send backlog. There is a chance that the send backlog is full at this
point which means that the callback may block for a long time, possibly
forever. Therefore the media pipeline may also be prevented from
changing state for a long time.

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

10 years agortsp-client: Make old compilers happy
Edward Hervey [Mon, 22 Sep 2014 07:30:39 +0000 (09:30 +0200)]
rtsp-client: Make old compilers happy

rtsp-client.c:2553:50: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]

Just in case that guint8 doesn't fit in a pointer. Just in case ...

10 years agoclient: raise the backlog limits before pausing
Göran Jönsson [Tue, 16 Sep 2014 09:41:52 +0000 (11:41 +0200)]
client: raise the backlog limits before pausing

We need to raise the backlog limits before pausing the pipeline or else
the appsink might be blocking in the render method in wait_backlog() and
we would deadlock waiting for paused.

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

10 years agoclient: make define for the WATCH_BACKLOG
Göran Jönsson [Tue, 16 Sep 2014 09:29:38 +0000 (11:29 +0200)]
client: make define for the WATCH_BACKLOG

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

10 years agoclient: simplify session transport handling
Wim Taymans [Tue, 9 Sep 2014 16:11:39 +0000 (18:11 +0200)]
client: simplify session transport handling

link/unlink of the transport in a session was done to keep track of all
TCP transports and to send RTP/RTCP data to the streams. We can simplify
that by putting all the TCP transports in a hashtable indexed with the
channel number.

We also don't need to link/unlink the transports when we pause/resume
the streams. The same effect is already achieved when we pause/play the
media. Indeed, when we pause the media, the transport is removed from
the media and the callbacks will not be called anymore.

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

10 years agostream-transport: make method to handle received data
Wim Taymans [Tue, 9 Sep 2014 16:10:12 +0000 (18:10 +0200)]
stream-transport: make method to handle received data

Make a method to handle the data received on a channel. It sends the
data to the stream of the transport on the RTP or RTCP pads based on
the channel number.

10 years agotest: add example of dumping RTCP reports
Wim Taymans [Mon, 15 Sep 2014 14:54:05 +0000 (16:54 +0200)]
test: add example of dumping RTCP reports

10 years agortsp-media: Make sure that sequence numbers are monotonic after pause
Srimanta Panda [Mon, 8 Sep 2014 07:26:23 +0000 (09:26 +0200)]
rtsp-media: Make sure that sequence numbers are monotonic after pause

The sequence number is not monotonic for RTP packets after pause. The
reason is basepayloader generates a randon sequence number when the
pipeline goes from ready to pause. With this fix generation of sequence
number will be monotonic when going from pause to play request.

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

10 years agortsp-client: Protect saved clients watch with a mutex
Göran Jönsson [Thu, 28 Aug 2014 11:35:15 +0000 (13:35 +0200)]
rtsp-client: Protect saved clients watch with a mutex

Fixes a crash when close() is called while merging clients
in handle_tunnel(). In that case close() would destroy the
watch while it is still being used in handle_tunnel().

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

10 years agortsp-stream: Remove the multicast group udp sources when removing from the bin
Sebastian Dröge [Wed, 13 Aug 2014 14:22:16 +0000 (17:22 +0300)]
rtsp-stream: Remove the multicast group udp sources when removing from the bin

10 years agortsp-media: Query position and stop time only on the RTP parts of the pipeline
Sebastian Dröge [Tue, 5 Aug 2014 14:12:19 +0000 (16:12 +0200)]
rtsp-media: Query position and stop time only on the RTP parts of the pipeline

The RTCP parts, in specific the RTCP udpsinks, are not flushed when
seeking and will always continue counting the time. This leads to
the NPT after a backwards seek to be something completely different
to the actual seek position.

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