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
Wim Taymans
fa1d3354c0
client: also watch newly created session
...
When we newly created a session, start watching it immediately instead of
on the next request.
2013-06-20 12:20:21 +02:00
Wim Taymans
949f11c643
client: emit new-session when new session is created
...
Only emit new-session when we created a new session for a client, not when a
client picked up a previous session.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701587
2013-06-20 12:16:07 +02:00
Alexander Schrab
a5490e323b
client: handle asterisk as path in requests
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701266
2013-06-20 11:17:29 +02:00
Wim Taymans
23ec78faea
media: handle segment query format mismatch
...
It's possible that the segment query returns with a different format than what
we asked for, handle this case also.
2013-06-20 11:14:31 +02:00
David Svensson Fors
52eb796bec
media: use segment stop in collect_media_stats
...
Use segment stop instead of duration as range end point.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701185
2013-06-20 10:17:32 +02:00
Ognyan Tonchev
d9e245e62e
rtsp-media: Do not leak the element in take_pipeline
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702470
2013-06-17 17:18:40 +02:00
Ognyan Tonchev
7e9df0e112
rtsp-client: Make configure_client_transport virtual
...
This patch makes configure_client_transport virtual. The functionality is
needed to handle some weird clients sending multicast transport settings as url
options.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702173
2013-06-17 16:18:37 +02:00
Ognyan Tonchev
b5f8ff8232
rtsp-client: Make param_set and param_get virtual
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702072
2013-06-17 16:11:40 +02:00
David Svensson Fors
6151072a2e
media: convert_range replaces get_range_times
...
get_range_times worked for handling UTC ranges for seeks, but we also
need to convert back from NPT to the requested unit in
get_range_string. convert_range is now used for both.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702084
2013-06-14 16:11:34 +02:00
Wim Taymans
3dbe0e17d4
sdp: cleanup sdp info
...
We don't need to pass the proto, we can more easily check a boolean.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702063
2013-06-14 16:06:46 +02:00
Alexander Schrab
f9f994e33d
use 0.0.0.0 or :: for c= line instead of server address
2013-06-14 15:58:52 +02:00
Alexander Schrab
275e2d52a4
use local address, not remote, in SDP
...
See https://bugzilla.gnome.org/show_bug.cgi?id=702063
2013-06-14 15:52:14 +02:00
David Svensson Fors
7efa871c1f
media: possibility to override range time conversion
...
Make it possible to override the conversion from GstRTSPTimeRange to
GstClockTimes, that is done before seeking on the media
pipeline. Overriding can be useful for UTC ranges, where the default
conversion gives nanoseconds since 1900.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701191
2013-06-03 14:29:05 +02:00
Ognyan Tonchev
c5b3066c33
rtsp-server: Expose the use_client_settings API
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=699935
2013-06-03 12:04: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
Wim Taymans
17b07d1c0e
Revert "rtsp-sdp: Parse width/height from caps and set SDP attribute"
...
This reverts commit 5fd034ff1a
.
We already have a way to place extra attributes in the SDP by using a string
property with prefix x- or a- in the caps.
2013-05-31 15:43:11 +02:00
Wim Taymans
2a0aaa1019
Revert "rtsp-sdp: Parse framerate caps field and set SDP attribute"
...
This reverts commit d6a4dee036
.
We already have a way to place extra attributes in the SDP, just make a string
property in the payloader with a- or x- prefix.
2013-05-31 15:43:11 +02:00
Wim Taymans
cfdf2e6db5
rtsp: place a- and x- properties as attributes
...
application/x-rtp has properties with a- and x- prefixes that should be
placed as attributes in the SDP for the media instead of being added to the
fmtp.
2013-05-31 15:43:10 +02:00
Wim Taymans
0a285290cb
server: add support for TLS
...
Add methods to set and get a TLS certificate.
Add vmethod to configure a new connection. By default, configure the TLS
certificate in a new connection if needed.
2013-05-31 11:42:36 +02:00
Wim Taymans
531ffca018
server: remove accept_client vmethod
...
This vmethod is not very useful so remove it.
2013-05-31 11:14:17 +02:00
Wim Taymans
0091339254
server: don't crash on NULL GError
2013-05-30 17:23:51 +02:00
Patricia Muscalu
aa50aac669
rtsp-session-pool: corrected session timeout detection
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701253
2013-05-30 13:13:05 +02:00
Wim Taymans
7526178a09
client: improve debug
2013-05-30 10:52:46 +02:00
Wim Taymans
d638b03ff9
server: refactor connection setup
...
Let the server accept the socket connection and construct a GstRTSPConnection
from it. Remove the code from the client and let the client only deal with
a fully configure GstRTSPConnection object.
We will need this later when the server will configure the connection for
TLS.
2013-05-30 07:18:22 +02:00
Wim Taymans
7b880231b1
stream: keep the transport object alive
...
Keep the transport object alive while we have it as qdata on the
source.
2013-05-30 06:49:20 +02:00
Alexander Schrab
c75e1c6b47
rtsp-server: Do not crash on nmapping of server
...
* generate error when gst_rtsp_connection_accept fails
* do not stop accepting incoming connections because
accepting a client fails
https://bugzilla.gnome.org/show_bug.cgi?id=701072
2013-05-27 13:20:36 +02:00
Alexander Schrab
e047c9fec1
rtsp-client: ipv4 adress should not be marked ipv6 even if socket is ipv6
...
https://bugzilla.gnome.org/show_bug.cgi?id=700953
2013-05-27 11:15:50 +02:00
Sebastian Rasmussen
d6a4dee036
rtsp-sdp: Parse framerate caps field and set SDP attribute
...
The SDP attribute and its format is described in RFC4566.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700747
2013-05-23 21:02:58 +02:00
Sebastian Rasmussen
5fd034ff1a
rtsp-sdp: Parse width/height from caps and set SDP attribute
...
The SDP attribute and its format is described in RFC6064.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700747
2013-05-23 21:02:50 +02:00
Patricia Muscalu
0951aa37e1
rtsp-sdp: add bandwidth line
...
https://bugzilla.gnome.org/show_bug.cgi?id=699220
2013-05-15 12:36:32 +02:00
Wim Taymans
573b10bc83
media: release lock when removing fakesink
2013-04-23 10:28:35 +02:00
Wim Taymans
0ddd98bfa6
stream: set elements to NULL before removing
...
When removing a stream, set the elements to NULL first. This avoids
element-is-not-in-NULL-state errors when we dispose the elements.
2013-04-23 10:28:34 +02:00
Wim Taymans
b80b8824be
media: listen to pad-removed signals
...
Listen to the pad-removed signal and remove the stream associated with the
removed pad.
Add signal to be notified of the removed pad.
Remove the fakesink in unprepare()
Fix signatures of the signal methods
2013-04-22 17:34:37 +02:00
Ognyan Tonchev
00291e5285
stream: add method to get the srcpad
2013-04-22 17:32:31 +02:00
Ognyan Tonchev
a26b06cc69
media: disconnect from signal handlers in unprepare()
...
We connected to the pad-added and no-more-pads signals in prepare() so
we need to disconnect from them in unprepare().
See https://bugzilla.gnome.org/show_bug.cgi?id=698376
2013-04-22 16:40:48 +02:00
Ognyan Tonchev
9b31fcc7f8
media: don't free streams array
...
Don't free the streams array in the unprepare() method, they were not
added in prepare().
See https://bugzilla.gnome.org/show_bug.cgi?id=698376
2013-04-22 16:25:17 +02:00
Ognyan Tonchev
0bdff0161c
media: don't unref the pipeline in unprepare
...
Unprepare() should undo what prepare() does. Because the pipeline is
not created in prepare(), we should not unref it in unprepare()
2013-04-22 16:19:35 +02:00
Ognyan Tonchev
6081f91351
stream: clear session and caps for reuse
...
Set the session and caps to NULL after unref otherwise we might unref
them again later.
See https://bugzilla.gnome.org/show_bug.cgi?id=698376
2013-04-22 16:09:22 +02:00
David Svensson Fors
bba7c4042d
client: send out teardown signal before tearing down
...
The advantage is that in the signal handler you get direct access to
information about what streams are about to get torn down (in the
GstRTSPClientState).
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697686
2013-04-15 12:21:54 +02:00
David Svensson Fors
825d6f0b51
client: expose connection
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697546
2013-04-15 12:17:34 +02:00
Wim Taymans
a64cb68164
media: add method to get the base_time of the pipeline
...
Together with a shared clock, this base-time could eventually be sent to
the client so that it can reconstruct the exact running-time of the clock
on the server.
2013-04-12 11:34:38 +01:00
Wim Taymans
36ff679558
media: add GstNetTimeProvider support
...
Add a property to let the media provide a GstNetTimeProvider for its clock.
Make methods to get the clock and nettimeprovider
Add a x-gst-clock property to the SDP with the IP and port number of the nettime
provider and also the current time of the clock. This should make it possible
for (GStreamer) clients to slave their clock to the server clock.
2013-04-09 22:38:44 +02:00
Wim Taymans
95bf53513f
media: wait for buffering to complete
...
Wait for buffering to complete before changing the state to the target state.
2013-04-09 20:39:58 +02:00
Wim Taymans
ec0718d7c9
media: small cleanup
2013-04-09 20:11:35 +02:00
Olivier Crête
91210f40f2
rtsp-media-factory: g_signal_connect_object is not thread safe, can't use it here
...
Instead use a GWeakRef which is safe to use
This is a known GLib bug, see:
https://bugzilla.gnome.org/show_bug.cgi?id=667145
2013-03-22 18:59:50 -04:00
Olivier Crête
c18eafbb24
rtsp-media/client: Reply to PLAY request with same type of Range
...
Remember the type of Range from the PLAY request and use the same type for
the reply.
2013-03-22 15:53:06 +01:00
Patricia Muscalu
8a08fddb41
rtsp-client: expose uri
2013-03-18 23:44:38 +00:00
Olivier Crête
5a39e25949
stream: Select unicast address from pool if appropriate
2013-03-11 11:07:20 +01:00
Olivier Crête
a797cbde06
stream: Properties are always there in Gst 1.0
2013-03-11 11:07:20 +01:00
Olivier Crête
27a057962c
address-pool: Verify that multicast addresses are used for multicast and vice-versa
2013-03-11 11:07:20 +01:00
Olivier Crête
d06e68abd1
address-pool: Add unicast addresses
2013-03-11 11:07:20 +01:00
Olivier Crête
4c61c6d308
rtsp-server: Limit the number of threads per server instance
...
If we exceed the maximum, just round robin the clients over the existing
threads.
2013-03-11 11:07:20 +01:00
Olivier Crête
4071e1b999
rtsp-server: No need to store the GMainContext in the client context
2013-03-11 11:07:20 +01:00
Olivier Crête
b9d111372e
Document locking and its order
2013-03-11 11:07:19 +01:00
Olivier Crête
f0ab7ce1bf
docs: Generate docs for GstRTSPAddressPool
2013-03-11 11:07:19 +01:00
Olivier Crête
773c48e22f
client: Check client provided addresses against the address pool
2013-03-11 11:07:19 +01:00
Olivier Crête
cda75709bb
address-pool: Add API to request a specific address from the pool
...
Also add relevant unit tests.
2013-03-11 11:07:19 +01:00
Olivier Crête
456f4367e3
address-pool: Fix off by one error
...
When splitting a port range, the port after a skip is not part of range.
2013-03-11 11:07:19 +01:00
Wim Taymans
6db0dbc76c
client: make sure the watch exists while sending data
...
Protect the send_func with a lock. This allows us to wait for sending
to complete before changing the send_func and user_data. We add an
extra ref to the watch to make sure that it remains valid during
sending.
When closing the connection, set the send_func to NULL
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692433
2013-01-28 11:11:46 +01:00
Wim Taymans
4100b20b0a
rtsp-client: set the client backlog
...
Set the client backlog to a reasonable default
2012-12-14 11:58:29 +01:00
Ognyan Tonchev
0844e8afbc
rtsp-media: Make the element a constructor parameter
...
https://bugzilla.gnome.org/show_bug.cgi?id=689594
2012-12-10 10:25:57 +01:00
Wim Taymans
6beabf1ed4
media: match prepare with unprepare
...
Really unprepare when there were an equal amount of prepare calls.
2012-11-30 15:03:15 +01:00
Wim Taymans
ca26588c7e
media: media has to be unprepared in finalize
...
Because unprepare takes away the last ref on the media.
2012-11-30 14:58:46 +01:00
Wim Taymans
38addd7822
Revert "client: never call gst_rtsp_media_unprepare, let gst_rtsp_media_finalize do it"
...
This reverts commit ba5b78ff2f
.
We can't use the refcount to trigger unprepare because it is the unprepare call
that removes the last refcount after all messages are consumed. What we should
probably do is make a prepared refcount and only unprepare when the refcount
reaches 0.
2012-11-30 14:36:30 +01:00
Wim Taymans
119674a828
media: let the source unref the last media ref
...
the last ref to the media is held by the source so we don't need to add more ref
and unrefs, we simply destroy the media when the source is gone.
2012-11-30 13:35:05 +01:00
Wim Taymans
339ea9b085
media: improve debug
2012-11-30 12:54:10 +01:00
Wim Taymans
241baba20a
media: check state
...
Make sure we are in the right state when collecting the position and duration.
Only make ourselves PREPARED when we were previously PREPARING.
2012-11-30 12:53:02 +01:00
Wim Taymans
edf2ef4f0b
media: use g_object_ref/unref for GObjects
2012-11-30 10:05:48 +01:00
Alessandro Decina
ba5b78ff2f
client: never call gst_rtsp_media_unprepare, let gst_rtsp_media_finalize do it
...
Calling gst_rtsp_media_unprepare breaks shared medias. Just unref
GstRTSPMedia instances and let gst_rtsp_media_finalize unprepare when a media
isn't being used anymore.
2012-11-30 07:06:17 +01:00
Alessandro Decina
00d9a94e1a
Fix compiler warning
2012-11-30 06:17:46 +01:00
Alessandro Decina
e2a7690cb3
Add missing g_type_class_add_private in GstRTSPMediaFactoryURI
2012-11-30 06:14:49 +01:00
Wim Taymans
1abc9be682
small cleanup
2012-11-29 17:21:12 +01:00
Wim Taymans
28fd887547
media: avoid element leak
2012-11-29 17:20:56 +01:00
Wim Taymans
4eb010824e
media: require an element in media constructor
2012-11-29 17:20:26 +01:00
Wim Taymans
865c9a6b30
Revert "client: TEARDOWN brings that state to Init again"
...
This reverts commit 4b61fdad85
.
The object is already disposed, there is no point in setting the state.
2012-11-29 17:07:30 +01:00
Wim Taymans
4b61fdad85
client: TEARDOWN brings that state to Init again
2012-11-29 12:30:20 +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
e11287eb7c
media: check if prepared for some methods
...
Check that the media object is prepared before doing seek and getting the
current position etc.
Add some g_return checks.
2012-11-28 14:45:30 +01:00
Wim Taymans
d3d74ab77b
stream: improve debug
2012-11-28 12:40:18 +01:00
Wim Taymans
fe71114a7d
media: unref pipeline in finalize to avoid leaking it
2012-11-28 12:39:37 +01:00
Wim Taymans
d43a31055e
rtsp: use gst_object_unref on GstObjects
2012-11-28 12:10:47 +01:00
Wim Taymans
6b36241816
media-factory: require an url
2012-11-28 12:10:14 +01:00
Wim Taymans
20f09bf3e7
server: remove unused include
2012-11-28 11:17:27 +01:00
Wim Taymans
e5ba372808
client: fix factory leak
...
Keep the factory in the state object only for authorization checks and make
sure we unref it on failure. Also don't keep invalid objects in the state
object.
2012-11-28 11:05:08 +01:00
Wim Taymans
b4c168c71d
mounts: add g_return_if guards
2012-11-28 10:40:14 +01:00
Wim Taymans
b3fe3357ab
client: improve debug
2012-11-27 12:33:02 +01:00
Wim Taymans
d5389c940d
client: improve debug and fix leaks
...
Cleanup the uri and session when there is a bad request.
2012-11-27 12:24:21 +01:00
Wim Taymans
a26e9b621e
client: use 454 when session can't be found
...
We should use 454 when a session can't be found because there was no session
pool configured in the server. This is not a server configuration problem
because the server on which the request is done might not be the same one that
will keep the sessions for us and so it does not need to support sessions.
2012-11-27 12:11:41 +01:00
Wim Taymans
4782d08bdc
client: only free connection when there is one
...
It's possible that the client doesn't have a connection when we try to free it.
2012-11-27 11:17:45 +01:00
Wim Taymans
18bb9ffa6b
client: small cleanup
2012-11-26 17:35:51 +01:00
Wim Taymans
fc0f176a17
client: remove unused include
2012-11-26 17:34:35 +01:00
Wim Taymans
9f8e8bc02d
client: fix compilation
2012-11-26 17:34:24 +01:00
Wim Taymans
eb88fa9e76
client: call destroy without the lock
2012-11-26 17:28:29 +01:00
Wim Taymans
33da3af265
client: make the client usable without a socket
...
Make a method to let the client handle a message and a callback when the client
wants us to send a response message back. This makes it possible to also use the
client object without the sockets, which should make it easier to test.
2012-11-26 17:20:39 +01:00
Wim Taymans
26a4b98ab0
client: small cleanup
2012-11-26 16:45:04 +01:00
Wim Taymans
8da4171055
client: remove reference to server
...
We don't need to keep a ref to the server
2012-11-26 16:39:26 +01:00
Wim Taymans
4fa7502fd9
client: add locking
...
Also add some g_return_if()
2012-11-26 16:31:43 +01:00
Wim Taymans
b21b46ec4d
client: log more errors
2012-11-26 13:37:20 +01:00
Wim Taymans
f460e7360e
client: fix compilation
2012-11-26 13:36:19 +01:00