Mathieu Duponchelle [Tue, 31 Jul 2018 19:17:41 +0000 (21:17 +0200)]
rtsp-stream: avoid duplicating the first multicast client
In
dcb4533fedae3ac62bc25a916eb95927b7d69aec , we made it so
clients were dynamically added and removed to the multicast
udp sinks, as such we should no longer add a first client in
set_multicast_socket_for_udpsink
https://bugzilla.gnome.org/show_bug.cgi?id=793441
Sebastian Dröge [Tue, 14 Aug 2018 11:25:53 +0000 (14:25 +0300)]
Revert "rtsp-stream: avoid duplicating the first multicast client"
This reverts commit
33570944401747f44d8ebfec535350651413fb92.
Commits where accidentially squashed together
Sebastian Dröge [Tue, 14 Aug 2018 11:25:42 +0000 (14:25 +0300)]
Revert "Add new API for setting/getting maximum multicast ttl value"
This reverts commit
7f0ae77e400fb8a0462a76a5dd2e63e12c4a2e52.
Commits where accidentially squashed together
Sebastian Dröge [Tue, 14 Aug 2018 11:25:37 +0000 (14:25 +0300)]
Revert "rtsp-stream: Don't require address pool in the transport specific case"
This reverts commit
a9db3e7f092cfeb5475e9aa24b1e91906c141d52.
Commits where accidentially squashed together
Sebastian Dröge [Tue, 14 Aug 2018 11:25:14 +0000 (14:25 +0300)]
Revert "stream: Choose the maximum ttl value provided by multicast clients"
This reverts commit
499e437e501215849d24cdaa157e0edf4de097d0.
Commits where accidentially squashed together
Sebastian Dröge [Tue, 14 Aug 2018 11:10:56 +0000 (14:10 +0300)]
examples: Fix indentation
Patricia Muscalu [Wed, 25 Jul 2018 13:33:18 +0000 (15:33 +0200)]
stream: Choose the maximum ttl value provided by multicast clients
The maximum ttl value provided so far by the multicast clients
will be chosen and reported in the response to the current
client request.
https://bugzilla.gnome.org/show_bug.cgi?id=793441
Patricia Muscalu [Fri, 23 Feb 2018 13:34:32 +0000 (14:34 +0100)]
rtsp-stream: Don't require address pool in the transport specific case
If "transport.client-settings" parameter is set to true, the client is
allowed to specify destination, ports and ttl.
There is no need for pre-configured address pool.
https://bugzilla.gnome.org/show_bug.cgi?id=793441
Patricia Muscalu [Tue, 24 Jul 2018 07:35:46 +0000 (09:35 +0200)]
Add new API for setting/getting maximum multicast ttl value
https://bugzilla.gnome.org/show_bug.cgi?id=793441
Mathieu Duponchelle [Tue, 31 Jul 2018 19:17:41 +0000 (21:17 +0200)]
rtsp-stream: avoid duplicating the first multicast client
In
dcb4533fedae3ac62bc25a916eb95927b7d69aec , we made it so
clients were dynamically added and removed to the multicast
udp sinks, as such we should no longer add a first client in
set_multicast_socket_for_udpsink
https://bugzilla.gnome.org/show_bug.cgi?id=793441
Thibault Saunier [Mon, 6 Aug 2018 19:33:04 +0000 (15:33 -0400)]
rtsp-server: Add gstreamer-base gir dir in autotools
Mathieu Duponchelle [Wed, 25 Jul 2018 17:54:55 +0000 (19:54 +0200)]
rtsp-client: always allocate both IPV4 and IPV6 sockets
multiudpsink does not support setting the socket* properties
after it has started, which meant that rtsp-server could no
longer serve on both IPV4 and IPV6 sockets since the patches
from https://bugzilla.gnome.org/show_bug.cgi?id=757488 were
merged.
When first connecting an IPV6 client then an IPV4 client,
multiudpsink fell back to using the IPV6 socket.
When first connecting an IPV4 client, then an IPV6 client,
multiudpsink errored out, released the IPV4 socket, then
crashed when trying to send a message on NULL nevertheless,
that is however a separate issue.
This could probably be fixed by handling the setting of
sockets in multiudpsink after it has started, that will
however be a much more significant effort.
For now, this commit simply partially reverts the behaviour
of rtsp-stream: it will continue to only create the udpsinks
when needed, as was the case since the patches were merged,
it will however when creating them, always allocate both
sockets and set them on the sink before it starts, as was
the case prior to the patches.
Transport configuration will only error out if the allocation
of UDP sockets fails for the actual client's family, this
also downgrades the GST_ERRORs in alloc_ports_one_family
to GST_WARNINGs, as failing to allocate is no longer
necessarily fatal.
https://bugzilla.gnome.org/show_bug.cgi?id=796875
Nirbheek Chauhan [Wed, 25 Jul 2018 11:52:20 +0000 (17:22 +0530)]
meson: Convert common options to feature options
These are necessary for gst-build to set options correctly. The
remaining automagic option is cgroup support in examples.
https://bugzilla.gnome.org/show_bug.cgi?id=795107
Sebastian Dröge [Mon, 23 Jul 2018 15:03:51 +0000 (18:03 +0300)]
rtsp-stream: Slightly simplify locking
David Svensson Fors [Thu, 28 Jun 2018 09:22:21 +0000 (11:22 +0200)]
Limit queued TCP data messages to one per stream
Before, the watch backlog size in GstRTSPClient was changed
dynamically between unlimited and a fixed size, trying to avoid both
unlimited memory usage and deadlocks while waiting for place in the
queue. (Some of the deadlocks were described in a long comment in
handle_request().)
In the previous commit, we changed to a fixed backlog size of 100.
This is possible, because we now handle RTP/RTCP data messages differently
from RTSP request/response messages.
The data messages are messages tunneled over TCP. We allow at most one
queued data message per stream in GstRTSPClient at a time, and
successfully sent data messages are acked by sending a "message-sent"
callback from the GstStreamTransport. Until that ack comes, the
GstRTSPStream does not call pull_sample() on its appsink, and
therefore the streaming thread in the pipeline will not be blocked
inside GstRTSPClient, waiting for a place in the queue.
pull_sample() is called when we have both an ack and a "new-sample"
signal from the appsink. Then, we know there is a buffer to write.
RTSP request/response messages are not acked in the same way as data
messages. The rest of the 100 places in the queue are used for
them. If the queue becomes full of request/response messages, we
return an error and close the connection to the client.
Change-Id: I275310bc90a219ceb2473c098261acc78be84c97
David Svensson Fors [Thu, 28 Jun 2018 09:22:13 +0000 (11:22 +0200)]
rtsp-client: Use fixed backlog size
Change to using a fixed backlog size WATCH_BACKLOG_SIZE.
Preparation for the next commit, which changes to a different way of
avoiding both deadlocks and unlimited memory usage with the watch
backlog.
Carlos Rafael Giani [Mon, 16 Jul 2018 19:57:08 +0000 (21:57 +0200)]
rtsp-media: unref clock (if set) when finalizing
https://bugzilla.gnome.org/show_bug.cgi?id=796814
Carlos Rafael Giani [Mon, 16 Jul 2018 19:56:44 +0000 (21:56 +0200)]
rtsp-media: add gst_rtsp_media_*_set_clock to docs
https://bugzilla.gnome.org/show_bug.cgi?id=796814
Tim-Philipp Müller [Thu, 12 Jul 2018 18:01:54 +0000 (19:01 +0100)]
media-factory: unref old clock when setting new clock
https://bugzilla.gnome.org/show_bug.cgi?id=796724
Brendan Shanks [Fri, 29 Jun 2018 22:20:57 +0000 (15:20 -0700)]
media-factory: unref clock in finalize
https://bugzilla.gnome.org/show_bug.cgi?id=796724
Tim-Philipp Müller [Thu, 12 Jul 2018 17:57:21 +0000 (18:57 +0100)]
rtsp-onvif-media: fix g-ir-scanner warnings
Tim-Philipp Müller [Tue, 10 Jul 2018 22:56:23 +0000 (23:56 +0100)]
.gitignore: add another example binary
Tim-Philipp Müller [Tue, 10 Jul 2018 22:55:20 +0000 (23:55 +0100)]
meson: add new test-appsrc2 example to meson build
Tim-Philipp Müller [Tue, 10 Jul 2018 22:53:41 +0000 (23:53 +0100)]
examples: fix build of new test-appsrc2 example
Need to link against libgstapp-1.0.
Jan Schmidt [Tue, 10 Jul 2018 15:25:51 +0000 (01:25 +1000)]
examples: Add test-appsrc2
Add an example of feeding both audio and video into an RTSP
pipeline via appsrc.
Louis-Francis Ratté-Boulianne [Fri, 8 Jan 2016 23:12:14 +0000 (18:12 -0500)]
client: Strip transport parts as whitespaces could be around commas
https://bugzilla.gnome.org/show_bug.cgi?id=758428
Göran Jönsson [Wed, 27 Jun 2018 06:30:42 +0000 (08:30 +0200)]
rtsp-stream: avoid pushing data on unlinked udpsrc pad during setup
Fix race when setting up source elements.
Since we set the source element(s) to PLAYING state before hooking
them up to the downstream funnel, it's possible for the source element
to receive packets before we actually get to linking it to the funnel,
in which case buffers would be pushed out on an unlinked pad, causing
it to error out and stop receiving more data.
We fix this by blocking the source's srcpad until we have linked it.
https://bugzilla.gnome.org/show_bug.cgi?id=796160
Ognyan Tonchev [Wed, 21 Mar 2018 09:56:51 +0000 (10:56 +0100)]
rtsp-stream: Fix mismatch between allowed and configured protocols
https://bugzilla.gnome.org/show_bug.cgi?id=796679
Ulf Olsson [Wed, 1 Feb 2017 08:44:50 +0000 (09:44 +0100)]
rtsp-stream: Emit a signal when the SRTP decoder is created
https://bugzilla.gnome.org/show_bug.cgi?id=778080
Patricia Muscalu [Tue, 13 Mar 2018 10:10:35 +0000 (11:10 +0100)]
rtsp-stream: Don't require presence of sinks in _get_*_socket()
Transport specific sink elements are added to the pipeline
in PLAY request and sockets are already created in SETUP so
it's actually wrong to require the presence of sinks in
_get_*_socket() functions.
https://bugzilla.gnome.org/show_bug.cgi?id=793441
Patricia Muscalu [Wed, 14 Feb 2018 09:41:02 +0000 (10:41 +0100)]
rtsp-stream: Update transport for multicast clients as well
If a multicast client requests different transport settings
than the existing one make sure that this new transport
configuruation is propagated to the multicast udp sink.
https://bugzilla.gnome.org/show_bug.cgi?id=793441
Patricia Muscalu [Tue, 13 Feb 2018 10:04:36 +0000 (11:04 +0100)]
rtsp-stream: Set the multicast TTL parameter on multicast udp sinks
And not on unicast udp sinks
https://bugzilla.gnome.org/show_bug.cgi?id=793441
Tim-Philipp Müller [Sun, 24 Jun 2018 10:44:26 +0000 (12:44 +0200)]
Update for g_type_class_add_private() deprecation in recent GLib
Tim-Philipp Müller [Sun, 24 Jun 2018 10:45:49 +0000 (12:45 +0200)]
Fix indentation
Jan Schmidt [Fri, 22 Jun 2018 13:17:08 +0000 (23:17 +1000)]
examples: Add test-video-disconnect example
Simple example which cuts off all clients 10 seconds
after the first one connects.
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
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
Mathieu Duponchelle [Wed, 20 Jun 2018 02:30:04 +0000 (04:30 +0200)]
docs: add missing auth methods
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
Mathieu Duponchelle [Tue, 19 Jun 2018 23:35:47 +0000 (01:35 +0200)]
meson: build auth-digest example
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
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
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
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
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.
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.
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
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
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
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
Tim-Philipp Müller [Mon, 16 Apr 2018 09:53:52 +0000 (10:53 +0100)]
Automatic update of common submodule
From 3fa2c9e to ed78bee
Sebastian Dröge [Wed, 4 Apr 2018 07:06:06 +0000 (10:06 +0300)]
gst: Run everything through gst-indent again
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
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.
Mathieu Duponchelle [Fri, 30 Mar 2018 21:34:01 +0000 (23:34 +0200)]
rtsp-client: do not free string passed to take_header
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.
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
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
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
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
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
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
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
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);
^
Tim-Philipp Müller [Tue, 20 Mar 2018 10:21:36 +0000 (10:21 +0000)]
Back to development
Tim-Philipp Müller [Mon, 19 Mar 2018 20:27:04 +0000 (20:27 +0000)]
Release 1.14.0
Tim-Philipp Müller [Tue, 13 Mar 2018 19:28:33 +0000 (19:28 +0000)]
Release 1.13.91
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.
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
Tim-Philipp Müller [Sat, 3 Mar 2018 22:49:34 +0000 (22:49 +0000)]
Release 1.13.90
Mathieu Duponchelle [Fri, 2 Mar 2018 15:24:23 +0000 (16:24 +0100)]
permissions: add Since tags and example for new 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
Mathieu Duponchelle [Thu, 1 Mar 2018 18:28:16 +0000 (19:28 +0100)]
meson: enable more warnings
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
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
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.
Mathieu Duponchelle [Mon, 26 Feb 2018 21:59:00 +0000 (22:59 +0100)]
rtspclientsink: fix extra unref of custom payloader
Mathieu Duponchelle [Mon, 26 Feb 2018 21:57:39 +0000 (22:57 +0100)]
rspclientsink: fix recent code indentation
Mathieu Duponchelle [Mon, 26 Feb 2018 19:27:57 +0000 (20:27 +0100)]
rtspclientsink: add missing get_type prototype
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
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
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
Mathieu Duponchelle [Fri, 23 Feb 2018 02:26:21 +0000 (03:26 +0100)]
rtsp-auth: fix set_tls_authentication_mode annotation
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
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.
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.
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.
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.
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
Tim-Philipp Müller [Thu, 15 Feb 2018 19:44:28 +0000 (19:44 +0000)]
Back to development
Tim-Philipp Müller [Thu, 15 Feb 2018 17:15:40 +0000 (17:15 +0000)]
Release 1.13.1
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.
Mathieu Duponchelle [Tue, 13 Feb 2018 17:59:16 +0000 (18:59 +0100)]
set_clock functions: Add nullable annotations
Mathieu Duponchelle [Fri, 9 Feb 2018 23:07:25 +0000 (00:07 +0100)]
All around: add annotations and API guards
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.
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.
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)
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
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
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