Commit graph

118 commits

Author SHA1 Message Date
Peter Kjellerstedt
4fd61fbaa4 rtsp: Made the parsing of the RTSP URL scheme more generic. 2009-06-17 18:34:57 +02:00
Peter Kjellerstedt
726a47f777 rtsp: Added gst_rtsp_watch_queue_data().
gst_rtsp_watch_queue_data() is similar to gst_rtsp_watch_queue_message()
but allows for queuing any data block for writing (much like
gst_rtsp_connection_write() vs. gst_rtsp_connection_send().)

API: gst_rtsp_watch_queue_data()
2009-06-17 18:34:33 +02:00
Peter Kjellerstedt
595f8b6d00 rtsp: Only extract the session ID from RTSP responses. 2009-06-17 18:02:18 +02:00
Peter Kjellerstedt
ddbeb44f14 rtsp: Added support for parsing IPv6 addresses in RTSP URLs. 2009-06-17 18:00:17 +02:00
Peter Kjellerstedt
95a606a0bb rtsp: Use getaddrinfo() to support both IPv4 and IPv6. 2009-06-17 17:59:47 +02:00
Peter Kjellerstedt
e1a4c8871a rtsp: Improved base64 decoding in fill_bytes().
The base64 decoding in fill_bytes() expected the size of the read data to
be evenly divisible by four (which is true for the base64 encoded data
itself). This did not, however, take whitespace (especially line breaks)
into account and would fail the decoding if any whitespace was present.
2009-06-17 17:53:54 +02:00
Wim Taymans
33837d420c rtsp: add Timestamp header field
fixes #585994
2009-06-16 18:57:20 +02:00
Peter Kjellerstedt
73dd8236ce rtsp: Use a more consistent naming of GstRTSPRec variables. 2009-06-15 09:28:34 +02:00
Peter Kjellerstedt
ff38999c8b rtsp: Call message_sent() callback for all sent messages.
Previously the messages_sent() callback was only called for messages
which had a CSeq, which excluded all data messages. Instead of using the
CSeq as ID, use a simple index counter.
2009-06-15 09:28:13 +02:00
Wim Taymans
e01fab3ace rtsp: add some more docs 2009-06-09 22:00:53 +02:00
Peter Kjellerstedt
263c5b227b rtsp: Avoid a compiler warning. 2009-06-09 18:24:55 +02:00
Peter Kjellerstedt
dfc57e3f8a rtsp: Updated documentation for GstRTSPResult.
Moved GST_RTSP_ELAST to be last in the documentation to match the actual
enum values.
2009-06-09 18:23:28 +02:00
Peter Kjellerstedt
9c40eeeb4c rtsp: Plug a memory leak.
Free memory related to any partially read and/or written RTSP messages.
2009-06-09 16:28:20 +02:00
Peter Kjellerstedt
2dbd8702dd rtsp: Fixed a typo. 2009-06-05 14:06:17 +02:00
Peter Kjellerstedt
de18ad458f rtsp: Remove an unused variable. 2009-06-05 14:05:54 +02:00
Peter Kjellerstedt
b0a9848524 rtsp: Removed duplicate initialization of conn->writefd. 2009-06-05 13:59:14 +02:00
Peter Kjellerstedt
0167e3589d rtsp: Use #defined status codes. 2009-06-05 13:55:08 +02:00
Peter Kjellerstedt
c1a6644a18 rtsp: Correct gen_tunnel_reply().
Prevent gen_tunnel_reply() from generating an incomplete response
in case an error response code is given.
2009-06-05 13:53:29 +02:00
Wim Taymans
59d9833924 rtsp: add G_LIKELY because we can 2009-06-02 12:10:39 +02:00
Peter Kjellerstedt
d8e0b5a4da rtsp: Avoid compiler warnings with -Wextra. 2009-06-01 09:59:22 +02:00
Peter Kjellerstedt
848b834cb9 rtsp: Include gst/gstconfig.h to make sure GST_PADDING is defined. 2009-06-01 09:58:27 +02:00
Tim-Philipp Müller
6292ff4ae0 Revert "rtspconnection: don't use GLib-2.16 API, we require only 2.14"
This reverts commit 418760cf74.

We now require GLib 2.16.
2009-05-26 18:21:31 +01:00
Tim-Philipp Müller
418760cf74 rtspconnection: don't use GLib-2.16 API, we require only 2.14
Fixes #579267.
2009-04-17 10:35:34 +01:00
Josep Torra
71ab187355 RTSP: add missing headers for WMS RTSP
Add missing headers related to Windows Media RTSP extension.
Fixes #578942
2009-04-14 18:31:52 +02:00
Wim Taymans
88110ea67e rtsp: use fully qualified urls when using a proxy
Use a fully qualified url when specifying the url for tunneled requests through
a proxy.
See #573173
2009-04-02 22:28:55 +02:00
Wim Taymans
eed784b372 rtsp: fix little typo in the comments 2009-04-01 09:03:35 +02:00
Tim-Philipp Müller
fc8c5cba15 rtspconnection: make gst_rtsp_watch_queue_message() thread-safe
People might queue messages from a thread other than the thread in which
the main context which this watch is attached is iterated from, so use
a GAsyncQueue instead of a GList, so g_list_append() doesn't trample
over list nodes just freed in the other thread. This just fixes issues
I've had with gst-rtsp-server. We might need more locking in various
places here.
2009-03-31 18:30:57 +01:00
Tim-Philipp Müller
dfe96ce618 rtsp: clear the entire builder structure
And use structure instead of variable with sizeof when
clearing the rtsp message structure, for clarity.
2009-03-31 18:30:48 +01:00
Tim-Philipp Müller
dd9f077177 docs: fix typo in gst_rtsp_message_unset() API docs 2009-03-31 18:30:48 +01:00
Wim Taymans
8b37dc3eb8 rtsp: add support for proxies
Add suport for proxy servers. Currently only used for tunneled HTTP
connections without authentication.
2009-03-31 19:00:00 +02:00
Wim Taymans
8be68f983c Revert "rtsp: reset whole message (was sizeof pointer instead of sizeof type)"
This reverts commit 79de0b8d67.
2009-03-31 18:57:08 +02:00
Stefan Kost
79de0b8d67 rtsp: reset whole message (was sizeof pointer instead of sizeof type) 2009-03-31 12:27:09 +03:00
Wim Taymans
0d3d3026d2 rtsp: start CSeq counting from 1 instead of 0
Start counting from 1 instead of 0 as this is what most other clients
seem to do.
2009-03-25 16:37:28 +01:00
Wim Taymans
1081ae59eb rtsp: add ETag and If-Match headers
Add new headers, we need them for RealMedia support.
2009-03-25 16:36:14 +01:00
Sebastian Dröge
108ead73c8 rtsp: Use GLib base64 functions and deprecate gst_rtsp_base64_encode
This also fixes another instance of CVE-2008-4316.
2009-03-17 22:53:44 +01:00
Wim Taymans
f4b7cbbf16 rtsp: fix resolving of hostnames
We were returning a pointer to a stack variable with the resolved hostname,
which doesn't work.
return a copy of the resolved ip address instead.
Fixes #575256.
2009-03-13 16:19:41 +01:00
Wim Taymans
0e2157029e rtsp: fix parsing of the timeout parameter
--
2009-03-11 18:45:59 +01:00
Wim Taymans
b674584e97 rtsp: fix g_return condition
when parsing a data message, we require a data message.
2009-03-11 17:29:41 +01:00
Wim Taymans
18f612ffa9 rtsp: free the right string.
Free the key value before we remove the header item from the array. The item we
retrieved from the array is only valid until we remove it from the array.
2009-03-11 14:09:54 +01:00
Wim Taymans
16225d45be rtsp: keep track of amount of decoded bytes
Keep track of the actual amount of decoded bytes, which can be less than 3 when
we decode the last bits of a base64 message.
2009-03-11 14:09:54 +01:00
Wim Taymans
f964c0fc38 rtsp: only add ports when not using TCP
Only add the port numbers in the transport string when we are using udp or
multicast.
2009-03-09 13:53:41 +01:00
Wim Taymans
bc54a5f9a0 rtsp: use gstreamer dump mem
--
2009-03-09 13:53:15 +01:00
Wim Taymans
3a72044a22 rtsp: use glib base64 encoder
--
2009-03-09 13:51:48 +01:00
LRN
eb3ff95a3a rtsp: fix compilation on windows.
Remove unused variable when building for windows.
Fixes #574443.
2009-03-08 18:17:48 +01:00
Wim Taymans
2cc1a6808d rtsp: Add methods for getting the read/write fds
API:gst_rtsp_connection_get_readfd()
API:gst_rtsp_connection_get_writefd()
2009-03-06 18:54:57 +01:00
Julien Moutte
d45b27d92d Fix build on Mac OS X 2009-03-06 10:37:38 +01:00
Wim Taymans
f69a3d953a rtsp: fix parsing of 'now-' ranges.
--
2009-03-05 13:48:37 +01:00
Wim Taymans
bcaec3d907 rtsp: do some more cleanup in _close
Do som more cleanup in gst_rtsp_connection_close() so that it's back into the
unconnected state as it was allocated.
2009-03-04 16:24:01 +01:00
Wim Taymans
629f2dcee4 rtsp: fix the memory management of the url
Constify the url parameter in _create.
Make a copy of the url stored in the connection.
Free the url when the connection is freed.
2009-03-04 16:11:20 +01:00
Wim Taymans
b6d7a1dc03 RTSP: Add support for server tunneling
Save the tunnelid in the connection. Add a method to retrieve the tunnelid so
that a server can store and match the id against other tunnel requests.

Fix the URI in the tunnel requests so that they contain the absolute uri and the
query string if any instead of just the hostname.

Transparently base64 decode the input stream when tunneling.

Add method to set the connection ip address so that it can be included in the
tunnel response.

Add method to connect the two tunnel requests.

Add two callbacks for the async mode to notify a tunnel start and tunnel
complete event.

Add method to reset the watch after the connection has been tunneled.

Various little refactoring to make more stuff reusable.

API: RTSP::gst_rtsp_connection_set_ip()
API: RTSP::gst_rtsp_connection_get_tunnelid()
API: RTSP::gst_rtsp_connection_do_tunnel()
API: RTSP::gst_rtsp_watch_reset()
2009-03-04 12:21:29 +01:00