platform/upstream/gstreamer.git
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

9 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

9 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

9 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

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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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 ...

9 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

9 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

9 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

9 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.

9 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

9 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

9 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

9 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

9 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

9 years agoexamples: fix another reference leak
Tim-Philipp Müller [Sat, 9 Aug 2014 13:41:35 +0000 (14:41 +0100)]
examples: fix another reference leak

gst_rtsp_media_get_element() returns a new ref.

9 years agoexamples: unref element after usage
Sebastian Rasmussen [Wed, 16 Jul 2014 23:34:17 +0000 (01:34 +0200)]
examples: unref element after usage

gst_bin_get_by_name_recurse_up() returns an element
reference that must be unreffed after usage.

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

9 years agosignals: Fix copy-pasto in target-state signal offset
Arun Raghavan [Wed, 2 Jul 2014 17:15:07 +0000 (22:45 +0530)]
signals: Fix copy-pasto in target-state signal offset

9 years agoMakefile: Add usage of build-checks step
Edward Hervey [Fri, 1 Aug 2014 08:46:44 +0000 (10:46 +0200)]
Makefile: Add usage of build-checks step

Allows building checks without running them

9 years agortsp-stream: Listen on the multicast group for RTP/RTCP packets
Sebastian Dröge [Wed, 25 Jun 2014 16:23:10 +0000 (18:23 +0200)]
rtsp-stream: Listen on the multicast group for RTP/RTCP packets

When a UDP multicast transport is used it is expected that the server listens
for RTP and RTCP packets on the multicast group with the corresponding port.
Without this we will never get RTCP packets from clients in multicast mode.

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

9 years agoBack to development
Sebastian Dröge [Sat, 19 Jul 2014 16:04:52 +0000 (18:04 +0200)]
Back to development

9 years agoRelease 1.4.0
Sebastian Dröge [Sat, 19 Jul 2014 15:56:31 +0000 (17:56 +0200)]
Release 1.4.0

9 years agomedia: correct misspelled words in description
Hyunjun Ko [Wed, 16 Jul 2014 11:39:42 +0000 (20:39 +0900)]
media: correct misspelled words in description

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

9 years agoRelease 1.3.91
Sebastian Dröge [Fri, 11 Jul 2014 10:19:08 +0000 (12:19 +0200)]
Release 1.3.91

9 years agodocs: update docs
Wim Taymans [Thu, 10 Jul 2014 15:37:45 +0000 (17:37 +0200)]
docs: update docs

9 years agoserver: implement client REMOVE filter
Wim Taymans [Thu, 10 Jul 2014 15:10:06 +0000 (17:10 +0200)]
server: implement client REMOVE filter

9 years agoclient: expose _close() method
Wim Taymans [Thu, 10 Jul 2014 15:05:13 +0000 (17:05 +0200)]
client: expose _close() method

Expose a previously internal close method to close the client
connection.

9 years agosession-pool: signal session-removed outside of the lock
Wim Taymans [Thu, 10 Jul 2014 10:20:15 +0000 (12:20 +0200)]
session-pool: signal session-removed outside of the lock

Release the lock before emiting the session-removed signal.

9 years agofilter: Release lock in filter functions
Wim Taymans [Thu, 10 Jul 2014 09:32:20 +0000 (11:32 +0200)]
filter: Release lock in filter functions

Release the object lock before calling the filter functions. We need to
keep a cookie to detect when the list changed during the filter
callback. We also keep a hashtable to make sure we only call the filter
function once for each object in case of concurrent modification.

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

9 years agoclient: check if watch is set in handle_teardown()
Ognyan Tonchev [Wed, 9 Jul 2014 13:16:08 +0000 (15:16 +0200)]
client: check if watch is set in handle_teardown()

The unit tests run without a watch

9 years agoclient tests: send teardown to cleanup session
Ognyan Tonchev [Wed, 9 Jul 2014 12:19:10 +0000 (14:19 +0200)]
client tests: send teardown to cleanup session

9 years agoserver tests: send teardown to cleanup session
Ognyan Tonchev [Wed, 9 Jul 2014 12:17:46 +0000 (14:17 +0200)]
server tests: send teardown to cleanup session

9 years agoclient: keep ref to client for the session removed handler
Ognyan Tonchev [Wed, 9 Jul 2014 13:01:31 +0000 (15:01 +0200)]
client: keep ref to client for the session removed handler

This extra ref will be dropped when all client sessions have been
removed. A session is removed when a client sends teardown, closes its
endpoint of the TCP connection or the sessions expires.

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

9 years agoclient: manage media in session as a last step
Wim Taymans [Tue, 8 Jul 2014 10:36:12 +0000 (12:36 +0200)]
client: manage media in session as a last step

Once we manage a media in a session, we can't unmanage it anymore
without destroying it. Therefore, first check everything before we
manage the media, otherwise if something is wrong we have no way to
unmanage the media.
If we created a new session and something went wrong, remove the session
again. Fixes a leak in the unit test.

9 years agoexamples: print 'stream ready at url' for mp4 and ogg example
Tim-Philipp Müller [Thu, 3 Jul 2014 18:52:42 +0000 (19:52 +0100)]
examples: print 'stream ready at url' for mp4 and ogg example

9 years agortsp: fix for MIKEY api change
Wim Taymans [Wed, 2 Jul 2014 14:04:53 +0000 (16:04 +0200)]
rtsp: fix for MIKEY api change

9 years agoclient: free watch context only once
Wim Taymans [Tue, 1 Jul 2014 14:12:13 +0000 (16:12 +0200)]
client: free watch context only once

The watch context is freed when the source is destroyed. Avoids
a CRITICAL when we try to unref the context twice.

9 years agoclient: fix build
Wim Taymans [Tue, 1 Jul 2014 13:02:15 +0000 (15:02 +0200)]
client: fix build

9 years agoclient: protect sessions with lock
Wim Taymans [Tue, 1 Jul 2014 12:41:14 +0000 (14:41 +0200)]
client: protect sessions with lock

Protect the list of sessions with the lock.

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

9 years agoClient: keep a ref to the session
Wim Taymans [Tue, 1 Jul 2014 10:13:47 +0000 (12:13 +0200)]
Client: keep a ref to the session

Don't just keep a weak ref to the session objects but use a hard ref. We
will be notified when a session is removed from the pool (expired) with
the new session-removed signal.
Don't automatically close the RTSP connection when all the sessions of
a client are removed, a client can continue to operate and it can create
a new session if it wants. If you want to remove the client from the
server, you have to use gst_rtsp_server_client_filter() now.

Based on patch from Ognyan Tonchev <ognyan.tonchev at axis.com>

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

9 years agosession-pool: add session-removed signal
Wim Taymans [Mon, 30 Jun 2014 13:14:34 +0000 (15:14 +0200)]
session-pool: add session-removed signal

Add a signal to be notified when a session is removed from the pool.

9 years agoMake rtsp-server.h a single-include header, use it for G-I
Evan Nemerson [Mon, 30 Jun 2014 07:37:59 +0000 (00:37 -0700)]
Make rtsp-server.h a single-include header, use it for G-I

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

9 years agoRelease 1.3.90
Sebastian Dröge [Sat, 28 Jun 2014 09:48:29 +0000 (11:48 +0200)]
Release 1.3.90

9 years agostream: crypto can be NULL
Wim Taymans [Fri, 27 Jun 2014 14:54:22 +0000 (16:54 +0200)]
stream: crypto can be NULL

9 years agointrospection: add missing allow-none annotations
Evan Nemerson [Wed, 11 Jun 2014 23:42:08 +0000 (16:42 -0700)]
introspection: add missing allow-none annotations

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

9 years agointrospection: add (nullable) annotations to return values
Evan Nemerson [Wed, 11 Jun 2014 23:38:36 +0000 (16:38 -0700)]
introspection: add (nullable) annotations to return values

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

9 years agogi: improve annotations
Evan Nemerson [Tue, 24 Jun 2014 07:48:45 +0000 (09:48 +0200)]
gi: improve annotations

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

9 years agosignals: use generic marshal function
Wim Taymans [Tue, 24 Jun 2014 07:43:44 +0000 (09:43 +0200)]
signals: use generic marshal function

Use the generic C marshal function.
Use more explicit type instead of G_TYPE_POINTER

9 years agocontext: add type macro
Wim Taymans [Tue, 24 Jun 2014 07:42:47 +0000 (09:42 +0200)]
context: add type macro

9 years agosdp: hide key length defines
Wim Taymans [Tue, 24 Jun 2014 07:34:50 +0000 (09:34 +0200)]
sdp: hide key length defines

They don't have a namespace.

9 years agoBack to development
Sebastian Dröge [Sun, 22 Jun 2014 17:37:31 +0000 (19:37 +0200)]
Back to development