platform/upstream/gst-rtsp-server.git
6 years agortsp-auth: Add support for parsing .htdigest files
Mathieu Duponchelle [Wed, 20 Jun 2018 02:37:11 +0000 (04:37 +0200)]
rtsp-auth: Add support for parsing .htdigest files

Passwords are usually not stored in clear text, but instead
stored already hashed in a .htdigest file.

Add support for parsing such files, add API to allow setting
a custom realm in RTSPAuth, and update the digest example.

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

6 years agortspclientsink: fix waiting for multiple streams
Matthew Waters [Tue, 19 Jun 2018 04:53:02 +0000 (14:53 +1000)]
rtspclientsink: fix waiting for multiple streams

We were previously only ever waiting for a single stream to notify it's
blocked status through GstRTSPStreamBlocking.  Actually count streams to
wait for.

Fixes rtspclientsink sending SDP's without out some of the input
streams.

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

6 years agodocs: add missing auth methods
Mathieu Duponchelle [Wed, 20 Jun 2018 02:30:04 +0000 (04:30 +0200)]
docs: add missing auth methods

6 years agortsp-stream: only create funnel if it didn't exist already.
Mathieu Duponchelle [Tue, 19 Jun 2018 22:10:18 +0000 (00:10 +0200)]
rtsp-stream: only create funnel if it didn't exist already.

This precented using multiple protocols for the same stream.

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

6 years agomeson: build auth-digest example
Mathieu Duponchelle [Tue, 19 Jun 2018 23:35:47 +0000 (01:35 +0200)]
meson: build auth-digest example

6 years agoGet payloader stats only for the sending streams
Patricia Muscalu [Tue, 5 Jun 2018 06:44:44 +0000 (08:44 +0200)]
Get payloader stats only for the sending streams

Get/set payloader properties only for streams that actually
contain a payloader element.

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

6 years agoMakefile: Don't hardcode libtool for g-i build
Edward Hervey [Fri, 18 May 2018 12:53:49 +0000 (14:53 +0200)]
Makefile: Don't hardcode libtool for g-i build

Similar to the other commits in core/base/bad

6 years agortsp-onvif-media-factory: export gst_rtsp_onvif_media_factory_requires_backchannel
Johan Bjäreholt [Tue, 8 May 2018 12:13:31 +0000 (14:13 +0200)]
rtsp-onvif-media-factory: export gst_rtsp_onvif_media_factory_requires_backchannel

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

6 years agortspclientsink: Don't deadlock in preroll on early close
Jan Schmidt [Tue, 8 May 2018 18:09:02 +0000 (04:09 +1000)]
rtspclientsink: Don't deadlock in preroll on early close

If the connection is closed very early, the flushing
marker might not get set and rtspclientsink can get
deadlocked waiting for preroll forever.

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

6 years agomeson: Update option names to omit disable_ and with- prefixes
Nirbheek Chauhan [Sat, 5 May 2018 14:21:52 +0000 (19:51 +0530)]
meson: Update option names to omit disable_ and with- prefixes

Also yield common options to the outer project (gst-build in our case)
so that they don't have to be set manually.

6 years agomeson: use -Wl,-Bsymbolic-functions where supported
Tim-Philipp Müller [Wed, 25 Apr 2018 10:00:32 +0000 (11:00 +0100)]
meson: use -Wl,-Bsymbolic-functions where supported

Just like the autotools build.

6 years agoconfigure: check for -good and -bad plugins only in uninstalled setup
Tim-Philipp Müller [Sun, 22 Apr 2018 19:09:01 +0000 (20:09 +0100)]
configure: check for -good and -bad plugins only in uninstalled setup

Avoids confusing configure messages looking or a -good .pc file
that doesn't exist.

Also use plugindir variables that common macros set while at it.

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

6 years agortsp-client: Fix session timeout
Joakim Johansson [Tue, 17 Apr 2018 09:03:11 +0000 (11:03 +0200)]
rtsp-client: Fix session timeout

When streaming data over TCP then is not the keep-alive
functionality working.

The reason is that the function do_send_data have changed
to boolean but the code is still checking the received result
from send_func with GST_RTSP_OK.

The result is that a successful send_func will always lead to
that do_send_data is returning false and the keep-alive will
not be updated.

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

6 years agoImplement support for ULP Forward Error Correction
Mathieu Duponchelle [Mon, 2 Apr 2018 20:49:35 +0000 (22:49 +0200)]
Implement support for ULP Forward Error Correction

In this initial commit, interface is only exposed for RECORD,
further work will be needed in rtspsrc to support this for
PLAY.

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

6 years agoRevert "rtsp-server: Switch around sendonly/recvonly attributes"
Sebastian Dröge [Tue, 17 Apr 2018 14:47:30 +0000 (17:47 +0300)]
Revert "rtsp-server: Switch around sendonly/recvonly attributes"

This reverts commit 3d275b1345b76151418e3f56ed014d9089ac1a57.

While RFC 3264 (SDP) says that sendonly/recvonly are from the point of view of
the requester, the actual RTSP RFCs (RFC 2326 / 7826) disagree and say
the opposite, just like the ONVIF standard.

Let's follow those RFCs as we're doing RTSP here, and add a property at
a later time if needed to switch to the SDP RFC behaviour.

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

6 years agoAutomatic update of common submodule
Tim-Philipp Müller [Mon, 16 Apr 2018 09:53:52 +0000 (10:53 +0100)]
Automatic update of common submodule

From 3fa2c9e to ed78bee

6 years agogst: Run everything through gst-indent again
Sebastian Dröge [Wed, 4 Apr 2018 07:06:06 +0000 (10:06 +0300)]
gst: Run everything through gst-indent again

6 years agortsp-media: query the position on active streams if media is complete
Branko Subasic [Tue, 3 Apr 2018 06:57:47 +0000 (08:57 +0200)]
rtsp-media: query the position on active streams if media is complete

If the media is complete, i.e. one or more streams have been configured
with sinks, then we want to query the position on those streams only.
A query on an incomplete stream may return a position that originates from
an earlier preroll.

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

6 years agortspclientsink: make sure not to use freed string
Tim-Philipp Müller [Mon, 2 Apr 2018 11:35:04 +0000 (12:35 +0100)]
rtspclientsink: make sure not to use freed string

Set transport string to NULL after freeing it, so that
at worst we get a NULL pointer if constructing a new
transport string fails (which shouldn't really fail here).
Also check return value of that, just in case.

CID 1433768.

6 years agortsp-client: do not free string passed to take_header
Mathieu Duponchelle [Fri, 30 Mar 2018 21:34:01 +0000 (23:34 +0200)]
rtsp-client: do not free string passed to take_header

6 years agortsp-stream: do not take lock in request_aux_receiver
Mathieu Duponchelle [Fri, 30 Mar 2018 21:10:10 +0000 (23:10 +0200)]
rtsp-stream: do not take lock in request_aux_receiver

Added it right before pushing the previous commit, it is
incorrect and deadlocks because this function gets called
from the join_bin thread, which already holds the lock,
that's the reason why request_aux_sender didn't take the
lock either.

6 years agortsp-server: add API to enable retransmission requests
Mathieu Duponchelle [Thu, 29 Mar 2018 20:49:26 +0000 (22:49 +0200)]
rtsp-server: add API to enable retransmission requests

"do-retransmission" was previously set when rtx-time != 0,
which made no sense as do-retransmission is used to enable
the sending of retransmission requests, where as rtx-time
is used by the peer to enable storing of buffers in order
to respond to retransmission requests.

rtsp-media now also provides a callback for the
request-aux-receiver signal.

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

6 years agortspclientsink: add rtx ssrc to mikey's crypto sessions
Mathieu Duponchelle [Thu, 29 Mar 2018 14:18:42 +0000 (16:18 +0200)]
rtspclientsink: add rtx ssrc to mikey's crypto sessions

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

6 years agortspclientsink: Handle the KeyMgmt header in ANNOUNCE response
Mathieu Duponchelle [Thu, 29 Mar 2018 14:15:45 +0000 (16:15 +0200)]
rtspclientsink: Handle the KeyMgmt header in ANNOUNCE response

This in order to be able to decrypt the RTCP backchannel

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

6 years agortsp-client: Send KeyMgmt header in ANNOUNCE response
Mathieu Duponchelle [Thu, 29 Mar 2018 14:12:26 +0000 (16:12 +0200)]
rtsp-client: Send KeyMgmt header in ANNOUNCE response

When sending back an encrypted RTCP back channel, it is useful
for the client to know the encryption key.

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

6 years agortsp-stream: extract handle_keymgmt from rtsp-client
Mathieu Duponchelle [Thu, 29 Mar 2018 14:06:31 +0000 (16:06 +0200)]
rtsp-stream: extract handle_keymgmt from rtsp-client

rtspclientsink will also need to parse KeyMgmt headers
sent by the server to decrypt the RTCP backchannel stream

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

6 years agortspclientsink: Fix client ports for the RTCP backchannel
Mathieu Duponchelle [Thu, 29 Mar 2018 00:51:02 +0000 (02:51 +0200)]
rtspclientsink: Fix client ports for the RTCP backchannel

This was broken since the work for delayed transport creation
was merged: the creation of the transports string depends on
calling stream_get_server_port, which only starts returning
something meaningful after a call to stream_allocate_udp_sockets
has been made, this function expects a transport that we parse
from the transport string ...

Significant refactoring is in order, but does not look entirely
trivial, for now we put a band aid on and create a second transport
string after the stream has been completed, to pass it in
the request headers instead of the previous, incomplete one.

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

6 years agortsp-client:Error handling when equal http session cookie
Göran Jönsson [Thu, 15 Feb 2018 12:26:16 +0000 (13:26 +0100)]
rtsp-client:Error handling when equal http session cookie

There are some clients that are sending same session cookie on random
basis.

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

6 years agortsp-media-factory-uri: Fix compilation with latest GLib
Sebastian Dröge [Tue, 20 Mar 2018 14:21:37 +0000 (16:21 +0200)]
rtsp-media-factory-uri: Fix compilation with latest GLib

rtsp-media-factory-uri.c: In function ‘rtsp_media_factory_uri_create_element’:
rtsp-media-factory-uri.c:621:17: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
   data->factory = g_object_ref (factory);
                 ^

6 years agoBack to development
Tim-Philipp Müller [Tue, 20 Mar 2018 10:21:36 +0000 (10:21 +0000)]
Back to development

6 years agoRelease 1.14.0
Tim-Philipp Müller [Mon, 19 Mar 2018 20:27:04 +0000 (20:27 +0000)]
Release 1.14.0

6 years agoRelease 1.13.91
Tim-Philipp Müller [Tue, 13 Mar 2018 19:28:33 +0000 (19:28 +0000)]
Release 1.13.91

6 years agortsp-server: GST_EXPORT -> GST_RTSP_SERVER_API
Tim-Philipp Müller [Tue, 13 Mar 2018 13:30:41 +0000 (13:30 +0000)]
rtsp-server: GST_EXPORT -> GST_RTSP_SERVER_API

We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.

6 years agortsp-onvif-media-factory: Document that backchannel pipelines must end with async...
Sebastian Dröge [Wed, 7 Mar 2018 10:20:05 +0000 (12:20 +0200)]
rtsp-onvif-media-factory: Document that backchannel pipelines must end with async=false sinks

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

6 years agoRelease 1.13.90
Tim-Philipp Müller [Sat, 3 Mar 2018 22:49:34 +0000 (22:49 +0000)]
Release 1.13.90

6 years agopermissions: add Since tags and example for new API
Mathieu Duponchelle [Fri, 2 Mar 2018 15:24:23 +0000 (16:24 +0100)]
permissions: add Since tags and example for new API

6 years agopermissions: more bindings-friendly API
Mathieu Duponchelle [Fri, 2 Mar 2018 00:36:23 +0000 (01:36 +0100)]
permissions: more bindings-friendly API

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

6 years agomeson: enable more warnings
Mathieu Duponchelle [Thu, 1 Mar 2018 18:28:16 +0000 (19:28 +0100)]
meson: enable more warnings

6 years agortsp-client: Place netaddress meta on packets received via TCP
Sebastian Dröge [Wed, 28 Feb 2018 19:12:43 +0000 (21:12 +0200)]
rtsp-client: Place netaddress meta on packets received via TCP

This allows us to later map signals from rtpbin/rtpsource back to the
corresponding stream transport, and allows to do keep-alive based on
RTCP packets in case of TCP media transport.

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

6 years agortspclientsink: if OPEN failed, unqueue next command
Mathieu Duponchelle [Tue, 27 Feb 2018 19:34:49 +0000 (20:34 +0100)]
rtspclientsink: if OPEN failed, unqueue next command

As READY_TO_PAUSED can no longer return async, the RECORD
command will be queued before the OPEN command fails
(for example in case the server could not be connected),
and record then waits for ever.

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

6 years agortspclientsink: fix retrieval of custom payloader caps
Mathieu Duponchelle [Mon, 26 Feb 2018 21:59:17 +0000 (22:59 +0100)]
rtspclientsink: fix retrieval of custom payloader caps

If a bin is passed as the custom payloader, the caps of
its factory will be empty, the correct way to obtain the caps
is to query its sinkpad.

6 years agortspclientsink: fix extra unref of custom payloader
Mathieu Duponchelle [Mon, 26 Feb 2018 21:59:00 +0000 (22:59 +0100)]
rtspclientsink: fix extra unref of custom payloader

6 years agorspclientsink: fix recent code indentation
Mathieu Duponchelle [Mon, 26 Feb 2018 21:57:39 +0000 (22:57 +0100)]
rspclientsink: fix recent code indentation

6 years agortspclientsink: add missing get_type prototype
Mathieu Duponchelle [Mon, 26 Feb 2018 19:27:57 +0000 (20:27 +0100)]
rtspclientsink: add missing get_type prototype

6 years agortspclientsink: allow setting payloader as pad property
Mathieu Duponchelle [Sat, 24 Feb 2018 02:52:15 +0000 (03:52 +0100)]
rtspclientsink: allow setting payloader as pad property

This was a FIXME  item, and can be quite useful, also
allowing to specify payloader properties from the command
line, which is always nice.

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

6 years agortsp-media: Replace g_print() log line
Carlos Rafael Giani [Mon, 26 Feb 2018 13:16:54 +0000 (14:16 +0100)]
rtsp-media: Replace g_print() log line

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

6 years agortsp-media: fix RECORD getting stuck
Mathieu Duponchelle [Thu, 22 Feb 2018 19:17:33 +0000 (20:17 +0100)]
rtsp-media: fix RECORD getting stuck

The test_record case was working because async=false had
been added in https://bugzilla.gnome.org/show_bug.cgi?id=757488
but that was incorrect, as it should not be needed.

Removing async=false made the test fail as expected, this is
fixed by not trying to preroll when preparing the media for
RECORD, as start_prepare is called upon receiving ANNOUNCE,
and our peer will not start sending media until it has received
a response to that request, and sent and received a response
to RECORD as well, thus obviously preventing preroll.

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

6 years agortsp-auth: fix set_tls_authentication_mode annotation
Mathieu Duponchelle [Fri, 23 Feb 2018 02:26:21 +0000 (03:26 +0100)]
rtsp-auth: fix set_tls_authentication_mode annotation

6 years agortp-server: remove redefined variable
Víctor Manuel Jáquez Leal [Mon, 19 Feb 2018 10:57:29 +0000 (11:57 +0100)]
rtp-server: remove redefined variable

res is a boolean variable which is defined in the function scope and
redefined, with no reason, in the loop scope. This patch removes the
redefinition.

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

6 years agostream: Add functions for checking if stream is receiver or sender
Ognyan Tonchev [Mon, 5 Feb 2018 10:49:07 +0000 (11:49 +0100)]
stream: Add functions for checking if stream is receiver or sender

...and replace all checks for RECORD in GstRTSPMedia which are really
for "sender-only". This way the code becomes more generic and introducing
support for onvif-backchannel later on will require no changes in
GstRTSPMedia.

6 years agoonvif: Make requires_backchannel() public
Ognyan Tonchev [Sat, 21 Oct 2017 12:06:30 +0000 (14:06 +0200)]
onvif: Make requires_backchannel() public

...in order to let subclasses building the onvif part of the pipeline
check whether backchannel shall be included or not.

6 years agortsp-server: Switch around sendonly/recvonly attributes
Sebastian Dröge [Mon, 22 Jan 2018 10:46:34 +0000 (12:46 +0200)]
rtsp-server: Switch around sendonly/recvonly attributes

They are wrong in the ONVIF streaming spec. The backchannel should be
recvonly and the normal media should be sendonly: direction is always
from the point of view of the SDP offerer (the server) according to
RFC 3264.

6 years agortsp: Add support for ONVIF backchannel
Sebastian Dröge [Mon, 25 Sep 2017 16:41:05 +0000 (19:41 +0300)]
rtsp: Add support for ONVIF backchannel

This adds a new RTSP server, client, media-factory and media subclass
for handling the specifics of the backchannel. Ideally this later can be
extended with other ONVIF specific features.

6 years agortsp-media: Add support for sending+receiving medias
Sebastian Dröge [Thu, 12 Oct 2017 18:00:16 +0000 (21:00 +0300)]
rtsp-media: Add support for sending+receiving medias

We need to add an appsrc/appsink in that case because otherwise the
media bin will be a sink and a source for rtpbin, causing a pipeline
loop.

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

6 years agoBack to development
Tim-Philipp Müller [Thu, 15 Feb 2018 19:44:28 +0000 (19:44 +0000)]
Back to development

6 years agoRelease 1.13.1
Tim-Philipp Müller [Thu, 15 Feb 2018 17:15:40 +0000 (17:15 +0000)]
Release 1.13.1

6 years agosession-pool: remove nullable return annotation
Mathieu Duponchelle [Wed, 14 Feb 2018 16:11:19 +0000 (17:11 +0100)]
session-pool: remove nullable return annotation

create_watch can only return NULL from the API guards, no
need for nullable.

6 years agoset_clock functions: Add nullable annotations
Mathieu Duponchelle [Tue, 13 Feb 2018 17:59:16 +0000 (18:59 +0100)]
set_clock functions: Add nullable annotations

6 years agoAll around: add annotations and API guards
Mathieu Duponchelle [Fri, 9 Feb 2018 23:07:25 +0000 (00:07 +0100)]
All around: add annotations and API guards

6 years agotest-cleanup: bind any port
Mathieu Duponchelle [Mon, 12 Feb 2018 18:12:35 +0000 (19:12 +0100)]
test-cleanup: bind any port

The meson test suite runs tests in parallel, trying to bind
a single port made the test fail.

6 years agomeson: make version numbers ints and fix int/string comparison
Tim-Philipp Müller [Thu, 8 Feb 2018 19:15:10 +0000 (19:15 +0000)]
meson: make version numbers ints and fix int/string comparison

WARNING: Trying to compare values of different types (str, int).
The result of this is undefined and will become a hard error
in a future Meson release.

6 years agogst_rtsp_context_get_current: add (skip) annotation
Mathieu Duponchelle [Tue, 6 Feb 2018 17:00:33 +0000 (18:00 +0100)]
gst_rtsp_context_get_current: add (skip) annotation

The return value type is defined with G_DEFINE_POINTER_TYPE,
and gi emits the following warning:

Invalid non-constant return of bare structure or union; register as
boxed type or (skip)

6 years agortsp-client: add type annotations
Mathieu Duponchelle [Tue, 6 Feb 2018 16:58:49 +0000 (17:58 +0100)]
rtsp-client: add type annotations

gi doesn't seem to be able to figure out the type of the
signal parameters when defined with G_DEFINE_POINTER_TYPE

6 years agoautotools: use -fno-strict-aliasing where supported
Tim-Philipp Müller [Sun, 4 Feb 2018 11:24:09 +0000 (12:24 +0100)]
autotools: use -fno-strict-aliasing where supported

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

6 years agomeson: use -fno-strict-aliasing where supported
Tim-Philipp Müller [Tue, 30 Jan 2018 20:35:21 +0000 (20:35 +0000)]
meson: use -fno-strict-aliasing where supported

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

6 years agomount-points: bail out of loop again when matching mount points
Tim-Philipp Müller [Thu, 25 Jan 2018 12:09:03 +0000 (12:09 +0000)]
mount-points: bail out of loop again when matching mount points

Previous patch led to us iterating the entire sequence. Bail out
of the loop again if we have a match but are moving away from it.

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

6 years agotests: mountpoints: add more checks for mount point path matching
Tim-Philipp Müller [Thu, 25 Jan 2018 12:06:57 +0000 (12:06 +0000)]
tests: mountpoints: add more checks for mount point path matching

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

6 years agomount-points: fix matching of paths where there's also an entry with a common prefix
Andrew Bott [Fri, 16 Sep 2016 20:41:19 +0000 (20:41 +0000)]
mount-points: fix matching of paths where there's also an entry with a common prefix

e.g. with the following mount points

/raw
/raw/snapshot
/raw/video

_match() would not match /raw/video and /raw/snapshot correctly.

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

6 years agopermissions: add some new API to make this usable from bindings
Tim-Philipp Müller [Thu, 18 Jan 2018 23:53:20 +0000 (23:53 +0000)]
permissions: add some new API to make this usable from bindings

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

6 years agortsp-token: annotate constructors for bindings
Tim-Philipp Müller [Thu, 18 Jan 2018 11:32:32 +0000 (11:32 +0000)]
rtsp-token: annotate constructors for bindings

This maps _new_empty() to _new(), which also makes RTSPToken()
work properly now. Since this API wasn't usable from bindings
before, this should hopefully be fine.

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

6 years agortsp-token: add some API to set fields from bindings
Tim-Philipp Müller [Thu, 18 Jan 2018 11:07:45 +0000 (11:07 +0000)]
rtsp-token: add some API to set fields from bindings

The existing functions are all vararg-based and as such
not usable from bindings.

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

6 years agotests: fix indentation
Tim-Philipp Müller [Sat, 13 Jan 2018 15:02:28 +0000 (15:02 +0000)]
tests: fix indentation

Fix and "fix".

6 years agotests: rtspserver: fix another ref leak
Tim-Philipp Müller [Sat, 13 Jan 2018 14:58:55 +0000 (14:58 +0000)]
tests: rtspserver: fix another ref leak

Even if this didn't show up in valgrind.

6 years agotests: rtspclientsink: fix leak
Tim-Philipp Müller [Sat, 13 Jan 2018 14:58:00 +0000 (14:58 +0000)]
tests: rtspclientsink: fix leak

6 years agotest: rtspserver: plug memory leak in test_no_session_timeout
Branko Subasic [Tue, 2 Jan 2018 13:19:31 +0000 (14:19 +0100)]
test: rtspserver: plug memory leak in test_no_session_timeout

In test_no_session_timeout, unref the rtsp session object when the
test is done.

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

6 years agortpsclientsink: Initialize and clear newly added mutex and cond
Edward Hervey [Wed, 20 Dec 2017 13:17:02 +0000 (14:17 +0100)]
rtpsclientsink: Initialize and clear newly added mutex and cond

While it *did* work, glib would automatically create new mutex and cond
... which never got freed

6 years agortsp-stream: Set multicast TTL on the multicast sockets
Sebastian Dröge [Tue, 19 Dec 2017 09:34:37 +0000 (11:34 +0200)]
rtsp-stream: Set multicast TTL on the multicast sockets

And not if we do unicast UDP.

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

6 years agortsp-stream: Decide based on the sockets, not the addresses if we already allocated...
Sebastian Dröge [Tue, 19 Dec 2017 09:14:48 +0000 (11:14 +0200)]
rtsp-stream: Decide based on the sockets, not the addresses if we already allocated a socket

In the multicast case (as in test-multicast, not test-multicast2), the
address could be allocated/reserved (and thus set) already without
allocating the actual socket. We need to allocate the socket here still
instead of just claiming that it was already allocated.

See https://bugzilla.gnome.org/show_bug.cgi?id=791743#c2

6 years agortspclientsink: Use the new rtsp-stream API
Patricia Muscalu [Sat, 16 Dec 2017 20:46:53 +0000 (21:46 +0100)]
rtspclientsink: Use the new rtsp-stream API

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

6 years agortspclientsink: Wait until OPEN has been scheduled
Patricia Muscalu [Sat, 16 Dec 2017 20:01:43 +0000 (21:01 +0100)]
rtspclientsink: Wait until OPEN has been scheduled

Make sure that the sink thread has started opening connection
to the server before continuing.

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

6 years agoAutomatic update of common submodule
Matthew Waters [Thu, 14 Dec 2017 03:53:35 +0000 (14:53 +1100)]
Automatic update of common submodule

From e8c7a71 to 3fa2c9e

6 years agortsp-server: Minor doc fixes
Edward Hervey [Thu, 7 Dec 2017 15:08:29 +0000 (16:08 +0100)]
rtsp-server: Minor doc fixes

Mostly for g-i

6 years agotests: disable all tests when --disable-tests is used
Tim-Philipp Müller [Wed, 6 Dec 2017 20:47:22 +0000 (20:47 +0000)]
tests: disable all tests when --disable-tests is used

Move conditional subdir include into top level.

Based on patch by: Joel Holdsworth

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

6 years agomeson: build more tests and add options to disable tests and examples
Tim-Philipp Müller [Wed, 6 Dec 2017 20:42:39 +0000 (20:42 +0000)]
meson: build more tests and add options to disable tests and examples

6 years agoFix build when -Werror=deprecated-declarations is on
Thibault Saunier [Sun, 26 Nov 2017 16:26:39 +0000 (13:26 -0300)]
Fix build when -Werror=deprecated-declarations is on

As gst_rtsp_session_next_timeout is deprecated.

```
../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session.c:760:3: error: ‘gst_rtsp_session_next_timeout’ is deprecated: Use 'gst_rtsp_session_next_timeout_usec' instead [-Werror=deprecated-declarations]
   res = (gst_rtsp_session_next_timeout (session, now) == 0);
   ^~~
../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session.c:685:1: note: declared here
 gst_rtsp_session_next_timeout (GstRTSPSession * session, GTimeVal * now)
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

6 years agoAutomatic update of common submodule
Matthew Waters [Mon, 27 Nov 2017 09:18:24 +0000 (20:18 +1100)]
Automatic update of common submodule

From 3f4aa96 to e8c7a71

6 years agocheck/media: Add seekability test case: not all streams are active
Patricia Muscalu [Sat, 25 Nov 2017 19:34:16 +0000 (20:34 +0100)]
check/media: Add seekability test case: not all streams are active

Media contains two streams but only one is complete and prepared
for playing.

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

6 years agortsp-stream: Do not reset 'blocking' if stream is already blocked
Patricia Muscalu [Sat, 25 Nov 2017 19:32:02 +0000 (20:32 +0100)]
rtsp-stream: Do not reset 'blocking' if stream is already blocked

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

6 years agortsp-media: Fix missing lock in gst_rtsp_media_seekable()
Patricia Muscalu [Sat, 25 Nov 2017 19:45:44 +0000 (20:45 +0100)]
rtsp-media: Fix missing lock in gst_rtsp_media_seekable()

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

6 years agomeson: remove vs_module_defs_dir variable which is no longer needed
Tim-Philipp Müller [Sun, 26 Nov 2017 16:29:49 +0000 (16:29 +0000)]
meson: remove vs_module_defs_dir variable which is no longer needed

6 years agortsp: fix distcheck
Tim-Philipp Müller [Sun, 26 Nov 2017 14:46:05 +0000 (14:46 +0000)]
rtsp: fix distcheck

6 years agowin32: remove .def file with exports
Tim-Philipp Müller [Sun, 26 Nov 2017 12:53:42 +0000 (12:53 +0000)]
win32: remove .def file with exports

They're no longer needed, symbol exporting is now explicit
via GST_EXPORT in all cases (autotools, meson, incl. MSVC).

6 years agoautotools: stop controlling symbol visibility with -export-symbols-regex
Tim-Philipp Müller [Sun, 26 Nov 2017 12:28:40 +0000 (12:28 +0000)]
autotools: stop controlling symbol visibility with -export-symbols-regex

Instead, use -fvisibility=hidden and explicit exports via GST_EXPORT.
This should result in consistent behaviour for the autotools and
Meson builds.

6 years agortsp-server: add missing GST_EXPORT and export deprecated funcs
Tim-Philipp Müller [Sun, 26 Nov 2017 12:47:08 +0000 (12:47 +0000)]
rtsp-server: add missing GST_EXPORT and export deprecated funcs

6 years agocheck: Add seekability testing on medias
Edward Hervey [Sat, 25 Nov 2017 06:53:30 +0000 (07:53 +0100)]
check: Add seekability testing on medias

Make sure that once GstRTSPMedia are prepared they returned
the expected seekability results

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

6 years agortsp-media: Enable seeking query before pipeline is complete
Edward Hervey [Fri, 24 Nov 2017 16:34:31 +0000 (17:34 +0100)]
rtsp-media: Enable seeking query before pipeline is complete

SDP are now provided *before* the pipeline is fully complete. In order
to know whether a media is seekable or not therefore requires asking
the invididual streams.

API: gst_rtsp_stream_seekable

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

6 years agortsp-media: Fix handling in default_unsuspend()
Patricia Muscalu [Thu, 23 Nov 2017 19:34:03 +0000 (20:34 +0100)]
rtsp-media: Fix handling in default_unsuspend()

Handle the case when streams are not blocked and media
is suspended from PAUSED.

Change-Id: I2f3d222ea7b9b20a0732ea5dc81a32d17ab75040

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

6 years agocheck/media: Fix thread pool leak.
Patricia Muscalu [Thu, 23 Nov 2017 17:51:21 +0000 (18:51 +0100)]
check/media: Fix thread pool leak.

Change-Id: I0f92b1caca0ee518ae64a7dacfbd28a214c3eea1

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

6 years agortsp-media: Removed fakesink elements
Patricia Muscalu [Thu, 23 Nov 2017 17:39:44 +0000 (18:39 +0100)]
rtsp-media: Removed fakesink elements

There is not need of adding fakesink elements to the media
pipeline in the dynamic-payloader case.
The media pipeline itself is dynamically updated with
the receiver and sender parts that are based on the client
transport information known after SETUP has been received.

Change-Id: I4e88c9b500c04030669822f0d03b1842913f6cb9

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

6 years agortsp-media: Corrected ASYNC_DONE handling
Patricia Muscalu [Thu, 23 Nov 2017 08:10:54 +0000 (09:10 +0100)]
rtsp-media: Corrected ASYNC_DONE handling

Media is complete when all the transport based parts are
added to the media pipeline. At this point ASYNC_DONE is
posted by the media pipeline and media is ready to enter
the PREPARED state.

Change-Id: I50fb8dfed88ebaf057d9a35fca2d7f0a70e9d1fa

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