Commit graph

157 commits

Author SHA1 Message Date
Wim Taymans
636cd65ebf rtspsrc: fix range parsing
Fix parsing of the range headers.
2009-03-05 14:09:03 +01:00
Wim Taymans
5a5ba49c9b rtspsrc: fix memory leak in close
Close the connection even when we fail to send the teardown message.
Use the connection url (which is a copy of the src url).
2009-03-04 16:31:57 +01:00
Wim Taymans
dfb2d1b7d7 rtspsrc: fix do-rtcp property description
---
2009-03-04 12:29:50 +01:00
Wim Taymans
81f25317e6 rtspsrc: add support for http tunneling
Add support for http tunneling and a new rtsph:// uri for it.
See #573173.
2009-03-02 16:09:23 +01:00
Patrick Radizi
c7dd6a4902 rtspsrc: add property to disable RTCP
Some old servers don't like us doing RTCP and thus we need a property to disable
it. See #573173.
2009-02-26 19:03:52 +01:00
Mark Nauwelaerts
21cb00aa9c rtspsrc: perform UDP SETUP according to MS RTSP spec
MS RTSP spec states that the UDP port pair used in subsequent SETUP
requests for various streams must be identical (since there will actually
be only 1 stream of muxed asf packets).  Following traditional specs and
using different port pairs in the SETUPs for separate streams will result
in all but the first one failing and only one stream being streamed.

So, in appropriate circumstances, retry UDP SETUP using previously used
port pair.  Fixes #552650.
2009-02-23 22:47:55 +01:00
Wim Taymans
a08d75b892 Call new receive_request method
Call the receive_request extension methods so that extensions can handle the
server request if they want.
2009-02-23 11:42:53 +01:00
Wim Taymans
1dc5c34143 rtspsrc: Keep track of connected state
Keep track of the state of the connection and don't try to send TEARDOWN when
the server has closed the connection.
2009-02-04 11:38:30 +01:00
Stefan Kost
a99d3f8769 Update and add documentation for plugins with no deps (gst).
Link to properties. Correct titles for examples. Document a few trivial cases. Keep lists in section file and docs/plugins/Makefile.am alphabetically ordered.
2009-01-28 12:32:59 +02:00
Wim Taymans
16799b6b16 Free leftover udp ports (if any) when a setup request fails. 2009-01-22 12:21:29 +01:00
이문형
42f6a2bca1 gst/rtsp/gstrtspsrc.c: Prevent further read/write actions taken to the connect-failed socket by erroring out quickly....
Original commit message from CVS:
Patch by: 이문형 <iwings at gmail dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_loop_udp):
Prevent further read/write actions taken to the connect-failed socket by
erroring out quickly. See #562258.
2008-11-27 11:22:56 +00:00
Wim Taymans
0b5fea8568 gst/rtsp/gstrtspsrc.c: Add some more debugging.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (new_session_pad),
(gst_rtspsrc_parse_range):
Add some more debugging.
Use the reanges received from the server unconditionally.
Fixes #561625.
2008-11-24 12:20:29 +00:00
Eric Zhang
be3906c918 gst/rtsp/gstrtspsrc.*: Add property to configure NAT traversal method.
Original commit message from CVS:
Based on patch by: Eric Zhang <chao.zhang at access-company dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtsp_nat_method_get_type),
(gst_rtspsrc_class_init), (gst_rtspsrc_set_property),
(gst_rtspsrc_get_property), (gst_rtspsrc_create_stream),
(gst_rtspsrc_stream_free),
(gst_rtspsrc_stream_configure_udp_sinks),
(gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_send_dummy_packets),
(gst_rtspsrc_create_transports_string),
(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
Add property to configure NAT traversal method.
Ignore EOS from the internal sinks.
Implement sending dummy packets as a (simple) method to open up
some firewalls.
Send PLAY request to the server after we started the udp sources.
Fixes #559545.
2008-11-13 16:11:16 +00:00
Wim Taymans
21edbcc566 gst/rtsp/gstrtspsrc.c: Only send one transport at a time for improved compatibility with some broken servers. See #53...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_transports_string),
(gst_rtspsrc_change_state):
Only send one transport at a time for improved compatibility with some
broken servers. See #537832.
2008-11-11 16:00:48 +00:00
Wim Taymans
8a2bcfecb0 gst/rtsp/gstrtspsrc.c: Only pause/play in the seek handler when the source was playing.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_do_seek),
(gst_rtspsrc_perform_seek):
Only pause/play in the seek handler when the source was playing.
Fixes #529379.
2008-11-11 15:16:31 +00:00
Eric Zhang
499c3e520e gst/rtsp/gstrtspsrc.c: Pause the RTSP stream before doing a new play request.
Original commit message from CVS:
Based on patch by: Eric Zhang <chao.zhang at access-company dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_perform_seek),
(gst_rtspsrc_stream_configure_udp_sink):
Pause the RTSP stream before doing a new play request.
Make sure that adding the udpsinks does not cause the rtspsrc to become
a sink. Fixes #559547.
2008-11-10 12:13:21 +00:00
Wim Taymans
539627e049 gst/rtsp/gstrtspsrc.c: Return TRUE instead of FALSE from the event handler when we swallowed the event.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_handle_src_event):
Return TRUE instead of FALSE from the event handler when we swallowed the
event.
2008-10-09 14:27:12 +00:00
Wim Taymans
b1dfdc758e gst/rtsp/gstrtspsrc.c: Don't assume the server supports PAUSE by default. Fixes #551048.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_parse_methods):
Don't assume the server supports PAUSE by default. Fixes #551048.
2008-09-25 12:07:46 +00:00
Wim Taymans
bf8777356b gst/rtsp/gstrtspsrc.c: Handle the case where we cannot do desribe or when the describe result does not contain a vali...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open):
Handle the case where we cannot do desribe or when the describe result
does not contain a valid SDP message.
2008-09-23 18:08:56 +00:00
Wim Taymans
dd54e000ea gst/rtsp/: Add google RTSP extension, it can only handle udp and responds with unsupported if we do anything else. Fi...
Original commit message from CVS:
* gst/rtsp/Makefile.am:
* gst/rtsp/gstrtsp.c: (plugin_init):
* gst/rtsp/gstrtspgoogle.c: (gst_rtsp_google_before_send),
(gst_rtsp_google_after_send), (gst_rtsp_google_get_transports),
(_do_init), (gst_rtsp_google_base_init),
(gst_rtsp_google_class_init), (gst_rtsp_google_init),
(gst_rtsp_google_finalize), (gst_rtsp_google_change_state),
(gst_rtsp_google_extension_init):
* gst/rtsp/gstrtspgoogle.h:
Add google RTSP extension, it can only handle udp and responds with
unsupported if we do anything else. Fixes #546465.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_connection_send),
(gst_rtspsrc_connection_receive), (gst_rtspsrc_loop_send_cmd),
(gst_rtspsrc_create_transports_string),
(gst_rtspsrc_setup_streams), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_pause):
Make transport setup code a bit better using GString.
Add some more debug.
Check for closed connections before doing anything on them.
2008-08-20 17:30:19 +00:00
Wim Taymans
0dfa54f450 gst/rtsp/gstrtspsrc.c: Don't try to configure RTCP back to the server when the server did not give us a valid port nu...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_udp_sink):
Don't try to configure RTCP back to the server when the server did not
give us a valid port number.
2008-08-20 11:48:46 +00:00
Aurelien Grimaud
1e64691186 gst/rtsp/gstrtspsrc.c: Improve udp port setup. Fixes #545710.
Original commit message from CVS:
Patch by: Aurelien Grimaud <gstelzz at yahoo dot fr>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_alloc_udp_ports):
Improve udp port setup. Fixes #545710.
2008-08-05 13:57:57 +00:00
Stefan Kost
9f886ee1f2 gst/rtp/gstrtpvrawdepay.c: Include stdlib.h for atoi().
Original commit message from CVS:
* gst/rtp/gstrtpvrawdepay.c:
Include stdlib.h for atoi().
* gst/rtsp/gstrtspsrc.c:
Use floating point math for latencies < 0 sec in log output.
2008-07-07 10:30:51 +00:00
Wim Taymans
8d901b4bfc gst/rtsp/gstrtspsrc.c: Set udpsrc for receiving data from multicast groups to PAUSED instead of leaving them in READY...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_mcast):
Set udpsrc for receiving data from multicast groups to PAUSED instead of
leaving them in READY. Fixes #537832.
2008-06-12 17:30:06 +00:00
Peter Kjellerstedt
d60878ab14 gst/rtsp/gstrtspsrc.c: Use the new gst_rtsp_connection_get_ip() to access the IP address of a GstRTSPConnection since...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_udp_sink):
Use the new gst_rtsp_connection_get_ip() to access the IP address
of a GstRTSPConnection since it is a private member.
2008-06-04 11:59:18 +00:00
Wim Taymans
487b784b4f Don't use gst_element_get_pad(), it's a bad method.
Original commit message from CVS:
* ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_reset),
(do_toggle_element):
* ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_reset),
(do_toggle_element):
* ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_reset),
(do_toggle_element):
* ext/gconf/gstswitchsink.c: (gst_switch_commit_new_kid):
* ext/hal/gsthalaudiosink.c: (gst_hal_audio_sink_reset),
(do_toggle_element):
* ext/hal/gsthalaudiosrc.c: (gst_hal_audio_src_reset),
(do_toggle_element):
* gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_reset),
(gst_auto_audio_sink_detect):
* gst/autodetect/gstautovideosink.c: (gst_auto_video_sink_reset),
(gst_auto_video_sink_detect):
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_stream_free), (gst_rtspsrc_stream_configure_udp),
(gst_rtspsrc_stream_configure_udp_sink), (gst_rtspsrc_skip_lws),
(gst_rtspsrc_unskip_lws), (gst_rtspsrc_skip_commas),
(gst_rtspsrc_skip_item), (gst_rtsp_decode_quoted_string),
(gst_rtspsrc_parse_digest_challenge), (gst_rtspsrc_parse_auth_hdr):
* tests/icles/videocrop-test.c: (test_with_caps),
(video_crop_get_test_caps):
Don't use gst_element_get_pad(), it's a bad method.
2008-05-21 17:39:38 +00:00
Wouter Cloetens
5506fbfc48 gst/rtsp/gstrtspsrc.c: Support Digest authentication. Fixes #532065.
Original commit message from CVS:
Based on patch by: Wouter Cloetens  <wouter at mind be>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_skip_lws), (gst_rtspsrc_unskip_lws),
(gst_rtspsrc_skip_commas), (gst_rtspsrc_skip_item),
(gst_rtsp_decode_quoted_string),
(gst_rtspsrc_parse_digest_challenge), (gst_rtspsrc_parse_auth_hdr),
(gst_rtspsrc_setup_auth):
Support Digest authentication. Fixes #532065.
2008-05-08 16:58:02 +00:00
Sjoerd Simons
89b114fe44 gst/rtsp/gstrtspsrc.c: Don't leak file descriptors on error. Fixes #531532.
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init), (gst_rtspsrc_open):
Don't leak file descriptors on error. Fixes #531532.
2008-05-05 11:19:13 +00:00
Wim Taymans
f9646f3722 gst/rtsp/gstrtspsrc.c: Ref caps as the return value for the request_pt_map signal.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init), (request_pt_map),
(gst_rtspsrc_configure_caps):
Ref caps as the return value for the request_pt_map signal.
Remove some caps weirdness when configuring a stream. See #528245.
2008-04-21 08:21:14 +00:00
Ole André Vadla Ravnås
110a0ea563 gst/rtsp/gstrtspsrc.c: Call WSAStartup() and WSACleanup before using the Winsock API.
Original commit message from CVS:
Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_finalize):
Call WSAStartup() and WSACleanup before using the Winsock API.
See #520808.
2008-03-17 15:56:01 +00:00
Wim Taymans
7f0745bb7f gst/rtsp/gstrtspsrc.c: Post the server response code in an error message instead of a generic 'error' message. Fixes ...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_setup_streams):
Post the server response code in an error message instead of a generic
'error' message. Fixes #517237.
2008-02-22 09:56:03 +00:00
Wim Taymans
a1abaa3bfe gst/rtsp/gstrtspsrc.c: Init values to -1 instead of the default 0 value.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_stream):
Init values to -1 instead of the default 0 value.
Fixes #516524.
2008-02-18 11:13:35 +00:00
Sébastien Moutte
f0690e19ea gst/rtsp/gstrtspsrc.c: Include unistd.h only if HAVE_UNISTD_H is defined
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c:
Include unistd.h only if HAVE_UNISTD_H is defined
* win32/common/config.h.in:
* win32/common/config.h:
Define socklen_t as it seems it's not defined in default
Visual Studio headers.
* win32/vs6/libgstalpha.dsp:
* win32/vs6/libgstapetag.dsp:
* win32/vs6/libgstavi.dsp:
* win32/vs6/libgstrtp.dsp:
* win32/vs6/libgstrtsp.dsp:
* win32/vs6/libgstvideomixer.dsp:
Update project file dependencies and add new source files
2008-02-07 19:13:56 +00:00
Tim-Philipp Müller
7c7b58e839 gst/rtsp/gstrtspsrc.c: Use g_ascii_strtoll() instead of atoll, which is only available in C99.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_parse_rtpinfo):
Use g_ascii_strtoll() instead of atoll, which is only
available in C99.
2008-01-28 12:17:02 +00:00
Wim Taymans
8a72bf80e7 As found by: Tommi Myöhänen <ext-tommi.myohanen nokia com>
Original commit message from CVS:
As found by: Tommi Myöhänen <ext-tommi.myohanen nokia com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_parse_rtpinfo):
Use atoll to parse the rtptime with enough precision. Fixes #509329.
2008-01-14 12:35:23 +00:00
Tim-Philipp Müller
11118eabb9 gst/: Initialise variables to work around (false) 'foo might be used uninitialized in this function' warnings by gcc-...
Original commit message from CVS:
* gst/avi/gstavisubtitle.c: (gst_avi_subtitle_extract_file):
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send):
Initialise variables to work around (false) 'foo might be used
uninitialized in this function' warnings by gcc-3.3.3 (#509298).
2008-01-14 12:11:43 +00:00
Wim Taymans
eb5e87944c gst/rtsp/gstrtspsrc.*: Implement redirect for the DESCRIBE reply. Fixes #506025.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open):
* gst/rtsp/gstrtspsrc.h:
Implement redirect for the DESCRIBE reply. Fixes #506025.
2007-12-31 13:27:32 +00:00
Tommi Myöhänen
2a5f7c6acd gst/rtsp/gstrtspsrc.c: Fix some more leaks. Fixes #497007.
Original commit message from CVS:
Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_setup_streams):
Fix some more leaks. Fixes #497007.
2007-11-15 17:47:43 +00:00
Tommi Myöhänen
624497b1c5 gst/rtsp/gstrtspsrc.c: Fix 3 pad leaks. Fixes #496983.
Original commit message from CVS:
Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_free),
(gst_rtspsrc_stream_configure_tcp):
Fix 3 pad leaks. Fixes #496983.
2007-11-15 17:35:18 +00:00
Tim-Philipp Müller
092cb8cd57 gst/rtsp/gstrtspsrc.c: Don't leak sdp message contents (fixes #496773).
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open):
Don't leak sdp message contents (fixes #496773).
* gst/udp/gstudpsink.c: (gst_udpsink_finalize):
Don't leak URI string.
2007-11-14 20:34:24 +00:00
Tommi Myöhänen
e5b5743a96 gst/rtsp/gstrtspsrc.c: Don't leak event, don't leak range (fixes #496752).
Original commit message from CVS:
Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_handle_src_event),
(gst_rtspsrc_parse_range):
Don't leak event, don't leak range (fixes #496752).
2007-11-14 15:29:05 +00:00
Tommi Myöhänen
56e63b4488 gst/rtsp/gstrtspsrc.c: Fix race when pausing a RTSP stream in interleaved.
Original commit message from CVS:
Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_loop_interleaved):
Fix race when pausing a RTSP stream in interleaved.
Fixes #475784.
2007-10-22 16:44:48 +00:00
Wim Taymans
418ed536ef gst/rtsp/gstrtspsrc.c: Use allowed name for the GstStructure.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open):
Use allowed name for the GstStructure.
2007-10-17 15:08:02 +00:00
Jan Schmidt
3ca2d477b2 gst/rtsp/gstrtspsrc.c: Fix compiler warning by using GST_CLOCK_TIME_NONE to initialise a GstClockTime.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_flush):
Fix compiler warning by using GST_CLOCK_TIME_NONE to initialise
a GstClockTime.
2007-10-08 17:44:42 +00:00
Wim Taymans
92e16a65ae gst/rtsp/gstrtspsrc.c: More seeking fixes, mostly passing around the new playback segment in order to configure it pr...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_flush),
(gst_rtspsrc_do_seek), (gst_rtspsrc_perform_seek),
(gst_rtspsrc_configure_caps), (gst_rtspsrc_loop_udp),
(gst_rtspsrc_parse_range), (gst_rtspsrc_open), (gst_rtspsrc_play),
(gst_rtspsrc_change_state):
More seeking fixes, mostly passing around the new playback segment in
order to configure it properly.
Also reset base_time of udp sources when setting them back to PLAYING as
a temporary hack until core supports seek in live sources properly.
2007-10-08 11:58:51 +00:00
Wim Taymans
7624f91497 gst/rtsp/gstrtspsrc.c: Improve flushing behaviour.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_flush),
(gst_rtspsrc_perform_seek), (gst_rtspsrc_handle_src_event),
(gst_rtspsrc_handle_internal_src_query),
(gst_rtspsrc_handle_src_query), (new_session_pad),
(gst_rtspsrc_stream_configure_tcp),
(gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_loop_send_cmd):
Improve flushing behaviour.
Set state of the udp sources to PAUSE/PLAYING correctly.
Handle events and queries for UDP and TCP transport now.
2007-10-05 13:18:19 +00:00
Wim Taymans
5274c3f4e2 gst/rtsp/gstrtspsrc.*: Parse bandwidth modifiers, they are not yet configured in the session manager because we don't...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_get_bandwidth),
(gst_rtspsrc_collect_bandwidth), (gst_rtspsrc_create_stream),
(gst_rtspsrc_media_to_caps), (gst_rtspsrc_loop_interleaved):
* gst/rtsp/gstrtspsrc.h:
Parse bandwidth modifiers, they are not yet configured in the session
manager because we don't have an API for that yet.
2007-10-01 16:34:56 +00:00
Wim Taymans
b3e03a9a12 gst/rtsp/gstrtspsrc.c: Use shiny new function in -base to get the default clock-rate.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_parse_rtpmap),
(gst_rtspsrc_media_to_caps), (gst_rtspsrc_loop_interleaved):
Use shiny new function in -base to get the default clock-rate.
Update some docs.
2007-10-01 13:57:28 +00:00
Wim Taymans
bea9010658 gst/rtsp/gstrtspsrc.*: In TCP mode, only timestamp the first buffer. TCP is not real time and it does not make sense ...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_play):
* gst/rtsp/gstrtspsrc.h:
In TCP mode, only timestamp the first buffer. TCP is not real time and
it does not make sense to try to skew compensate, also some servers send
the first batch of data in a burst.
2007-09-28 14:56:19 +00:00
Wim Taymans
4683ff80d3 gst/rtsp/gstrtspsrc.*: Set timestamps on RTP buffers in interleaved mode.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_stream),
(gst_rtspsrc_handle_src_query), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_close):
* gst/rtsp/gstrtspsrc.h:
Set timestamps on RTP buffers in interleaved mode.
Mark first buffers with a DISCONT.
Remove flush hack now that sync for live sources has been figured out.
2007-09-26 20:12:52 +00:00