Commit graph

257 commits

Author SHA1 Message Date
Tim-Philipp Müller
92465ba8ac rtspconnection: we can use GLib 2.18 API unconditionally now 2009-10-07 10:32:17 +01:00
Wim Taymans
730eead9a9 rtsp: use CLOSE_SOCKET() instead of close()
Use CLOSE_SOCKET instead of directly calling close() because it does the right
thing for windows.

Fixes #597539
2009-10-06 22:37:00 +02:00
Sebastian Dröge
df9b8b57b3 introspection: Build pkgconfig before all libraries and set PKG_CONFIG_PATH
This way g-ir-scanner can find the gstreamer-*-0.10 pkg-config files.
2009-09-13 11:19:50 +02:00
Wim Taymans
8d2f20d1cb rtsp: properly fix the HTTP manual mode
When we're not parsing HTTP, return EPARSE when we get an HTTP
message.
2009-09-11 12:20:10 +02:00
Wim Taymans
ca3b91b2d0 rtsp: don't return EPARSE
Don't blindly return EPARSE when http mode is disabled.
Restore old http mode after temporarily setting it to TRUE.
2009-09-10 14:04:53 +02:00
Sebastian Dröge
40aba9e0dc introduction: Fix out-of-tree build 2009-09-05 13:46:58 +02:00
Sebastian Dröge
ab17f5d3fa rtsp: Fix introspection build by ordering sources/headers in dependency order 2009-09-05 13:13:23 +02:00
Sebastian Dröge
7e90e0846c introspection: Strip Gst prefix from all types/functions 2009-09-05 12:31:47 +02:00
Sebastian Dröge
7794caf9f8 introspection: Fix build if gir-repository is not installed 2009-09-05 11:49:41 +02:00
Sebastian Dröge
e13a186b56 rtsp: Add gobject-introspection support 2009-09-05 11:28:59 +02:00
Peter Kjellerstedt
8ce3612b71 rtsp: Mark Transport as supporting multiple values. 2009-08-24 14:39:16 +02:00
Peter Kjellerstedt
2882c22d95 rtsp: Added missing Since tags. 2009-08-24 13:58:50 +02:00
Peter Kjellerstedt
066f9be5c9 rtsp: Added new API for sending using GstRTSPWatch.
The new API to send messages using GstRTSPWatch will first try to send the
message immediately. Then, if that failed (or the message was not sent
fully), it will queue the remaining message for later delivery. This avoids
unnecessary context switches, and makes it possible to keep track of
whether the connection is blocked (the unblocking of the connection is
indicated by the reception of the message_sent signal).

This also deprecates the old API (gst_rtsp_watch_queue_data() and
gst_rtsp_watch_queue_message().)

API: gst_rtsp_watch_write_data()
API: gst_rtsp_watch_send_message()
2009-08-24 13:19:46 +02:00
Peter Kjellerstedt
0af04aa4a8 rtsp: Made gst_rtsp_watch_queue_data() thread safe. 2009-08-24 13:19:46 +02:00
Peter Kjellerstedt
fb3b761af5 rtsp: Added gst_rtsp_connection_set_http_mode().
With gst_rtsp_connection_set_http_mode() it is possible to tell the
connection whether to allow HTTP messages to be supported. By enabling HTTP
support the automatic HTTP tunnel support will also be disabled.

API: gst_rtsp_connection_set_http_mode()
2009-08-24 13:19:46 +02:00
Peter Kjellerstedt
d5b4b5d8af rtsp: Allow gst_rtsp_connection_do_tunnel() to just setup decoding context.
If the second connection passed to gst_rtsp_connection_do_tunnel() is NULL
then just setup the base64 decoding context for the first connection.
2009-08-24 13:19:46 +02:00
Peter Kjellerstedt
01d98fdb5d rtsp: Write as much as possible in gst_rtsp_source_dispatch().
Try to write as much as possible if there are multiple messages queued.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
e5ec74c7a9 rtsp: Add error_full callback to GstRTSPWatchFuncs.
The error_full callback is similar to the error callback, but allows for
better error handling. For read errors a partial message is provided to
help an RTSP server generate a more correct error response, and for write
errors the write queue id of the failed message is returned.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
ab8bea4555 rtsp: Made read_line() support LWS.
Rewrote read_line() to support LWS (Line White Space), the method used by
RTSP (and HTTP) to break long lines. Also added support for \r and \n as
line endings (in addition to the official \r\n).
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
607209f121 rtsp: Do not split headers which should not be split.
From RFC 2068 section 4.2: "Multiple message-header fields with the same
field-name may be present in a message if and only if the entire
field-value for that header field is defined as a comma-separated list
[i.e., #(values)]." This means that we should not split other headers which
may contain a comma, e.g., Range and Date.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
08d3fe8561 rtsp: Parse WWW-Authenticate headers correctly.
Due to the odd syntax for WWW-Authenticate (and Proxy-Authenticate) which
allows commas both to separate between multiple challenges, and within the
challenges themself, we need to take some extra care to split these headers
correctly.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
efc8901a39 rtsp: Improve parse_line().
Make parse_line() handle keys with multiple values on one line correctly.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
db66ff4a62 rtsp: Rewrote setup_tunneling().
Rewrote setup_tunneling() to use normal GstRTSPMessages instead of hard
coded strings and duplicates of the message parsing code.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
c18e2eec88 rtsp: Rewrote gen_tunnel_reply().
Rewrote gen_tunnel_reply() to generate a normal GstRTSPMessage rather
than a hard coded string.
2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
e1b3393d6b rtsp: Ignore the Content-Length for POST requests.
The Content-Length for POST requests with an x-sessioncookie header should
be ignored as the length is bogus and only there to fool proxies.
2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
11c8b811f3 rtsp: Normalize lines (remove extra whitespace) before parsing. 2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
5716cd102a rtsp: Made parse_string() return a result.
This will catch parsing errors when a too long string is received.
2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
fdd5a65632 rtsp: Improved parsing of messages.
Do not abort message parsing as soon as there is an error. Instead parse
as much as possible to allow a server to return as meaningful an error as
possible.
2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
ca154010fe rtsp: Added support for HTTP messages 2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
dd7d0cfc45 rtsp: Added gst_rtsp_connection_create_from_fd().
API: gst_rtsp_connection_create_from_fd()
2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
814eaa728a rtsp: Add initial buffer support.
The initial buffer contains data for a connection which should be used
before starting to actually read anything from the socket.
2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
41f1d9a7d9 rtsp: Add support for the Authentication-Info header.
The Authentication-Info header is defined in RFC 2617 (Digest Access
Authentication).
2009-08-24 11:24:27 +02:00
Peter Kjellerstedt
3c4fa9274f rtsp: Avoid duplicated headers.
Remove any existing Session and Date headers before adding new ones
when sending a request. This may happen if the user of this code reuses
a request (rtspsrc does this when resending after authorization fails).
2009-08-19 09:31:51 +02:00
Peter Kjellerstedt
3b888cfe2a rtsp: Corrected the HTTP digest authorization computation.
Do not use sizeof() on an array passed as an argument to a function and
expect to get anything but the size of a pointer. As a result only the
first 4 (or 8) bytes of the response buffer were initialized to 0 in
auth_digest_compute_response() which caused it to return a string which
was not NUL-terminated...
2009-08-18 16:50:58 +02:00
Tim-Philipp Müller
cb19626c8c rtspconnection: don't use GLib-2.18 function
g_checksum_reset() was added only in GLib 2.18, but we still require
only 2.16, so work around that if we only have 2.16. Fixes #591357.
2009-08-10 20:18:24 +01:00
Sebastian Dröge
79ade6ad68 rtsp: Use GLib's GChecksum instead of our own MD5 implementation 2009-08-10 10:19:01 +02:00
Wim Taymans
f5962f0a4f rtsp: include in.h for FreeBSD compat
Fixes #586920
2009-06-29 12:20:52 +02:00
Peter Kjellerstedt
c398f2f376 rtsp: Moved a comment. 2009-06-29 09:31:40 +02:00
Руслан Ижбулатов
07c237ad19 Define WINVER before including any win headers
Fixes bug #587080.
2009-06-27 14:02:50 +02:00
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
Wim Taymans
3b6e9fc870 rtsp: add new defines for tunneling
Add two more result codes for tunneling support.
2009-03-04 12:18:00 +01:00
Wim Taymans
9ea1240910 rtsp: remove , from last enum member
Remove , from last enum member to improve compatibility with other compilers.
2009-03-04 12:12:06 +01:00
Wim Taymans
9045d210b2 rtsp: remove debugging g_message
--
2009-03-02 16:13:33 +01:00
Wim Taymans
fbc4f2d4fe RTSP: add support for Quicktime tunneled RTSP
Add support for tunneling RTSP over HTTP.
Fix documentation some more.
See also #573173.

API: RTSP:gst_rtsp_connection_is_tunneled()
API: RTSP:gst_rtsp_connection_set_tunneled()
2009-03-02 16:03:49 +01:00
Wim Taymans
40db590e71 RTSP: parse rtsph uris as RTSP tunneled over HTTP
Add transport define for RTSP tunneled over HTTP.

Parse rtsph:// uris as tunneled HTTP over TCP.

API: GstRTSPLowerTrans::GST_RTSP_LOWER_TRANS_HTTP

See also #573173.
2009-03-02 15:48:56 +01:00
Wim Taymans
4664fe40bc rtsp: add _get_url method and separate sockets
Add gst_rtsp_connection_get_url() method.

Reserve space for 2 sockets, one for reading and one for writing. Use socket
pointers to select the read and write sockets. This should allow us to implement
tunneling over HTTP soon.

API: RTSP::gst_rtsp_connection_get_url()
2009-03-02 10:58:49 +01:00
LRN
e5d2d32bba rtspconnection: Use correct types for some functions on Win32
Fixes bug #573529.
2009-02-28 19:35:33 +01:00
Edward Hervey
ed013753c0 rtspconnection: Fix warning about using unitialized value. 2009-02-28 13:11:59 +01:00
Stefan Kost
4e4f922d7a rtsprange: don't leak the range in case of parsing error.
Free the gstRTSPTimeRange if we don't return it. Also simplify
gst_rtsp_range_free() as it is valid to pass NULL to g_free().
2009-02-26 18:01:05 +02:00
Peter Kjellerstedt
2fe8e4c1de Fixed a typo. 2009-02-25 16:25:33 +01:00
Peter Kjellerstedt
a038a8d46d rtsp, multifdsink: Unify the use of union gst_sockaddr. 2009-02-25 15:45:50 +01:00
Jan Schmidt
94791df88d rtsp: Fix a strict aliasing warning
Fix strict aliasing warnings from casting a sockaddr_storage and
using it as a sockaddr_in6. Use a union instead.
2009-02-24 16:49:40 +00:00
Wim Taymans
bb5e2d3f56 Match WSAStartup and WSACleanup correctly
Don't randomly call WSAStartup and WSACleanup but instead call the startup when
we create a connection and cleanup when we free it again. Because the internal
datastructure is refcounted, this should not cause any refcounting leaks when
the connection is managed correctly.
Fixes #562794.
2009-02-24 12:11:00 +01:00
Wim Taymans
6e560ae5d8 Add method for handling server requests
Add a receive_request so that extensions can react to server requests.
2009-02-23 10:57:08 +01:00
Wim Taymans
15cd839f81 Improve key/value parsing
Improve header field parsing by keeping a ref to the key/value instead of
copying it into a local variable.
2009-02-20 17:26:40 +01:00
Wim Taymans
bb4310203a Add trailing \0 to message length
We always put a trailing 0 at the end of the message body. Reflect this fact in
the length of the message.
2009-02-20 12:35:53 +01:00
Wim Taymans
0ffd5e703a Don't parse headers for data messages
Don't try to parse the headers on a data message because they don't have
headers.
2009-02-20 09:52:16 +01:00
Wim Taymans
f187ffddce Make RTSPConnection opaque and rename RTSPChannel
Make the RTSPConnection object opaque so that we can extend it in the future.

Rename GstRTSPChannel to GstRTSPWatch to avoid confusing with the RTSP channels.
2009-02-19 15:55:07 +01:00
Wim Taymans
a2f04c8f61 Add RTSP accept method
Add a method to accept a connection on a socket and create a GstRTSPConnection
for it.

API: gst_rtsp_connection_accept()
2009-02-18 18:46:35 +01:00
Wim Taymans
a6d75bd33c Add RTSP channel object for async io
Add a GstRTSPChannel object that wraps a GSource around the RTSP connection so
that the connection can be monitored from a maincontext. This allows us to
operate in ASYNC mode, which is handy when building a server.

Rework the old code to use the async code under the hood.

API: gst_rtsp_channel_new()
API: gst_rtsp_channel_unref()
API: gst_rtsp_channel_attach()
API: gst_rtsp_channel_queue_message()
2009-02-18 17:42:59 +01:00
Peter Kjellerstedt
430eea3016 gstrtspmessage: Minor documentation correction.
Corrected documentation about what needs to be freed after calling
gst_rtsp_message_new(), gst_rtsp_message_new_request(),
gst_rtsp_message_new_response() and gst_rtsp_message_new_data().
2009-02-10 17:37:06 +01:00
Wim Taymans
76112f9f04 RTSPRange: Add method to serialize ranges
Add gst_rtsp_range_to_string() to serialize a GstRTSPRange to a string that can
be used by a server.
API: GstRTSPRange::gst_rtsp_range_to_string()
2009-02-04 17:03:52 +01:00
Wim Taymans
4bb5722f1a GstRTSPUrl: Add some const to methods
Add const to the methods that do not modify the object.
2009-02-04 13:16:48 +01:00
Wim Taymans
ad1dea3122 Add more g_return_if_fail() calls
Check that we have a valid file descriptor before entering certain functions in
order to avoid undesirable situations.
Add some more debugging in the connect method.
2009-02-04 11:18:31 +01:00
Wim Taymans
35cec4c006 Fix string leak in rtspmessage
when we remove a header field from a message we must free the value associated
with the key to avoid a memory leak.
2009-02-02 10:09:07 +01:00
Wim Taymans
6f3511bfb6 fix some typos
Fix some typos in the doc string of the new
gst_rtsp_options_as_string() method.
2009-01-29 14:00:30 +01:00
Wim Taymans
484a025f6d Add new RTSP message method to set header
Add gst_rtsp_message_take_header() that takes ownership of the passed header
value. This allows us to avoid an allocations and memory copy in some
situations.
API: GstRTSPMessage::gst_rtsp_message_take_header()
2009-01-29 11:55:10 +01:00
Wim Taymans
e8bd8cab41 Add method to serialize RTSP options
Add gst_rtsp_options_as_text() method to serialize a set of RTSP options to a
string.
API: GstRTSP::gst_rtsp_options_as_text()
2009-01-28 11:48:01 +01:00
Wim Taymans
1f6297f051 Add GType for GstRTSPUrl and expose a copy function because we can.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/rtsp/gstrtspurl.c: (register_rtsp_url_type),
(gst_rtsp_url_get_type), (gst_rtsp_url_copy):
* gst-libs/gst/rtsp/gstrtspurl.h:
* win32/common/libgstrtsp.def:
Add GType for GstRTSPUrl and expose a copy function because we can.
API: gst_rtsp_url_copy()
Fixes #567027.
2009-01-08 17:18:24 +00:00
이문형
d80a5c9dbc gst-libs/gst/rtsp/gstrtspconnection.c: A successful gst_poll_wait() doesn't always mean successful connect() on
Original commit message from CVS:
Patch by: 이문형 <iwings at gmail dot com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_connect):
A successful gst_poll_wait() doesn't always mean successful connect() on
Windows.  We should check errors by calling gst_poll_fd_has_error().
See #561924.
2008-11-27 11:16:44 +00:00
Michael Smith
77c3f8bb7f gst-libs/gst/rtsp/gstrtspdefs.c: Fix win32 build. Oops.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspdefs.c:
Fix win32 build. Oops.
2008-11-20 22:06:05 +00:00
Michael Smith
4f04294e45 gst-libs/gst/rtsp/gstrtspdefs.c: Use WSAGetLastError() rather than errno/h_errno on win32.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspdefs.c:
Use WSAGetLastError() rather than errno/h_errno on win32.
2008-11-20 21:40:49 +00:00
Damien Lespiau
81724500ec gst-libs/gst/rtsp/gstrtspconnection.c: Make the next call to poll not depend on previous calls to poll with or withou...
Original commit message from CVS:
Patch by: Damien Lespiau  <damien.lespiau gmail com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_write):
Make the next call to poll not depend on previous calls to poll with or
without reading from the active descriptor. Fixes #544293.
2008-11-03 10:49:24 +00:00
Wim Taymans
c9566ebd68 gst-libs/gst/rtsp/gstrtspmessage.c: Fix the g_return_val_if_fail() statements.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspmessage.c:
(gst_rtsp_message_parse_request),
(gst_rtsp_message_parse_response):
Fix the g_return_val_if_fail() statements.
2008-09-23 17:48:14 +00:00
David Schleef
526b2e63a2 gst-libs/gst/rtsp/gstrtspconnection.c: Fix build on win32.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c:
Fix build on win32.
Patch By: David Schleef <ds@schleef.org>
Fixes: #536874
2008-06-11 20:13:00 +00:00
Peter Kjellerstedt
26cd5ea1c8 gst-libs/gst/rtsp/gstrtspconnection.*: Add a couple of missing argument guards.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_set_auth), (gst_rtsp_connection_set_auth_param),
(gst_rtsp_connection_clear_auth_params),
(gst_rtsp_connection_set_qos_dscp), (gst_rtsp_connection_get_ip):
* gst-libs/gst/rtsp/gstrtspconnection.h:
Add a couple of missing argument guards.
Add a way of setting the DSCP for an RTSP connection.
Add an accessor method for the ip member of GstRTSPConnection as all
members are supposed to be private.
2008-06-04 11:53:53 +00:00
Felipe Contreras
b5f896dad6 gst-libs/gst/rtsp/Makefile.am: Distribute, don't install md5.h
Original commit message from CVS:
* gst-libs/gst/rtsp/Makefile.am:
Distribute, don't install md5.h
2008-05-21 17:01:16 +00:00
Sebastian Dröge
3ee2676c2e gst-libs/gst/rtsp/gstrtsptransport.h: Make the GstRTSPTransport struct members public as there are no setters/getters...
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtsptransport.h:
Make the GstRTSPTransport struct members public as there are no
setters/getters and it's supposed to be changed directly.
Fixes bug #533087.
2008-05-21 06:39:20 +00:00
Wouter Cloetens
a8a2b9c717 gst-libs/gst/rtsp/: Add Digest authorization support for RTSP connections. See #532065.
Original commit message from CVS:
Patch by: Wouter Cloetens <zombie at e2big dot org>
* gst-libs/gst/rtsp/Makefile.am:
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_create), (md5_digest_to_hex_string),
(auth_digest_compute_hex_urp), (auth_digest_compute_response),
(add_auth_header), (gst_rtsp_connection_free),
(gst_rtsp_connection_set_auth), (str_case_hash), (str_case_equal),
(gst_rtsp_connection_set_auth_param),
(gst_rtsp_connection_clear_auth_params):
* gst-libs/gst/rtsp/gstrtspconnection.h:
Add Digest authorization support for RTSP connections. See #532065.
* gst-libs/gst/rtsp/md5.c:
* gst-libs/gst/rtsp/md5.h:
Yeap, another md5 implementation until we can depend on a glib that has
support for it.
2008-05-08 14:46:27 +00:00
Wim Taymans
fc97139103 gst-libs/gst/rtsp/gstrtspconnection.c: Don't error when poll_wait returns EAGAIN.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_connect), (gst_rtsp_connection_write),
(gst_rtsp_connection_read_internal), (gst_rtsp_connection_poll):
Don't error when poll_wait returns EAGAIN.
2008-03-24 16:40:08 +00:00
Ole André Vadla Ravnås
aca58fb8ac gst-libs/gst/rtsp/gstrtspconnection.c: Generic Windows fixes that makes libgstrtsp work on Windows when coupled with ...
Original commit message from CVS:
Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_connect), (gst_rtsp_connection_write),
(read_line), (gst_rtsp_connection_read_internal):
Generic Windows fixes that makes libgstrtsp work on Windows when
coupled with the new GstPoll API. See #520808.
2008-03-18 11:10:12 +00:00
Wim Taymans
8a822e70be gst/: Remove GstPollMode from gstpoll constructor.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_create):
* gst/tcp/gstmultifdsink.c: (gst_fdset_mode_get_type),
(gst_multi_fd_sink_class_init), (gst_multi_fd_sink_start):
* gst/tcp/gstmultifdsink.h:
* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_start):
* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_start):
Remove GstPollMode from gstpoll constructor.
2008-03-07 15:48:51 +00:00
Tim-Philipp Müller
d85688b8a2 gst-libs/gst/rtsp/gstrtspconnection.c: Don't include unix headers unconditionally (fixes #518037).
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c:
Don't include unix headers unconditionally (fixes #518037).
2008-03-02 18:32:36 +00:00
Wim Taymans
0667334b2d gst-libs/gst/rtsp/gstrtspconnection.*: Use GstPoll for the rtsp connection.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_create), (gst_rtsp_connection_connect),
(gst_rtsp_connection_write), (gst_rtsp_connection_read_internal),
(gst_rtsp_connection_receive), (gst_rtsp_connection_close),
(gst_rtsp_connection_free), (gst_rtsp_connection_poll),
(gst_rtsp_connection_flush):
* gst-libs/gst/rtsp/gstrtspconnection.h:
Use GstPoll for the rtsp connection.
2008-02-28 09:50:52 +00:00
Wim Taymans
d4bcdb7340 gst-libs/gst/rtsp/gstrtspmessage.c: Fix compiler warning.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspmessage.c: (gst_rtsp_message_unset):
Fix compiler warning.
2008-02-07 12:17:49 +00:00
Sebastian Dröge
8b970c5581 Use gmtime_r if available as gmtime is not MT-safe.
Original commit message from CVS:
* configure.ac:
* gst-libs/gst/rtsp/gstrtspconnection.c: (add_date_header):
Use gmtime_r if available as gmtime is not MT-safe.
Fixes bug #511810.
2008-02-02 07:13:15 +00:00
Sebastian Dröge
044f629784 gst-libs/gst/rtsp/gstrtspconnection.c: Cast glong to time_t as time_t might have a different type on other platforms,...
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c: (add_date_header):
Cast glong to time_t as time_t might have a different type on
other platforms, like FreeBSD, and we get a compiler warning
otherwise. Fixes bug #511825.
2008-02-02 06:52:41 +00:00
Jan Schmidt
2531fca577 gst-libs/gst/rtsp/gstrtspconnection.c: Revert patch to gstrtspconnection.c for brown paper bag release of -base. Re-o...
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c:
Revert patch to gstrtspconnection.c for brown paper bag
release of -base. Re-opens: #511825
2008-01-30 12:28:59 +00:00
Sebastian Dröge
bd4bb423e9 gst-libs/gst/rtsp/gstrtspconnection.c: Cast glong to time_t as time_t might have a different type on other platforms,...
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c: (add_date_header):
Cast glong to time_t as time_t might have a different type on
other platforms, like FreeBSD, and we get a compiler warning
otherwise. Fixes bug #511825.
2008-01-29 09:59:03 +00:00
Jan Schmidt
fa2f3fb98e Add test to see if hstrerror is available or if we need libresolv (Solaris) for it, then use it in libgstrtsp.
Original commit message from CVS:
* configure.ac:
* gst-libs/gst/rtsp/Makefile.am:
Add test to see if hstrerror is available or if we need libresolv
(Solaris) for it, then use it in libgstrtsp.
2008-01-12 23:08:28 +00:00
Wim Taymans
db8c746760 gst-libs/gst/rtsp/gstrtspdefs.*: Add Location header so that we can start implementing redirects.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspdefs.c: (rtsp_init_status):
* gst-libs/gst/rtsp/gstrtspdefs.h:
Add Location header so that we can start implementing redirects.
See #506025.
2007-12-30 19:21:16 +00:00
Tim-Philipp Müller
aa47d077c1 gst-libs/gst/: Turn a few g_assert_not_reached() into g_return_val_if_reached() to avoid compiler warnings (#503930).
Original commit message from CVS:
* gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_do_seek),
(gst_cdda_base_src_handle_track_seek), (gst_cdda_base_src_create):
* gst-libs/gst/pbutils/install-plugins.c:
(gst_install_plugins_spawn_child), (gst_install_plugins_supported):
* gst-libs/gst/pbutils/missing-plugins.c:
(gst_missing_plugin_message_get_installer_detail),
(gst_missing_encoder_installer_detail_new):
* gst-libs/gst/rtsp/gstrtspconnection.c: (gst_rtsp_connection_send):
* gst-libs/gst/rtsp/gstrtspmessage.c: (gst_rtsp_message_unset):
Turn a few g_assert_not_reached() into g_return_val_if_reached() to
avoid compiler warnings (#503930).
2007-12-16 23:52:58 +00:00
Peter Kjellerstedt
ba4bb0fa8c gst-libs/gst/rtsp/gstrtspconnection.c: Close control sockets. Fixes #503440.
Original commit message from CVS:
Patch by: Peter Kjellerstedt  <pkj at axis com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_free):
Close control sockets. Fixes #503440.
2007-12-13 15:54:00 +00:00
Tommi Myöhänen
385ed6384f gst-libs/gst/rtsp/gstrtspmessage.c: Fix leaking headers. Fixes #496761.
Original commit message from CVS:
Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* gst-libs/gst/rtsp/gstrtspmessage.c: (gst_rtsp_message_unset):
Fix leaking headers. Fixes #496761.
2007-11-16 11:22:09 +00:00
Vincent Torri
be04e7c294 gst-libs/gst/fft/: Include our own _stdint.h instead of sys/types.h, makes MingW happy (#492306).
Original commit message from CVS:
Patch by: Vincent Torri <vtorri at univ-evry dot fr>
* gst-libs/gst/fft/kiss_fft_s16.h: (KISS_FFT_S16_MALLOC):
* gst-libs/gst/fft/kiss_fft_s32.h: (KISS_FFT_S32_MALLOC):
Include our own _stdint.h instead of sys/types.h, makes MingW happy
(#492306).
* gst-libs/gst/rtsp/gstrtspconnection.c: (gst_rtsp_connection_create):
Use _pipe directly, GLib doesn't have a pipe() macro any longer
(it disappeared in GLib 2.14.0) (#492306).
* gst-libs/gst/sdp/Makefile.am:
* gst-libs/gst/sdp/gstsdpmessage.c:
Fix includes and LIBS for win32/Mingw (#492306).
* tests/examples/dynamic/addstream.c (pause_play_stream):
Use more portable g_usleep() instead of sleep() (#492306).
2007-11-01 13:28:59 +00:00
Jan Schmidt
d5996e9c37 Fix a bunch of compile warnings shown with Forte.
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_init),
(gst_text_overlay_set_property):
* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_render):
* gst-libs/gst/rtp/gstrtcpbuffer.c: (gst_rtcp_ntp_to_unix),
(gst_rtcp_unix_to_ntp):
* gst-libs/gst/rtsp/gstrtspmessage.c: (gst_rtsp_message_get_type):
* gst/playback/gstqueue2.c:
* tests/examples/seek/seek.c: (set_scale):
Fix a bunch of compile warnings shown with Forte.
* gst/audiorate/gstaudiorate.c:
Always pull in config.h before including any system headers.
2007-09-17 17:24:55 +00:00
Tommi Myöhänen
840c5cd805 gst-libs/gst/rtsp/gstrtspconnection.c: Make sure we can not cancel in the middle of receiving a message.
Original commit message from CVS:
Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_read_internal), (gst_rtsp_connection_read),
(read_body), (gst_rtsp_connection_receive):
Make sure we can not cancel in the middle of receiving a message.
Fixes #475731.
2007-09-11 19:07:57 +00:00
Wim Taymans
01d9553d43 gst-libs/gst/rtsp/gstrtspconnection.*: Small cleanups.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_connect), (gst_rtsp_connection_write),
(gst_rtsp_connection_read), (gst_rtsp_connection_poll):
* gst-libs/gst/rtsp/gstrtspconnection.h:
Small cleanups.
On shutdown, don't read the control socket yet.
Set timeout value correctly in all cases.
Add function to check if the server accepts reads or writes.
API: gst_rtsp_connection_poll()
* gst-libs/gst/rtsp/gstrtspdefs.h:
Fix compilation with -pedantic.
Add enum for _poll.
2007-08-17 13:42:49 +00:00
Damien Lespiau
9b8c837165 Fix compilation on windows. Fixes #464320.
Original commit message from CVS:
Patch by: Damien Lespiau <damien dot lespiau at gmail dot com>
* configure.ac:
* gst-libs/gst/rtsp/Makefile.am:
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_connect):
Fix compilation on windows. Fixes #464320.
2007-08-07 15:13:46 +00:00
Wim Taymans
607fa48ad8 gst-libs/gst/rtsp/gstrtsptransport.c: Add rdt manager for rdt transport.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtsptransport.c: (gst_rtsp_transport_parse):
Add rdt manager for rdt transport.
Fix parsing of RDT transport.
2007-08-03 15:44:01 +00:00
Wim Taymans
be5ef4b0ad gst-libs/gst/rtsp/gstrtspextension.c: Fire the signal on the object, not the interface.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspextension.c: (gst_rtsp_extension_send):
Fire the signal on the object, not the interface.
2007-07-27 11:16:23 +00:00