Wim Taymans
0d22b798ae
client: parse the mikey response from the client
...
Parse the mikey response from the client and update the policy for
each SSRC.
2014-04-03 17:42:25 +02: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
f8a6a5668d
client: cleanup error paths
2014-04-03 12:57:13 +02:00
Wim Taymans
07ae06a595
media: fix docs
2014-04-02 12:27:24 +02:00
Wim Taymans
3d6175c745
stream: add SRTP support
...
Install srtp encoder and decoder elements in rtpbin
Add MIKEY in SDP
2014-03-25 10:31:21 +01:00
Sebastian Rasmussen
b1b5301577
gobject-introspection: Add annotations to support language bindings
...
In addition a few cosmetic changes:
* Adjust the order of arguments
* Fix typo: occured -> occurred
* Fix indentation after Return:-clauses
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726941
2014-03-24 00:36:42 +00:00
Sebastian Rasmussen
0b617dd5bd
rtsp-stream: Don't mix IPv4 and IPv6 addresses
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726362
2014-03-15 15:44:25 +01:00
Wim Taymans
2c7ffe97ca
stream: take caps after the session manager
...
Take the caps for the SDP after they leave the rtpbin so that we can
also get the properties added by rtpbin elements.
2014-03-13 14:27:15 +01:00
Wim Taymans
50ca10e751
stream: release lock while pushing out packets
...
Keep a cache of the transports and use this to iterate the transport
while pushing packets. This allows us to release the lock early.
See https://bugzilla.gnome.org/show_bug.cgi?id=725898
2014-03-13 14:20:17 +01:00
David Svensson Fors
faf0b31cbb
rtsp-client: vmethod for modifying tunnel GET response
...
Add a vmethod tunnel_http_response where the response to the HTTP GET
for tunneled connections can be modified.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725879
2014-03-11 11:17:04 +01:00
Wim Taymans
dffdbbf090
sdp: make 1 media line per profile
...
If we have multiple profiles (AVP or AVPF) for a stream, make one m=
line in the SDP for each profile. The client is then supposed to pick
one of the profiles in the SETUP request. Because the m= lines have the
same pt, the client also knows that only 1 option is possible.
2014-03-03 16:59:09 +01:00
Wim Taymans
4b74afcc78
factory: add profile property and pass to media and streams
2014-03-03 16:55:48 +01:00
Wim Taymans
2bd90b539c
sdp: pass multicast connection for multicast-only stream
...
Pass the multicast address of the stream in the connection info in the
SDP so that clients try a multicast connection first.
Only allow multicast connections in the test-multicast example. Also
increase the TTL a little.
2014-03-03 15:12:55 +01:00
Wim Taymans
48b6b8e3e6
stream: release some locks in error cases
2014-03-03 12:17:48 +01:00
Sebastian Rasmussen
81a2928c89
docs: Enable and fix gtk-doc warnings
...
* Makefile: Enable gtk-doc warnings, like the rest of GStreamer
* addresspool/mediafactory: Add missing annotation colon
* stream: Annotate return value
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725528
2014-03-03 09:43:05 +01:00
Branko Subasic
7ed2a6ef98
rtsp-media: don't loose frames handling new PLAY request
...
If client supplied a range check if the range specifies the start point.
If not, then do an accurate seek to the current position. If a start
point was specified do do a key unit seek to make sure the streaming
starts with decodeable frames.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=724611
2014-02-18 16:59:41 +01:00
Wim Taymans
73551543b8
Revert "media: only flush when setting a new start position"
...
This reverts commit f67fc23aab
.
We need to do the flush in all cases, demuxer block currently for
non-flushing seeks.
2014-02-18 16:58:45 +01:00
Wim Taymans
f67fc23aab
media: only flush when setting a new start position
...
Only flush the pipeline when we change the start position with
a seek.
See https://bugzilla.gnome.org/show_bug.cgi?id=724611
2014-02-18 16:38:39 +01:00
Göran Jönsson
a7f0feff23
stream: set ttl-mc before adding the socket
...
Set ttl-mc before adding the socket. Otherwise the value ttl-mc will
never be set on socket.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=724531
2014-02-18 11:10:51 +01:00
Aleix Conchillo Flaqué
0bd687f210
media: stop thread if media is already prepared
...
in gst_rtsp_media_prepare() the thread is not used if media is already
prepared (e.g. media shared) so we want to stop the thread. otherwise, a
leak occurs.
https://bugzilla.gnome.org/show_bug.cgi?id=724182
2014-02-18 11:02:24 +01:00
Sebastian Dröge
957a4a65c6
rtsp-server: Fix lots of compiler warnings with clang
2014-02-09 10:45:28 +01:00
Sebastian Dröge
902b59f823
Revert "rtsp-server: support build against last stable release"
...
This reverts commit 099a10f61f
.
Let us require 1.2.3 now, which is going to be released in a few
minutes.
2014-02-09 10:19:50 +01:00
Wim Taymans
8bd53dcf9c
session: improve RTP-Info
...
Ignore streams that can't generate RTP-Info instead of failing.
Don't return the empty string when all streams are unconfigured but
return NULL so that we don't generate and empty RTP-Info header.
Improve docs a little.
2014-02-07 16:39:49 +01:00
Andrey Utkin
271f533098
Don't free rtpinfo GString when it is NULL
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723554
2014-02-07 16:24:08 +01:00
Wim Taymans
450b9d0a14
media: only set keyframe flag when modifying start
...
Only set the keyframe flag when we modify the start position. The
keyframe flag should probably be ignored when no change is requested but
until we can claim this is all documented properly and all demuxer
implement this, avoid setting the flag.
See also https://bugzilla.gnome.org/show_bug.cgi?id=723075
2014-02-06 09:48:05 +01:00
Ognyan Tonchev
b1845b0864
thread-pool: Unref source after mainloop has quit to avoid races in GLib
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723741
2014-02-06 09:26:39 +01:00
Wim Taymans
9048d87ff4
stream: handle NULL seqnum and rtptime arguments
2014-02-04 16:28:00 +01:00
Ognyan Tonchev
274d4b017f
thread-pool: Unref reused threads in gst_rtsp_thread_stop()
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723519
2014-02-04 14:47:49 +01:00
Wim Taymans
71c45fce5a
stream: add fallback for missing stats property
...
Use a fallback when the payloader does not have a stats property
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723554
2014-02-04 10:14:45 +01:00
Wim Taymans
036f2760bf
stream: don't leak stats structure
...
Don't leak the stats structure and deal with NULL stats.
2014-01-28 14:51:26 +01:00
Sebastian Rasmussen
7edaa6ca20
stream: Get rtpinfo properties atomically from payloader
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=722844
2014-01-27 15:19:30 +01:00
Wim Taymans
e04d9ac34d
media: refactor state change functions and signals
...
Make functions to set the target state and the pipeline state and emit
the signals from those functions.
2014-01-21 14:46:47 +01:00
Ognyan Tonchev
5eca958d5e
media: add signal to notify of pending state changes
2014-01-21 14:25:42 +01:00
Tim-Philipp Müller
099a10f61f
rtsp-server: support build against last stable release
...
Until 1.2.3 is out with the new get_type function and we
can require that.
2014-01-12 16:55:21 +00:00
Wim Taymans
d90ce618e4
stream: fix compilation
2014-01-07 15:28:05 +01:00
Wim Taymans
ae1fe21436
stream: add property to configure profiles
2014-01-07 12:39:58 +01:00
Wim Taymans
78c6648c96
client: let stream check supported transport
...
Delegate the check if a transport is allowed to the stream.
See https://bugzilla.gnome.org/show_bug.cgi?id=720696
2014-01-07 12:39:57 +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
037e21b578
session-media: calculate start-time
2013-12-26 16:29:39 +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
Wim Taymans
4ca0b23a3f
session-media: let the session-media make the RTPInfo
...
Add method to create the RTPInfo for a stream-transport.
Add method to create the RTPInfo for all stream-transports in a
session-media.
Use the session-media RTPInfo code in client. This allows us to refactor
another method to link the TCP callbacks.
2013-12-26 16:29:38 +01:00
Aleix Conchillo Flaqué
dd4c04f1b8
mount-points: sort sequence before g_sequence_lookup
...
* gst/rtsp-server/rtsp-mount-points.c (gst_rtsp_mount_points_remove_factory):
sort sequence if dirty, otherwise lookup will fail.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=720855
2013-12-26 10:36:48 +01:00
Aleix Conchillo Flaqué
3fdae13fb7
media: add setup_sdp vmethod
...
gst/rtsp-server/rtsp-media.[ch]: added setup_sdp vmethod and public
gst_rtsp_media_setup_sdp.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=720155
2013-12-19 15:10:30 +01:00
Edward Hervey
cdd72905af
rtsp-stream: Check return value of sscanf
...
streamid is only valid if sscanf matched something.
2013-12-19 14:26:34 +01:00
Edward Hervey
d3237dc9dc
rtsp-client: Fix iteration
...
Wouldn't even enter the code block otherwise (i++ was used as the check
and not the postfix).
2013-12-19 14:24:54 +01:00
Wim Taymans
7a947e8dfe
client: add vmethod to configure media and streams
...
Implement a vmethod that can be used to configure the media and the
streams based on the current context. Handle the blocksize handling in
the default handler.
See https://bugzilla.gnome.org/show_bug.cgi?id=720667
2013-12-18 15:57:03 +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
Aleix Conchillo Flaqué
ab3651d339
media: add new create_rtpbin vmethod
...
* gst/rtsp-server/rtsp-media.[ch]: add new create_rtpbin vmethod.
https://bugzilla.gnome.org/show_bug.cgi?id=719734
2013-12-09 17:14:26 +01:00
Wim Taymans
9473fa0d2c
stream-transport: free url in finalize
2013-11-29 15:50:52 +01:00
Ognyan Tonchev
3b4894c4f1
media: also do state change in suspended state
2013-11-29 15:50:23 +01:00
Wim Taymans
53859ac34b
media: also handle prepare and range in suspended state
...
When we are suspended, we are already prepared.
We can get the range in the suspended state.
2013-11-29 10:53:08 +01:00
Wim Taymans
421499c102
client: store setup uri and use in PLAY response
...
Store the uri used when doing the setup and use that in the PLAY
response.
fixes https://bugzilla.gnome.org/show_bug.cgi?id=715168
2013-11-28 17:47:18 +01:00
Wim Taymans
568477d9b5
stream-transport: add method to get/set url
2013-11-28 17:35:45 +01:00
Wim Taymans
b1e8172ef3
client: suspend after SDP and unsuspend before PLAYING
...
Based on patches by Ognyan Tonchev <ognyan@axis.com>
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711257
2013-11-28 16:18:40 +01:00
Wim Taymans
2f17369e9d
media: add suspend modes
...
Add support for different suspend modes. The stream is suspended right after
producing the SDP and after PAUSE. Different suspend modes are available that
affect the state of the pipeline. NONE leaves the pipeline state unchanged and
is the current and old behaviour, PAUSE will set the pipeline to the PAUSED
state and RESET will bring the pipeline to the NULL state.
A stream is also unsuspended when it goes back to PLAYING, for RESET streams,
this means that the pipeline needs to be prerolled again.
Base on patches by Ognyan Tonchev <ognyan@axis.com>
See https://bugzilla.gnome.org/show_bug.cgi?id=711257
2013-11-28 16:18:39 +01:00
Wim Taymans
db771c5167
media: start live streams in blocked state
...
Start live streams in the blocked state and make them preroll using the
messages. This ensure that no data is played by the sink until we explicitly
unblock the stream right before going to PLAYING.
See https://bugzilla.gnome.org/show_bug.cgi?id=711257
2013-11-28 16:18:39 +01:00
Wim Taymans
6ce48c51a2
media: refactor starting and waiting for preroll
...
Based on patches from Ognyan Tonchev <ognyan@axis.com>
See https://bugzilla.gnome.org/show_bug.cgi?id=711257
2013-11-28 16:18:39 +01: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
Wim Taymans
b3baa2801d
media: move default implementations to where they are used
2013-11-26 17:23:04 +01:00
Wim Taymans
b8ae2570d9
media: take the right lock in gst_rtsp_media_set_pipeline_state()
...
We need to take the state_lock when calling this method.
2013-11-26 16:25:37 +01:00
Wim Taymans
9da7b5eeb5
media: handle add-added on non-bins too
...
Handle dynamic payloaders that are not bins, as used in the unit-test.
2013-11-26 16:24:35 +01:00
Sebastian Rasmussen
1ebc2c703e
rtsp-media/-factory: Fix request pad name comments
...
These must be escaped for gtk-doc to parse the comments without warnings.
2013-11-22 11:53:04 +01:00
Aleix Conchillo Flaque
b6d4a29d75
rtsp-media: remove transports if media is in error status
...
* gst/rtsp-server/rtsp-media.c (gst_rtsp_media_set_state): if we are
trying to change to GST_STATE_NULL and media is in error status, we
remove all transports.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712776
2013-11-22 11:25:15 +01:00
Wim Taymans
7b5763179a
rtsp-media: use element metadata to find payloader
...
Use the element metadata to find the payloader instead of checking
for the base class.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712396
2013-11-22 11:19:35 +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
Sebastian Rasmussen
08160e0913
rtsp-*: Refer to NULL as a constant in comments
...
Plus one typo fix.
https://bugzilla.gnome.org/show_bug.cgi?id=714988
2013-11-22 09:13:14 +00:00
Sebastian Rasmussen
d1a2853659
rtsp-*: Fix type name typos in comments
...
* rtsp-auth: Refer to GstRTSPToken, not GstRTSPtoken
* rtsp-auth: Refer to part of constant name as text
* rtsp-auth/-permissions/-token: Refer to Permissions not Permission
* rtsp-session-media: Fix GstRTSPSessionMedia typo
* rtsp-stream: Fix typo when refering to GstBin
https://bugzilla.gnome.org/show_bug.cgi?id=714988
2013-11-22 09:13:08 +00:00
Tim-Philipp Müller
33c4bdfa01
rtsp-server: sprinkle some allow-none annotations for g-i
2013-11-18 10:47:04 +00: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
b0f609ce7f
rtsp: allow NULL func in filters
...
Passing a null function make the filters return a list of
refcounted objects.
2013-11-15 16:35:05 +01:00
Wim Taymans
b2bc84cdbf
address-pool: fix address increment
...
Use a guint instead of guint8 to increment the address. It's still not
completely correct because a guint might not be able to hold the complete
address range, but that's an enhacement for later.
Add unit test to test improved behaviour.
https://bugzilla.gnome.org/show_bug.cgi?id=708237
2013-11-12 16:54:59 +01:00
Patricia Muscalu
adc02db975
client: allow absolute path in requests
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711689
2013-11-12 12:21:50 +01:00
Patricia Muscalu
8ce453d97d
client: make make_path_from_uri a vmethod
2013-11-12 12:08:06 +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
d443f8546b
context: defing a GType for the context
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=710018
2013-11-12 11:21:55 +01:00
Sebastian Pölsterl
e756324490
Fixed several GIR warnings
2013-11-12 11:15:58 +01:00
Wim Taymans
533d237754
auth: small typos
2013-11-12 11:15:46 +01:00
Sebastian Rasmussen
e4509ed92c
token: Validate args for gst_rtsp_token_is_allowed
...
See https://bugzilla.gnome.org/show_bug.cgi?id=710520
2013-11-12 10:38:37 +01:00
Sebastian Rasmussen
c9025a58e1
token: Fix bug when creating empty token
...
We always want to have a valid GstStructure in the token.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=710520
2013-11-12 10:37:45 +01:00
Wim Taymans
c4ae13dbb5
thread-pool: avoid race in shutdown
...
If we call g_main_loop_quit before the thread has entered g_main_loop_run, we
don't actually stop the mainloop ever. Solve this race by adding an idle source
to the mainloop that calls the _quit. This way we immediately exit the mainloop
if quit was called before we started it.
2013-11-12 10:28:55 +01:00
Sebastian Rasmussen
4036f210af
permissions: Fix refcounting when adding/removing roles
...
Previously a role that was removed was unreffed twice, and when
replacing an existing role the replaced role was freed while still being
referenced. Both bugs are now fixed.
See https://bugzilla.gnome.org/show_bug.cgi?id=710202
2013-11-12 09:54:04 +01:00
Ognyan Tonchev
7b34d1e915
rtsp-server: Fix socket leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=710088
2013-11-04 20:08:06 +01:00
Sebastian Dröge
935e8f852d
rtsp-session-pool: Make sure session IDs are properly URI-escaped
...
https://bugzilla.gnome.org/show_bug.cgi?id=643812
2013-10-30 22:16:54 +01:00
Ognyan Tonchev
78e5a9148e
thread-pool: Fix thread leak when reusing threads
...
https://bugzilla.gnome.org/show_bug.cgi?id=709730
2013-10-30 19:01:48 +01:00
Patricia Muscalu
de7be1c9b2
tests: fixed racy behavior in rtspserver tests
...
https://bugzilla.gnome.org/show_bug.cgi?id=710078
2013-10-15 11:28:27 +02:00
Wim Taymans
d4b8a8249c
client: append query string in PAUSE/PLAY/TEARDOWN as well
2013-10-04 06:29:30 +02:00
Jonas Holmberg
1742399e23
client: Add query to control path
...
If the SETUP url contains a query it must be appended to the control
path so that it matches any already created stream in the media. The
query will also be appended to the session media path.
2013-10-04 06:14:32 +02:00
Wim Taymans
59b53c90c3
rtsp-media: remove old line
2013-10-04 05:48:52 +02:00
Jonas Holmberg
fcf51d3485
stream: Correct control comparison
...
https://bugzilla.gnome.org/show_bug.cgi?id=709176
2013-10-02 11:57:06 +02:00
Youness Alaoui
917bbfcc20
media: Check dynamically if the pipeline supports seeking
...
We should not depend on whether or not the pipeline state change
returned NO_PREROLL or not. A media could dynamically change its
element and switch from seekable to non seekable so it's best to test
the seekable nature of the pipeline dynamically when we try to do a seek.
2013-10-02 06:00:10 +02:00
Youness Alaoui
33dc78209c
media: Return FALSE if seeking is not supported
2013-10-02 05:57:15 +02:00
Wim Taymans
d138f79da0
rtsp-media: don't seek accurate by default
...
Accurate seeking is perhaps a little overkill in the most common situation and
causes some formats (mp3) over slow media to seek extremely slowly.
2013-10-01 17:16:11 +02:00
Jonas Holmberg
0cd24e2257
client: Reply 400 if media cannot be constructed
...
Reply 400 Bad Request instead of 503 Service Unavailable if media
cannot be constructed in SETUP.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=708821
2013-09-26 14:32:43 +02:00
Jonas Holmberg
74b8da9396
client: Send setup reply once only
...
If find_media() failed in handle_setup_request() two replies was sent.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=708819
2013-09-26 14:25:36 +02:00
Jonas Holmberg
eb03b5c172
server: Emit client-connected signal earlier
...
Emit client-connected before the client ref is given to a GSource,
otherwise client-connected can be emitted after the client object has
been freed.
2013-09-24 17:36:07 +02:00
Patrick Radizi
7b0ad7c25f
addresspool: return reason of failure
...
Let gst_rtsp_address_pool_reserve_address() return the reason why
the address could not be reserved.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=708229
2013-09-24 17:30:18 +02:00
Jonas Holmberg
e88b71aee4
client: Do not read beyond end of path string
...
If the setup was done without a control url, make sure we don't try to read the
non-existing control string and crash.
2013-09-19 15:44:26 +02:00
Wim Taymans
b41422bad7
client: Fix RTPInfo header
...
Refactor the method to make the content_base.
Use the content-base and the control url to construct the RTPInfo
url.
2013-09-17 14:39:44 +02:00
Wim Taymans
4d6c038fc7
client: map url to path only in describe
...
Only map the request url to a path in the DESCRIBE method. The SDP then
contains the base and control urls that should be used to SETUP/PAUSE/
PLAY/TEARDOWN the media.
2013-09-17 12:21:02 +02:00