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
Ognyan Tonchev
f67c6a768b
rtsp: fix g-i annotation for gst_rtsp_message_set_body(), take_body() and take_header()
...
https://bugzilla.gnome.org/show_bug.cgi?id=687620
2012-11-09 21:24:12 +00:00
Ognyan Tonchev
6318a4602a
rtsp: fix GstRTSPMessage g-i annotations for out parameters
...
https://bugzilla.gnome.org/show_bug.cgi?id=687620
2012-11-05 13:21:39 +00:00
Tim-Philipp Müller
5f59b4f7ee
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Miguel Angel Cabrera Moya
4b083d608e
rtspconnection: remove extra return and fix GError leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=687473
2012-11-02 19:30:23 +00:00
Ognyan Tonchev
ff04a1b4c6
rtspconnection: fix g-i annotations for out parameters
...
https://bugzilla.gnome.org/show_bug.cgi?id=687421
2012-11-02 12:43:52 +00:00
Tim-Philipp Müller
a4f2df6341
Revert "g-i: change g-ir-scanner arg --library=libgstfoo-X.la to --library=gstfoo-X"
...
This reverts commit e39fbe6b7e
.
Looks like we need to pass the full .la file after all in a setup
with libtool, or it might not find the library, e.g. like
ERROR: can't resolve libraries to shared libraries: gstfft-1.0
Conflicts:
gst-libs/gst/audio/Makefile.am
gst-libs/gst/pbutils/Makefile.am
Also see https://bugzilla.gnome.org/show_bug.cgi?id=603710
2012-10-29 12:47:05 +00:00
Tim-Philipp Müller
e39fbe6b7e
g-i: change g-ir-scanner arg --library=libgstfoo-X.la to --library=gstfoo-X
...
As it should be according to the man page.
https://bugzilla.gnome.org/show_bug.cgi?id=679315
2012-10-28 17:35:57 +00:00
Ognyan Tonchev
6e5ea441e7
rtsp: Don't use invalid sockets
...
return false from dispatch () if the read and write sockets have been
unset in tunnel_complete ()
Setting up HTTP tunnels causes segfaults since the watch for the second
connection is not destroyed anymore in tunnel_complete () and the connection
will still be used even though it is not valid anymore.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686276
2012-10-25 17:59:47 +02:00
Tim-Philipp Müller
336842d35c
rtsprange: fix formatting and parsing of range floating-point values
...
Other locales might use a comma instead of a floating point
for floats, which might lead to parsing errors.
https://bugzilla.gnome.org/show_bug.cgi?id=684411
2012-10-13 00:19:54 +01:00
Sebastian Pölsterl
e8fed7f04b
rtsp: mark url argument of gst_rtsp_url_parse() as out arg
...
https://bugzilla.gnome.org/show_bug.cgi?id=685242
2012-10-01 22:36:06 +01:00
Tim-Philipp Müller
5e0dfec62c
Remove -DGST_USE_UNSTABLE_API
2012-09-17 16:05:37 +01:00
Thibault Saunier
91cdd763eb
rtsp: port to the new GLib thread API
2012-09-09 20:41:06 -03:00
Tim-Philipp Müller
2079a8c12b
Remove glib-compat-private.h stuff we don't need any more
...
It's all been ported to the latest GLib API now.
2012-09-09 18:36:49 +01:00
Marc Leeman
791163aba2
gst-rtsptransports: no warning Transport end with semicolumn
2012-07-24 12:49:29 +02:00
Edward Hervey
2817bdadc9
libs: Remove "Since" markers and minor doc fixups
2012-07-13 12:11:06 +02:00
Ognyan Tonchev
de9aeb0c72
rtsp: Update the initial_buffer when merging RTSP Connections
...
See https://bugzilla.gnome.org/show_bug.cgi?id=679337
2012-07-10 11:34:47 +02:00
Wim Taymans
90b3f525e9
rtspconnection: handle cancellation correctly
2012-06-06 16:41:03 +02:00
David Svensson Fors
0b0dde7ce1
rtsp: don't leak address and socket
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677466
2012-06-06 14:53:43 +02:00
Wim Taymans
b0cc0a31e2
rtsp: unref sockets in _close
...
When closing the connection, unref the currently used sockets. This should close
them when not in use. We need to do this because else we cannot reconnect
anymore after a close, the connect function requires that the sockets are NULL.
2012-05-18 09:47:26 +02:00
Wim Taymans
2cd15bbef8
rtsp: clear the GError for pending connect
...
Clear the GError after g_socket_connect tells us that the connection is pending.
If we don't do this, glib complains when we try to reuse the non-NULL GError
variable a little below.
2012-05-18 09:47:26 +02:00
Sebastian Rasmussen
b7b123964b
gst-libs: make pkg-config get path to pkg-config dirs from configure
...
When --with-pkg-config-path is supplied to configure this path is now
explicitly propagated to pkg-config.
https://bugzilla.gnome.org/show_bug.cgi?id=673377
2012-05-05 23:26:20 +01:00
Sebastian Dröge
65307dd132
gst: Update versioning
2012-04-04 14:55:15 +02:00
Wim Taymans
26f63027a6
rtsp: fix connection
2012-02-20 17:44:59 +01:00
Wim Taymans
268d52fd33
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/rtsp/gstrtspconnection.c
win32/common/libgstaudio.def
2012-02-17 23:46:17 +01:00
Ognyan Tonchev
f6e07b65a4
rtspconnection: only send new data immediately if there are no queued messages
...
Even if watch->messages->length is 0 there may still be some
data from a message that was only written partially at the
previous attempt stored in watch->write_data, so check for
that as well. We don't want to write data into the middle
of another message, which could happen when there wasn't
enough bandwidth.
https://bugzilla.gnome.org/show_bug.cgi?id=669039
2012-02-17 14:40:35 +00:00
Tim-Philipp Müller
bd4bf43171
rtsp: make g-ir-scanner include Gio-2.0 to suppress complaints about GSocket etc.
2012-02-07 23:42:48 +00:00
Olivier Crête
e391118125
Use macros to register boxed types thread safely
2012-01-28 14:53:21 +00:00
Sebastian Dröge
aed2666b53
rtsp: Port to GIO
2012-01-17 16:38:45 +01:00
Sebastian Dröge
dc8984d76c
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/app/gstappsrc.c
gst-libs/gst/audio/multichannel.h
gst-libs/gst/video/videooverlay.c
gst/playback/gstplaysink.c
gst/playback/gststreamsynchronizer.c
tests/check/Makefile.am
win32/common/libgstvideo.def
2012-01-10 13:15:12 +01:00
Tim-Philipp Müller
9f042ae224
rtspconnection: make hostname lookup more thread-safe
...
Don't write IP number string to return into a static
array which is shared amongst all threads (note: of
course a copy is returned).
https://bugzilla.gnome.org/show_bug.cgi?id=666711
2012-01-07 20:16:41 +00:00
Tim-Philipp Müller
c3e6e23b85
audio, rtsp: remove private/protected gtk-doc markup for enums
...
This confuses glib-mkenums, and is not really useful anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=666618
2012-01-02 00:19:57 +00:00
Wim Taymans
59d5ad42b0
rtsp: use rtpbin
2011-12-09 19:22:21 +01:00
Tim-Philipp Müller
fb6d09055a
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/alsa/gstalsadeviceprobe.c
ext/alsa/gstalsamixer.c
ext/pango/gsttextoverlay.c
ext/pango/gsttextoverlay.h
gst-libs/gst/audio/gstaudiobasesink.c
gst-libs/gst/audio/gstaudioringbuffer.c
gst-libs/gst/audio/gstaudiosrc.c
gst-libs/gst/video/Makefile.am
gst-libs/gst/video/video.c
gst/encoding/gststreamcombiner.c
gst/encoding/gststreamsplitter.c
gst/playback/gstplaybasebin.c
gst/playback/gststreamsynchronizer.c
gst/playback/gstsubtitleoverlay.c
gst/playback/gsturidecodebin.c
sys/xvimage/xvimagesink.c
tests/examples/Makefile.am
win32/common/libgstvideo.def
Video overlay composition disabled for now, needs
porting to buffer meta.
2011-12-08 01:19:03 +00:00
Tim-Philipp Müller
0d98aa25b8
Work around deprecated thread API in glib master
...
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We'll change these
over to the new API once we depend on glib >= 2.32.
Replace g_thread_create() with g_thread_try_new().
2011-12-04 17:16:30 +00:00
Tim-Philipp Müller
177525f89f
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
gst-libs/gst/netbuffer/gstnetbuffer.c
gst/ffmpegcolorspace/avcodec.h
gst/ffmpegcolorspace/gstffmpegcodecmap.c
gst/ffmpegcolorspace/imgconvert.c
gst/ffmpegcolorspace/imgconvert_template.h
gst/ffmpegcolorspace/mem.c
gst/playback/README
gst/playback/gstplaybasebin.c
gst/playback/gstplaybasebin.h
gst/playback/gstplaybin.c
sys/v4l/v4lmjpegsrc_calls.c
sys/v4l/videodev_mjpeg.h
tests/check/elements/gnomevfssink.c
2011-12-02 11:10:17 +00:00
Piotr Fusik
14644457b0
various: typo fixes
...
Fix typos in code and docs. Fixes. #658984
2011-12-02 12:03:27 +01:00
Edward Hervey
d94535832b
gst-libs: Add --warn-all to introspection scanner
...
And let's get fixing those docs :)
2011-11-25 10:31:38 +01:00
Wim Taymans
fc04bcecbe
fix docs
2011-11-14 10:46:56 +01:00
Wim Taymans
bdf3845498
rtsp: cleanup headers
...
Add padding, fix indentation, remove deprecated stuff
2011-11-11 19:35:33 +01:00
Wim Taymans
ad8f694ec6
remove bogus files
...
They got somehow commited in 7012e88090
2011-11-11 10:39:52 +01:00
Wim Taymans
ace51b689f
rtsp: remove deprecated base64 library
2011-11-10 17:39:10 +01:00
Stefan Sauer
53d7d2e966
interfaces: clean up the use of iface and class/klass
2011-10-21 14:46:48 +02:00
Edward Hervey
17bfba09f1
Merge branch 'master' into 0.11
...
Conflicts:
ext/ogg/gstoggdemux.c
ext/pango/gsttextoverlay.c
gst-libs/gst/audio/gstaudioencoder.c
gst-libs/gst/audio/gstbaseaudiosrc.c
gst/playback/gstsubtitleoverlay.c
gst/videorate/gstvideorate.c
2011-09-23 18:27:11 +02:00
Mark Nauwelaerts
e574f58e71
rtspdefs: add RTCP-Interval header
2011-09-19 11:32:23 +02:00
Wim Taymans
7012e88090
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/audio/audio.h
gst-libs/gst/audio/gstaudiodecoder.c
gst-libs/gst/audio/gstaudiodecoder.h
gst-libs/gst/audio/gstaudioencoder.c
gst-libs/gst/audio/gstbaseaudioencoder.h
gst/playback/Makefile.am
gst/playback/gstplaybin.c
gst/playback/gstplaysink.c
gst/playback/gstplaysinkvideoconvert.c
gst/playback/gstsubtitleoverlay.c
gst/videorate/gstvideorate.c
gst/videoscale/gstvideoscale.c
win32/common/libgstaudio.def
2011-09-06 15:24:32 +02:00
Wim Taymans
3fab57b5cf
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/interfaces/videooverlay.c
gst-libs/gst/rtp/gstrtpbuffer.c
po/af.po
po/az.po
po/bg.po
po/ca.po
po/cs.po
po/da.po
po/de.po
po/el.po
po/en_GB.po
po/es.po
po/eu.po
po/fi.po
po/fr.po
po/gl.po
po/hu.po
po/id.po
po/it.po
po/ja.po
po/lt.po
po/lv.po
po/nb.po
po/nl.po
po/or.po
po/pl.po
po/pt_BR.po
po/ro.po
po/ru.po
po/sk.po
po/sl.po
po/sq.po
po/sr.po
po/sv.po
po/tr.po
po/uk.po
po/vi.po
po/zh_CN.po
2011-08-22 13:06:27 +02:00
Stefan Kost
01bbdd6bdf
docs: handle warnings emitted by gtk-doc
...
This is useful and in most cases someone had put arbitrary markup into the docs,
misspelled xref'ed symbols, forgot to add stuff to the docs etc..
2011-08-20 19:16:42 +02:00
Wim Taymans
33467d9629
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
ext/pango/gsttextoverlay.c
ext/theora/gsttheoradec.c
gst/adder/gstadder.c
gst/adder/gstadder.h
gst/audioresample/gstaudioresample.c
gst/encoding/gstencodebin.c
gst/playback/gstdecodebin.c
gst/playback/gstdecodebin2.c
tests/check/elements/decodebin2.c
tests/check/elements/playbin-compressed.c
win32/common/libgsttag.def
2011-08-16 18:01:14 +02:00
Alessandro Decina
22cc529409
rtspconnection: add OSX specific hack to detect when a connection is refused
...
Unlike linux, OSX wakes up select with POLLOUT (instead of POLLERR) when
connect() is done async and the connection is refused. Therefore always check
for the socket error state using getsockopt (..., SO_ERROR, ...) after a
connection attempt.
2011-08-15 23:46:53 +02:00
Tim-Philipp Müller
4bf26ba5d2
Add -DGST_USE_UNSTABLE_API to the compiler flags to avoid warnings
2011-07-05 10:07:08 +01:00
Tim-Philipp Müller
d77991106b
rtsp: GstRTSPExtension isn't wrapped by GstImplementsInterface
...
Fix copy'n'paste error in headers, GstRTSPExtension isn't
something that's per-instance.
2011-06-26 21:07:52 +01:00
Stefan Kost
8ca5d1274b
docs: add minimal docblobs for status code and headers
...
Use a trick to avoid documenting all 100 enums.
2011-05-23 23:56:09 +03:00
Edward Hervey
66016eedc7
rtsp: Fix typo which broke the build
2011-05-17 10:20:36 +02:00
Miguel Angel Cabrera Moya
30b2abaddd
rtspconnection: not enter in not controllable state unless it is necessary
...
When closing rtspsrc the state change blocks until the polling in the
connection timeouts. This is because the second time we loop to read a
full message controllable is set to FALSE in the poll group, even though no
message is half read.
This can be avoided by not setting controllable to FALSE the poll group
unless we had begin to read a message.
Fixes #610916
2011-05-17 09:29:47 +02:00
Tim-Philipp Müller
1d05e81435
libs: gobject-introspection scanner doesn't need to scan or update plugin info
...
Make sure the scanner doesn't load or introspect or check any plugins,
(especially not outside the build directory).
2011-04-16 11:01:53 +01:00
Sreerenj Balachandran
fecd4a1154
rtsptranport: ensure valid int result when parsing ranges
...
Specifically, make sure that the return value of strtol is falling in
between the range of G_MININT and G_MAXINT.
Fixes #646952 .
2011-04-12 12:30:08 +02:00
Alessandro Decina
030f639a8e
android: make it ready for androgenizer
...
Remove the android/ top dir
Fixe the Makefile.am to be androgenized
To build gstreamer for android we are now using androgenizer which generates the
needed Android.mk files.
Androgenizer can be found here:
http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 07:23:21 +02:00
Tim-Philipp Müller
45b6bda76c
libs: make sure gobject-introspection scanner calls gst_init()
...
Cherry-picked from 0.11, since it's the right thing to do (we
now silently rely on various _get_type() working without
gst_init() having been called).
2011-03-30 21:08:29 +01:00
Tim-Philipp Müller
a818fe7381
libs: replace 0.10 with @GST_MAJORMINOR@ in Makefile.am
...
For easier cherry-picking/merging later.
2011-03-30 20:57:32 +01:00
Benjamin Otte
6213f1f3b1
rtsp: Fix copy/paste error in inrospection part of Makefile
2011-02-21 18:00:02 +01:00
Tim-Philipp Müller
0ed757db33
gobject-introspection: use same PKG_CONFIG_PATH for g-ir-compiler as for g-ir-scanner
...
Make sure to use the PKG_CONFIG_PATH set at configure time instead of
just relying on an env-var set one. This makes sure both g-ir-compiler
and g-ir-scanner use the same PKG_CONFIG_PATH for determining include
paths etc.
2011-01-08 02:10:03 +00:00
Andy Wingo
dd699397c2
add gst_rtsp_url_decode_path_components
...
* gst-libs/gst/rtsp/gstrtspurl.h:
* gst-libs/gst/rtsp/gstrtspurl.c (gst_rtsp_url_decode_path_components):
New public function, returns a strv of uri-decoded path components.
* tests/check/Makefile.am:
* tests/check/libs/rtsp.c: Add tests.
2010-12-15 17:51:36 +01:00
Edward Hervey
f9c7be9639
rtsp: Move around the typedefs to make GIR happy
...
Otherwise it will generate they symbols as _GstRTSP* (with the leading
underscore).
2010-12-07 17:35:56 +01:00
Edward Hervey
8743c88a33
libgstrtsp: Fix typo in .pc to use for GIR
2010-12-02 19:11:37 +01:00
Evan Nemerson
8fb2c27ed0
introspection: Add information on exported packages to GIRs
...
https://bugzilla.gnome.org/show_bug.cgi?id=635392
2010-11-21 00:44:37 +00:00
Wim Taymans
ac06dd5d0e
rtspconnection: calculate better timeout value
...
We want to send the keealive message a little earlier than the timeout value
specifies. Scale this based on the value of the timeout instead of just assuming
5 seconds.
2010-10-29 14:22:39 +01:00
Thijs Vermeir
2e888cb784
rtsp: don't let the rtsp connection timeout
...
Because we should act before the rtsp server does a timeout, we
reduce the timeout-time with 5 seconds, this should be safe to always
keep te rtsp connection alive.
https://bugzilla.gnome.org/show_bug.cgi?id=633455
2010-10-29 14:22:39 +01:00
Tim-Philipp Müller
be36a64c57
libs: touch marshal.list files to force rebuild after Makefile.am changes
...
Force regeneration of marshal.[ch] files after prefix changes in
Makefile.am, to avoid build errors for those of us who don't
habitually make clean first.
2010-10-19 00:07:47 +01:00
Tim-Philipp Müller
f396a37fc5
rtsp: don't export marshaller function
...
Make sure the marshaller function isn't exported. As it was
never in a public header file, this should be fine.
2010-10-15 23:54:40 +01:00
Tim-Philipp Müller
6f87bc2307
rtsp: make public _get_type() functions thread-safe
2010-10-08 11:34:59 +01:00
Tim-Philipp Müller
d59558af87
rtspurl: minor clean-up
...
Merge and const-ify two arrays that should be one.
2010-10-08 11:34:59 +01:00
Tim-Philipp Müller
06afe5f049
rtsp: fix enum value name in enums that are public API
...
https://bugzilla.gnome.org/show_bug.cgi?id=629746
2010-10-08 11:34:58 +01:00
Tim-Philipp Müller
e776699036
build: use new AG_GST_PKG_CONFIG_PATH m4 macro from common
...
Sets up a GST_PKG_CONFIG_PATH variable for use in Makefile.am
(avoids trailing ':' in PKG_CONFIG_PATH used).
2010-08-14 19:12:37 +01:00
Tim-Philipp Müller
b61b83376a
introspection: set PKG_CONFIG_PATH so that our in-tree libs come first when calling scanner
...
When calling gobject-introspection scanner, make sure our own
freshly-built libs within the source tree (well, build dir) come
first in the PKG_CONFIG_PATH. May or may not help to make sure
that it doesn't pick up older external plugins-base libs (or
.gir files) from outside the source tree / build directory as
dependencies of the introspected lib instead of using the
stuff we just built in a sibling directory.
https://bugzilla.gnome.org/show_bug.cgi?id=623698
2010-08-14 19:11:48 +01:00
Stefan Kost
18f07f03d1
docs: be more firendly to gtk-doc limitted parsing capabilities
2010-05-06 11:34:53 +03:00
Stefan Kost
639e1ab2b5
docs: fix wrong doc markup
2010-05-06 09:42:02 +03:00
Tim-Philipp Müller
7fee2c0fe7
rtsp: weekday and month names in RTSP date string should be in C locale
...
Create date string using C locale weekday and month names.
Fixes #617636 .
2010-05-05 13:04:25 +01:00
Tim-Philipp Müller
00f7fbe750
rtsp: deprecate remaining base64 function now that we depend on GLib 2.20
...
API: deprecate gst_rtsp_base64_decode_ip(), use g_base64_decode_inplace() instead
2010-04-30 20:01:55 +01:00
Wim Taymans
318fbf3310
rtspconnection: Handle closed POST socket in tunneling
...
Catch more socket errors.
Rework how sockets are managed in the GSource, wake up the maincontext instead
of adding/removing the sockets from the source.
Add callback for when the tunnel connection is lost. Some clients (Quicktime
Player) close the POST connection in tunneled mode and reopen the socket when
needed.
See #612915
2010-04-06 10:59:39 +02:00
Vincent Untz
764c899215
libs: point gobject-introspection scanner to .la files
...
Point g-ir-scanner to the .la file of our library, which hopefully
makes it find the right dependencies in all cases (ie. our locally
built libgstreamer and not the system-installed one). This is also
how it's done in Gtk+ and how it's documented in the wiki, see
http://live.gnome.org/GObjectIntrospection/AutotoolsIntegration
Fixes #603710 .
2010-04-03 14:03:45 +01:00
Tim-Philipp Müller
b37c993e4e
gst-libs: more gobject-introspection fixes
...
Use right .pc file variable for compiler includes this time:
g-ir-compiler wants the girdirs not the typelibdirs as includes.
2010-03-30 23:46:10 +01:00
Tim-Philipp Müller
64cfa6bf73
gst-libs: fix up gobject-introspection some more
...
Use new girdir and typlibdir from core .pc files, so we can figure
out the right includes to pass to the gobject-introspection tools,
whether core is installed in the same prefix as gobject-introspection
or in a different prefix or uninstalled. This also keeps us from adding
bogus paths to the includes that only work if core is uninstalled.
Also add some missing includes/pkgs where needed.
2010-03-30 19:56:56 +01:00
Wim Taymans
4ff230e71b
rtsptransport: ignore unparsable ranges
...
Ignore unparsable port ranges instead of erroring out.
Fixes #613591
2010-03-24 12:10:38 +01:00
Wim Taymans
6e8ed14a9d
rtsp: add GType for transport flags
...
Make a method to register the transport flags as a GType.
2010-03-19 15:00:01 +01:00
Peter Kjellerstedt
f21e123bcc
rtsp: Further clean up of gst_rtsp_strresult()
...
Since we no longer use an array of error messages, there is no reason
to clamp the error code, which allows us to simplify the code some more
and also to actually report the correct error code for unknown errors.
2010-03-17 16:39:13 +01:00
Benjamin Otte
20c9b8eae3
rtsp: Refactor gst_rtsp_strresult
...
2 goals in the refactoring:
- Put the error messages closer to their enum values, so that it's easy
to see which error belongs to which value.
- Make gcc not complain with -Wformat-nonliteral
2010-03-17 12:09:25 +01:00
Benjamin Otte
3bd4aa26ff
Add -Wwrite-strings to configure
...
Fixes for the code included
2010-03-16 17:41:51 +01:00
Wim Taymans
999cc34c83
rtspconnection: allow for more ipv6 addresses
...
Use hints in getaddrinfo() so that we can also resolve ipv6 addresses.
2010-03-16 16:24:21 +01:00
Tim-Philipp Müller
e836151009
docs: more helper libraries docs fixes
...
Quieten gtk-doc a bit more.
2010-03-16 00:44:50 +00:00
Tim-Philipp Müller
4b06fad321
docs: add GstRTSPExtension to docs
...
Add minimal docs for GstRTSPExtension so people know it exists.
2010-03-16 00:04:41 +00:00
Wim Taymans
2221e404de
rtsp: make timeout usec more accurate
...
Adjust the returned usec from the elapsed time so it represents the remaining
timeout.
2010-03-15 11:36:22 +01:00
Benjamin Otte
43b1683421
Add -Wmissing-declarations -Wmissing-prototypes to warning flags
...
Includes all the fixes necessary to make stuff compile again.
2010-03-11 13:50:31 +01:00
Sebastian Dröge
d5a4ca9962
build: Make some more rules silent if requested
2010-03-09 21:01:38 +00:00
Dake Gu
f37b42b40d
rtspconnection: fix handling of x-server-ip-address
...
Fix handling of x-server-ip-address.
2010-03-08 11:20:51 +01:00
Patrick Radizi
a8f51d61f7
rtspconnection: make sure not to dereference NULL username or password
...
Fixes #610268 .
2010-02-18 18:00:38 +00:00
Wim Taymans
30fd219e63
rtsp: ignore \n and \r as the first line
...
Be more forgiving for bad servers and ignore \r and \n when we are looking for
the response/request line.
See #608417
2010-02-12 11:43:59 +01:00
Wim Taymans
be037e0dc8
rtsp: fail gracefully on bad Content-Length headers
...
Be careful when allocating the amount of bytes specified in the Content-Length
because it can be an insanely huge value. Try to allocate the memory but fail
gracefully with a nice error when the allocation failed.
2010-02-12 11:43:59 +01:00
Benjamin Otte
0994a5bff3
rtsp: Don't define h_error ourselves
...
It's included from netdb.h and that header might define it differently,
which can lead to build failures.
2010-01-13 23:06:40 +01:00
Sreerenj B
f3b3dd33f3
rtsp: avoid crashing on SIGPIPE
...
Use send() instead of write() so that we can pass the MSG_NOSIGNAL flags to
avoid crashing with SIGPIPE when the remote end is not listening to us anymore.
Fixes #601772
2009-11-13 11:18:46 +01:00
Tim-Philipp Müller
65765dffbf
.gitignore: update after files got renamed
2009-10-17 21:11:10 +01:00
Stefan Kost
f1c32d0fbb
build: fix previous commit to fully accomodate the glib-gen.mak changes
...
I also renamed glib_enum_prefix to glib_gen_prefix as we also use that for the
marshallers. Also rename the rtsp-marshal.list to work with the unified prefix.
2009-10-16 10:56:56 +03:00
Stefan Kost
a89c1de0ea
build: use gst-glib-gen.mak to fix the glib build rules. Fixes #598114
...
The build rules in glib-gen.mak were using pattern rules in a non save way.
2009-10-16 10:23:09 +03:00
Patrick Radizi
48a44f470b
rtsp: handle socket errors
...
gstrtspconnection.c:gst_rtsp_connection_receive() can hang when an error occured
on a socekt. Fix this problem by checking for error on 'other' socket after poll
return.
Fixes #596159
2009-10-12 15:48:46 +02:00
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