Sebastian Dröge
c6f8220920
rtspconnection: Create a new write GSource after removing it
...
After removal, a GSource is destroyed and can never be attached
again to a main context. We need to create a new one instead.
https://bugzilla.gnome.org/show_bug.cgi?id=704198
2013-07-14 18:11:59 +02:00
Wim Taymans
32a1deb404
rtsp: make read uncancelable when reading a message
...
When we start to read a message, we need to continue reading until the end of
the message or else we lose track and cause parse errors. Use a variable
may_cancel to avoid cancelation after we read the first byte until we have
the complete message.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703088
2013-06-26 15:06:00 +02:00
Wim Taymans
bcc5ac5298
rtsp: dispatch when initial buffer has data
...
When we have data in the inital buffer, dispath the read function to read it
even if the socket has no data to read.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702652
2013-06-21 11:50:33 +02:00
Wim Taymans
ad6c16fdfc
rtsp: manage writer child source better
...
Only add the write child source when we have something to write or else
we will dispatch forever without doing anything.
2013-06-20 17:28:46 +02:00
Sebastian Dröge
567be29db2
rtspconnection: Make sure to set a sensible default port for the GSocketConnection
...
Otherwise it will connect to port 0 if no port is given in the URI.
https://bugzilla.gnome.org/show_bug.cgi?id=701798
2013-06-10 15:31:38 +02:00
Brendan Long
63961242df
rtspconnection: remove functions added in GLib 2.34
...
g_pollable_stream_read and g_pollable_stream_write were added in GLib 2.34,
but Ubuntu 12.04 and Debian Wheezy still use GLib 2.32.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=701316
2013-05-31 14:12:10 +02:00
Wim Taymans
0b933ff87b
rtsp: add method to get the TLS connection
2013-05-30 17:31:13 +02:00
Wim Taymans
c0f13c2513
rtsp: let the sockets be reffed by the connection
...
Don't add an extra ref to the sockets but use that of the connection.
Keep the connection around as an IOStream.
2013-05-30 13:14:46 +02:00
Wim Taymans
2fc85d3980
rtsp: Cleanup the error path
...
Make sure the watch is removed when we close the read socket because of
an error.
2013-05-30 10:50:42 +02:00
Wim Taymans
ad5632586a
rtsp: cleanup the watch reset function
2013-05-30 10:45:42 +02:00
Wim Taymans
07babdd68a
rtsp: check if the streams are still active
...
Don't try to read/write from an inactive stream. When we, for example,
transfer the second connection in tunneling mode, we are not interested anymore
on read/write activity on the old connection.
2013-05-30 10:30:09 +02:00
Wim Taymans
d09028b4c3
rtsp: use child sources instead of using the sockets
...
Use the source of the pollable input/output streams instead of
accessing the sockets directly.
2013-05-30 07:36:52 +02:00
Wim Taymans
4ada677095
rtsp: fix input/output streams for tunneling
2013-05-30 07:35:18 +02:00
Wim Taymans
4f660c388c
rtsp: don't use sockets for blocking
...
Use the blocking and non-blocking API of the input/output streams instead
of polling the sockets directly. This also allows us to simplify some
code.
2013-05-30 07:35:18 +02:00
Wim Taymans
909e119a23
rtsp: add TLS support
...
Add flag to select TLS in the transport.
Enable TLS on the socketclient when we use a TLS uri.
2013-05-30 07:35:14 +02:00
Wim Taymans
057bbae6c5
rtspconnection: use the input/output stream of clientconnection
...
Don't use the raw sockets for RTSP communication but use the IOStream.
This is needed if we are going to use TLS later.
2013-05-30 07:20:51 +02:00
Wim Taymans
2d41ee370c
rtsp: set sockets non-blocking
2013-05-30 07:20:51 +02:00
Wim Taymans
a42a7be5df
rtsp: use GSocketClient for making connections
...
Use the GSocketClient API for making connections with the server. This removes a
bit of code and gives us the ability to do TLS later.
2013-05-30 07:20:51 +02:00
Wim Taymans
15f3c995aa
Revert "rtspconnection: Use a GSocketAddressNumerator to resolve the addresses"
...
This reverts commit 15a0bb0a10
.
We should be using GSocketClient
2013-05-30 07:20:51 +02:00
Sebastian Dröge
15a0bb0a10
rtspconnection: Use a GSocketAddressNumerator to resolve the addresses
...
Instead of just trying the first possible resolution we're trying all
resolutions until one works.
2013-05-27 14:53:48 +02:00
Thomas Scheuermann
9a78542ded
rtsp: Don't use / as path if no path was provided
...
RTSP does not mandate that a non-zero-length path is used and
some devices (e.g. IQinVision IQeye 1080p) requires that a
zero-length path is used.
2013-04-08 09:09:33 +02:00
Wim Taymans
a4e44df6b9
rtsp: make local_ip and remote_ip variables
...
Separate local_ip and remote_ip into separate variables for clarity.
2013-04-04 12:32:24 +02:00
Wim Taymans
4826ec4e4d
rtsp: calculate the local ip address in accept
...
Calculate the local IP address in the accept call. We need to place this IP
address in the GET reply in the X-Server-IP-Address header so that the client
knows where to send the POST to in case of tunneled RTSP. Before this patch
it used the client IP address, which would make the client send the POST request
to itself and fail.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697092
2013-04-04 12:16:47 +02:00
David Svensson Fors
5ef9921bcd
rtsprange: use gst_util_gdouble_to_guint64 in get_seconds
...
https://bugzilla.gnome.org/show_bug.cgi?id=696818
2013-04-02 14:33:51 -04:00
Emanuele Aina
f05a95ea3c
build: Link libgstrtsp-1.0.so to libm for pow()
...
https://bugzilla.gnome.org/show_bug.cgi?id=695658
2013-03-11 19:30:13 -04:00
Olivier Crête
17d5dbd337
rtsprange: Add function to convert a range between formats
...
Also add unit tests.
2013-03-11 10:41:31 +01:00
Olivier Crête
0353e608f8
rtsprange: Make _to_string() be more in line with RFC 2326
...
Fix various nits to make it more in line with the RFC, also add unit tests.
2013-03-11 10:41:25 +01:00
Olivier Crête
3cfec4de73
rtsprange: Avoid going through fractions for large numbers
...
If the number of seconds exceeds 2^31, then it will be truncated if the
conversion is done using fractions, so multiply it directly.
2013-03-11 10:41:17 +01:00
Olivier Crête
203c27b42b
rtsprange: Fix conversion from UTC to GstClockTime
...
Do the difference in the right direction.
2013-03-11 10:41:09 +01:00
Olivier Crête
aef8de337c
rtspconnection: Add API to disable session ID caching in the connection
...
This is necessary to allow having more than one session in the same connection.
API: gst_rtsp_connection_set_remember_session_id()
API: gst_rtsp_connection_get_remember_session_id()
2013-03-11 10:41:00 +01:00
Tim-Philipp Müller
664adc6e19
gst-libs: use GST_*_1_0 environment variables everywhere
...
The _1_0 suffixed environment variables override the
non-suffixed ones, so if we're in an environment that
sets the _1_0 suffixed ones, such as jhbuild, we need
to set those to make sure ours actually always get
used.
2013-01-16 10:16:27 +00:00
Wim Taymans
65c5ecd270
rtspconnection: add limit to queued messages
...
Add a limit to the amount of queued bytes or messages we allow on the watch.
API: GstRTSPConnection::gst_rtsp_watch_set_send_backlog()
API: GstRTSPConnection::gst_rtsp_watch_get_send_backlog()
2012-12-14 11:36:58 +01:00
Sebastian Dröge
3f82e919dd
libs: Use foo/foo.h as single-include header consistently everywhere
...
https://bugzilla.gnome.org/show_bug.cgi?id=688785
2012-12-12 17:13:10 +00:00
Sebastian Rasmussen
d4b6f3c1a0
rtspmessage: Add several missing g-i annotations
...
https://bugzilla.gnome.org/show_bug.cgi?id=689873
2012-12-10 10:58:12 +01:00
Wim Taymans
b511f938d4
rtsp: add method to parse options list
2012-11-27 11:15:34 +01:00
Wim Taymans
ce904ec551
rtsprange: add string conversion for new formats
2012-11-21 16:25:24 +01:00
Wim Taymans
fdf904db32
rtsprange: add method to convert ranges to GstClockTime
...
Add a method to convert the values of GstRTSPRange to GstClockTime.
Add unit tests for the conversions.
API: gst_rtsp_range_get_times()
2012-11-21 15:35:46 +01:00
Wim Taymans
f1669d7d9c
range: don't overwrite unit field
2012-11-21 15:29:05 +01:00
Wim Taymans
0bf50cd3d8
range: add g_return_if check
2012-11-21 15:29:05 +01:00
Evan Nemerson
4d77fba46c
libs: Add missing single include headers and use them in GIRs
2012-11-21 11:01:24 +01:00
Wim Taymans
a87cd40f49
rtsprange: improve docs
2012-11-21 10:25:51 +01:00
Wim Taymans
b785c66098
rtsp: avoid ABI break
...
Move new fields into structures appended at the end of the GstRTSPRange
to avoid ABI break.
2012-11-20 11:13:01 +01:00
Wim Taymans
41d36b2584
rtsp: fix format string
2012-11-19 17:08:38 +01:00
Wim Taymans
fe4b415f98
rtsp: parse UTC ranges
2012-11-19 16:59:48 +01:00
Wim Taymans
b113f9697a
rtsp: parse SMPTE ranges
2012-11-19 16:15:46 +01:00
Wim Taymans
02a5940a45
range: handle parse errors better
2012-11-19 16:13:56 +01:00
Wim Taymans
84b1ee4987
rtsp: detect npt time parse errors
2012-11-19 16:04:01 +01:00
Wim Taymans
25580430b0
range: a single - is not allowed
2012-11-19 13:56:53 +01:00
Wim Taymans
db7ea32f35
range: handle ranges starting with -
...
An RTSP range that starts with a - means that the first value of the range is
the end of the stream.
2012-11-19 13:56:53 +01:00
Wim Taymans
6313e5f1af
rtspconnection: improve docs
2012-11-12 14:18:00 +01:00