Commit graph

356 commits

Author SHA1 Message Date
Tim-Philipp Müller 1b4bd6e451 rtspmessage: map headers we know that are added by string to their enum
That way we can look them up by their field enum later as well.
2015-02-09 18:03:43 +00:00
Tim-Philipp Müller 9b4ea3f5dd rtspmessage: add API to add and get custom headers
Add API to add and get custom headers that are not
covered by our header fields enum. This is backwards
compatible in that it will also work for our defined
fields, so if we ever add a new header field to the
enum, get_header_by_name() for the same header string
will still work.

API: gst_rtsp_message_add_header_by_name()
API: gst_rtsp_message_take_header_by_name()
API: gst_rtsp_message_remove_header_by_name()
API: gst_rtsp_message_get_header_by_name()
2015-02-09 17:50:14 +00:00
Göran Jönsson e3a212e0d4 rtspconnection: No remove child if destroyed.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=740730
2014-12-09 10:32:00 +01:00
Sebastian Dröge 90eb93c2ef Don't compare booleans for equality to TRUE and FALSE
TRUE is 1, but every other non-zero value is also considered true. Comparing
for equality with TRUE would only consider 1 but not the others.
2014-12-01 09:51:12 +01:00
Hyunjun Ko cb15df15ac rtspconnection: fix warning on param name mismatch
https://bugzilla.gnome.org/show_bug.cgi?id=740013
2014-11-19 13:43:02 -03:00
Tim-Philipp Müller db89f0dca4 rtsp: use generic marshaller 2014-10-24 10:17:47 +01:00
Aleix Conchillo Flaqué 66abee92b0 rtspconnection: call watch notify before freeing any watch resources
This gives control to the notify function allowing it to finish other
watch related functionality.

https://bugzilla.gnome.org/show_bug.cgi?id=737752
2014-10-21 10:03:35 +02:00
Ognyan Tonchev 0ea1b559bf rtspconnection: ignore timeout in session request header
The timeout parameter is only allowed in a session response header
but some clients, like Honeywell VMS applications, send it as part
of the session request header. Ignore everything from the semicolon
to the end of the line when parsing session id.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=736267
2014-09-09 11:37:26 +02:00
Göran Jönsson acdb7feacf rtspconnection: Protect readsrc, writesrc and controllsrc with a mutex
Fixes a crash when controlsrc, readsrc or writesrc are modified from
gst_rtsp_source_dispatch_read/write and gst_rtsp_watch_reset at the
same time.

https://bugzilla.gnome.org/show_bug.cgi?id=735569
2014-08-29 11:28:13 +03:00
Evan Nemerson 7b791749a0 docs: Assorted documentation and introspection fixes for new 1.4 API
https://bugzilla.gnome.org/show_bug.cgi?id=732595
2014-07-02 09:09:44 +02:00
Wim Taymans 0425f1cf4d rtspconnection: also allow POST before GET
Don't only allow GET and then POST request to setup tunneling over HTTP
but also allow POST and then GET.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732459
2014-07-01 16:30:25 +02:00
Wim Taymans 9a20920aa4 rtsp-transport: clarify port usage
Comment in the docs what the client_port and server_port fields are used
for in TCP mode (if the application wants to set those values).
2014-05-20 16:01:08 +02:00
Göran Jönsson d8a1dc5ea8 rtspconnection: Add read source on write socket.
Add a read source on write socket when lost tunnel.
To be able to detect when clint closes get channel.

This is already done in gst_rtsp_source_dispatch_write but
only when the queue is empty.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=730368
2014-05-20 12:02:13 +02:00
Edward Hervey 1ca576c240 rtspconnection: Don't use argument for local storage
By re-using the uri argument for storing local data, we could end up in
a situation where we would free uri ... which would actually be the
string passed in argument.

Instead explicitely use a local variable. Fixes double-free issues.

CID #1212176
2014-05-13 11:53:41 +02:00
Göran Jönsson 446f9bf6bd rtspconnection: Reset control_stream.
Reset control_stream when gst_rtsp_connection_close.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=729632
2014-05-09 11:49:04 +02:00
Руслан Ижбулатов 151d156126 rtsp: Link to ws2_32 on Windows
Needed for getsockname and setsockopt

https://bugzilla.gnome.org/show_bug.cgi?id=729514
2014-05-05 09:04:28 +02:00
Tim-Philipp Müller b163f111c8 rtspdefs: remove outdated comments 2014-05-02 19:36:34 +01:00
Göran Jönsson 9685e7a583 rtspconnection: Empty queue when flush.
Empty the watchs queue when calling
gst_rtsp_watch_set_flushing with flushing variabel is TRUE.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728772
2014-04-30 16:37:17 +02:00
Tim-Philipp Müller bcb8068e27 docs: remove outdated and pointless 'Last reviewed' lines from docs
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-26 23:28:57 +01:00
Wim Taymans 8d439edd7a rtspconnection: add flush method
Add a method to set/unset the flushing state that makes _wait_backlog()
unlock.

See https://bugzilla.gnome.org/show_bug.cgi?id=725898
2014-03-28 09:34:33 +01:00
Wim Taymans 183e441d88 rtsptransport: UDP is also default for SAVP and AVPF 2014-03-25 11:07:34 +01:00
Ognyan Tonchev d7857325c5 rtspconnection: Fix minor memory leaks in error handling
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726642
2014-03-24 12:45:14 +01:00
Ognyan Tonchev e0af857445 rtspconnection: Fix connection_poll()
* Only check for conditions we are interested in.
* Makes no sense to specify G_IO_ERR and G_IO_HUP in condition, they
  will always be reported if they are true.
* Do not create timed source if timeout is NULL.
* Correctly wait for sources to be dispatched, context_iteration() is
  not guaranteed to always block even if set to do so.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726641
2014-03-24 12:43:38 +01:00
Руслан Ижбулатов d6bd37460a rtspconnection: Silence a compiler warning
Cast the argument into (const char *) on W32, as winsock2 expects it.

https://bugzilla.gnome.org/show_bug.cgi?id=726433
2014-03-16 11:22:04 +01:00
Göran Jönsson 0b30fdbfbe rtspconnection: gst_rtsp_watch_wait_backlog
New method that wait until there is room in backlog queue.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725898
2014-03-10 17:28:40 +01:00
David Svensson Fors 6cd0d10d30 rtspconnection: GstRTSPWatch func for tunnel GET response
Add a callback in GstRTSPWatch where the response to HTTP GET for
tunneled connections can be modified.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725878
2014-03-10 10:43:03 +01:00
Wim Taymans 4898c30537 rtspdefs: add RFC 4567 headers and status code
This new Header and status code is used for SRTP
2014-03-10 10:33:28 +01:00
Ognyan Tonchev 4220442441 rtspconnection: Call closed() when GET is closed in tunneled mode
This patch adds read source on the write socket in tunneled
mode and we get a callback when client disconnects the GET
channel.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725313
2014-03-03 10:34:56 +01:00
Sebastian Rasmussen 35bb1b3328 docs: Add annotations for return values
Rephrase and clarify some return value descriptions

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725521
2014-03-02 23:41:18 +00:00
Sebastian Rasmussen 5b4f2ba20b docs: Fix argument and annotation typos
* colorbalance: Fix misspelled annotation
 * rtsp: Replace incorrectly documented function argument
 * sdp: Escape @ character to avoid gtk-doc warning
 * video-*: Add missing annotation colon
 * videodecoder/video-color: Fix function argument typos
 * videoutils: Remove unknown annotation field

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725521
2014-03-02 23:22:51 +00:00
Tim-Philipp Müller 14b82bbc9a rtsp: fix build with older GLib versions
The gio/gnetworking.h header is only available since glib 2.36

https://bugzilla.gnome.org/show_bug.cgi?id=725206
2014-02-26 11:44:18 +00:00
Ognyan Tonchev 5445682c6a rtspconnection: Add missing include
https://bugzilla.gnome.org/show_bug.cgi?id=725206
2014-02-26 11:25:13 +00:00
Ognyan Tonchev ebe3530f51 rtspconnection: Remove read child source when POST is disconnected
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=724720
2014-02-21 16:21:45 +01:00
Aleix Conchillo Flaqué 0a115bd31f rtspconnection: allow specifying a certificate database
Two new functions have been added,
gst_rtsp_connection_set_tls_database() and
gst_rtsp_connection_get_tls_database(). The certificate database will be
used when a certificate can't be verified with the default database.

https://bugzilla.gnome.org/show_bug.cgi?id=724393
2014-02-19 21:48:13 +01:00
Aleix Conchillo Flaqué 9121b16aa0 rtspconnection: get rid of superfluous whitespaces 2014-02-19 21:22:30 +01:00
Wim Taymans 594dd4287b rtsptransport: calculate default lower transport
Add an internal method to calculate the default lower transport whan it
is missing.
2014-01-07 14:51:46 +01:00
Wim Taymans 124cf22d5d rtsptransport: add method to get media-type from transport
Add a method to make a media-type from the transport. Deprecate the old
method that only used the mode.

Based on patch from Aleix Conchillo Flaqué <aleix@oblong.com>

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=720219
2014-01-07 14:51:37 +01:00
Wim Taymans 5b13c5b464 rtsptransport: add GType for Profile
See https://bugzilla.gnome.org/show_bug.cgi?id=720696
2014-01-07 11:52:27 +01:00
Wim Taymans 01c7fb11ba rtsptransport: add more profiles
Add support for Feedback profiles
2013-12-26 17:41:00 +01:00
Tim-Philipp Müller 4af1e064fe docs: cosmetic since marker fixes 2013-11-16 16:10:06 +00:00
Sebastian Dröge b0aad9dd84 rtspconnection: Fix indention in header 2013-11-01 16:43:56 +01:00
Aleix Conchillo Flaque 53c7ad0c87 rtspconnection: allow setting tls certificate validation
Added new functions gst_rtsp_connection_set_tls_validation_flags() to
allow setting the TLS certificate validation flags when establishing a
TLS connection.
A getter is also available, gst_rtsp_connection_get_tls_validation_flags().

https://bugzilla.gnome.org/show_bug.cgi?id=711231
2013-11-01 16:42:34 +01:00
Hans Månsson 6bb58eec8a rtspconnection: Connect to proxy if specified
Reference: https://bugzilla.gnome.org/show_bug.cgi?id=708880
2013-10-04 07:27:12 +02:00
Ognyan Tonchev 02ac18b699 rtspconnection: Unset input/output_stream after freeing the GIOStream
watch->input_stream and watch->output_stream are owned by the GIOStream
and should be unset after freeing the stream.

https://bugzilla.gnome.org/show_bug.cgi?id=708689
2013-09-24 18:35:14 +02:00
Ognyan Tonchev 8ba90931ae rtspconnection: Only create writesrc when it is actually needed
Creating a GSource and not attaching it to a context will cause
a leak of it's child sources. That is why we create writesrc right
before attaching it to a context.

https://bugzilla.gnome.org/show_bug.cgi?id=708667
2013-09-24 12:10:00 +02:00
Tim-Philipp Müller c449ae6343 rtsp: fix direct includes
https://bugzilla.gnome.org/show_bug.cgi?id=695889
2013-08-16 14:14:22 +01:00
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