Commit graph

1448 commits

Author SHA1 Message Date
Edward Hervey
b7769a6dee Automatic update of common submodule
From f980fd9 to 39ac2f5
2016-12-03 08:21:02 +01:00
Edward Hervey
dea000f2e3 media: Fix pt map caps
Since decryption is handled within rtpbin, all outcoming stream
caps will be application/x-rtp (i.e. regular rtp)

Fixes RECORD with SRTP streams
2016-12-02 15:47:12 +01:00
Edward Hervey
8317139121 media-factory: Create media objects with the proper transport mode
The function called immediately afterwards (collect_streams()) will
need it to work properly
2016-12-02 15:47:12 +01:00
Sebastian Dröge
d633c0103a rtsp-auth: Don't remove digest-auth nonces that already/still have a client connected 2016-12-02 14:36:50 +02:00
Sebastian Dröge
708fd3c325 rtsp-media-factory: Don't create a pipeline for the media pipeline string
We're going to put a pipeline into a pipeline otherwise, which is not
exactly ideal.
2016-12-01 18:04:34 +02:00
Kseniia Vasilchuk
09e499387d media: Fix race condition around finish_unprepare() if called multiple time
https://bugzilla.gnome.org/show_bug.cgi?id=755329
2016-12-01 16:39:00 +02:00
Jan Schmidt
cc59abc824 rtspclientsink: Don't leave stale pointer after unref
Fix a warning on shutdown - don't keep a pointer to an
alread-unreffed object.
2016-11-30 21:15:12 +11:00
Tim-Philipp Müller
628c613a0a common: use https protocol for common submodule
https://bugzilla.gnome.org/show_bug.cgi?id=775110
2016-11-26 11:24:59 +00:00
Matthew Waters
b38eb8e99e stream: block the output of rtpbin instead of the source pipeline
85c52e194b introduced a more correct
detection of the srtp rollover counter to add to the SDP.

Unfortunately, it was incomplete for live pipelines where the logic
blocks the source bin before creating the SDP and thus would never have
the necessary informaiton to create a correct SDP with srtp encryption.

Move the pad blocks to rtpbin's output pads instead so that the
necessary information can be created before we need the information for
the SDP.

https://bugzilla.gnome.org/show_bug.cgi?id=770239
2016-11-23 23:08:16 +11:00
Dag Gullberg
f00ac2daf2 rtsp-client: add IDLE timeout, before session exists
The RTSP server will not timeout an idle RTSP connection
(note this is different from doing timeout on a RTSP
session).

At least for Apache this is a problem when running RTSP over
HTTPS since it uses one of the threads (there is a rather
limited number) that are available for handling requests.

https://bugzilla.gnome.org/show_bug.cgi?id=771830
2016-11-23 09:45:33 +00:00
Tim-Philipp Müller
9777e4dcd6 .gitignore more 2016-11-23 09:45:08 +00:00
Göran Jönsson
335d279a96 rtsp-stream: Set close-socket FALSE on UDP src:es
With this RTSP server can use the sockets independent on the udpsrc
state.
When the udp src is finalized it will unref socket and when g_socket
is finalized the socket will be closed.

https://bugzilla.gnome.org/show_bug.cgi?id=765673
2016-11-22 13:59:30 +02:00
Sebastian Dröge
6622b5be14 rtspclientsink: Move to new helper function to parse authentication responses
https://bugzilla.gnome.org/show_bug.cgi?id=774416
2016-11-19 11:59:34 +02:00
Sebastian Dröge
927a44c55b rtsp-auth: Add support for Digest authentication
https://bugzilla.gnome.org/show_bug.cgi?id=774416
2016-11-19 11:59:34 +02:00
Scott D Phillips
d7676bfba3 Enable building with MSVC
https://bugzilla.gnome.org/show_bug.cgi?id=774640
2016-11-19 11:58:05 +02:00
Thibault Saunier
2ad8b13cb0 meson: gstreamer gst_check_dep does not exist on windows 2016-11-18 20:23:14 -03:00
Scott D Phillips
01ef7f32b6 client: update do_send_message to match type GstRTSPClientSendFunc
This type mismatch fails building with MSVC

https://bugzilla.gnome.org/show_bug.cgi?id=774640
2016-11-17 23:38:15 +00:00
Sebastian Dröge
179eb9ae89 rtsp-sdp: Fix indentation 2016-11-11 14:42:08 +02:00
Neha Arora
166a903594 rtsp-media: Only signal "new-state" if the state has actually changed
https://bugzilla.gnome.org/show_bug.cgi?id=774173
2016-11-10 13:16:23 +02:00
Branko Subasic
8425ea6969 client: emit signal in the beginning of each rtsp request
These signals let the application validate the requests, configure the
media/stream in a certain way and also generate error status code in
case of error or bad request.

https://bugzilla.gnome.org/show_bug.cgi?id=758062
2016-11-01 20:25:22 +02:00
Tim-Philipp Müller
0922951c26 meson: update version 2016-11-01 18:10:35 +00:00
Sebastian Dröge
cfca152b15 Back to development 2016-11-01 18:53:15 +02:00
Sebastian Dröge
3af697e777 Release 1.10.0 2016-11-01 18:06:46 +02:00
Tim-Philipp Müller
7508442292 tests: try to avoid using the same ports in different tests
Causes problems with client multicast tests otherwise if
tests are run in parallel.

https://bugzilla.gnome.org/show_bug.cgi?id=773640
2016-10-31 12:05:25 +00:00
Tim-Philipp Müller
fd6beb871a tests: client: use fail_unless_equals_foo() for better failure reporting 2016-10-28 17:50:59 +01:00
Göran Jönsson
dbf91ab231 rtsp-client: Session filter in unwatch session
Call session filter with filter_session_media as paramer in
client_unwatch_session if using drop_backlog = FALSE.

In client_unwatch_session its allowed to grow the watchs backlog.
If using drop_backlog = FALSE and the backlog is full it will cause
a deadlock when setting session media state to NULL
if the backlog is not allowed to grow.

https://bugzilla.gnome.org/show_bug.cgi?id=771983
2016-10-25 12:55:59 +03:00
Tim-Philipp Müller
34ed1d0bea meson: add fallbacks for gst modules
For gst-all.
2016-10-20 21:41:13 +01:00
Nikita Bobkov
ff65732270 rtsp-client: Fix factory leaking in find_media() in error cases
https://bugzilla.gnome.org/show_bug.cgi?id=771488
2016-10-20 14:01:38 +03:00
Xavier Claessens
c0f24fea83 stream: Fix randomly missing streams from SDP with dynamic elements
When using dynamic elements, gst_rtsp_stream_join_bin() is called from
"pad-added" signal. In that case priv->srcpad could already have its caps,
and they'll be sent to priv->send_src[0] pad. That means that when it
connects "notify::caps" signal, that pad could already have received its
caps and the signal won't be emitted anymore.

In that case priv->caps stay to NULL and when building the SDP that stream
gets ignored. Leading to missing video or audio when playing in client side.

https://bugzilla.gnome.org/show_bug.cgi?id=772478
2016-10-06 19:05:36 +03:00
Tim-Philipp Müller
87f8eed5a7 meson: update version 2016-09-30 11:42:08 +01:00
Sebastian Dröge
11f5797cce Release 1.9.90 2016-09-30 13:04:12 +03:00
Ian Jamison
34389831cb rtsp-server: Hint that set_multicast_iface expects the name of the interface
To prevent any possibly confusion with IPs or anything else.

https://bugzilla.gnome.org/show_bug.cgi?id=771530
2016-09-18 10:00:29 -04:00
Sebastian Dröge
800bed8c9c rtsp-media: Call g_free() instead of g_object_unref() on multicast-iface strings
https://bugzilla.gnome.org/show_bug.cgi?id=763000#c5
2016-09-18 09:58:55 -04:00
Sebastian Dröge
0121cbc500 configure: Depend on gstreamer 1.9.2.1 2016-09-14 11:31:15 +02:00
Jan Schmidt
90a05f5ce5 Automatic update of common submodule
From b18d820 to f980fd9
2016-09-10 20:52:31 +10:00
Jan Schmidt
02bc6fa8ca Automatic update of common submodule
From 6f2d209 to b18d820
2016-09-10 09:58:31 +10:00
Sebastian Dröge
74c8a9f4cf rtsp-stream: Remove unused _locked() variant of a function
It was added during refactoring.
2016-09-07 18:44:34 +03:00
Xavier Claessens
e882fe9e06 stream: cosmetic cleanup
https://bugzilla.gnome.org/show_bug.cgi?id=766612
2016-09-07 18:40:57 +03:00
Xavier Claessens
f5f350645a stream: Compare IP addresses case insensitive in more places
https://bugzilla.gnome.org/show_bug.cgi?id=766612
2016-09-07 18:40:57 +03:00
Xavier Claessens
f90ab92547 stream: Fix leaked joined_bin
There is no need to keep a strong ref on it, and _leave_bin() was
setting it to NULL before calling g_clear_object() so it was leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=766612
2016-09-07 18:40:57 +03:00
Sebastian Dröge
d33eca6156 rtsp-stream: Compare IP address strings case insensitive
Otherwise IPv6 addresses might fail this comparision.
2016-09-06 19:15:23 +03:00
Sebastian Dröge
e5a49efa7f rtsp-stream: Bind multicast sockets to ANY as before
https://bugzilla.gnome.org/show_bug.cgi?id=766612#c48
2016-09-06 19:10:21 +03:00
Kseniia
6136ef66d4 rtsp-session: Fix segfault when doing keep-alive after removing the session
If keep-alive happens after removing the session but before finalizing the
stream transport, we would segfault.

https://bugzilla.gnome.org/show_bug.cgi?id=750544
2016-09-05 22:57:52 +03:00
Sebastian Dröge
ca855abae1 rtsp-stream: Always create multicast UDP elements if the protocol flag is set
Adding them later will cause deadlocks due to
1) pre-rolling and staying in PAUSED with the unicast/TCP sinks
2) adding the multicast sink
3) waiting for it to get data to preroll again

3) never happens because the queues after the tee are full.
2016-09-05 18:09:22 +03:00
Sebastian Dröge
be4b9718e3 rtsp-stream: Fix up various multicast related issues 2016-09-05 16:32:57 +03:00
Sebastian Dröge
958f4a47ec tests: Fix compilation 2016-09-05 13:40:59 +03:00
Xavier Claessens
8495c47a9d stream: revert back to create udpsrc/udpsink on DESCRIBE for unicast
This is basically reverting changes introduced in commit f62a9a7,
because it was introducing various regressions:

- It introduces a leak of udpsrc elements that got wrongly fixed by adding
  an hash table in commit cba045e. We should have at most 4 udpsrc for unicast:
  ipv4/ipv6, rtp/rtcp. They can be reused for all unicast clients.
- If a mcast client connects, it creates a new socket in SETUP to try to respect
  the destination/port given by the client in the transport, and overrides the
  socket already set on the udpsink element. That means that if we already had a
  client connected, the source address on the udp packets it receives suddenly
  changes.
- If a 2nd mcast client connects, the destination/port in its transport is
  ignored but its transport wasn't updated.

What this patch does:

- Revert back to create udpsrc/udpsink for unicast clients on DESCRIBE.
- Always have a tee+queue when udp is enabled. This could be optimized
  again in a later patch, but is more complicated. If no unicast clients
  connects then those elements are useless, this could be also optimized
  in a later patch.
- When mcast transport is added, it creates a new set of udpsrc/udpsink,
  seperated from those for unicast clients. Since we already support only
  one mcast address, we also create only one set of elements.

https://bugzilla.gnome.org/show_bug.cgi?id=766612
2016-09-05 13:36:17 +03:00
Xavier Claessens
aa0e60445d stream: factor our plug_src function
https://bugzilla.gnome.org/show_bug.cgi?id=766612
2016-09-05 13:26:08 +03:00
Xavier Claessens
47a3956b48 stream: factor out plug_sink function
https://bugzilla.gnome.org/show_bug.cgi?id=766612
2016-09-05 13:26:02 +03:00
Xavier Claessens
a44f198ffc stream: small documentation clarification
https://bugzilla.gnome.org/show_bug.cgi?id=766612
2016-09-05 13:25:57 +03:00