Commit graph

46 commits

Author SHA1 Message Date
Patricia Muscalu
efdb795c86 rtsp-media: seek on media pipelines that are complete
Make sure that a seek is performed on pipelines that
contain at least one sink element.

Change-Id: Icf398e10add3191d104b1289de612412da326819

https://bugzilla.gnome.org/show_bug.cgi?id=788340
2017-11-15 19:56:26 +02:00
Patricia Muscalu
a7732a68e8 Dynamically reconfigure pipeline in PLAY based on transports
The initial pipeline does not contain specific transport
elements. The receiver and the sender parts are added
after PLAY.
If the media is shared, the streams are dynamically
reconfigured after each PLAY.

https://bugzilla.gnome.org/show_bug.cgi?id=788340
2017-11-15 19:56:15 +02:00
Patricia Muscalu
51d670f73b rtsp-stream: add functions to get rtp and rtcp multicast sockets
Change-Id: Iddfe6e0bd250cb0159096d5eba9e4202d22b56db

https://bugzilla.gnome.org/show_bug.cgi?id=788340
2017-11-15 17:46:00 +02:00
Tim-Philipp Müller
b344248630 Mark symbols explicitly for export with GST_EXPORT 2017-05-18 10:35:18 +01:00
Aleix Conchillo Flaqué
85c52e194b sdp: add rollover counters for all sender SSRC
We add different crypto sessions in MIKEY, one for each sender
SSRC. Currently, all of them will have the same security policy, 0.

The rollover counters are obtained from the srtpenc element using the
"stats" property.

https://bugzilla.gnome.org/show_bug.cgi?id=730539
2016-06-14 11:14:48 +02:00
Sebastian Dröge
9fab555cc5 rtsp-server: Implement clock signalling according to RFC7273
For NTP and PTP clocks we signal the actual clock that is used and signal
the direct media clock offset.

For all other clocks we at least signal that it's the local sender clock.

This allows receivers to know which clock was used to generate the media and
its RTP timestamps. Receivers can then implement network synchronization,
either absolute or at least relative by getting the sender clock rate directly
via NTP/PTP instead of estimating it from RTP timestamps and packet receive
times.

https://bugzilla.gnome.org/show_bug.cgi?id=760005
2016-04-03 11:22:31 +03:00
Sebastian Dröge
69d04f3838 rtsp-media: Add support for setting the multicast interface
https://bugzilla.gnome.org/show_bug.cgi?id=763000
2016-03-25 12:52:12 +02:00
Patricia Muscalu
f62a9a7eb9 rtsp-stream: postpone UDP socket allocation until SETUP
Postpone the allocation of the UDP sockets until we know
what transport has been chosen by the client.
Both unicast and multicast UDP sources are created in one
function.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-02-23 17:05:15 +02:00
Jan Schmidt
b6ca057c72 rtsp-stream: Add functions for using rtsp-stream from the client
Add a boolean to indicate that the rtsp-stream is running on the
'client' side of an RTSP connection, for sending streams via
RECORD. In that case, the roles of the client/server ports
in transport setup are swapped.

https://bugzilla.gnome.org/show_bug.cgi?id=758180
2016-01-29 01:44:26 +11:00
Xavier Claessens
0ea68a1b0f rtsp-server: Add g_autoptr() support to all types
https://bugzilla.gnome.org/show_bug.cgi?id=754464
2015-12-14 13:52:17 -05:00
Jan Schmidt
27736d406e rtsp-stream: Implement UDP buffer size setting.
Add gst_rtsp_stream_(get|set)_buffer_size and use it to configure the
UDP TX buffer size.

Incorporates a patch by Hyunjun Ko <zzoon.ko@samsung.com>
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=749095
2015-09-03 22:19:40 +10:00
Sebastian Dröge
8700468499 rtsp-server: Use single-include rtsp header to make sure we get all definitions 2015-05-20 17:05:47 +03:00
Hyunjun Ko
de590b4b2a rtsp-stream: fix to get valid each stream data for request-aux-sender signal
Because of duplicated g_signal_connect for request-aux-sender signal,
wrong stream pointer is passed to the signal handler.
Instead of passing each stream, pass stream array and get the relevant stream.

https://bugzilla.gnome.org/show_bug.cgi?id=747839
2015-04-15 15:14:04 +02:00
Tim-Philipp Müller
dc43f427a9 rtsp-stream: minor code formatting fix 2015-02-11 17:25:35 +00:00
Sebastian Dröge
ccf6c6eb53 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
2015-02-06 09:42:42 +01:00
Matthew Waters
4f40781fff media: implement ssrc-multiplexed retransmission support
based off RFC 4588 and the server-rtpaux example in -good
2014-12-16 16:41:08 +01:00
Srimanta Panda
376488d8c7 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
2014-09-12 17:29:30 +03:00
Sebastian Dröge
6ba5ca447f 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
2014-08-12 10:54:12 +03:00
Wim Taymans
377ca6ed0f stream: add method to set crypto info
Make a method to configure the crypto information of a stream.
Set udpsrc in READY instead of PAUSED so that we can configure caps
later.
2014-04-03 17:26:12 +02:00
Wim Taymans
ae1fe21436 stream: add property to configure profiles 2014-01-07 12:39:58 +01:00
Wim Taymans
a1202effda stream: add method to check supported transport
Add a method to check if a transport is supported
2014-01-07 12:39:57 +01:00
Wim Taymans
8aaa432d58 stream: return clock-rate from get_rtpinfo
And use it to correct the rtptime to the requested start-time.

See https://bugzilla.gnome.org/show_bug.cgi?id=712198
2013-12-26 17:14:06 +01:00
Wim Taymans
cfdc7408b5 stream: also return the running-time
Return the running-time in the rtpinfo as well.
2013-12-26 16:29:39 +01:00
Tim-Philipp Müller
91fac8eb29 rtsp-server: add padding to many public structures
Not mini objects though, since they are not subclassable
anyway, nor kept on the stack or inlined in a structure.
2013-12-12 00:36:07 +00:00
Wim Taymans
bdef631218 stream: add API to block streams
Add an API to block on the streams and make it post a message.

Based on patch by Ognyan Tonchev <ognyan@axis.com>

See https://bugzilla.gnome.org/show_bug.cgi?id=711257
2013-11-28 16:18:39 +01:00
Aleix Conchillo Flaque
e5332535a7 rtsp-stream: add getter for payload type
* gst/rtsp-server/rtsp-stream.c: add new method gst_rtsp_stream_get_pt.

* gst/rtsp-server/rtsp-media.c (pad_added_cb): find real payloader
  element and create the stream with this one instead of the dynpay%d
  element.

  https://bugzilla.gnome.org/show_bug.cgi?id=712396
2013-11-22 11:19:35 +01:00
Wim Taymans
a106950f70 stream: add method to filter transports
Add a method to safely iterate and collect the stream transports

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711664
2013-11-18 11:18:15 +01:00
Wim Taymans
8d5ce0d4ee stream: Add functions to get rtp and rtcp sockets
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=710100
2013-11-12 12:04:55 +01:00
Wim Taymans
a84b71c0f0 stream: add protocols property 2013-08-16 16:08:43 +02:00
Wim Taymans
d357fc55af docs: more updates 2013-07-11 12:24:33 +02:00
Wim Taymans
d4e8d800c9 stream: add method to check control url of stream 2013-07-03 15:13:45 +02:00
Wim Taymans
2ffb0f69d2 stream: add methods and property to set control string 2013-07-02 14:50:30 +02:00
Wim Taymans
a7fe63298c stream: add more support for IPv6
Rename _get_address to _get_multicast_address in GstRTSPStream to
make it clear that this function only deals with multicast.
Make it possible to have both an IPv4 and IPv6 multicast address on
a stream. Give the client an IPv4 or IPv6 address depending on the
address it used to connect to the server.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702002
2013-07-01 16:46:39 +02:00
Aleix Conchillo Flaque
aeaadf0e5e stream: allow access to the rtp session
https://bugzilla.gnome.org/show_bug.cgi?id=703004
2013-06-24 23:42:58 +02:00
Alexander Schrab
c3f8673174 dscp qos support in gst-rtsp-stream
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702645
2013-06-24 14:51:44 +02:00
Alexander Schrab
3e119be829 rtspstream: handle both ipv4 and ipv6 clients
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701129
2013-06-03 11:23:40 +02:00
Ognyan Tonchev
00291e5285 stream: add method to get the srcpad 2013-04-22 17:32:31 +02:00
Olivier Crête
773c48e22f client: Check client provided addresses against the address pool 2013-03-11 11:07:19 +01:00
Wim Taymans
ad00c5e792 rtsp: make object details private
Make all object details private
Add methods to access private bits
2012-11-29 11:11:05 +01:00
Wim Taymans
44a2855eb3 stream: add methods to deal with address pool
Add methods to get and set the address pool for the stream
Add method to allocate and get the multicast addresses for this stream.
2012-11-15 15:36:21 +01:00
Wim Taymans
4753588b09 stream: add locking 2012-11-13 11:14:49 +01:00
Tim-Philipp Müller
4dba434f16 Fix FSF address 2012-11-04 00:14:25 +00:00
Wim Taymans
6f7d755894 stream: improve join and leave of the pipeline
simplify code
Do the cleanup properly
Add some docs
2012-10-26 17:28:10 +02:00
Wim Taymans
348b7f9c21 docs: update docs 2012-10-26 12:35:20 +02:00
Wim Taymans
6b7ff45ca6 rtsp: fix MTU setting
Fix setting of the MTU. There is no need for a vmethod.
2012-10-26 12:35:20 +02:00
Wim Taymans
de7c72dec2 rtsp: massive refactoring
Make GObjects from the remaining simple structures.
Remove GstRTSPSessionStream, it's not needed.
Rename GstRTSPMediaStream -> GstRTSPStream: It is shorter
Rename GstRTSPMediaTrans -> GstRTSPStreamTransport: It describes how
  a GstRTSPStream should be transported to a client.
Rename GstRTSPMediaFactory::get_element -> create_element because that
  more accurately describes what it does.
Make nice methods instead of poking in the structures.
Move some methods inside the relevant object source code.
Use GPtrArray to store objects instead of plain arrays, it is more
  natural and allows us to more easily clean up.
Move the allocation of udp ports to the Stream object. The Stream object
  contains the elements needed to stream the media to a client.
Improve the prepare and unprepare methods. Unprepare should now undo
  everything prepare did. Improve also async unprepare when doing EOS on
  shutdown. Make sure we always unprepare correctly.
2012-10-25 21:29:58 +02:00